Беспилотный робот не в ROS


В свете создания максимально наукоемкого проекта, мы выбрали путь работы с голым кодом. Программирование всех систем идет в чистом виде, без программ посредников.

Салют!

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

Программа водитель в части навигации основана на использовании автономно развертываемой системы позиционирования в реальном времени (RTLS), работающей по принципу ToF (Time of Flight) и организованной с извлечением полезных данных локально на хосте ТС – аналогично системам GPS. Предполагается при этом, что транспортное средство также оборудовано инерциальными измерителями, способными так или иначе оценить пройденный путь. Соотношение точностей отдельных измерений инерциальной навигации и ориентирной навигации с помощью RTLS учитывается выбором коэффициента усиления Калмана, при этом оно допустимо в существенно широких пределах так, что инерциальная точность может быть кратно ниже, например, при действии механической помехи движению.

Мы умеем управлять клининг-роботом и Toyota Prius, механика одинаковая. Но об этом в другой статье.

Каждая дуга основного мастер-маршрута является итерацией вождения, в течение которой транспортное средство условно не контролируется водителем, но может быть и должно быть перехвачено при обнаружении водителем препятствий и/или других незапланированных возмущений. В таком случае, логически, программа водитель переходит на ведение ТС по альтернативному маршруту (стояние на месте, в том числе, считается маршрутным ходом), а мастер-маршрут удерживается неизменным в фоне. Длины итераций, а равно, подробность аппроксимации маршрутов выбираются разумно малыми, ограниченными скоростью и производительностью систем измерения, необходимостью движений с ускорением (переходными движениями), особенностями ТС.

Ведение по маршруту программа водитель осуществляет путем постановки в каждой итерации задачи транспортному средству, описываемой, как минимум, двумя параметрами: углом и длиной дуги. В качестве дополнительных могут выступать временнЫе параметры: скорость, ускорение и др., но для обеспечения геометрии пути именно временнЫе характеристики вторичны и могут определяться независимо. Продолжительность итерации для водителя – произвольная, итерация заканчивается уведомлением от транспортного средства о выполнении задачи. Здесь излишне отметим, что, если ТС выполняло бы задачу идеально, безо всякой исполнительной ошибки как внешнего, так и интринсивного происхождения, то эффективное вождение достигнуто; но практически это невозможно, а, следовательно, в контроле и коррекции такой ошибки и состоит содержание вождения, которые в предлагаемом решении производятся с помощью ориентирной навигации через систему RTLS. Программа водитель в завершении итерации производит измерение в данной системе и получает в качестве результата вектор соотнесенных расстояний от установленной на ТС радиометки до радиомаяков, предварительно известного расположения в некоторой декартовой системе координат. Чтобы такой результат был полезен необходимо выполнить мультилатерацию вектора расстояний и получить оценку координат метки и самого ТС.

Точное решение задачи мультилатерации при стохастическом входном векторе расстояний и произвольном числе элементов такого вектора, т.е. числе видимых маяков, осуществить практически невозможно. Нам удалось подобрать субоптимальный метод решения такой задачи, основанный на последовательном приращении некоторого расчетного приближения положения путем рекурсии средней векторной суммы разностей измеренное-расчетное расстояние до наступления некоторого минимизирующего критерия. В момент респауна ТС на площадке вождения полноценное определение координат закономерно возможно при видимости четырех или более радиомаяков, но в продолжении вождения метод уже устойчив к изменению их количества: штатно работоспособен при числе элементов вектора расстояний более двух, при двух – если отсутствуют существенные перепады высоты, при одном – некоторое весьма ограниченное время. Взаимосвязь числа векторов и точности определения координат прямая, ярко выраженная и может быть использована для регулирования калмановского усиления.

Контроль положения и ориентации ТС на маршруте осуществляется в предположении, что на любой итерации вождения пройденный путь, содержащий исполнительную ошибку, – это дуга некоторой окружности, а сама такая ошибка описывается той же парой чисел, что и задача, ставящаяся ТС: ошибка по углу и ошибка по длине дуги. Основная матрица преобразования в однородных координатах, устанавливающая полное пространственное положение ТС в системе координат площадки вождения, непрерывно оценивается в конце каждой итерации в два счёта: требуемый поставленной задачей переход и поправка по повороту и смещению, рассчитанная по результатам измерений. Заметим, что так как RTLS измерение содержит в себе информацию только о поступательных степенях свободы, но не о вращательных, для расчета поправки и требуется допущение о дугообразности пройденного пути.

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

Таким образом, в начале каждой следующей итерации программа водитель рассчитывает интегральную маршрутную поправку, добавляет её к рассчитанной в конце предыдущей итерации дифференциальной поправке, далее рассчитывает и складывает с ними основной маршрутный ход, тем самым формируя задачу ТС, передает ТС эту задачу, дожидается её выполнения и фактических инерциальных данных о нём, в течение чего анализирует и контролирует окружающую обстановку, принимает уведомление о выполнении задачи, после выполняет измерение в системе RTLS и мультилатерирует его результаты, теперь просчитывает основной переход матрицы преобразования и рассчитывает очередную дифференциальную поправку, сопоставляя положение, ожидаемое по задаче и инерциальным данным, с результатами мультилатерации и поправляет матрицу преобразования. Здесь итерация окончательно завершается, а цикл повторяется вновь. При этом явно допускается, что транспортное средство может намеренно изменить по тем или иным причинам принятую им задачу, дав отчет о результатах состоявшегося движения, нужно сказать, что за данные задачи, используемые водителем для дальнейших расчетов, именно и только принимаются данные этого отчета.

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

Нами разрабатывается, исследуется и тестируется в настоящий момент идея и технология интеллектуальной нейронной сети, основанной на разделении признакового пространства на соответствующие классы и подклассы с помощью замкнутых решающих границ, а не гиперплоскостей, даже и с учетом, так называемого, ядерного трюка (kernel trick). Ключевая содержательность в реализации такой идеи состоит в необходимости выполнить обучение такой сети с помощью сложноветвящегося эволюционного генетического алгоритма, формирующего по результату не один успешный вектор генов (генотип), а их множество. Преимущества такой технологии классификации и распознавания сводятся к потенциальной преодолимости двух широко известных проблем существующих аналогичных решений одновременно: проблемы открытых миров (Open Set Recognition) и проблемы катастрофического забывания (Catastrophic Interference).