shadow_robot: cyberglove | denso_arm | denso_msgs | eodev | kinematics_tests | math_utils | sr_automatic_pid_tuning | sr_control_gui | sr_convenient_dependencies | sr_friction_compensation | sr_gazebo_plugins | sr_grasp_planner | sr_hand | sr_hardware_interface | sr_kinematics | sr_mechanism_controllers | sr_mechanism_model | sr_move_arm | sr_movements | sr_remappers | sr_robot_msgs | sr_smach_example | sr_tactile_sensors | sr_tests | sr_utilities | threeD_mouse
This is a ROS interface to the Shadow Robot's robotic hand. It contains both an interface to the real hand (communicating via a CAN interface) and a simulated version of the hand. It also contains an interface to Shadow Robot's muscle arm.
- Author: Ugo Cupcic / firstname.lastname@example.org, email@example.com
- License: GPL
- Repository: shadow-ros-pkg
- Source: bzr lp:sr-ros-interface
This package provides a ROS interface to the Shadow Robot Dextrous Hand and Arm. Its aim is not only to provide a complete ROS integration to our hardware, but also to provide the user with a simulated and a dummy interface (the dummy interface is a really simple simulated interface, without any physics computation). Changing between those 3 interfaces is transparent for the end user, thus allowing you to test your algorithm in simulation, and then run them on the real hardware without changing any code.
Here is an overview of the ROS system:
As you can see, the topics are similar on the arm and hand.
sendupdate: The sendupdate message is defined in sr_robot_msgs. It is used to send one or a vector of new targets to the robot. For an example on how to publish on this topic, please refer to the Moving the Robot tutorial.
contrlr: The contrlr message is defined in sr_robot_msgs. This topic is used to set new controller parameters when you use our real hardware. To see how to publish on this topic, go to the Setting new Controller Parameters tutorial.
config: This functionality is not yet implemented.
position/joint_states: Publish a sensor_msgs/joint_states message containing the current positions of the robot. A robot_state_publisher subscribes to this topic, in order to publish to the tf topic, with a /srh/position prefix.
target/joint_states: Publish a sensor_msgs/joint_states message containing the current targets for the robot. This is not so important, but it can be used to display the targets in rviz. A robot_state_publisher subscribes to this topic, in order to publish to the tf topic, with a /srh/target prefix.
shadowhand_data: This topic publishes more information than the joint_states topics. It's based on the sr_robot_msgs/joints_data. There is a duplication of the information sent on those topics, but we can't really get rid of any of them as they may be needed in different situations.
You can specify the following parameters for the Hand or for the Arm:
publish_frequency: You can change the publishing frequency of the main robot data (shadowhand_data and joint_states). Default is 20Hz.
publish_frequency_diagnostics: You can change the rate at which diagnostics are being published for the robot. Default is 1Hz.
gazebo_joint_states_prefix: If using gazebo, what's the prefix of the joint_states published by gazebo.
Please refer to the Installation Instructions page.
We always welcome contributions. If you want to contribute, please refer to the shadow_robot stack.