Training

Jacobi allows to improve or accelerate the motion calculation by prior training. Pre-computation is well known in motion planning, e.g. for probabilistic roadmaps, however we extend this concept to the complete motion planning pipeline. Training your motions is optional, but it might be essential for a wide range of application that require online queries and fast motion calculations. Commonly, training is able to reduce the motion calculation time to less than 1ms!

Support

Training is not enabled by default - please send us a message if you’re interested!

Motion Regions

Instead of using exact waypoints as before, start and goals can also be specified by motion regions. Later on, when we plan an actual trajectory, we can pass the exact start and goal positions that needs to lie within the regions. A region is determined by a lower and upper bound in either joint or Cartesian space:

bin_region = CartesianRegion(
    lower_bound=Frame.from_euler(-0.2, -0.3, 0.2, 0, 0, 3.1415),
    upper_bound=Frame.from_euler(0.2, 0.3, 0.25, 0, 0, 3.1415),
)

In this bin picking example, the grasp point lies somewhere inside the bin, and this knowledge can be used to accelerate the motion calculation significantly. We construct the motions similar as before,

bin_to_place_motion = Motion('bin-to-place', robot, start=bin_region, goal=place_waypoint)

just passing a region as the start now. Again, we need to inform the planner about our motion via

planner.add_motion(bin_to_place_motion)

Start a Training

We can start the training in the Training tab of Jacobi Studio. After the training has finished, you can download the motion plan file and jump directly to loading the motion plan.

Studio Start Training

Loading the Motion Plan

The planner loads the trained motion plan (the *.jacobi-plan file) via

planner.load_motion_plan('my-setup.jacobi-plan')

If you know specify start and goal waypoints within the trained regions, the Jacobi motion planner will automatically detect that and switch to the accelerated planning.