blog
ブログ
2016.04.21

Pepper技術ブログ:NAOqiAPIメモ

こんにちは!
日本システムデザイン Pepper担当のスエヨシです。
NAOqi Framework (Pepper ミドルウェア)で提供されているAPIについて、
公式ドキュメント記載の情報を調査しましたので、
覚書として記載します。

pepper_no_image

◆NAOqi APIs

以下、下記の公式ドキュメントページを翻訳した内容となります。
NAOqi APIs – Aldebaran documentation

Core(コア)

ALAutonomousLife オートノマスライフモードにおけるアクティビティのライフサイクル管理を行うAPI。
ALBehaviorManager ビヘイビアの管理(読込・起動・停止)とビヘイビアに関する情報の取得を行うAPI。
ALConnectionManager ネットワーク接続を管理するAPI。イーサネット・Wifi・Bluetooth等をサポート。
ALExtractor 視覚及び知覚に関連するAPI群の基本クラスとして使用されるAPIモジュール。
ALMemory ロボットのハードウェア構成に関連するすべてのキー情報を格納するために使用される集中型メモリ。
具体的には、アクチュエータやセンサの現在の状況に関する情報を提供する。
ALModule ユーザモジュールの基本クラスとして使用されるAPIモジュール。
ALNotificationManager ロボット上の通知を管理する機能を提供するAPI。
ALPreferenceManager ロボット及びアプリケーションの環境設定を管理する為のAPI。
ALResourceManager モーター・マイク・LED・CPU・カメラ設定等、リソースの管理を行う為のAPI。
複数ビヘイビア間でのリソースの排他制御や同期制御等。
ALStore アルデバランストアからアプリを取得する為のAPI。
ALSystem システム設定やシャットダウン・再起動等の操作を行う為のAPI。
ALVisionExtractors 視覚及び知覚に関連するAPI群の基本クラスとして使用されるAPIモジュール。
ALTabletService タブレットの操作を行う為のAPI。Webアプリケーションの読込や動画再生、タブレット自身の設定制御等に使用する。
ALUserSession アクティブユーザの状態管理と、そのデータのバインディングを行うAPI。
※WIP。API・ドキュメントともに未確定情報。
ALWorldRepresentation 一般的な物体に関する空間データの長期保存を行うAPI。
PackageManager アプリケーションパッケージのインストールと管理を行うAPI。

Motion(動作)

ALAutonomousMoves ロボットが自動的に行う微妙な動作を制御する為のAPI。
ALMotion ロボットの動作の作成を支援するAPI。
ALNavigation ロボットの移動を安全に行う為のAPI。移動経路上の障害物の検出と回避。
ALRecharge 充電ベースに関するロボットの振る舞いを管理するAPI。
ALRobotPosture 事前に定義されている以外の姿勢を作る為のAPI。

Audio(音声)

ALAnimatedSpeech ロボットの会話を作成する為のAPI。会話内容に合わせてボディランゲージを行う。
ALAudioDevice 音声入力(マイク)と音声出力(スピーカー)へのアクセスを行うAPI。
ALAudioPlayer 複数の音声ファイル形式に対応する再生サービスと、それに関する操作機能を提供するAPI。
ALAudioRecorder ロボットのマイクから入力された音声信号を、wavまたはoggファイルで録音するサービスを提供するAPI。
ALDialog 特定の記述ルール(qiChatスクリプト)を使用することにより、ロボットに会話スキルを与えるAPI。
ALSoundDetection 音声バッファに入ってきた、意味のある音声の検出を行うAPI。
ALSoundLocalization ロボットが聞いた任意音声の発生方向を特定するAPI。
ALSpeechRecognition 事前に定義された単語・文節をロボットに認識させる為のAPI。
ALTextToSpeech text-to-speechエンジンにてロボットに発話させる為のAPI。
ALVoiceEmotionAnalysis 発話者の声の表現から、発話内容に関係なく発話者の感情を特定するAPI。

Vision(視覚)

ALBacklightingDetection カメラで撮影した画像が逆行か否かを判別するAPI。
ALBarcodeReader カメラで撮影した画像からのバーコードの検出、並びに検出したバーコードの解読を行うAPI。
ALCloseObjectDetection ロボットに近すぎる物体の検出を行うAPI。
ALColorBlobDetection 高速な二次元視覚準拠カラーブロブ検出器を提供するAPI。
ALDarknessDetection ロボットが暗所にいるか否かを判別するAPI。
ALLandmarkDetection 特殊な目印(Naomark)並びにその中の特定のパターンをロボットに認識させる為のAPI。
ALLocalization 室内環境におけるロボットの位置特定を行うAPI。
ALMovementDetection アルデバランロボットの視野内の動きを検出する為のAPI。
ALPhotoCapture 写真の撮影やロボットカメラの利用、並びに撮影データのディスクへの保存等を行うAPI。
ALRedBallDetection 赤いボールを検出する高速な視覚を提供するAPI。
ALSegmentation3D ロボットの視野内に存在する物体を抽出するAPI。
※3Dセンサ必須
ALVideoDevice ロボットのカメラ等ビデオソースで取得した画像データを、各種画像処理モジュールに提供する為のAPI。
ALVideoRecorder ロボットのカメラを利用した動画の撮影、及びディスクへの保存を行うAPI。
ALVisionRecognition 画像の差異や以前に学習した場所か否か等、視覚の認識を行うAPI。
ALVisualCompass 所定の参照画像と比較した際の、Y軸とZ軸に対するロボットの現在の回転角を抽出するAPI。
ALVisualSpaceHistory ロボットの頭の動きを追跡し、頭の位置のタイムスタンプ付きマップを構築する為のAPI。

People Perception(人物知覚)

ALBasicAwareness ロボットが人間とのアイコンタクトを行う為のAPI。
ALEngagementZones ロボットに対する空間内の位置と、エンゲージメントゾーンの概念に基づいて、人物または動きの検出と分類を行う。
ALFaceCharacteristics 任意の人物に対して、年齢や性別の推定、並びに笑顔やその他の表情の検出等を行う。
ALFaceDetection ロボットの目の前にある顔を検出・認識する。
ALGazeAnalysis 検出した人物の視線の方向や、目を開いている・閉じている等の情報を検出し、
その人物がロボットを見ているか否かを知覚する。
ALPeoplePerception ロボットの周囲の人物を追跡し、その人物に関する基本的な情報を提供する。
ALSittingPeopleDetection 任意の人物に対して、座っているか立っているかの情報を検出する。
ALWavingDetection 任意の人物が、ロボットの気を引くように腕を動かしているか否か(例えば「手を振る」等)を検出する。

Sensors(センサ)

ALBattery ロボットのバッテリーハードウェアに関連するイベントの制御を行う。
ALBodyTemperature いくつかのハードウェア部品のオーバーヒートや温度上昇に関連するイベントの制御を行う。
ALChestButton ロボットの胸部ボタンに関連するイベントの制御を行う。
ALFsr ロボット脚部の接地状況に関連するイベントの制御を行う。
ALInfrared ロボットと赤外線通信を行う。ロボットの遠隔操作や複数ロボット間での同期通信等。
ALLaser レーザーヘッド(オプション機器)によるデータの受信とALMemoryへの保存。
ALLeds ロボットのLED操作を行う。
ALSensors ロボットのセンサに対応するイベントの制御を行う。
ALSonar ALMemoryを経由して超音波センサーから情報を受信・処理し、状況に応じてイベントを発生させる。
ALTouch ロボットへの接触に関連するイベントの制御と、接触部位の検出を行う。

Trackers(追跡)

ALTracker 任意の手段(頭だけ・体全体・等)で任意の対象(赤いボール・顔・ランドマーク)を追跡する。

Diagnosis(診断)

ALDiagnosis ハードウェア上での問題の発生を検出する。(主に電気的な接続について。)

DCM(デバイス接続管理)

DCM 音声とカメラを除くロボット内のほとんどの電子機器(デバイス)との通信を行う。

Deprecated(非推奨)

ALAudioSourceLocalization ロボットが聞いた任意音声の発生方向を特定するAPI。
※非推奨 → ALSoundLocalizationで代替
ALBonjour ボンジュールプロトコルを使用してローカルネットワーク上のNAOqiサービスを広告(?)するAPI。
※非推奨
ALFaceTracker 顔の追跡
※非推奨 → ALTrackerで代替
ALLogger ロボット上のエラー・警告・情報等をリモートマシンからログ出力させる為のAPI。
※非推奨 → qiLogで代替
ALLauncher 動的ライブラリ及びインポートPythonモジュールの読込、実行可能ファイルやスクリプトの実行、
モジュールの読込成否チェック等を行うAPI。
※非推奨
ALMotionRecorder ロボットの姿勢を記録する為のAPI。
※非推奨 → AnimationModeで代替
ALPreferences XML設定ファイルへのアクセスと、ALValues⇔xmlの変換機能を提供するAPI。
※非推奨 → ALPreferenceManagerで代替
ALRedBallTracker 赤いボールの追跡
※非推奨 → ALTrackerで代替
ALRobotPose 複数のセンサを利用して、ロボットの現在の姿勢を認識するAPI。
※非推奨 → ALRobotPostureで代替

以上です。
公式ドキュメントを翻訳しただけではニュアンスが良く分からないものもある為、
できることなら各APIで実際に実装して動作を確認する等しておきたいですね。

弊社ではPepperのアプリケーション開発を行っています。
詳しくはこちらをご参照ください。

contact

ご相談・ご質問等ございましたら、お気軽にお問い合わせください。

翻訳