机器人运动力学基础(2)

文章目录

  • 刚体的运动力学基础
  • 刚体的动能
  • 刚体的势能

我们在学习完质点的运动力学公式后会进一步学习刚体的运动力学公式。
为了应用Lagrange公式,我们还要进行刚体动能和势能的计算。

刚体的运动力学基础

那么,理解了刚体和质点的关系我们就很容易从质点的公式推导出刚体的公式.
质点的线性动量(linear moment)
p M = m v M \mathbf{p}_{M}=m \mathbf{v}_{M} pM=mvM
我们把刚体看作是无数的质点集合,运用积分的思想,把刚体的每一块看作dM,积分:
p j = ∫ B j v M , j d m \mathbf{p}_{j}=\int_{\mathscr{B}_{j}} \mathbf{v}_{M, j} \mathrm{d} m pj=BjvM,jdm
V M V_M VM是刚体中任意的一个质点M的广义速度。广义速度呢,就要包含两种速度类型,线速度和角速度。
v M j = v j + ω j × r O j M j \mathbf{v}_{M_{j}}=\mathbf{v}_{j}+\omega_{j} \times \mathbf{r}_{O_{j} M_{j}} vMj=vj+ωj×rOjMj
这里面的 v j v_j vj ω j \omega_j ωj我们都是针对Frame0来说的。在机器人动力学里面,我们一般都是用矩阵的形式来书写的。
v M j = [ 1 3 r ^ O j M j T ] [ v j ω j ] \mathbf{v}_{M_{j}}=\left[\begin{array}{ll}{\mathbf{1}_{3}} & {\hat{\mathbf{r}}_{O_{j} M_{j}}^{T}}\end{array}\right]\left[\begin{array}{l}{\mathbf{v}_{j}} \\ {\omega_{j}}\end{array}\right] vMj=[13r^OjMjT][vjωj]
其中, r ^ O j M j = [ 0 − r z r y r z 0 − r x − r y r x 0 ] \hat{\mathbf{r}}_{O_{j} M_{j}}=\left[\begin{array}{ccc}{0} & {-r_{z}} & {r_{y}} \\ {r_{z}} & {0} & {-r_{x}} \\ {-r_{y}} & {r_{x}} & {0}\end{array}\right] r^OjMj=0rzryrz0rxryrx0
机器人运动力学基础(2)_第1张图片

计算叉乘矩阵的方法
我们熟悉的一般是如下方法:
a × b = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] a \times b=\left[\begin{array}{l}{a_{2} b_{3}-a_{3} b_{2}} \\ {a_{3} b_{1}-a_{1} b_{3}} \\ {a_{1} b_{2}-a_{2} b_{1}}\end{array}\right] a×b=a2b3a3b2a3b1a1b3a1b2a2b1
但是这里面, ω j × r O j M j \omega_{j} \times \mathbf{r}_{O_{j} M_{j}} ωj×rOjMj使用了另外一种方法,vector cross product also can be expressed as the product of a skew-symmetric matrix and a vector.
Vector cross product a × b = [ a ] × b , a×b=[\mathbf{a}]_{\times} b, a×b=[a]×b,
where a = ( a 1 , a 2 , a 3 ) T a= (a1, a2, a3)^T a=(a1,a2,a3)Tand b = ( b 1 , b 2 , b 3 ) T b= (b1, b2, b3)^T b=(b1,b2,b3)T are real vectors, and
[ a ] × =  def  [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] [\mathbf{a}]_{\times} \stackrel{\text { def }}{=}\left[\begin{array}{rrr}{0} & {-a_{3}} & {a_{2}} \\ {a_{3}} & {0} & {-a_{1}} \\ {-a_{2}} & {a_{1}} & {0}\end{array}\right] [a]×= def 0a3a2a30a1a2a10
由此,我们可以知道 ω j × r O j M j \omega_{j} \times \mathbf{r}_{O_{j} M_{j}} ωj×rOjMj等价于 − r O j M j × ω -\mathbf{r}_{O_{j}M_{j}} \times \omega rOjMj×ω,根据skew-synnetric的性质,还等价于 r O j M j T × ω \mathbf{r}_{O_{j}M_{j}}^{T}\times \omega rOjMjT×ω

刚体的动能

现在,补充完线性代数的知识后,我们求解 V M V_M VM后,开始求解动能的表达式。
机器人运动力学基础(2)_第2张图片COM代表刚体的重心,位置是我们自己定义的,可以放在任何地方,但是巧妙的重心可以简化不少计算。
E j = 1 2 t j T [ m j 1 3 m s ^ j T m s ^ j l O j ] t j = 1 2 t j T M j t j E_j=\frac{1}{2} \mathbf{t}_{j}^{T}\left[\begin{array}{cc}{m_{j} \mathbf{1}_{3}} & {\widehat{\mathbf{m} s}_{j}^{T}} \\ {\widehat{\mathbf{m} s}_{j}} & {\mathbf{l}_{O_{j}}}\end{array}\right] \mathbf{t}_{j}=\frac{1}{2} \mathbf{t}_{j}^{T} \mathbf{M}_{j} \mathbf{t}_{j} Ej=21tjT[mj13ms jms jTlOj]tj=21tjTMjtj
I O j I_{O_j} IOj为惯性张量,对角元素为转动惯量,非对角元素为惯性积。
在机器人学中,我们还要考虑各关节的速度与执行装置之间的关系,复学一下以前学的的雅可比矩阵,就知道关节速度和末端执行器的速度之间存在如下关系:
t j j = J j j q ˙ t_{j}^{j}=J_{j}^{j}\dot{q} tjj=Jjjq˙
那么带入到原来的方程式,我们可以得到一个适用于机器人学计算的公式。

刚体的势能

相对于动能,势能计算比较容易,注意位置坐标都是相对于Frame0来算的。
机器人运动力学基础(2)_第3张图片

你可能感兴趣的:(机器人动力学,人工智能)