7.10 Телеоперация вашего робота

Всегда полезно поддерживать какое-то ручное управление вашим роботом, особенно при тестировании нового кода. Мы видели, что базовый контроллер для робота подписывается на тему / cmd_vel и отображает любые опубликованные там сообщения Twist в сигналы двигателей. Если мы можем использовать устройство дистанционного управления, такое как джойстик или игровой контроллер, для публикации сообщений Twist по теме / cmd_vel, мы можем использовать его для телеуправления роботом. (Это еще один хороший пример того, как ROS позволяет нам абстрагироваться от базового оборудования.)

К счастью, пакет turtlebot_teleop уже содержит узлы для отправки команд Twist через клавиатуру, джойстик или контроллер PS3. Чтобы получить требуемые пакеты ROS, выполните команду:

$ sudo apt-get install ros-indigo-joystick-drivers \ ros-indigo-turtlebot-teleop

Перед телеоперацией реального робота, попробуйте его с помощью симулятора ArbotiX. Поднимите поддельный TurtleBot, если он еще не запущен:

$ roslaunch rbx1_bringup fake_turtlebot.launch

И это RViz еще не работает, запустите его сейчас:

$ rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz

Теперь давайте взглянем на дистанционное управление имитируемого робота с помощью клавиатуры или джойстика.

7.10.1 Использование клавиатуры

Пакет turtlebot_teleop включает файл keyboard_teleop.launch, который был скопирован в каталог rbx1_nav / launch, чтобы мы могли редактировать пару параметров, описанных ниже. Используйте следующую команду для запуска этой копии файла запуска:

$ roslaunch rbx1_nav keyboard_teleop.launch

Затем вы должны увидеть следующие инструкции на экране вашего терминала:

Наведите курсор на окно терминала Teleop, попробуйте нажать букву i. Вы должны увидеть, как фальшивый TurtleBot продвигается вперед в RViz. Обратите внимание, что если вы прекратите нажимать, робот замедлится и остановится. Попробуйте некоторые другие ключи, чтобы убедиться, что все работает.

Если вы посмотрите на файл keyboard_teleop.launch в каталоге rbx1_nav / launch, то увидите, что узел teleop клавиатуры принимает два параметра: scale_linear и scale_angular для определения линейной и угловой скорости робота по умолчанию. При первом тестировании телеоперации на реальном роботе рекомендуется установить эти значения меньше значений по умолчанию, чтобы робот двигался медленно. К сожалению, на момент написания этой статьи в пакете turtlebot_teleop была ошибка, препятствующая чтению двух параметров узлом keyboard_teleop, поэтому в настоящее время эти параметры будут игнорироваться.

7.10.2 Использование игровой площадки Logitech

Если у вас есть джойстик или игровая панель, вы можете использовать файл joystick_teleop.launch в пакете turtlebot_teleop. Мы сделали локальную копию этого файла в каталоге rbx1_nav / launch, чтобы различные параметры можно было редактировать в соответствии с вашими потребностями. Следующее описание относится конкретно к беспроводной игровой площадке Logitech.

Для использования телеопа джойстика выполните следующую команду:

$ roslaunch rbx1_nav joystick_teleop.launch

Если вы получили ошибку, такую ​​как:

[ERROR] [1332893303.227744871]: Couldn't open joystick /dev/input/js0. Will retry every second.

тогда ваш джойстик или игровая панель либо не подключены к USB-порту, либо не распознаются Ubuntu. Если вы не получили никаких ошибок, нажмите кнопку «Мертвец» (см. Примечание ниже) и попробуйте переместить джойстик или левую ручку на игровой клавиатуре.

ПРИМЕЧАНИЕ. Если вы используете игровую панель Logitech, вы должны сначала нажать и удерживать кнопку правого указательного пальца, прежде чем робот отреагирует на левую ручку переключателя. Эта кнопка называется переключателем «мертвец», поскольку робот перестанет двигаться, если вы отпустите ее.

Вы можете отредактировать файл joystick_teleop.launch, чтобы изменить масштабные коэффициенты для линейной и угловой скорости. Вы также можете отобразить переключатель мертвецов на другую кнопку. Чтобы узнать номера, соответствующие каждой кнопке, попробуйте программу jstest:

$ sudo apt-get install joystick
$ jstest /dev/input/js0

Затем нажмите различные кнопки и посмотрите на цифры в нижней части экрана, чтобы увидеть, какая из них переключается с «выключено» на «включено». Введите Ctrl-C, чтобы закрыть тестовый экран.

7.10.3 Использование графического интерфейса контроллера ArbotiX

Вы можете настроить интерфейс с помощью следующей команды:

$ arbotix_gui

Чтобы переместить вашего робота, нажмите и удерживайте красную точку с помощью мыши . Затем переместите, переместите точку в направление, в котором вы хотите, чтобы ваш робот двигался. Старайтесь не перемещать его слишком далеко, так как скорость робота зависит от расстояния от источника. Если вы используете симулятор Pi Robot, вы также увидите элементы управления для суставов рук, как показано ниже:

Чтобы переместить одно из соединений в симуляторе, установите флажок рядом с именем сервопривода, затем используйте ползунок.

7.10.4 Телеоперация TurtleBot с использованием интерактивных маркеров

Метапакет Turtlebot включает в себя очень интересный пакет интерактивных маркеров, который позволяет перемещать настоящего робота, перетаскивая элементы управления в RViz. Инструкции по его использованию представлены на вики-странице turtlebot_interactive_markers, хотя эта страница не обновлялась с Groovy. (Нажмите на вкладку Groovy в верхней части страницы, как только она появится.)

Чтобы установить пакет для ROS Indigo, выполните команду:

$ sudo apt-get install ros-indigo-turtlebot-interactive-markers

Чтобы попробовать это с поддельным TurtleBot, выполните следующие команды:

$ roslaunch rbx1_bringup fake_turtlebot.launch

Откройте RViz с помощью предварительно сконфигурированного файла конфигурации interactive_markers.rviz:

$ rosrun rviz rviz -d `rospack find rbx1_nav`/interactive_markers.rviz

Наконец, откройте файл interactive_markers.launch в пакете rbx1_nav:

$ roslaunch rbx1_nav interactive_markers.launch

Этот файл запуска был скопирован из пакета turtlebot_interactive_markers и немного изменен для работы с поддельным TurtleBot.

Вернувшись в RViz, нажмите кнопку Взаимодействовать вдоль верхней панели инструментов. Экран RViz должен выглядеть следующим образом:

Нажмите на красные стрелки, чтобы переместить поддельного робота вперед или назад и поверните синее кольцо, чтобы повернуть робота.

Last updated