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