Wiki

Only released in EOL distros:  

arm_navigation: arm_kinematics_constraint_aware | arm_navigation_msgs | collision_map | collision_space | constraint_aware_spline_smoother | geometric_shapes | joint_normalization_filters | kinematics_base | kinematics_msgs | mapping_rviz_plugin | motion_planning_rviz_plugin | move_arm | ompl | ompl_ros_interface | planning_environment | planning_models | robot_self_filter | sbpl | spline_smoother | trajectory_filter_server

Package Summary

Define the robot model and collision environment based on ROS parameters.

arm_navigation: arm_kinematics_constraint_aware | arm_navigation_msgs | collision_map | collision_space | constraint_aware_spline_smoother | geometric_shapes | joint_normalization_filters | kinematics_base | kinematics_msgs | mapping_rviz_plugin | motion_planning_rviz_plugin | move_arm | ompl_ros_interface | planning_environment | planning_models | robot_self_filter | spline_smoother | trajectory_filter_server

Package Summary

Define the robot model and collision environment based on ROS parameters.

arm_navigation: arm_kinematics_constraint_aware | arm_navigation_msgs | collision_map | collision_space | constraint_aware_spline_smoother | geometric_shapes | joint_normalization_filters | kinematics_base | kinematics_msgs | mapping_rviz_plugin | motion_planning_rviz_plugin | move_arm | ompl_ros_interface | planning_environment | planning_models | robot_self_filter | spline_smoother | trajectory_filter_server

Package Summary

Define the robot model and collision environment based on ROS parameters.

Overview (e-turtle)

A number of changes have been made to the planning_environment. Details to follow, but much of the information on diamondback no longer holds.

Overview (diamondback)

The planning_environment is a library/ROS node that allows users to instantiate robot models and collision models based on data from the parameter server with minimal user input. Additionally, state information for both robot models and collision environments can be monitored.

Planning_environment constructs a model of the robot through the URDF and will update the current state of the robot using joint information. Planning_environment will also listen to range sensor data, constructing a collision space to be used for checking collision between the robot and the environment. Other objects can be added to the collision space as well.

The primary purpose of the planning environment is to allow for checking whether states and trajectories are safe or unsafe due to violating constraints, joint limits, or causing the robot to collide with itself of the environment. The primary interface to the planning_environment is through the environment_server which is a ROS node providing all the topic and service functionality.

The ROS API for this node is explained in detail below.

ROS API

API stability

Services offered

Utility services
These are the services that planning environment offers for performing utility functions like figuring out all the joints in a group. get_joints_in_group (planning_environment_msgs/GetJointsInGroup) get_robot_state (planning_environment_msgs/GetRobotState)
Monitoring configuration services
These are the services that allows for configuring the monitoring behavior in the planning environment. set_constraints (planning_environment_msgs/SetConstraints)
Monitoring/Checking services
These are the services that the planning environment provides to checks plans, check whether goal states have been reached, and for monitoring trajectories. get_environment_safety (planning_environment_msgs/GetEnvironmentSafety) get_execution_safety (planning_environment_msgs/GetExecutionSafety) get_trajectory_validity (planning_environment_msgs/GetJointTrajectoryValidity)
Collision space information
Services for getting information about the current state of the collision space. ~/get_objects_in_collision_map (planning_environment_msgs/GetObjectsInCollisionMap) ~/get_current_allowed_collision_matrix (planning_environment_msgs/GetAllowedCollisionMatrix) ~/set_allowed_collisions (planning_environment_msgs/SetAllowedCollisions) ~/revert_allowed_collisions (std_srvs/Empty)

Parameter configuration

~robot_description (string, default: "robot_description")

~allow_valid_collisions (bool, default: false) ~collision_map_safety_timeout (double, default: 0.0) ~joint_states_safety_timeout (double, default: 0.0 (seconds)) ~group (string, default: "") ~global_frame (string, default: "") ~tf_safety_timeout (double, default: 0.0 (seconds)) ~contacts_to_compute_for_display (int, default: 1) ~contacts_to_compute_for_allowable_contacts_test (int, default: 10) ~use_collision_map (bool, default: true) ~velocity_history_size (int, default: 20) <robot_description_name>_planning/groups (XmlRpc::TypeArray, default: <empty>) <robot_description_name>_collision/robot_padd (double, default: .01) <robot_description_name>_collision/robot_scale (double, default: 1.0) <robot_description_name>_collision/default_collision_operations (XmlRpc::TypeArray, default: <empty>) ~object_padd (double, default: 0.02) ~pointcloud_padd (double, default: 0.02) ~joint_state_cache_allowed_difference (double, default: 0.25) ~bounding_planes (string, default: 0 0 1 -0.01)

ROS topics

Published Topics

environment_server_collision_markers (visualization_msgs/Marker) allowed_contact_regions_array (visualization_msgs/MarkerArray)

Subscribed Topics

collision_map (mapping_msgs/CollisionMap) collision_map_update (mapping_msgs/CollisionMap)

Tutorials

Tutorials for this package are available in the motion_planning_environment stack tutorials.

Wiki: planning_environment (last edited 2011-07-12 22:35:37 by EGilJones)