Linear Motion

The LinearMotion class provides an interface for planning singularity-free linear motion in Cartesian space between any two waypoints. We construct a LinearMotion object with a unique name, the robot that should execute the motion, and a start and goal waypoint:

linear_motion = LinearMotion('linear-segment', robot,
    start=grasp_waypoint,
    goal=place_waypoint,
)

Again, note that a copy of the robot instance is made, and thus you can change kinematic limits for the motion without changing the original robot afterwards. In most cases, the planned trajectory will be a jerk-constrained straight line in Cartesian space between the start and goal waypoints. However, the trajectory might slightly deviate from the straight line in order to avoid singularities.


In the next tutorial, we will delve into the details of the PathFollowingMotion class, which enables accurate following of desired paths in Cartesian space.