2 Описание предлагаемого алгоритма

автоматического построения траектории

и навигации по счислению.


2.1 Предварительное планирование траектории.


В разработанном алгоритме строится карта местности в дискретах 1,25х1,25 м (связано с адекватным отображением самосвала на карте), считается, что самосвал занимает на карте площадь 5х9 дискрет. Траектория, получаемая по алгоритму является траекторией центра самосвала. Возможность перемещения центра самосвала на новую позицию определяется возможностью позиционирования центра самосвала в данной точке, при этом учитывается любая возможная ориентация самосвала.

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

Алгоритм заключается в следующем:

1) составляется массив 8 х a x b, где a и b - стороны прямоугольника, в который вписывается карта.

2) перед началом поиска этот массив заполняется нулями;

3) определяется точка конца траектории;

4) счётчик расстояния и искатель устанавливается на ноль;

из найденной точки делается шаг в любом возможном направлении;

если шаг параллельно осям координат - к счётчику расстояния прибавляется 10, иначе - 14;

7) значение счётчика записывается в ячейку N x X x Y, где N - направление; X, Y - координаты текущей позиции;

искатель увеличивается на 1;

происходит поиск ячеек со значением равным искателю;

если такая ячейка найдена, то от неё делаются ходы во всех возможных направлениях, при этом счётчики расстояний соответствующим образом модифицируются и записываются в новые ячейки;

если искатель достиг входа увеличиваем счётчик достижений на 1, иначе переход к пункту 8;

если счётчик достижений равен менее двух переходим к пункту 8;

обратный поиск маршрута: в точке входа находим направление, оценка расстояния которого минимальна;

делаем ход навстречу этому направлению;

если достигли входа - конец;

отыскиваем направление, оценка расстояния в котором минимальна;

переход к пункту 14.

Реальный поворот самосвала на карте и в виде траектории моделируется участком ломанной (приложение 2), содержащим излом на ±450 (в зависимости от направления) предполагается, что поворот начинается (заканчивается) раньше (позже) точки излома для ортогонального перемещения на одну дискрету, а для наклонного к осям координат на три. Вид поворота на карте приведён на рис. 2.1. В связи с этим длина прямого горизонтального участка допускается не менее трёх шагов, а наклонного - не менее семи шагов.


Приблизительный вид массива в конце траектории по окончании работы алгоритма будет иметь вид, показанный на рисунке 2.2 (траектория проходит через закрашенные клетки закрашенные клетки). В результате работы алгоритма будет получена траектория, представляющая собой незамкнутую ломанную, соседние звенья которой наклонены друг относительно друга на угол ±450 . Время работы этого алгоритма на процессоре PENTIUM S - 75 приблизительно 0,2 с., если учесть, что для проезда от начала до конца требуется запускать алгоритм лишь однажды, то быстродействие его можно считать достаточным.


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

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






















61



71



81

11

19/1



1A/1



1B/1

11


1C/1

21


1D/1

31


1E/1

41


1F/1

51


20/1

61


21/1

71
























































19/2



1A/2



1B/2



1C/2

26


1D/2

36


1E/2

46


1F/2

56


20/2

66


21/2

76

15




11




15



26



36



46



56



66



76















































1F/3



20/3



21/3






















61



71



81


















































20/4



21/4

























75



85





















































21/5




























89


Рис 2.2. Приблизительный вид массива в конце траектории по окончании работы алгоритма.


Программная реализация этого алгоритма выполнена на Ассемблере. Этот язык программирования выбран по тому, что программы разработанные на нём обладают наибольшим быстродействием и занимают минимальный объем памяти. Языки высокого уровня не смогут обеспечить требуемое быстродействие (размер программы не критичен) и содержат внутренние ошибки не поддающиеся устранению.



Информация о работе «Система автовождения карьерного автосамосвала»
Раздел: Технология
Количество знаков с пробелами: 32588
Количество таблиц: 3
Количество изображений: 16

0 комментариев


Наверх