Aldebaran documentation What's new in NAOqi 2.4.3?


NAOqi Sensors & LEDs - Overview | API

What it does

ALBodyTemperature is responsible for raising events when some part of the hardware, able to overheat, has reach a concerning level of temperature.

It could be:

  • Joints or Actuators,
  • CPU,
  • Battery.

How it works

CPU - Temperature

ALBodyTemperature retrieves temperature information from the CPU hardware and publish it in ALMemory key: Device/SubDeviceList/Head/Temperature/Sensor/Value.

For further details, see: nao CPU.

Joint, Actuator and Battery Temperature

ALBodyTemperature retrieves temperature information from the Temperature status of the Joints, the Actuators, and the Battery. If at least one of item has a non null status, an HotDeviceDetected() event is raised.

For further details about the temperature automatic limitation, see: Temperature status.


If one Joint, one Actuator or the battery is hot (non null Temperature status), a notification is sent.

For further details about the temperature notification, see: nao Diagnosis - NAO, or juju Diagnosis - Pepper.

The notification can be disabled using ALBodyTemperatureProxy::setEnableNotifications

Temperature Diagnosis

ALBodyTemperature generates a diagnosis based on the Temperature status but with a threshold as shown on the figure below:



Based on this diagnosis, ALMemory error keys are updated for each joint or actuator, the key format is: Diagnosis/Temperature/JointName/Error. For further details see Diagnosis keys in: nao Diagnosis key list or juju Diagnosis key list.

A summary of the temperature diagnosis is available using ALBodyTemperatureProxy::getTemperatureDiagnosis


This temperature diagnosis has the same behavior than the passive diagnosis (see ALDiagnosis) and if the Level of failure severity requires it, ALMotion module reacts in order to protect the robot and the user.

For further details about the motion diagnosis reflexes, see: Diagnosis effect.

Use Cases

It allows you to be notified if the temperature of a joint reaches the limit triggering an automatic limitation of the Stiffness.