双足轮机器人SK8O技术详解--建模和仿真翻译
Posted 灯哥开源
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双足轮机器人SK8O技术详解--建模和仿真翻译相关的知识,希望对你有一定的参考价值。
2 建模和仿真
在本章中,我将得出一个简化的平面模型。另外,我在可用于测试和验证的机器人仿真软件中展示了完整的3D机器人仿真模型。
2.1 简化的平面模型
把机器人转变到平面上(图2.1a)。它由一个轮子、一个身体和三个长度分别为 l 1 l_1 l1, l 2 l_2 l2, l 3 l_3 l3的连杆组成。这些零件由五个转动关节连接。放置在轮子上的电机产生的力矩是 u 0 u_0 u0,身体与第二连杆的连接处的电机产生的力矩是 u 4 u_4 u4。此外,在第一和第二连杆之间还安装了一根扭簧。表2.1列出了所有参数。
与[4]中类似,我分两步进行了建模。首先,我使用欧拉-拉格朗日方程推导了未连接第五关节的机器人模型,如图2.1b所示。其次,我添加了反作用力(力矩),这是用拉格朗日乘数框架将第三个关节固定在物体上形成的。最后,我将获得的微分代数方程(DAE)模型转换为降阶常微分方程(ODE)模型,使用起来更为方便,因为大多数标准控制系统设计技术都需要ODE公式化。
2.1.1 势能和动能
开环机器人具有五个自由度,假设轮子不打滑并且始终与地面接触。广义坐标是轮子的角度和关节的角度,完整地描述了系统的位置。广义坐标
通过坐标变换,我在惯性参考系中获得了轮子,身体和连杆的重心(COG)位置(假设连杆的重心位于几何中心):
势能
V
V
V为:
其中
m
i
m_i
mi是第
i
i
i个分量的质量,
y
i
y_i
yi是第
i
i
i个分量的COG的
y
y
y坐标,
g
g
g是重力加速度。刚度
k
k
k和零力角
β
β
β是扭簧的参数。动能
T
T
T为:
其中
I
i
I_i
Ii是第
i
i
i个分量围绕COG旋转的转动惯量,
x
˙
\\dot{x}
x˙是第
i
i
i个分量的COG位置的时间导数,
w
i
w_i
wi是相应连杆的角速度:
根据[6],将动能重新公式化为:
其中
M
=
M
(
θ
)
M = M(θ)
M=M(θ)是5×5质量矩阵,它仅取决于角度。
2.1.2 运动方程式
把势能和动能公式化之后,就进行运动方程式的推导。用向量形式表示为:
其中
M
M
M是上面提到的质量矩阵,
D
D
D是摩擦系数和阻尼系数矩阵,稍后会进行计算。
C
=
C
(
θ
,
θ
˙
)
C = C(θ, \\dot{θ})
C=C(θ,θ˙)是5×5的科里奥利矩阵,其中
τ
i
n
\\tau_{in}
τin = [
u
0
u_0
u0
u
0
u_0
u0
0
0
0
0
0
0
u
4
u_4
u4 ]
T
^T
T是输入力矩矢量,并且
我使用第一类
T
i
j
k
T_{ijk}
Tijk的克氏符号获得了科里奥利矩阵:
其中
m
i
j
m_{ij}
mij,
m
i
k
m_{ik}
mik和
m
j
k
m_{jk}
mjk分别是质量矩阵的第
(
i
+
1
,
j
+
1
)
(i+1,j+1)
(i+1,j+1),第
(
i
+
1
,
k
+
1
)
(i + 1,k + 1)
(i+1,k+1)和第
(
j
+
1
,
k
+
1
)
(j + 1,k + 1)
(j+1,k+1)个元素(1)。同样地,
c
i
j
c_{ij}
cij是科里奥利矩阵的第
(
i
+
1
,
j
+
1
)
(i + 1,j + 1)
(i+1,j+1)个元素。
2.1.3 添加约束
将第五个关节固定而导致的几何约束为:
约束条件的时间导数也应该为零,因此:
二阶导数也是如此:
假设
a
a
a是无约束的约束,则由它们引起的反作用力
τ
c
o
n
\\tau_{con}
τcon必须满足以下条件:
通过比较(2.16)和(2.18),可以说反作用力是
A
A
A行的线性组合。将其写为:
其中向量的元素通常称为拉格朗日乘子。现在,我可以用(2.17)和(2.19)扩展无约束系统(2.11)的运动方程,以获得闭环的机器人的动力学方程:
2.1.4 阻尼
将第五个关节固定后,可以计算矩阵
D
D
D。四边形的内角和的弧度为
2
π
2\\pi
2π,因此第五关节的角速度的范数为:
假设所有关节的线性阻尼
b
b
b相同,则耗散力
d
d
d为:
其中
R
R
R是耗散能量,也称为瑞利耗散函数[7]:
通过组合方程式(2.22),(2.23)和(2.24)获得矩阵
D
D
D:
2.1.5 降阶模型
伪速度方法[8]是将推导的DAE模型(2.20),(2.21)转换为ODE模型的有效方法。如果我将
G
(
θ
)
G(θ)
G(θ)定义为5×3矩阵,其中列是
A
A
A的零空间的基
然后(2.18)可以对应写成:
使得
v
v
v是一个有三个实数的向量,称为伪速度。值得一提的是,即使有无限个有效矩阵
G
G
G,给出了各种变换,我还是发现了一个简单的映射,例如:
这并不奇怪,因为
θ
0
˙
\\dot{θ_0}
θ0˙和
θ
1
˙
\\dot{θ_1}
θ1˙不受约束的影响,
θ
2
˙
\\dot{θ_2}
θ2˙、
θ
3
˙
\\dot{θ_3}
θ3˙和
θ
4
˙
\\dot{θ_4}
θ4˙相互依赖。
将(2.20)左乘
G
T
G ^T
GT 并代入(2.27)得到:
矩阵
M
g
M_g
Mg是正定的[8],可以简化(2.29)并得到方程:
与(2.27)相结合形成降阶ODE模型。
2.2 完整的3D机器人仿真
在实际应用中,使用复杂的模型仿真来验证控制系统的性能以避免任何不必要的损坏是一种常见且必要的做法。有多种免费和付费的软件工具提供了3D机器人仿真,包括用于Matlab / Simulink的Simscape Multibody工具箱。尽管留在我用于大多数工作的Matlab / Simulink产品中会很吸引人,但我还是选择了Open Robotics的Gazebo开源仿真器。 它已成为机器人界中许多著名比赛中使用的标准仿真工具之一,例如DARPA Subterranean Challenge(2)和NASA Space Robotics Challenge(3)。
2.2.1 Gazebo和Simulink联合仿真
Gazebo通过所谓的世界进行仿真。这个世界是一个包含所有仿真对象和设置的仿真环境。可以通过程序的图形用户界面或仿真描述格式(SDF)文件创建和设置这些单词,仿真描述格式(SDF)文件是专门为此目的而创建的XML格式文件。对我来说,SDF的一个关键功能是支持循环运动,而URDF缺少类似的文件格式。
模型可以直接在仿真环境中创建,或者从单独的SDF模型文件中导入,这样更方便。 在SDF本身中创建模型很简单。首先,定义所有链接。 这意味着设置它们的位置,方向,物理参数,碰撞网格和可视网格。 然后,链接通过关节相互连接。同样,有多个参数和设置选项。此外,SDF还可以选择直接包含在模型中的标准传感器,例如IMU、GPS或摄像头。 最后,可以使用Gazebo API的C ++插件扩展模型的功能。
在创建如图2.2所示的机器人模型时,我完全按照上面提到的方式进行了操作(4)。 在匹配的情况下,我选择了与简化模型中相同的参数(请参见表2.1)。唯一的例外是身体的重量。由于在3D模型中执行器的数量增加了一倍,因此我选择的重量是简化2D情况下使用的重量的两倍。
为了实现反馈控制,我创建了一个模型插件,该插件可读取所有测量值和状态信息。 插件在一个特定的基于TCP / IP的Gazebo通信通道上发布数据,该通道被称为主题。
该主题已连接到Simulink环境,因为Simulink通过机器人系统工具箱支持Gazebo联合仿真。计算出的控制动作值由Simulink反馈回路在一个专门的主题上发布。然后由插件检索它们并将其应用于模型。 仿真图如图2.3所示。
2.2.2 与平面模型的比较
为了将3D仿真与推导的模型进行比较,我选择了两个简单的开环方案。在这两种情况下,用于比较的有用仿真时间都很小,因为平面模型不包括地面碰撞和离地。不幸的是,这种限制在开环仿真中是不可避免的。
在第一种情况下,向轮子施加了相同的恒定力矩。如图2.4a,2.4b(5)所示,机器人在3D仿真器中的下落速度更快。另外,两种情况下的趋势都是相似的。在大约0.4 s的时候,机器人在Gazebo中下落并将轮子抬离地面。
在第二种情况下,向身体电机施加了相同的恒定力矩。如图2.4c,2.4d所示,这两种仿真几乎无法区分。机器人在0.7秒之前从Gazebo跳下地面。
根据结果,我发现平面模型足够准确。这在第3.3节中也得到了确认,其中预先计算的跳转序列与3D模型的前馈行为相匹配。
备注:
(1)因为第一个索引是0,所以需要在元素的位置上添加1。
(2)www.subtchallenge.com
(3)www.spaceroboticschallenge.com
(4)所有文件可在这个链接中找到: https://gitlab.fel.cvut.cz/kollaada/master-thesis-by-adam-kollarcik.
(5)在图中,只采集了3D机器人的一侧的数据,因为当使用相等的力矩时,两边是相同的。
双足轮开源技术交流QQ群:543613782
以上是关于双足轮机器人SK8O技术详解--建模和仿真翻译的主要内容,如果未能解决你的问题,请参考以下文章