Move an arm

Viam exposes three ways to command an arm, each suited to a different situation:

  • Move to a Cartesian pose uses the motion service. The planner finds a collision-free path from the arm’s current pose to the target. This is the right default when you know where the end effector needs to go and you want the planner to figure out how to get there.

  • Move with constraints is the same Cartesian-target path plus rules about how the arm moves (stay on a straight line, keep the end effector level). Use this when the shape of the motion matters, not just the destination.

  • Move by setting joint positions bypasses the planner and drives each joint directly to a commanded angle. Use this when you know the joint angles you want, you need predictable motion between two known configurations, or you want to avoid the planner picking an unexpected IK solution.

See Constraints for the full reference on the four constraint types.

How-tos