Skip to content

Commit e74c9de

Browse files
YusukeKatoKuwamai
andauthored
[CRANE+ V2] カメラのキャリブレーション方法を追加 (#31)
Co-authored-by: Kuwamai <[email protected]>
1 parent f897bff commit e74c9de

File tree

7 files changed

+84
-0
lines changed

7 files changed

+84
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: カメラのキャリブレーション
3+
robot: CRANE+ V2
4+
---
5+
6+
# カメラのキャリブレーション
7+
このページではCRANE+ V2の[カメラサンプル](https://github.com/rt-net/crane_plus/tree/master/crane_plus_examples#camera-examples)で使用するカメラのキャリブレーション方法について説明します。
8+
9+
カメラのキャリブレーションを行うと、カメラ画像の歪みやズレを補正することができます。
10+
11+
キャリブレーションが必要な例として、下図のようにカメラ画像とCRANE+ V2のモデルにズレが発生している場合などがあります。
12+
13+
![](../../img/cranev2/ros/before_calibration.png)
14+
15+
このズレが大きい場合、検出した物体位置もズレてしまうため、ピックアンドプレースが失敗する可能性があります。
16+
キャリブレーションを行うと、このようなカメラ画像のズレを小さくすることができます。
17+
18+
## 使用機材 {: #requirements}
19+
20+
* 設置済みCRANE+ V2本体(Webカメラ搭載モデル)
21+
* [製品マニュアル](https://rt-net.jp/products/cranev2/)を読んで設置済みの状態を前提としています
22+
* ノートパソコン等のPC
23+
* OS(**Ubuntu Desktop 22.04**)がインストール済みであることを前提としています
24+
* ROS 2がインストール済みであることを前提としています
25+
* [ROS 2のインストール手順](./install.md)を参照してください
26+
* ROS 2用のパッケージがインストール済みであることを前提としています
27+
* [ROS 2パッケージのインストール手順](./package-install.md)を参照してください
28+
* キャリブレーション用のチェスボード
29+
* [OpenCVのサンプル](https://github.com/opencv/opencv/blob/master/samples/data/chessboard.png)をA4サイズで印刷してください
30+
31+
## キャリブレーション用パッケージのインストール {: #install}
32+
ノートパソコン等のPCに、キャリブレーションを行うためのROS 2パッケージをインストールします。
33+
34+
```bash
35+
sudo apt install ros-humble-camera-calibration-parsers
36+
sudo apt install ros-humble-camera-info-manager
37+
sudo apt install ros-humble-launch-testing-ament-cmake
38+
sudo apt install ros-humble-image-pipeline
39+
```
40+
41+
## CRANE+ V2のカメラを起動 {: #launch-camera}
42+
CRANE+ V2のカメラを起動します。
43+
`port_name`はCRANE+ V2との通信に使用しているUSB通信ポート、`video_device`は使用するカメラのデバイス名を指定してください。
44+
```bash
45+
ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0 use_camera:=true video_device:=/dev/video0
46+
```
47+
48+
## キャリブレーションの実行 {: #launch-calibration}
49+
カメラのキャリブレーションを実行します。
50+
`size`はチェスボードの交点の数を指定し、`square`はチェスボードの1マスの大きさ(単位はメートル)を指定してください。
51+
```bash
52+
ros2 run camera_calibration cameracalibrator --size 6x9 --square 0.022 --ros-args -r image:=/image_raw
53+
```
54+
55+
![](../../img/cranev2/ros/camera_calibration_1.png)
56+
57+
カメラ映像が表示されたら、カメラの画角内でチェスボードを遠ざけたり、近づけたり、傾けたり、回転させたりなど動かします。
58+
59+
CALIBRATEボタンが緑色になったら押してしばらく待ちます。
60+
61+
![](../../img/cranev2/ros/camera_calibration_2.png)
62+
63+
その後、SAVEボタンを押すと、`/tmp`ディレクトリに`calibrationdata.tar.gz`ファイルが生成されます。
64+
65+
![](../../img/cranev2/ros/camera_calibration_3.png)
66+
67+
## パラメータファイルの配置 {: #replace-file}
68+
パラメータファイル`ost.yaml``crane_plus/crane_plus_examples/config/camera_info.yaml`に配置します。
69+
```bash
70+
cd /tmp
71+
tar -xvf calibrationdata.tar.gz
72+
cp ost.yaml ~/ros2_ws/src/crane_plus/crane_plus_examples/config/camera_info.yaml
73+
```
74+
75+
以上でCRANE+ V2のカメラのキャリブレーションは完了です。
76+
77+
パラメータファイルを配置した後に再びカメラを起動すると、カメラ画像とCRANE+ V2のモデルのズレが小さくなっていることが確認できます。
78+
79+
![](../../img/cranev2/ros/after_calibration.png)
80+
81+
82+
## 参考
83+
- [Camera Calibration — Navigation 2 1.0.0 documentation](https://navigation.ros.org/tutorials/docs/camera_calibration.html)
234 KB
Loading
245 KB
Loading
341 KB
Loading
360 KB
Loading
341 KB
Loading

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ nav:
7676
- 2. ROS 2パッケージのインストール: cranev2/ros/package-install.md
7777
- 3. ROS 2サンプルの実行(実機): cranev2/ros/samples.md
7878
- 4. ROS 2サンプルの実行(シミュレータ) : cranev2/ros/simulator.md
79+
- 5. カメラのキャリブレーション: cranev2/ros/camera-calibration.md
7980
- 3. 関連リンク集: cranev2/others.md
8081
- CRANE-X7:
8182
- 1. 製品について: crane-x7/products.md

0 commit comments

Comments
 (0)