机器人运动学参数标定

知乎参考: https://www.zhihu.com/question/54682285/answer/336365316


1. 机器人正运动学

1.1 机器人DH参数简介

Denavit-Hartenberg(DH)参数是一种标准化方法,用于描述机器人各关节之间的几何关系。通过DH参数,可以将机器人关节的旋转和平移统一表示为矩阵变换。

DH参数包括以下四个变量:

a i a_i ai:相邻关节轴之间的连杆长度。
d i d_i di:沿关节轴的偏移量。
α i \alpha_i αi:相邻关节轴之间的扭转角。
θ i \theta_i θi:关节的旋转角度。
对于机器人,关节角度 θ i \theta_i θi 通常由硬件编码器返回的值 q i q_i qi 和关节零位偏置 θ i offset \theta_i^{\text{offset}} θioffset 组成: θ i = q i + θ i offset \theta_i = q_i + \theta_i^{\text{offset}} θi=qi+θioffset
DHparams

1.2 正运动学公式

通过DH参数和关节角度,可以计算机器人末端在基坐标系下的位姿矩阵: E B T = f ( q → , ϕ → ) {}_{E}^{B}\textrm{T} = f(\overrightarrow{q}, \overrightarrow{\phi}) EBT=f(q ,ϕ )

其中:

q → \overrightarrow{q} q :关节角度向量,由编码器返回的值组成。
ϕ → \overrightarrow{\phi} ϕ :机器人运动学参数向量,包括所有的DH参数: ϕ → = ( a 0 , d 0 , α 1 , θ 1 , … , a n − 1 , d n − 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,,an1,dn1,αn,θn)T

由于装配误差、加工误差等原因, ϕ → \overrightarrow{\phi} ϕ 中的参数可能存在偏差,因此需要通过标定来修正这些参数。

2. 机器人标定公式

2.1 标定目标

标定的目标是通过实验数据优化 ϕ → \overrightarrow{\phi} ϕ ,使得机器人末端的实际位置与理论计算位置之间的误差最小。

2.2 标定方法

标定的核心思想是利用固定的针尖基准点 P P P,通过最小二乘法迭代优化 ϕ → \overrightarrow{\phi} ϕ

2.2.1 数据采集

TCP

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

针尖基准点

2.2.2 误差定义

由于末端点始终与针尖基准点 P P P 接触,末端点在 P P P 坐标系下的位置应为 ( 0 , 0 , 0 ) T (0, 0, 0)^T (0,0,0)T。因此,误差函数可以定义为:
Δ E P p → = [ 0 0 0 ] − E P p → \Delta_{E}^{P}\overrightarrow{p} = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} - {}_{E}^{P}\overrightarrow{p} ΔEPp = 000 EPp

其中:

E P p → {}_{E}^{P}\overrightarrow{p} EPp :末端点在 P P P 坐标系下的位置,由正运动学计算得到。

2.2.3 雅可比矩阵

误差函数 Δ E P p → \Delta_{E}^{P}\overrightarrow{p} ΔEPp 对运动学参数 ϕ → \overrightarrow{\phi} ϕ 的偏导数构成雅可比矩阵 J J J J = [ ∂ f ∂ a 0 ∂ f ∂ d 0 ⋯ ∂ 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=[a0fd0fθnf]

2.2.4 参数更新

通过最小二乘法,计算运动学参数的修正值 Δ ϕ → \Delta\overrightarrow{\phi} Δϕ
Δ ϕ → = ( J T J ) − 1 J T ⋅ Δ E P p → \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 参数的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值