视觉伺服(Visual Servoing)是使用相机观测到的误差闭环控制机器人运动,使末端、相机或目标逐步达到期望空间关系的方法。
它把视觉系统变成控制反馈的一部分:不是先完全估计一次目标再开环执行,而是在运动过程中持续根据图像或位姿误差修正命令。
核心问题
视觉伺服要回答的是:相机看到的目标偏差,应该如何转换成机器人下一步运动?
常见目标包括:
- 让目标在图像中移动到期望像素位置。
- 让相机与物体保持期望相对位姿。
- 让末端工具对准、接近或跟踪视觉目标。
核心机制
视觉伺服通常包含:
- 感知:从图像中提取目标特征、位姿或误差。
- 误差定义:在图像空间或三维空间定义当前误差。
- 控制映射:把视觉误差转换为相机或末端 Twist、目标 Pose 或关节命令。
- 运动执行:通过 MoveIt Servo、IK、DLS 或控制器闭环执行。
按误差空间可粗略分为图像空间视觉伺服和位姿空间视觉伺服。前者直接控制图像特征误差,后者先估计目标三维位姿,再控制机器人位姿误差。
工程用途
- 末端对准目标、插孔、抓取点或工具。
- 目标移动时持续跟踪,而不是只执行一次静态规划。
- 修正手眼标定、模型误差或目标检测误差带来的开环偏差。
- 和遥操作结合,由视觉闭环补偿操作者粗略输入。
边界与常见坑
- 视觉伺服强依赖相机标定、手眼标定、时间同步和目标检测稳定性。
- 图像噪声会直接进入控制回路,通常需要运动平滑和异常值处理。
- 视觉误差收敛不代表机器人不会碰撞,仍需碰撞检查和关节限位。
- 相机坐标、机器人 base 坐标和 tool frame 混淆会导致修正方向反了。