机器人运动学参数标定
机器人运动学参数标定
知乎参考: https://www.zhihu.com/question/54682285/answer/336365316
1. 机器人正运动学
1.1 机器人DH参数简介
Denavit-Hartenberg(DH)参数是一种标准化方法,用于描述机器人各关节之间的几何关系。通过DH参数,可以将机器人关节的旋转和平移统一表示为矩阵变换。
DH参数包括以下四个变量:
aia_iai:相邻关节轴之间的连杆长度。
did_idi:沿关节轴的偏移量。
αi\alpha_iαi:相邻关节轴之间的扭转角。
θi\theta_iθi:关节的旋转角度。
对于机器人,关节角度 θi\theta_iθi 通常由硬件编码器返回的值 qiq_iqi 和关节零位偏置 θioffset\theta_i^{\text{offset}}θioffset 组成: θi=qi+θioffset \theta_i = q_i + \theta_i^{\text{offset}} θi=qi+θioffset
1.2 正运动学公式
通过DH参数和关节角度,可以计算机器人末端在基坐标系下的位姿矩阵: EBT=f(q→,ϕ→) {}_{E}^{B}\textrm{T} = f(\overrightarrow{q}, \overrightarrow{\phi}) EBT=f(q,ϕ)
其中:
q→\overrightarrow{q}q:关节角度向量,由编码器返回的值组成。
ϕ→\overrightarrow{\phi}ϕ:机器人运动学参数向量,包括所有的DH参数: ϕ→=(a0,d0,α1,θ1,…,an−1,dn−1,αn,θn)T \overrightarrow{\phi} = (a_0, d_0, \alpha_1, \theta_1, \dots, a_{n-1}, d_{n-1}, \alpha_n, \theta_n)^T ϕ=(a0,d0,α1,θ1,…,an−1,dn−1,αn,θn)T
由于装配误差、加工误差等原因,ϕ→\overrightarrow{\phi}ϕ 中的参数可能存在偏差,因此需要通过标定来修正这些参数。
2. 机器人标定公式
2.1 标定目标
标定的目标是通过实验数据优化 ϕ→\overrightarrow{\phi}ϕ,使得机器人末端的实际位置与理论计算位置之间的误差最小。
2.2 标定方法
标定的核心思想是利用固定的针尖基准点 PPP,通过最小二乘法迭代优化 ϕ→\overrightarrow{\phi}ϕ。
2.2.1 数据采集

- 将机器人末端与针尖基准点 PPP 对齐。
- 选取若干个不同的关节角度配置 q→\overrightarrow{q}q,记录每个配置下的关节角度数据。
- 通过正运动学公式计算每个配置下的末端位姿 EBT{}^{\text{B}}_{\text{E}}TEBT。

2.2.2 误差定义
由于末端点始终与针尖基准点 PPP 接触,末端点在 PPP 坐标系下的位置应为 (0,0,0)T(0, 0, 0)^T(0,0,0)T。因此,误差函数可以定义为:
ΔEPp→=[000]−EPp→ \Delta_{E}^{P}\overrightarrow{p} = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} - {}_{E}^{P}\overrightarrow{p} ΔEPp=
000
−EPp
其中:
EPp→{}_{E}^{P}\overrightarrow{p}EPp:末端点在 PPP 坐标系下的位置,由正运动学计算得到。
2.2.3 雅可比矩阵
误差函数 ΔEPp→\Delta_{E}^{P}\overrightarrow{p}ΔEPp 对运动学参数 ϕ→\overrightarrow{\phi}ϕ 的偏导数构成雅可比矩阵 JJJ: J=[∂f∂a0∂f∂d0⋯∂f∂θn] J = \begin{bmatrix} \frac{\partial f}{\partial a_0} & \frac{\partial f}{\partial d_0} & \cdots & \frac{\partial f}{\partial \theta_n} \end{bmatrix} J=[∂a0∂f∂d0∂f⋯∂θn∂f]
2.2.4 参数更新
通过最小二乘法,计算运动学参数的修正值 Δϕ→\Delta\overrightarrow{\phi}Δϕ:
Δϕ→=(JTJ)−1JT⋅ΔEPp→ \Delta\overrightarrow{\phi} = (J^T J)^{-1} J^T \cdot \Delta_{E}^{P}\overrightarrow{p} Δϕ=(JTJ)−1JT⋅ΔEPp
然后更新运动学参数:
ϕ→k+1=ϕ→k+Δϕ→ \overrightarrow{\phi}^{k+1} = \overrightarrow{\phi}^{k} + \Delta\overrightarrow{\phi} ϕk+1=ϕk+Δϕ
2.2.5 迭代停止条件
重复上述步骤,直到 Δϕ→\Delta\overrightarrow{\phi}Δϕ 足够小,即: ∣Δϕ→∣<ϵ |\Delta\overrightarrow{\phi}| < \epsilon ∣Δϕ∣<ϵ
其中 ϵ\epsilonϵ 是预设的误差阈值。
3. 参考开源仓库
通过其他方法进行运动学参数标定.
-
https://github.com/PhilNad/robot-arm-kinematic-calibration
- 采用基于POE的机器人运动学校准方法,利用轴配置空间和伴随误差模型,基于扭转和正向运动学的指数积(POE)公式。通过迭代最小二乘优化方案,可以找到螺旋轴校正,从而最小化观测值与机器人正向运动学之间的误差。
-
https://github.com/neuebot/Kinematic-Calibration
- 一种基于圆拟合和对偶矢量几何的方法,用于确定串行机械手的经典Denavit-Hartenberg参数。
-
https://github.com/cursi36/Kalibrot?tab=readme-ov-file
- 采用Kalibrot(一种优化算法)解决寻找正确机器人运动学校准的最佳 DH 参数的问题。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)