Pepper やNaoで使用されているNaoqi OSのメモです。

概要 | API

用途


"ALDiagnosis"モジュールは、ハードウェア障害(主に電気接続)をロボットが検知できるようにします。
Passive diagnosis

Passive diagnosisはロボットのbehaviorを混乱させることなく、常に動いでいます。
Passive diagnosisの主な目的はロボットのデバイスすべてを検査し、デバイスにエラーが発生しているかどうか配信することです。 デバイスとは、駆動装置(actuator)もしくはセンサーです。 詳細は以下を参照してください:naoもしくはpepperのDiagnosis key list?
Active diagnosis

Active diagnosisはロボットのbehaviorを混乱させることなく、以下の時に実行されます:"NAOqi"起動時、ALMotionProxy::wakeUp?ALMotionProxy::rest?
Aactive diagnosisの目的はロボットのすべてのデバイスが機能しているかどうかを検証し、デバイスにエラーが発生しているかどうか配信することです。
障害が検出された場合:
  • 障害の激しさのレベルによってALMotionモジュールが必要であれば、ロボットとユーザーを保護するために"ALMotion"モジュールが反応します。Motion診断の反応の詳細は以下を参照してください:Diagnosis effect?
  • 重大、もしくは危機的なレベルの場合には、通知が送信されます。詳細は以下を参照して下さい:
naoもしくはpepperのEvent and state notifications?

使い方


"ALDiagnosis"モジュールはnaoqiによって自動的に起動します。

Passive diagnosis

その後、Passive diagnosisが開始します。Passive diagnosisは20ms毎に以下の項目に基づいてデバイスにエラーがあるかどうかを推測します:
  • センサーや駆動装置(actuator)をサポートしている電子板が応答できるかどうか?
  • 駆動装置(actuator)に危機的なエラー(温度過上昇や、位置センサーの応答)が検出されているかどうか?
これらの結果に基づいて、それぞれのデバイス毎にALMemory error keyが更新されます。
キーフォーマット:Diagnosis/Passive/DeviceName/Error

Passive diagnosisの情報はALDiagnosisProxy::getPassiveDiagnosis?を使うことで入手できます。

Active diagnosis

ALMotionProxy::wakeUp?ALMotionProxy::rest?の最中は、いくつかのテストが実行中です。

それぞれのデバイス毎にALMemory error keyが更新されます。
キーフォーマット:Diagnosis/Active/DeviceName/Error

Active diagnosisの情報はALDiagnosisProxy::getActiveDiagnosis?を使うことで入手できます。

詳細は以下のerror keyの項目を確認してください:naoもしくはPepperのDiagnosis key list?

デバイスに障害がある場合、障害の重要度によって、以下のような通知がおくられます:
"重要度"通知"
0: NEGLIGIBLEなし
1: SERIOUS警告
2: CRITICALエラー

詳細は以下を確認してください:Diagnosis - NAO?もしくはDiagnois - Pepper notifications?

Active Diagnosis tests

"NAO" & "Pepper"

"Test Suite""Test Name""What it does"
MotionLimitsTest_”JointName?MotionHalLimitErrorVerify if joint software limits are the same in Motion and HAL. If not this is a software error.
PositionTests_”JointName?SensorCommandErrorCheck motor command/sensor position error Detect if the motor is defective.
VisionAnyCameraTests_CameraNameGetImageTry to get an image from camera.
DataChangedCheck if data from camera change.

"Pepper" only
"Test Suite""Test Name""What it does"
sensor
WheelName?“SensorTestWheelSensorTestCheck command/sensor velocity error. Detect if the wheel is defective
SensorName?“BlockedTestSuiteSensorBlockedStatusTestVerify if metrical sensor data changed. Detect if the sensor is defective.
InertialSensorTestInertialSensorTestCheck the inertial sensor calibration.
GyrometerSensorTestGyrometerSensorTestCheck the gyrometer sensor calibration.
Brake”JointNameWithBrake?“TestsBrakeBlockedCheck command/sensor position and current error to determine if the brake is defective.

パフォーマンスと制限

パフォーマンス

CPUのおおよそ0.2%を使用します。
制限

注意
ロボットが起き上がる動作中は触らないようにしてください。Active diagnosisがfalseを返す可能性があります。
もし電気的な接続が不安定な場合、モジュールは通知を出します。その通知をオフにしたい場合は ALDiagnosisProxy::setEnableNotification?を参照してください。

コメントをかく


ユーザーIDでかく場合はこちら

画像に記載されている文字を下のフォームに入力してください。

「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

×

この広告は60日間更新がないwikiに表示されております。

Menu

NAOqi - Developer guide

Creating an application?

Programming for a living robot?

Other tutorials?

Choregraphe Suite?

どなたでも編集できます