From sdk-wiki
Jump to: navigation, search

Puppet Example


Use puppet as an example of controlling Baxter using joint velocity control.

Code Walkthrough

Joint Velocity Puppet - Code Walkthrough


Start the puppet example from an RSDK terminal session, specifying the left or right arm as the "puppet", ex:

    $ rosrun baxter_examples -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.



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.


See the usage on the command line by passing the -h, help argument:

    $ rosrun baxter_examples -h

Usage: [-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)



See the API Reference page for details.

  • Control Joint Velocity: /robot/limb/<limb>/joint_command


  • /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]


  • /robot/joint_states [sensor_msgs/JointState]
  • /robot/state [baxter_core_msgs/AssemblyState]

baxter_interface APIs

  • Limb class:


For common issues specific to using wobbler with Baxter, check out the Troubleshooting page.