# 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.

### 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 - 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.

- Function `ALMotionProxy::setDiagnosisEffectEnabled`

Glossary Site map Index Support Contact Legal Notices