CN112596530B - 一种通用的足式机器人步态设计及控制方法 - Google Patents

一种通用的足式机器人步态设计及控制方法 Download PDF

Info

Publication number
CN112596530B
CN112596530B CN202011544286.1A CN202011544286A CN112596530B CN 112596530 B CN112596530 B CN 112596530B CN 202011544286 A CN202011544286 A CN 202011544286A CN 112596530 B CN112596530 B CN 112596530B
Authority
CN
China
Prior art keywords
gait
robot
leg
cpr
gait cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011544286.1A
Other languages
English (en)
Other versions
CN112596530A (zh
Inventor
贺培
冯嘉鹏
李钟�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Vk Robot Co ltd
Original Assignee
Guangzhou Vk Robot Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Vk Robot Co ltd filed Critical Guangzhou Vk Robot Co ltd
Priority to CN202011544286.1A priority Critical patent/CN112596530B/zh
Publication of CN112596530A publication Critical patent/CN112596530A/zh
Application granted granted Critical
Publication of CN112596530B publication Critical patent/CN112596530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle

Abstract

本发明提供一种通用的足式机器人步态设计及控制方法。步态设计包括确定步态参数:StepsInGait、NrLiftedPos、TLDivFactor,HalfLiftHeigth、以及足式机器人各腿的步态周期的起始关键点位置参数,通过这些参数确定一组步态周期内的关键位置点,而控制方法通过获取机器人每条腿在一个步态周期中每一步的足端位置坐标,根据运动学模型和逆运动学求解出腿部各个关节旋转的角度。本发明将步态设计简化为步态参数设置,一组步态参数对应一种步态类型,确定一组步态周期内的关键位置点;针对不同的机器人行走步态、行走速度、抬腿高度、机身高度等控制量,提供一套通用的足式机器人足端轨迹计算方法。

Description

一种通用的足式机器人步态设计及控制方法
技术领域
本发明涉及足式机器人技术领域,尤其是一种通用的足式机器人步态设计及控制方法。
背景技术
足式移动机器人与其他移动机器人相比,具有更高的灵活性,环境适应性,越来越受到研究人员的关注。按照机器人腿的数目来划分,可以将其分为2大类:单足机器人和多足机器人,其中,多足机器人中以四足机器人为主,这是因为,一方面从仿生学的角度考虑,高等的哺乳动物几乎都是四足的,另一方面,从对足式机器人的控制角度来看,四足机器人比双足机器人运动更加平稳,还有比较常见的六足机器人,其控制方法和四足机器人类似,相对单组机器人控制更加简单。例如,专利申请公开号:CN102267509A,发明名称:对称式仿生六足行走装置,采用两个结构完全一致、中心对称的上、下层套筒结构实现三角支撑机构。
专利申请公开号:CN205469364U,发明名称:一种新型的六足机器人结构及其控制系统,该发明通过十八个舵机控制机器人腿的活动。专利申请公开号:CN105835984A,发明名称:一种六足仿生机器人,该装置足部采用仿生C型腿。
机器人的步态决定了其运动的方式,因此,足机器人的步态规划显得十分重要。一般而言,目前用于足机器人步态规划主要有两大类方法,一类是基于经典运动学足端轨迹规划方法,另一类是基于仿生学方法,即模仿控制生物节律性运动的中枢模式发生器(CPG)。
目前,中枢模式发生器将Hopf振荡器的输出经过简单变化,同时,将足机器人躯体姿态作为简单的比例微分反馈信号,将两者融合,作为最终的足机器人的步态控制信号,其最大缺点是对于Hopf振荡器的输出信号变化过于简化,导致足机器人在运动过程中身体俯仰和翻滚运动较大,从而使足机器人在运动过程中的稳定性低。
先前基于Hopf振荡器的足机器人步态控制器,该步态控制器对动物对角步态运动细节模拟还不够,使得四足机器人在运动过程中稳定性很差。
发明内容
针对现有技术的不足,本发明提供一种通用的足式机器人步态设计及控制方法,该步态控制方法能够适用于各种足式机器人,而且控制方法简单。
本发明的技术方案为:一种通用的足式机器人步态设计及控制方法,本发明在步态设计方面,将步态设计简化为步态参数设置,一组步态参数对应一种步态类型,确定一组步态周期内的关键位置点。每个步态周期具有2种状态:在地面转动和在空中摆动,每条腿的都在重复执行相同的一个步态周期,但起始位置点不同(有相位差)。该方式可快速为机器人设计多种步态并在不同步态之平滑切换;本发明在控制方面,针对不同的机器人行走步态、行走速度、抬腿高度、机身高度等控制量,提供一套通用的足式机器人足端轨迹计算方法,以适应各种复杂地形。
所述的方法包括以下步骤:
步骤1:步态设计,包括以下步骤:
1)确定一个步态周期中的总步数StepsInGait,该参数确定一个步态周期内的离散点总数量;
2)确定一个步态周期中在空中的步数NrLiftedPos;该参数确定一个步态周期内在空中摆动的离散点数量;
3)确定一个步态周期中在地面移动的次数TLDivFactor,该参数确定一个步态周期内的前进距离可以细分为多少次实现;
4)确定是否抬腿高度为最高高度的一半HalfLiftHeigth,该参数确定在一个步态周期内的空中点高度是否为一样高;
5)确定足式机器人各腿的步态周期的起始关键点位置,该步骤需要考虑机器人的平衡性,同时又要形成稳定的时序差。
步骤2:机器人控制方法,
所述的方法通过获取机器人每条腿在一个步态周期中每一步的足端位置坐标,根据运动学模型和逆运动学求解出腿部各个关节旋转的角度,具体包括以下步骤:
S1)、输入机器人的步态类型,然后输入一个步态周期内机器人在x方向的位移量InputPosX、一个步态周期内机器人在z方向的位移量InputPosZ、机器人行走高度InputPosY、一个步态周期内机器人在y方向的旋转角度InputRotY;
S2)、获取每一步在x轴的坐标值的变化量GaitPosX、每一步在z轴的坐标值的变化量GaitPosZ、每一步在y轴的坐标值的变化量GaitPosY、每一步在y轴的旋转变化量GaitRotY;
S3)、获取GaitRotY在x和z轴上带来的变化量cpr_x、cpr_z:
Cpr x=OffsetX+InitPosX+GaitPosX;
cpr z=OffsetZ+InitPosZ+GaitPosZ;
BodyFKPosX=cpr x–(cpr x*cos(GaitRotY)–cpr_z*sin(GaitRotY));
BodyFKPosZ=cpr z–(cpr_x*sin(GaitRotY)–cpr_z*cos(GaitRotY));
BodyFKPosY=0;
式中,OffsetX为某条腿的的髋关节在机身坐标系下的x坐标值,InitPosX为初始站立状态下,该条腿足关节在腿部坐标系下的x坐标值,BodyFKPosX,BodyFKPosY,BodyFKPosZ分别为机器人机身旋转对机器人腿部足端坐标X,Y,Z产生的变化量;
S4)、得出每条腿足部坐标位置:
OutPutPosX=InitPosX+BodyFKPosX+GaitPosX;
OutPutPosZ=InitPosZ+BodyFKPosY+GaitPosY;
OutPutPosY=InitPosY+BodyFKPosX+GaitPosZ;
在已知每条腿足部坐标位置,利用逆运动学求解各关节的旋转角度。
进一步的,所述的方法还包括以下步骤:
S2)、构建机器人坐标系,其中,并设定坐标系原点为机身中点,x轴为水平方向,z轴为前后方向,y轴为上下方向;
S3)、建立机器人每条腿的坐标系,单条腿坐标系的原点为髋关节与机身连接点,x轴为水平方向,z轴为前后方向,y轴为上下方向。
进一步的,步骤S2)中,具体包括以下步骤:
a)、对确定机器人每条腿的运动顺序,并对其先后顺序进行标记;
b)、先确定当前步态步数,以及该步态周期中在空中的步数;
c)、若当前步态步数与相应腿序号之间的差值=0,且在空中的步数=1,则:
GaitPosX=0;
GaitPosY=-InputPosY;
GaitPosZ=0;
GaitRotY=0;
d)、若该步态周期中,有2步是在空中的,且当前步态步数与相应腿序号之间的差值=1,或当前步态步数与相应腿序号之间的差值=-(StepsInGait-2),则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=-3*InputPosY/(3+HalfliftHeight);
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor;
式中,StepsInGait为一个步态周期中包括的步数,HalfliftHeight为抬腿高度。
e)、若该步态周期中,有5步是在空中的,且当前步态步数与相应腿序号之间的差值=2,或当前步态步数与相应腿序号之间的差值=-(StepsInGait-2),则:
GaitPosX=InputPosX/2;
GaitPosY=-InputPosY/2;
GaitPosZ=InputPosZ/2;
GaitRotY=InputRotY/2;
否则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=0;
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor。
本发明的有益效果为:
1、本发明可适用于多种足式机器人,且足式机器人可采用多种步态以适应不同的需求;
2、本发明通过确定足式机器人足部的坐标位置,然后确定各个关节的旋转角度、以及移动步数;
3、本发明控制准确,通过确定机器人每一条腿的动作顺序、以及每条腿的动作步数,实现机器人的控制,控制简单,控制精度高。
附图说明
图1为本发明实施例1的步态流程示意图;
图2为本发明实施例2的步态流程示意图;
图3为本发明实施例3的步态流程示意图;
图4为本发明方法的流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
实施例1
本实施例提供一种通用的足式机器人步态设计及控制方法,本发明在步态设计方面,将步态设计简化为步态参数设置,一组步态参数对应一种步态类型,确定一组步态周期内的关键位置点。每个步态周期具有2种状态:在地面转动和在空中摆动,每条腿的都在重复执行相同的一个步态周期,但起始位置点不同(有相位差)。该方式可快速为机器人设计多种步态并在不同步态之平滑切换;本发明在控制方面,针对不同的机器人行走步态、行走速度、抬腿高度、机身高度等控制量,提供一套通用的足式机器人足端轨迹计算方法,以适应各种复杂地形。
所述的方法以六足机器人为例,本实施例以6步涟漪步态进行说明,如图1所示,具体如下:
本实施例中,作如下定义:
StepsInGait=6一个步态周期中总共有6步;
NrLiftedPos=1一个步态周期中有1步是在空中(蓝色圈);
TLDivFactor=4一个步态周期中在地面移动4次(红色箭头);
NomGaitSpeed=150每步的步长为150(单位:mm);
LRGaitLegNr=1左后腿的起始序号为1;
RFGaitLegNr=2右前腿的起始序号为2;
LMGaitLegNr=3左中腿的起始序号为3;
RRGaitLegNr=4右后腿的起始序号为4;
LFGaitLegNr=5左前腿的起始序号为5;
RMGaitLegNr=6右中腿的起始序号为6;
本实施例中,以六足机器人为例建立机器人坐标系,六足机器人机身为六边形,坐标系原点为机身中点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。
本实施例以六足机器人单条腿坐标系如下(以右前腿为例)。单条腿坐标系的原点为髋关节与机身连接点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。由此可知单条腿坐标系与机身坐标系只有固定的平移关系,没有旋转。
并且,本实施例中,每条腿有3个自由度(分别为髋关节、膝关节、足关节)为例,其中髋关节只能在水平方向旋转,膝关节和足关节只能在垂直方向旋转。
下面部分说明,如何根据步态引擎中设置的参数来确定步态周期内,每一步中各条腿的足端位置(在单腿坐标系下的坐标)。已知单条腿的足端坐标和单条腿的运动学模型,可以通过逆运动学求解出腿部各个关节旋转的角度。下面单条腿为例,以下四个已知变量由外部控制输入(如:摇杆,手机app等):
InputPosX:一个步态周期内机器人在x方向的位移量(单位:mm);
InputPosZ:一个步态周期内机器人在z方向的位移量(单位:mm);
InputPosY:机器人以该高度行走(单位:mm);
InputRotY:一个步态周期内机器人在y方向的旋转角度(单位:度);
本实施例机器人当前选择的步态类型也由外部控制输入(如:摇杆,手机app等),所以步态引擎中的以下参数为已知量。
StepsInGait=6;
NrLiftedPos=1;
TLDivFactor=4;
NomGaitSpeed=150;
LRGaitLegNr=1;
RFGaitLegNr=2;
LMGaitLegNr=3;
RRGaitLegNr=4;
LFGaitLegNr=5;
RMGaitLegNr=6;
本实施例以机器人的左后腿为例,以获取左后腿在一个步态周期中每步中足端坐标;
GaitPosX:每一步在x轴的坐标值的变化量;
GaitPosZ:每一步在z轴的坐标值的变化量;
GaitPosY:每一步在y轴的坐标值的变化量;
GaitRotY:每一步在y轴的旋转变化量;
OutPutPosX:x轴坐标值;
OutPutPosZ:z轴坐标值;
OutPutPosY:y轴坐标值;如图4所示。
由于设置左后腿为起始腿,因此,若当前步态步数与相应腿序号之间的差值=0,且在空中的步数=1,则:
GaitPosX=0;
GaitPosY=-InputPosY;
GaitPosZ=0;
GaitRotY=0;
否则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=0;
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor。
获取GaitRotY在x和z轴上带来的变化量cpr_x、cpr_z:
Cpr x=OffsetX+InitPosX+GaitPosX;
cpr z=OffsetZ+InitPosZ+GaitPosZ;
BodyFKPosX=cpr x–(cpr x*cos(GaitRotY)–cpr_z*sin(GaitRotY));
BodyFKPosZ=cpr z–(cpr_x*sin(GaitRotY)–cpr_z*cos(GaitRotY));
BodyFKPosY=0;
式中,OffsetX为某条腿的的髋关节在机身坐标系下的x坐标值,InitPosX为初始站立状态下,该条腿足关节在腿部坐标系下的x坐标值,BodyFKPosX,BodyFKPosY,BodyFKPosZ分别为机器人机身旋转对机器人腿部足端坐标X,Y,Z产生的变化量;
S304)、得出每条腿足部坐标位置:
OutPutPosX=InitPosX+BodyFKPosX+GaitPosX;
OutPutPosZ=InitPosZ+BodyFKPosY+GaitPosY;
OutPutPosY=InitPosY+BodyFKPosX+GaitPosZ;
在已知每条腿足部坐标位置,利用逆运动学求解各关节的旋转角度。
实施例2
本实施例提供一种通用的足式机器人步态设计及控制方法,所述的方法以六足机器人为例,本实施例以三角12步态进行说明,如图2所示,具体如下:
本实施例中,作如下定义:
StepsInGait=12一个步态周期中总共有12步;
NrLiftedPos=3一个步态周期中有3步是在空中;
TLDivFactor=8一个步态周期中在地面移动8次;
NomGaitSpeed=150每步的步长为150(单位:mm);
HalfLiftHeigth=True序号2和12的抬腿高度为序号1的一半;
LRGaitLegNr=1左后腿的起始序号为1;
RFGaitLegNr=3右前腿的起始序号为3;
LMGaitLegNr=5左中腿的起始序号为5;
RRGaitLegNr=7右后腿的起始序号为7;
LFGaitLegNr=9左前腿的起始序号为9;
RMGaitLegNr=11右中腿的起始序号为11。
本实施例中,以六足机器人为例建立机器人坐标系,六足机器人机身为六边形,坐标系原点为机身中点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。
本实施例以六足机器人单条腿坐标系如下(以右前腿为例)。单条腿坐标系的原点为髋关节与机身连接点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。由此可知单条腿坐标系与机身坐标系只有固定的平移关系,没有旋转。
并且,本实施例中,每条腿有3个自由度(分别为髋关节、膝关节、足关节)为例,其中髋关节只能在水平方向旋转,膝关节和足关节只能在垂直方向旋转。
下面部分说明,如何根据步态引擎中设置的参数来确定步态周期内,每一步中各条腿的足端位置(在单腿坐标系下的坐标)。已知单条腿的足端坐标和单条腿的运动学模型,可以通过逆运动学求解出腿部各个关节旋转的角度。下面单条腿为例,以下四个已知变量由外部控制输入(如:摇杆,手机app等):
InputPosX:一个步态周期内机器人在x方向的位移量(单位:mm);
InputPosZ:一个步态周期内机器人在z方向的位移量(单位:mm);
InputPosY:机器人以该高度行走(单位:mm);
InputRotY:一个步态周期内机器人在y方向的旋转角度(单位:度);
本实施例机器人当前选择的步态类型也由外部控制输入(如:摇杆,手机app等),所以步态引擎中的以下参数为已知量。
StepsInGait=12;
NrLiftedPos=3;
TLDivFactor=8;
NomGaitSpeed=150;
HalfLiftHeigth=True序号2和12的抬腿高度为序号1的一半
LRGaitLegNr=1;
RFGaitLegNr=3;
LMGaitLegNr=5;
RRGaitLegNr=7;
LFGaitLegNr=9;
RMGaitLegNr=11;
本实施例以机器人的左后腿为例,以获取左后腿在一个步态周期中每步中足端坐标;
GaitPosX:每一步在x轴的坐标值的变化量;
GaitPosZ:每一步在z轴的坐标值的变化量;
GaitPosY:每一步在y轴的坐标值的变化量;
GaitRotY:每一步在y轴的旋转变化量;
OutPutPosX:x轴坐标值;
OutPutPosZ:z轴坐标值;
OutPutPosY:y轴坐标值;
如图4所示,若该步态周期中,有3步是在空中的,且当前步态步数与相应腿序号之间的差值=1,或当前步态步数与相应腿序号之间的差值=-
(StepsInGait-2),则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=-3*InputPosY/(3+HalfliftHeight);
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor;
式中,StepsInGait为一个步态周期中包括的步数,HalfliftHeight为抬腿高度。
否则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=0;
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor。
获取GaitRotY在x和z轴上带来的变化量cpr_x、cpr_z:
Cpr x=OffsetX+InitPosX+GaitPosX;
cpr z=OffsetZ+InitPosZ+GaitPosZ;
BodyFKPosX=cpr x–(cpr x*cos(GaitRotY)–cpr_z*sin(GaitRotY));
BodyFKPosZ=cpr z–(cpr_x*sin(GaitRotY)–cpr_z*cos(GaitRotY));
BodyFKPosY=0;
式中,OffsetX为某条腿的的髋关节在机身坐标系下的x坐标值,InitPosX为初始站立状态下,该条腿足关节在腿部坐标系下的x坐标值,BodyFKPosX,BodyFKPosY,BodyFKPosZ分别为机器人机身旋转对机器人腿部足端坐标X,Y,Z产生的变化量;
S304)、得出每条腿足部坐标位置:
OutPutPosX=InitPosX+BodyFKPosX+GaitPosX;
OutPutPosZ=InitPosZ+BodyFKPosY+GaitPosY;
OutPutPosY=InitPosY+BodyFKPosX+GaitPosZ;
在已知每条腿足部坐标位置,利用逆运动学求解各关节的旋转角度。
实施例3
本实施例提供一种通用的足式机器人步态设计及控制方法,所述的方法以六足机器人为例,本实施例以三角6步态进行说明,如图3所示,具体如下:
本实施例中,作如下定义:
StepsInGait=6一个步态周期中总共有6步;
NrLiftedPos=2一个步态周期中有2步是在空中;
TLDivFactor=3一个步态周期中在地面移动3次;
NomGaitSpeed=150每步的步长为150(单位:mm);
HalfLiftHeigth=FALSE序号2和1的抬腿高度一样高;
LRGaitLegNr=4左后腿的起始序号为4;
RFGaitLegNr=1右前腿的起始序号为1;
LMGaitLegNr=1左中腿的起始序号为1;
RRGaitLegNr=1右后腿的起始序号为1;
LFGaitLegNr=4左前腿的起始序号为4;
RMGaitLegNr=4右中腿的起始序号为4;
本实施例中,以六足机器人为例建立机器人坐标系,六足机器人机身为六边形,坐标系原点为机身中点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。
本实施例以六足机器人单条腿坐标系如下(以右前腿为例)。单条腿坐标系的原点为髋关节与机身连接点,x轴为水平方向(左边为正),z轴为前后方向(后方为正),y轴为上下方向(向上为正)。由此可知单条腿坐标系与机身坐标系只有固定的平移关系,没有旋转。
并且,本实施例中,每条腿有3个自由度(分别为髋关节、膝关节、足关节)为例,其中髋关节只能在水平方向旋转,膝关节和足关节只能在垂直方向旋转。
下面部分说明,如何根据步态引擎中设置的参数来确定步态周期内,每一步中各条腿的足端位置(在单腿坐标系下的坐标)。已知单条腿的足端坐标和单条腿的运动学模型,可以通过逆运动学求解出腿部各个关节旋转的角度。下面单条腿为例,以下四个已知变量由外部控制输入(如:摇杆,手机app等):
InputPosX:一个步态周期内机器人在x方向的位移量(单位:mm);
InputPosZ:一个步态周期内机器人在z方向的位移量(单位:mm);
InputPosY:机器人以该高度行走(单位:mm);
InputRotY:一个步态周期内机器人在y方向的旋转角度(单位:度);
本实施例机器人当前选择的步态类型也由外部控制输入(如:摇杆,手机app等),所以步态引擎中的以下参数为已知量。
StepsInGait=6;
NrLiftedPos=2;
TLDivFactor=3;
NomGaitSpeed=150;
HalfLiftHeigth=FALSE序号2和1的抬腿高度一样高;
LRGaitLegNr=4;
RFGaitLegNr=1;
LMGaitLegNr=1;
RRGaitLegNr=1;
LFGaitLegNr=49;
RMGaitLegNr=4;
本实施例以机器人的左后腿为例,以获取左后腿在一个步态周期中每步中足端坐标;
GaitPosX:每一步在x轴的坐标值的变化量;
GaitPosZ:每一步在z轴的坐标值的变化量;
GaitPosY:每一步在y轴的坐标值的变化量;
GaitRotY:每一步在y轴的旋转变化量;
OutPutPosX:x轴坐标值;
OutPutPosZ:z轴坐标值;
OutPutPosY:y轴坐标值;
如图4所示,若该步态周期中,有2步是在空中的,且当前步态步数与相应腿序号之间的差值=1,或当前步态步数与相应腿序号之间的差值=-
(StepsInGait-2),则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=-3*InputPosY/(3+HalfliftHeight);
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor;
式中,StepsInGait为一个步态周期中包括的步数,HalfliftHeight为抬腿高度。
否则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=0;
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor。
获取GaitRotY在x和z轴上带来的变化量cpr_x、cpr_z:
Cpr x=OffsetX+InitPosX+GaitPosX;
cpr z=OffsetZ+InitPosZ+GaitPosZ;
BodyFKPosX=cpr x–(cpr x*cos(GaitRotY)–cpr_z*sin(GaitRotY));
BodyFKPosZ=cpr z–(cpr_x*sin(GaitRotY)–cpr_z*cos(GaitRotY));
BodyFKPosY=0;
式中,OffsetX为某条腿的的髋关节在机身坐标系下的x坐标值,InitPosX为初始站立状态下,该条腿足关节在腿部坐标系下的x坐标值,BodyFKPosX,BodyFKPosY,BodyFKPosZ分别为机器人机身旋转对机器人腿部足端坐标X,Y,Z产生的变化量;
S304)、得出每条腿足部坐标位置:
OutPutPosX=InitPosX+BodyFKPosX+GaitPosX;
OutPutPosZ=InitPosZ+BodyFKPosY+GaitPosY;
OutPutPosY=InitPosY+BodyFKPosX+GaitPosZ;
在已知每条腿足部坐标位置,利用逆运动学求解各关节的旋转角度。
上述实施例和说明书中描述的只是说明本发明的原理和最佳实施例,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (6)

1.一种通用的足式机器人步态设计及控制方法,其特征在于,所述的方法包括步态设计和步态控制,具体包括以下步骤:
步骤1:步态设计,包括以下步骤:
1)确定一个步态周期中的总步数StepsInGait,该参数确定一个步态周期内的离散点总数量;
2)确定一个步态周期中在空中的步数NrLiftedPos;该参数确定一个步态周期内在空中摆动的离散点数量;
3)确定一个步态周期中在地面移动的次数TLDivFactor,该参数确定一个步态周期内的前进距离可以细分为多少次实现;
4)确定是否抬腿高度为最高高度的一半HalfLiftHeigth,该参数确定在一个步态周期内的空中点高度是否为一样高;
5)确定足式机器人各腿的步态周期的起始关键点位置,该步骤需要考虑机器人的平衡性,同时又要形成稳定的时序差;
步骤2:机器人控制方法,通过获取机器人每条腿在一个步态周期中每一步的足端位置坐标,根据运动学模型和逆运动学求解出腿部各个关节旋转的角度,具体包括如下步骤:
S1)、输入机器人的步态类型,然后输入一个步态周期内机器人在x方向的位移量InputPosX、一个步态周期内机器人在z方向的位移量InputPosZ、机器人行走高度InputPosY、一个步态周期内机器人在y方向的旋转角度InputRotY;
S2)、获取每一步在x轴的坐标值的变化量GaitPosX、每一步在z轴的坐标值的变化量GaitPosZ、每一步在y轴的坐标值的变化量GaitPosY、每一步在y轴的旋转变化量GaitRotY;
S3)、获取GaitRotY在x和z轴上带来的变化量cpr_x、cpr_z:
cpr_x=OffsetX+InitPosX+GaitPosX;
cpr_z=OffsetZ+InitPosZ+GaitPosZ;
BodyFKPosX=cpr_x–(cpr x*cos(GaitRotY)–cpr_z*sin(GaitRotY));
BodyFKPosZ=cpr_z–(cpr_x*sin(GaitRotY)–cpr_z*cos(GaitRotY));
BodyFKPosY=0;
式中,OffsetX为某条腿的的髋关节在机身坐标系下的x坐标值,InitPosX为初始站立状态下,该条腿足关节在腿部坐标系下的x坐标值,BodyFKPosX,BodyFKPosY,BodyFKPosZ分别为机器人机身旋转对机器人腿部足端坐标X,Y,Z产生的变化量;
S4)、得出每条腿足部坐标位置:
OutPutPosX=InitPosX+BodyFKPosX+GaitPosX;
OutPutPosZ=InitPosZ+BodyFKPosY+GaitPosY;
OutPutPosY=InitPosY+BodyFKPosX+GaitPosZ;
在已知每条腿足部坐标位置,利用逆运动学求解各关节的旋转角度。
2.根据权利要求1所述的一种通用的足式机器人步态设计及控制方法,其特征在于,所述的方法还包括:构建机器人坐标系,其中,并设定坐标系原点为机身中点,x轴为水平方向,z轴为前后方向,y轴为上下方向。
3.根据权利要求1所述的一种通用的足式机器人步态设计及控制方法,其特征在于,所述的方法还包括:建立机器人每条腿的坐标系,单条腿坐标系的原点为髋关节与机身连接点,x轴为水平方向,z轴为前后方向,y轴为上下方向。
4.根据权利要求1所述的一种通用的足式机器人步态设计及控制方法,其特征在于,步骤S2)包括以下步骤:
a)、对确定机器人每条腿的运动顺序,并对其先后顺序进行标记;
b)、先确定当前步态步数,以及该步态周期中在空中的步数;
c)、若当前步态步数与相应腿序号之间的差值=0,且在空中的步数=1,则:
GaitPosX=0;
GaitPosY=-InputPosY;
GaitPosZ=0;
GaitRotY=0。
5.根据权利要求4所述的一种通用的足式机器人步态设计及控制方法,其特征在于:步骤S2)中,在步骤c)后还包括以下步骤:
d)、若该步态周期中,有2步是在空中的,且当前步态步数与相应腿序号之间的差值=1,或当前步态步数与相应腿序号之间的差值=-(StepsInGait-2),则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=-3*InputPosY/(3+HalfliftHeight);
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor;
式中,StepsInGait为一个步态周期中包括的步数,HalfliftHeight为抬腿高度。
6.根据权利要求5所述的一种通用的足式机器人步态设计及控制方法,其特征在于:步骤S2)中,在步骤d)后还包括以下步骤:
e)、若该步态周期中,有5步是在空中的,且当前步态步数与相应腿序号之间的差值=2,或当前步态步数与相应腿序号之间的差值=-(StepsInGait-2),则:
GaitPosX=InputPosX/2;
GaitPosY=-InputPosY/2;
GaitPosZ=InputPosZ/2;
GaitRotY=InputRotY/2;
否则:
GaitPosX=InputPosX/TLDivFactor;
GaitPosY=0;
GaitPosZ=InputPosZ/TLDivFactor;
GaitRotY=InputRotY/TLDivFactor。
CN202011544286.1A 2020-12-24 2020-12-24 一种通用的足式机器人步态设计及控制方法 Active CN112596530B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011544286.1A CN112596530B (zh) 2020-12-24 2020-12-24 一种通用的足式机器人步态设计及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011544286.1A CN112596530B (zh) 2020-12-24 2020-12-24 一种通用的足式机器人步态设计及控制方法

Publications (2)

Publication Number Publication Date
CN112596530A CN112596530A (zh) 2021-04-02
CN112596530B true CN112596530B (zh) 2022-08-05

Family

ID=75200587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011544286.1A Active CN112596530B (zh) 2020-12-24 2020-12-24 一种通用的足式机器人步态设计及控制方法

Country Status (1)

Country Link
CN (1) CN112596530B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151859A (en) * 1989-06-29 1992-09-29 Honda Giken Kogyo Kabushiki Kaisha Legged walking robot and system for controlling the same
CN103197671A (zh) * 2012-01-04 2013-07-10 中国人民解放军第二炮兵工程学院 一种仿人机器人步态规划及合成方法
CN104331081A (zh) * 2014-10-10 2015-02-04 北京理工大学 一种双足机器人斜面行走的步态规划方法
CN105773618A (zh) * 2016-04-21 2016-07-20 奇弩(北京)科技有限公司 一种六足机器人行走的实现方法
CN109709967A (zh) * 2019-01-22 2019-05-03 深圳市幻尔科技有限公司 机器人低运算要求的动态步态的实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151859A (en) * 1989-06-29 1992-09-29 Honda Giken Kogyo Kabushiki Kaisha Legged walking robot and system for controlling the same
CN103197671A (zh) * 2012-01-04 2013-07-10 中国人民解放军第二炮兵工程学院 一种仿人机器人步态规划及合成方法
CN104331081A (zh) * 2014-10-10 2015-02-04 北京理工大学 一种双足机器人斜面行走的步态规划方法
CN105773618A (zh) * 2016-04-21 2016-07-20 奇弩(北京)科技有限公司 一种六足机器人行走的实现方法
CN109709967A (zh) * 2019-01-22 2019-05-03 深圳市幻尔科技有限公司 机器人低运算要求的动态步态的实现方法

Also Published As

Publication number Publication date
CN112596530A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
KR100824179B1 (ko) 보행식 이동 로봇의 동작 제어 장치 및 동작 제어 방법,및 보행식 이동 로봇을 위한 동작 유닛 생성 방법
KR100718479B1 (ko) 로봇의 보행 제어 장치 및 보행 제어 방법
US8423183B2 (en) Robot and method of controlling the same
WO2017181976A1 (zh) 提高六足机器人行走稳定性的步态规划方法
KR100959472B1 (ko) 로봇 장치 및 로봇 장치의 제어 방법
KR100837988B1 (ko) 각식 이동 로봇을 위한 동작 제어 장치 및 동작 제어방법, 및 로봇 장치
KR100937268B1 (ko) 다리식 이동 로봇 및 그 동작 제어 방법
CN108638019B (zh) 一种可变形仿生轮腿机器人及其控制方法
Kamedula et al. On the kinematics of wheeled motion control of a hybrid wheeled-legged centauro robot
CN105965506A (zh) 一种基于遗传算法的人形双足机器人步行姿态控制方法
Gong et al. Bionic quadruped robot dynamic gait control strategy based on twenty degrees of freedom
US8301303B2 (en) Robot and method of controlling the same
CN112744306A (zh) 一种基于运动学的四足爬壁机器人转身步态控制方法
CN112596530B (zh) 一种通用的足式机器人步态设计及控制方法
JP4475708B2 (ja) 脚式移動ロボット及びその動作制御方法
US8498742B2 (en) Robot and method of controlling balance thereof
Zhang et al. An evolutionary algorithm for trajectory based gait generation of biped robot
JP3674779B2 (ja) 脚式移動ロボットのための動作制御装置及び動作制御方法、並びにロボット装置
JP4540156B2 (ja) ロボットの重心位置制御方法
CN105438305B (zh) 一种仿生六肢昆虫机器人的使用方法
Wyeth et al. Evolving a locus based gait for a humanoid robot
CN114454983B (zh) 一种四足机器人转弯控制方法及系统
CN110077487A (zh) 一种仿蜘蛛八足机器人
JP3568527B2 (ja) 移動体装置
Li et al. Structural design and kinematics analysis of a multi-legged wall-climbing robot

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant