アンオフィシャル - Aldebaran Robotics NAO とそのほかロボットについて

NAO とそのほかロボットについての情報を発信。ここの情報はアルデバラン非公式です。内容に誤りがあった場合はごめんなさい。

Aldebaran Robotics 社の NAO、そのほかロボットに関連する情報を発信します。

NAOqi ライブストリーミングについて

Pepper / NAO のカメラ、マイクの情報をライブでストリームできないかというお問い合わせをよく受けます。

「できるはずです。カメラ、マイクのライブ情報を取得するサンプルは

Capturing audio and video — Aldebaran 2.1.2.17 documentation

で確認できます。これをライブストリームするためには例えば ffmpeg などが使います。」

といった感じでお伝えしているのですが、実際自身で試したことがなく、どこまで実現性があるのか自分自身疑問ではありました。

 

で作ってみました。カメラ、マイクの情報をライブで取得し、PC に表示、ならびにマイクからの音を再生するところまで作ってみました。

f:id:takuji_kawata:20150327233256p:plain

C++ SDK を利用。UI 部分はQtで作っています。

ソースコードgithub にアップしました。

github.com

クロスプラットフォームな Qt ならびに NAOqi SDK を使っていますので、理屈上 Windows, Mac, Linux で動くはずです。ただ現状 Mac でしか動作確認はしていません。

 

ソースコードコンパイル、実行する上で幾つか注意があります。

  • 開発ツールは Qt Creator を使いました。
  • NAOqi は内部で Qt フレームワークを使っています。Qt Creator が使う Qt フレームワークのバージョンは NAOqi が利用している Qt ライブラリーとバージョンを一致させてください。 NAOqi が利用している Qt ライブラリーのバージョンは NAOqi SDK のディレクトリの中の lib ディレクトリのの中を調べればわかるかと思います。
  • NAOqi と連携するところは別ライブラリとしてコンパイルします。ビルドをするためのバッチを buildNAOqiInterface.sh というスクリプトで用意しました。Qt Creator でプロジェクトをビルドする前に、このスクリプトを実行し、NAOqi と連携するライブラリを生成しておきます。
  • 実行するには Mac の場合、環境編す DYLD_LIBRARY_PATH を編集します。Qt Creator の プロジェクト設定で環境変数を追加することで対応できます。DYLD_LIBRARY_PATH にNAOqi C++ SDK をインストールしているディレクトリ配下の /lib ディレクトリとプロジェクトディレクトリの一階層上に上がり build/lib ディレクトリを追加します。これらは DYLD_LIBRARY_PATH にもとから入っている環境変数よりも前に来るように定義します。(アプリとしてパッケージするときには install_name_tool を使うことでこのあたりの煩わしさを解消できるようです。)

 

PCに来た情報をインターネットにライブストリームするところはまだ作り込みできていません。まずは時間を見つけて音声周りの改善をもう少し検討したいと思っています。