Add collision capsule to rigid body

Since R2022b

## Syntax

``addCapsule(capapprox,bodyname,parameters,pose)``

## Description

example

````addCapsule(capapprox,bodyname,parameters,pose)` adds a collision capsule at the next index of the rigid body `bodyname` with the specified pose `pose` and geometry parameters `parameters`.```

## Examples

collapse all

Load a robot into the workspace and visualize it.

```robotIRB = loadrobot("abbIrb120"); show(robotIRB);```

Create a capsule approximation of the robot, and visualize the capsule-approximated robot model.

```capsIRB = capsuleApproximation(robotIRB); figure show(capsIRB,homeConfiguration(capsIRB.RigidBodyTree));```

Use the `getCapsules` function to see if the end effector, `"tool0"`, has any collision capsules. Because `tool0` is just a frame, it has no collision mesh to approximate as a collision capsule.

`capsulesTool = getCapsules(capsIRB,"tool0")`
```capsulesTool = 1x0 empty cell array ```

Add a capsule to `tool0`, at a position `0.15` meters along the x-axis, with a radius of `0.15` and a length of `0`.

```addCapsule(capsIRB,"tool0",[0.15 0],trvec2tform([0.15 0 0])) show(capsIRB,homeConfiguration(capsIRB.RigidBodyTree));```

Again check tool0 for a collision capsule, and verify the properties of the detected capsule.

`capsulesTool = getCapsules(capsIRB,"tool0")`
```capsulesTool = 1x1 cell array {1x1 collisionCapsule} ```
`capsulesTool{1}`
```ans = collisionCapsule with properties: Radius: 0.1500 Length: 0 Pose: [4x4 double] ```

Remove the capsule from the base link. Then, reduce the collision capsule size of `tool0`, and move it `-0.05` meters from the previous position along the x-axis.

```removeCapsule(capsIRB,"base_link",1) updatePose(capsIRB,"tool0",trvec2tform([-0.05 0 0]),1) updateGeometry(capsIRB,"tool0",[.1 0.01],1) show(capsIRB,homeConfiguration(capsIRB.RigidBodyTree));```

## Input Arguments

collapse all

Capsule approximation of a rigid body tree, specified as a `capsuleApproximation` object.

Name of the rigid body to add the capsule to, specified as a string scalar or character vector. The rigid body must exist in the `rigidBodyTree` object of the `RigidBodyTree` property of `capapprox`.

Example: `"EndEffectorTool"`

Data Types: `char` | `string`

Radius and length of the added collision capsule, specified as a two-element row vector of the form [radius length], in meters. The radius is the radius of the spherical ends of the capsule, and the length is the length of the central line segment of the capsule.

Example: `[1 2]`

Pose for the added collision capsule, specified as a 4-by-4 homogeneous transformation matrix defined with respect to the frame of the rigid body `bodyname`.

Example: `eye(4)`

## Version History

Introduced in R2022b