Main Content

Simulink에서 ROS 2 메시지를 퍼블리시하고 서브스크라이브하기

이 모델은 Simulink®를 사용하여 ROS 2 토픽을 퍼블리시하고 서브스크라이브하는 방법을 보여줍니다.

선행 조건: Get Started with ROS 2 in Simulink

open_system('simulinkPubSubROS2Example');

Blank Message 블록과 Bus Assignment 블록을 사용하여 'geometry_msgs/Point' 메시지 유형의 x 값과 y 값을 지정합니다. Blank Message 블록 마스크를 열어 메시지 유형을 지정합니다. 샘플 시간을 0.01로 설정합니다. Bus Assignment 블록 마스크를 열어 할당하려는 신호를 선택합니다. 오른쪽 열에서 '???'가 있는 값은 모두 제거합니다. Bus Assignment 블록에 x와 y에 대한 관련 값을 제공합니다.

Bus 출력을 Publish 블록에 전달합니다. 블록 마스크를 열고 토픽 소스로 Specify your own을 선택합니다. 토픽 '/location'과 메시지 유형 'geoemetry_msgs/Point'를 지정합니다. 샘플 시간을 0.01로 설정합니다.

Subscribe 블록을 추가하고 토픽과 메시지 유형을 지정합니다. 출력 Msg를 Bus Selector에 전달하고 블록 마스크에서 선택한 신호를 지정합니다. x 값과 y 값을 표시합니다.

시뮬레이션 중지 시간을 Inf로 설정하고 모델을 실행합니다. xPosition_Out 디스플레이와 yPosition_Out 디스플레이에 ROS 2 네트워크에 퍼블리시된 해당 값이 표시되는 것을 확인할 수 있습니다.