0,1
рейтинг
8 октября 2012 в 15:41

Автомобиль-робот команды НАМТ на «Робокросс-2012» из песочницы

Здравствуйте. Меня зовут Владимир и я хочу немного рассказать об автомобиле-роботе команды из Нижнего Новгорода НАМТ, победившей на 3-их Всероссийских соревнованиях автомобилей роботов РОБОКРОСС-2012, проходивших в городе Волоколамск. Здесь уже публиковался отчет команды из Саратова MobRob, теперь хочу рассказать о наших мытарствах.

О правилах


Соревнования заключались в следующем: необходимо было в автоматическом или телеуправляемом режиме проехать от точки старта по полю, попасть в ворота и передать оператору изображение трёх контрольных точек, а затем заехать в финишные ворота и там остановиться. GPS/ГЛОНАСС координаты ворот и контрольных точек были заранее известны командам. Очки начислялись за быстроту прохождения маршрута (но регламент соревнований запрещал скорость больше 10 км/ч) и переданные изображения контрольных точек.

О грустном


Так случилось, что мы чуть не пропустили эти соревнования — сгорел предоставленный организаторами контроллер National Instruments Single-Board RIO, пока договорились о закупке нового, NI cRIO-9075, пока он пришел — наступили соревнования. В результате пришлось отказаться от многих идей. Например, настроить алгоритм автопилота для следования по маршруту не успели, пришлось использовать простейшее прямое наведение на контрольные точки. Также не было речи о распознании препятствий.

  • Контроллер NI cRIO-9075

О железе


Автопилот построен на контроллере National Instruments cRIO-9075 и ноутбуке с SSD для работы с USB-камерами.
Контроллер получает сигнал с потенциометрического датчика положения колёс, сигнал с датчика оборотов двигателя и, по RS-232, информацию с GPS/ГЛОНАСС приёмника. Управление идёт на сервопривод, подключенный ко входу гидроуслилтеля руля вместо рулевой колонки и систему запуска/остановки двигателя.
Так как регламент соревнований ограничивает максимальную скорость автомобиля десятью км/ч, не было необходимости в системе переключения передач, автомобиль стартует на первой передаче путём запуска двигателя и останавливается при его выключении.

  • Робототехника — это просто!

К ноутбуку с SSD (дороги у нас — не сахар) подключены две USB-камеры, обеспечивающие обзор из кабины.

  • Глаза — зеркало души

Всё это хозяйство через роутер ASUS RT-N16 подключено к закрепленной в кузове одноваттной Wi-Fi точке доступа Bullet со всенаправленной антенной, настроенной в режим моста с точкой доступа, подключенной к рабочему месту оператора нашего «беспилотника».

  • Надёжная связь — это наше всё!

О софте


Программная начинка автомобиля разделена на две независимые части — управления автомобилем и сбора и передачи видео. Всё написано на языке визуального программирования LabVIEW.
Из-за описанных выше технических проблем управление крайне упрощённое, но рабочее.
Реализован контур управления поворотом колёс и контур навигации по сигналу GPS/ГЛОНАСС. Используется алгоритм прямого наведения с незначительным коэффициентом пропорциональности. Со спутников берутся текущие координаты автомобиля, направление и скорость, по ним рассчитывается ошибка направления на следующую точку маршрута и вырабатывается требуемое положение колёс автомобиля. Чтобы не вышел из строя сервопривод, добавлена проверка работы двигателя (без него ГУР не работает, можно до задымления пытаться повернуть колёса).
Ноутбук собирает картинку с USB-камер, преобразует в один кадр и, пожав, отправляет оператору.
Помимо автоматического режима реализован и режим телеуправления, получилось что-то похожее на игру «Дальнобойщики».

  • Кто не мечтал о маленькой радиоуправляемой машинке?

О соревнованиях


В процессе подготовки нас поджимало время и погода (в первый день, отведенный на сборку, случился ливень, потом погода менялась очень резко, от жаркого солнца к дождливой сырости). В результате (как оказалось позже) был неправильно откалиброван датчик положения колёс и автомобиль немного забирал влево, что плохо сказалось на точности навигации. Тем не менее всё электронно-механическое хозяйство работало.
В день заезда в основном светило солнце, но ветер задувал не на шутку. Появились несколько корреспондентов и даже гости.

  • Растёт смена

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

  • Автопилот в действии

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

Итоги


Несмотря на максимальную, даже экстремальную простоту, система хорошо показала себя в работе как в автоматическом режиме, так и в режиме телеуправления. Связь была устойчивая, так что полученный автомобильчик и правда можно использовать для разведки не слишком пересеченной открытой местности.
А если серьёзно, то это хорошая практическая задача, позволяющая проверить себя в непростых условиях. Не всё получилось, что планировали, но это оставляет простор для роста.
В планах на будущее — разработать систему объезда препятствий по данным с камер или (но это уже мечта) раздобыть лидар. Ну и, конечно, обкатать-таки алгоритм следования по траектории.

Самый феерический итог подвела природа, порывом ветра повалившая стартовые ворота сразу после финиша крайней команды. По счастью, там уже никого не было.

Огромное спасибо командам, принявшим участие в соревнованиях, ведь, несмотря на непогоду, различные неполадки с железом, недосып и аврал, к заездам вышли все! А также компании ГАЗ и всем, кто сделал что-то хорошее для этих соревнований.
Владимир Дубовицкий @cattheblack
карма
5,0
рейтинг 0,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (6)

  • +2
    Не понятно, в чем тут соревнование? ИМХО такая задача может использоваться для отладки/разработки алгоритма управления на начальном этапе, в чем соревнование, в том что смогли подключить интерфейс и управлять автомобилем?

    LabView коммерческий продукт? Открытых аналогов нет?
    • +1
      Это только кажется, что просто, нужно не просто управлять автомобилем по радио, а чтобы он автоматически проходил маршрут. Тут и навигация, и автоматическое регулирование, и передача/обработка изображения, много подводных камней в реализации идеи. Хотя согласен, это не европейские соревнования.
      А LabVIEW — коммерческий продукт, хотя версия 7.1 доступна бесплатно. Но это действительно уникальная среда разработки. ориентированная на инженера, а не программиста. Мне в ней очень комфортно работать, хотя писал и на C, и на Lazarus, а в юношестве и на asm.
      • 0
        >много подводных камней в реализации идеи.

        Оно понятно, но такие «соревнования» должна проводить команда ежедневно просто во время разработки.

        >А LabVIEW — коммерческий продукт

        Коммерческий, закрытый — какая задача ставилась, показать возмножность?
        • 0
          Задача ставилась — собрать систему управления автомобилем и написать к ней софт. National Instruments — спонсор, предоставивший контроллеры и среду разработки, Но никто не запрещал использовать любые контроллеры и среды разработки. Просто на LabVIEW это сделать легче, чем на других языках. На первый план выходит именно алгоритм, а не его реализация.

          Ежедневно такие соревнования не проведешь, нужен, как минимум, полигон. Хотя алгоритм управления обкатывался на матмодели, но дьявол, как всегда, в деталях. Это ведь не профессиональная разработка, а соревнования энтузиастов, студентов и аспирантов, занимавшихся в свободное время интересным делом.
          • 0
            На сколько я представляю, в LabVIEW всё делается мышкой. Поделитесь секретом, как можно таким образом что-то действительно полезное накликать?
            • 0
              Представьте, что Вы рисуете блок-схему программы, которая тут же выполняется. Или электрическую схему, которая работает прямо с листа — это и будет LabVIEW. При этом алгоритм можно читать более наглядно, чем листинг (если он, конечно, не слишком запутанно сделан) Программу можно составлять как из простейших действий, например, арифметических или булевых, так и из сложных подпрограмм. Все потоки данных наглядно представлены, достаточно просто программируются параллельно выполняющиеся циклы и их синхронизация. Возможностей масса, не сбрасывайте мышку со счетов!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.