> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# UR5e Collision-Aware Trajectories

> Batch trajectory generation with collision avoidance for UR5e

Generate batch motion trajectories for a UR5e robot arm with collision avoidance using PyRoKi.

## Parameters

<ParamField body="depth_image" type="str | PIL.Image | np.ndarray" required>
  Depth image of the scene.
</ParamField>

<ParamField body="camera_intrinsics" type="str | np.ndarray" required>
  3x3 camera intrinsics matrix.
</ParamField>

<ParamField body="T_cam_world" type="str | np.ndarray" required>
  4x4 camera-to-world transformation matrix.
</ParamField>

<ParamField body="robot_joint_positions" type="str | np.ndarray | list" required>
  Current robot joint positions `(7,)`.
</ParamField>

<ParamField body="curr_xyzs" type="str | np.ndarray | List[List[float]]" required>
  Current end-effector positions `(N, 3)`.
</ParamField>

<ParamField body="curr_wxyzs" type="str | np.ndarray | List[List[float]]" required>
  Current end-effector quaternions `(N, 4)` in wxyz order.
</ParamField>

<ParamField body="target_xyzs" type="str | np.ndarray | List[List[float]]" required>
  Target positions `(N, 3)`.
</ParamField>

<ParamField body="target_wxyzs" type="str | np.ndarray | List[List[float]]" required>
  Target quaternions `(N, 4)` in wxyz order.
</ParamField>

<ParamField body="capsule_transform" type="str | np.ndarray" required>
  4x4 transformation matrix for collision capsules.
</ParamField>

<ParamField body="aux_args" type="Dict[str, Any]">
  Auxiliary parameters:

  * `robot_radius` — Robot collision radius
  * `radius_removal_nb` — Neighbor count for radius removal
  * `radius_removal_dist` — Distance threshold for radius removal
  * `num_points` — Number of scene points for collision checking
  * `workspace_xy_dist` — Workspace XY distance limit
  * `capsule_radius_scale` — Scale factor for collision capsule radii
  * `capsule_length_scale` — Scale factor for collision capsule lengths
  * `capsule_radius_amt` — Additive offset to capsule radii
  * `capsule_length_amt` — Additive offset to capsule lengths
</ParamField>

<ParamField body="timeout" type="float | None">
  Optional HTTP timeout.
</ParamField>

## Returns

`dict` with keys:

* `output` — Array of trajectories `(N, timesteps, 7)`
* `latency_ms` — Processing time in milliseconds
* `debug` — Debug info with `pc` (point cloud), `scene_capsules`, `transformed_capsules`

## Example

```python theme={null}
from grid_cortex_client import CortexClient
import numpy as np

client = CortexClient()
N = 20
result = client.run(
    model_id="ur5e-pyroki-collision-batch",
    depth_image=np.random.uniform(0.5, 0.6, size=(480, 640)),
    camera_intrinsics=np.eye(3),
    T_cam_world=np.eye(4),
    robot_joint_positions=np.zeros(7),
    curr_xyzs=np.random.uniform(-1, 1, size=(N, 3)),
    curr_wxyzs=np.tile([1.0, 0.0, 0.0, 0.0], (N, 1)),
    target_xyzs=np.random.uniform(-1, 1, size=(N, 3)),
    target_wxyzs=np.tile([1.0, 0.0, 0.0, 0.0], (N, 1)),
    capsule_transform=np.eye(4),
    aux_args={
        "robot_radius": 0.05, "radius_removal_nb": 10,
        "radius_removal_dist": 0.06, "num_points": 1200,
        "workspace_xy_dist": 1.0,
        "capsule_radius_scale": 1.0, "capsule_length_scale": 1.0,
        "capsule_radius_amt": 0.0, "capsule_length_amt": 0.0,
    },
)
print(result["output"].shape)  # (20, timesteps, 7)
```
