Список препятствий на основе динамических капсул
The dynamicCapsuleList3D
объект управляет двумя списками объектов столкновения на основе капсул в трехмерном пространстве. Объекты столкновения разделяются на два списка, тела эго и препятствия. Для ego тел и препятствий в 2-D, смотрите dynamicCapsuleList
объект.
Каждый объект столкновения в двух списках имеет три ключевых элемента:
ID -- Целое число, которое идентифицирует каждый объект, сохраненный в EgoIDs
свойство для ego тел и ObstacleIDs
свойство для препятствий.
Состояния - Расположение и ориентация объекта как матрицы M-на-6, где каждая строка имеет форму [x y z qW qX qY qZ]
, и M количество состояний вдоль пути объекта в мировой системе координат. Список состояний предполагает, что каждое состояние разделено фиксированным временным интервалом. xyz -положения указаны в метрах, а ориентация - четырехэлементный вектор кватерниона. Локальный источник по умолчанию расположен в центре левого полушария капсулы.
Геометрия - Размер объекта на основе капсулы на основе заданных длины и радиуса. Радиус применяется к сферическим концам, а длина - к длине цилиндра. TTo сдвиньте геометрию капсулы и локальный источник относительно исходной точки по умолчанию, задайте преобразование 4 на 4 относительно локальной системы координат капсулы. Чтобы сохранить преобразование по умолчанию, задайте eye(4)
.
Используйте функции объекта для динамического добавления, удаления и обновления геометрий и состояний различных объектов в окружение. Чтобы добавить тело ego, смотрите addEgo
функция объекта. Чтобы добавить препятствие, смотрите addObstacle
функция объекта.
После определения всех путей к объектам проверяйте пути к ego-телу и проверяйте на столкновения с препятствиями на каждом шаге, используя checkCollision
функция объекта. Функция проверяет только, сталкивается ли тело эго с препятствием, игнорируя столкновения между только препятствиями или только телами эго.
obstacleList = dynamicCapsuleList3D
создает динамический список препятствий на основе капсул без эго-тел или препятствий. Чтобы начать создание списка препятствий, используйте addEgo
или addObstacle
функции объекта.
addEgo | Добавьте тела эго в 3D капсулы списка |
addObstacle | Добавьте препятствия к 3-D капсулы списка |
checkCollision | Проверяйте на столкновения между эго-телами и препятствиями |
egoGeometry | Геометрические свойства эго тел |
egoPose | Положения эго-тел |
obstacleGeometry | Геометрические свойства препятствий |
obstaclePose | Положения препятствий |
removeEgo | Удалите тела эго из списка капсул |
removeObstacle | Удаление препятствий из списка капсул |
show | Отображение эго-тел и препятствий в окружении |
updateEgoGeometry | Обновление геометрических свойств эго-тел |
updateEgoPose | Обновление состояний эго-тел |
updateObstacleGeometry | Обновление геометрических свойств препятствий |
updateObstaclePose | Обновление состояний препятствий |