removeObstacle

Удалите препятствия из списка капсул

Описание

пример

removeObstacle(capsuleListObj,obstacleIDs) удаляет препятствия с заданными идентификаторами из динамического списка капсул.

status = removeObstacle(capsuleListObj,obstacleIDs) дополнительно возвращает индикатор того, удалены ли препятствия, не найдены, или копия.

Примеры

свернуть все

Добавьте препятствия среде с помощью dynamicCapsuleList объект. Измените свойства препятствий. Удалите препятствие из среды. Визуализируйте состояния всех объектов в среде в различных метках времени.

Создайте dynamicCapsuleList объект. Извлеките максимальное количество шагов, чтобы использовать в качестве количества меток времени для контуров объектов.

capsuleList = dynamicCapsuleList;
numSteps = capsuleList.MaxNumSteps;

Добавьте препятствия

Задайте состояния для этих двух препятствий как линейный контур от x = 0 м к x = 100 м. Эти два препятствия разделяются на 10 м в противоположных направлениях на оси Y.

obsState = linspace(0,1,numSteps)'.*[100 0 0];
obsState1 = obsState+[0 10 0];
obsState2 = obsState+[0 -10 0];

Сгенерируйте положения по умолчанию и геометрические структуры для этих двух препятствий с помощью идентификаторов препятствия.

[obsIDs,obsPoseStruct] = obstaclePose(capsuleList,[1 2]);
[obsIDs,obsGeomStruct] = obstacleGeometry(capsuleList,obsIDs);

Обновите препятствия

Присвойте состояния препятствиям.

obsPoseStruct(1).States = obsState1;
obsPoseStruct(2).States = obsState2;

Увеличьте радиус первого препятствия 2 м.

obsGeomStruct(1).Geometry.Radius = 2;

обновите препятствия с помощью updateObstaclePose и updateObstacleGeometry функции объекта.

updateObstaclePose(capsuleList,obsIDs,obsPoseStruct);
updateObstacleGeometry(capsuleList,obsIDs,obsGeomStruct);

Визуализируйте препятствия.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains 2 objects of type patch.

Удалите препятствия

Удалите первое препятствие из списка капсул путем определения его ID.

removeObstacle(capsuleList,1);

Визуализируйте препятствия снова.

show(capsuleList,'TimeStep',1:numSteps);
axis equal

Figure contains an axes object. The axes object contains an object of type patch.

Входные параметры

свернуть все

Динамический список капсул в виде dynamicCapsuleList или dynamicCapsuleList3D объект.

Идентификаторы препятствий, чтобы удалить в виде вектора из положительных целых чисел.

Выходные аргументы

свернуть все

Результат удаления препятствий в виде N - вектор-столбец элемента из единиц, нулей и отрицательных единиц. N является количеством препятствий, заданных в obstacleIDs аргумент. Каждое значение указывает, удалено ли препятствие (1), не найденный (0), или копия (-1). Если вы задаете тот же ID препятствия многократно в obstacleIDs входной параметр, затем все записи помимо последнего отмечены как копия.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2020b