Atlas Keyboard Teleoperation over ROS


DRCSim v2.4 introduces an example interface to the Atlas Sim Interface and BDI Controller. It consists of an Actionlib server and a keyboard_teleop python ROS node. This tutorial explains how to use the teleop.


Launch the simulator (be sure to first source /usr/share/drcsim/ as usual):

VRC_CHEATS_ENABLED=1 roslaunch drcsim_gazebo atlas_sandia_hands.launch


Launch keyboard teleop

roslaunch drcsim_gazebo keyboard_teleop.launch

You will see a screen like below:

Keyboard Teleop for AtlasSimInterface 1.1.0
Copyright (C) 2013 Open Source Robotics Foundation
Released under the Apache 2 License
Dynamic linear movement:

   j         l

Dynamic turn movements:
u/o Turn left/right around a point
m/. Turn left/right in place

Static linear movement:

   J         L

Static turn movements:
U/O Turn left/right around a point
M/> Turn left/right in place

1-9: Change the length of step trajectory
'-'/'=': Increase/Decrease Stride Length
E: View and Edit Parameters
H: Print this menu
R: Reset robot to standing pose
Q: Quit

Initializing/Resetting the robot

Press R to move the robot to a BDI-controlled standing position. You should do this once at startup, before issuing other commands. You can do it again at any time (e.g., after the robot has fallen over).


Press i to move forward, , to move backward. j sidesteps laterally to the left, and l sidesteps to the right.

Pressing O, or U walks the atlas in a circle around a point to the left or right by 2 meters.

Pressing M and > turns the robot around on a point

This is an image of Atlas walking in a 2 meter circle.

You can also use the stepping primitives for testing the Atlas static locomotion (press keys I, <, J, and L for stepping the robot forward, backwards, to the left and to right respectively.

Changing parameters

You can change a number of parameters to experiment with the walking controller. Press E on the main screen to enter the parameter adjustment screen. It should look like this:

0 : Walk Sequence Length  5
1 : Forward Stride Length 0.15
2 : Step Height           0
3 : Stride Duration       0.63
4 : Stride Width          0.2
5 : Lateral Stride Length 0.15
6 : In Place Turn Size    0.196349540849
7 : Swing Height          0.3
8 : Turn Radius           2
X : Exit
Enter number of param you want to change:

Enter a number of the param you to change, in this case we can increase the forward stride length by pressing 1 and Enter. It brings up the following:

New value for Forward Stride Length [min: 0, max: 1, type: float]?

Type in 0.3 and press enter to increase the stride length. Then type x and press Enter to exit the screen.

Press i and the robot will walk forward a total of 1.5 meters.

It is recommended to keep the forward stride length below 0.4 meters, and the lateral stride length below 0.5 meters. The stride duration should be kept between 0.75 and 0.55, but it may depend on the chosen step width.


Press Q to exit, then Ctrl-C to kill roslaunch.

Known Issues

  • Rotating in place with an Atlas model with hands is not very stable, use rotate around a point instead and plan your trajectories carefully. Ticket