No version for distro humble showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro jazzy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro kilted showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro rolling showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro ardent showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro bouncy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro crystal showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro eloquent showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro dashing showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro galactic showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro foxy showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro iron showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro lunar showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro jade showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro indigo showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro hydro showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

Package Deprecated

This package has been integrated into MoveIt. Please consider using the new package pilz_industrial_motion_planner: https://moveit.ros.org/documentation/planners/

Package Summary

Tags No category tags.
Version 0.4.14
License LGPLv3
Build type CATKIN
Use DEPRECATED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version melodic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

This package has been integrated into moveit and is deprecated here.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.4.14 (2021-07-22)

0.4.13 (2021-07-12)

0.4.12 (2020-11-24)

0.4.11 (2020-07-16)

  • Fix CodeCoverage warnings (Remove warnings on normal builds).
  • Contributors: Pilz GmbH and Co. KG

0.4.10 (2019-12-04)

0.4.9 (2019-11-28)

0.4.8 (2019-11-22)

0.4.7 (2019-09-10)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.4.6 (2019-09-04)

0.4.5 (2019-09-03)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.4.4 (2019-06-19)

  • fixed an error that led to trajectories not strictly increasing in time
  • Contributors: Pilz GmbH and Co. KG

0.4.3 (2019-04-08)

  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.4.2 (2019-03-13)

  • re-adapt to new RobotState API: remove #attempts
  • Contributors: Pilz GmbH and Co. KG

0.4.1 (2019-02-27)

0.3.6 (2019-02-26)

  • refactor the testdataloader
  • adapt to new RobotState API: remove #attempts
  • Contributors: Pilz GmbH and Co. KG

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%
  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window
  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner
  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.4.0 (2018-12-18)

  • Use Eigen::Isometry3d to keep up with the recent changes in moveit
  • Contributors: Chris Lalancette

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange

No version for distro noetic showing kinetic. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.3.10
License LGPLv3
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PilzDE/pilz_industrial_motion.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2023-11-22
Dev Status DEVELOPED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pilz_trajectory_generation package containing the MoveIt! plugin pilz_command_planner.

Additional Links

Maintainers

  • Immanuel Martini

Authors

No additional authors.

Overview

This package provides a trajectory generator to plan standard robot motions like PTP, LIN, CIRC in the form of a MoveIt! PlannerManager plugin.

MoveIt!

MoveIt! is state of the art software for mobile manipulation, incorporating the latest advances in motion planning, manipulation, 3D perception, kinematics, control and navigation. For detailed information, please refer to the MoveIt! website.

ROS API

User Interface MoveGroup

This package implements the planning_interface::PlannerManager interface of MoveIt!. By loading the corresponding planning pipeline (pilz_command_planner_planning_pipeline.launch.xml in prbt_moveit_config package), the trajectory generation functionalities can be accessed through the user interface (c++, python or rviz) provided by the move_group node, e.g. /plan_kinematics_path service and /move_group action. For detailed tutorials please refer to MoveIt! Tutorials.

Joint Limits

For all commands the planner needs to know the limitations of each robot joint. The limits used are calculated from the limits set in the urdf as well as the limits set on the parameter server (usually put there by loading a *.yaml file such as prbt_moveit_config/config/joint_limits.yaml).

Note that while setting position limits and velocity limits is possible in both the urdf and the parameter server setting acceleration limits is only possible via the parameter server. In extension to the common has_acceleration and max_acceleration parameter we added the ability to also set has_deceleration and max_deceleration(<0!).

The limits are merged under the premise that the limits from the parameter server must be stricter or at least equal to the parameters set in the urdf.

Currently the calculated trajectory will respect the limits by using the strictest combination of all limits as a common limit for all joints.

Cartesian Limits

For cartesian trajectory generation (LIN/CIRC) the planner needs an information about the maximum speed in 3D cartesian space. Namely translational/rotational velocity/acceleration/deceleration need to be set on the parameter server like this:

cartesian_limits:
  max_trans_vel: 1
  max_trans_acc: 2.25
  max_trans_dec: -5
  max_rot_vel: 1.57

The planners assume the same acceleration ratio for translational and rotational trapezoidal shapes. So the rotational acceleration is calculated as max_trans_acc / max_trans_vel * max_rot_vel (and for deceleration accordingly).

Planning Interface

As defined by the user interface of MoveIt!, this package uses moveit_msgs::MotionPlanRequest and moveit_msgs::MotionPlanResponse as input and output for motion planning. These message types are designed to be comprehensive and general. The parameters needed by specific planning algorithm are explained below in detail.

For a general introduction how to fill a MotionPlanRequest see the Move Group Interface Tutorial.

The planner is able to handle all the different commands. Just put “PTP”, “LIN” or “CIRC” as planner_id in the motion request.

The PTP motion command

This planner generates full synchronized point to point trajectories with trapezoidal joint velocity profile. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits. If not, the strictest limits are adopted. The axis with the longest time to reach the goal is selected as the lead axis. Other axes are decelerated so that they share the same acceleration/constant velocity/deceleration phases as the lead axis.

ptp no vel

Input parameters in moveit_msgs::MotionPlanRequest

  • planner_id: PTP
  • group_name: name of the planning group
  • max_velocity_scaling_factor: scaling factor of maximal joint velocity
  • max_acceleration_scaling_factor: scaling factor of maximal joint acceleration/deceleration
  • start_state/joint_state/(name, position and velocity: joint name/position/velocity(optional) of the start state.
  • goal_constraints (goal can be given in joint space or Cartesian space)
    • for goal in joint space
      • goal_constraints/joint_constraints/joint_name: goal joint name
      • goal_constraints/joint_constraints/position: goal joint position
    • for goal in Cartesian space
      • goal_constraints/position_constraints/header/frame_id: frame this data is associated with
      • goal_constraints/position_constraints/link_name: target link name
      • goal_constraints/position_constraints/constraint_region: bounding volume of the target point
      • goal_constraints/position_constraints/target_point_offset: offset (in the link frame) for the target point on the target link (optional)
  • max_velocity_scaling_factor: rescale the maximal velocity
  • max_acceleration_scaling_factor: rescale the maximal acceleration/deceleration

planning results in moveit_msg::MotionPlanResponse

  • trajectory_start: bypass the start_state in moveit_msgs::MotionPlanRequest
  • trajectory/joint_trajectory/joint_names: a list of the joint names of the generated joint trajectory
  • trajectory/joint_trajectory/points/(positions,velocities,accelerations,time_from_start): a list of generated way points. Each point has positions/velocities/accelerations of all joints (same order as the joint names) and time from start. The last point will have zero velocity and acceleration.
  • group_name: name of the planning group
  • error_code/val: error code of the motion planning

The LIN motion command

This planner generates linear Cartesian trajectory between goal and start poses. The planner uses the Cartesian limits to generate a trapezoidal velocity profile in Cartesian space. The translational motion is a linear interpolation between start and goal position vector. The rotational motion is quaternion slerp between start and goal orientation. The translational and rotational motion is synchronized in time. This planner only accepts start state with zero velocity. Planning result is a joint trajectory. The user needs to adapt the Cartesian velocity/acceleration scaling factor if

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package pilz_trajectory_generation

0.3.10 (2019-09-11)

  • Fix clang-tidy issues
  • integrate clang-tidy via CMake flag
  • Contributors: Pilz GmbH and Co. KG

0.3.9 (2019-09-05)

  • Adapt to changes in pilz_robots
  • add static code analyzing (clang-tidy)
  • drop deprecated isRobotStateEqual()
  • Contributors: Pilz GmbH and Co. KG

0.3.8 (2019-07-02)

  • Commenting unstable test with franka emika panda

0.3.7 (2019-05-09)

  • fixed an error that led to trajectories not strictly increasing in time
  • update dependencies of trajectory_generation
  • fix CIRC path generator and increase test coverage
  • adopt strictest limits in ptp planner (refactor JointLimitsContainer and TrajectoryGeneratorPTP)
  • Enable gripper commands inside a sequence
  • Contributors: Pilz GmbH and Co. KG

0.3.6 (2019-02-26)

  • refactor the testdataloader

0.3.5 (2019-02-06)

  • Increase line coverage for blending to 100%

0.3.4 (2019-02-05)

  • refactor determining the trajectory alignment in the blend implementation
  • extend and refactor unittest of blender_transition_window
  • add planning group check to blender_transition_window

0.3.3 (2019-01-25)

  • add more details to blend algorithm description
  • change handling of empty sequences in capabilities to be non-erroneous
  • rename command_planner -> pilz_command_planner

0.3.2 (2019-01-18)

  • use pilz_testutils package for blend test
  • use collision-aware ik calculation
  • Contributors: Pilz GmbH and Co. KG

0.3.1 (2018-12-17)

0.3.0 (2018-11-28)

  • add append method for avoiding duplicate points in robot_trajectory trajectories
  • Relax the precondition on trajectory generators from v_start==0 to < 1e-10 to gain robustness
  • Set last point of generated trajectories to have vel=acc=0 to match the first point.
  • add sequence action and service capabilities to concatenate multiple requests
  • Contributors: Pilz GmbH and Co. KG

0.1.1 (2018-09-25)

  • port to melodic
  • drop unused dependencies
  • Contributors: Pilz GmbH and Co. KG

0.1.0 (2018-09-14)

  • Created trajectory generation package with ptp, lin, circ and blend planner
  • Contributors: Pilz GmbH and Co. KG

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • test/test_robots/abb_irb2400/launch/move_group.launch
      • pipeline [default: pilz_command_planner]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/abb_irb2400/launch/run_abb_irb2400.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • debug [default: false]
  • test/test_robots/frankaemika_panda/launch/move_group.launch
      • load_gripper [default: true]
      • debug [default: false]
      • info [default: $(arg debug)]
      • allow_trajectory_execution [default: true]
      • fake_execution [default: false]
      • max_safe_path_cost [default: 1]
      • jiggle_fraction [default: 0.05]
      • publish_monitored_planning_scene [default: true]
  • test/test_robots/frankaemika_panda/launch/moveit_planning_execution.launch
    • Copyright (c) 2018 Pilz GmbH & Co. KG This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see .
      • pipeline [default: ompl]
      • load_robot_description [default: true]
  • test/test_robots/prbt/launch/test_context.launch
      • gripper [default: ]
      • robot_description [default: robot_description]
      • robot_description [default: robot_description_$(arg gripper)]

Messages

No message files found.

Services

No service files found

Recent questions tagged pilz_trajectory_generation at Robotics Stack Exchange