8.5.4 Запуск тестирования навигации в симуляции
Весь набор nodes, которые нам нужны для теста на выносливость, можно запустить с помощью файла fake_nav_test.launch. Этот файл запуска на самом деле является хорошим примером полного приложения ROS: он запускает драйверы робота, map_server, узел move_base и скрипт тестирования навигации.
Для этого теста робот будет приближаться к целевым местоположениям с разных направлений в зависимости от предыдущего местоположения. Вместо того, чтобы заставлять робота поворачиваться к определенной ориентации в каждом местоположении, мы можем установить параметр yaw_goal_tolerance равным 360 градусам (6,28 радиан), что означает, что как только робот доберется до места цели, базовый локальный планировщик будет доволен любой ориентацией робот по мере его прибытия. Это приводит к более естественному движению робота из одного места в другое. (Конечно, для настоящего Patrol Bot у вас могут быть причины желать, чтобы робот направлялся в определенном направлении в определенные места.)
Мы можем установить специальный параметр yaw_goal_tolerance в отдельном файле конфигурации и загрузить этот файл, чтобы переопределить значение, указанное в файле конфигурации по умолчанию base_local_planner_params.yaml. В каталоге rbx1_nav / config вы найдете файл rbx1_nav / config / nav_test_params.yaml, который выглядит следующим образом:
Как видите, файл представляет собой просто фрагмент файла base_local_planner_params.yaml, состоящий из пространства имен и нового допуска отклонения от курса. Затем этот файл загружается после файла base_local_planner_params.yaml в файле fake_nav_test.launch, например так:
Вы можете заметить, что последняя строка rosparam загружает файл nav_test_params.yaml. После того, как эти предварительные сведения будут удалены, давайте запустим тест. Чтобы убедиться, что мы начинаем с чистого листа, убейте все запущенные файлы запуска, а также roscore. Начните с нового roscore:
$ roscore
Затем запустите rqt_console. Это позволит нам просматривать сообщения о состоянии, выводимые сценарием nav_test.py. Те же сообщения отображаются в окне терминала, используемом для запуска файла fake_nav_test.launch, но rqt_console предоставляет более удобный интерфейс мониторинга.
$ rqt_console &
Теперь запустите файл fake_nav_test.launch. Этот файл запуска вызывает искусственный TurtleBot, узел map_server с загруженной тестовой картой, узел move_base со всеми параметрами, настроенными для искусственного TurtleBot, узел fake_localization и, наконец, сам скрипт nav_test.py.
$ roslaunch rbx1_nav fake_nav_test.launch
Самое последнее сообщение в выводе из файла запуска должно выглядеть так:
* Click the 2D Pose Estimate button in RViz to set the robot's initial pose...
(* Нажмите кнопку 2D Pose Estimate в RViz, чтобы установить начальную позу робота ...)
На этом этапе запустите RViz с помощью файла конфигурации amcl:
$ rosrun rviz rviz -d rospack find rbx1_nav/amcl.rviz
Когда RViz активен и вы видите робота, нажмите кнопку 2D Pose Estimate, чтобы установить его начальную позу . Затем нажмите по центру робота и совместите зеленую стрелку позы с желтой стрелкой одометрии. Как только вы отпустите кнопку мыши, начнется навигационный тест. Используйте мышь для масштабирования или панорамирования карты во время теста.
Искусственный TurtleBot теперь должен начать перемещаться в RViz из одного места в другое. Для пробного теста робот не делает паузу в каждом месте. Симуляция будет работать вечно, пока вы не наберете Ctrl-C в окне fake_nav_test.launch.
По мере выполнения теста выведите окно rqt_console на передний план, и вы сможете отслеживать, какое место цели будет следующим, прошедшее время, пройденное расстояние, количество предпринятых целей и скорость успеха. Возможно, вам придется расширить столбец «Сообщение» с помощью мыши, чтобы увидеть каждое сообщение полностью.
Last updated
Was this helpful?