視覚センサデバイス¶
概要¶
Choreonoidのボディモデルには、カメラや距離センサといった視覚センサをデバイスとして搭載することができます。本ページでは、利用可能な視覚センサデバイスの一覧と、各デバイスの主なパラメータについて解説します。
視覚センサデバイスは、Body形式のモデルファイルにおいて、搭載するリンクの elements 以下にデバイスノードとして記述します。記述したデバイスの出力は、 視覚センサのシミュレーション で解説する方法によりシミュレートできます。
全ての視覚センサデバイスで共通の主なパラメータは以下のとおりです。
パラメータ |
デフォルト値 |
意味 |
|---|---|---|
|
— |
デバイスの名前です。コントローラからのデバイス取得等で使用します。 |
|
— |
デバイスのIDです。 |
|
— |
親リンク座標系におけるセンサの位置・姿勢です。 |
|
true |
センサの初期状態(オン/オフ)です。 |
|
30 |
センサが毎秒何回の計測データを出力するかを指定します。 |
|
gl |
センサの光学座標系を「gl」「cv」「robotics」から指定します。詳細は Cameraノード を参照してください。 |
カメラ(Camera)¶
色画像を出力するカメラです。モデルファイルでは type: Camera のデバイスノードとして記述し、 format に COLOR を指定します(デフォルト)。
主なパラメータは以下のとおりです。
パラメータ |
デフォルト値 |
意味 |
|---|---|---|
|
COLOR |
出力する情報の種類です。COLORで色画像を出力します。COLOR以外の指定については後述のレンジカメラを参照してください。 |
|
NORMAL |
レンズの種類を「NORMAL」(通常)「FISHEYE」(魚眼)「DUAL_FISHEYE」(全方位)から指定します。 |
|
640 / 480 |
出力画像の解像度(幅・高さ)です。 |
|
45° |
カメラの視野角です。 |
|
0.04 / 200 |
撮影範囲となる前方クリップ面・後方クリップ面までの距離です [m]。 |
モデルファイルにおける記述の詳細は Cameraノード を参照してください。
レンジカメラ(RangeCamera)¶
深度画像や3次元点群を出力するカメラで、RGB-Dカメラやデプスカメラの模擬に使用できます。モデルファイルでは独立したノード型ではなく、Cameraノードの format に以下のいずれかを指定することで、内部的にレンジカメラとして扱われます。
DEPTH: 深度情報を出力COLOR_DEPTH: 色情報と深度情報を出力POINT_CLOUD: 3次元点群を出力COLOR_POINT_CLOUD: 色情報と3次元点群を出力
カメラのパラメータに加えて、以下のパラメータが利用できます。
パラメータ |
デフォルト値 |
意味 |
|---|---|---|
|
0.1 / 10 |
距離を計測可能な最小・最大距離です [m]。 |
|
1.0 |
各計測点で計測値が得られる確率です。1未満の値を設定することで、計測の欠損を模擬できます。 |
|
0.0 |
計測距離に加わるガウス雑音の標準偏差です [m]。計測誤差を模擬できます。 |
レンジセンサ(RangeSensor)¶
レーザスキャナ(LiDAR)のようなスキャン型の距離センサです。モデルファイルでは type: RangeSensor のデバイスノードとして記述します。水平方向のみのスキャンを行う2次元LiDARと、垂直方向のスキャンも行う3次元LiDARのいずれも表現できます。
主なパラメータは以下のとおりです。
パラメータ |
デフォルト値 |
意味 |
|---|---|---|
|
120° |
水平方向のスキャン範囲の角度です。0度を中心に左右対称にスキャンされます。水平方向のスキャンを行わない場合は0とします。 |
|
1° |
水平方向のスキャンの角度刻み幅です。かわりに |
|
0° |
垂直方向のスキャン範囲の角度です。垂直方向のスキャンを行わない場合は0とします。 |
|
0° |
垂直方向のスキャンの角度刻み幅です。かわりに |
|
30 |
1秒間あたりのスキャン回数です [Hz]。(frame_rateと同じ値として扱われます。) |
|
0.1 / 10 |
計測可能な最小・最大距離です [m]。 |
|
1.0 |
各計測点で計測値が得られる確率です。1未満の値を設定することで、計測の欠損を模擬できます。 |
|
0.0 |
計測距離に加わるガウス雑音の標準偏差です [m]。計測誤差を模擬できます。 |
モデルファイルにおける記述の詳細は RangeSensorノード を参照してください。
LivoxMid360¶
Livox社のLiDARであるMID-360に対応するデバイスです。 LivoxMid360プラグイン を導入することで利用可能となります。モデルファイルでは type: LivoxMid360 のデバイスノードとして記述します。
MID-360は非反復スキャン方式のLiDARで、スキャンのたびに異なるパターンで走査を行うことにより、時間をかけて視野内を密にカバーするという特性を持ちます。本デバイスはこの走査パターンを模擬した点群出力を行います。
RangeSensorを拡張したデバイスとなっており、RangeSensorのパラメータに加えて以下のパラメータが利用できます。
パラメータ |
デフォルト値 |
意味 |
|---|---|---|
|
24000 |
1スキャンあたりの計測点数です。 |
|
0.5° |
走査方向の角度精度です。 |
|
— |
走査パターンを定義する角度列のCSVファイルです。走査パターンのデータとして "${SHARE}/livox/scan_mode/mid360.csv" が付属しています。 |
MID-360のモデルとして share/model/misc/mid360.body が、これを用いたシミュレーションのサンプルプロジェクトとして sample/VisionSimulator/Mid360.cnoid が用意されていますので、記述例・利用例はそちらを参考にしてください。
シミュレーションでの利用¶
これらの視覚センサデバイスの出力は、GLビジョンシミュレータを用いてシミュレートできます。具体的な手順は 視覚センサのシミュレーション を参照してください。またカメラ画像に対してノイズや歪み等のエフェクトをかけたい場合は、 カメラエフェクトのシミュレーション を参照してください。