Previous
Verify point cloud alignment
The motion planner needs to know where physical objects are in your workspace to plan collision-free paths. You define obstacles as geometries (boxes, spheres, or capsules) positioned in the frame system. The 3D scene tab lets you see exactly how these geometries cover your workspace, so you can verify that the planner has an accurate picture before you run a motion plan.
Navigate to your machine in the Viam app and click the 3D scene tab.
Obstacle geometries appear as translucent shapes. Each geometry is positioned according to its frame configuration: its location is defined by a translation and orientation relative to a parent frame.
Click an obstacle in the scene or the tree view to see its details:
Orbit the scene to view obstacles from different angles. Check that:
Obstacles are defined in the motion service configuration or passed as a WorldState parameter to Move requests.
For static obstacles (tables, walls, posts), define them in the configuration so they persist across motion plans.
See Define obstacles for the full configuration reference, including JSON examples for each geometry type.
After changing obstacle configuration, return to the 3D scene tab to verify the changes. The scene reflects the current saved configuration.
| Physical object | Recommended geometry | Notes |
|---|---|---|
| Table or shelf | Box | Match the surface dimensions. Include thickness if the arm could approach from below. |
| Post or column | Capsule | Set the radius to match the column width, length to match the height. |
| Round obstacle | Sphere | Use the bounding radius. Simple and fast for collision checking. |
| Wall or barrier | Box | Use a thin box with large x and z dimensions. |
| Irregular object | Box (oversized) | Use the bounding box of the object. Oversizing is safer than undersizing. |
After defining obstacles, run through this checklist in the 3D scene:
Static obstacles defined in configuration cover fixed objects in the workspace.
For objects that move (a person, a moving conveyor, another robot), you can pass obstacle geometry at runtime in the WorldState parameter of the Move request.
Dynamic obstacles use the same geometry types (box, sphere, capsule) and appear in the 3D scene when passed to the motion planner.
Pair a vision service with a camera to detect obstacles at runtime and feed them into the motion planner as dynamic obstacles. See the motion service API reference for details on obstacle detectors.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!