Contents
Puppet Example
Summary
Use puppet as an example of controlling Baxter using joint velocity control.
Code Walkthrough
Joint Velocity Puppet - Code Walkthrough
Quickstart
Start the puppet example from an RSDK terminal session, specifying the left
or right
arm as the "puppet", ex:
$ rosrun baxter_examples joint_velocity_puppet.py -l right
Grab the other arm (e.g. the left in this case) at the cuff and move it around using '0 G' mode to puppet the arm specified on the command line.
Video
Overview
There are three modes of control for Baxter's arms, joint position, joint velocity, and joint torque control. This example will mirror any relative movement (joint velocities) on one arm to the other in 0 G mode.
For more information on Baxter's arms, see Using the Arms.
Usage
See the usage on the command line by passing puppet.py the -h
, help argument:
$ rosrun baxter_examples joint_velocity_puppet.py -h
Usage:
joint_velocity_puppet.py [-h] [-a <amplification>] -l <limb>
Positional Arguments
limb
- Specify the limb to puppet: left or right
Optional Arguments
-h, --help
- Show this help message and exit
-a, --amplification
- Amplification to apply to the puppeted arm (ex: - setting to 0.5 will move the puppeted arm at 1/2X the velocity, setting to 2.0 will move the puppeted arm at 2X the velocity)
Interfaces
ROS APIs
See the API Reference page for details.
- Control Joint Velocity:
/robot/limb/<limb>/joint_command
Publications:
- /robot/limb/right/joint_command [baxter_core_msgs/JointCommand]
- /rosout [rosgraph_msgs/Log]
- /robot/set_super_enable [std_msgs/Bool]
- /robot/limb/left/joint_command [baxter_core_msgs/JointCommand]
Subscriptions:
- /robot/joint_states [sensor_msgs/JointState]
- /robot/state [baxter_core_msgs/AssemblyState]
baxter_interface APIs
- Limb class:
limb.py
Troubleshooting
For common issues specific to using wobbler with Baxter, check out the Troubleshooting page.