Author Archive

Планирование траектории мобильного робота

При управлении мобильными роботами встаёт задача планирования их траектории. Например, роботу нужно попасть из пункта А в пункт Б, объехав несколько препятствий. Для этой цели окружающее робота пространство можно представить как плоский граф. Для поиска пути использовать классические алгоритмы как A* или D*. Но писать такие алгоритмы самому довольно утомительное занятие, поэтому я предлагаю использовать Open Motion Planning Library, написанную на платформе boost специально для планирования траекторий мобильных роботов и манипуляторов.
Чтобы использовать эту библиотеку нужно самому реализовать класс карты местности и классы, проверяющие допустимость нахождения робота в конкретной точке карты, допустимость перемещения робота из точки А в точку Б по прямой. Сначала я рассмотрю основные классы этой библиотеки, а потом покажу возможную реализацию указанных классов. Все примеры написаны для версии OMPL 0.93.

Читать полностью »

Comment

Распознавание движения на OpenCV

В предыдущей статье я рассмотрел математическую модель камеры, необходимую для проведения измерений. Теперь давайте попробуем камеру заставить распознавать движение. Это может понадобиться при разработке робота, реагирующего на движение внешних объектов. Детектор движения реализуем на C++ при помощи библиотеки OpenCV 2.3.

 
 
 
 
 
 
Читать полностью »

2 Comments

Калибровка камеры на OpenCV

При создании мобильных роботов иногда возникает соблазн поставить на них систему технического зрения. Но как выяснилось заставить СТЗ работать задача не из легких, поэтому мы начнём с простого – построим математическую модель камеры и определим значение всех параметров, входящих в модель, при помощи OpenCV. Эта модель оказывается очень полезной, когда мы хотим производить какие-нибудь измерения при помощи камеры.
Читать полностью »

Comment

Протокол с гарантией доставки для tr24a

При создании навигационной системы робота для участия в Eurobot 2011 мы решили использовать радио модули tr24. Но при работе с ними выяснилась одна проблема: иногда они теряют передаваемые пакеты. В нашей системе планировалось по радиоканалу передавать управляющие команду, поэтому потеря данных была просто недопустима. В связи с этим мне пришлось разработать протокол общения радио модулей tr24, гарантирующий доставку пакета.

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

Читать полностью »

7 Comments

Конечные автоматы и автоматизация или программируем ПЛК

При создании АСУ ТП с аппаратной частью все технологии уже хорошо отработанны: берём комплектующие от известных мировых производителей(BeckhoffSiemens, Schneider Electric), монтируем их в шкаф. Много трудностей это не вызывает. Небольшой обзор по аппаратной части можете посмотреть здесь. По моему опыту, больше всего проблем возникает с написанием управляющих программ и их отладкой на реальном железе.

Чтобы минимизировать временные (а значит и финансовые) затраты на программирование и отладку, разработку любой программной системы стоит начать с проектирования архитектуры. Если архитектура сделана грамотно, в процессе отладки не придётся переписывать большие объёмы кода, посторонним людям будет легко разбираться в вашем коде. Возможно, часть кода удастся использовать в следующем проекте.

В этой статье я рассмотрю возможный вариант построения программной архитектуры АСУ ТП на основе конечного автомата(state machine). Читать полностью »

Comment