密な深さの点群を計算する双眼カメラ(2)


前回の記事では、実際のカメラを使用して3D点群を計算しましたが、実験ではZEDカメラを使用しました。

1. ZEDカメラドライバーパッケージ

まず、コンピュータにZEDカメラのドライバパッケージをインストールする必要があります。ここでは、CPUバージョンのドライバパッケージをインストールし、左右の画像とドライバパッケージのアドレスを読み取ります[1]

```
cd catkin_ws/src
git clone https://github.com/transcendrobotics/zed_cpu_ros
cd ..
catkin_make
```

ZEDカメラが正しく起動したら、カメラの内部パラメータと外部パラメータを較正する必要があります。工場での較正値は、ZEDの公式ウェブサイトでも提供されています。カメラのシリアル番号から対応する番号のファイルをダウンロードできますが、正確ではないようです。 、自分で調整することをお勧めします。
注:ここで使用する場合、ZEDカメラは1280 * 720の解像度に設定されます(zed_cpu_ros.launchファイルのresolutionパラメーターの値は2です)。

2. ZEDカメラを調整する

zed_cpu_rosパッケージの起動フォルダーに新しいファイルcamera_calibration.launchを作成し、次のコンテンツを入力します

<launch>

    <include file="$(find zed_cpu_ros)/launch/zed_cpu_ros.launch"/>

    <arg name="size" default="8x6"/>
    <arg name="square" default="0.108"/>
    <arg name="no-service-check" default="true"/>

    <node pkg="camera_calibration" type="cameracalibrator.py" name="camera_calibration" output="screen" args="">
        <remap from="right" to="/camera/right/image_raw"/>
        <remap from="left" to="/camera/left/image_raw"/>
    </node>

</launch>

サイズはチェッカーボードの長さと幅を表し、正方形はグリッドのサイズを表します。ここでは8x6チェッカーボードを使用しており、各グリッドは108mmです。

次に、起動ファイルを起動して、ZEDカメラのキャリブレーションを開始します

roslaunch  zed_cpu_ros camera_calibration.launch

ここに画像の説明を挿入
次に、ZEDカメラを移動し、右側の[校正]ボタンが緑色に変わるまで待ってから、ボタンをクリックして校正します。

キャリブレーションが完了すると、次の図に示すように、このキャリブレーションの極線エラーが表示されます。
ここに画像の説明を挿入
一般的に、epi <0.2はほぼ同じで、epi <0.15は非常に良好と見なされます。

キャリブレーションプロセスでは、より大きいキャリブレーションボードを使用し、キャリブレーションを数回繰り返して、外部パラメーターが範囲内で安定しているかどうかを比較することをお勧めします。

左と右の内部および外部パラメーターを取得した後、調整されたパラメーターをzed_cpu_ros / configディレクトリーの2つのファイルleft.yamlおよびright.yamlに更新します。次に、zed_cpu_ros.launchファイルのuse_zed_configパラメーターの値をfalseに設定して、ドライバーノードで、更新したばかりのleft.yamlとright.yamlの2つのファイルを使用できるようにします。

3. ELASを実行する

次に、前のブログの方法に従ってelas_rosを起動し、ステレオ補正後の出力画像を確認してください。

カメラのROSドライバーノードを起動した後、camera_infoトピックが出力されているかどうかを確認します。ELAS操作の条件は、
camera / left / image_raw
camera / left / camera_info
camera / right / image_raw
camera / right / camera_infoでなければなりません。

下の写真はZEDカメラを屋外で使用した結果です。このカメラのキャリブレーションパラメーターは依然として出力深度に大きな影響を与えていると感じます。もう1つの問題は、ZEDカメラの左目と右目の画像が同期してトリガーされず、深度出力が発生する可能性があることです。効果がない。
ここに画像の説明を挿入

参照

[1] https://github.com/transcendrobotics/zed_cpu_ros

記事があなたに役立つと思われる場合は、私にいいねをください。O(∩_∩)O

コメントエリア([email protected])で交流し、議論する皆を歓迎します。

コードとデータのダウンロードが遅い場合は、コメント領域にメールボックスを残して、コードとデータのテストパッケージをメールボックスに送信できます。

おすすめ

転載: blog.csdn.net/crp997576280/article/details/107972081