Skip to content

Gazebo

소개

RBQ 4족 보행 로봇을 위한 오픈소스 Ignition Gazebo (Fortress) 시뮬레이터.

Gazebo는 물리 시뮬레이션 위에서 RBQ 소프트웨어 스택 전체(Motion / Vision / GUI)를 실행하여 하드웨어 없이 로봇 소프트웨어를 개발·검증할 수 있게 합니다. 또한 센서 데이터를 ROS 2로 브리지하므로, 외부 노드(예: SLAM)가 시뮬레이션된 IMU, LiDAR, TF, 관절 상태를 구독할 수 있습니다. Isaac Gym · Isaac Lab 환경과 달리, 여기서의 목적은 강화학습 정책 학습이 아니라 스택 전체의 시뮬레이션입니다.

구성

경로설명
src/시뮬레이터 소스 → bin/rbq_gazebo
resources/월드, 로봇/센서 URDF, 메시
ros2/src/sensor_bridge/colcon 패키지: 브리지 launch, RViz 설정, DDS xml
scripts/빌드 / 실행 / Docker 스크립트

RBQ 스택 전체와 함께 실행 (Local)

RBQ 스택 전체(Motion / Vision / GUI)를 Gazebo 시뮬레이터와 함께 실행합니다:

bash
# Clone
git clone https://github.com/RainbowRobotics/RBQ.git
cd RBQ

# 의존성 설치 (최초 1회)
cd rbq_simulator/rbq_gazebo && bash scripts/debian-dep.bash

# rbq_gazebo 빌드
bash scripts/build.bash

# RBQ 스택 실행
cd ../../
bash scripts/sim.bash --vision --no-sim

# rbq_gazebo 실행
cd rbq_simulator/rbq_gazebo
bash scripts/gazebo.bash

RBQ 스택 전체와 함께 실행 (Docker)

같은 스택을 Docker 안에서 Gazebo 시뮬레이터와 함께 실행합니다:

bash
# Clone
git clone https://github.com/RainbowRobotics/RBQ.git
cd RBQ

# RBQ 스택 실행
bash scripts/sim.bash --vision --no-sim

# Docker에서 rbq_gazebo 실행
cd rbq_simulator/rbq_gazebo
bash scripts/docker/run.bash

NOTE — DDS 네트워킹

시뮬레이터는 호스트 RBQ 스택과 루프백 인터페이스(lo)에서 DDS 도메인 0을 공유합니다. Docker에서는 --network host로 제공됩니다.

외부 노드 연결 (SLAM / 커스텀 ROS 2 노드)

sensor_bridge는 루프백(lo)에서 ROS 2 도메인 0으로 발행합니다. 노드를 rbq_simulator/rbq_gazebo에서 다음 환경 변수와 함께 실행하세요 (브리지와 맞추려면 CycloneDDS를 사용해야 합니다):

bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export ROS_DOMAIN_ID=0
export CYCLONEDDS_URI=file://$(pwd)/ros2/src/sensor_bridge/config/cyclonedds_gazebo.xml

QoS는 ros_gz_bridge 기본값입니다 (토픽별 재정의는 ros2/src/sensor_bridge/config/bridge.yaml):

ROS 2 토픽타입QoS비고
/rbq/imu/IMU_statesensor_msgs/msg/ImuReliable · KeepLast 10500 Hz
/rbq/lidar/lidar_front/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--livox
/rbq/lidar/lidar_rear/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--livox
/rbq/lidar/lidar_ouster/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--ouster
/tftf2_msgs/msg/TFMessageReliable · KeepLast 10world → base_link
/joint_statessensor_msgs/msg/JointStateReliable · KeepLast 10

관련 문서

This user manual is intended for RBQ users.