Skip to content

Handling the NAO

This documentation describes how to handle the NAO6 in different situations.


No matter whether switched off or on, whenever the robot is not used, it should be stored like shown in this image:

Gorilla stance

There is one exception: If the robot was used and unstiffed via the head buttons, the robot can be stored like shown in this image:

Sitting from unstiff

Only in this posture the robot keeps some stiffness and will not fall. If picked up (losing ground contact), restarted, or deployed, the stiffness is lost and the robot is no longer safe in a sitting position.

Turning On

The robot can be turned on with a short press on the chest button. It is very important not to move the robot while it is booting up, because its software is calibrating the inertia measurement unit (IMU) during this time. Motion will result in wrong calibration offsets. After booting up, the robot will say that it wants to check its sensor data and therefore needs ground contact. Until it has performed the check successfully, it refuses to move and cannot be used. If offsets are detected, a siren sound will be played. In such a case the robot needs to be shut down and rebooted again.


If the robot has no ground contact, even though the feet are touching the ground, you can place the robot in a sitting position or softly push in the hips, to increase the pressure on the FSR sensors in the soles of its feet.

General Use

When turned on, the robot can switch between different states as shown in the following image (Source: RoboCup SPL Rules 2022):


  • From every state you can switch into the Unstiff state by touching all three head buttons for at least one second.
  • You can switch from Unstiff to Initial to Penalize to Playing and back to Penalize with a press of the chest button.
  • Ready and Set can only be reached in some demos or via the GameController.
  • Calibration is described in the calibration chapter.

We recommend to hold the robot upright in the air when first switching from Unstiff to Initial, because the robot will get into a standing posture. If the robot is in its storing position when switching the states, it will start the interpolation, fall forward and start a get up routine. This is especially bad, because the robot will jump forward, which might damage the robot. If held in the air, it may be hard to not drop the robot while it does its getting up motion. Therefore always hold the robot upright before pressing the chest button when switching from Unstiff to Ìnitial.

While playing, we recommend to not let the robot do its own stuff and always keep an eye on it. Especially when it kicks or is walking over a bumpy carpet. The robots will execute falling motions to take as little damage as possible and can also get up without problems. Yet every fall wears down and eventually breaks the robot. Also when the robots are getting up, you can touch the head sensors, to abort the get up routine and the robot will interpolate into a standing posture, if held upright.

Possible Problems

Here we list possible problems that can occur while the NAO is being used.

Siren Sounds

For critical problems we play a siren sound, followed by some further information. Here are all current usages:

  • Motor malfunction: A motor turned off, most likely the Hip Yaw Pitch joint. Turning the robot off and on again usually resolves this problem.
  • Body disconnect: The robot lost the connection between the head and the body. It will lose all stiffness for a short moment (normally). This can randomly happen for worn out robots or when a robot hit the ground too hard while falling.
  • Camera reset: The robot detected a problem with one camera image and reset the connection to solve it.
  • Gyro offset: The robot detected offsets in the gyro measurements. Turn the robot off and on again to solve this problem.
  • No Cognition data: The robot lost the connection to one of the cameras or the Cognition thread has a deadlock.
  • Wrong image: The robot is flashed with the wrong NaoQi image. Only version 2.8.5 is compatibel. Otherwise the joint sensor positions and FSR data are not readable and always set to the value 0.
  • The robot does nothing: The robot says "ground" and "picked up" and the chest button react correctly when pressed, but the robot stays unstiff. The upper or lower camera seems to no longer send data. Therefore the software forces the robot to no longer be active.
  • The robot says "Please hold my upper body upright" after pressing the chest button: To prevent the robot from starting a get up motion and potentially damaging itself, the robot only executes the transition from Unstiff to Initial when the torso is upright.


After a camera reset, it can happen that the camera focus is not set anymore. In addition, this reset exists, because it can happen that the lower camera in the lowest resolution has a broken image with missing colors or a puzzled structure. This detection has false positives when looking at very bright areas without moving the head.


We highly recommend to deploy the robots with at least some volume for sounds. Otherwise important auditory feedback is missing and you run the risk of unintentionally damaging the robots.

Other Problems

Further problems that can occur:

  • Red eyes: The software crashed.
  • The robot does not react: Either the Motion thread ran into a deadlock (e.g. an infinite loop) or the robot was deployed without sound and detected gyro offsets.
  • The robot cannot get up repeatedly: Either the floor is not suitable or the robot has a broken joint.
  • The feet slip while walking: We currently have no solution for this problem. But you can place some tape under the soles of the feet (this would be illegal for official soccer games, but also not necessary on regular carpet).
  • The robot kicks a second time without ball: Currently a software problem, mostly in demos.
  • The robot does not gain ground contact: Most likely the robot was flashed with the wrong image. In this case all sensor data is 0. Flash the robot with the correct image to resolve this problem.
  • The robot makes a strange "clicking" noise, tilts forward/backwards and back to normal again: This is our energy saving mode to ensure the joints do not heat up while just standing. You can lift up the robot from the ground and place it down again softly. This may resolve the problem.

Last update: October 13, 2023