From sdk-wiki
Jump to: navigation, search

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.