# SoftBank Robotics documentation What's new in NAOqi 2.8?

# ALDiagnosis

Overview | API

## What it does

ALDiagnosis module allows the robot to detect if there is a hardware trouble (mainly electrical connection).

Passive diagnosis

The passive diagnosis is running all the time without perturbing the robot behavior.

The main goal of the passive diagnosis is to check every device of the robot and to publish whether the device has or has not an error. A device is an actuator or a sensor.

Active diagnosis

The active diagnosis runs at `ALMotionProxy::wakeUp`.

The purpose of the active diagnosis is to verify if every device of the robot is functional and to publish whether the device has or has not an error.

If a failure is detected:

- If the severity level 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.
- In SERIOUS or CRITICAL severity level, a notification is sent. For further details, see:
  - Event and state notifications or
  - Event and state notifications.

## How it works

The ALDiagnosis module is automatically started with naoqi.

### Passive diagnosis

Then, the passive diagnosis is launched. For each electronic board controlling devices, it checks:

- Does the electronic board that supports the sensor or the actuator answer or not?
- Is there a critical error detected on an actuator (over temperature, the position sensor answer...)?

A summary of the passive diagnosis is available using `ALDiagnosisProxy::getPassiveDiagnosis`

### Active diagnosis

During `ALMotionProxy::wakeUp`, some tests are run.

A summary of the active diagnosis is available using `ALDiagnosisProxy::getActiveDiagnosis`

If a device is in failure mode and depends on its Level of failure severity, a notification is send:

Severity | Notification
--- | ---
0: NEGLIGIBLE | No notification.
1: SERIOUS | Warning notification.
2: CRITICAL | Error notification.

For further details, see: Diagnosis - NAO or Diagnosis - Pepper notifications.

## Active Diagnosis tests

NAO & Pepper

| Test Suite | Test Name | What it does
--- | --- | --- | ---
Motion | PositionTests_”JointName“ | SensorCommandError | Check motor command/sensor position error Detect if the motor is defective.
Vision | AnyCameraTests_CameraName | GetImage | Try to get an image from camera.
DataChanged | Check if data from camera change.

Pepper only

| Test Suite | Test Name | What it does
--- | --- | --- | ---
Sensor | “WheelName“SensorTest | WheelSensorTest | Check command/sensor velocity error. Detect if the wheel is defective.
“SensorName “BlockedTestSuite | SensorBlockedStatusTest | Verify if metrical sensor data changed. Detect if the sensor is defective.
InertialSensorTest | InertialSensorTest | Check the inertial sensor calibration.
GyrometerSensorTest | GyrometerSensorTest | Check the gyrometer sensor calibration.

Glossary Site map Index Support Contact Legal Notices