浅谈双足机器人的思路和算法

浅谈双足机器人的思路和算法


首先,双足机器人走路的过程,最直观地看是两个过程:
迈左腿,迈右腿,由此形成迈左腿,迈右腿,再迈左腿,再迈右腿的周期.
加入对重心的考察,则是:
重心右移,迈左腿,重心左移,迈右腿,由此形成重心右移,迈左腿,重心左移,迈右腿,重心再右移,再迈左腿,重心再左移,再迈右腿的周期.
再加入对转向的考察,转向可以分为两个部分:
正在迈的腿转向和另一条不迈的腿转向
首先解决迈腿的问题:
迈腿的过程有两个:抬腿落腿、申腿缩腿
迈腿的过程,最需要关心的是足端的位置.
建立坐标系进行研究:
以双足机器人的髋部的几何中心作为原点,重力的反方向作为z轴,前进方向作为y轴,则:
抬腿落腿的过程关心的是足端z的变化
申腿缩腿的过程关心的是足端y轴的变化

在这里插入图片描述
舵机和结构件可以抽象为杆和转轴,杆的两端是两个电机的转轴,把结构简化成转轴和杆是不会引入原理误差的,只要结构是刚性的,就可以完全代表结构所对应的机械关系.
当不考虑转向和重心的调整时,影响电机末端的电机有两个:
分别是髋关节的电机和膝关节的电机,他们的转角是θ1和θ2,当足端坐标用(yF,zF)表示时(只考虑侧视图),则找到θ1、θ2和yF、zF之间的对应关系,就可以通过控制θ1和θ2来控制足端位置

在这里插入图片描述
他们的关系是这样的
在这里插入图片描述

其中tt2是θ1,tt3是θ2,ye是yF,ze是zF,di是连杆的长度
但是这是简化运算,就是不考虑其他舵机影响的,低速直行的时候还能凑合用,高速和转弯性能就很差了.

如果还希望足端是水平地踩在地面的话,还可以计算出θ3,其中tt5就是θ3
说髋关节不太准确,其实是这样对应的

θ1不是最上面的那个而是第二个,上面的两个合在一起可以看做有两个自由度的髋关节,θ2可以看做膝关节,θ3和上面的一个可以看做有两个自由度的踝关节,因为是以顶部作为坐标原点,所以在这个坐标系里顶部是一定和坐标系的y轴平行的,这时保证脚板也平行于y轴,当脚板平踩在地面上时,地面和脚板看做重合,进而地面也平行y轴,顶部也就平行地面了

再对刚才两个没有标号的舵机进行标号,最上面的唯一绕z轴旋转的舵机转角标为θz,下面唯一绕x轴旋转的舵机标号为θx,之前研究的θ1-3其实是沿y轴旋转的三个舵机,他们可以看做一组,相互之间的耦合关系已经研究明白,但是θz、θ1-3、θy这三者之间的耦合关系还没有研究,姑且当做他们之间是独立的(当转角都较小的时候误差小,转角大则误差大),将他们三者独立看时,则θz负责旋转的过程,θ1-3负责迈腿的过程,θy负责重心左右移动的过程.
在规划步态时,θz和θx直接控制,而θ1-3则由yF,zF间接控制,这样一来,调动作的任务由调θz、θx、θ1-3五个量变为了调θz、θx、yF、zF四个量,少了一个量是因为默认了足端平行,当需要足端不与地面平行时,则再加入足端修正θcompensate,直接和计算出的θ3相加,这时控制量又变成了5个量.
在这里插入图片描述
其实之前的工作就是在调这5个量,所以说本质还是调动作组,只不过从[[θz、θx、θ1-3]的动作组变成了[θz、θx、yF、zF、θcompensate]的动作组.
这样做有什么好处呢,其实好处就是把足端坐标和机身姿态由间接控制量变成了直接控制量
把动作组的舵机 调节转换成具体的关节部位量转成,当足悬空时,调整足端修正θcompensate就是调整足端的平面,当足落地时,调整θcompensate就是调整顶部的倾角,这样一来,足端位置,顶部倾角,足端平面倾角都变成了直接控制量,加上θz可以直接控制转向,θx可以直接控制重心左右变换,这一套新的动作组就实现了基本的控制功能.
现在没有引入动力学,之前都没有考虑质量、力、加速度的问题,也没有考虑机器人会摔倒,需要保证稳定性,下面说一下动力学问题.
动力学根本上是要解决稳定性问题,重心其实不是影响稳定性的唯一因素,影响稳定性的因素主要有三个:重力、惯性力、转动力矩,前两者会引起平移性质的失稳、后者会引起转动性质的失稳
对抗重力和惯性力引起摔倒倾向的因素是脚板提供的支持力,对抗转动力矩引起摔倒倾向的因素是脚板提供的摩擦力
对当前的机器人来说,转动力矩引起的摔倒倾向可以先忽略,在低速时,只考虑重力,在高速时,要考虑重力和惯性力,(惯性力是用质量乘以加速度得到的虚拟力).
一般认为,重力和惯性力的合力在地面的投影如果落在脚板范围内,机器人是稳定的

在这里插入图片描述
计算重心一般有两种方法,一种是倒立摆模型,一种是连杆模型
倒立摆模型是把腿部简化为没有质量轻杆,而将机器人的全部质量集中于轻杆之上,该模型适合于腿部惯量小的机器人,我们的机器人主要质量都集中于腿部,所以用该模型会有非常大的误差,可以pass.
在这里插入图片描述
另一种模型则是连杆模型,该模型把质量集中在每个杆的重心位置,该杆的质量记为mi,位置记为pi,则总的重心位置就是每个杆的重心位置的质量加权平均值.
在这里插入图片描述
在这里插入图片描述
这种建模方法适合质量集中在连杆的机器人,因此我们可以采用这种模型来计算重心,计算重心需要两个要素,就是各杆的位置和质量,质量由称量得到(这就是为什么组装前要上称),在连杆是刚体的情况下,位置由舵机的转角决定.
把单腿所有的舵机转角放在一个向量里面,记为θ = [θz,θx,θ1,θ2,θ3],把各杆重心所在的位置也放在一个向量里面,记为p = [p1,p2,p3,p4,p5,p6].
现在要找到一个函数关系,记为p = f(θ),然后由重心计算公式,得到重心 P = fθ
找从转角到重心的关系容易,找由重心到转角的关系就比较困难了
实际上 p = f(θ) 的问题,我在最开始的matlab建模里面已经解决了,所以P = fθ)的问题也是好解决的,公式太复杂我就不发了
P = fθ)的关系式,只能用于规划好步态,再验证步态是否稳定,想要直接规划重心,则需要找到θ = f-1(P总)的关系,其中f-1是f的反函数,这个函数是多解的,多解到令人发指,所以大多数人的做法,都是先按照重心的大致趋势规划步态,再用重心计算公式来验证,但是多解的问题,可以通过增加约束条件来限制解的范围,找好约束条件的话,效果也是不错的,就是约束条件需要比较多.
其实编完动作组用手晃两下就是物理上的验算了(笑),还不带误差的,比算出来的好多了,不过还是应该向理论进发,才能有更广阔的成长空间(更好写论文),就比如说把稳定裕度限制在一个范围的话,动作组可调的范围也变小了,然后就可以从调动作组进化为调一个范围内的动作组.

支付宝打赏:13502895966
在这里插入图片描述
欢迎加群讨论交流~在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值