カメラキャリブレーションを行うことでレンズの歪みを補正できる。
環境
Raspberry Pi 5 | Ubuntu Desktop 24.04.2 LTS ROS2 jazzy | キャリブレーションの操作を行う。 環境設定 |
PC(GOODMINI2) | Winddows11 WSL2 | ここからRaspberry Pi 5にssh接続。 カメラの画像をROS2にパブリッシュする。 |
ATOMS3R M12 | QVGA(240×320) | camera_IP_FIXEDをアップロードしておく。 IP:192.168.0.105 |
c270 | USB接続 |
環境設定
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」ボタンが緑に変わるので①、②の順にボタンをクリックする。

パラメータファイルは、/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