カメラのキャリブレーション
このページでは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のモデルのズレが小さくなっていることが確認できます。