カメラのキャリブレーション
このページではCRANE+ V2のカメラサンプルで使用するカメラのキャリブレーション方法について説明します。
カメラのキャリブレーションを行うと、カメラ画像の歪みやズレを補正することができます。
キャリブレーションが必要な例として、下図のようにカメラ画像とCRANE+ V2のモデルにズレが発生している場合などがあります。

このズレが大きい場合、検出した物体位置もズレてしまうため、ピックアンドプレースが失敗する可能性があります。 キャリブレーションを行うと、このようなカメラ画像のズレを小さくすることができます。
使用機材
- 設置済みCRANE+ V2本体(Webカメラ搭載モデル)
- 製品マニュアルを読んで設置済みの状態を前提としています
- ノートパソコン等のPC
- OS(Ubuntu Desktop 22.04)がインストール済みであることを前提としています
- ROS 2がインストール済みであることを前提としています
- ROS 2のインストール手順を参照してください
- ROS 2用のパッケージがインストール済みであることを前提としています
- ROS 2パッケージのインストール手順を参照してください
- キャリブレーション用のチェスボード
- OpenCVのサンプルをA4サイズで印刷してください
キャリブレーション用パッケージのインストール
ノートパソコン等のPCに、キャリブレーションを行うためのROS 2パッケージをインストールします。
sudo apt install ros-humble-camera-calibration-parsers
sudo apt install ros-humble-camera-info-manager
sudo apt install ros-humble-launch-testing-ament-cmake
sudo apt install ros-humble-image-pipeline
CRANE+ V2のカメラを起動
CRANE+ V2のカメラを起動します。
port_nameはCRANE+ V2との通信に使用しているUSB通信ポート、video_deviceは使用するカメラのデバイス名を指定してください。
ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0 use_camera:=true video_device:=/dev/video0
キャリブレーションの実行
カメラのキャリブレーションを実行します。
sizeはチェスボードの交点の数を指定し、squareはチェスボードの1マスの大きさ(単位はメートル)を指定してください。
ros2 run camera_calibration cameracalibrator --size 6x9 --square 0.022 --ros-args -r image:=/image_raw

カメラ映像が表示されたら、カメラの画角内でチェスボードを遠ざけたり、近づけたり、傾けたり、回転させたりなど動かします。
CALIBRATEボタンが緑色になったら押してしばらく待ちます。

その後、SAVEボタンを押すと、/tmpディレクトリにcalibrationdata.tar.gzファイルが生成されます。

パラメータファイルの配置
パラメータファイルost.yamlをcrane_plus/crane_plus_examples/config/camera_info.yamlに配置します。
cd /tmp
tar -xvf calibrationdata.tar.gz
cp ost.yaml ~/ros2_ws/src/crane_plus/crane_plus_examples/config/camera_info.yaml
以上でCRANE+ V2のカメラのキャリブレーションは完了です。
パラメータファイルを配置した後に再びカメラを起動すると、カメラ画像とCRANE+ V2のモデルのズレが小さくなっていることが確認できます。
