学习笔记——机器人微分运动学(1)

学习笔记——机器人微分运动学(1)

雅可比矩阵(Jacobian matrix)

  • 雅可比矩阵定义

假设某函数从 f : R n → R m f:R^n\to R^m f:RnRm ,从 x ∈ R n x\in R^n xRn 映射到 向量 f ( x ) ∈ R m f(x)\in R^m f(x)Rm , 其雅可比矩阵是 m × n m\times n m×n 的矩阵,换句话讲也就是从 R n R^n Rn R m R^m Rm​​ 的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。

此函数 f f f的雅可比矩阵 J J J m × n m×n m×n 的矩阵,一般由以下方式定义:
J = [ ∂ f ∂ x 1 ⋯ ∂ f ∂ x n ] = [ ∂ f 1 ∂ x 1 ⋯ ∂ f 1 ∂ x n ⋮ ⋱ ⋮ ∂ f m ∂ x 1 ⋯ ∂ f m ∂ x n ] \left.\mathbf{J}=\left[\begin{array}{ccc}{{\frac{\partial\mathbf{f}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial\mathbf{f}}{\partial x_{n}}}}\end{array}\right.\right]=\left[\begin{array}{ccc}{{\frac{\partial f_{1}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial f_{1}}{\partial x_{n}}}}\\{\vdots}&{\ddots}&{\vdots}\\{{\frac{\partial f_{m}}{\partial x_{1}}}}&{\cdots}&{{\frac{\partial f_{m}}{\partial x_{n}}}}\end{array}\right] J=[x1fxnf]= x1f1x1fmxnf1xnfm
于是,矩阵的某一分量可表示为:
J i j = ∂ f i ∂ x j \mathbf{J}_{ij}={\frac{\partial f_{i}}{\partial x_{j}}} Jij=xjfi
示例:

对于 F : R 3 → R 4 \mathbf{F}:\mathbb{R}^3\to\mathbb{R}^4 F:R3R4其各分量如下:
{ y 1 = x 1 y 2 = 5 x 3 y 3 = 4 x 2 2 − 2 x 3 y 4 = x 3 sin ⁡ x 1 \begin{cases}y_1&=x_1\\y_2&=5x_3\\y_3&=4x_2^2-2x_3\\y_4&=x_3\sin x_1\end{cases} y1y2y3y4=x1=5x3=4x222x3=x3sinx1
其雅可比矩阵为:
J F ( x 1 , x 2 , x 3 ) = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 1 ∂ x 3 ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ∂ y 2 ∂ x 3 ∂ y 3 ∂ x 1 ∂ y 3 ∂ x 2 ∂ y 3 ∂ x 3 ∂ y 4 ∂ x 1 ∂ y 4 ∂ x 2 ∂ y 4 ∂ x 3 ] J_F(x_1,x_2,x_3)=\begin{bmatrix}\frac{\partial y_1}{\partial x_1}&\frac{\partial y_1}{\partial x_2}&\frac{\partial y_1}{\partial x_3}\\\frac{\partial y_2}{\partial x_1}&\frac{\partial y_2}{\partial x_2}&\frac{\partial y_2}{\partial x_3}\\\frac{\partial y_3}{\partial x_1}&\frac{\partial y_3}{\partial x_2}&\frac{\partial y_3}{\partial x_3}\\\frac{\partial y_4}{\partial x_1}&\frac{\partial y_4}{\partial x_2}&\frac{\partial y_4}{\partial x_3}\end{bmatrix} JF(x1,x2,x3)= x1y1x1y2x1y3x1y4x2y1x2y2x2y3x2y4x3y1x3y2x3y3x3y4

  • 雅可比矩阵在机器人微分运动学的应用

若机器人由D-H建模得到的各个关节速度表示为 q ˙ = ( q ˙ 1 q ˙ 2 ⋅ ⋅ ⋅ q ˙ n ) T \dot{\boldsymbol{q}}=(\dot{\boldsymbol{q}}_1\dot{\boldsymbol{q}}_2{\boldsymbol{\cdotp\cdotp\cdotp}} \dot{\boldsymbol{q}}_n)^\mathrm{T} q˙=(q˙1q˙2⋅⋅⋅q˙n)T( n n n为机器人关节数),机器人末端执行器的线速度表示为 v v v,角速度表示为 w w w,则关节速度的线性关系为:
v = J v ( q ) q ˙ w = J w ( q ) q ˙ \begin{aligned}&v=\boldsymbol{J}_v(\boldsymbol{q})\dot{\boldsymbol{q}}\\&w=\boldsymbol{J}_w(\boldsymbol{q})\dot{\boldsymbol{q}}\end{aligned} v=Jv(q)q˙w=Jw(q)q˙
其中 J v ( 3 × n ) \boldsymbol{J}_v(3{\times}n) Jv(3×n)表示 q ˙ \dot{q} q˙ v v v的映射关系, J w ( 3 × n ) \boldsymbol{J}_w(3{\times}n) Jw(3×n)表示 q ˙ \dot{q} q˙ w w w​的映射关系

为什么 J v \boldsymbol{J}_v Jv, J w \boldsymbol{J}_w Jw ( 3 × n ) (3{\times}n) (3×n)的矩阵?因为在D-H建模中,将每个关节以笛卡尔坐标系进行建模,每个向量被分解为三个方向/角度的分量。

下面是一个例子,可以清晰的展示出 J v \boldsymbol{J}_v Jv, J w \boldsymbol{J}_w Jw分别长什么样子:

让我们考虑一个具有三个滑动关节的机器人系统。这意味着机器人的每个关节可以在直线方向上滑动,而不是旋转。我们将定义机器人的几何结构和关节坐标,然后推导出末端执行器的线速度 p ˙ = [ v x , v y , v z ] T \dot{p} = [v_x, v_y, v_z]^T p˙=[vx,vy,vz]T 和角速度 ϕ ˙ = [ w x , w y , w z ] T \dot{\phi} = [w_x, w_y, w_z]^T ϕ˙=[wx,wy,wz]T 与关节速度 q ˙ = [ d ˙ 1 , d ˙ 2 , d ˙ 3 ] T \dot{q} = [\dot{d}_1, \dot{d}_2, \dot{d}_3]^T q˙=[d˙1,d˙2,d˙3]T 的映射关系。

假设机器人的末端执行器的笛卡尔坐标为 p = [ x , y , z ] T p = [x, y, z]^T p=[x,y,z]T,并且每个关节的滑动距离分别为 d 1 , d 2 , d 3 d_1, d_2, d_3 d1,d2,d3​。我们可以得到末端执行器位置和姿态的表达式如下:
x = f ( d 1 , d 2 , d 3 ) , y = g ( d 1 , d 2 , d 3 ) , z = h ( d 1 , d 2 , d 3 ) x = f(d_1, d_2, d_3), \quad y = g(d_1, d_2, d_3), \quad z = h(d_1, d_2, d_3) x=f(d1,d2,d3),y=g(d1,d2,d3),z=h(d1,d2,d3)
其中 f , g , h f, g, h f,g,h 是关于滑动距离的函数。我们首先计算末端执行器的线速度 p ˙ \dot{p} p˙ 对关节速度 q ˙ \dot{q} q˙ 的雅可比矩阵 J v \boldsymbol{J}_v Jv
J v = [ ∂ x ∂ d 1 ∂ x ∂ d 2 ∂ x ∂ d 3 ∂ y ∂ d 1 ∂ y ∂ d 2 ∂ y ∂ d 3 ∂ z ∂ d 1 ∂ z ∂ d 2 ∂ z ∂ d 3 ] \boldsymbol{J}_v = \begin{bmatrix} \frac{\partial x}{\partial d_1} & \frac{\partial x}{\partial d_2} & \frac{\partial x}{\partial d_3} \\ \frac{\partial y}{\partial d_1} & \frac{\partial y}{\partial d_2} & \frac{\partial y}{\partial d_3} \\ \frac{\partial z}{\partial d_1} & \frac{\partial z}{\partial d_2} & \frac{\partial z}{\partial d_3} \end{bmatrix} Jv= d1xd1yd1zd2xd2yd2zd3xd3yd3z
接下来,我们计算末端执行器的姿态 ϕ \phi ϕ 对关节速度 q ˙ \dot{q} q˙ 的雅可比矩阵 J w \boldsymbol{J}_w Jw。假设末端执行器的滚转角度、俯仰角度和偏航角度分别为 r o l l , p i t c h , y a w roll, pitch, yaw roll,pitch,yaw,我们有:
J w = [ ∂ r o l l ∂ d 1 ∂ r o l l ∂ d 2 ∂ r o l l ∂ d 3 ∂ p i t c h ∂ d 1 ∂ p i t c h ∂ d 2 ∂ p i t c h ∂ d 3 ∂ y a w ∂ d 1 ∂ y a w ∂ d 2 ∂ y a w ∂ d 3 ] \boldsymbol{J}_w = \begin{bmatrix} \frac{\partial roll}{\partial d_1} & \frac{\partial roll}{\partial d_2} & \frac{\partial roll}{\partial d_3} \\ \frac{\partial pitch}{\partial d_1} & \frac{\partial pitch}{\partial d_2} & \frac{\partial pitch}{\partial d_3} \\ \frac{\partial yaw}{\partial d_1} & \frac{\partial yaw}{\partial d_2} & \frac{\partial yaw}{\partial d_3} \end{bmatrix} Jw= d1rolld1pitchd1yawd2rolld2pitchd2yawd3rolld3pitchd3yaw
这里的 ∂ r o l l ∂ d i , ∂ p i t c h ∂ d i , ∂ y a w ∂ d i \frac{\partial roll}{\partial d_i}, \frac{\partial pitch}{\partial d_i}, \frac{\partial yaw}{\partial d_i} diroll,dipitch,diyaw 分别表示滚转角、俯仰角和偏航角对第 i i i 个滑动关节距离的偏导数。

若机器人末端执行器的速度为 x ˙ \dot{x} x˙,则:
x ˙ = [ v w ] = J ( q ) q ˙ . \dot{x}=\begin{bmatrix}\boldsymbol{v}\\\boldsymbol{w}\end{bmatrix}=\boldsymbol{J}(q)\dot{\boldsymbol{q}}. x˙=[vw]=J(q)q˙.
其中 J ( q ) \boldsymbol{J}(q) J(q)称为机器人的雅可比矩阵,它是一个 6 × n 6 \times n 6×n​的矩阵,是机器人末端执行器的速度与关节速度的线性变换矩阵。用公式表示如下:
J ( q ) = [ J v J w ] J\left(q\right)=\begin{bmatrix}J_v\\J_w\end{bmatrix} J(q)=[JvJw]

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值