이 튜토리얼에서는 ROS2 를 Gazebo 와 통합하는 방법을 학습

두 프로그램 사이의 의사소통을 구축. 이는 여러 측면에서 도움이 될것.

ROS로 부터 데이터(ex: joint 상태)또는 명령을 수신하여 Gazebo에 적용할 수 있으며 그 반대의 경우도 가능ㄷ

또한 RViz가 Gazebo world 에서 시뮬레이션 된 로봇 모델을 시각화 하는데 도움이 될것.

튜토리얼을 하기 앞서

ros_gz_bridge

ros_gz_bridge는 ROS2와 Gazebo Transport 사이의 메세지 교환을 가능하게 하는 네트워크 브릿지를 제공.

지원은 특정 메시지 유형으로만 제한됩니다. 귀하의 메시지 유형이 브릿지에서 지원되는지 확인하려면 아래에서 확인

ros_gz/ros_gz_bridge/README.md at ros2 · gazebosim/ros_gz

모든 주요 작동 및 센서 유형을 연결하는 데모 실행 파일을 포함하여 브릿지의 사용 예시를 ros_gz_sim_demos에서 찾아볼 수 있다.

Bidirectional communication(양방향 통신)

우리는 ROS를 publisher로, Gazebo를 subscriber로 또는 그 반대로 가질 수 있도록 양방향 브릿지를 초기화할 수 있습니다. 구문은 /TOPIC @ ROS_MSG @ GZ_MSG로, 여기서 TOPIC은 Gazebo 내부 토픽, ROS_MSG는 이 토픽에 대한 ROS 메시지 유형이고, GZ_MSG는 Gazebo 메시지 유형입니다.

예를 들어

ros2 run ros2_gz_bridge parameter_bridge /scan@sensor_msgs/msg/[email protected]

/ scan @ sensor_msgs/msg/LaserScan @ gz.msgs.LaserScan

/ Topic @ ROS_MSG @ GZ_MSG

ros2 run ros_gz_bridge parameter_bridge 명령은 단순하게 ros_gz_bridge 패키지의 parameter_bridge 코드를 실행함. 이후 메세지가 전송될 토픽인 /TOPIC 을 지정.