Gripper Example

From sdk-wiki
Jump to: navigation, search

Gripper Control

Summary

Use gripper control as an example of controlling Baxter's grippers.

Code Walkthrough

Gripper Keyboard - Code Walkthrough

Overview

Uses the keyboard or joystick to control Baxters grippers. Position, velocity, holding, and moving force can be controlled and sensed. Both logitech and xbox game controllers are supported.

Usage

Start gripper control from an RSDK terminal session using:

   $ rosrun baxter_examples gripper_keyboard.py

IMPORTANT: You will have to calibrate both grippers before using any of the other commands using C/c commands:

Once calibrated, future calibrate commands will not do anything unless you send a 'reset' first.


Key Bindings

Get a list of commands by entering '?'


Key Left Key Right
? Help Esc Quit
c left: calibrate C right: calibrate
q left: close Q right: close
w left: open W right: open
u left: decrease position U right: decrease position
i left: increase position I right: increase position
v left: decrease velocity V right: decrease velocity
b left: increase velocity B right: increase velocity
h left: decrease holding force H right: decrease holding force
j left: increase holding force J right: increase holding force
f left: decrease moving force F right: decrease moving force
g left: increase moving force G right: increase moving force
z left: decrease dead band Z right: decrease dead band
x left: increase dead band X right: increase dead band
[ left: set 100% velocity { right: set 100% velocity
] left: set 30% velocity } right: set 30% velocity
r left: reset R right: reset
s left: stop S right: stop

You can monitor the changes you are making using the following rostopics which you can monitor from a different shell:

   rostopic echo /robot/end_effector/left_gripper/command
   rostopic echo /robot/end_effector/right_gripper/command

Joystick Control

To use the example gripper program using a joystick game controller to control the grippers:

First ensure that joy drivers are installed.

   $ rospack find joy

If not run:

   $ sudo apt-get install ros-indigo-joystick-drivers

To run the example:

$ roslaunch baxter_examples gripper_joystick.launch joystick:=<joystick_type>

Where <joystick_type> is 'xbox', 'logitech', or 'ps3'. (If using a ps3, make sure you run the node from the ROS ps3joy package in a separate sudo terminal. See instructions here: PairingJoystickAndBluetoothDongle ps3joy )


Note: This method uses an included ROS launch file to start both the gripper example and joy_node using the roslaunch tool. You can exit the gripper example by hitting any keyboard key, however you will have to ctrl-c to also cleanup the joy_node.

Joystick Button Mappings

NOTE: Don't forget to calibrate each gripper first.


Press any keyboard key to quit. (And no, the 'joystick left <-> robot right' mappings are not typos; they assume the user is in front of the robot when using the joystick.)

Joystick.jpg

Buttons | Action | Buttons | Action --- | --- | --- | --- Function 1 or 2 (e.g. Select/Select)_ | Help | _\<Any Keyboard key\> | Quit

|  |  | 

Top Button | right: calibrate | Right Button | left: calibrate Left Button | right: reset | Bottom Button | left: reset

|  |  | 

Left Trigger [PRESS]_ | right: close | Right Trigger _[PRESS] | left: close Left Trigger [RELEASE]_ | right: open | Right Trigger _[RELEASE] | left: open Left Bumper | right: stop | Right Bumper | left: stop

Stick Axes | Action --- | --- Left Stick Horizontal | right: increase/decrease position Right Stick Horizontal | left: increase/decrease position Left Stick Vertical | right: increase/decrease holding force Right Stick Vertical | left: increase/decrease holding force


Directional Pad (D-Pad) | Action --- | --- dPadUp | right: increase velocity dPadRight | left: increase velocity dPadLeft | right: decrease velocity dPadDown | left: decrease velocity

Troubleshooting

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