이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Simulink에서 ROS 메시지 퍼블리시 및 서브스크라이브
이 모델은 Simulink®를 사용하여 ROS 토픽을 퍼블리시하고 서브스크라이브하는 방법을 보여줍니다.
open_system('rosPubSubExample.slx')
Blank Message 블록과 Bus Assignment 블록을 사용하여 'geometry_msgs/Point'
메시지 유형의 X
값과 Y
값을 지정합니다. Blank Message 블록 마스크를 열어 메시지 유형을 지정합니다. Bus Assignment 블록 마스크를 열어 할당하려는 신호를 선택합니다. 오른쪽 열에서 '???'
가 있는 값은 모두 제거합니다. Bus Assignment 블록에 X
와 Y
에 대한 관련 값을 제공합니다.
Bus
출력을 Publish 블록에 전달합니다. 블록 마스크를 열고 토픽 소스로 Specify your own
을 선택합니다. 토픽 '/location'
과 메시지 유형 'geoemetry_msgs/Point'
를 지정합니다.
Subscribe 블록을 추가하고 토픽과 메시지 유형을 지정합니다. 출력 Msg
를 Bus Selector에 전달하고 블록 마스크에서 선택한 신호를 지정합니다. X
값과 Y
값을 표시합니다.
모델을 실행하기 전에 rosinit
를 호출하여 ROS 네트워크에 연결합니다.
rosinit
Launching ROS Core... Done in 0.61187 seconds. Initializing ROS master on http://172.29.216.40:58443. Initializing global node /matlab_global_node_92957 with NodeURI http://dcc739567glnxa64:40531/ and MasterURI http://localhost:58443.
모델을 실행합니다. xPosition Out
디스플레이와 yPosition Out
디스플레이에 ROS 네트워크에 퍼블리시된 해당 값이 표시되는 것을 확인할 수 있습니다.
sim('rosPubSubExample')
ROS 네트워크를 종료합니다.
rosshutdown
Shutting down global node /matlab_global_node_92957 with NodeURI http://dcc739567glnxa64:40531/ and MasterURI http://localhost:58443. Shutting down ROS master on http://172.29.216.40:58443.