Создайте путь к эго-телу и сохраните состояния препятствий, используя dynamicCapsuleList3D
объект. Визуализируйте состояния всех объектов в окружении в различных временных метках. Проверьте путь тела ego путем проверки на столкновения с препятствиями в окружении.
Создайте dynamicCapsuleList3D
объект. Извлеките максимальное количество шагов для использования в качестве количества меток времени для путей к объекту.
Добавить тело Ego
Задайте тело ego путем определения идентификатора, геометрии и состояния вместе в структуре. Геометрия капсулы имеет длину 3 м и радиус 1 м. Задайте состояние как линейный путь от x = 0 м до x = 100 м.
Добавление препятствий
Задайте состояния для двух препятствий, которые отделены от тела эго на 5 м в противоположных направлениях по оси Y. Предположим, что препятствия имеют одинаковую геометрию geom
как тело эго.
Обновляйте препятствия
Изменяйте местоположения препятствий и размерности с течением времени. Используйте ранее сгенерированную структуру, изменяйте поля и обновляйте препятствия с помощью updateObstacleGeometry
и updateObstaclePose
функции объекта. Уменьшите радиус первого препятствия до 0,5 м, и измените путь, чтобы переместить его в сторону тела эго.
Проверка на наличие коллизий
Визуализируйте новые пути. Показать, где происходят столкновения между эго-телом и препятствием, которые отображение подсвечивает красным цветом. Заметьте, что столкновения между препятствиями не проверяются.
Программно проверяйте на столкновения bu с помощью checkCollision
функция объекта. Функция возвращает вектор логических значений, который указывает на состояние столкновения на каждом временном шаге. Вектор транспонируется в целях отображения.
collisions = 1x31 logical array
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0
Чтобы проверить пути с большим количеством шагов, используйте any
функция на векторе значений столкновения.
Обновление пути Ego
Задайте новый путь для тела ego. Снова визуализируйте пути, отображая столкновения.