작성자: 박준규

최초작성: 2023.02.26(일)

References: https://docs.px4.io/main/en/ros/ros2_comm.html

<aside> ⚠️ 대회에서는 ROS1을 사용하였습니다. 이 문서는 ROS2를 사용하실 때 읽으시면 됩니다.

</aside>

<aside> 💡 이 문서는 PX4와 ROS가 이미 설치되어있는 것을 전제로 작성되었다. 위 참고 문서는 XRCE-DDS Agent 및 Client를 같은 컴퓨터에서 실행시키는 전제 하에 작성되어 있으니 참고하길 바란다 (ex. ROS2와 PX4를 각각 다른 기기에서 실행시 XRCE-DDS Client 실행 시 IP주소 기입 등)

</aside>

For ROS 2 to communicate with PX4, a XRCE-DDS client must be running on PX4, connected to an XRCE-DDS agent running on the companion computer.

Middleware 개념 (XRCE-DDS)

PX4와 ROS끼리 통신할때 XRCE-DDS라는 middleware를 이용한다. PX4에서는 XRCE-DDS client를 실행하고 ROS2에는 XRCE-DDS agent를 실행 시켜서 서로 연결 시킨다.

architecture_xrce-dds_ros2.fed61809.svg

3기 프로젝트에서는 Sim PC에 PX4를 실행하고, Offboard PC(VIM4)에 ROS2를 실행할 예정이다.

그럼으로 다음과 같이 실행해주면 된다.

XRCE-DDS Agent = Offboard PC (VIM4)

XRCE-DDS Client = sim PC