×
工业控制 > 工业自动化 > 详情

双臂单腿跳跃机器人的实时控制技术研究

发布时间:2021-02-23 发布时间:
|
与倒立摆相似,单腿跳跃机器人是自然不稳定系统,在实际的规划与控制中,需要保证控制实时性。这使得实时控制研究显得至关重要。

Windows系统本身不是实时操作系统,但是,对于采用上/下位机模式(如PC+DSP)的控制系统,因为下位机的定时精度高且响应快,通过合理的设计,同样可以保证整个控制系统的实时性。

针对单腿跳跃机器人控制的要求,重点研究了实时控制技术,并给出具体控制方案。在联机调试之前,先设计实验验证该控制方案的可行。实验结果说明控制系统的实时性能满足设计要求。

1 机器人控制系统的搭建

本文所研究的是一种新型弹性单腿机器人,该机器人采用双臂驱动,弹性伸缩腿中不安装驱动部件,系统依靠内部动力学耦合实现动态站立平衡、起跳和稳定连续跳跃。其机械本体如图1所示。

两个直流伺服电机安装在机器人的臂端,电机的输出经由钢丝传到机器人肩部,从而实现臂的摆动。电机自带编码器,测臂的摆角;机器人肩部装有陀螺仪,测身体的倾角;腿部有一直线位移传感器,用以测腿的伸缩长度。

考虑到本双臂单腿跳跃机器人主要为研究先进控制理论和方法提供实验平台,其控制系统采用上/下位机的模式,主要由PC机、DSP(Digital Signal Processor)及机器人本体上的各传感器组成,系统的结构框图如图2所示。

PC与DSP之间通过CAN总线来通信。CAN适配卡采用周立功公司的PCI9810。PC作为上位机可充分利用其现有的软件工具和开发环境,方便实现多任务管理;DSP(TI公司的TMS320F2812)作为下位机则利用其高速运算和精确定时。

2 Windows下的实时控制

这里希望在目前使用最广的Windows平台上开发实时控制软件,以充分发挥其图形功能和丰富的软硬件支持,减少开发难度,提高软件的通用性。所以在上位机采用的操作系统仍然是Windows系统。

但是,Windows并非一种实时操作系统,或者仅能称为“弱实时”。他是基于消息驱动机制的操作系统,一旦计算机的CPU被某个进程占用,或系统资源紧张时,任何其他消息或进程都将被暂时挂起而无法实时处理。

所谓实时,就是要在特定的时间间隔内完成特定的任务。参考二级倒立摆控制周期(6~10 ms)和Raibert的SLIP跳跃机器人控制周期(6 ms),把控制周期定为5 ms。

2.1 控制方案

精确定时是实时控制中的关键指标,若不对操作系统进行扩展,Windows能达到的定时精度最高仅为1 ms,受其他任务干扰时精度会更低。如果仅用PC控制机器人,是无法保证实时性的。

然而,对于上/下位机模式的控制系统,定时精度可以由下位机来保证,上位机只需在某个时间范围内完成任务并响应即可。从某种意义上说,实时性其实是一个靠近下位的概念,生物具有高超的协调能力并不总需处于最上位的大脑的时刻关注。

大脑也是个多任务系统,他总会被其他的事情干扰,但要进行某一控制时,他须具备2点:

(1)及时响应;

(2)一次给下位足够的信息和权限以便委任之。

这里要注意(1)中“及时”这个概念,他指上位可在某个时间范围内作出响应,而不是在某个精确的时间点。而且,当(2)成立时,上位机甚至可以在若干个控制周期里不响应,控制仍能正常进行。

基于以上控制思路,现有配置的Windows平台下PC机完全可以胜任上位机工作。

具体控制方案为:

下位机(DSP) 精确定时,决定控制系统的控制周期,进行底层的伺服控制。

上位机(PC) 不主动动作,只在接收到状态量时才运算并发送控制量。通过状态预估,一次发送几个控制量,包含了对未来状态的控制。使用多线程技术,并使用Windows下最高精度的定时器来专门负责发送,保证上位响应的及时。

上/下位机协同工作过程的示意如图3,其中T代表控制周期。

2.2 提高实时性的关键技术

在实际的机器人控制软件设计中,采用几项提高软件实时性的关键技术,他们的引入,可以最大限度地发挥Windows的实时潜能,让上位机更好地按照上节给出的控制方案运行。

(1)进程及线程技术

进程是程序在计算机上的一次执行活动。当运行控制软件,其进程就被启动。

Windows虽然不是实时操作系统,但他的进程管理还是有优先级之分的。高优先级进程优先运行,只有当高优先级进程不运行时,才调度低优先级进程运行。

Windows下进程优先级有:实时、高、高于标准、标准、低于标准、低6个等级,一般程序的默认优先级为“标准”。

这里可以API函数SetPriorityClass()将控制软件进程设置成“实时级”。实时级进程能占用更多的CPU资源,这意味着减少Windows下其他任务对机器人控制的影响。

Windows下,一个进程可以包含若干个线程,这就是多线程技术,他让控制软件可以同时做几件事。

由图3可见,软件中主要有3个线程:线程1完成控制量的发送;线程2完成数据的接收与控制量运算;线程3负责人机交互。

(2)多媒体时钟

多媒体时钟是Windows下精度最高的定时器。在控制软件中,他负责发送控制,线程1就是由多媒体时钟建立的,他使上位完成运算任务后,能把已得的控制量及时发送给下位。

(3)缓冲技术

这是对提高实时性效果最显著的技术,他包含预估工作,因为一次发送的多个控制量里有未来量。状态的微分值(一阶、二阶),是估计未来、预先给出控制量的基础。

缓冲区设在下位,只要上位一次给下位的控制量足够充足,即使上位有若干周期不发送控制量给下位也不会影响整体的控制效果。这为上位机争取了更多的时间用于复杂控制算法的解算,也提高了抗干扰的能力。

以缓冲区大小等于4为例,缓冲机制的过程如图4所示,其中T代表控制周期。可以看到即使PC有4个周期不发控制量,DSP依然能够读到所需的控制量(缓冲区中默认的无控制量状态是零)。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于ANSYS的火车快装系统液压缸支撑架力学性能仿真