SoftBank Robotics documentation What's new in NAOqi 2.8?

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.

The following tables list 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.

pepp Pepper - Rest Reflexes

Diagnosis type Device Error type Rest reflex Permanent effect
Motor Temperature Wheels Status 2 Body - safe resting Wake up is forbidden.
Status 3 Body - safe resting, immediate on Wheels Wake up is 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 Body - safe resting, immediate on Wheels Wake up is forbidden.
Leg Body - safe resting, immediate on Leg Wake up is forbidden.
Arms or Head Chain - immediate resting Chain stiffness is kept at 0.
Brake Brake open Body - slumping and resting Wake up is forbidden.
Brake closed Body - parametric rest Wake up is forbidden.
Motor board active diagnosis Wheel Joint position error Body - safe resting, immediate on Wheels Wake up is forbidden.
Leg Body - safe resting Wake up is forbidden.
Arms or Head Chain - safe resting Chain stiffness is kept at 0.
Sensor Temperature Leg Fuse Status 2 Body - safe resting Wake up is forbidden.
Status 3 Body - safe resting, immediate on Leg Wake up is forbidden.
Arms or Head Fuse Status 2 Chain - safe resting Chain stiffness is kept at 0.
Status 3 Chain - immediate resting Chain stiffness is kept at 0.
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.
Leg Fuse NACKs or error code Body - safe resting Wake up is forbidden.
Arms or Head Fuse Chain - safe resting Chain stiffness is kept at 0.
ChestBoard USB disconnection Body - immediate resting Wake up is forbidden.
Laser NACKs or error code No effect Degraded sensor mode.
Sonar
Battery NACKs or error code Body - safe resting Wake up is forbidden.
Sensor active diagnosis 3D Camera Not responding Body - safe resting Wake up is forbidden.
Inertial Not responding
Laser Freeze No effect Degraded sensor mode.
Sonar Freeze
Bumper Blocked No effect

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.

Permanent effect - Degraded sensor mode

To maintain minimal motion functionality while also guaranteeing safety, some sensors support a degraded mode when errors are detected.

When a failure is detected on such sensors, the robot will still be usable, but will behave as if the failing sensor permanently detects an obstacle obstructing its field of view.

nao NAO - Rest Reflexes

Diagnosis type Device Error type Rest reflex Permanent effect
Motor Temperature Legs Status 2 Body - safe resting Wake up is forbidden.
Status 3 Body - safe resting, immediate on Legs 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 Legs NACKs or error code Body - safe resting, immediate on Legs Wake up is forbidden.
Arms or Head Chain - immediate resting Chain stiffness is kept at 0.

Rest reflexes - Detailed description

Name Description
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 robot goes to a safe posture, then stiffness is set to 0.
Body - Immediate resting The robot stiffness is set to 0 immediately.
Body - Safe resting, Immediate on Legs The Legs 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.