薛文超 胡立坤
(广西大学电气工程学院 南宁 530004)
腿式机器人具有出色的机动性和地形适应性,其中的六足机器人运动更加稳定,能够适应各种复杂、未知的地形[1~3],具有非常广阔的应用前景,成为学术界研究热点。六足机器人是一种非线性,强耦合的多输入多输出(MIMO)系统[4],在运动中与环境频繁交互,如何有效且尽可能简单地控制六足机器人成为许多学者的研究目标。
虚拟模型控制(Virtual Model Control,VMC)[5~7],被广泛应用于双足机器人和四足机器人运动控制中,该方法通过直接在机器人的目标位置施加虚拟力[8~9]控制机器人的运动,具有配置灵活、设计直观的特点。但是,传统的VMC 方法需要构造一个与机器人腿的数量相关的多维约束矩阵,对于六足及以上的机器人而言,计算略显复杂[10]。本文仅对机器人单腿使用VMC,大大简化计算复杂度,通过几何的方法约束机器人各腿的运动,提出适用于六足及以上多腿的腿式机器人虚拟模型控制方法。
本文使用Webots 软件搭建的六足机器人模型如图1 所示,该模型包括1 个躯干与6 条腿,机器人腿部结构仿照六足昆虫腿部设计,含1个基节、1个转节、1 个股节、1 个胫节和1 个足;每条腿含有3 个自由度:1 个偏航转关节,1 个滚转股关节和1 个滚转胫关节。基节固定于躯干上,每条腿基节安装方向与躯干正方向的夹角为q0,自左前腿至右后腿,q0分别为60°、90°、120°、-60°、-90°、-120°。机器人躯干装有一个IMU传感器,每足安装一个接触传感器。
图1 六足机器人模型
模型的主要参数在表1 中列出,在下文的分析和计算中,躯干与腿部均视为刚体,忽略腿部的质量。
表1 六足机器人模型主要参数
机器人运动控制的最基本前提是建立机器人运动学模型。以机器人躯干底面的几何中心为原点,机器人正方向为x 轴方向,y 轴垂直于躯干平面指向天空,通过右手定则判定z轴方向,建立躯干坐标系{B},如图2所示。
图2 机器人坐标系
图中(x0,z0)表示基节安装点的位置,w,h,l分别表示足端相对于基节安装点的x,y,z 方向的距离。相应的足端在{B}中的位置p可以表示为
di表示腿部各连杆的长度,si,sij,ci,cij分别表示sin(qi),sin(qi+qj),cos(qi),cos(qi+qj)。
对式(1)求偏微分,得到机器人足端的速度雅可比矩阵:
式(2)中符号的含义与式(1)相同。根据机械臂雅可比矩阵在末端执行器力和关节力矩之间的定量关系:
在已知机器人末端执行器输出力f 的情况下,机器人腿部各关节的输出扭矩t 可以通过式(3)计算得出。
机器人步态规划是机器人完成对地形适应最重要的技术[11~12],其中三角步态是一种最常见的六足机器人步态[13]。在三角步态中,六足机器人的腿分为两组,本文将左前腿(LF)、右中腿(RM)和左后腿(LH)分入A 组,右前腿(RF)、左中腿(LM)与右后腿(RH)列入B组,如图3所示。
图3 三角步态的腿部分组
机器人以三角步态行走时,一组腿处于站立状态,以支撑机器人躯干,另一组腿向前摆动使机器人前进,两组腿交替处于摆动和站立状态。本文称摆动腿处于摆动相,站立腿处于站立相,两相位的占空比均为0.5,即,站立相持续时间与摆动相持续时间相同,均为Ts。本文采用三角步态对六足机器人进行分析和控制。
VMC 方法在机器人身上设置虚拟机构,通过虚拟机构产生的虚拟力“拉”动机器人按照期望的轨迹运动,这些虚拟力实际是各关节电机输出扭矩的等效力。通常虚拟机构设置在机器人的末端执行器,以便直观地控制机器人运动[14]。在六足机器人运动中,腿部处于两种不同的运动模式:摆动和站立,根据运动的特点分别为其设计不同的VMC策略。
3.2.1 摆动相VMC
摆动腿控制机器人的前进,要求使足端遵循期望的轨迹移动。腿进行摆动运动时,其基节相对于躯干是静止的,将摆动腿视为倒立安装的机械臂[15],机械臂的末端执行器即为机器人的足。在足端设置3 个虚拟弹簧-阻尼机构,机构所产生虚拟力的方向与坐标系{B}的坐标轴方向相同,如图4所示。
图4 摆动腿虚拟模型控制
摆动腿的虚拟力通过式(4)计算得出:
式中Fx,Fy,Fz分别表示x,y,z 方向的虚拟力,kswi为摆动相虚拟弹簧的刚度系数,bswi为摆动相虚拟阻尼的阻尼系数,l,ld,l̇,l̇d分别表示足端在x方向的当前位置,期望位置,当前位置的导数和期望位置的导数,h 表示y 方向的位置,w 表示z 方向的位置。
3.2.2 站立相VMC
对于站立腿而言,在摩擦力的作用下,站立腿足端相对于地面静止不动,将站立腿视作正向安装的机械臂,则基节为机械臂的末端执行器。在基节设置3个虚拟弹簧-阻尼机构,方向与坐标系{B}的坐标轴相同,如图5所示。
图5 站立腿虚拟模型控制
站立腿的任务是保持躯干在运动中的高度和位姿平衡。采用三角步态的六足机器人,在运动过程中至少有3 条腿保持站立,这些腿并不会处于躯干的同一侧,根据站立腿的基节位置可以确定躯干的高度和姿态。
站立腿输出的虚拟力通过式(5)计算:
式中,n 表示站立腿的数量,采用平均分配的方式补偿躯干重量Mg。ksti为站立相虚拟弹簧的刚度系数,bsti为站立相虚拟阻尼的阻尼系数,其他符号与式(4)中含义相同。
为了实现六足机器人三角步态行走,机器人腿部状态在摆动相和站立相间不断切换,需要设计状态机以实现机器人腿部状态切换并协调多腿的运动。
六足机器人的状态机如图6 所示。在六足机器人行走过程中,每条摆动腿进行相对独立的运动,当摆动腿的足端接触地面时,即可认为摆动相结束,腿部切换为站立相。
图6 六足机器人状态机
腿由站立相切换到摆动相则需要考虑机器人整体的运动状态。只有当另一组的3 条腿全部由摆动相转为站立相后,这一组腿才由站立相转为摆动相。
图7 为六足机器人三角步态控制框图,主要包括VMC 控制和状态机两个部分,机器人将控制信息和足端触地信息传给状态机,状态机判断腿部所处的相位,相应的VMC 控制程序根据机器人末端执行器位置输出各电机扭矩,实现机器人运动。
图7 六足机器人三角步态控制框图
仿真过程中所使用的参数如表2所示。
表2 仿真中所使用的参数
本实验设置的仿真环境和实验过程如图8 所示,六足机器人置于平坦的地面上,要求其行走并爬上斜坡。初始时刻机器人的躯干高度设置为0.185m,俯仰、滚转、偏航角度均为0。
图8 仿真实验截图
仿真实验期间机器人的主要数据如图9,自上至下依次为本次实验的地形信息,机器人在实验中的前进速度,躯干高度,偏航角,滚转角,俯仰角;最上方图的横坐标表示水平方向的距离,第2 到第6幅图的横坐标表示实验运行的时间。红色曲线表示设定值,黑色曲线表示实时值。
图9 机器人三角步态行走实验主要数据曲线
0 时刻,机器人站立于地面上,5s 时机器人开始以三角步态前进,躯干高度和速度迅速达到设定值,约22s 时机器人开始爬坡,各项数据在坡度干扰下均有波动,约32s 后机器人爬上斜坡,各项数据恢复平稳。
图9 表明,所设计的控制器可以使六足机器人在平坦的地面和斜坡上平稳地行走,机器人在行走时保持稳定的躯干姿势,能够准确地跟踪速度和躯干高度的设定值,在遇到斜坡导致的地形干扰时,仍可以保持相对稳定。
根据六足机器人在行走过程中腿的状态将腿的运动周期分为摆动相和站立相,为两种相位采用不同的VMC 控制策略,站立相腿维持机器人躯干的高度与姿态,摆动相腿控制机器人移动。通过状态机完成腿部状态切换,协调机器人运动。仿真结果表明,六足机器人能在地面和斜坡上实现稳定的三角步态行走,并具有一定的抗地形干扰能力。所提出的基于VMC 的控制器具有较低的计算成本,不需要精确的建模,并且易于解耦。低廉的计算成本使得将人工智能算法集成到六足机器人中成为可能。