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),
)
CartesianRegion bin_region {
Frame::from_euler(-0.2, -0.3, 0.2, 0, 0, 3.1415),
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)
Motion bin_to_place_motion {"bin-to-place", robot, bin_region, 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)
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.
Loading the Motion Plan¶
The planner loads the trained motion plan (the *.jacobi-plan
file) via
planner.load_motion_plan('my-setup.jacobi-plan')
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.