(図面付き) NEXTAGE OPEN の頭部カメラのキャリブレーションHead-mount stereo camera calibration for NEXTAGE OPEN

著者:Isaac Saito

(図面付き) NEXTAGE OPEN の頭部カメラのキャリブレーションHead-mount stereo camera calibration for NEXTAGE OPEN


NEXTAGE OPEN で頭部ステレオカメラを利用する際の,カメラの姿勢を手軽にキャリブレーションする方法を公開しました

ROS では幾つかカメラを用いたキャリブレーション用パッケージが利用できます.ROS 初期の代表的ロボット PR2 向けに作られた calibration,産業用ロボット向けに豊富な機能を持つ industrial_extrinsic_cal,最近ではキャリブレーション結果を用いてロボットのキネマティクス情報を更新してくれる robot_calibration というのもあります.いづれもハードウェア and/or ソフトウェアの前準備が大変だったり,高機能ゆえに計算に時間がかかったりと,扱いに慣れが必要です.

今回ご紹介する方法は基本的にチェッカーボードをロボットに固定さえすれば実施可能です.詳しい方法を ROS wiki に記載しています.ステレオカメラで胸部あるいは腰部に固定したチェッカーボードを認識することにより,頭部カメラのロボット上の相対姿勢を取得します.カメラの据付位置座標が分かれば,Gazebo シミュレータ上でもキャリブレーションを行い相対姿勢を取得することが可能です.


胸部に付けたチェッカーボードを認識中


ロボットに固定したチェッカーボードを認識することで,ROS の座標変換ライブラリ “tf” により,カメラの正確な相対姿勢が判明します.


Gazebo 上の Kinect でチェッカーボードを認識している様子.

なお,キャリブレーションに用いたチェッカーボードの NEXTAGE OPEN 本体への取付けに必要な部品一式の図面もGitHub 上で公開しています.また,TORK では Xtion をかっこ良く頭部に取り付けたい場合 外装を御用意しています (日本国内のみ).

現状では上記 wiki ページで紹介されている方法は Kinect 或いは Xtion を利用しています.NEXTAGE OPEN がデフォルトで搭載する頭部の Ueye カメラ二基を用いても同じ方法は有効のはずですが,Ueye 個別の操作方法は未だ記載していません.ROS wiki は誰でも編集できるので,もし Ueye でキャリブレーションに成功した方がいたら是非情報を追記頂けると,全世界の NEXTAGE OPEN ユーザが喜ぶと思います!


Recently we’ve updated the instruction for the NEXTAGE OPEN’s calibration using head-mount stereo cameras.

There has been mutilple camera/robot calibration packages in ROS; calibration package worked well for the PR2 robot, a high-functional reference model of ROS in the early era until very recently. Then for industrial usage industrial_extrinsic_cal was developed with abundant functionalities to cope with complexed needs. Relatively newer robot_calibration package, which is maintained by the warehouse robot manufacturer Fetch, even updates the robot’s kinematics parameters using the calibration result. Almost all of these practical features come with a cost of labor in hardware and/or software, however.

The approach we’re presenting is simple enough since all you need is a checkerboard — not even a board but a plain or even a piece of paper will do as long as checker matrix is printed on it. Detailed steps are available on ROS wiki. Basically get the pose of the camera mounted on top of the head or actually anywhere on the robot, by recognizing the checkerboard. You can also carry out the calibration on Gazebo simulation as long as you know the location to attach the camera so that you can spawn the camera’s 3D model in the virtual world.


Detecting a checkboard at the chest.


Recognizing the checker pattern, which is in a fixed pose w.r.t the robot, yields the camera’s relative pose w.r.t the robot as a result of “tf” computation.


Seeing checkerboard through a simulated Kinect on Gazebo.

We’ve also made the design of the checkerboard kit publicly available on NEXTAGE OPEN’s GitHub repository so that any handyperson can go through these steps.

As of now the instruction in the wiki above only uses Kinect or Xtion, i.e. the operation of the Ueye cameras that NEXTAGE OPEN comes with by default is a bit different but that’s not documented yet, although the calibration part is intended for any ROS-based stereo camera so it should work for Ueye too. Every one is welcomed to edit ROS wiki to add your findings in this regard. Power of opensource!

ROS Workshop Schedule from April to June 20172017年4月-6月のROSワークショップ日程
ROS Workshop for Beginners on 10th May ROSワークショップ初級編を開催しました

著者について

Isaac Saito subscriber