Моделирование датчиков в Gazebo (часть 2)
Робот, для эффективного взаимодействия с окружающей средой, нуждается в трех базовых блоках:
- датчиков для получения информации об окружающей среде
- планирования дальнейших действий
- приводов, обеспечивающих движение робота
Мы покажем, как добавить датчики к нашей базовой модели робота с дифференциальным приводом. После оснащения датчиками наш робот будет достаточно оснащен для использования стека навигации ROS, что позволит ему двигаться самостоятельно!
Обзор: моделирование датчиков
Цели: 1. Добавить экстероцептивные датчики (окружающей среды) к нашей модели робота с дифференциальным приводом
2. Добавить алгоритмы, которые опираются на восприятие окружающей среды (автономная навигация !!).
Ссылки:
Код репозитория (хранилища):
git clone -b base_sensors https://github.com/richardw05/mybot_ws.git
Моделирование камеры
Необходимо добавить всего два блока кода.
- mybot_description/urdf/mybot.xacro - Add the camera model
- mybot_description/urdf/mybot.gazebo - Add the camera plugin
Запустим модель в Gazebo.
roslaunch mybot_gazebo mybot_world.launch
Запустим ноду, чтоб просматривать данные с камеры.
rosrun image_view image_view image:=/mybot/camera1/image_raw
Вставим объект в симулятор Gazebo, чтобы убедиться, что он отображается на виде с камеры. Запустим rviz.
roslaunch mybot_description mybot_rviz.launch
Убедимся, что данные с камеры можно прочитать в rviz с топиком: /mybot/camera1/image_raw
Моделирование лазера
Опять, необходимо добавить всего два блока кода:
- mybot_description/urdf/mybot.xacro - Добавление модели лазера
- mybot_description/urdf/mybot.gazebo - Добавление плагина лазера
- mybot_description/meshes/hokuyo.dae (опционально) - Модель популярного лазера hokuyo
Запустите Gazebo и rviz для проверки.
Примечание: многие сообщают, что лазерное сканирование ничего не обнаруживает. В этом случае в mybot.gazebo рассмотрите возможность переключения libgazebo_ros_gpu_laser.so на libgazebo_ros_laser.so