机器人视觉系统:摄像头,深度传感器和处理
机器人视觉指南:RGB摄像头,深度传感器 (RealSense,ZED),处理管道和与操纵系统的集成.
概述
视觉是机器人操纵的最丰富信息的感觉通道.一个正确配置的视觉系统提供了政策需要抓住,放置,倒和组装物体的几何和语义理解.但选择错误的摄像头,安装位置或处理管道可能会使一个其他能力的系统
本指南涵盖了机器人视觉堆
传感器类型的比较
| 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 |
机器人技术的光学考虑
全球遮蔽器与滚动遮蔽器
这是一个机器人技术中最重要的相机规格.一个滚式离子将图像排列排列 (典型读数:10-30 ms从上到下).当相机或场景在曝光过程中移动时,图像会出现偏
全球快门**同时暴露所有像素.工业机器视觉摄像头 (Basler ace2,FLIR Blackfly S) 使用全球快门传感器 (Sony Pregius / Pregius S家族).这些对于手腕安装的摄像头,高速操纵以及图像捕获过程中手臂移动的任何设置都是必不可少的.
建议: 对于手腕安装位置,总是使用全球
延迟预算
对于远程操作,视觉管道的总延迟 (捕捉+传输+处理+显示) 应该在稳定的运行中低于 100 ms,对于响应感觉则低于 50 ms.对于闭环视觉服务,目标 <16 ms (一个图片以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 - 通过Pylon SDK进行Basler摄像头. 支持硬件触发. T5 - 飞线/点灰色摄像头,硬件触发器和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建议:**使用两者. 一个固定的上层部+一个固定的侧部摄像头用于工作场合环境,加上一个手腕摄像头用于近距离抓住精度.这是我们为 [数据收集服务]
特定产品推
预算研究设置 (共400至800美元)
对于上层和侧面视图,可使用2x Logitech BRIO 4K ($200个) 及1x Intel RealSense D435i ($200个) 进行额外深度.限制:BRIO上滚动离子,USB延迟
标准研究设置 (共1500至3000美元)
产品视觉系统 (5,000至20,000美元)
照片
用于手腕摄像机
智能智能实力Sense D405 (200美元,设计为短距离的紧
视觉处理管道
操作任务的典型机器人视觉管道:
- 图像采集: 摄像头驱动器在30-60Hz上发布ROS2主题
T7 - **不扭曲:**通过
T8 节点或驱动器应用校准参数 - 对象检测/分类: 在 GPU 上运行推理 (YOLOv8, Segment Anything,或自定义模型). 发布检测对象的姿势为
T9 - 点云生成: 如果使用深度摄像头,通过
T10 生成点云. - Grasp规划: 提供检测物体的数据和指向云的规划器 (GraspIt!,联系-GraspNet或学习政策)
- **录制:**记录同步的图像,姿势和行动到 HDF5用于训练数据
对于GPU推断,NVIDIA RTX 3060 (12GB VRAM) 在 1280x960 图像上处理YOLOv8-Medium 30+ fps.
概述
视觉是机器人操纵的最丰富信息的感觉通道.一个正确配置的视觉系统提供了政策需要抓住,放置,倒和组装物体的几何和语义理解.但选择错误的摄像头,安装位置或处理管道可能会使一个其他能力的系统
本指南涵盖了机器人视觉堆
传感器类型的比较
| 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 |
机器人技术的光学考虑
全球遮蔽器与滚动遮蔽器
这是一个机器人技术中最重要的相机规格.一个滚式离子将图像排列排列 (典型读数:10-30 ms从上到下).当相机或场景在曝光过程中移动时,图像会出现偏
全球快门**同时暴露所有像素.工业机器视觉摄像头 (Basler ace2,FLIR Blackfly S) 使用全球快门传感器 (Sony Pregius / Pregius S家族).这些对于手腕安装的摄像头,高速操纵以及图像捕获过程中手臂移动的任何设置都是必不可少的.
建议: 对于手腕安装位置,总是使用全球
延迟预算
对于远程操作,视觉管道的总延迟 (捕捉+传输+处理+显示) 应该在稳定的运行中低于 100 ms,对于响应感觉则低于 50 ms.对于闭环视觉服务,目标 <16 ms (一个图片以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 - 飞线/点灰色摄像头,硬件触发器和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建议:**使用两者.一个固定的上层部+一个固定的侧部摄像头用于工作场合环境,加上一个手腕摄像头用于近距离抓住精度.这是我们为 [数据收集服务]
特定产品推
预算研究设置 (共400至800美元)
对于上层和侧面视图,可使用2x Logitech BRIO 4K ($200个) 及1x Intel RealSense D435i ($200个) 进行额外深度.限制:BRIO上滚动离子,USB延迟
标准研究设置 (共1500至3000美元)
对于高端和侧面视图,有全球遮蔽器,深度为1x RealSense D435i ($200).为硬件触发添加一个GigE开关 (PoE ($100) 和一个Arduino Uno ($25).这是RCSV大多数[数据收集任务]的设置.
产品视觉系统 (5,000至20,000美元)
照片
用于手腕摄像机
智能智能实力Sense D405 (200美元,设计为短距离的紧
视觉处理管道
操作任务的典型机器人视觉管道:
- 图像采集: 摄像头驱动器在30-60Hz上发布ROS2主题
T16 - **不扭曲:**通过
T17 节点或驱动器应用校准参数 - 对象检测/分类: 在 GPU 上运行推理 (YOLOv8, Segment Anything,或自定义模型). 发布检测对象的姿态为
T18 - 点云生成: 如果使用深度摄像头,通过
T19 生成点云. - Grasp规划: 提供检测物体的数据和指向云的规划器 (GraspIt!,联系-GraspNet或学习政策)
- **录制:**记录同步的图像,姿势和行动到 HDF5用于训练数据
对于GPU推断,NVIDIA RTX 3060 (12GB VRAM) 在 1280x960 图像上处理YOLOv8-Medium 30+ fps.







