一种四足机器人多步态切换及控制方法及计算机可读介质

未命名 08-27 阅读:110 评论:0


1.本发明属于四足机器人控制领域,尤其涉及一种四足机器人多步态切换及控制方法及计算机可读介质。


背景技术:

2.机器人学科是涉及到机械,控制,硬件,人工智能等多个技术的综合研究领域,而仿生机器人又是机器人研究的一个重要的分支,如何让机器人拥有自然界中动物的高性能运动能力是当前研究的关键问题之一。
3.四足机器人是以模仿自然界中四足动物运动而研制的机器人,在安防巡检,仓储物流,工程建设,智能陪伴,甚至国防等领域有着极大的应用前景,应用于这些场景的首要问题是让机器人实现自然界中四足动物的高速稳定灵活的行走,奔跑,跳跃等多种步态。如何在多种步态之间灵活切换,并维持四足机器人的稳定性是一个重要的研究问题。
4.四足机器人的控制器主要包括上层的运动规划和下层的路径跟随,而以电机作为执行单元的四足机器人的控制,是以环境状态和机器人自身位置速度和加速度的状态作为输入变量,通过模型预测控制或slip,zmp等动力学模型计方法,最终都反映到对四足机器人足端的轨迹和力的大小和方向的控制。上层控制方法需要在协调各种步态的同时,对四足机器人的环境进行感知反馈,对下层控制器发出相应的适应环境的控制指令。


技术实现要素:

5.本发明针对四足机器人的控制难点,提供一个四足机器人多步态控制以及步态的平滑切换的方法,并为各种四足机器人动力学平衡控制模型提供灵活接口。本发明包括四个不同的分层控制器,分别是多步态相位控制器,多步态足端轨迹生成控制器,姿态反馈控制器,底层动作执行器。
6.首先是多步态相位控制器,用于对慢走步态,对角步态,bound步态,gallop奔跑步态下时间相位进行控制,同时只需要进行对相位参数进行动态调节实现上述各个步态之间的稳定切换。所述控制器包括以下步骤:
7.步骤1:通过四足机器人设定腾空相时间、着地相周期时间、左前腿相位差、右前腿相位差、左后腿的相位差、右后腿的相位差、定时器频率,通过腾空相时间、着地相周期时间计算单次步态周期时间,通过四足机器人获取当前触底系统时间,将当前触底系统时间作为相位控制时间;
8.步骤2:四足机器人根据单次步态周期时间、左前腿相位差计算左前腿单次步态周期起始时刻时间差,根据单次步态周期时间、右前腿相位差计算右前腿单次步态周期起始时刻时间差,根据单次步态周期时间、左后腿相位差计算左后腿单次步态周期起始时刻时间差,根据单次步态周期时间、右后腿相位差计算右后腿单次步态周期起始时刻时间差;
9.步骤3:四足机器人根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,根
据右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,根据左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比;
10.步骤4:实时计算当前腿的控制变量,实现当前腿的腾空相足、关节的控制;
11.作为优选,步骤1所述腾空相时间为t1;
12.步骤1所述着地相周期时间为t2;
13.步骤1所述左前腿相位差为s1;
14.步骤1所述右前腿相位差为s2;
15.步骤1所述左后腿的相位差为s3;
16.步骤1所述右后腿的相位差为s4;
17.步骤1所述定时器频率为h;
18.步骤1所述计算单次步态周期时间为:
19.t
stride
=t1+t220.其中,t1为腾空相时间,t2为着地相周期时间;
21.步骤1所述相位控制时间为t
telapse

22.作为优选,步骤2所述计算左前腿单次步态周期起始时刻时间差为:
23.t
lf
=t
telapse-s1*t
stride
24.其中,t
telapse
为相位控制时间,t
lf
为左前腿的控制时间,s1为左前腿相位差,t
stride
为单次步态周期时间;
25.步骤2所述计算右前腿单次步态周期起始时刻时间差为:
26.t
rf
=t
telapse-s2*t
stride
27.其中,t
telapse
为相位控制时间,t
rf
为右前腿的控制时间,s2为右前腿相位差,t
stride
为单次步态周期时间。
28.步骤2所述计算左后腿单次步态周期起始时刻时间差为:
29.t
rb
=t
telapse-s3*t
stride
30.其中,t
telapse
为相位控制时间,t
rb
为左后腿的控制时间,s3为左后腿相位差,t
stride
为单次步态周期时间。
31.步骤2所述计算右后腿单次步态周期起始时刻时间差为:
32.t
lb
=t
telapse-s4*t
stride
33.其中,t
telapse
为相位控制时间,t
lb
为右后腿的控制时间,s4为右后腿相位差,t
stride
为单次步态周期时间。
34.作为优选,步骤3所述根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,具体如下:
35.若0<t
lf
<t
st
,则
36.若t
lf
<-t
sw
,则
37.若t
st
<t
lf
<t
stride
,则d
st_1
=1,
38.若-t
st
<t
lf
<0,则d
st_1
=1
39.其中,d
st_1
表示左前腿着地相的占空比,d
sw_1
表示左前腿腾空相的占空比,t
stride

单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
lf
表示左前腿的系统时间;
40.步骤3所述根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,具体如下:
41.若0<t
rf
<t
st
,则
42.若t
rf
<-t
sw
,则
43.若t
st
<t
rf
<t
stride
,则d
st_2
=1
44.若-t
st
<t
rf
<0,则d
st_2
=1
45.其中,d
st_2
表示右前腿着地相的占空比,d
sw_2
表示右前腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rf
表示右前腿的系统时间;
46.步骤3所述右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,具体如下:
47.若0<t
rb
<t
st
,则
48.若t
rb
<-t
sw
,则
49.若t
st
<t
rb
<t
stride
,则d
st_3
=1
50.若-t
st
<t
rb
<0,则d
st_3
=1
51.其中,d
st_3
表示右后腿着地相的占空比,d
sw_3
表示右后腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rb
表示右后腿的系统时间;
52.步骤3所述左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比,具体如下:
53.若0<t
lb
<t
st
,则
54.若t
lb
<-t
sw
,则
55.若t
st
<t
lb
<t
stride
,则d
st_4
=1
56.若-t
st
<t
lb
<0,则d
st_4
=1
57.其中,d
st_4
表示左后腿着地相的占空比,d
sw_4
表示左后腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
lb
表示左后腿的系统时间;
58.所述步骤4具体如下:
59.步骤4.1:结合当前腿着地相的占空比d
st_i
、当前腿腾空相的占空比d
sw_i
分别技术得到当前腿的着地相的位置控制系数legt1i、当前腿的腾空相的位置控制系数legt2i,具体如下:
60.d
sw_i
=1,0<d
st_i
<1
61.d
st_i
=1,0<d
sw_i
<1
62.i∈{1,2,3,4}
63.其中,legt1i为当前腿的着地相的位置控制系数,legt2i为当前腿的腾空相的位置控制系数,a为设定的轨迹加速度,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;
64.步骤4.2,根据mpc或zmp动力学模型计算下一次落足点的位置坐标,记为b(x
11
,y
11
);
65.把当前腿腾空相的起点坐标,记为a(x0,y0);
66.以点a作为十二阶贝塞尔曲线的起点,以点b作为十二阶贝塞尔曲线的终点,构建12阶贝塞尔曲线,该12阶贝塞尔曲线x轴控制系数依次设定为a0,a1,...,a
11
,y轴控制系数依次设定为b0,b1,...,b
11
,使得该曲线从起点a到终点b之间的距离|ab|在水平方向的投影为机器人步长,该曲线竖直方向的高度和设定机器人步高相等;
67.步骤4.3:通过当前腿的腾空相的位置控制系数legt2i和a0,a1,...,a
11
,以及b0,b1,...,b
11
对当前腿腾空相进行控制,具体如下:
68.对当前腿的腾空相足端坐标(xi,yi,zi)进行计算:
69.xi=a0*legt2
i11
+a1*legt2
i10
+a2*legt2
i9
+a3*legt2
i8
+a4*legt2
i7
+

+a
11
*legt2
i0
70.yi=b0*legt2
i11
+b1*legt2
i10
+b2*legt2
i9
+b3*legt2
i8
+b4*legt2
i7
+

+b
11
*legt2
i0
71.i∈{1,2,3,4}
72.其中,(xi,yi,zi)表示当前腿的腾空相足端坐标,xi表示当前腿的腾空相足端坐标的x轴坐标,yi表示当前腿的腾空相足端坐标的y轴坐标,zi表示当前腿的腾空相足端坐标的z轴坐标,legt2i表示当前腿的腾空相的位置控制系数,ak表示12阶贝塞尔曲线x轴的k阶控制系数,bk表示12阶贝塞尔曲线y轴的k阶控制系数。i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;
73.再根据关节逆运动学用得到的足端坐标(xi,yi,zi)反算电机的位置,结合位置通过位置pid控制算法实现对腾空相的足端轨迹控制;
74.步骤4.4:以legt1为力的作用周期,通过力矩pid控制算法对电机关节进行力矩输出;
75.本发明还提供了一种计算机可读介质,所述计算机可读介质存储电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,执行所述四足机器人多步态切换及控制方法的步骤。
76.本发明优点在于,通过设定每条腿的相位差实现四足机器人多种步态的切换和控制,并能够和mpc或zmp动力学模型结合,保证四足机器人的稳定性。
附图说明
77.图1:本发明实施例的方法流程图。
具体实施方式
78.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
79.下面结合图1介绍本发明的具体实施方式为一种四足机器人多步态切换及控制方法,包括:
80.步骤1:通过四足机器人设定腾空相时间、着地相周期时间、左前腿相位差、右前腿相位差、左后腿的相位差、右后腿的相位差、定时器频率,通过腾空相时间、着地相周期时间计算单次步态周期时间,通过四足机器人获取当前触底系统时间,将当前触底系统时间作为相位控制时间;
81.步骤1所述腾空相时间为t1;
82.步骤1所述着地相周期时间为t2;
83.步骤1所述左前腿相位差为s1=0;
84.步骤1所述右前腿相位差为s2=0;
85.步骤1所述左后腿的相位差为s3=0.5;
86.步骤1所述右后腿的相位差为s4=0.5;
87.步骤1所述定时器频率为h;
88.步骤1所述计算单次步态周期时间为:
89.t
stride
=t1+t290.其中,t1为腾空相时间,t2为着地相周期时间,计算得到t
stride
=0.8
91.步骤1所述相位控制时间为t
telapse

92.步骤2:四足机器人根据单次步态周期时间、左前腿相位差计算左前腿单次步态周期起始时刻时间差,根据单次步态周期时间、右前腿相位差计算右前腿单次步态周期起始时刻时间差,根据单次步态周期时间、左后腿相位差计算左后腿单次步态周期起始时刻时间差,根据单次步态周期时间、右后腿相位差计算右后腿单次步态周期起始时刻时间差;
93.步骤2所述计算左前腿单次步态周期起始时刻时间差为:
94.t
lf
=t
telapse-s1*t
stride
95.其中,t
telapse
为相位控制时间,t
lf
为左前腿的控制时间,s1为左前腿相位差,t
stride
为单次步态周期时间;
96.步骤2所述计算右前腿单次步态周期起始时刻时间差为:
97.t
rf
=t
telapse-s2*t
stride
98.其中,t
telapse
为相位控制时间,t
rf
为右前腿的控制时间,s2为右前腿相位差,t
stride
为单次步态周期时间。
99.步骤2所述计算左后腿单次步态周期起始时刻时间差为:
100.t
rb
=t
telapse-s3*t
stride
101.其中,t
telapse
为相位控制时间,t
rb
为左后腿的控制时间,s3为左后腿相位差,t
stride
为单次步态周期时间。
102.步骤2所述计算右后腿单次步态周期起始时刻时间差为:
103.t
lb
=t
telapse-s4*t
stride
104.其中,t
telapse
为相位控制时间,t
lb
为右后腿的控制时间,s4为右后腿相位差,t
stride
为单次步态周期时间。
105.步骤3:四足机器人根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,根据右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,根据左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比;
106.步骤3所述根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,具体如下:
107.若0<t
lf
<t
st
,则
108.若t
lf
<-t
sw
,则
109.若t
st
<t
lf
<t
stride
,则d
st_1
=1,
110.若-t
st
<t
lf
<0,则d
st_1
=1
111.其中,d
st_1
表示左前腿着地相的占空比,d
sw_1
表示左前腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
lf
表示左前腿的系统时间;
112.步骤3所述根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,具体如下:
113.若0<t
rf
<t
st
,则
114.若t
rf
<-t
sw
,则
115.若t
st
<t
rf
<t
stride
,则d
st_2
=1
116.若-t
st
<t
rf
<0,则d
st_2
=1
117.其中,d
st_2
表示右前腿着地相的占空比,d
sw_2
表示右前腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rf
表示右前腿的系统时间;
118.步骤3所述右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,具体如下:
119.若0<t
rb
<t
st
,则
120.若t
rb
<-t
sw
,则
121.若t
st
<t
rb
<t
stride
,则d
st_3
=1
122.若-t
st
<t
rb
<0,则d
st_3
=1
123.其中,d
st_3
表示右后腿着地相的占空比,d
sw_3
表示右后腿腾空相的占空比,t
stride

单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rb
表示右后腿的系统时间;
124.步骤3所述左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比,具体如下:
125.若0<t
lb
<t
st
,则
126.若t
lb
<-t
sw
,则
127.若t
st
<t
lb
<t
stride
,则d
st_4
=1
128.若-t
st
<t
lb
<0,则d
st_4
=1
129.其中,d
st_4
表示左后腿着地相的占空比,d
sw_4
表示左后腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
lb
表示左后腿的系统时间;
130.步骤3.1,以初始步态为对角步态为例,首先让四条腿站立并动作到对角步态起始位置,以左前腿为参考相,初始化相位差参数,s1=0,s2=0,s3=0.5,s4=0.5,初始化步态周期参数,t
sw
=0.2,t
st
=0.35,后续加速可直接减小t
st
的值,缩短着地相的时间实现加速。
131.步骤3.2,开启定时器中断,每0.0005进入一次定时器中断,在定时器中断中进行相位控制的相关计算,系统时间t=t+0.0005,根据触地检测获取当前周期开始时刻t
dd
,以及当前时刻相对于当前步态周期开始时的相对时间t
telapse
=t-t
dd
.
132.步骤3.3,获取每条腿独立的相对于当前步态周期开始时刻的时间,
133.leg
t
=t
telapse-s
leg
*t
stride
134.步骤3.4,根据步骤1.7中所述方法计算每条腿的着地相和腾空相的8个相位占比值
135.步骤3.5,通过mpc和zmp计算每条腿和地面接触的力的大小和方向,同时确定腾空相的初始点和终点,等比获得12个贝塞尔控制点的坐标,进而计算出十二个贝塞尔控制点计算控制系数a1,a2,

,a
11
,以及b1,b2,

,b
11
,具体计算过程不予撰述。
136.步骤3.6,对于当前时刻下处于腾空相的腿,通过步骤2.4所示方法,获得当前时刻下每条腿所处的三维空间下的坐标值(x,y,z),然后通过底层电机控制器,实现对足端轨迹的跟踪。
137.步骤3.7,对于处于着地相的腿,由步骤2.2中得到的当前腿的着地相力的大小和方向,以着地相参数legt1为力的作用周期,通过底层电机控制器对电机关节进行力矩输出,同时限制由于电机在力矩模式下只能查询到电机的位置而无法进行位置控制,对足端轨迹的位置按照步骤2.4的方法进行限制,实现着地相运动的控制。
138.步骤3.8,当接收到来自控制手柄的步态切换指令时,在此以对角步态切换到gollap奔跑步态为例,立刻重新初始化s1=0.2,s2=0.55,s3=0.75,s4=0,同时重新赋值t
sw
=0.2,t
st
=0.1,相位定时器中断继续根据步骤1.1至步骤1.7进行计算,确定足端当前时刻下在gollap步态所应处的位置,同时足端轨迹控制器进行轨迹拟合与计算,确定切换前足端所处的位置,和切换步态后足端所处的初始位置,以这两个位置为始末点,按步骤4.1至4.4中的贝塞尔曲线进行插值拟合,从而实现步态的平滑切换。
139.步骤4:实时计算当前腿的控制变量,实现当前腿的腾空相足、关节的控制;
140.步骤4.1:结合当前腿着地相的占空比d
st_i
、当前腿腾空相的占空比d
sw_i
分别技术得到当前腿的着地相的位置控制系数legt1i、当前腿的腾空相的位置控制系数legt2i,具体如下:
141.d
sw_i
=1,0<d
st_i
<1
142.d
st_i
=1,0<d
sw_i
<1
143.i∈{1,2,3,4}
144.其中,legt1i为当前腿的着地相的位置控制系数,legt2i为当前腿的腾空相的位置控制系数,a为设定的轨迹加速度,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;
145.步骤4.2,根据mpc或zmp动力学模型计算下一次落足点的位置坐标,记为b(x
11
,y
11
);
146.把当前腿腾空相的起点坐标,记为a(x0,y0);
147.以点a作为十二阶贝塞尔曲线的起点,以点b作为十二阶贝塞尔曲线的终点,构建12阶贝塞尔曲线,该12阶贝塞尔曲线x轴控制系数依次设定为a0,a1,...,a
11
,y轴控制系数依次设定为b0,b1,...,b
11
,使得该曲线从起点a到终点b之间的距离|ab|在水平方向的投影为机器人步长,该曲线竖直方向的高度和设定机器人步高相等;
148.步骤4.3:通过当前腿的腾空相的位置控制系数legt2i和a0,a1,...,a
11
,以及b0,b1,...,b
11
对当前腿腾空相进行控制,具体如下:
149.对当前腿的腾空相足端坐标(xi,yi,zi)进行计算:
150.xi=a0*legt2
i11
+a1*legt2
i10
+a2*legt2
i9
+a3*legt2
i8
+a4*legt2
i7
+

+a
11
*legt2
i0
151.yi=b0*legt2
i11
+b1*legt2
i10
+b2*legt2
i9
+b3*legt2
i8
+b4*legt2
i7
+

+b
11
*legt2
i0
152.i∈{1,2,3,4}
153.其中,(xi,yi,zi)表示当前腿的腾空相足端坐标,xi表示当前腿的腾空相足端坐标的x轴坐标,yi表示当前腿的腾空相足端坐标的y轴坐标,zi表示当前腿的腾空相足端坐标的z轴坐标,legt2i表示当前腿的腾空相的位置控制系数,ak表示12阶贝塞尔曲线x轴的k阶控制系数,bk表示12阶贝塞尔曲线y轴的k阶控制系数。i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;
154.再根据关节逆运动学用得到的足端坐标(xi,yi,zi)反算电机的位置,结合位置通过位置pid控制算法实现对腾空相的足端轨迹控制;
155.步骤4.4:以legt1为力的作用周期,通过力矩pid控制算法对电机关节进行力矩输出;
156.本发明的具体实施例还提供了一种计算机可读介质。
157.所述计算机可读介质为服务器工作站;
158.所述服务器工作站存储电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行本发明实施例的四足机器人多步态切换及控制方法的步骤。
159.应当理解的是,本说明书未详细阐述的部分均属于现有技术。
160.应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

技术特征:
1.一种四足机器人多步态切换及控制方法,其特征在于:通过四足机器人获取当前触底系统时间,将当前触底系统时间作为相位控制时间;计算不同腿单次步态周期起始时刻时间差;根据不同腿单次步态周期起始时刻时间差计算不同腿不同步态的占空比;实时计算当前腿的控制变量,实现当前腿的腾空相足、关节的控制。2.根据权利要求1所述的四足机器人多步态切换及控制方法,其特征在于,包括以下步骤步骤1:通过四足机器人设定腾空相时间、着地相周期时间、左前腿相位差、右前腿相位差、左后腿的相位差、右后腿的相位差、定时器频率,通过腾空相时间、着地相周期时间计算单次步态周期时间,通过四足机器人获取当前触底系统时间,将当前触底系统时间作为相位控制时间;步骤2:四足机器人根据单次步态周期时间、左前腿相位差计算左前腿单次步态周期起始时刻时间差,根据单次步态周期时间、右前腿相位差计算右前腿单次步态周期起始时刻时间差,根据单次步态周期时间、左后腿相位差计算左后腿单次步态周期起始时刻时间差,根据单次步态周期时间、右后腿相位差计算右后腿单次步态周期起始时刻时间差;步骤3:四足机器人根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,根据右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,根据左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比;步骤4:实时计算当前腿的控制变量,实现当前腿的腾空相足、关节的控制。3.根据权利要求2所述的四足机器人多步态切换及控制方法,其特征在于:步骤1所述腾空相时间为t1;步骤1所述着地相周期时间为t2;步骤1所述左前腿相位差为s1;步骤1所述右前腿相位差为s2;步骤1所述左后腿的相位差为s3;步骤1所述右后腿的相位差为s4;步骤1所述定时器频率为h;步骤1所述计算单次步态周期时间为:t
stride
=t1+t2其中,t1为腾空相时间,t2为着地相周期时间;步骤1所述相位控制时间为t
telapse
。4.根据权利要求3所述的四足机器人多步态切换及控制方法,其特征在于:步骤2所述计算左前腿单次步态周期起始时刻时间差为:t
lf
=t
telapse-s1*t
stride
其中,t
telapse
为相位控制时间,t
lf
为左前腿的控制时间,s1为左前腿相位差,t
stride
为单次步态周期时间;步骤2所述计算右前腿单次步态周期起始时刻时间差为:t
rf
=t
telapse-s2*t
stride
其中,t
telapse
为相位控制时间,t
rf
为右前腿的控制时间,s2为右前腿相位差,t
stride
为单次步态周期时间;步骤2所述计算左后腿单次步态周期起始时刻时间差为:t
rb
=t
telapse-s3*t
stride
其中,t
telapse
为相位控制时间,t
rb
为左后腿的控制时间,s3为左后腿相位差,t
stride
为单次步态周期时间;步骤2所述计算右后腿单次步态周期起始时刻时间差为:t
lb
=t
telapse-s4*t
stride
其中,t
telapse
为相位控制时间,t
lb
为右后腿的控制时间,s4为右后腿相位差,t
stride
为单次步态周期时间。5.根据权利要求4所述的四足机器人多步态切换及控制方法,其特征在于:步骤3所述根据左前腿单次步态周期起始时刻时间差计算左前腿不同步态的占空比,具体如下:若0<t
lf
<t
st
,则若t
lf
<-t
sw
,则若t
st
<t
lf
<t
stride
,则d
st_1
=1,若-t
st
<t
lf
<0,则d
st_1
=1其中,d
st_1
表示左前腿着地相的占空比,d
sw_1
表示左前腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
lf
表示左前腿的系统时间;步骤3所述根据右前腿单次步态周期起始时刻时间差计算右前腿不同步态的占空比,具体如下:若0<t
rf
<t
st
,则若t
rf
<-t
sw
,则若t
st
<t
rf
<t
stride
,则d
st_2
=1若-t
st
<t
rf
<0,则d
st_2
=1其中,d
st_2
表示右前腿着地相的占空比,d
sw_2
表示右前腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rf
表示右前腿的系统时间;步骤3所述右后腿单次步态周期起始时刻时间差计算右后腿不同步态的占空比,具体如下:若0<t
rb
<t
st
,则若t
rb
<-t
sw
,则
若t
st
<t
rb
<t
stride
,则d
st_3
=1若-t
st
<t
rb
<0,则d
st_3
=1其中,d
st_3
表示右后腿着地相的占空比,d
sw_3
表示右后腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,t
rb
表示右后腿的系统时间;步骤3所述左后腿单次步态周期起始时刻时间差计算左后腿不同步态的占空比,具体如下:若0<t
lb
<t
st
,则若t
lb
<-t
sw
,则若t
st
<t
lb
<t
stride
,则d
st_4
=1若-t
st
<t
lb
<0,则d
st_4
=1其中,d
st_4
表示左后腿着地相的占空比,d
sw_4
表示左后腿腾空相的占空比,t
stride
为单次步态周期时间,t
st
表示设定的着地相的时间,t
lb
表示左后腿的系统时间。6.根据权利要求5所述的四足机器人多步态切换及控制方法,其特征在于:所述步骤4具体如下:步骤4.1:结合当前腿着地相的占空比d
st_i
、当前腿腾空相的占空比d
sw_i
分别技术得到当前腿的着地相的位置控制系数legt1
i
、当前腿的腾空相的位置控制系数legt2
i
,具体如下:d
sw_i
=1,0<d
st_i
<1d
st_i
=1,0<d
sw_i
<1i∈{1,2,3,4}其中,legt1
i
为当前腿的着地相的位置控制系数,legt2
i
为当前腿的腾空相的位置控制系数,a为设定的轨迹加速度,t
st
表示设定的着地相的时间,t
sw
表示设定的腾空相的时间,i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;步骤4.2,根据mpc或zmp动力学模型计算下一次落足点的位置坐标,记为b(x
11
,y
11
);把当前腿腾空相的起点坐标,记为a(x0,y0);以点a作为十二阶贝塞尔曲线的起点,以点b作为十二阶贝塞尔曲线的终点,构建12阶贝塞尔曲线,该12阶贝塞尔曲线x轴控制系数依次设定为a0,a1,...,a
11
,y轴控制系数依次设定为b0,b1,...,b
11
,使得该曲线从起点a到终点b之间的距离|ab|在水平方向的投影为机器人步长,该曲线竖直方向的高度和设定机器人步高相等;步骤4.3:通过当前腿的腾空相的位置控制系数legt2
i
和a0,a1,...,a
11
,以及b0,b1,...,b
11
对当前腿腾空相进行控制,具体如下:对当前腿的腾空相足端坐标(x
i
,y
i
,z
i
)进行计算:
x
i
=a0*legt2
i11
+a1*legt2
i10
+a2*legt2
i9
+a3*legt2
i8
+a4*legt2
i7
+

+a
11
*legt2
i0
y
i
=b0*le
g
t2
i11
+b1*legt2
i10
+b2*legt2
i9
+b3*legt2
i8
+b4*legt2
i7
+

+b
11
*legt2
i0
i∈{1,2,3,4}其中,(x
i
,y
i
,z
i
)表示当前腿的腾空相足端坐标,x
i
表示当前腿的腾空相足端坐标的x轴坐标,y
i
表示当前腿的腾空相足端坐标的y轴坐标,z
i
表示当前腿的腾空相足端坐标的z轴坐标,legt2
i
表示当前腿的腾空相的位置控制系数,a
k
表示12阶贝塞尔曲线x轴的k阶控制系数,b
k
表示12阶贝塞尔曲线y轴的k阶控制系数;i=1表示当前腿为左前腿,i=2表示当前腿为右前腿,i=3表示当前腿为右后腿,i=4表示当前腿为左后腿;再根据关节逆运动学用得到的足端坐标(x
i
,y
i
,z
i
)反算电机的位置,结合位置通过位置pid控制算法实现对腾空相的足端轨迹控制;步骤4.4:以legt1为力的作用周期,通过力矩pid控制算法对电机关节进行力矩输出。7.一种计算机可读介质,其特征在于,其存储电子设备执行的计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-6任一项所述方法的步骤。

技术总结
本发明提出了一种四足机器人多步态切换及控制方法及计算机可读介质。通过设定腾空相时间、着地相周期时间、相位差、定时器频率来计算单次步态周期时间,并将当前触底系统时间作为相位控制时间。四足机器人根据单次步态周期时间和相位差计算各腿单次步态周期起始时刻时间差,再根据该时间差计算不同步态的占空比。实时计算每条腿的控制变量,实现每条腿的腾空相足、关节的控制。本发明优点在于,通过设定每条腿的相位差实现四足机器人多种步态的切换和控制,并能够结合动力学模型,保证四足机器人的稳定性。机器人的稳定性。机器人的稳定性。


技术研发人员:陈震中 李洋
受保护的技术使用者:武汉大学
技术研发日:2023.04.07
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐