雅克比矩阵在机器人运动学中的应用

以六轴机械臂为例,设机械臂关节空间为q,位置矩阵为p,速度矩阵为v

q = [ q 0 , q 1 , q 2 , q 3 , q 4 , q 5 ] q=[q_0,q_1,q_2,q_3,q_4,q_5] q=[q0,q1,q2,q3,q4,q5]

p = [ x , y , z ] T = [ f x ( q ) f y ( q ) f z ( q ) ] p=[x,y,z]^T=\begin{bmatrix}f_x(q) \\ f_y(q)\\ f_z(q) \\ \end{bmatrix} p=[x,y,z]T= fx(q)fy(q)fz(q)
联立机械臂速度矩阵、关节空间和位置矩阵的关系如下

v = p ˙ = ( d f x d t d f y d t d f z d t ) = ( ∂ f x ∂ q 0 d q 0 d t ⋯ ∂ f x ∂ q 5 d q 5 d t ∂ f y ∂ q 0 d q 0 d t ⋯ ∂ f y ∂ q 5 d q 5 d t ∂ f z ∂ q 0 d q 0 d t ⋯ ∂ f z ∂ q 5 d q 5 d t ) = ( ∂ f x ∂ q 0 ⋯ ∂ f x ∂ q 5 ∂ f y ∂ q 0 ⋯ ∂ f y ∂ q 5 ∂ f z ∂ q 0 ⋯ ∂ f z ∂ q 5 ) ( q 1 ⋮ q 5 ) v=\dot p=\begin{pmatrix}\frac {df_x}{dt} \\ \frac {df_y}{dt} \\ \frac {df_z}{dt}\\ \end{pmatrix} =\begin{pmatrix}\frac {\partial f_x} {\partial q_0}\frac {dq_0} {dt}& \cdots & \frac {\partial f_x} {\partial q_5}\frac {dq_5} {dt} \\ \frac {\partial f_y} {\partial q_0} \frac {dq_0} {dt} &\cdots&\frac {\partial f_y} {\partial q_5} \frac {dq_5} {dt} \\\frac {\partial f_z} {\partial q_0} \frac {dq_0} {dt} &\cdots & \frac {\partial f_z} {\partial q_5} \frac {dq_5} {dt} \end{pmatrix}= \begin{pmatrix}\frac {\partial f_x} {\partial q_0}& \cdots & \frac {\partial f_x} {\partial q_5} \\ \frac {\partial f_y} {\partial q_0}& \cdots & \frac {\partial f_y} {\partial q_5} \\\frac {\partial f_z} {\partial q_0}& \cdots & \frac {\partial f_z} {\partial q_5} \end{pmatrix}\begin{pmatrix}q_1 \\ \vdots \\ q_5\\ \end{pmatrix} v=p˙= dtdfxdtdfydtdfz = q0fxdtdq0q0fydtdq0q0fzdtdq0q5fxdtdq5q5fydtdq5q5fzdtdq5 = q0fxq0fyq0fzq5fxq5fyq5fz q1q5

将中间矩阵定义为雅克比矩阵J,则

J = ( ∂ f x ∂ q 0 ⋯ ∂ f x ∂ q 5 ∂ f y ∂ q 0 ⋯ ∂ f y ∂ q 5 ∂ f z ∂ q 0 ⋯ ∂ f z ∂ q 5 ) J=\begin{pmatrix}\frac {\partial f_x} {\partial q_0}& \cdots & \frac {\partial f_x} {\partial q_5} \\ \frac {\partial f_y} {\partial q_0}& \cdots & \frac {\partial f_y} {\partial q_5} \\\frac {\partial f_z} {\partial q_0}& \cdots & \frac {\partial f_z} {\partial q_5} \end{pmatrix} J= q0fxq0fyq0fzq5fxq5fyq5fz

v = J q ˙ v=J\dot q v=Jq˙

q ˙ = [ q ˙ 0 , q ˙ 1 , q ˙ 2 , q ˙ 3 , q ˙ 4 , q ˙ 5 ] \dot q=[\dot q_0,\dot q_1,\dot q_2,\dot q_3,\dot q_4,\dot q_5] q˙=[q˙0,q˙1,q˙2,q˙3,q˙4,q˙5]

那么雅克比矩阵J可以用来表示从关节速度空间q_dot到关节末端执行空间速度的映射,即一个末端的位置可以由多个关节空间的速度映射得到,即

q ˙ J ⟶ v \dot q {J \over \longrightarrow }v q˙Jv

同样,末端执行空间速度F同样可以使用雅克比矩阵映射到关节空间力矩

τ J T ⟶ F \tau {J ^T \over \longrightarrow}F τJTF

τ = J T F \tau = J^TF τ=JTF

例如7轴机械臂,具有冗余的一个关节空间(7x1)q_6,所以在末端执行空间的变换矩阵(6x1)(3x3旋转+3x1平移)进行映射的时候q_6无论处在什么位置,都不会影响末端执行空间的位置和速度,称为零空间

### 机器人中的可比矩阵机器人学中,可比矩阵用于描述关节空间速度与操作空间速度之间的关系。对于一个具有 \( n \) 个自由度的机械来说,如果末端执行器的位置和姿态由向量 \( p(x_1,x_2,...,x_n) \) 表示,则该位置相对于各个关节变量的一阶偏导数组成的矩阵即为可比矩阵[^1]。 具体而言,在笛卡尔坐标系下表示端点位姿变化率时,可以利用雅克比矩阵来建立关节角速度矢量 \( q'=[\dot{\theta}_1,\dots ,\dot {\theta }_{n}]^{T} \) 和线性/角加速度矢量 \( v=[v_x,v_y,v_z,w_x,w_y,w_z]^T \) 的联系: \[ J(q)=\left[\begin{array}{ccc} \frac{{\partial {p}_{x}}}{{\partial {\theta _{1}}}} & ...& \frac{{\partial {p}_{x}}}{{\partial {\theta _{n}}}}\\ .&...&. \\ .&...&. \\ \frac{{\partial w}}{{\partial {\theta _{1}}}} & ...& \frac{{\partial w}}{{\partial {\theta _{n}}}} \end{array}\right](q)\] 其中每一列代表对应于特定关节角度的变化如何影响到终端效应器的空间运动特性;而每行则分别关联着平移或旋转维度上所发生的改变程度。 下面给出一段Python代码作为实例展示如何基于给定DH参数表构建简单的二连杆平面机械手对应的可比矩阵: ```python import numpy as np def compute_jacobian(theta): L1,L2=0.5,0.375 # 链接长度 c1=np.cos(theta[0]) s1=np.sin(theta[0]) c12=np.cos(sum(theta)) s12=np.sin(sum(theta)) jac =np.array([[-L1*s1-L2*c12,-L2*s12], [ L1*c1-L2*s12, L2*c12]]) return jac ``` 此函数接收两个关节的角度值组成的列表`theta`并返回相应的\(2\times2\)维可比矩阵。这里假设已知前两节手各自的固定距离分别为 `L1`, `L2`.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值