Компания «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 получился высоко интегрированным решением позволяющий легко использовать инерциальные данные в различных приложениях.