OpenPoseをROS化し、深度情報を用いて3次元化します。
ROS(Robot Operating System)にてOpenPoseを用いた関節位置推定を行うためのプログラムです。
本来、OpenPoseはRGBカメラを用いた2次元関節位置情報を取得できるソフトウエアです。
ロボットを制御する際などには3次元関節位置が必要となるため、RGB-Dカメラを用いることで関節位置の3次元座標を取得しました。
- OpenPoseの3次元化:PCD(Point Cloud Data)の画素マッチングによる3次元座標取得
- TFの管理:OpenPoseの処理時間の考慮(処理時間、通信時間の考慮)
- 出力:今回はsensor_msgs::Pointcloud2を使用(新規メッセージの作成は複数PC上でのSubscribeの際手間)。オリジナルのFieldを定義可能なためconfidenceなどもやりとり可能
- OpenPose : v1.4.0
- ROS : kinetic
- Camera : Xtion pro live
-
OpenPose v1.4.0をインストール方法に従いインストールした後に、 Python APIをインストール
-
(C++ APIなどの選択肢もあるが、CV::BridgeなどがOpencvのバージョンなどの問題でうごかなかった)
-
(openpose_wrapper.py というサンプルコードを改変し、ros化したが、スレッドが別れないようにする工夫が必要です。(あやふや))
rosrun openpose_ros pub_pcd.py
または
roslaunch openpose_ros openpose_ros.launch