Documentation can be found under: https://grasplan-documentation.readthedocs.io/en/latest/
The pick action uses the configured Grasplan planner for objects present in
that planner's object catalog. If the object class is not in the catalog, the
goal is forwarded to an AnyGrasp server using the same PickObjectAction
interface. A failed Grasplan attempt for a known object is final and does not
trigger the fallback.
For the handcoded planner, known classes are the keys below the
handcoded_grasp_planner_transforms parameter. Numeric instance suffixes are
ignored, so (for example) relay_3 is checked as class relay. The fallback
forwards the original object text unchanged.
The fallback is configured by these private parameters on pick_object_node:
anygrasp_action_name(default/mobipick/grasp_object)anygrasp_generate_action_name(default/mobipick/generate_grasps)anygrasp_handles_execution(defaultfalse): whenfalse, AnyGrasp only generates candidates and Grasplan executes them through MoveIt; set it totrueto retain AnyGrasp-owned executionanygrasp_server_timeout(default2.0seconds)anygrasp_result_timeout(default300.0seconds;0waits indefinitely)
With the Grasplan pick server and AnyGrasp server running, exercise the fallback with an object description that is absent from the active planner's catalog:
rosrun grasplan open_set_pick_obj_test_action_client "red mug"This repo has a pre-commit check that runs in CI. You can use this locally and set it up to run automatically before you commit something. To install, use pip:
pip3 install --user pre-commitTo run over all the files in the repo manually:
pre-commit run -aTo run pre-commit automatically before committing in the local repo, install the git hooks:
pre-commit install