H-SPAR — 수상 로봇 유체 저항·입자 포집 시뮬레이션 안내
자료와 번역 범위
2026년 10월 1일 커밋의 공식 README에서 개요, 준비 사항, 설치, 구조, 사용 절차, 참고 자료, 라이선스의 텍스트를 한국어로 옮겼습니다. README의 첫머리 GIF와 연결된 외부 문서는 번역 범위에 포함하지 않습니다. 논문 전문 번역이나 실제 수상 로봇 실험 결과를 제공하는 자료가 아닙니다. H-SPAR은 토론토 메트로폴리탄 대학교와 유니버시티 칼리지 런던 연구진의 프로젝트입니다. 날짜는 확인한 저장소 버전 날짜입니다.
개요
H-SPAR Simulation은 Gazebo와 Virtual RobotX(VRX)를 사용하는 ROS2 기반 자율 수상 로봇 유체역학 시뮬레이션 환경입니다. Gazebo는 물리 기반 3차원 환경을, VRX는 해양 로봇 시뮬레이션을 제공합니다. 속도장 데이터로 유체 저항을 실시간 계산하고 ROS2로 센서·구동기·제어를 통합합니다.
준비 사항
ROS2 Jazzy 또는 호환 버전, VRX를 통해 설치한 Gazebo, Python 3.10 이상, colcon 빌드 시스템, HDF5 속도장 데이터베이스 접근용 h5py가 필요합니다.
설치
저장소를 복제하고 디렉터리로 이동합니다. 원문의 <repository-url>은 해당 저장소 주소로 바꿉니다. git clone <repository-url> cd h-spar-sim VRX 공식 설치 안내 https://github.com/osrf/vrx 를 따릅니다. 이어 작업 공간을 빌드하고 환경을 불러옵니다. colcon build --merge-install source install/setup.bash
주요 구성 요소
Gazebo/VRX는 물 위의 로봇을 시뮬레이션하고 힘과 토크를 적용하며 센서 데이터와 자세를 발행합니다. drag_query 서비스는 HDF5 속도장 데이터베이스를 조회하고 x·y 방향 저항력을 계산하여 ROS2 서비스로 제공합니다. Wrench Bridge는 ROS2 저항력 토픽을 Gazebo에 연결하여 계산한 힘을 적용합니다. USV Bringup은 Gazebo 좌표의 로봇 자세를 발행하고 구동기와 센서를 초기화합니다.
1단계: Gazebo 실행
다음 명령은 Sydney Regatta 환경의 Gazebo와 VRX 플러그인·시뮬레이션 월드를 시작합니다. ros2 launch vrx_gz competition.launch.py world:=sydney_regatta
2단계: 앞단과 뒷단 연결
ros2 launch h_spar_experiments experiment1.launch.py ros_to_gazebo_wrench_bridge는 힘·토크 명령을 Gazebo로 전달합니다. drag_query_server는 유체 저항값을 제공합니다. usv_control의 usv_bringup.launch.py는 로봇을 초기화하고, drag_force_node는 저항을 조회하여 힘·토크 명령을 발행합니다.
3단계: DWA 경로 계획기 실행
ros2 launch usv_planners dwa_planner.launch.py simple_dwa_planner와 path_visualizer 노드를 시작합니다. 기본적으로 시뮬레이션 시간을 사용하고 /odom, /cmd_vel, /goal_pose의 ROS 토픽을 재매핑합니다.
4단계: 전역·지역 경로 계획 연결
source ros2_ws/install/setup.bash ros2 run usv_planners sequential_goal_sender --preset rrt 미리 정한 순서의 이동 목표를 계획기에 전달합니다. 조사 순찰 프리셋은 0도 survey, 45도 survey_45, 90도 survey_90입니다. RRT 계열 프리셋은 rrt, vf-rrt, svf-rrt입니다. 작업 공간 경로는 실제 설치 위치에 맞게 확인합니다.
5단계: 입자 포집 실행
ros2 run particle_sampling particle_sampling_node --ros-args -p probabilistic_sampling:=false -p sampling_radius:=5.0 -p capture_v0:=0.5 -p capture_sigma:=0.2 probabilistic_sampling=true는 확률적 포집 모델을 사용하고 false는 결정론적 기하 샘플링을 사용합니다. sampling_radius는 로봇 주변 후보 반경이며 단위는 미터입니다. capture_v0는 설계 유입 속도(m/s)로 입자의 상대 속도가 이 값과 같을 때 포집 확률이 가장 높습니다. capture_sigma는 속도 차이에 대한 포집 확률의 민감도이며 작을수록 더 선택적입니다. 노드는 시뮬레이션 과정에서 입자 기반 샘플링 동작을 생성하고 추적합니다.
참고와 이용 조건
VRX https://github.com/osrf/vrx , ROS2 https://docs.ros.org/ , Gazebo https://gazebosim.org/ 를 참고합니다. 공식 LICENSE는 MIT이며 Copyright (c) 2026 H-SPAR contributors를 명시합니다. 원문 README와 허락문을 첨부하고 로봇노드 번역에도 MIT 조건을 적용합니다. 저장소의 허락을 연결 논문의 재게시 허가로 확대하지 않습니다. 명령은 원문과 대조했으며 이 환경에서 설치·시뮬레이션을 실행한 것은 아닙니다.
첨부파일
- README-original.md ↓4164 bytes · SHA-256 916c27b8244389bc6bc69cba8aaa8f08925ff07c5a1ec9fa3d9d883fad17e583
- LICENSE.txt ↓1076 bytes · SHA-256 72224c06c581b3882fa76f3313c504072d56f44bb253b195de6bbb8c6c41ccb4
- guide-ko.md ↓4883 bytes · SHA-256 1b5671eee0c2b86cdfea89be319fdb8adb4a618c6e01412f98b8bb59d15d3eb8