行星车动力学建模及解算方法综述
冷舒, 居鹤华     
南京航空航天大学 航天学院, 南京 210016
摘要:深空探测中行星车的动力学建模及实时解算是控制行星车安全行驶的基础。因行星车运动速度很慢,且通过摇臂结构组装而成,故其可以看作多刚体系统。该文介绍了多刚体动力学建模领域的主流方法,分析了上述方法的基本原理,并浅析它们的优缺点。同时因轮土力学的计算结果是行星车的外部作用力,故针对模型解算时存在的轮土力学问题进行调研,得到了钢轮软土模型的解决方案。通过总结上述方法,为行星车动力学建模与实时求解提供了解决思路。
关键词深空探测    行星车    多刚体    动力学建模    轮土力学    
Review of rover dynamics modeling methods
LENG Shu, JU Hehua     
College of Astronautics, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China
Abstract: Modeling of rover dynamics in real-time is key to controlling a rover for planetary exploration. The rover is typically modeled as a rigid body system because of its slow movement and the bogie-rocker structure. This paper introduces various rigid body dynamics analysis approaches and the advantages and disadvantages of these algorithms. Terramechanics is used to describe of the external forces on the rover system. The steel wheel and soft soil model is shown to be the most suitable model for describing the dynamics for real-time modeling of the rover dynamics.
Key words: deep space exploration     rover     multibody     dynamics modeling     terramechanics    

随着深空探测技术的不断发展,利用行星车对目标星球进行探测成为获得该星球信息的一个重要途径。如美国已经发射的火星巡视器索杰纳号(1997年)、勇气号(2004年)、机遇号(2004年)及好奇号(2011年)都对火星表面进行了一系列探测及分析,中国成功着陆于月球表面的玉兔号月面巡视器(2013年)也对月球表面进行了一定的科学探测。上述部分行星车如图 1所示。

图 1 国内外的部分行星车

2020年中国即将把火星车送至火星表面,进行火星探测活动。为了更全面地得到行星表面的各种信息以及更好地适应行星表面复杂的地形地貌,行星车的结构设计变得越来越复杂,其自由度也随之增加,导致行星车的运动控制变得越来越困难,上述问题一直是国内外相关行业专家关注的重点也是难点。为解决行星车运动控制的难题,需要研究行星车的动力学建模与求解。

研究该问题时,通常将行星车看作由多刚体组成的机构。在此基础上,由于行星车具有差速结构,故在拓扑上具有闭链结构(见图 2),该问题转化为闭链多刚体动力学建模与求解的问题。此外还需研究车轮与地面之间的轮土作用力,该力也是系统的外力。本文针对上述2个方面,介绍国内外研究者在近几十年内取得的主要研究成果,阐述相关算法的研究现状及基本思想。

图 2 行星车拓扑机构

1 行星车动力学建模

回溯动力学发展的历史,它起源于1686年Newton对于单质点的动力学分析。之后在1776年,Euler提出了刚体的概念,并结合Newton的质点动力学,给出了关于刚体运动的Newton-Euler方程[1],表示如下:

$ \left\{ \begin{array}{l} \mathit{\boldsymbol{f}} = m\mathit{\boldsymbol{\dot v}},\\ \tau = {\mathit{\boldsymbol{J}}_{\rm{C}}}\mathit{\boldsymbol{\dot \omega }} + \mathit{\boldsymbol{\omega }} \times {\mathit{\boldsymbol{J}}_{\rm{c}}} \cdot \mathit{\boldsymbol{\omega }}. \end{array} \right. $ (1)

其中:fτ分别代表作用在刚体上的力和力矩,mJc分别代表刚体的质量和相对于质心的转动惯量,vω分别代表刚体的线速度和角速度,进而$\dot{\mathit{\pmb{ v}}}$$\dot{\mathit{\pmb{ \omega }}}$分别代表刚体的加速度和角加速度。

而在1788年,Lagrange创立了分析动力学,根据能量守恒原理提出了刚体系统的Lagrange方程[1],表示如下:

$ \frac{{\rm{d}}}{{{\rm{d}}t}}\left( {\frac{{\partial T}}{{\partial {{\dot q}_j}}}} \right) - \frac{{\partial T}}{{\partial {q_j}}} = {Q_j}\;\;\;\;j = 1,2, \cdots ,k. $ (2)

其中:qj是第j个物体的广义坐标,T是系统动能,Qj是对应于广义坐标qj的广义力。在此之后,Hamilton提出了一种改进Lagrange方程的方法[1],即通过引入正则动量${p_j} = \partial T/\partial {\dot q_j}$, j=1, 2, …, k,用正则相空间(p1, p2, …, pkq1, q2, …qk),代替广义速率和广义坐标变量$\left( {{{\dot q}_1}, {{\dot q}_2}, \ldots {{\dot q}_k};{q_1}, {q_2}, \ldots {q_k}} \right)$。因此,Lagrange方程与式(3)等价。

$ {\dot p_j} = - \frac{{\partial H}}{{\partial {q_j}}},{\dot q_j} = - \frac{{\partial H}}{{\partial {p_j}}},\left( {j = 1,2, \cdots ,k} \right). $ (3)

其中H表示系统总能量。之后Boltzman-Hamel方程也被提出,丰富了分析动力学的内容。很多学者都在Newton-Euler法及Lagrange法的基础上持续研究刚体系统动力学的问题,并取得了一定的成果。

1.1 Kane法

虽然传统的Newton-Euler法及Lagrange法都可以解决刚体动力学建模问题,但在建立多刚体系统动力学模型时,他们都有各自的不足。1965年,Kane等[2]提出了一种描述广义速度的方法,Singh等[3]根据D'Alembert原理及文[2],提出了对多刚体系统进行显式动力学建模的Kane方法,表示如下:

$ \begin{array}{*{20}{c}} {{m_j} \cdot \frac{{\partial \mathit{\boldsymbol{v}}_j^{\rm{T}}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} \cdot {\mathit{\boldsymbol{a}}_j} + \frac{{\partial \mathit{\boldsymbol{\omega }}_j^{\rm{T}}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} \cdot \left( {{\mathit{\boldsymbol{J}}_j} \cdot {\mathit{\boldsymbol{\alpha }}_j} + {{\mathit{\boldsymbol{\tilde \omega }}}_j} \cdot {\mathit{\boldsymbol{J}}_j} \cdot {\mathit{\boldsymbol{\omega }}_j}} \right) = }\\ {\frac{{\partial \mathit{\boldsymbol{v}}_j^{\rm{T}}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} \cdot {\mathit{\boldsymbol{f}}_j} + \frac{{\partial \mathit{\boldsymbol{\omega }}_j^{\rm{T}}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} \cdot {\mathit{\boldsymbol{\tau }}_j}.} \end{array} $ (4)

该方法结合了Newton-Euler方程与Lagrange方程的优点,并改进了二者的缺点。对二者的改进分别为:1)不考虑Newton-Euler方程中刚体之间的约束力及约束力矩;2)无需像Lagrange方程那样对能量方程求偏导数。

利用Kane方法,多体系统的动力学方程可以显式描述。文[4-5]给出了2种利用Kane方法进行动力学分析的应用。

虽然Kane方程可以给出多体系统动力学的显式方程,但在1965年,偏速度$\partial \mathit{\pmb{v}}_j^{\rm{T}}/\partial {\dot{\mathit{\pmb{ q}}}_j}$$\partial \mathit{\pmb{\omega }}_j^{\rm{T}}/\partial {\dot{\mathit{\pmb{ q}}}_j}$很难求解,需要通过数值计算的方法对结果进行逼近,因此其计算效率也并未得到显著提升。1985年,Kane对该套方法思想进行了总结,消除了部分缺陷[6]

1.2 递归法

20世纪70年代末期至80年代初,随着计算机的发展,如何利用计算机解算多体系统动力学成为研究的焦点。因便于用计算机进行建模及计算,基于Newton-Euler方法及Lagrange法的递归算法受到众多学者关注。

在递归法中,多体系统的连接关系受到了大家的关注,如何用拓扑图反映系统内各零件的连接关系及相互运动关系成为焦点。Spanning树因其具有非环、可分叉、线性遍历等性质而受到学者们的关注。

1) Newton-Euler递归法。

文[7-9]先后提出了基于Newton-Euler的递归动力学方法,其动力学模型表示如下:

$ \begin{array}{*{20}{c}} {\left[ {\begin{array}{*{20}{c}} {{m_j}{\mathit{\boldsymbol{I}}_3}}&{ - {m_j} \cdot {{\mathit{\boldsymbol{\tilde r}}}_{{j_C}}}}\\ {{m_j} \cdot {{\mathit{\boldsymbol{\tilde r}}}_{{j_C}}}}&{{\mathit{\boldsymbol{J}}_{{j_C}}}} \end{array}} \right] \cdot \left[ {\begin{array}{*{20}{c}} {{{\mathit{\boldsymbol{\dot v}}}_j}}\\ {{{\mathit{\boldsymbol{\dot \omega }}}_j}} \end{array}} \right] + }\\ {\left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{\omega }}_j} \times {\mathit{\boldsymbol{\omega }}_j} \times \left( {{m_{\rm{j}}} \cdot {{\mathit{\boldsymbol{\tilde r}}}_{{{\rm{j}}_{\rm{C}}}}}} \right)}\\ {{\mathit{\boldsymbol{\omega }}_j} \times {\mathit{\boldsymbol{J}}_{{{\rm{j}}_{\rm{C}}}}} \cdot {\mathit{\boldsymbol{\omega }}_j}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{}^j{\mathit{\boldsymbol{f}}_j}}\\ {{}^j{\mathit{\boldsymbol{\tau }}_j}} \end{array}} \right].} \end{array} $ (5)

其中:${\tilde {\mathit{\pmb{r}}}_{jc}}$为体j质心位置的叉乘矩阵,I3为单位矩阵。在此基础上,不同学者针对传统Newton-Euler递归法进行了改进,如表 1所示。

表 1 Newton-Euler递归法的改进方法
方法 提出年份 代表学者
空间算子代数法 1987—2016 Rodriguez, Jain
6-D空间矢量法 1983—2014 Featherstone
Lagrange乘子法 2011—2015 Uchida

文[10-14]通过一系列文章提出了一种基于Newton-Euler递归法的求解多体动力学的理论-空间算子代数法。该方法的核心为给定空间核心算子ξϕ(k, m)及空间传播算子ϕ(k, m):

$ {\xi _\phi }\left( {k,m} \right) = \left[ {\begin{array}{*{20}{c}} {{\mathit{\boldsymbol{I}}_3}}&{\mathit{\boldsymbol{\tilde r}}\left( {k,m} \right)}\\ {\bf{0}}&{{\mathit{\boldsymbol{I}}_3}} \end{array}} \right]. $ (6)

其中$\tilde {\mathit{\pmb{r}}}$(k, m)表示关节k及关节m之间的距离。该系统给出如下设定:假定系统固接处编号为N,从该固接处依次对关节进行编号直至末端。关节k与杆件(k+1)及杆件k相连,其中杆件kk相连的部分定义为p(k),而杆件(k+1)与k相连的部分定义为p+(k),p为任意属性符号,包括速度,加速度等。根据空间核心算子,得到式(1)的迭代表示:

$ \left\{ \begin{array}{l} \mathit{\boldsymbol{V}}\left( k \right) = \xi _\phi ^{\rm{T}}\left( {k + 1,k} \right)\mathit{\boldsymbol{V}}\left( {k + 1} \right) + \\ {\mathit{\boldsymbol{H}}^{\rm{T}}}\left( k \right)\dot \theta \left( k \right),\\ \mathit{\boldsymbol{\alpha }}\left( k \right) = \xi _\phi ^{\rm{T}}\left( {k + 1,k} \right)\alpha \left( {k + 1} \right) + \\ {\mathit{\boldsymbol{H}}^{\rm{T}}}\left( k \right)\ddot \theta \left( k \right) + \mathit{\boldsymbol{a}}\left( k \right),\\ \mathit{\boldsymbol{f}}\left( k \right) - {\xi _\phi }\left( {k,k - 1} \right)\mathit{\boldsymbol{f}}\left( {k - 1} \right) = \\ \mathit{\boldsymbol{M}}\left( k \right)\mathit{\boldsymbol{\alpha }}\left( k \right) + \mathit{\boldsymbol{b}}\left( k \right),\\ \mathit{\boldsymbol{\tau }}\left( k \right) = \mathit{\boldsymbol{H}}\left( k \right)\mathit{\boldsymbol{f}}\left( k \right). \end{array} \right. $ (7)

其中:V(k)表示杆件k的空间广义速度,$\mathit{\pmb{\alpha}} \left( k \right) = {\dot{\mathit{\pmb{ V}}}}\left( k \right)$表示杆件k的空间广义加速度,b(k)表示与速度相关的回转力。假设ϕ(k, m)=(I6ξϕ(k, m))-1,则式(7)可改写为

$ \left\{ \begin{array}{l} V = {\phi ^{\rm{T}}}{\mathit{\boldsymbol{H}}^{\rm{T}}}\dot \theta ,\\ \mathit{\boldsymbol{\alpha }} = {\phi ^{\rm{T}}}\left( {{\mathit{\boldsymbol{H}}^{\rm{T}}}\ddot \theta + a} \right),\\ \mathit{\boldsymbol{f}} = \phi \left( {\mathit{\boldsymbol{M}}\alpha + b} \right),\\ \mathit{\boldsymbol{\tau }} = \mathit{\boldsymbol{Hf}}. \end{array} \right. $ (8)

其中ϕT(k+1, k)可以看作表示关节两端传递的Jacobi矩阵。该算子为线性算子,利用它可以实现广义力、广义速度及广义加速度的反向或正向传播。利用空间算子代数,系统可从高层框架中描述对机构的控制及轨迹跟踪,文[13]给出了具有多叉树拓扑结构的多体系统的动力学方程。该方程为:

$ \left\{ \begin{gathered} \mathit{\boldsymbol{\tau }} = \mathbb{M}\left( \theta \right)\ddot \theta + \mathit{\boldsymbol{C}}\left( {\theta ,\dot \theta } \right), \hfill \\ \mathbb{M}\left( \theta \right) = \mathit{\boldsymbol{H}}\phi \mathit{\boldsymbol{M}}{\phi ^{\text{T}}}{\mathit{\boldsymbol{H}}^{\text{T}}} \in {{\bf{R}}^{N \times N}}, \hfill \\ \mathit{\boldsymbol{C}}\left( {\theta ,\dot \theta } \right) = \mathit{\boldsymbol{H}}\phi \left( {\mathit{\boldsymbol{M}}{\phi ^{\text{T}}}\mathit{\boldsymbol{a}} + \mathit{\boldsymbol{b}}} \right) \in {{\bf{R}}^N}. \hfill \\ \end{gathered} \right. $ (9)

文[13-14]还给出了闭链系统的解决方案,其方法为选定一个关节,将其从关节处切开,则该关节内部的相互作用力转变为系统两边各增添一个外力,再对系统进行分析。

文[15-20]提出了利用类似于Plücker符号的6-D空间矢量对Euler方程进行了改进,其模型为:

$ {\mathit{\boldsymbol{f}}_i} = {\mathit{\boldsymbol{I}}_i}{\mathit{\boldsymbol{a}}_i} + {\mathit{\boldsymbol{\tilde v}}_i} \cdot {\mathit{\boldsymbol{I}}_i}{\mathit{\boldsymbol{v}}_i}. $ (10)

其中: fi为作用在体i上的广义空间作用力,viai分别为体i的广义速度和广义加速度,Ii为体i的惯性张量。它们都是6-D空间矢量完整地讲述了6-D空间代数的计算规则、运动学的递归公式、动力学的递归公式及闭链系统的解决方法。文[20]给出了便于计算机实现的算法。对于闭链问题,其思路与Jain[13]提到的思路一致,都是将闭链拆开,将物体之间的相互作用力当作作用于系统的外力,重新对系统动力学进行分析,如图 3所示。

图 3 闭链刚体问题解决方法[13]

在最近的多体动力学建模理论中,文[21-22]针对式(11)中的闭链系统,提出了一种基于Newton-Euler方程的解决方法。

$ \left\{ \begin{array}{l} \mathit{\boldsymbol{M\ddot q}} + \mathit{\Phi }_q^{\rm{T}}\mathit{\boldsymbol{\lambda }} = \mathit{\boldsymbol{f}},\\ \mathit{\Phi }\left( \mathit{\boldsymbol{q}} \right) = 0. \end{array} \right. $ (11)

其中: λ为Lagrange乘子矢量;Φ为运动学约束方程,表示闭链中相连物体的约束。利用嵌入技术对Lagrange乘子进行消元,得到新的动力学方程如下:

$ \mathit{\boldsymbol{M\ddot q}} + \mathit{\Phi }_q^{\rm{T}}\mathit{\boldsymbol{\rho }}\left( {\mathit{\ddot \Phi } + 2\mathit{\boldsymbol{\omega \zeta }}\mathit{\dot \Phi } + {\mathit{\boldsymbol{\omega }}^2}\mathit{\Phi }} \right) = \mathit{\boldsymbol{f}}. $ (12)

其加速度迭代式表示为

$ \left\{ \begin{array}{l} {{\mathit{\boldsymbol{\ddot q}}}_0} = {\mathit{\boldsymbol{M}}^{ - 1}}\mathit{\boldsymbol{f}};\\ {{\mathit{\boldsymbol{\ddot q}}}_k} = {\left( {\mathit{\boldsymbol{M}} + \mathit{\Phi }_q^{\rm{T}}\mathit{\boldsymbol{\rho }}{\mathit{\Phi }_q}} \right)^{ - 1}} \cdot \\ \left\{ {\mathit{\boldsymbol{M}}{{\mathit{\boldsymbol{\ddot q}}}_{k - 1}} - \mathit{\Phi }_q^{\rm{T}}\mathit{\boldsymbol{\rho }} \cdot } \right.\\ \left. {\left( {{{\mathit{\dot \Phi }}_q}\mathit{\boldsymbol{\dot q}} + {{\mathit{\dot \Phi }}_t} + 2\mathit{\boldsymbol{\omega }}\zeta \mathit{\dot \Phi } + {\mathit{\boldsymbol{\omega }}^2}\mathit{\Phi }} \right)} \right\},\;\;\;\;\;k \ge 1. \end{array} \right. $ (13)

其中:ρωζ分别为惩罚系数矩阵、自然频率矩阵、阻尼率矩阵。因Φ与机构参数相关,故可以利用Gröbner基对Φ进行三角化,避免了对Φ进行迭代求解,保证了系统的实时应用。该方法需要先利用Maple对公式符号进行简化,再利用C++进行编程,因此每次更换系统时,都需要首先使用Maple化简公式,再利用其他软件进行计算。因此,该方法的实用性还需要继续提高。

Newton-Eular法的建模复杂度与关节个数呈线性关系,该特点保证其建模效率很高。但对于每一个刚体,都需要用6个方程描述刚体的力或力矩平衡。对于用计算机实现一个多体系统的动力学解算,使用该方法需要很强的计算机编程功底,也需要对Newton-Euler动力学非常了解。

2) Lagrange递归法。

对于Lagrange递归动力学,Hollerbach[23]提出了基于Lagrange方程的动力学建模方法,该方法将Newton-Euler法中位于质心的体坐标系变为位于关节上的D-H坐标系,通过沿轴的运动表示刚体运动,得到一个与关节个数呈线性关系的递归动力学方程,该方法在时间复杂度上与Newton-Euler递归动力学方法相同,但在每一步的递归操作中,要执行更多的加法与乘法操作。Hollerbach提出的方法具有运动学的正向递归与力的反向递归,同时他利用3×3维的旋转变换阵代替4×4维的齐次变换阵[24-25],降低了每一次递归的计算量。

Silver[26]选择了用广义速度及广义加速度矢量作为方程的表示,改进了Hollerbach给出的方程,并证明了在新的方程中,Lagrange递归方法与Newton-Euler递归方法具有相同的时间复杂度。方程表示如下:

$ \begin{array}{*{20}{c}} {{\mathit{\boldsymbol{\tau }}_j} = \frac{{\rm{d}}}{{{\rm{d}}t}}\left( {\frac{{\partial T}}{{\partial {{\dot q}_j}}}} \right) - \frac{{\partial T}}{{\partial {q_j}}} = }\\ {\sum\limits_i {\left( {{m_i}\mathit{\boldsymbol{\dot v}}_i^{\rm{T}} \cdot \frac{{\partial {\mathit{\boldsymbol{v}}_i}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} + {{\left[ {{{\mathit{\boldsymbol{\dot \omega }}}_i} \cdot {\mathit{\boldsymbol{J}}_i} + {{\mathit{\boldsymbol{\tilde \omega }}}_i} \cdot {\mathit{\boldsymbol{J}}_i} \cdot {\mathit{\boldsymbol{\omega }}_i}} \right]}^{\rm{T}}} \cdot \frac{{\partial {\mathit{\boldsymbol{\omega }}_i}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}}} \right)} ;} \end{array} $ (14)
$ \begin{array}{l} \frac{{\partial {\mathit{\boldsymbol{v}}_i}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} = \left\{ \begin{array}{l} {{\mathit{\boldsymbol{\tilde z}}}_j} \cdot {\mathit{\boldsymbol{r}}_{j,i}},\;\;\;\;\;j \in {\bf{R}};\\ {{\mathit{\boldsymbol{\tilde z}}}_j},\;\;\;\;\;\;\;\;\;\;j \in {\bf{P}}; \end{array} \right.\\ \frac{{\partial {\mathit{\boldsymbol{\omega }}_i}}}{{\partial {{\mathit{\boldsymbol{\dot q}}}_j}}} = \left\{ \begin{array}{l} {\mathit{\boldsymbol{z}}_j},\;\;\;\;\;j \in {\bf{R}};\\ 0,\;\;\;\;\;\;j \in {\bf{P}}. \end{array} \right. \end{array} $ (15)

其中:zj表示第j轴的方向矢量,rj, i表示关节j与关节i的距离矢量。

居鹤华等[27]对关节进行抽象,得到了轴不变量的概念,轴不变量即为关节的运动轴。根据轴不变量,建立以轴系为参考,以Spanning树为拓扑结构的轴链系统。在此基础上根据Lagrange方程推导出Lagrange递归平衡方程,并将其归纳为规范型,表示如下:

$ \left\{ \begin{array}{l} {}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \mathit{\boldsymbol{M}}_P^{\left[ u \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q + }}{}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \mathit{\boldsymbol{h}}_P^{\left[ u \right]} = f_u^D,\\ \;\;\;\;\;{}^{\bar u}{\mathit{\boldsymbol{k}}_u} \in \mathit{\boldsymbol{P}};\\ {}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \mathit{\boldsymbol{M}}_R^{\left[ u \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q + }}{}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \mathit{\boldsymbol{h}}_R^{\left[ u \right]} = \tau _u^D,\\ \;\;\;\;\;{}^{\bar u}{\mathit{\boldsymbol{k}}_u} \in \mathit{\boldsymbol{R}}. \end{array} \right. $ (16)

其中:MP[u][·]MR[u][·]分别表示平动副和转动副的惯性矩阵,$^{i\left| {\bar u} \right.}{\mathit{\pmb{n}}_u}$表示轴不变量,fuDτuD分别表示系统投影到轴u的广义力和广义力矩。式(16)中系统两侧在轴上保持广义力平衡。此外,代表矩阵MPMR的第u行的表达式分别为:

$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}_P^{\left[ u \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} = \sum\limits_l^{{i_{{l_{\bar u}}}}} {\left( {\begin{array}{*{20}{c}} {\sum\limits_j^{{u_L}} {\left( {{m_j}} \right) \cdot 1} }\\ { - \sum\limits_j^{{u_L}} {\left( {{m_j} \cdot {}^{i\left| l \right.}{\mathit{\boldsymbol{r}}_{jI}}} \right)} } \end{array}\left\| { \cdot {}^{i\left| {\overline l } \right.}{\mathit{\boldsymbol{n}}_l} \cdot \mathit{\boldsymbol{\ddot q}}_l^{\overline l }} \right.} \right)} + }\\ {\sum\limits_k^{{u_L}} {\left( {\begin{array}{*{20}{c}} {\sum\limits_j^{{k_L}} {\left( {{m_j}} \right) \cdot 1} }\\ { - \sum\limits_j^{{k_L}} {\left( {{m_j} \cdot {}^{i\left| k \right.}{\mathit{\boldsymbol{r}}_{jI}}} \right)} } \end{array}\left\| { \cdot {}^{i\left| {\overline k } \right.}{\mathit{\boldsymbol{n}}_k} \cdot \mathit{\boldsymbol{\ddot q}}_k^{\overline k }} \right.} \right)} ,} \end{array} $ (17)
$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}_R^{\left[ u \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} = }\\ {\sum\limits_l^{{i_{{l_{\bar u}}}}} {\left( {\begin{array}{*{20}{c}} {\sum\limits_j^{{u_L}} {\left( {{m_j} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}}} \right)} }\\ {\sum\limits_j^{{u_L}} {\left( \begin{array}{l} {}^{i\left| {jI} \right.}{\mathit{\boldsymbol{J}}_{jl}} - \\ {m_j} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \cdot {}^{i\left| l \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \end{array} \right)} } \end{array}\left\| { \cdot {}^{i\left| {\overline l } \right.}{\mathit{\boldsymbol{n}}_l} \cdot \mathit{\boldsymbol{\ddot q}}_l^{\overline l }} \right.} \right)} + }\\ {\sum\limits_k^{{u_L}} {\left( {\begin{array}{*{20}{c}} {\sum\limits_j^{{k_L}} {\left( {{m_j} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}}} \right)} }\\ {\sum\limits_j^{{k_L}} {\left( \begin{array}{l} {}^{i\left| {jI} \right.}{\mathit{\boldsymbol{J}}_{jl}} - \\ {m_j} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \cdot {}^{i\left| k \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \end{array} \right)} } \end{array}\left\| { \cdot {}^{i\left| {\overline k } \right.}{\mathit{\boldsymbol{n}}_k} \cdot \mathit{\boldsymbol{\ddot q}}_k^{\overline k }} \right.} \right)} ,} \end{array} $ (18)

其中:$^i{l_{\bar u}}$表示运动链i节点到u的父节点,uL表示u节点的闭子树。作用于节点u的Coriolis力及重力的表示hP[u]hR[u]分别为:

$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{h}}_P^{\left[ u \right]} = \sum\limits_k^{{u_L}} {\left( {{m_k} \cdot \sum\limits_l^{{i_{{l_{kI}}}}} {\left( {{}^i\tilde \phi _{\overline l }^{ \vdots 2} \cdot {}^{i\left| {\bar l} \right.}{r_l}} \right)} + } \right.} }\\ {\left. {\left( {2 \cdot {}^i{{\tilde \phi }_{\overline l }} \cdot {}^{i\left| {\bar l} \right.}{{\dot r}_l}} \right)} \right) - \sum\limits_k^{{u_L}} {\left( {{m_k} \cdot {}^i{\mathit{\boldsymbol{g}}_{kl}}} \right)} ,} \end{array} $ (19)
$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{h}}_R^{\left[ u \right]} = \sum\limits_k^{{u_L}} {\left( {{m_k} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{kl}} \cdot \sum\limits_l^{{i_{{l_{kI}}}}} {\left( {{}^i\tilde \phi _{\overline l }^{ \vdots 2} \cdot {}^{i\left| {\bar l} \right.}{r_l}} \right)} + } \right.} }\\ {\left. {\left( {2 \cdot {}^i{{\tilde \phi }_{\overline l }} \cdot {}^{i\left| {\bar l} \right.}{{\mathit{\boldsymbol{\dot r}}}_l}} \right)} \right) + \sum\limits_k^{{u_L}} {\left( {{}^i{{\tilde \phi }_k} \cdot {}^{i\left| {kI} \right.}{\mathit{\boldsymbol{J}}_{kI}} \cdot {}^i{\phi _k}} \right)} - }\\ {\sum\limits_k^{{u_L}} {\left( {{m_k} \cdot {}^{i\left| u \right.}{{\mathit{\boldsymbol{\tilde r}}}_{kI}} \cdot {}^i{\mathit{\boldsymbol{g}}_{kI}}} \right)} .} \end{array} $ (20)

作用于节点u的广义合外力fuDτuD表示为

$ \left\{ \begin{array}{l} f_u^\mathit{\boldsymbol{D}} = f_u^c + \dot r_u^{\bar u} \cdot {\rm{G}}\left( {f_u^c} \right) + \\ \;\;\;\;\;\;{}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \sum\limits_l^{{u_L}} {\left( {{}^{iS}{\mathit{\boldsymbol{f}}_{lS}}} \right)} ,\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{}^{u - }{\mathit{\boldsymbol{k}}_u} \in {\bf{P}};\\ \tau _u^\mathit{\boldsymbol{D}} = \tau _u^c + \dot \phi _u^{\bar u} \cdot {\rm{G}}\left( {\tau _u^c} \right) + {}^{i\left| {\bar u} \right.}\mathit{\boldsymbol{n}}_u^{\rm{T}} \cdot \\ \;\;\;\;\;\;\;\;\sum\limits_l^{{u_L}} {\left( {{}^{i\left| {\bar u} \right.}{{\mathit{\boldsymbol{\tilde r}}}_{lS}} \cdot {}^{iS}{\mathit{\boldsymbol{f}}_{lS}} + {}^i{\mathit{\boldsymbol{\tau }}_l}} \right)} ,\;\;\;\;\;\;\;\;\;{}^{u - }{\mathit{\boldsymbol{k}}_u} \in {\bf{R}}. \end{array} \right. $ (21)

其中$f_u^c + \dot r_u^{\bar u}\cdot{\rm{G}}\left( {f_u^c} \right)$$\tau _u^c + \dot \phi _u^{\bar u}\cdot{\rm{G}}\left( {\tau _u^c} \right)$表示广义共轴驱动力即电机驱动力和力矩。$^{i\left| {\bar u} \right.}\mathit{\pmb{n}}_u^{\rm{T}}\cdot\sum\limits_l^{^uL} {\left( {^{iS}{\mathit{\pmb{f}}_{lS}}} \right)} $$^{i\left| {\bar u} \right.}\mathit{\pmb{n}}_u^{\rm{T}}\cdot\sum\limits_l^{^uL} {\left( {^{i|u}{{\tilde {\mathit{\pmb{r}}}}_{lS}}{\cdot^{iS}}{\mathit{\pmb{f}}_{lS}}{ + ^i}{\mathit{\pmb{\tau}} _l}} \right)} $表示外力在轴u的投影。

在式(17)—(20)中,

$ \left. {{}_b^a} \right\| \cdot {}^{\bar k}{\mathit{\boldsymbol{n}}_k} \cdot q_k^{\bar k} \buildrel \Delta \over = \left\{ {\begin{array}{*{20}{c}} {a \cdot {}^{\bar k}{\mathit{\boldsymbol{n}}_k} \cdot q_k^{\bar k},}&{{}^{\bar k}{\mathit{\boldsymbol{k}}_k} \in {\bf{P}};}\\ {b \cdot {}^{\bar k}{\mathit{\boldsymbol{n}}_k} \cdot q_k^{\bar k},}&{{}^{\bar k}{\mathit{\boldsymbol{k}}_k} \in {\bf{R}}.} \end{array}} \right. $ (22)

进一步,针对星球车动基座的特点,对车体进行动力学分析,因车体有6个自由度,无须将广义力投影到某个轴上,直接得到基座的动力学模型,表示如下:

$ \left\{ \begin{array}{l} \mathit{\boldsymbol{M}}_P^{\left[ c \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} + \mathit{\boldsymbol{h}}_P^{\left[ c \right]} = {}^{i\left| \mathit{\boldsymbol{D}} \right.}{\mathit{\boldsymbol{f}}_c},\\ \mathit{\boldsymbol{M}}_R^{\left[ c \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} + \mathit{\boldsymbol{h}}_R^{\left[ c \right]} = {}^{i\left| \mathit{\boldsymbol{D}} \right.}{\mathit{\boldsymbol{\tau }}_c}. \end{array} \right. $ (23)

其中

$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}_P^{\left[ c \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} = \sum\limits_k^{{c_L}} {\left( {{m_k}} \right) \cdot {}^i{\mathit{\boldsymbol{Q}}_c} \cdot \mathit{\boldsymbol{\ddot r}}_{\left( {i,c} \right]}^{\rm{T}}} - }\\ {\sum\limits_k^{{c_L}} {\left( {{m_k} \cdot {}^{i\left| c \right.}{{\mathit{\boldsymbol{\tilde r}}}_{kI}}} \right) \cdot {}^i{\mathit{\Theta }_c} \cdot \ddot \phi _{\left( {i,c} \right]}^{\rm{T}}} + }\\ {\sum\limits_k^{{c_{ - L}}} {\left( {\left. {\begin{array}{*{20}{c}} {\sum\limits_j^{{k_L}} {\left( {{m_j}} \right)} }\\ { - \sum\limits_j^{{k_L}} {\left( {{m_j} \cdot {}^{i\left| k \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jl}}} \right)} } \end{array}} \right\| \cdot {}^{i\left| {\bar k} \right.}{\mathit{\boldsymbol{n}}_k} \cdot \ddot q_k^{\bar k}} \right)} ,} \end{array} $ (24)
$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}_P^{\left[ c \right]\left[ \cdot \right]} \cdot \mathit{\boldsymbol{\ddot q}} = \sum\limits_k^{{c_L}} {\left( {{}^{i\left| {kI} \right.}{\mathit{\boldsymbol{J}}_{kl}} - {m_k} \cdot {}^{i\left| c \right.}\mathit{\boldsymbol{\tilde r}}_{kl}^{ \vdots 2}} \right)} \cdot {}^i{\mathit{\Theta }_c} \cdot }\\ {\ddot \phi _{\left( {i,c} \right]}^{\rm{T}} + \sum\limits_k^{{c_L}} {\left( {{m_k} \cdot {}^{i\left| c \right.}{{\mathit{\boldsymbol{\tilde r}}}_{kI}}} \right) \cdot {}^i{\mathit{\boldsymbol{Q}}_c} \cdot \mathit{\boldsymbol{\ddot r}}_{\left( {i,c} \right]}^{\rm{T}} + } }\\ {\sum\limits_k^{{c_{ - L}}} {\left( {\left. {\begin{array}{*{20}{c}} {\sum\limits_j^{{k_L}} {\left( {{m_j} \cdot {}^{i\left| c \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}}} \right)} }\\ {\sum\limits_j^{{k_L}} {\left( \begin{array}{l} {}^{i\left| {jI} \right.}{\mathit{\boldsymbol{J}}_{jI}} - \\ {m_j} \cdot {}^{i\left| c \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \cdot {}^{i\left| k \right.}{{\mathit{\boldsymbol{\tilde r}}}_{jI}} \end{array} \right)} } \end{array}} \right\| \cdot {}^{i\left| {\bar k} \right.}{\mathit{\boldsymbol{n}}_k} \cdot \ddot q_k^{\bar k}} \right)} } \end{array} $ (25)

hP[u]hR[u]与式(19)和(20)一致。

对于Lagrange迭代法,其正动力学解为

$ \mathit{\boldsymbol{\ddot q}} = {\mathit{\boldsymbol{M}}^{ - 1}} \cdot \left( {\mathit{\boldsymbol{f}} - \mathit{\boldsymbol{h}}} \right). $ (26)

根据上文描述可知,传统Lagrange递归法定义清晰明确,比Newton-Euler法具有更简单的方程描述。对于非动力学的研究人员,利用编程实现Lagrange递归动力学比Newton-Euler递归动力学更加容易。而基于轴不变量的Lagrange递归法将广义力投影到运动轴上,其编程过程更加简单,且计算效率略高于传统Lagrange递归法。

根据文[13, 20, 24, 27],对各递归方法的建模复杂度及正动力学计算复杂度进行总结,如表 2所示。

表 2 递归算法的建模复杂度与计算复杂度
算法名称 建模复杂度 计算复杂度
空间算子代数法 O(n) O(n2)
6-D空间矢量法 O(n) O(n3)
Lagrange乘子法 O(n) O(n2)
传统Lagrange法 O(n) O(n2)
基于轴不变量的Lagrange递归法 O(n) O(n2)

表 2可知,递归法的建模复杂度都为O(n),因惯性矩阵求逆的计算复杂度为O(n2),故正动力学计算复杂度不会优于O(n2)。

1.3 性能比较

行星车是一种几乎所有关节都是转动副的多刚体系统,只有车身具有平移能力,文[27]将其称为动基座的多体系统。当前有多种开源软件库或商业软件可以对多体动力学进行建模。ODE、Bullet、SIMBODY、RBDL等都是著名的开源软件。相关的商业软件有ADAMS、RecurDyn、SIMPACK及SAMCEF等。许多实验室也针对各自的课题,开发出相应的动力学仿真软件包。在动力学建模与求解中,每个方法都有自己的特点,各模型之间并没有绝对的好坏之分,很难区分应用不同方法建模后模型精度的高低,一般通过建模速度及求解速度区分算法的优劣。但对于不同的建模方法,在工程运用中受到编程水平及所应用不同的编程语言导致效率不同的约束,其求解时间存在差异,因此极少能在文献中查到对不同建模方法效率的评价。对于上述已知的软件,绝大多数都应用Newton-Euler迭代法对多体系统进行建模,而Lagrange递归法多用于解决机械臂柔性控制的问题[28-30]

本实验室利用基于轴不变量的Lagrange递归法通过C++语言对22自由度的月球车进行了动力学建模及解算。根据执行100 000次正动力学循环的求解时间,得到单步的平均求解时间为17.95 ms。仿真软件的示意图如图 4所示。

图 4 仿真软件

在文[31]中,RBDL软件的开发者Felis对比了利用C语言开发的RBDL与SIMBODY软件包的仿真结果。RBDL软件中使用的算法主要为文[20]提到的6-D空间矢量法。SIMBODY主要采用文[13]中提到的空间算子操作代数算法对多刚体进行动力学建模。Felis使用2款软件分别求解一个35自由度的多刚体系统的正动力学,平均求解时间表明RBDL软件包具有更快的计算效率。其具体执行结果如表 3所示。

表 3 35自由度系统的平均计算时间对比
软件名称 平均计算时间/μs
RBDL 12.75
SIMBODY 21.71

此外,作者还分别对比了针对5~100个自由度的系统,2款软件执行100 000次正动力学函数所消耗的平均时间,结果如图 5所示。

图 5 自由度变化时2种方法的计算时间对比结果[31]

表 3图 5可知,RBDL比SIMBODY软件的求解效率更高,是一个优秀的第三方软件库。当今最著名的机器人仿真平台ROS系统就使用了RBDL作为其动力学的支持库。

2 轮土力学

轮土力学是研究车轮与土壤之间作用关系的学科。对于行星车探测,因行星车车轮为钢轮结构,而行星表面土壤多为松软泥土,因此轮土力学中普遍使用钢轮软土模型,如图 6所示,其中p1~p6为轮地接触点,f1~f6为轮地接触力,fs为车体牵引力。

图 6 轮土力学图[32]

Bekker[33-34]轮土力学是该领域内最初的成果,该模型是针对弹塑性的土壤及刚性驱动轮的作用力模型。

$ \sigma \left( z \right) = \left( {\frac{{{k_1}}}{b} + {k_2}} \right) \cdot {z^n}. $ (27)

Bekker轮土力学模型是基于水平地形及重力方向载荷建立的。但上述方法存在2个缺陷:1)是轮式多轴系统驱动轮接触的地形通常是起伏变化的,相应地载荷随地形起伏而变化;2) Bekker轮土力学模型未给出驱动轮与土壤作用过程中相关物理量的参考系定义。因此,需要以Bekker轮土力学模型为基础,增加相应的指标系统,提高轮土力学模型表达的准确性。

Janosi等[35]提出了土壤与驱动轮的剪应力模型;Wong等[36-37]继续研究土壤的剪切变形,最终将剪应力表达式化简为

$ \tau = \left( {c + \sigma \tan \left( \phi \right)} \right)\left( {1 - {\rm{e}}\left( { - j/k} \right)} \right). $ (28)

式(27)和(28)中的轮土基本参数如表 4所示。

表 4 基本轮土参数
符号 含义
z 轮沉陷量
k2 黏滞参数
n 沉陷系数
k 剪变形系数
c 黏滞系数
k1 摩擦参数
b 轮宽
j 剪位移
ϕ 内摩擦角

文[32]及[38-42]不断对式(27)和(28)进行改进,最后得到了一种轮土几何关系, 如图 7所示。图中补充的轮土参数如表 5所示。

图 7 轮土几何关系

表 5 图 7中补充的轮土参数
符号 含义
θm 最大应力角
θ2 泥土退出角
τ1 进入剪应力
z 轮沉陷量
σ2 退出正应力
vx 轮前向速度
fx 轮牵引力
θ1 泥土进入角
r 轮半径
τ2 退出剪应力
σ1 进入正应力
ϕy 轮转动速度
τy 轮轴向力矩
fz 轮法向力

图 7中,有

$ z\left( \theta \right) = r\left( {\cos \theta - \cos {\theta _1}} \right). $ (29)

将式(29)代入式(27)—(28)中,得到:

$ {\sigma _1}\left( \theta \right) = \left( {\frac{{{k_1}}}{b} + {k_2}} \right) \cdot {\left( {r\left( {\cos \theta - \cos {\theta _1}} \right)} \right)^n}, $ (30)
$ \begin{array}{*{20}{c}} {{\sigma _2}\left( \theta \right) = \left( {\frac{{{k_1}}}{b} + {k_2}} \right) \cdot }\\ {{{\left( {r\left( {\cos \left( {{\theta _1} - \theta \cdot \frac{{{\theta _1} - {\theta _{\rm{m}}}}}{{{\theta _{\rm{m}}}}}} \right) - \cos {\theta _1}} \right)} \right)}^n}.} \end{array} $ (31)

此外,法向最大应力角θm表示为

$ {\theta _{\rm{m}}} = \left( {{c_1} + {c_2}s} \right) \cdot {\theta _1}. $ (32)

其中s为轮地滑移率。根据θm可以得到对应的σmτm,进一步得到修正后的正应力及剪应力表达式:

$ \begin{array}{l} {\sigma _1}\left( \theta \right) = \frac{{{\theta _1} - \theta }}{{{\theta _1} - {\theta _{\rm{m}}}}}{\sigma _{\rm{m}}},\;\;\;\;\;\;{\sigma _2}\left( \theta \right) = \frac{\theta }{{{\theta _{\rm{m}}}}}{\sigma _{\rm{m}}},\\ {\tau _1}\left( \theta \right) = \frac{{{\theta _1} - \theta }}{{{\theta _1} - {\theta _{\rm{m}}}}}{\tau _{\rm{m}}},\;\;\;\;\;\;\;\;{\tau _2}\left( \theta \right) = c + \frac{\theta }{{{\theta _{\rm{m}}}}}\left( {{\tau _{\rm{m}}} - c} \right). \end{array} $ (33)

进一步根据图 8所示的车轮坐标系,分析车轮所受的力与力矩,根据滑移角α得到轮地法向力、牵引力、牵引力矩及侧向力。

图 8 车轮坐标系统

法向力表示为

$ \begin{array}{*{20}{c}} {N = \frac{{rb}}{{{\theta _{\rm{m}}}\left( {{\theta _{\rm{l}}} - {\theta _{\rm{m}}}} \right)}} \cdot }\\ {\left[ {\begin{array}{*{20}{c}} {{\sigma _{\rm{m}}}\left( { - {\theta _{\rm{m}}}\cos \left( {{\theta _{\rm{1}}}} \right) + {\theta _{\rm{1}}}\cos \left( {{\theta _{\rm{m}}}} \right) - {\theta _{\rm{1}}} + {\theta _{\rm{m}}}} \right)}\\ { - {\kappa _{\rm{m}}}\left( {{\theta _{\rm{m}}}\sin \left( {{\theta _1}} \right) - {\theta _1}\sin \left( {{\theta _{\rm{m}}}} \right)} \right)}\\ { - c\left( { - {\theta _{\rm{1}}}\sin \left( {{\theta _{\rm{m}}}} \right) - {\theta _{\rm{m}}}\sin \left( {{\theta _{\rm{m}}}} \right) - {\theta _{\rm{m}}}{\theta _{\rm{1}}} + \theta _{\rm{m}}^2} \right)} \end{array}} \right].} \end{array} $ (34)

牵引力及牵引力矩表示为

$ \left\{ \begin{array}{l} T = \frac{{rb}}{2}\left( {{\tau _{\rm{m}}}{\theta _1} + c{\theta _{\rm{m}}}} \right),\\ \tau = \frac{{{r^2}b}}{2}\left( {{\tau _{\rm{m}}}{\theta _1} + c{\theta _{\rm{m}}}} \right). \end{array} \right. $ (35)

侧向力表示为

$ L = \left( {cbA + N \cdot \tan \left( \phi \right)} \right) \cdot \left( {1 - {\rm{e}}\left( { - B \cdot \alpha } \right)} \right). $ (36)

其中:A为轮地接触面积,B为常系数。

根据Coulomb摩擦因数μx,可得轮土作用的前向Coulomb摩擦力fx表达式:

$ {f_x} = {\mu _x} \cdot N \cdot {\rm{sign}}\left( {{v_x}} \right). $ (37)

利用上述模型,研究人员分别对比模拟仿真实验及在真实环境的实验,证明了式(34)—(36)轮土力学模型的可行性。

在文[40]中给出了结合轮土力学的行星车动力学建模的方法并进行了相应的仿真实验。仿真实验与实物实验的结果对比表明:无论是平地行驶还是爬坡实验,仿真实验的曲线都能反映实际的车体的运行基本状态。平地实验结果如图 9所示,其中左侧为实物实验数据,右侧为仿真数据。

图 9 平地实验对比结果[40]

文[43]中比较了2组利用轮土力学进行的动力学仿真实验与实物实验的位置误差与方向误差的计算结果(见图 10)。实验条件为:左右前轮都分别固定为15°及30°,左右后轮固定为0°。结果表明,在模拟行星车轮与土壤的相互作用时,利用上述提到的一系列方法,可以高精度对轮土力学进行仿真。结果如表 6所示。

图 10 2组实验对比[43]

表 6 2个实验的平均误差对比结果
实验 RMS误差 最终状态误差
15° 位置/m 0.025 0.052 5
方向/(°) 2.799 5 4.123
30° 位置/m 0.035 5 0.063
方向/(°) 1.896 0.779 5

文[44-45]介绍了在中国嫦娥三号辅助实验中应用Newton-Euler递归动力学模型及轮土力学模型实现嫦娥三号实时动力学控制的成功经验。其中地面软土模型通过点云数据实现,通过布置在轮轴平面上的虚拟传感器向下发射虚拟射线,可以得到射线与点云数据的交点。从而得到钢轮的泥土进入角和泥土退出角,再进一步计算法向力、牵引力及侧向力,如图 11所示。

图 11 轮土力学仿真模型

虽然该轮土力学模型能够正确地计算钢轮软土的相互作用力,但使用该方法首先需要确定土壤参数。若土壤摩擦参数、黏滞参数未知,则计算结果将存在一定的误差。

3 结论

近些年来,对于多刚体动力学建模的研究逐渐减少,许多的研究者都将目标转向了柔性体的动力学建模。而对于轮土力学,研究人员仍按照文中提到的成熟算法进行仿真或实验。在有关行星车车体的动力学仿真实验中,不同学者利用Newton-Euler递归法或Lagrange递归法进行了各种各样的实验,都取得了不错的结果,二者之间很难明确地划分性能的优劣。由于Kane方法不适于用计算机完成多体系统的动力学建模,故并未见到许多利用该方法完成实验的成果。

参考文献
[1]
谢传峰, 王琪, 程耀, 等. 动力学[M]. 北京: 高等教育出版社, 2006.
XIE C F, WANG Q, CHENG Y, et al. Dynamics[M]. Beijing: Higher Education Press, 2006. (in Chinese)
[2]
KANE T R, WANG C F. On the derivation of equations of motion[J]. Journal of the Society for Industrial and Applied Mathematics, 1965, 13(2): 487-492. DOI:10.1137/0113030
[3]
SINGH R P, LIKINS P W. Manipulator interactive design with interconnected flexible elements[C]// Proceedings of the 1983 American Control Conference. San Francisco, USA: IEEE, 1983: 505-512
[4]
KANE T R, LEVINSON D A. Formulation of equations of motion for complex spacecraft[J]. Journal of Guidance, Control, and Dynamics, 1980, 3(2): 99-112.
[5]
KANE T R, LEVINSON D A. The use of Kane's dynamical equations in robotics[J]. The International Journal of Robotics Research, 1983, 2(3): 3-21.
[6]
KANE T R, LEVINSON D A. Dynamics, theory and applications[M]. New York: McGraw-Hill, 1985.
[7]
LUH J Y S, WALKER M W, PAUL R P C. On-line computational scheme for mechanical manipulators[J]. Journal of Dynamic Systems, Measurement, and Control, 1980, 102(2): 69-76. DOI:10.1115/1.3149599
[8]
ARMSTRONG W W. Recursive solution to the equations of motion of an n-link manipulator[C]// Proceedings of the Fifth World Congress on Theory of Machines and Mechanisms. Montreal, Canada: American Society of Mechanical Engineers, 1979: 1343-1346.
[9]
ORIN D E, MCGHEE R B, VUKOBRATOVIC M, et al. Kinematic and kinetic analysis of open-chain linkages utilizing Newton-Euler methods[J]. Mathematical Biosciences, 1979, 43(1-2): 107-130. DOI:10.1016/0025-5564(79)90104-4
[10]
RODRIGUEZ G. Kalman filtering, smoothing, and recursive robot arm forward and inverse dynamics[J]. IEEE Journal on Robotics and Automation, 1987, 3(6): 624-639. DOI:10.1109/JRA.1987.1087147
[11]
RODRIGUEZ G. Recursive forward dynamics for multiple robot arms moving a common task object[J]. IEEE Transactions on Robotics and Automation, 1989, 5(4): 510-521. DOI:10.1109/70.88065
[12]
KREUTZ D K, JAIN A, RODRIGUEZ G. Recursive formulation of operational space control[J]. The International Journal of Robotics Research, 1992, 11(4): 320-328. DOI:10.1177/027836499201100405
[13]
JAIN A. Robot and multibody dynamics: Analysis and algorithms[M]. New York: Springer, 2011.
[14]
JAIN A. Operational space inertia for closed-chain robotic systems[J]. Journal of Computational and Nonlinear Dynamics, 2014, 9(2): 021015. DOI:10.1115/1.4025893
[15]
FEATHERSTONE R. The calculation of robot dynamics using articulated-body inertias[J]. The International Journal of Robotics Research, 1983, 2(1): 13-30.
[16]
FEATHERSTONE R. A divide-and-conquer articulated-body algorithm for parallel O (log (n)) calculation of rigid-body dynamics. Part 1: Basic algorithm[J]. The International Journal of Robotics Research, 1999, 18(9): 867-875. DOI:10.1177/02783649922066619
[17]
FEATHERSTONE R. A divide-and-conquer articulated-body algorithm for parallel O (log (n)) calculation of rigid-body dynamics, Part 2: Trees, loops, and accuracy[J]. The International Journal of Robotics Research, 1999, 18(9): 876-892. DOI:10.1177/02783649922066628
[18]
FEATHERSTONE R, ORIN D. Robot dynamics: Equations and algorithms[C]//Proceedings IEEE International Conference on Robotics and Automation. San Francisco, USA: IEEE, 2000: 826-834.
[19]
FEATHERSTONE R. A beginner's guide to 6-D vectors (part 1)[J]. IEEE Robotics & Automation Magazine, 2010, 17(3): 83-94.
[20]
FEATHERSTONE R. Rigid body dynamics algorithms[M]. Boston: Springer, 2008.
[21]
UCHIDA T U, MCPHEE J. Triangularizing kinematic constraint equations using Gröbner bases for real-time dynamic simulation[J]. Multibody System Dynamics, 2011, 25(3): 335-356. DOI:10.1007/s11044-010-9241-8
[22]
UCHIDA T U, MCPHEE J. Using Gröbner bases to generate efficient kinematic solutions for the dynamic simulation of multi-loop mechanisms[J]. Mechanism and Machine Theory, 2012, 52: 144-157. DOI:10.1016/j.mechmachtheory.2012.01.015
[23]
HOLLERBACH J M. A recursive Lagrangian formulation of maniputator dynamics and a comparative study of dynamics formulation complexity[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1980, 10(11): 730-736. DOI:10.1109/TSMC.1980.4308393
[24]
UICKER J J. On the dynamic analysis of spatial linkages using 4×4 matrices[J]. PhD Dissertation, Northwestern University, 1965, 70-77.
[25]
KAHN M E, ROTH B. The near-minimum-time control of open-loop articulated kinematic chains[J]. Journal of Dynamic Systems, Measurement, and Control, 1971, 93(3): 164-172. DOI:10.1115/1.3426492
[26]
SILVER W M. On the equivalence of Lagrangian and Newton-Euler dynamics for manipulators[J]. The International Journal of Robotics Research, 1982, 1(2): 60-70.
[27]
HEHUA J, BAOQIAN S, SHU L, et al. Hand book of space robotics: Axis-invariant based MAS modeling, planning and control[M]. New York: Springer Press, 2018.
[28]
BOOK W J. Recursive Lagrangian dynamics of flexible manipulator arms[J]. The International Journal of Robotics Research, 1984, 3(3): 87-101. DOI:10.1177/027836498400300305
[29]
SAYAHKARAJY M, MOHAMED Z, MOHD FAUDZI A A. Review of modelling and control of flexible-link manipulators[J]. Proceedings of the Institution of Mechanical Engineers, Part Ⅰ: Journal of Systems and Control Engineering, 2016, 230(8): 861-873.
[30]
PARK F C, KIM B, JANG C, et al. Geometric algorithms for robot dynamics: A tutorial review[J]. Applied Mechanics Reviews, 2018, 70(1): 010803. DOI:10.1115/1.4039078
[31]
FELIS M L. RBDL: An efficient rigid-body dynamics library using recursive algorithms[J]. Autonomous Robots, 2017, 41(2): 495-511. DOI:10.1007/s10514-016-9574-0
[32]
IAGNEMMA K, KANG S, BROOKS C, et al. Multi-sensor terrain estimation for planetary rovers[C]// Proceedings of the 7th International Symposium on Artificial Intelligence, Robotics, and Automation in Space. New York, USA: IEEE Press, 2003.
[33]
BEKKER M G. Off-the-road locomotion: Research and development in terramechanics[M]. AnnArbor: University of Michigan Press, 1960.
[34]
BEKKER M G. Introduction to terrain-vehicle systems[M]. AnnArbor: University of Michigan Press, 1969.
[35]
JANOSI Z, HANAMOTO B. The analytical determination of drawbar pull as a function of slip for tracked vehicle in deformable soils[C]// Proceedings of the 1st Conference on International Terrain-Vehicle Systems. Torino, Italy, 1961.
[36]
WONG J Y. On the study of wheel-soil interaction[J]. Journal of Terramechanics, 1984, 21(2): 117-131. DOI:10.1016/0022-4898(84)90017-X
[37]
WONG J Y. Terramechanics and off-road vehicle engineering: Terrain behaviour, off-road vehicle performance and design[M]. Oxford: Butterworth-heinemann, 2009.
[38]
IAGNEMMA K, SHIBLY H, DUBOWSKY S. On-line terrain parameter estimation for planetary rovers[C]// Proceedings of 2002 IEEE International Conference on Robotics and Automation. Washington, USA: IEEE, 2002: 3142-3147.
[39]
IAGNEMMA K, DUBOWSKY S. Mobile robots in rough terrain: Estimation, motion planning, and control with application to planetary rovers[M]. New York: Springer Publishing Company, Incorporated, 2010.
[40]
YOSHIDA K, HAMANO H. Motion dynamics of a rover with slip-based traction model[C]// Proceedings 2002 IEEE International Conference on Robotics and Automation. Washington, USA: IEEE, 2002: 3155-3160.
[41]
YOSHIDA K, WATANABE T, MIZUNO N, et al. Terramechanics-based analysis and traction control of a lunar/planetary rover[M]//YUTA S, ASAMA H, PRASSLER E, et al. Field and service robotics. Berlin, Heidelberg: Springer, 2003: 225-234.
[42]
YOSHIDA K, ISHIGAMI G. Steering characteristics of a rigid wheel for exploration on loose soil[C]// Proceedings of 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems. Sendai, Japan: IEEE, 2004: 3995-4000.
[43]
ISHIGAMI G, MIWA A, NAGATANI K, et al. Terramechanics-based model for steering maneuver of planetary exploration rovers on loose soil[J]. Journal of Field Robotics, 2007, 24(3): 233-250. DOI:10.1002/rob.20187
[44]
居鹤华, 田小二. 月面巡视器实时动力学建模与牵引控制[J]. 宇航学报, 2014, 35(7): 743-752.
JU H H, TIAN X E. Real-time dynamics modeling and traction control for lunar rover[J]. Journal of Astronautics, 2014, 35(7): 743-752. DOI:10.3873/j.issn.1000-1328.2014.07.002 (in Chinese)
[45]
田小二.基于弹塑性轮土力学及黏弹性运动副的月球车动力学研究[D].北京: 北京工业大学, 2013.
TIAN X E. The research on lunar rover dynamics based on elastoplastic wheel-terrain mechanics and viscoelastic kinematic pair[D]. Beijing: Beijing University of Technology, 2013.(in Chinese)