Используйте блок Call Service, чтобы вызвать сервис на сервисный сервер ROS.
Соединитесь с сетью ROS.
rosinit
Initializing ROS master on http://bat6230glnxa64:43157/. Initializing global node /matlab_global_node_89544 with NodeURI http://bat6230glnxa64:35543/
Настройте сервисный тип сообщения сервера roscpp_tutorials/TwoInts
и задайте функцию обратного вызова помощника в качестве примера. Вызов назад функционирует, суммирует A
и элементы B
roscpp_tutorials/TwoIntsRequest message
. Сервисный сервер должен быть настроен, прежде чем можно будет вызвать сервисный клиент.
sumserver = rossvcserver('/sum','roscpp_tutorials/TwoInts',@exampleHelperROSSumCallback)
sumserver = ServiceServer with properties: ServiceName: '/sum' ServiceType: 'roscpp_tutorials/TwoInts' NewRequestFcn: @exampleHelperROSSumCallback
Откройте модель Simulink® с блоком Call Service. Используйте блок Blank Message, чтобы вывести сообщение запроса с типом сообщения roscpp_tutorials/TwoIntsRequest
. Заполните шину с двумя значениями, чтобы суммировать togther.
open_system('ros_twoint_service_simulink_example.slx')
Запустите модель. Сервисный вызов должен возвратиться 0 в Resp
вывод как часть сообщения ответа. Код ошибки 0 указывает, что сервисный вызов был успешен. Можно проигнорировать предупреждения о преобразовании типов данных.
sim('ros_twoint_service_simulink_example.slx')
Warning: The property "A" in ROS message type "roscpp_tutorials/TwoIntsRequest" has an unsupported datatype (int64). This property will be converted to datatype "double" in the Simulink bus.
Warning: The property "B" in ROS message type "roscpp_tutorials/TwoIntsRequest" has an unsupported datatype (int64). This property will be converted to datatype "double" in the Simulink bus.
Warning: The property "Sum" in ROS message type "roscpp_tutorials/TwoIntsResponse" has an unsupported datatype (int64). This property will be converted to datatype "double" in the Simulink bus.
Закройте сеть ROS, чтобы разъединиться.
rosshutdown
Shutting down global node /matlab_global_node_89544 with NodeURI http://bat6230glnxa64:35543/ Shutting down ROS master on http://bat6230glnxa64:43157/.