[ROS2]カメラキャリブレーションの方法

カメラキャリブレーションを行うことでレンズの歪みを補正できる。

環境

Raspberry Pi 5Ubuntu Desktop 24.04.2 LTS
ROS2 jazzy
キャリブレーションの操作を行う。      
環境設定
PC(GOODMINI2)Winddows11 WSL2ここからRaspberry Pi 5にssh接続。
カメラの画像をROS2にパブリッシュする。
ATOMS3R M12QVGA(240×320)camera_IP_FIXEDをアップロードしておく
IP:192.168.0.105
c270USB接続

環境設定

Raspberry Pi 5にROS2がインストールされた状態(参照)に必要なパッケージをインストールする。

ROS2とOpenCVのインターフェースとなるパッケージ
	sudo apt install -y ros-jazzy-vision-opencv

※以下は「すでに最新バージョン 」と表示される。
	sudo apt install -y ros-jazzy-camera-calibration-parsers
	sudo apt install -y ros-jazzy-camera-info-manager
	sudo apt install -y ros-jazzy-launch-testing-ament-cmake
	sudo apt install -y ros-jazzy-image-pipeline
USBカメラ用ノードのパッケージ
sudo apt install -y ros-jazzy-usb-cam

Webカメラを起動を起動する

。
ros2 run usb_cam usb_cam_node_exe --ros-args --remap video_device:=/dev/video0 -p framerate:=15.0

ATOMS3R M12カメラキットの場合 --- USBケーブルに接続して行う。
ros2 run atoms3r_m12 atoms3r_m12_usb_image_info_pub

パブリッシュされていることを確認する。
ros2 run rqt_image_view rqt_image_view

カメラキャリブレーションを実行する

チェックボードを表示する。
印刷したチェックボードではなく23インチのディスプレイにボードの画像を表示する。chrom上でF11を押してフルスクリーンにする。この状態で各四角画像の大きさが29mmになる。

キャリブレーションのプログラムを起動する。

でキャリブレーションプログラムを起動する。
	ros2 run camera_calibration cameracalibrator --size 7x7 --square 0.024 --no-service-check --approximate=0.1 --ros-args -r image:=/image_raw

キャリブレーションの操作。
下の画像のようにチェックボードが画面内に表示される状態を保ちながら、様々な向きにカメラを移動する。
「COMITT」が緑に変わったら「COMITT」ボタンをクリックする。
①の「CALIBRATE」ボタンと②の「SAVE」ボタンが緑に変わるので①、②の順にボタンをクリックする。

SAVEしたパラメータファイルを展開する。
パラメータファイルは、/tmp/calibrationdata.tar.gzにSAVEされる。それを次の手順で展開、コピーする。

展開用のディレクトリを作り、移動する。
mkdir mytmp
cd mytmp

パラメータファイルを展開する。
tar -xvzf /tmp/calibrationdata.tar.gz

のホームページに展開されたost.yamlを所定のディレクトリにコピーする。次のいずれか。
cp ost.yaml ~/.ros/camera_info/c270.yaml
cp ost.yaml ~/.ros/camera_info/HD_1080P.yaml
cp ost.yaml ~/.ros/camera_info/atoms3r_m12.yaml

参照サイト

ROS 2 カメラのキャリブレーション方法の紹介
ATOMS3R M12カメラキットの画像をROS2にパブリッシュ