Запустите узел ROS
runNode( начинает узел ROS, сопоставленный с развернутой модели Simulink® под названием device,modelName)modelName. Узел ROS должен быть развернут в рабочей области Сережки, заданной CatkinWorkspace свойство входа rosdevice объект, device. По умолчанию узел соединяется с ведущим устройством ROS, что MATLAB® соединяется с с device.DeviceAddress свойство.
Свяжите с удаленным устройством ROS и запустите узел ROS. Запустите ядро ROS так, чтобы узлы ROS могли связаться через сеть ROS. Можно запустить и остановить ядро ROS или узел и проверять их состояние с помощью rosdevice объект.
Создайте связь с устройством ROS. Задайте адрес, имя пользователя и пароль вашего определенного устройства ROS. Устройство уже содержит доступные узлы ROS, которые могут быть запущены с помощью runNode.
ipaddress = '192.168.203.129'; d = rosdevice(ipaddress,'user','password'); d.ROSFolder = '/opt/ros/indigo'; d.CatkinWorkspace = '~/catkin_ws_test'
d =
rosdevice with properties:
DeviceAddress: '192.168.203.129'
Username: 'user'
ROSFolder: '/opt/ros/indigo'
CatkinWorkspace: '~/catkin_ws_test'
AvailableNodes: {'robotcontroller' 'robotcontroller2'}
Запустите ядро ROS. Соедините MATLAB® с ведущим устройством ROS использование rosinit. Это ядро позволяет вам запустить узлы ROS на своем устройстве ROS.
runCore(d) rosinit(d.DeviceAddress,11311)
Initializing global node /matlab_global_node_84497 with NodeURI http://192.168.203.1:56034/
Проверяйте доступные узлы ROS на соединенном устройстве ROS. Эти перечисленные узлы были сгенерированы из моделей Simulink® после процесса в Начало работы с ROS в примере Simulink®.
d.AvailableNodes
ans = 1×2 cell
{'robotcontroller'} {'robotcontroller2'}
Запустите узел ROS и задайте имя узла. Проверяйте, запускается ли узел.
runNode(d,'RobotController') running = isNodeRunning(d,'RobotController')
running = logical
1
Остановите узел ROS. Отключитесь от сети ROS. Остановите ядро ROS.
stopNode(d,'RobotController')
rosshutdownShutting down global node /matlab_global_node_84497 with NodeURI http://192.168.203.1:56034/
stopCore(d)
Запустите несколько узлов ROS на соединенном устройстве ROS. Узлы ROS могут быть сгенерированы с помощью моделей Simulink®, чтобы выполнить различные задачи в сети ROS. Эти узлы затем развертываются на устройстве ROS и могут быть запущены независимо от Simulink®.
Этот пример использует две различных модели Simulink, которые были развернуты как узлы ROS. Смотрите Генерируют Автономный Узел ROS от Simulink® и следуют инструкциям, чтобы сгенерировать и развернуть узел ROS. Сделайте это дважды и назовите их 'robotcontroller' и 'robotcontroller2'. 'robotcontroller' узел отправляет скоростные команды в робота, чтобы переместиться по нему к данной точке. 'robotcontroller2' узел использует ту же модель, но удваивает линейную скорость, чтобы управлять роботом быстрее.
Создайте связь с устройством ROS. Задайте адрес, имя пользователя и пароль вашего определенного устройства ROS. Устройство содержит информацию об устройстве ROS, включая доступные узлы ROS, которые могут быть запущены с помощью runNode.
ipaddress = '192.168.203.129'; d = rosdevice(ipaddress,'user','password')
d =
rosdevice with properties:
DeviceAddress: '192.168.203.129'
Username: 'user'
ROSFolder: '/opt/ros/indigo'
CatkinWorkspace: '~/catkin_ws'
AvailableNodes: {0×1 cell}
d.CatkinWorkspace = '~/catkin_ws_test'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. В данном примере порт установлен в 11 311. rosinit может автоматически выбрать порт для вас, не задавая этот вход.
runCore(d) rosinit(d.DeviceAddress,11311)
Initializing global node /matlab_global_node_66434 with NodeURI http://192.168.203.1:59395/
Проверяйте доступные узлы ROS на соединенном устройстве ROS. Узлы, перечисленные в этом примере, были сгенерированы из моделей Simulink® после процесса в Том, чтобы генерировать Автономный Узел ROS из примера Simulink®. Два отдельных узла сгенерированы, 'robotcontroller' и 'robotcontroller2', которым установили линейную скорость на 1 и 2 в модели соответственно.
d.AvailableNodes
ans = 1×2 cell
{'robotcontroller'} {'robotcontroller2'}
Запустите Средство моделирования Робота с помощью ExampleHelperSimulinkRobotROS. Это средство моделирования автоматически соединяется с ведущим устройством ROS на устройстве ROS. Вы будете использовать это средство моделирования, чтобы запустить узел ROS и управлять роботом.
sim = ExampleHelperSimulinkRobotROS;

Запустите узел ROS, задав имя узла. 'robotcontroller' узел управляет роботом к определенному местоположению ([-10 10]). Ожидайте, чтобы видеть диск робота.
runNode(d,'robotcontroller')
pause(10)
Сбросьте Средство моделирования Робота, чтобы сбросить положение робота. В качестве альтернативы нажмите Reset Simulation. Поскольку узел все еще запускается, робот продолжается назад к определенному местоположению. Чтобы прекратить отправлять команды, остановите узел.
resetSimulation(sim.Simulator) pause(5)

stopNode(d,'robotcontroller')Запустите 'robotcontroller2' узел. Эта модель управляет роботом с дважды линейной скоростью. Сбросьте положение робота. Ожидайте, чтобы видеть диск робота. Необходимо видеть более широкий поворот из-за увеличенной скорости.
runNode(d,'robotcontroller2')
resetSimulation(sim.Simulator)
pause(10)
Закройте средство моделирования. Остановите узел ROS. Отключитесь от сети ROS и остановите ядро ROS.
close
stopNode(d,'robotcontroller2')
rosshutdownShutting down global node /matlab_global_node_66434 with NodeURI http://192.168.203.1:59395/
stopCore(d)
device — Устройство ROSrosdevice объектУстройство ROS в виде rosdevice объект.
modelName — Имя развернутой модели SimulinkИмя развернутой модели Simulink в виде вектора символов. Если имя модели не допустимо, функция возвращает ошибку.
masterURI — URI ведущего устройства ROSURI ведущего устройства ROS в виде вектора символов. На запуске узел соединяется с ведущим устройством ROS с данным URI.
nodeHost — Имя хоста для узлаИмя хоста для узла в виде вектора символов. Узел использует это имя хоста, чтобы рекламировать себя в сети ROS для других, чтобы соединиться с ним.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.