Используйте блок Call Service для вызова службы на сервере службы ROS.
Подключение к сети ROS.
rosinit
Launching ROS Core... Done in 0.80556 seconds. Initializing ROS master on http://192.168.0.10:53257. Initializing global node /matlab_global_node_04714 with NodeURI http://bat6315glnxa64:40377/
Настройка roscpp_tutorials/TwoInts
тип сообщения сервера службы и задайте пример функции вспомогательного обратного вызова. Предоставленная функция обратного вызова суммирует A
и B
элементы массива roscpp_tutorials/TwoIntsRequest
сообщение. Перед вызовом клиента службы необходимо настроить сервер службы.
sumserver = rossvcserver('/sum','roscpp_tutorials/TwoInts',@exampleHelperROSSumCallback);
Откройте модель Simulink ® с блоком Call Service. Используйте блок Blank Message, чтобы вывести сообщение запроса со roscpp_tutorials/TwoIntsRequest
тип сообщения. Заполните шину двумя значениями для суммирования.
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_04714 with NodeURI http://bat6315glnxa64:40377/ Shutting down ROS master on http://192.168.0.10:53257.