|Tags||No category tags.|
- Boston Cleek
MoveIt 2 Beta - OMPL Constrained Planning Demo
Before running the demo add the following lines to
ompl_planning.yaml in the
enforce_constrained_state_space: true projection_evaluator: joints(panda_joint1,panda_joint2)
This demo includes a launch configuration for running MoveGroup and a separate demo node.
- Note: This demo shows how to construct a variety of constraints. See util.cpp for helper functions to automate constructing the constraint messages.
The MoveGroup setup can be started:
ros2 launch run_ompl_constrained_planning run_move_group.launch.py
This allows you to start planning and executing motions:
ros2 launch run_move_group run_move_group_interface.launch.py
State space selection process
There are three options for state space selection.
enforce_constrained_state_space = trueAND there must be path constraints in the planning request. This overrides all other settings and selects a
ConstrainedPlanningStateSpacefactory. If there are no path constraints in the planning request, this option is ignored, the constrained state space is only usefull for paths constraints. At the moment only a single position constraint is supported.
enforce_joint_model_state_space = trueand option 1. is false, then this overrides the remaining settings and selects
JointModelStateSpacefactory. Some planning problems such as orientation path constraints are represented in
PoseModelStateSpaceand sampled via IK. However, consecutive IK solutions are not checked for proximity at the moment and sometimes happen to be flipped, leading to invalid trajectories. This workaround lets the user prevent this problem by forcing rejection sampling in
When options 1. and 2. are both set to false, the factory is selected based on the priority each one returns. See PoseModelStateSpaceFactory::canRepresentProblem for details on the selection process. In short, it selects
PoseModelStateSpaceif there is an IK solver and a path constraint.
Changelog for package run_ompl_constrained_planning
- Unify PickNik name in copyrights (#419)
- Remove move_group namespace from MotionPlanning display (#420)
- Contributors: Tyler Weaver, Vatan Aksoy Tezer
- Update launch files to use ros2 control spawner (#405)
- Use fake_components::GenericSystem from ros2_control (#361)
- Fix EXPORT install in CMake (#372)
- Contributors: Boston Cleek, Jafar Abdi, Tyler Weaver