removeObstacle

Remove obstacles from capsule list

Since R2020b

Syntax

``removeObstacle(capsuleListObj,obstacleIDs)``
``status = removeObstacle(capsuleListObj,obstacleIDs)``

Description

example

````removeObstacle(capsuleListObj,obstacleIDs)` removes obstacles with the specified IDs from the dynamic capsule list.```
````status = removeObstacle(capsuleListObj,obstacleIDs)` additionally returns an indicator of whether an obstacles is removed, not found, or a duplicate.```

Examples

collapse all

Add obstacles to an environment using the `dynamicCapsuleList` object. Modify the properties of the obstacles. Remove an obstacle from the environment. Visualize the states of all objects in the environment at different timestamps.

Create the `dynamicCapsuleList` object. Extract the maximum number of steps to use as the number of time stamps for the object paths.

```capsuleList = dynamicCapsuleList; numSteps = capsuleList.MaxNumSteps;```

Specify the states for the two obstacles as a linear path from x = 0 m to x = 100 m. The two obstacles are separated by 10 m in opposite directions on the y-axis.

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

Generate default poses and geometric structures for the two obstacles using obstacle IDs.

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

Update Obstacles

Assign the states to the obstacles.

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

Increase the radius of the first obstacle to 2 m.

`obsGeomStruct(1).Geometry.Radius = 2;`

update the obstacles using the `updateObstaclePose` and `updateObstacleGeometry` object functions.

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

Visualize the obstacles.

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

Remove Obstacles

Remove the first obstacle from the capsule list by specifying its ID.

`removeObstacle(capsuleList,1);`

Visualize the obstacles again.

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

Input Arguments

collapse all

Dynamic capsule list, specified as a `dynamicCapsuleList` or `dynamicCapsuleList3D` object.

IDs of obstacles to remove, specified as a vector of positive integers.

Output Arguments

collapse all

Result of removing obstacles, specified as N-element column vector of ones, zeros, and negative ones. N is the number of obstacles specified in the `obstacleIDs` argument. Each value indicates whether the obstacle is removed (`1`), not found (`0`), or a duplicate (`-1`). If you specify the same obstacle ID multiple times in the `obstacleIDs` input argument, then all entries besides the last are marked as a duplicate.

Version History

Introduced in R2020b