Custom wrapper for MoveIt2 that enables simpler interaction from python scripts.
The package can be used for different kind of robots.
At the moment is tested with KUKA and UR robots.
This functionality is enabled by using generic kinematics setup (see config/generic_kinematics.yaml).
If you need more advanced kinematics then adjust moveit_wrapper.launch.py as needed. Setting kinematics using launch argument is not tested!
Launch the moveit wrapper with specific configuration, e.g.,
ros2 launch moveit_wrapper bringup.launch.py robot_name:=maurob_cell description_package:=maurob_cell_description description_file:=maurob_cell.urdf.xacro moveit_config_package:=maurob_cell_description semantic_description_file:=maurob_cell.srdf.xacro
MoveItWrapper requires some parameters, defined in config/moveit_wrapper.yaml.
- planning_group: The group to plan for, defaults to "manipulator"
- trajectory_execution_timeout: Timeout for trajectory execution, defaults to 60.0 seconds
- default_allowed_planning_time: the default allowed planning time, defaults to 5.0 seconds.
MoveItWrapper MoveTo service offers to further configure the planners at runtime, for each request.
To simplify the usage, Presets called planner profiles were created, and can be requested via their names.
The planner profiles offer the following settings to be preset via parameters (see config/moveit_wrapper.yaml):
- names: Name of the planner profile. Can be any user-friendly name.
- planning_pipeline: Name of the planning pipeline. Must match one of the available pipeline loaded in MoveI. Example "ompl", "chomp", "pilz", ...
- planner_id: Name of the planner within the planning pipeline, empty for default. See the pipelines for available planners.
- num_planning_attempts: Number of planning (currently seems to not be respected by MoveGroupInterface).
- is_cartonly_planner: Specifies if the planner can only do cartesian. This permits aborting in case non-cartesian is requested with such planners.
- requires_cart_interpolation : Specifies if the planner needs a computeCartesianPath call (which interpolates a Cartesian motion into joint-space).
- use_constraint: Activates constraints for that planner. Currently only tested (and configured) for OMPL.
- allowed_planning_times: Override for the default planning time; permits to allow more time for more complex motion or with constraints.
A default_profile_name can be provided (defaults to "default", with "default" being the simplest "ompl" planner always added to the provided profiles).
In addition to the profiles, a single constraint shared among all profiles can be configured (orientation only for now).
frame_id is set by default to kinematic base if frame_id is empty. link_name is set by default to the eef defined in SRDF if link_name is empty.
absolute_tolerance is a vector of values for tolerances around x, y, z of the frame_id that will be respected for the link_name.