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, который выглядит следующим образом:

TrajectoryPlannerROS:
yaw_goal_tolerance: 6.28

Как видите, файл представляет собой просто фрагмент файла base_local_planner_params.yaml, состоящий из пространства имен и нового допуска отклонения от курса. Затем этот файл загружается после файла base_local_planner_params.yaml в файле fake_nav_test.launch, например так:

<!-- The move_base node -->
<node pkg="move_base" type="move_base" respawn="false" name="move_base"
output="screen">
<rosparam file="$(find rbx1_nav)/config/fake/costmap_common_params.yaml"
command="load" ns="global_costmap" />
<rosparam file="$(find rbx1_nav)/config/fake/costmap_common_params.yaml"
command="load" ns="local_costmap" />
<rosparam file="$(find rbx1_nav)/config/fake/local_costmap_params.yaml"
command="load" />
<rosparam file="$(find rbx1_nav)/config/fake/global_costmap_params.yaml"
command="load" />
<rosparam file="$(find rbx1_nav)/config/fake/base_local_planner_params.yaml"
command="load" />
<rosparam file="$(find rbx1_nav)/config/nav_test_params.yaml" command="load"
/>
</node>

Вы можете заметить, что последняя строка 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