PX4 uORB with ROS 2
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
Last updated
PX4 와 ROS 2의 uORB 애플리케이션 파이프라인은 uXRCE-DDS 통신 미들웨어를 사용하여 연결됩니다.
uXRCE-DDS 미들웨어는 PX4에서 실행되는 클라이언트와 보조 컴퓨터에서 실행되는 에이전트로 구성되며 직렬, UDP, TCP 또는 사용자 정의 링크를 통해 이들 간의 양방향 데이터 교환이 가능합니다. 에이전트는 클라이언트가 글로벌 DDS 데이터 공간의 주제를 게시하고 구독하기 위한 프록시 역할을 합니다.
PX4 uxrce_dds_client 는 빌드 시 생성되며 기본적으로 PX4 펌웨어에 포함됩니다. 여기에는 "일반" 마이크로 XRCE-DDS 클라이언트 코드와 uORB 주제 간에 게시하는데 사용하는 PX4 특정 번역 코드가 모두 포함되어 있습니다. 클라이언트에 생성된 uORB 메시지의 하위 집합은 PX4-Autopilot/src/modules/uxrce_dds_client/dds_topics.yaml 에 나열되어 있습니다. ROS 2 메시지를 보내기 위한 코드를 생성하기 위해 생성기는 소스 트리의 uORB 메시지 정의를 사용합니다.
ROS 2 애플리케이션은 PX4 펌웨어에서 uXRCE-DDS 클라이언트 모듈을 생성하는 데 사용된 것과 동일한 메시지 정의가 있는 ROS 2 작업 공간에 구축되어야 합니다.
마이크로 XRCE-DDS 에이전트 자체는 클라이언트 측 코드에 종속되지 않습니다. 즉, 빌드 가능 독립형 또는 ROS 빌드의 일부로 설치됩니다.
일반적으로 ROS 2를 사용할 때 클라이언트와 에이전트를 모두 시작해야 합니다. uXRCE-DDS 클라이언트는 기본적으로 펌웨어에 내장되어 있지만 시뮬레이터 빌드를 제외하고는 자동으로 시작되지 않습니다.