ロボット視力システム:カメラ,深度センサー,処理
ロボット視力ガイド:RGBカメラ,深度センサー (RealSense, ZED),処理パイプライン,操作システムへの統合
概要
視覚はロボット操作のための最も情報豊富な感覚チャネルである.適切に構成された視覚システムは,政策が物体を把握し,配置し,注ぎ,組み立てなければならないという幾何学的な理解を提供します.しかし,間違ったカメラ,マウントポジション,または処理パイプラインを選択することで,他の方法で機能するシステムを麻痺させることができます.
このガイドはロボット視力スタックのあらゆる層をカバーしています:センサー選択,ロボット工学のための光学的な考慮,校正手順,組み立て戦略,処理パイプライン,およびROS2統合.我々の勧告は,操作研究,遠隔操作,生産検査アプリケーションにおけるRCSVにおける数十の視力システム展開に基づいています.
センサータイプ比較
| Sensor Type | Example Products | Resolution | Price | Best For |
|---|---|---|---|---|
| 2D RGB (global shutter) | Basler ace2, FLIR Blackfly S, Allied Vision Alvium | Up to 5472x3648 | $400-$2,000 | High-quality data collection, policy training, inspection |
| 2D RGB (rolling shutter / USB) | Logitech BRIO, ELP USB cameras, Arducam | Up to 4K | $30-$200 | Budget prototyping, slow-motion tasks |
| Stereo Depth (active IR) | Intel RealSense D435i, D455 | 1280x720 depth, 1920x1080 RGB | $200-$350 | Supplemental depth, point cloud generation |
| Stereo Depth (neural) | Stereolabs ZED 2i, ZED Mini | 2208x1242 (2K), depth to 20m | $450-$550 | Mobile robots, outdoor depth, spatial mapping |
| Structured Light | Photoneo PhoXi, Ensenso N-series | 2064x1544 (3.2 MP depth) | $5,000-$15,000 | Bin picking, high-precision 3D scanning |
| Time-of-Flight (ToF) | Azure Kinect DK, Lucid Helios2 | 1024x1024 (Kinect), 640x480 | $400-$3,000 | Body tracking, scene understanding |
| Event Camera | Prophesee EVK4, iniVation DVXplorer | 1280x720 (event stream) | $3,000-$8,000 | High-speed tracking, dynamic scenes, low latency |
| Thermal (LWIR) | FLIR Lepton 3.5, Seek Thermal | 160x120 to 640x512 | $200-$5,000 | Thermal inspection, human detection, food handling |
ロボット学における光学的な考慮事項
グローバルシャッター vs ローリングシャッター
これはロボット工学における最も重要なカメラの仕様である.ローリングシャッターが****によって,画像の列列を暴露する (典型的な読み込み:10-30 ms) になります.カメラやシーンが曝光中に移動する際,画像は歪み,振動,または部分フレーム歪みを示します. フレームの上下は2mmで 引き裂けやすいので フレームの上下は2mmで 引き裂けやすいのです
グローバルシャッター**は,すべてのピクセルを同時に暴露する.産業用機械視力カメラ (Basler ace2, FLIR Blackfly S) は,グローバルシャッターセンサー (Sony Pregius / Pregius S 家族) を使用する.これらは腕に搭載されたカメラ,高速操作,および画像撮影中に腕が動く設定に不可欠である.
推奨: 手首に設置された位置では常にグローバルシャッターカメラを使用してください. ゆっくり作業 (<50mm/s) を撮影する固定型オーバーヘッドカメラでは,予算が制限されている場合,ローリングシャッターは受け入れられます.
遅延予算
遠隔操作では,全視管線遅延 (キャプチャ + 転送 + 処理 + ディスプレイ) は安定した動作のために 100 ms 以下のもので,応答性感のために 50 ms 以下のものでなければならない.閉ループ視線伺服器では,目標 <16 ms (フレーム1 つ 60 fps で) のものである.遅延の主要要因は:
- センサーの曝光時間: 1-33 ms (照明とフレーム速さによって異なります)
- 転送: <1 ms (ハードウェアトリガー付きGigE) から 50 ms (バッファリング付きUSB)
- 処理 (検出/分割): 5-50 ms (GPUに依存する)
- ネットワーク (遠隔操作者にストリーミングする場合): 5-200 ms (インフラストラクチャに依存する)
ROS2 カメラドライバー
重要なパッケージは:
T2 - D400とL500シリーズの公式インテルドライバー. 深度,IR,RGB,IMUトピックを公開します. T3 - ステレオラブZEDカメラ. 空間マッピングとオブジェクト検出ノードが含まれています. T4 - Basler カメラ バイ Pylon SDK ハードウェアのトリガーをサポートする T5 - FLIR/Point Grey カメラ ハードウェアトリガーとGPIOサポート T6 - USBカメラのV4L2ドライバは通用です ハードウェアのトリガーサポートはありません
OpenCVでカメラの校正
適切な校正は交渉できない.校正されていないカメラは3D再構築と政策一般化を悪化させる放射性歪みを導入する.OpenCVを使用する標準手順は以下の通りです:
import cv2
import numpy as np
import glob
# Checkerboard dimensions (inner corners)
BOARD_SIZE = (9, 6)
SQUARE_SIZE = 25.0 # mm
# Prepare 3D object points
objp = np.zeros((BOARD_SIZE[0] * BOARD_SIZE[1], 3), np.float32)
objp[:, :2] = np.mgrid[0:BOARD_SIZE[0], 0:BOARD_SIZE[1]].T.reshape(-1, 2) * SQUARE_SIZE
obj_points, img_points = [], []
for fname in sorted(glob.glob("calib_images/*.png")):
img = cv2.imread(fname)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, BOARD_SIZE, None)
if ret:
corners = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1),
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001))
obj_points.append(objp)
img_points.append(corners)
ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(
obj_points, img_points, gray.shape[::-1], None, None)
print(f"Reprojection error: {ret:.4f} px") # Target: < 0.5 px
print(f"Camera matrix K:\n{K}")
print(f"Distortion coeffs: {dist}")
# Save for ROS2 camera_info
np.savez("calibration.npz", K=K, dist=dist, rvecs=rvecs, tvecs=tvecs)
ベストプラクティス: チェッカーボードで30〜50枚の画像を異なる角度 (45度まで傾斜),距離 (フレームの20%〜80%を満たす) で収集し,全画像の位置を表示する.研究レベルの作業では再投影エラーは0.5ピクセル以下でなければならない.レンズ変更,焦点調整,物理的な影響後再校正する.
腕に搭載されたカメラと外部カメラの交換
| Factor | Wrist-Mounted | External (Fixed) |
|---|---|---|
| Field of View | Narrow, focused on grasp point | Wide, full workspace coverage |
| Occlusion | Minimal -- always sees what end-effector sees | Arm and gripper can occlude objects |
| Motion blur | High -- requires global shutter + short exposure | Low -- camera is stationary |
| キャリブレーション | Eye-in-hand calibration required | Eye-to-hand calibration (simpler) |
| Cable management | Challenging -- cable must route along arm | Simple -- fixed cable run |
| Weight at end-effector | Adds 50-300g (reduces payload budget) | Zero impact on payload |
| Policy training impact | Strong signal for fine manipulation | Good for spatial reasoning and navigation |
RCSVの推奨: 両方を使用します. 作業場コンテキストのために固定オーバーヘッド + 固定サイドカメラ,および近視把握精度のための腕カメラ.これは [データ収集サービス] (T20
製品に関する特別勧告
予算研究設定 (合計400~800ドル)
2x ロジテック BRIO 4K (200ドル各) オーバーヘッドとサイドビュー,1x Intel RealSense D435i (200ドル) 追加深度.制限:BRIOでローリングシャッター,USB遅延ジッター.遅い操作作業 (<50mm/s) と初期プロトタイプに適しています.
標準研究設定 (合計 1,500~ 3,000ドル)
2x Basler ace2 a2A1920-160ucBAS (それぞれ650ドル) オーバーヘッドとサイドビューのためのグローバルシャッター,1x RealSense D435i (200ドル) の深さのために.PoE (100ドル) とArduino Uno (25ドル) のGigEスイッチを追加する.これはRCSVの設定でほとんどの [データ収集業務](
生産視力システム (5,000~$20,000)
フォトネオ・フォキシ3Dスキャン機 (US$8,000US$15,000) は,ミリメートル以下の深度精度でビニーを採取する.または構造化ライト3Dスキャン用のEnsenso Nシリーズ (US$5,000US$8,000).これらは通常,色彩覆いのために工業級2Dカメラ (Basler ace2またはFLIR Blackfly S) と組み合わせられます.
腕時計カメラ
インテルRealSense D405 (200ドル,短距離向けに設計されたコンパクトな形状因子) や USB3 (USB3300-500ドル,グローバルシャッター,非常にコンパクト) のバスラーダート.D405は最低深さ距離1.5cmで,近距離の把握観測に最適です.
視力処理パイプライン
操作作業のための典型的なロボット視力パイプライン:
- **画像取得:**カメラドライバーは,ROS2トピックで30~60Hzで
T7 を公開する - 不変:
T8 ノードまたはドライバーで校准パラメータを適用する - オブジェクト検出/セグメント: GPU で推論 (YOLOv8,セグメント 何でも,またはカスタムモデル) を実行する.検出されたオブジェクトポーズを
T9 として公開する - 点雲生成: ディープカメラを使用する場合,点雲を
T10 で生成します. 作業空間境界框でフィルタリング - Grasp計画: 検出された物体をフィードし,捉えるためのクラウドを指すプランナー (GraspIt!,Contact-GraspNet,または学習ポリシー)
- **記録:**訓練データのために HDF5に同期された画像,ポーズ,アクションをログ
GPUの推論のために,NVIDIA RTX 3060 (12GB VRAM) は 1280x960 の画像で 30+ fps でYOLOv8-Medium を処理する.Segment Anything では RTX 4070 またはそれ以上の方が推奨される.
概要
視覚はロボット操作のための最も情報豊富な感覚チャネルである.適切に構成された視覚システムは,政策が物体を把握し,配置し,注ぎ,組み立てなければならないという幾何学的な理解を提供します.しかし,間違ったカメラ,マウントポジション,または処理パイプラインを選択することで,他の方法で機能するシステムを麻痺させることができます.
このガイドはロボット視力スタックのあらゆる層をカバーしています:センサー選択,ロボット工学のための光学的な考慮,校正手順,組み立て戦略,処理パイプライン,およびROS2統合.我々の勧告は,操作研究,遠隔操作,生産検査アプリケーションにおけるRCSVにおける数十の視力システム展開に基づいています.
センサータイプ比較
| Sensor Type | Example Products | Resolution | Price | Best For |
|---|---|---|---|---|
| 2D RGB (global shutter) | Basler ace2, FLIR Blackfly S, Allied Vision Alvium | Up to 5472x3648 | $400-$2,000 | High-quality data collection, policy training, inspection |
| 2D RGB (rolling shutter / USB) | Logitech BRIO, ELP USB cameras, Arducam | Up to 4K | $30-$200 | Budget prototyping, slow-motion tasks |
| Stereo Depth (active IR) | Intel RealSense D435i, D455 | 1280x720 depth, 1920x1080 RGB | $200-$350 | Supplemental depth, point cloud generation |
| Stereo Depth (neural) | Stereolabs ZED 2i, ZED Mini | 2208x1242 (2K), depth to 20m | $450-$550 | Mobile robots, outdoor depth, spatial mapping |
| Structured Light | Photoneo PhoXi, Ensenso N-series | 2064x1544 (3.2 MP depth) | $5,000-$15,000 | Bin picking, high-precision 3D scanning |
| Time-of-Flight (ToF) | Azure Kinect DK, Lucid Helios2 | 1024x1024 (Kinect), 640x480 | $400-$3,000 | Body tracking, scene understanding |
| Event Camera | Prophesee EVK4, iniVation DVXplorer | 1280x720 (event stream) | $3,000-$8,000 | High-speed tracking, dynamic scenes, low latency |
| Thermal (LWIR) | FLIR Lepton 3.5, Seek Thermal | 160x120 to 640x512 | $200-$5,000 | Thermal inspection, human detection, food handling |
ロボット学における光学的な考慮事項
グローバルシャッター vs ローリングシャッター
これはロボット工学における最も重要なカメラの仕様である.ローリングシャッターが****によって,画像の列列を暴露する (典型的な読み込み:10-30 ms) になります.カメラやシーンが曝光中に移動する際,画像は歪み,振動,または部分フレーム歪みを示します. フレームの上下は2mmで 引き裂けやすいので フレームの上下は2mmで 引き裂けやすいのです
グローバルシャッター**は,すべてのピクセルを同時に暴露する.産業用機械視力カメラ (Basler ace2, FLIR Blackfly S) は,グローバルシャッターセンサー (Sony Pregius / Pregius S 家族) を使用する.これらは腕に搭載されたカメラ,高速操作,および画像撮影中に腕が動く設定に不可欠である.
推奨: 手首に設置された位置では常にグローバルシャッターカメラを使用してください. ゆっくり作業 (<50mm/s) を撮影する固定型オーバーヘッドカメラでは,予算が制限されている場合,ローリングシャッターは受け入れられます.
遅延予算
遠隔操作では,全視管線遅延 (キャプチャ + 転送 + 処理 + ディスプレイ) は安定した動作のために 100 ms 以下のもので,応答性感のために 50 ms 以下のものでなければならない.閉ループ視線伺服器では,目標 <16 ms (フレーム1 つ 60 fps で) のものである.遅延の主要要因は:
- センサーの曝光時間: 1-33 ms (照明とフレーム速さによって異なります)
- 転送: <1 ms (ハードウェアトリガー付きGigE) から 50 ms (バッファリング付きUSB)
- 処理 (検出/分割): 5-50 ms (GPUに依存する)
- ネットワーク (遠隔操作者にストリーミングする場合): 5-200 ms (インフラストラクチャに依存する)
ROS2 カメラドライバー
重要なパッケージは:
T11 - D400とL500シリーズの公式インテルドライバー. 深度,IR,RGB,IMUトピックを掲載します. T12 - ステレオラブZEDカメラ. 空間マッピングとオブジェクト検出ノードが含まれています. T13 -- Basler カメラ バイ Pylon SDK. ハードウェアのトリガーをサポートする. T14 - FLIR/Point Grey カメラ ハードウェアトリガーとGPIOサポート T15 - USBカメラのV4L2ドライバは一般的です ハードウェアのトリガーサポートはありません
OpenCVでカメラの校正
適切な校正は交渉できない.校正されていないカメラは3D再構築と政策一般化を悪化させる放射性歪みを導入する.OpenCVを使用する標準手順は以下の通りです:
import cv2
import numpy as np
import glob
# Checkerboard dimensions (inner corners)
BOARD_SIZE = (9, 6)
SQUARE_SIZE = 25.0 # mm
# Prepare 3D object points
objp = np.zeros((BOARD_SIZE[0] * BOARD_SIZE[1], 3), np.float32)
objp[:, :2] = np.mgrid[0:BOARD_SIZE[0], 0:BOARD_SIZE[1]].T.reshape(-1, 2) * SQUARE_SIZE
obj_points, img_points = [], []
for fname in sorted(glob.glob("calib_images/*.png")):
img = cv2.imread(fname)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, BOARD_SIZE, None)
if ret:
corners = cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1),
(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001))
obj_points.append(objp)
img_points.append(corners)
ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(
obj_points, img_points, gray.shape[::-1], None, None)
print(f"Reprojection error: {ret:.4f} px") # Target: < 0.5 px
print(f"Camera matrix K:\n{K}")
print(f"Distortion coeffs: {dist}")
# Save for ROS2 camera_info
np.savez("calibration.npz", K=K, dist=dist, rvecs=rvecs, tvecs=tvecs)
ベストプラクティス: チェッカーボードで30〜50枚の画像を異なる角度 (45度まで傾斜),距離 (フレームの20%〜80%を満たす) で収集し,全画像の位置を表示する.研究レベルの作業では再投影エラーは0.5ピクセル以下でなければならない.レンズ変更,焦点調整,物理的な影響後再校正する.
腕に搭載されたカメラと外部カメラの交換
| Factor | Wrist-Mounted | External (Fixed) |
|---|---|---|
| Field of View | Narrow, focused on grasp point | Wide, full workspace coverage |
| Occlusion | Minimal -- always sees what end-effector sees | Arm and gripper can occlude objects |
| Motion blur | High -- requires global shutter + short exposure | Low -- camera is stationary |
| キャリブレーション | Eye-in-hand calibration required | Eye-to-hand calibration (simpler) |
| Cable management | Challenging -- cable must route along arm | Simple -- fixed cable run |
| Weight at end-effector | Adds 50-300g (reduces payload budget) | Zero impact on payload |
| Policy training impact | Strong signal for fine manipulation | Good for spatial reasoning and navigation |
RCSVの推奨: 両方を使用します. 作業場コンテキストのために固定オーバーヘッド + 固定サイドカメラ,および近視把握精度のための腕カメラ. [データ収集サービス] (T23
製品に関する特別勧告
予算研究設定 (合計400~800ドル)
2x ロジテック BRIO 4K (200ドル各) オーバーヘッドとサイドビュー,1x Intel RealSense D435i (200ドル) 追加深度.制限:BRIOでローリングシャッター,USB遅延ジッター.遅い操作作業 (<50mm/s) と初期プロトタイプに適しています.
標準研究設定 (合計 1,500~ 3,000ドル)
2x Basler ace2 a2A1920-160ucBAS (それぞれ650ドル) オーバーヘッドとサイドビューのためのグローバルシャッター,1x RealSense D435i (200ドル) の深さのために.PoE (100ドル) とArduino Uno (25ドル) のGigEスイッチを追加する.これはRCSVの設定でほとんどの [データ収集業務](
生産視力システム (5,000~$20,000)
フォトネオ・フォキシ3Dスキャン機 (US$8,000US$15,000) は,ミリメートル以下の深度精度でビニーを採取する.または構造化ライト3Dスキャン用のEnsenso Nシリーズ (US$5,000US$8,000).これらは通常,色彩覆いのために工業級2Dカメラ (Basler ace2またはFLIR Blackfly S) と組み合わせられます.
腕時計カメラ
インテルRealSense D405 (200ドル,短距離向けに設計されたコンパクトな形状因子) や USB3 (USB3300-500ドル,グローバルシャッター,非常にコンパクト) のバスラーダート.D405は最低深さ距離1.5cmで,近距離の把握観測に最適です.
視力処理パイプライン
操作作業のための典型的なロボット視力パイプライン:
- **画像取得:**カメラドライバーは,ROS2トピックで30~60Hzで
T16 を公開する - 不変:
T17 ノードまたはドライバーで校准パラメータを適用する - オブジェクト検出/セグメント: GPU で推論 (YOLOv8,セグメント 何でも,またはカスタムモデル) を実行する.検出されたオブジェクトポーズを
T18 として公開する - 点雲生成: ディープカメラを使用する場合,点雲を
T19 で生成します. ワークスペースの境界框でフィルタリング - Grasp計画: 検出された物体をフィードし,捉えるためのクラウドを指すプランナー (GraspIt!,Contact-GraspNet,または学習ポリシー)
- **記録:**訓練データのために HDF5に同期された画像,ポーズ,アクションをログ
GPUの推論のために,NVIDIA RTX 3060 (12GB VRAM) は 1280x960 の画像で 30+ fps でYOLOv8-Medium を処理する.Segment Anything では RTX 4070 またはそれ以上の方が推奨される.







