Запустите несколько узлов ROS на подключенном устройстве ROS. Узлы ROS могут создаваться с использованием моделей Simulink ® для выполнения различных задач в сети ROS. Эти узлы затем развертываются на устройстве ROS и могут запускаться независимо от Simulink ®.
В этом примере используются две различные модели Simulink, развернутые в качестве узлов ROS. См. раздел Создание автономного узла ROS от Simulink ® и следуйте инструкциям по созданию и развертыванию узла ROS. Сделайте это дважды и назовите их'robotcontroller' и 'robotcontroller2'. 'robotcontroller' узел посылает роботу команды скорости для перемещения его в заданную точку. 'robotcontroller2' узел использует ту же модель, но удваивает линейную скорость для более быстрого привода робота.
Создайте соединение с устройством ROS. Укажите адрес, имя пользователя и пароль конкретного устройства ROS. Устройство содержит информацию об устройстве ROS, включая доступные узлы ROS, которые могут быть запущены с помощью runNode.
d =
rosdevice with properties:
DeviceAddress: '192.168.203.129'
Username: 'user'
ROSFolder: '/opt/ros/indigo'
CatkinWorkspace: '~/catkin_ws'
AvailableNodes: {0×1 cell}
d =
rosdevice with properties:
DeviceAddress: '192.168.203.129'
Username: 'user'
ROSFolder: '/opt/ros/indigo'
CatkinWorkspace: '~/catkin_ws_test'
AvailableNodes: {'robotcontroller' 'robotcontroller2'}
Запустите ядро ROS. Ядро ROS является ведущим и позволяет запускать узлы ROS на устройстве ROS. Подключение MATLAB ® к основной системе ROS с помощьюrosinit. В этом примере порт имеет значение 11311. rosinit может автоматически выбрать порт без указания этого ввода.
Initializing global node /matlab_global_node_66434 with NodeURI http://192.168.203.1:59395/
Проверьте доступные узлы ROS на подключенном устройстве ROS. Узлы, перечисленные в этом примере, были созданы из моделей Simulink ® в соответствии с процессом в примере Создать автономный узел ROS из Simulink ®. Генерируются два отдельных узла,'robotcontroller' и 'robotcontroller2', которые имеют линейные скорости, установленные на 1 и 2 в модели соответственно.
ans = 1×2 cell
{'robotcontroller'} {'robotcontroller2'}
Запуск имитатора робота с помощью ExampleHelperSimulinkRobotROS. Этот симулятор автоматически подключается к ведущему устройству АФК на устройстве АФК. Этот симулятор используется для запуска узла ROS и управления роботом.
Запустите узел ROS, указав имя узла. 'robotcontroller' узел командует роботом в определенное местоположение ([-10 10]). Подождите, чтобы увидеть привод робота.
Сбросьте имитатор робота, чтобы сбросить положение робота. Либо щелкните Сброс моделирования (Reset Simulation). Поскольку узел все еще работает, робот возвращается в определенное местоположение. Чтобы остановить отправку команд, остановите узел.
Запустить 'robotcontroller2' узел. Эта модель управляет роботом с удвоенной линейной скоростью. Сбросьте положение робота. Подождите, чтобы увидеть привод робота. Вы должны видеть более широкий поворот из-за повышенной скорости.
Закройте тренажер. Остановите узел ROS. Отсоедините от сети АФК и остановите ядро АФК.
Shutting down global node /matlab_global_node_66434 with NodeURI http://192.168.203.1:59395/