Skip to content

A low-level ROS package for the safe operation of robots.

License

Notifications You must be signed in to change notification settings

ros-pybullet/safe_robot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

safe_robot

A low-level ROS package for the safe operation of robots. Easily setup with a single launch file. The safe_robot_node.py acts as a remapper. Target joint states are passed through several safety checks, if safe then the command is sent to the robot, otherwise they are prevented. Possible checks

  • joint position limits
  • joint velocity limits
  • end-effector/link box limits
  • self-collision check

Node

safe_robot_node.py

Subscribed topics

Published topics

Parameters

  • ~exotica_xml_filename (string)

    An EXOTica XML filename. This should point to a URDF and SRDF file.

  • ~link_xlim (string)

    Two floats separated by a space that specifies the end-effector/link limits in the x-axis for the world frame.

  • ~link_ylim (string)

    Two floats separated by a space that specifies the end-effector/link limits in the x-axis for the world frame.

  • ~link_zlim (string)

    Two floats separated by a space that specifies the end-effector/link limits in the x-axis for the world frame.

  • ~safe_links (string)

    A list of links that should be bound with the box limits, each link name should appear in the URDF or EXOTica XML config file. Every name should be separated by a space.

  • ~joint_position_limit_factor (double, default: 0.95, min: 0.0, max: 1.0)

    The joint position limits (from URDF) are multipled by a factor to determine safe operation.

  • ~joint_velocity_limit_factor (double, default: 0.95, min: 0.0, max: 1.0)

    The joint velocity limits (from URDF) are multipled by a factor to determine safe operation.

  • ~safe_distance (double, min: 0.0)

    Safe distance used in self-collision check calculation.

  • ~publish_as_joint_state (bool, default: true)

    When true the commands are published as sensor_msgs/JointState messages, otherwise std_msgs/Float64MultiArray messages are used.

  • ~check_joint_position_limits (bool, default: true)

    When true the joint position limits are checked, false otherwise.

  • ~check_joint_velocity_limits (bool, default: true)

    When true the joint velocity limits are checked, false otherwise.

  • ~check_link_limits (bool, default: true)

    When true the end-effector/link limits listed in ~safe_links (above) are checked, false otherwise.

  • ~check_self_collision (bool, default: true)

    When true the target state is checked for self-collisions, false otherwise. This utilizes the functionality of EXOTica.

  • ~stop_after_first_fail (bool, default: true)

    When true all future target states are prevented.

  • ~debug (bool, default: false)

    When true debug mode is turned on.

  • ~joint_name_order (string, default: ordering specified by EXOTica)

    This parameter can be used to specify a joint ordering that is different to that is required by a controller. For example, when a robot accepts std_msgs/Float64MultiArray messages, the ordering of the joint positions is critical. Some controllers accept these in a different order to the given URDF.

About

A low-level ROS package for the safe operation of robots.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.5%
  • CMake 4.5%