ROS — Урок 8 — Использование rxconsole и roslaunch



Содержание

1. Использование rxconsole и roslaunch

Описание: Данный урок знакомит с использованием таких полезных утилит ROS, как rxconsole и rxloggerlevel для отладки, и roslaunch для запуска нескольких узлов одновременно.

1.1 Сборка пакетов rxtools и turtlesim

На этом уроке используются два пакета: rxtools и turtlesim. Поэтому, для выполнения заданий этого урока, необходимо собрать оба пакета.

$ rosdep install rxtools turtlesim
$ rosmake rxtools turtlesim

Примечание: возможно, вы уже собирали rxtools и turtlesim на предыдущих уроках. Если вы не уверены, то новая сборка не должна им повредить.

1.2 rxconsole и rxloggerlevel

rxconsole подключается к фреймворку логирования ROS, для отображения вывода от узлов. rxloggerlevel позволяет нам менять уровень выдаваемой информации (DEBUG, WARN, INFO, и ERROR) от работающих узлов.

Теперь, давайте посмотрим на выдачу от turtlesim в rxconsole и переключение уровня в rxloggerlevel, как мы используем turtlesim. Прежде чем мы запустим turtlesim, в двух новых терминалах нужно запустить rxconsole и rxloggerlevel:

$ rxloggerlevel
$ rxconsole

Вы увидите два появившихся окна:


Теперь давайте запустим turtlesim в новом терминале:

$ rosrun turtlesim turtlesim_node

Так как, по-умолчанию, уровень логирования INFO вы увидите информационные сообщения, выдаваемые turtlesim при запуске; они выглядят приблизительно так:

Теперь, давайте изменим уровень логирования на WARN, путем обновления узлов в окне rxloggerlevel окна (кнопка «Refresh Nodes») и выбрав Warn, как показано ниже:

Теперь, давайте запустим нашу черепаху в стену и посмотрим, что отображается в нашей rxconsole:

rostopic pub turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  0.0

1.2.1 Заметка об уровнях логгированя (logger levels)

Приоритеты уровней логгирования располагаются в следующем порядке:

Fatal
Error
Warn
Info
Debug

Сообщения о фатальных ошибках (Fatal) имеют самый высокий приоритет, а отладочные (Debug), соответственно, самый низкий. Установив уровень логгирования, вы получаете все сообщения, заданного уровня приоритета или выше. Например, установив уровень Warn, вы получите все сообщения типа Warn, Error, и Fatal.

Нажмём Ctrl-C для остановки нашего turtlesim и используем roslaunch для запуска нескольких узлов turtlesim и подражающего узла, чтобы один turtlesim подражал другим:

1.3 roslaunch

roslaunch запускает узлы, которые задаются в файле запуска (launch file).

Использование:

$ roslaunch [package] [filename.launch]

Прежде всего, мы должны создать файл запуска (launch file). Перейдём в наш тестовый пакет beginner_tutorials и создадим каталог запуска, в котором создим файл запуска:

$ roscd beginner_tutorials
$ mkdir launch
$ cd launch

Если команде roscd не удаётся найти директорию пакета beginner_tutorials, значит вы забыли установить переменную ROS_PACKAGE_PATH в своём терминале. Тогда последовательность команд будет выглядеть следующим образом:

$ export ROS_PACKAGE_PATH=~/ros_tutorials:$ROS_PACKAGE_PATH
$ roscd beginner_tutorials
$ mkdir launch
$ cd launch

1.3.1 Файл Запуска (Launch File)

Теперь, давайте создадим файл запуска с именем turtlemimic.launch

$ touch turtlemimic.launch

и вставим в него следующее содержание:



  
    
  

  
    
  

  
    
    
  


1.3.2 Разъяснения Файла Запуска

Теперь, давайте разберём xml-код файла запуска.

Здесь мы начинаем файл запуска с тега launch, так что файл определяется как Файла Запуска.

  
    
  

  
    
  

Здесь мы создаём две группы пространств имён turtlesim1 и turtlesim2, а так же узел turtlesim с названием sim. Это позволяет нам запустить два симулятора без конфликта имен.

  
    
    
  

Здесь мы создаём подражающий узел mimic с входной и выходной Темами, переименоваными в turtlesim1 и turtlesim2. Это переименовывание приведет к тому, что turtlesim2 будет подражать turtlesim1.


Это закрывающий xml-тег для файла запуска.

1.3.3 roslaunching

Теперь, давайте запустим получившийся файл запуска с помощью roslaunch:

$ roslaunch beginner_tutorials turtlemimic.launch

Запустятся два окна turtlesim, в новом терминале выполним команду:

$ rostopic pub turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  -1.8

Вы увидите что обе черепахи начали движение, хотя команда была опубликована только для turtlesim1.

Воспользуемся rxgraph, чтобы лучше понять, что сделал наш файл запуска:

$ rxgraph

Теперь, когда вы успешно использовали rxconsole и roslaunch, давайте узнаем о опциях редактора ROS. Вы можете остановить все ваши turtlesim с помощью Crtl-C, так как на следующих уроках они нам пока не понадобятся.

Ссылки
http://www.ros.org/wiki/ROS/Tutorials/UsingRxconsoleRoslaunch


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение