视觉伺服控制基础与优化技术
视觉伺服控制基础方法
机器人视觉伺服系统包含两种基础配置:相机安装在机械臂末端(眼在手配置)或固定于工作空间。控制架构分为基于位置的视觉伺服(PBVS)和基于图像的视觉伺服(IBVS)。PBVS通过相机标定和目标几何模型估计位姿,实现笛卡尔空间直线运动,但可能导致特征点移出视场。IBVS直接在图像平面控制,保持特征可见性,但对深度误差敏感且可能超出机械臂工作范围。
IBVS支持多种特征类型,以下是线特征和椭圆特征应用示例:
线特征实现
点集 = 圆形点生成器([0 0 3], 0.5, '点数', 3);
相机 = 中心相机模型('标定参数');
线方程 = 特征提取(点集);
控制器 = 基于线IBVS(相机, '示例模式');
控制器.执行();
椭圆特征实现
边界点 = 圆形点生成器([0 0 3], 0.5, '点数', 10);
投影点 = 相机.投影(边界点, '位姿', Tc);
椭圆参数 = 椭圆拟合(投影点);
平面方程 = [0 0 1 -3];
雅可比矩阵 = 相机.椭圆雅可比(椭圆参数, 平面方程);
控制器 = 基于椭圆IBVS(相机, '示例模式');
控制器.执行();
技术演进历程
1973年Shirai首次实现视觉反馈位姿校正,90年代末硬件限制突破推动实时特征提取发展。80年代Weiss团队建立PBVS/IBVS分类体系,后续研究聚焦机械动力学整合、闭环稳定性分析及前馈预测控制。Feddema提出关节闭环控制解决低采样率问题,Chaumette实现任务函数定位,Hashimoto验证多特征伪逆求解优势。
应用场景
技术已应用于乒乓球对打、杂耍机器人、倒立摆稳定、抓取操作及迷宫导航等仿人眼手协调任务。
实验方案
| 实验类别 | 内容 |
|---|---|
| PBVS实验 | 位姿初始化调整、路径系数优化、噪声注入、Simulink建模、扩展卡尔曼滤波实现 |
| 光流分析 | 多焦距流场可视化、复合运动流场生成 |
| IBVS实验 | 增益调节、速度限幅、特征点数量影响、不可达点位验证、轨迹生成器应用 |
| 椭圆伺服 | 五自由度控制、任意形状特征适配 |
graph LR
A[系统初始化] --> B[特征提取]
B --> C[雅可比计算]
C --> D[速度求解]
D --> E[执行运动]
E --> B
XY/Z分区控制技术
传统IBVS存在相机后退问题,XY/Z分区法将自由度分为两组:XY平面运动(v_x,v_y,ω_x,ω_y)和Z轴运动(v_z,ω_z)。控制方程分解为:
\[ \dot{\mathbf{s}} = \mathbf{J}_{xy}\boldsymbol{\nu}_{xy} + \mathbf{J}_{z}\boldsymbol{\nu}_{z} \]
其中Z轴控制采用辅助特征:
- 角度特征θ:选取最长特征线段,控制律 ω_z = k_θ(θ^*⊖θ)
- 面积特征√A:多边形零阶矩计算,控制律 v_z = k_A(√A^*-√A)
仿真模型('sl_partitioned');
// 排斥力算法防止特征点越界
边界距离 = min(u, 宽度-u, v, 高度-v);
if 边界距离 < 阈值
排斥力 = 增益系数*(1/边界距离 - 1/阈值)^2
v_z = k_A(√A^*-√A) + 排斥力
graph TB
S[初始化] --> T[特征采集]
T --> U[XY速度计算]
T --> V[Z特征提取]
V --> W[Z速度计算]
U & W --> X[速度合成]
X --> Y[执行运动]
Y --> T