Previous Page  3 / 16 Next Page
Information
Show Menu
Previous Page 3 / 16 Next Page
Page Background

Моделирование взаимодействия мобильного робота и опорного основания…

Инженерный журнал: наука и инновации

# 12·2016 3

находят по касательной скорости

tan

v

, нормальной силе и коэффици-

енту трения, т. е.

K

;

( ,

);

( , )

tan

pnt

N

pnt

pnt

T

tan N

v v v F f r v

F f v F

= −

=

=

;

где

K

v

— скорость точки контакта.

Однако для адекватного разрешения контакта прежде всего необ-

ходимо определить факт пересечения геометрии грунта и транспорт-

ной машины. Для решения этой задачи наиболее подходит алгоритм

GJK (Gilbert–Johnson–Keerthi).

Алгоритм GJK (Gilbert–Johnson–Keerthi)

.

В конце 1980-х гг.

разработан алгоритм GJK, предназначенный для эффективного ана-

лиза пересечения многогранников и нахождения расстояния между

ними. С тех пор видоизмененные версии алгоритма применяются в

различных приложениях — от компьютерных игр до систем модели-

рования [5, 6]. В Интернете доступно множество описаний GJK и

примеров его реализации [7].

Приведем только основные положения алгоритма. Итак, для пары

выпуклых многогранников можно построить так называемое

конфи-

гурационное пространство препятствий

— CSO (Configure Space

Obstacle, по терминологии его разработчиков), представляющее со-

бой массив вершин. Координаты вершин CSO вычисляют как разность

координаты каждой вершины первого и каждой вершины второго мно-

гогранника. После чего можно утверждать, что выпуклые многогранни-

ки пересекутся только в том случае, когда составленная из внешних

вершин CSO фигура будет содержать начало координат (рис. 2).

Для многогранников на рис. 2, имеющих шесть и восемь вершин,

пространство CSO состоит из 48 вершин, поэтому в процессе работы

алгоритма полностью CSO нельзя вычислить. Вместо этого ищут

простейшую геометрическую фигуру — симплекс (в трехмерном

случае — тетраэдр

ABCD

на рис. 3), содержащую начало координат

(точка

О

). Обычно для построения тетраэдра используют так называ-

емую

вспомогательную функцию

(support function), которая находит

самую дальнюю вершину CSO в заданном направлении. С помощью

этой функции случайно выбранную в CSO точку последовательно

развивают до линии, треугольника, тетраэдра, всякий раз выбирая

направление на начало координат.

Если по итогам работы алгоритма GJK удается построить сим-

плекс, содержащий начало координат, то можно сделать вывод о пе-

ресечении многогранников. В противном случае, находят вектор рас-

стояния между ними — от ближайшего треугольника симплекса до

начала координат. В настоящей работе алгоритм GJK используется

только для определения факта пересечения, хотя часто его применя-

ют и для нахождения прочих параметров контакта [5].