Edited at

PepperをROSと接続する

More than 3 years have passed since last update.

 以前,「ROSの勉強がしたいんだ!」と吠えて,数千円でしょぼいロボットアームをこさえて,ROSから動かしたことがありました

 そんなことをしていたら,ある日ウチになんかフリーザみたいなヤツがやってきた.

フリーザみたいなヤツ

 呼んでねぇよ.

 こいつは,ようやく今月から一般販売だということですが,それに先駆けて(?),Aldebaranのほうから公式にROSパッケージが出ています.それを試用してみました.


環境構築

 ROSのバージョンは,indigoでやります.

 ベースのOSは,Ubuntuが良いです.14.04が特にオススメです.15.04だとリポジトリにjadeしかないので,rosdepを使う場合は気をつける必要があると思います.

 ちなみに私は,宗教上の理由でrosdepが使えないので,Ubuntu 15.04に,ほとんどソースからインストールしました.

 重要なパッケージは, naoqi_bridgepepper_robotpepper_meshes

 マトモな人は,チュートリアルにもあるように,

$ sudo apt-get install ros-indigo-driver-base ros-indigo-move-base-msgs ros-indigo-octomap ros-indigo-octomap-msgs ros-indigo-humanoid-msgs ros-indigo-humanoid-nav-msgs ros-indigo-camera-info-manager ros-indigo-camera-info-manager-py

 して

$ sudo apt-get install ros-indigo-pepper-.*

 すれば事足りるはず.

 Ubuntu15.04の人はjadeなので,上記のros-"indigo"-のindigoのところが全部jadeになります.


起動

$ roscore

 これは起動しっぱなしで放置して,ターミナル変えて,

$ export NAO_IP=xxx.xxx.xxx.xxx

 xxx..の部分はPepperのIPアドレスに変えること.

$ roslaunch pepper_bringup pepper.launch

 これで,Pepperのあれやこれやがどんどんパブリッシュされるので,

$ rosrun rviz rviz

 で可視化する.

ROSからPepper

 チュートリアルには, src/pepper_robot/pepper_bringup/config/pepper.rviz にコンフィグあるよ〜って書いてあるんだけど,私の環境ではうまくいかなかったので,自作したコンフィグもGistにあげておいた.

 可視化されているのは,Pepperの姿勢(TF),深度画像,カメラ画像,前後ソナー,足下周辺レーザー.

・デプスマップが外周で激しく歪んでいる

・デプスとRGBの画像が一致してない

 色々と問題もあるけど,数学で殴ればなんとかなるような気もしている.


補足情報

 NAOqi SDKは,自分のディレクトリで展開した後,

$ export NAOqi_DIR=/path/to/naoqi-sdk

と環境変数に入れておくこと.

PyNAOqiは,同様に展開したあと,場所をPYTHONPATHに含めておくこと.ターミナルでpythonを起動して,import naoqiができなければ,パスが通ってない.

 NAOqi関連のROSパッケージデ,naoqi-driverとnaoqi-sensorsは,ビルド時にNAOq-SDKの場所を入力しないとバイナリが生成されない.一度catkin_makeを走らせたあと,buildディレクトリの中のCMakeCache.txtを編集して,再ビルドすること.