Note: This tutorial assumes that you have completed the previous tutorials: smart_arm_controller/Tutorials/Getting Started with a Smart Arm. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
How to control a Crust Crawler Smart Arm with Dual Gripper using the smart_arm_controller
Description: This tutorial describes how to control your Crust Crawler Smart Arm using the smart_arm node.Tutorial Level: BEGINNER
Compiling
First, you need to compile all dependencies, ensuring all ROS msgs are generated.
$ rosmake smart_arm_controller
Running
Make sure all the parameters in the smart_arm.yaml file match your hardware configuration (see the first tutorial). Launch the smart arm controller:
$ roslaunch smart_arm_controller smart_arm.launch
Sending Commands to Move Smart Arm Joints
Each joint controller in the yaml file will subscribe to a command topic to move that joint: shoulder_pan_controller, shoulder_pitch_controller, elbow_flex_controller, wrist_roll_controller, right_finger_controller and left_finger_controller
Here are some examples (all angles are in radians):
$ rostopic pub -1 /wrist_roll_controller/command std_msgs/Float64 -- 2 $ rostopic pub -1 /elbow_flex_controller/command std_msgs/Float64 -- -3
Each controller will also be able to call the Services created by the controller manager. Here are some examples of calling Services and setting new values for various joints:
$ rosservice call /wrist_roll_controller/torque_enable 1 $ rosservice call /shoulder_pitch_controller/set_speed 2.5