双足步行机器人的动作主要是通过17个舵机共同协调转动来得以实现的。每个动作包含1个速度位和17个舵机的角度值,算作一帧动作。一个基本动作包含若干帧动作,这些帧也就是字符都存放在相应数组中,通过上位机将数据完全发送到下位机,如图5-1所示。
图5-1 上位机控制平台显示动作数据
对于实验所运用到的双足步行机器人的基本动作可以分解为如图5-2所示动作。
图5-2 机器人基本动作的分解
初始动作可以作为双足步行机器人的复位动作,也就是任何基本动作的开始和收尾都是以此动作为结尾。这里我们选择初始位置(Homeposition)为双足步行机器人竖直站立的姿态,如图5-3所示。因此,双足步行机器人的基本动作设计主要放在了除了初始位置的其他帧中。
复杂动作莫过于双足步行机器人的行走,目前世界上大多数双足步行机器人系统都采用ZMP作为稳定行走的判据。当双足机构处于动态平衡时,ZMP和脚底所受地面反力的压力中心(Center of Pressure,CoP)是重合的。因此可以根据检测到的地面反力信息,计算CoP,通过控制策略调整ZMP和CoP的位置,使两者重合,实现机器人的动态稳定行走。行走模型如图5-4所示。
图5-3 机器人初始位置
图5-4 ZMP行走模型示意图
根据力学原理可知,当物体处于静止状态时,其平衡的充要条件是其重心在地面上的投影落在其支撑面内,而广义地讲,当物体处于运动状态时,其平衡的必要条件是所受重力与惯性力的合力的延长线通过其支撑面内(该合力的延长线与支撑面的交点称为ZMP)。
以前实验室中传统的调节机器人的动作都是用手动调节上位机控制平台的滚动条控件来进行编写的,这样调节机器人的动作,对于单个机器人来讲,优点是精确,符合精确的步态发生模型的要求。例如实现双足步行机器人的行走,为了符合ZMP理论要求,需要精确地拖动上位机控制平台的滚动滑块来进行调解。
然而对于多机器人的动作协调设计,则需要有更加有效率的编写机器人动作文件的方式,而不能拘泥于以前的传统滚动条的编写方法。为了使机器人的动作协调设计得以顺利实现,新的机器人动作编写方法是必需的。
在研究本实验平台的双足步行机器人的动作当中,每台机器人的动作即使表达一样,但它们所对应的动作数据却不尽相同,这是由于每台机器人的初始位置所对应的动作数据不同,这是舵机本身性能所带来的无法避免的硬伤。换句话说,用17个舵机组成新机器人的初始位置数据就与其他17个相同性能品牌的舵机组成的已有机器人的初始位置不同。
在反复的学习与研究中,从双足步行机器人每帧的动作数据之间着手分析,得出了双足步行机器人新动作转化的公式。
在此令机器人实际动作时的舵机角度值(A1)与初始位置的角度值(H1)、机器人进行动作时舵机转动的角度值(R1)三者之间的关系,得出机器人实际动作时角度值关系公式:(www.daowen.com)
R1+H1=A1 (5-1)
在三个变量中,只有舵机转动的角度值R1是恒定不变的。这样就可以将公式进行转化,用以通过数学关系来寻找新机器人的动作数据与已有机器人的动作数据的关系。
令已有机器人实际动作时的舵机角度值(A1)与初始位置角度值(H1)、机器人进行动作时舵机转动的角度值(R1),那么可以将式(5-1)转化成
R1=A1-H1 (5-2)
再令新机器人实际动作时的舵机角度值(A2)与初始位置角度值(H2)、机器人进行动作时舵机转动的角度值(R2),这时对于新机器人来说,做相同动作时,R1与R2相同,即
R1=R2 (5-3)
则得到
A1-H1=A2-H2 (5-4)
调试机器人的新动作就是求新机器人的设计动作时的舵机角度值A2。
若已知某台双足步行机器人实际动作时的舵机角度值(A1)与初始位置角度值(H1)、通过调试机器人的三大步骤的第一步,可以得到初始位置角度值(H2),即得到动作转化公
式为
A2=A1-H1+H2 (5-5)
这个公式就是双足步行机器人新动作转化程序的算法精髓。
在VC++环境中,实现双足步行机器人新动作转化程序的主要函数如下:
由此,多机器人的新动作转化程序就实现了,程序运行界面如图5-5所示,大大提高新组装机器人的动作文件编写效率。这也为双足步行机器人的多智能体控制做出了支持,为机器人团队表演和“千手观音”表演做出了相应充足的准备。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。