【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真

基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真

  • 基于PoE公式的UR5机械臂逆运动学分析
    • 1.1 理论基础
      • 1.1.1 一阶运动学
      • 1.1.2 牛顿-拉夫森数值迭代算法
    • 1.2 基于PoE公式的UR5机械臂逆运动学求解
    • 1.3 matlab仿真验证


上一篇:【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真


基于PoE公式的UR5机械臂逆运动学分析

1.1 理论基础

1.1.1 一阶运动学

讨论如何从给定的一组关节位置和速度计算末端执行器的速度(运动旋量)。

  • n n n杆开链机器人的正向运动学可以写成PoE公式 T ( θ ) = e [ S 1 ] θ 1 e [ S 2 ] θ 2 … e [ S n ] θ n M \boldsymbol{T}(\boldsymbol{\theta})=e^{\left[\mathcal{S}_{1}\right] \theta_{1}} e^{\left[\mathcal{S}_{2}\right] \theta_{2}}\dots e^{\left[\mathcal{S}_{n}\right] \theta_{n}} \boldsymbol{M} T(θ)=e[S1]θ1e[S2]θ2e[Sn]θnM空间雅可比 J s ( θ ) ∈ R 6 × n J_{s}(\boldsymbol{\theta}) \in \mathbb{R}^{6 \times n} Js(θ)R6×n 通过公式 V s = J s ( θ ) θ ˙ \mathcal{V}_{s}=J_{s}(\boldsymbol{\theta}) \boldsymbol{\dot{\theta}} Vs=Js(θ)θ˙ 联系起关节速度 θ ˙ ∈ R n \boldsymbol{\dot{\theta}} \in \mathbb{R}^{n} θ˙Rn 与空间速度 V s ∈ R 6 \mathcal{V}_{s}\in \mathbb{R}^{6} VsR6 J s ( θ ) J_{s}(\boldsymbol{\theta}) Js(θ) i i i列为 J s i ( θ ) = Ad ⁡ e [ S 1 ] θ 1 … e [ S i − 1 ] θ i − 1 ( S i ) i = 2 , ⋯   , n J s 1 = S 1 \begin{array}{l} J_{s i}(\boldsymbol{\theta})=\operatorname{Ad}_{e^{\left[S_{1}\right] \theta_{1} \ldots} e^{\left[S_{i-1}\right] \theta_{i-1}}}\left(\mathcal{S}_{i}\right) \quad i=2, \cdots, n \\ J_{s 1}=\mathcal{S}_{1} \\ \end{array} Jsi(θ)=Ade[S1]θ1e[Si1]θi1(Si)i=2,,nJs1=S1 J s i J_{s i} Jsi为机器人经历刚体位移 T i − 1 = e [ S 1 ] θ 1 ⋯ e [ S i − 1 ] θ i − 1 \boldsymbol{T}_{i-1}=e^{\left[\mathcal{S}_{1}\right] \theta_{1}} \cdots e^{\left[\mathcal{S}_{i-1}\right] \theta_{i-1}} Ti1=e[S1]θ1e[Si1]θi1之后第 i i i个关节轴相对空间坐标系的旋量,同时也是关节变量 θ 1 ⋯ θ i − 1 \theta_{1} \cdots \theta_{i-1} θ1θi1的函数。
  • n n n杆开链机器人的正向运动学也可以写成如下PoE公式 T ( θ ) = M e [ B 1 ] θ 1 e [ B 2 ] θ 2 ⋯ e [ B n ] θ n \boldsymbol{T}(\boldsymbol{\theta})=\boldsymbol{M} e^{\left[\mathcal{B}_{1}\right] \theta_{1}} e^{\left[\mathcal{B}_{2}\right] \theta_{2}} \cdots e^{\left[\mathcal{B}_{n}\right] \theta_{n}} T(θ)=Me[B1]θ1e[B2]θ2e[Bn]θn物体雅可比 J b ( θ ) ∈ R 6 × n J_{b}(\boldsymbol{\theta}) \in \mathbb{R}^{6 \times n} Jb(θ)R6×n 通过公式 V b = J b ( θ ) θ ˙ \mathcal{V}_{b}=J_{b}(\boldsymbol{\theta}) \boldsymbol{\dot{\theta}} Vb=Jb(θ)θ˙ 联系起关节速度 θ ˙ ∈ R n \boldsymbol{\dot{\theta}} \in \mathbb{R}^{n} θ˙Rn 与末端物体速度 V b ∈ R 6 \mathcal{V}_{b}\in \mathbb{R}^{6} VbR6 J b ( θ ) J_{b}(\boldsymbol{\theta}) Jb(θ) i i i列为 J b i ( θ ) = Ad ⁡ e − [ B n ] θ n … e − [ B i + 1 ] θ i + 1 ( B i ) i = n − 1 , ⋯   , 1 J b n = B n \begin{array}{l} J_{b i}(\boldsymbol{\theta})=\operatorname{Ad}_{e^{-[B_{n}] \theta_{n} \ldots} e^{-\left[B_{i+1}\right] \theta_{i+1}}}\left(\mathcal{B}_{i}\right) \quad i=n-1, \cdots, 1 \\ J_{b n}=\mathcal{B}_{n} \\ \end{array} Jbi(θ)=Ade[Bn]θne[Bi+1]θi+1(Bi)i=n1,,1Jbn=Bn J b i J_{b i} Jbi为第 i i i个关节轴的旋量坐标,相对末端坐标系来描述。 θ \boldsymbol{\theta} θ值任意。

1.1.2 牛顿-拉夫森数值迭代算法

此方法可以用于求解非线性方程。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第1张图片【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第2张图片

1.2 基于PoE公式的UR5机械臂逆运动学求解

UR5机械臂尺寸数据及螺旋轴的建立如下图左、右所示。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第3张图片
空间坐标系下的螺旋轴 S i = ( ω i , v i ) , i = 1 , … , 6 \boldsymbol{\mathcal { S }}_{i}=\left(\boldsymbol{\omega}_{i}, \boldsymbol{v}_{i}\right), i=1, \ldots, 6 Si=(ωi,vi),i=1,,6,坐标如下表所示:

i i i ω i \boldsymbol{\omega}_{i} ωi v i \boldsymbol{v}_{i} vi
1 ( 0 , 0 , 1 ) (0,0,1) (0,0,1) ( 0 , 0 , 0 ) (0,0,0) (0,0,0)
2 ( 0 , − 1 , 0 ) (0,-1,0) (0,1,0) ( H 1 , 0 , 0 ) \left(H_{1}, 0,0\right) (H1,0,0)
3 ( 0 , − 1 , 0 ) (0,-1,0) (0,1,0) ( H 1 , 0 , L 1 ) \left(H_{1}, 0,L_{1}\right) (H1,0,L1)
4 ( 0 , − 1 , 0 ) (0,-1,0) (0,1,0) ( H 1 , 0 , L 1 + L 1 ) \left(H_{1}, 0, L_{1}+L_{1}\right) (H1,0,L1+L1)
5 ( 0 , 0 , − 1 ) (0,0,-1) (0,0,1) ( W 1 , − L 1 − L 1 , 0 ) \left(W_{1},-L_{1}-L_{1}, 0\right) (W1,L1L1,0)
6 ( 0 , − 1 , 0 ) (0,-1,0) (0,1,0) ( H 1 − H 1 , 0 , L 1 + L 1 ) \left(H_{1}-H_{1}, 0, L_{1}+L_{1}\right) (H1H1,0,L1+L1)

逆运动学方程无解析解时,可采用迭代数值方法求解。即使存在解析解,数值算法也可用来改善求解精度。本节将运动学逆解方程转化为数值方法可解的形式。
由于建立了空间坐标系下描述的螺旋轴,因此方便起见,采用空间速度旋量参与求解,算法如下:
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第4张图片

1.3 matlab仿真验证

首先进行数据准备,包括空间坐标系下的螺旋轴、末端初始位形、期望末端位形(对应关节角 θ 1 = ( 0 , − 2 π 3 , − π 2 , − π 4 , − π 4 , 0 ) \boldsymbol{\theta}_{1}=\left(0,-\frac{2 \pi}{3},-\frac{\pi}{2},-\frac{\pi}{4},-\frac{\pi}{4}, 0\right) θ1=(0,32π,2π,4π,4π,0))、给数值迭代的初始关节角、容忍误差:
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第5张图片
IKinSpace:逆运动学数值迭代求解,返回求解θ结果和成功标志s。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第6张图片
FKinSpace:空间坐标系下的正运动学求解,见上一篇文章。
Adjoint:求伴随变换矩阵。
在这里插入图片描述
MatrixLog6:将变换矩阵T转化为T的矩阵对数形式。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第7张图片
MatrixLog3:将旋转矩阵R转化为R的矩阵对数形式。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第8张图片
JacobianSpace:给定空间坐标系下的关节旋量和关节角,计算空间雅可比。
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第9张图片
求解结果如下
期望位形的关节角:
在这里插入图片描述
牛顿-拉夫森法求逆解得到的关节角:
在这里插入图片描述
可以看出,求解结果接近期望关节角,求解成功。
可视化此关节角下的UR5机械臂位形:
【机器人2】基于POE公式的UR5机械臂逆运动学建模求解与matlab仿真_第10张图片
左边是期望关节角对应的期望位形,右边是求解关节角对应的位形。


上一篇:【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真


你可能感兴趣的:(matlab,机器人,matlab,机器人)