Problem generator and planners benchmark based on the manipulation of articulated objects.
Before running the scripts, you can check the sample problems and plans that we have already generated in
the problems
, plans
and logs
folders.
Simple:
- Relative: a domain modelling an articulated object with a set of links and joints. Each joint has an angle associated representing the difference in orientation between the precedent link and the successive one.
- Oriented: as above, but with an extra
link_ground
andjoint_ground
. It is used when it is necessary to discriminate among configurations by their absolute orientation as a whole (e.g., the end orientation of the object is important too, not just the "shape").
Conditional:
- Legacy: a domain using absolute orientations instead of relative ones, modelled using conditional operators. Each joint represent the angle of the link that follows.
- Simplified: similar to the one above, but simplified for use in robotics. Links are ordered and only downstream propagation is allowed. Angles are assigned directly to links and joints are eliminated.
In general, to change the state of the joint
angle, actions assume that we act on the first link
argument, while somehow constraining the second one.
Note: given a joint, it is possible to change its state by acting either on the precedent link or the successive one. The physical interpretation of actions may change from one model to another. The only exception is the simplified domain which only allows acting on a link while constraining the precedent one.
-
generate_problems.py
generates problems for both simple and conditional cases with equivalent initial and final states. Includes options to set the desired base domain, the number of samples and joints, the resolution, and the average difference between joint angles in the initial and final states. Problems are stored in theproblems
folder by batch with a tag indicating resolution, number of links and average difference. -
generate_plans.py
plans all the batches inproblems
and stores the results inplans
folder. It uses both Madagascar and Probe planners. A log of planning time and number of actions is stored in thelogs
folder. Please note that when this script is launched, theplan
folder is cleaned of all its content before generating new plans.
run.sh
generates six batches of problems differing by resolution and number of joints for each domain alternative, then it launches the planners and logs the results. It can be a long process on slower machines.
Run --help
to have more detailed information about Python scripts options.