This shows you the differences between two versions of the page.
courses:ros:class5 [2018/11/25 21:18] kalishenko ↷ Page moved from start:ros:class5 to courses:ros:class5 |
courses:ros:class5 [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === Занятие № 5. Navigation_stack === | ||
- | В среде ROS существует набор пакетов, описывающих поведение роботов, выполняющих задачу SLAM. На самом деле робот решает некоторые дополнительные задачи, как то: | ||
- | * считывает информацию с датчиков; | ||
- | * передаёт информацию двигателям; | ||
- | * обрабатывает входные сигналы управляющего воздействия; и так далее | ||
- | Набор пакетов navigation_stack выполняет все эти действия. На самом деле цель этого пакета в том, чтобы упростить перенос ПО, связанного со SLAM, на реальных роботов. navigation_stack использует строгую иерархию топиков и сообщений. Таким образом, каждый компонент может быть заменён на аналогичный, если только он поддерживает такую же структуру топиков, на которые он подписан и в которые он пишет. Полная структура пакетов, входящих в navigation_stack представлена на вики http://wiki.ros.org/navigation | ||
- | |||
- | Для того, чтобы воспользоваться рабочей версией, необходимо воспользоваться инструкцией, представленной на [[https://github.com/OSLL/multibot| гитхабе]]. Скачав все требуемые пакеты и выполнив catkin_make в созданной директории catkin_ws/, можно запустить симулятор командой | ||
- | roslaunch map_merger test_one.launch | ||
- | | ||
- | откроется несколько окон, среди которых будут: | ||
- | *rviz {{:start:ros:снимок_экрана_от_2016-10-10_14-24-07.png|rviz}} | ||
- | *sage {{:start:ros:снимок_экрана_от_2016-10-10_14-24-21.png|sage}} | ||
- | *консли {{:start:ros:снимок_экрана_от_2016-10-10_14-24-47.png|console}} | ||
- | |||
- | Если сделать активным окно teleop_twist_keyboard.py, то клавишами, указанными в консоли, можно управлять роботом. При этом в rviz будет нарисована карта, какой себе её представляет робот после проделывания алгоритма SLAM (в данном случае используется алгоритм, который называется gmapping). | ||
- | В sage нарисована карта и реальное перемещение робота по ней. Карта располагается в файле | ||
- | /catkin_ws/src/aau_multi_robot/map_merger/world/small_world.pgm | ||
- | |||
- | Пакеты, используемые в данном симуляторе можно увидеть, посмотрев на rqt_graph: | ||
- | {{:start:ros:снимок_экрана_от_2016-10-10_14-18-57.png|rqt_graph}} | ||
- | |||
- | На схеме видно, что ключевую роль в этом симуляторе играет slam_gmapping. Как было сказано выше, на этом месте может быть любой SLAM. Перемещая робота с использованием клавиатуры можно наблюдать, что gmapping ощутимо корректирует данные одометрии, выстраивая карту, похожую на введённую. Построенная карта всё же имеет погрешности. Эти погрешности возникают из-за несовершенства реализации предложенного алгоритма SLAM. | ||
- | |||
- | Названия топиков достаточно красноречиво говорят об их предназначении, однако всегда можно узнать содержимое этих топиков с помощью команды rostopic echo. Но необходимо помнить, что почти в каждый топик сообщения посылаются с очень высокой частотой. | ||
- |