Hunter Gazebo Harmonic Simulation
Gazebo Harmonic(gz-sim 8) + ROS 2 Jazzy 환경에서 동작하는 Hunter 로봇 시뮬레이션 패키지입니다.
패키지
설명
gazebo_harmonic
시뮬레이션 환경, Launch 파일, URDF/SDF, 컨트롤러 설정, gps_covariance_relay / vehicle_speed_publisher 노드
hunter_base
Hunter 로봇 기본 URDF 모델(링크/휠/박스 분리 구성) 및 STL 메쉬 리소스
external/RGLGazeboPlugin
GPU 가속 LiDAR 시뮬레이션 플러그인 (Gaussian noise 추가)
Ubuntu 24.04 LTS
ROS 2 Jazzy
Gazebo Harmonic (gz-sim 8)
NVIDIA GPU (CUDA 지원) + 드라이버
hunter_gazebo.xacro가 최상위 파일로, 두 패키지의 xacro를 조합합니다.
hunter_gazebo.xacro (robot name: hunter2)
├── gazebo_harmonic/urdf/
│ ├── hunter_base.xacro # 마찰 계수, 재질, IMU/GPS 센서 플러그인
│ ├── gazebo_control.xacro # Ackermann 조향, JointState, OdometryPublisher
│ ├── velodyne_VLP32C_gazebo.xacro # GPU LiDAR 센서 설정
│ └── camera_gazebo.xacro # 카메라 센서 플러그인
└── hunter_base/urdf/
├── base_link.xacro
├── front_box_link.xacro / rear_box_link.xacro
├── front_wheels.xacro / rear_wheels.xacro
├── velodyne_VLP32C.xacro # LiDAR 링크/조인트 정의
└── camera.xacro # 카메라 링크/조인트 정의
for_rviz 플래그로 Gazebo/rviz2 간 비주얼을 분기합니다. logo 메쉬만 Gazebo 전용이며, body/shadow/lidar 메쉬는 양쪽 모두 표시됩니다.
Hunter 로봇은 Ackermann Steering 구조를 사용합니다.
구동 방식 : 후륜 구동(RWD), 전륜 조향
플러그인 : gz-sim-ackermann-steering-system
물리 파라미터
항목
값
휠베이스
0.65142 m
휠 간격 (kingpin_width)
0.585 m
휠 반경
0.165 m
조향 제한
±0.461 rad
속도 제한
±10 m/s
가속도 제한
±5 m/s²
센서
모델
토픽
주파수
노이즈
LiDAR
Velodyne VLP-32C
/velodyne_points
10 Hz
Gaussian stddev 0.008 m
IMU
Generic IMU
/imu
100 Hz
Gaussian (축별 상이)
GPS
Generic NavSat
/gps/fix
10 Hz
Gaussian stddev 0.00000045 deg (~0.05 m)
Camera
Generic Camera
/camera/raw
15 Hz
-
LiDAR 상세 (Native GPU LiDAR)
Gazebo Harmonic native gpu_lidar 센서를 사용합니다.
항목
값
센서 타입
gpu_lidar
수직 채널
32채널, -24.9° ~ 15°
수평 FOV
360° (1200 samples)
측정 범위
0.4 m ~ 200 m
노이즈
Gaussian (mean: 0, stddev: 0.008 m)
라이다 파라미터는 src/gazebo_harmonic/urdf/velodyne_VLP32C_gazebo.xacro에서 수정합니다.
항목
값
해상도
1280 × 720 (HD)
FOV
120° (수평)
업데이트 주파수
15 Hz
클리핑
0.1 m ~ 100 m
마운트 위치
front_box 링크, LiDAR 전방 하부
카메라 파라미터는 src/gazebo_harmonic/urdf/camera_gazebo.xacro에서 수정합니다.
축
각속도 stddev (rad/s)
선가속도 stddev (m/s²)
X
0.012432
0.264649
Y
0.013663
0.406186
Z
0.211278
0.153983
Gazebo /gps → ros_gz_bridge → /gps/raw → gps_covariance_relay → /gps/fix
gps_covariance_relay 노드는 공분산 정보가 없는 raw NavSatFix 메시지에 대각 공분산 행렬을 추가하여 표준 포맷으로 변환합니다.
수평/수직 분산: 0.0025 m² (= stddev 0.05 m)
COVARIANCE_TYPE_DIAGONAL_KNOWN, STATUS_FIX 설정
토픽
설명
TF
/odom
Ackermann 플러그인 기반 오도메트리 (odom → base_link)
/tf_gz 발행
/odometry/ground_truth
물리 엔진 기반 ground truth (world → base_link)
/tf 발행
/joint_states
모든 조인트 상태, 50 Hz
-
Gazebo 토픽
ROS 토픽
메시지 타입
/imu
/imu
sensor_msgs/Imu
/gps
/gps/raw
sensor_msgs/NavSatFix
/velodyne_points/points
/velodyne_points
sensor_msgs/PointCloud2
/cmd_vel
/cmd_vel
geometry_msgs/Twist
/clock
/clock
rosgraph_msgs/Clock
/odom
/odom
nav_msgs/Odometry
/odometry/ground_truth
/odometry/ground_truth
nav_msgs/Odometry
/joint_states
/joint_states
sensor_msgs/JointState
/camera/raw
/camera/raw
sensor_msgs/Image
Gazebo Harmonic 공식 설치 가이드 를 참고하여 설치합니다.
sudo apt install \
ros-jazzy-ros-gz-sim \
ros-jazzy-ros-gz-bridge \
ros-jazzy-xacro \
ros-jazzy-robot-state-publisher \
ros-jazzy-teleop-twist-keyboard
cd ~ /dev/hunter_gazebo
rosdep install --from-paths src --ignore-src -r -y
cd ~ /dev/hunter_gazebo
colcon build
source install/setup.bash
Empty World (GPS 포함, 전체 기능)
ros2 launch gazebo_harmonic hunter_sim_start.launch.py
ros2 launch gazebo_harmonic hunter_simple_baylands.launch.py
ros2 run teleop_twist_keyboard teleop_twist_keyboard
source ~ /dev/hunter_gazebo_harmonic/install/setup.bash
rviz2
Fixed Frame을 base_link 또는 velodyne_sensor로 설정하세요.
파일
설명
물리 step
empty_with_gps.sdf
빈 평지 + GPS용 구면 좌표계 설정 (기본)
1 ms
simple_baylands.sdf
Baylands 지형 환경 (Fuel 모델 자동 다운로드)
40 ms
월드
위도
경도
비고
empty_with_gps
37.2397°N
126.7736°E
한국
플러그인
역할
gz-sim-physics-system
물리 엔진
gz-sim-sensors-system
센서 처리 (ogre2 렌더러)
gz-sim-user-commands-system
GUI 명령 처리
gz-sim-scene-broadcaster-system
씬 브로드캐스트
플러그인
역할
gz-sim-ackermann-steering-system
조향 + 구동 제어, /odom 발행
gz-sim-joint-state-publisher-system
/joint_states 발행
gz-sim-odometry-publisher-system
ground truth 오도메트리 발행
gz-sim-imu-system
IMU 센서 처리
gz-sim-navsat-system
GPS 센서 처리
gz-sim-sensors-system (camera)
카메라 센서 처리