Перейти к верхней панели

Подключение IMU BNO055 к ROS

Компания «Bosch» изготавливает интегрированный инерциальный навигационный модуль BNO055 размером 5.2 х 3.8 х 1.1 мм.

Датчик

BNO055 является датчиком первого поколения в семействе инерциальных систем производства «Bosch» с функцией фильтрации и комплексирования данных. Датчик построен по SiP (System in Package) технологии позволяющей разместить в одном корпусе:

  • 3-х осевой 14-и разрядный акселерометр с диапазонами измерений ±2g/±4g/±8g/±16g;
  • 3-х осевой 16-и разрядный гироскоп работающий в диапазонах угловых скоростей от ±125º/s до ±2000º/s;
  • 3-х осевой магнитометр ±1300µT ( x, y-axis ), ±2500µT ( z-axis );
  • 32-х разрядный ARM® Cortex®-M0 микроконтроллер, выполняющий алгоритмические функции ( BSX3.0 FusionLib software ).

Это повышает надежность навигационной системы и снижает вычислительную нагрузку на системы управления более высоких уровней.

Обмен информацией между датчиком и аппаратными решениями пользователя возможно с использованием последовательных цифровых интерфейсов I2C и UART. Напряжение электропитание составляет +3.3В. Для повышения точности измерения необходим подключить к датчику внешний кварцевый резонатор.

Датчик BNO055 поддерживает различные режимы работы, которые задаются пользователем через настроечные регистры. Наиболее интересным является режим NDOF. В данном режиме работы датчик производит измерение по трем составляющим линейных ускорений, угловых скоростей, магнитометрических данных и проводит обработку, комплексирование, фильтрацию данных с использованием встроенного микроконтроллера.  Комплексированные данные обновляются с частотой 100 Гц. Пользователю предоставляются значения позволяющие определить ориентацию датчика в пространстве в виде углов Эйлера или кватернионов, а также линейное ускорение при перемещении, разложенное по трем компонентам с компенсацией ускорения свободного падения.

Для проведения первоначального ознакомления была закуплена отладочная плата ( по центру на фото ) с установленным датчиком. Документация на плату имеет множество ошибок и не стыковок схемотехники с реальным воплощением.
Аппаратное подключение к вычислителю в виде персонального компьютера пользователя или робота осуществляется через преобразователь интерфейсов USB-RS232_TTL ( слева на фото ).

ROS

Репозиторий с драйверами IMU Bosch BNO055 для работы с ROS

установка драйвера

source /opt/ros/indigo/setup.bash
cd catkin_ws/src
git clone https://github.com/Octanis1/bosch_imu_driver
cd ..
catkin_make -DCMAKE_BUILD_TYPE=Release
source catkin_ws/devel/setup.bash

в настройках пакета необходимо указать ttyUSB через который производится считывание данных, выбрать режим работы датчика и частоту обновления информации. не понятно, зачем при конфигурирование датчика автором кода инвертированы знаки по осям X и Y.

запуск

roslaunch bosch_imu_drivers imu.launch

проверка работы и визуализация

удобный плагин для RVIZ позволяющий визуализировать показания от инерциальных систем

sudo apt-get install ros-indigo-imu-tools

запускаем RVIZ и включаем плагин

rosrun rviz rviz

устанавливаем имена топиков

конфигурируем параметры отображения

Датчик BNO055 получился высоко интегрированным решением позволяющий легко использовать инерциальные данные в различных приложениях.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.