Skip to content

カメラのキャリブレーション

このページではCRANE+ V2のカメラサンプルで使用するカメラのキャリブレーション方法について説明します。

カメラのキャリブレーションを行うと、カメラ画像の歪みやズレを補正することができます。

キャリブレーションが必要な例として、下図のようにカメラ画像とCRANE+ V2のモデルにズレが発生している場合などがあります。

このズレが大きい場合、検出した物体位置もズレてしまうため、ピックアンドプレースが失敗する可能性があります。 キャリブレーションを行うと、このようなカメラ画像のズレを小さくすることができます。

使用機材

  • 設置済みCRANE+ V2本体(Webカメラ搭載モデル)
  • ノートパソコン等のPC
    • OS(Ubuntu Desktop 22.04)がインストール済みであることを前提としています
    • ROS 2がインストール済みであることを前提としています
    • ROS 2用のパッケージがインストール済みであることを前提としています
  • キャリブレーション用のチェスボード

キャリブレーション用パッケージのインストール

ノートパソコン等の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.yamlcrane_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のモデルのズレが小さくなっていることが確認できます。

参考