Как собрать робота ROS?
Чтобы система работала хорошо, и чтобы вы могли следить за тем, что устройство будет делать в определенных ситуациях, вам нужны стандартные определения для каждой части. В ROS этими компонентами являются узлы, службы и темы. Короче говоря, вы создаете по одному узлу для каждой основной потребности. Например, движение - это один узел, видение - это другой узел, а планирование - это третий узел. Узлы содержат службы, которые могут отправлять информацию другим узлам, а службы также могут обрабатывать запросы и ответы. Тема может транслировать значения многим другим узлам. Понимание этих терминов и способов их использования - первый ключ к освоению разработки под ROS2.
Эмуляция навигации с turtlesim
Начиная работать с ROS, вы, вероятно, купите робота, который ходит или катается по вашему дому. Для этого робот должен иметь обзор области, в которой он перемещается. Для этого вы можете использовать приложение, похожее на карту, чтобы проверить поведение вашего робота. Разработчики Turtlebot придумали приложение под названием turtlesim, которое может сделать это за вас. Как и во всех других частях ROS2, вы можете запустить эти инструменты с помощью подкоманды из командной строки. Затем у вас есть действия для разных функций. Первая часть - запустить окно, в котором вы можете увидеть симуляцию, и это называется узлом.
$ ros2 запустить turtlesim turtlesimnodeПоявится окно с черепахой в центре. Чтобы управлять черепахой с помощью клавиатуры, вы должны запустить вторую команду, которая остается открытой, и продолжайте нажимать определенные клавиши. Это второй узел, который общается с первым.
$ ros2 run turtlesim черепахаteleopkeyТеперь вы можете перемещать черепаху и смотреть, как она движется. Вы также можете столкнуться с ошибками, например, удариться об стену. Эти ошибки отображаются в терминале, где запущен turtlesimnode. Это простейшее использование модуля моделирования. Вы также можете запускать заданные формы, квадрат и добавлять больше черепах. Чтобы добавить больше черепах, вы можете использовать команду rqt.
Определите службы с помощью rqt
Программа rqt предоставляет услуги по моделированию. Q означает Qt, который предназначен для обработки интерфейса. В этом примере вы создаете новую черепаху.
$ rqtИнтерфейс rqt - это длинный список сервисов для симуляции, которую вы запускаете. Чтобы создать новую черепаху, выберите раскрывающееся меню «spawn», дайте черепахе новое имя и нажмите «call».'Вы сразу увидите новую черепаху рядом с первой. Если вы нажмете на раскрывающееся меню 'spawn', вы также увидите новую группу записей, связанных с недавно созданной черепахой.
Вы также можете переназначить команды для запуска новой черепахи. Команда для этого следующая:
$ ros2 запустить turtlesim turtleteleopkey -ros-args -remap turtle1 / cmdvel: = turtle2 / cmdvelЗадайте имя turtle2 в соответствии с вашим предыдущим выбором.
Расширенный просмотр с Rviz
Для более продвинутого просмотра и просмотра 3D используйте rviz. Этот пакет моделирует все узлы вашего дизайна.
$ ros2 запустить rviz2 rviz2В графическом интерфейсе у вас есть три панели с видом в центре. Вы можете создавать среды, используя панель «Дисплеи». Вы можете добавить стены, силы ветра и другие физические свойства. Сюда же вы добавляете своих роботов.
Имейте в виду, что прежде чем вы дойдете до этого момента, вам нужно будет понять, как использовать формат URDF. Формат URDF определяет робота, позволяя вам установить тело, руки, ноги и, прежде всего, зоны столкновения. Зоны столкновения есть, поэтому симуляция может решить, столкнулся ли робот.
Изучение создания робота в формате URDF - это большой проект, поэтому используйте существующий открытый код для экспериментов с эмуляторами.
Имитация физики с помощью беседки
В беседке вы можете моделировать физику среды, окружающей вашего робота. Gazebo - это дополнительная программа, которая хорошо работает вместе с rviz. С помощью Gazebo вы можете видеть, что на самом деле происходит; с rviz вы отслеживаете, что обнаруживает робот. Когда ваше программное обеспечение обнаруживает стену, которой нет, Gazebo покажет пустую, а rviz покажет, где в вашем коде была создана стена.
Заключение
Моделирование вашего робота и окружающей его среды необходимо для поиска ошибок и обеспечения необходимых улучшений в работе вашего робота, прежде чем вы отправите его в дикую природу. Это утомительный процесс, который продолжается еще долго после того, как вы начнете тестирование бота, как в контролируемой среде, так и в реальной жизни. Обладая достаточным знанием инфраструктуры внутренних систем вашего робота, вы сможете понять, что вы сделали правильно, а что нет. Научитесь быстро оценивать все обнаруженные вами неисправности, поскольку они могут сделать вашу систему более надежной в долгосрочной перспективе.