Программное обеспечение системы управления движением мобильного робота

Автономная система управления движением Вычислители системы управления

Мобильные роботы серии SRX работают под управлением программного движка RedCore. Программное решение реализовано на шести встроенных вычислителях работающих под управление ОС Линукс. Управление траекторией движения реализовано на седьмом вычислителе на основе сигнального процессора и работает в режиме реального времени, без какой либо операционной системы.

Аппаратно-программный комплекс системы управления выполняет нижеперечисленные функции.

  • Модуль стереокамер осуществляет построение плотной карты диспарантности, ее последующую фильтрацию для устранения ложных сопоставлений.
  • Модуль визуальной навигации по изображению с двух камер. Определяет текущее местоположение и курсовую ориентацию робота посредством анализа и сопоставления текущего изображения и данных, полученных во время обучающего проезда.
  • Вычислитель построения локальной карты и возможных путей проезда. Обрабатывая данные от модуля стереокамер, БИНСа, механического одометра синтезируется трехмерная карта локального участка движения робота. Анализируя видеоизображение подстилающей поверхности, производится ее сегментация и последующая классификация с целью обнаружения дороги.
  • Навигационный вычислитель обеспечивает привязку робота к электронной карте на основе всех доступных источников информации. Обеспечивает подготовку данных для удаленного интерфейса оператора на планшетном компьютере. Сохраняет логи работы вычислителей системы управления, производит регулярное тестирование работоспособности всех электронных систем робота.

Все вышеперечисленные встроенные компьютеры объединены локальной сетью Ethernet и доступны извне посредством WiFi роутера. При программировании Линукс компьютеров используются программные среды OpenCL, OpenMP, Qt.

  • Модуль бесплатформенной инерциальной навигационной системы построен на основе микромеханических гироскопов и акселерометров. БИНС автоматически определяет курсовой угол и текущие углы крена и тангажа шасси робота. Встроенное программное обеспечение под управлением FreeRTOS решает задачу инерциальной навигации с жесткой привязкой ко времени, в фоновом режиме выполняет коррекцию дрейфа нуля МЭМС датчиков. В алгоритмах обработки данных от датчиков ускорений и угловых скоростей используется фильтрация Калмана 14 порядка.
  • Модуль адаптивного управления движением обеспечивает синтез траектории перемещения мобильного робота. Комплексируя данные от механических одометров колес и БИНС многоядерный вычислитель задает и отслеживает путь перемещения, выдает команды низкоуровневым контроллерам, управляющим моторами приводов. Адаптирует управляющие воздействия к текущим условиям сцепления колес с поверхностью дороги, возможностям курсового маневрирования и изменениям скорости движения. Производит экстренную остановку мобильного робота.

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

API программирования роботов

Компания СМП «Роботикс» приветствует совершенствование программного обеспечения штатными программистами компаний-дилеров и иных партнеров, имеющих в своем распоряжении мобильных роботов серии SRX.

Выпущено и поддерживается API трех уровней.

  • Программирование сложного маршрута на низком уровне, который не доступен через интерфейс оператора планшетного компьютера. Подключение дополнительных устройств посредством Ethernet, CAN или RS-485.Обмен данными между новым устройством и встроенными компьютерами системы управления робота по согласованному протоколу.
  • Правка существующих программных модулей с учетом особенностей конкретного применения и условий эксплуатации. Уровень отдельных процессов Linux. Программа, реализующая новые дополнительные функции, запускается на одном из вычислителей робота и обменивается данными с другими процессами с помощью стандартных механизмов Linux по согласованным протоколам.
  • Создание собственных программных модулей, расширяющих функциональные возможности робота. Уровень подгружаемой библиотеки. Код, служащий для реализации дополнительных функций, оформляется в виде подгружаемой библиотеки Linux и запускается вместе с одним из процессов на соответствующем вычислителе робота.