# 8.5.4 Запуск тестирования навигации в симуляции

Весь набор nodes, которые нам нужны для теста на выносливость, можно запустить с помощью файла fake\_nav\_test.launch. Этот файл запуска на самом деле является хорошим примером полного приложения ROS: он запускает драйверы робота, map\_server, узел move\_base и скрипт тестирования навигации.

&#x20;Для этого теста робот будет приближаться к целевым местоположениям с разных направлений в зависимости от предыдущего местоположения. Вместо того, чтобы заставлять робота поворачиваться к определенной ориентации в каждом местоположении, мы можем установить параметр yaw\_goal\_tolerance равным 360 градусам (6,28 радиан), что означает, что как только робот доберется до места цели, базовый локальный планировщик будет доволен любой ориентацией робот по мере его прибытия. Это приводит к более естественному движению робота из одного места в другое. (Конечно, для настоящего Patrol Bot у вас могут быть причины желать, чтобы робот направлялся в определенном направлении в определенные места.)&#x20;

Мы можем установить специальный параметр 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, чтобы установить его начальную позу . Затем нажмите по центру робота и совместите зеленую стрелку позы с желтой стрелкой одометрии. Как только вы отпустите кнопку мыши, начнется навигационный тест. Используйте мышь для масштабирования или панорамирования карты во время теста.&#x20;

Искусственный TurtleBot теперь должен начать перемещаться в RViz из одного места в другое. Для пробного теста робот не делает паузу в каждом месте. Симуляция будет работать вечно, пока вы не наберете Ctrl-C в окне fake\_nav\_test.launch.&#x20;

По мере выполнения теста выведите окно rqt\_console на передний план, и вы сможете отслеживать, какое место цели будет следующим, прошедшее время, пройденное расстояние, количество предпринятых целей и скорость успеха. Возможно, вам придется расширить столбец «Сообщение» с помощью мыши, чтобы увидеть каждое сообщение полностью.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ekaterina-samsonova.gitbook.io/navigacziya-planirovanie-puti-i-slam/8.-navigaciya-planirovanie-puti-i-slam/8.5-navigaciya-i-lokalizaciya-s-ispolzovaniem-karty-i-amcl/8.5.4-zapusk-testirovaniya-navigacii-v-simulyacii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
