Aldebaran documentation What's new in NAOqi 2.4.3?

Diagnosis effect

NAOqi Motion - Overview | API


What it does

Diagnosis effect is a reflex designed to protect the robot and the user in case of a malfunctioning Joint, Actuator or Sensor.

It allows the robot to react appropriately according to the issues and errors raised by ALDiagnosis and ALBodyTemperature modules.

How it works

Depending on the Level of failure severity, the Diagnosis effect reflex may:

  • Disable some reflexes,
  • Block some joint controls, and/or
  • Trigger an appropriate Rest reflex.

For example:

  • if one of the Head joints has a diagnosis error, the Stiffness control on the joints of the head chain is disabled and it will not be possible to reactivate it.
  • if the inertial sensor does not answer, the Fall manager reflex is disabled.

The diagnosis effect on the robot, depends on the device Level of failure severity, if an actuator or a sensor is detected as unusable.

Joints and Actuators

Severity Diagnosis effect on the robot
NEGLIGIBLE No effect on the robot.
SERIOUS The Stiffness control on the Chains that includes the joint or actuator in failure is disabled and it will not be possible to reactivate it.
CRITICAL The robot goes to rest and refuses to wake up. So, the robot will not be usable.

Sensors

Severity Diagnosis effect on the robot
NEGLIGIBLE No effect on the robot
SERIOUS The reflex based on this sensor is not possible anymore so the Fall manager and the Smart Stiffness will be disabled.
CRITICAL The robot goes to rest and refuses to wake up. So, the robot will not be usable.

Rest reflexes

juju Pepper only

The following table lists the hardware problems detected by ALDiagnosis, the corresponding Rest reflex and the permanent effect of the problem on ALMotion. The permanent effect stays until the error disappears.

Diagnosis type Device Error type Rest reflex Permanent effect
Motor Temperature Wheels Status 2 Wheel - safe resting Moves are forbidden.
Status 3 Wheel - immediate resting Moves are forbidden.
Leg Status 2 Body - safe resting Wake up is forbidden.
Status 3 Body - safe resting, immediate on Leg Wake up is forbidden.
Arms or Head Status 2 Chain - safe resting Chain stiffness is kept at 0.
Status 3 Chain - immediate resting Chain stiffness is kept at 0.
Motor board passive diagnosis Wheels NACKs or error code Wheel - immediate resting Moves are forbidden.
Leg Body - immediate resting Wake up is forbidden.
Arms or Head Chain - immediate resting Chain stiffness is kept at 0.
Brake Brake open Body - slumping and resting  
Brake closed Body - parametric rest Wake up is forbidden.
Motor board active diagnosis Wheel Joint position error Wheel - immediate resting Moves are forbidden.
Leg Body - safe resting Wake up is forbidden.
Arms or Head Chain - safe resting Chain stiffness is kept at 0.
Sensor Temperature Fuse Status 2 Body - safe resting, immediate on arms Wake up is forbidden.
Status 3 Body - immediate resting Wake up is forbidden.
Battery Status 2 Body - safe resting Wake up is forbidden.
Status 3 Body - immediate resting Wake up is forbidden.
Sensor passive diagnosis HAL Crashed Body - immediate resting Wake up is forbidden.
ChestBoard USB disconnection Body - immediate resting Wake up is forbidden.
Brake Stays close Body - immediate resting Wake up is forbidden.
Stays open Body - safe resting Wake up is forbidden.
Sensor active diagnosis Brake Not functioning Body - safe resting Wake up is forbidden.
Elastomere Not functioning
Laser Freeze
2D Camera Not responding
3D Camera Not responding
Audio Not functioning
Inertial Not responding
Sonar Freeze No effect
Bumper Blocked

Rest reflexes - Detailed description

Name Description
Wheels - Safe resting The wheels are stopped gently.
Wheels - Immediate resting The wheels are stopped immediately.
Chain - Safe resting The chain goes to a safe posture, then chain stiffness is set to 0. Chain can be “RArm”, “LArm”, “Head”.
Chain - Immediate resting The chain stiffness is set to 0 immediately. Chain can be “RArm”, “LArm”, “Head”.
Body - Safe resting The wheels are stopped gently. The robot goes to a safe posture, then stiffness is set to 0.
Body - Immediate resting The wheels are stopped immediately. The robot stiffness is set to 0 immediately.
Body - Slumping and resting The wheels are stopped gently. The robot goes to a safe Crouch posture, then stiffness is set to 0.
Body - Parametric rest The wheels are stopped gently. The robot goes to a stable parametric posture using the controllable joints, then stiffness is set to 0.
Body - Safe resting, Immediate on Arms Arm stiffness is set to 0 immediately. Then, the wheels are stopped gently. The leg and head go to a safe posture then stiffness is set to 0.
Body - Safe resting, Immediate on Leg The wheels are stopped immediately. Leg stiffness is set to 0 immediately. The arms and head go to a safe posture then stiffness is set to 0.

Getting started

By default, the motion reflex based on the diagnosis is active on the robot.

How to disable this reflex

You can simply disable the Diagnosis effect in motion by calling the ALMotion API.