Internal:Nao Demo 2

From Brown University Robotics

Jump to: navigation, search


Running the Nao Teleop Demo

The teleop demo provides direct kinesthetic control over both arms and the head.


The two bots expect to connect to a roscore on maria ( on port 1234. If you cannot launch such a core, it is probably because one is already running. It should be fine to use the pre-running core.

Starting the Bots

  1. Turn each bot on
  2. wait until you can ping them:
  3. log into each bot:
    ssh (no password)
    ssh (password is also nao)
  4. start eyes and on thing1:
    cd naoros; cd run; source envConfig; ./eyes &
  5. start on thing2:
    cd naoros; cd run; source envConfig; python
    Thing1 will now attempt to mirror thing2. Beware obstacles that might prevent this, including self-intersections.

Starting the client nodes

on maria

  1. rosrun NaoImageTransport NaoImageTransport;
    /naocam/image is now ready to be visualized (currently I use cmvision)


  • The robot's lower body will lock in place when you start up so make sure it is in a comfortable position for teleoperating and pushing the foot bumpers.
  • The wrist is controlled by the front and rear head buttons. Sometimes you may need to help the wrist of thing2 by physically turning it.
  • The wrists of the bots tend to seize in general. You may have to physically turn thing1's wrist to free it up and allow it to properly mirror thing2.
  • The hand is opened/closed by the middle head button. No other controls will respond while the hand opens/closes and there is a delay of a few seconds between thing2 closing/opening its hand and thing1 doing the same.
  • Each arm can be locked in place using the respective foot bumper. Sometimes you need to hold it for a second. Locking an arm in place, switches the active control of the hand and wrist to the other arm. Unfreeze the arm by pressing the bumper again.


  • If you can't ssh to the robot using it's dns name, try ssh-ing using its ip address. This can be obtained verbally from the robot by pressing its chest button.
  • If one of the ros nodes on the robots crashes on startup with a message about being unable to initialize a ros node, this is probably a failure of the dns name. Try setting the ROS_IP on the robot to the robot's ip address, e.g.
    export ROS_IP=
This page was last modified on 9 July 2010, at 18:52. This page has been accessed 103 times.