7.5 Отправка твист-сообщений реальному роботу

Если у вас есть TurtleBot или любой другой робот, который слушает тему / cmd_vel для команд перемещения, вы можете попробовать некоторые сообщения Twist в реальном мире. Всегда обязательно начинайте с небольших значений линейных и угловых скоростей. Попробуйте сначала вращение, чтобы ваш робот не полетел через всю комнату и не испортил мебель.

Сначала включите своего робота и запустите соответствующие файлы запуска. Если у вас есть оригинальный TurtleBot (база iRobot Create), вставьте ssh в ноутбук робота и запустите:

$ roslaunch rbx1_bringup turtlebot_minimal_create.launch

Если у вас уже есть собственный файл запуска, содержащий параметры калибровки, запустите этот файл. Файл запуска, использованный выше, включает параметры калибровки, которые хорошо работают на коврике с низким слоем для моего собственного TurtleBot. Скорее всего, вам придется настроить их для своего собственного робота и типа поверхности пола, на которой он будет работать. Используйте процедуру калибровки, описанную ранее, чтобы найти параметры, которые лучше всего подходят для вас.

Чтобы повернуть робота против часовой стрелки на месте со скоростью 1,0 радиан в секунду (около 6 секунд на оборот), выполните команду:

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0, y: 0, z: 0}, angular: {x: 0, y: 0, z: 1.0}}'

Вы можете запустить эту команду либо на TurtleBot (после использования ssh в другом терминале), либо на своей рабочей станции, если вы уже настроили сеть ROS.

Чтобы остановить робота, введите Ctrl-C и, если необходимо, опубликуйте пустое сообщение Twist:

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

(TurtleBot должен остановиться самостоятельно после первого нажатия Ctrl-C.)

Затем, чтобы продвинуть робота вперед со скоростью 0,1 метра в секунду (около 4 дюймов в секунду или 3 секунды на фут), убедитесь, что у вас достаточно места перед роботом, затем выполните команду:

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'

Чтобы остановить движение, введите Ctrl-C и, если необходимо, опубликуйте пустое сообщение Twist:

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

Если вы удовлетворены результатом, попробуйте другие комбинации линейных значений x и угловых значений z. Например, следующая команда должна отправить робота, вращающегося по часовой стрелке:

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.15, y: 0, z: 0}, angular: {x: 0, y: 0, z: -0.4}}'

Чтобы остановить движение, введите Ctrl-C и, если необходимо, опубликуйте пустое сообщение Twist:

$ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

Как мы упоминали ранее, мы не часто публикуем сообщения Twist для робота непосредственно из командной строки, хотя это может быть полезно для целей отладки и тестирования. Чаще всего мы будем отправлять такие сообщения программно с узла ROS, который каким-то интересным образом контролирует поведение робота. Давайте посмотрим на это дальше.

Last updated