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,
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: 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: notif_warning_diagnosis.
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 - Actuator & Sensor 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.