当前位置:首页计算机论文计算机理论 → 文章内容

旋转足式机器人步态控制器设计

减小字体 增大字体 作者:应振强 张林 吴振宇  来源:本站整理  发布时间:2019-9-28 15:08:10


本学术论文《旋转足式机器人步态控制器设计》,转载自学术期刊《电子技术与软件工程》2014年20期 发表过的职称 论文,原文作者:应振强张林吴振宇,由中国学术论文网编辑整理录入,仅供您在旋转足式机器人,步态,六足机器人等方面参考学习。

应振强张林吴振宇

摘 要 为实现旋转足式机器人的步态控制,本文提供了基于Freescale K60的一种相对易行的控制器设计方案。介绍了控制器任务调度方案、基本模块设计、步态算法设计,以及通讯方案。

【关键词】旋转足式机器人 步态 六足机器人

足式机器人能够通过移动足灵活地调整行走姿态,具有较强的地形适应能力,但往往速度慢,负载少;轮式机器人解决了以上问题,但往往只能应用于平地运输。UlucSaranli提出了一种旋转足式的机器人[1],使得其能够兼得两者的优点,不仅可以全地形奔跑,还可以越障、爬梯、跳跃、甚至用两腿直立行走。但与此同时,灵活性也带来了控制的复杂性,为了使机器人完成复杂多样的任务,需要编写方便扩展的软件。本文旨在提供旋转足式机器人步态控制器设计的一种可行方案。

1 系统结构

要完成爬梯,越障,运动物体跟随、地形探测等任务,系统需要配备摄像头,如果要完成更丰富的任务,就需要安装更多的传感器。应付诸多的数据需要强劲的处理器,应采用嵌入式技术来解决,而对于完成步态控制则完全可以通过一款性能较低的处理器,无需嵌入操作系统,直接通过裸机实现。

本系统采用S3C6410处理视觉和行动策略选择,采用FreescaleK60作为步态控制器,通过串口获取上层命令,执行相应行动策略。位置测量方案采用霍尔传感器AS5040,电机驱动芯片采用BTS7971。Freescale公司Kinetis K60系列单片机,工作电压1.71-3.6V,采用ARM Cortex-M4内核,其性能可达到1.25 Dhrystone MIPS /MHz,完全可以胜任步态控制的工作。另一方面,通过将步态执行机构分离出来,使得步态控制不会受其他无关任务干扰,也提供了统一的接口,可以与各种上层嵌入式系统连接,两层之间相互独立,更加灵活。

本系统的结构框图如图1。

2 模块管理者

本系统采用RHexLib的模块管理者机制作为任务调度的软件实现方案。在RHexLib中,模块定义为需要周期性调度的任务单元,通过模块管理者管理各个模块的活动,实现任务调度。模块通过模块名和模块号标识,具有两个属性和三个状态。如果模块是可以被多个其他模块使用的,则为多用户性的,否则默认为单用户性的。另一个属性轮询性表明模块是否需要频繁被调用。

一个创建的模块可能处于未初始化、未激活和活动状态。它们之间的转换通过模块管理者的添加模块、激活模块,挂起模块和释放模块四种操作实现。

下图为一个模块的生命周期示意图2。

RHexLib对模块的管理类似操作系统的进程管理,模块的三个状态可以对应地看做进程的阻塞、就绪、执行状态。同时也存在着以下区别:

(1)模块创建后进入未初始化状态,而进程创建后进入就绪状态。

(2)一个时刻只有一个进程处于执行状态,而可以有多个模块处于活动状态,由模块管理者决定唯一的模块占用CPU。

在系统主循环里,模块管理者不断地顺序执行活动的轮询性任务,同时周期性地执行非轮询性任务。模块管理者的机制,一方面便于充分利用CPU,通过减少CPU空闲等待时间提高CPU的利用率;另一方面也使得工程代码也具有了模块性,具有便于管理的优点。

3 基本模块

为了完成步态,需要一系列模块之间相互协作,下面介绍完成步态所需的基本模块。

位置读取模块:本系统采用霍尔传感器AS5040测量位置,由于电机携带减速箱,而霍尔传感器安装在电机内侧,所以无法直接测量外侧足的位置。需要确定足的初始位置,通过传感器数据计算相对偏移位置,得到足当前的绝对位置。足初始位置的校准通过堵转检测模块实现。

速度滤波模块:对测得的速度值采用加权递推平均滤波算法,以获得可靠的速度值,防止异常值影响控制的稳定性。

堵转检测模块:如果速度的绝对值在小范围内持续的时间达到了一定时间值的话,则可判定为堵转。通过堵转检测可以进行碰撞检测,从而感知地形。

电机控制模块:本系统采用BTN7971B制作电机驱动,在软件上,通过调整驱动电机的PWM输出占空比大小和设置方向IO输出电平的高低来实现对电机的控制。

位置控制模块:电机控制模块结合位置读取模块得到的位置信息,采用PID控制算法对电机进行控制,使得电机可以到达指定的位置。

4 步态分析

在RHex - A Simple and Highly Mobile Hexapod Robot一论文中,UlucSaranli对RHex进行了建模和运动分析,RHex的行走步态是一种交替三脚架控制:一侧中间足和另一侧的前后两足构成一个三脚架,六足机器人具有左右两个三角架,任意时刻只需有一个三脚架即可支撑机器人。在一个三脚架支撑地面时,另一个三脚架摆动,而在支撑三脚架离开地面时,另一个三脚架落地做支撑,两组三脚架交替进行支撑和摆动,通过改变两侧足的摆动方向控制机器人的行走。两侧足同向进行前进后退,两侧足反向即可进行原地左右转。

其运动分析如图3。

本系统采用一种特殊的交替三脚架控制方式,这种方式易于编程实现。其特点在于每隔半个周期切换一次速度,两组足同时切换。如图4所示。

5 步态实现

UlucSaranli在Object-Oriented State Machines论文中提出了一种面向对象的状态机实现,这也正是RHexLib中的步态实现的解决方案。这个工具使得状态转换图可以很清晰地转换成代码,实现对具有分立状态的系统,通过监视触发事件进行相应的状态转换。基于这种模式,可以方便地编写状态机协调机器人各个模块完成步态执行。

本系统没有移植UlucSaranli的状态机编程工具,而是采用一种较直观简洁的方式进行控制。抓住六足移动的特殊姿态,定义姿态间的切换为一个动作,而步态为特征姿态的不断转换,即一系列动作的组合。本系统将动作作为控制的最小单位,通过设定各个足的目标位置和旋转方向,由动作执行机构根据动作执行时间计算每一时刻应到达的位置并调用位置控制模块,即可执行一次动作。通过修改动作执行时间可以控制机器人的速度。

结合前面的运动分析图,特征姿态是六个足同时落地的时刻,行走只涉及两个姿态的切换,只需要反复执行两个动作即可实现。

对于其他步态也可以按照找到特征姿态,划分动作来实现。这种控制方式具有简单直观,易于编程的优点。

6 通信方案

完成了基本步态的实现后需要指定底层步态控制器与上层的通信协议,本系统两层采用以下方案,如表1。

远程控制模块通过开始符和结束符确定一条命令的内容,一条命令内容包括一个字节的命令符和变长的参数,参数可以由上层采用sprintf函数打印到字符串中,远程控制模块通过sscanf函数将字符串中的参数采用相同的格式提取到变量中,由于上层和下层都采用C实现,可以通过包含相同的头文件进行命令符,命令格式的匹配。

为了方便地观察机器人的运行情况,可以先独立地对下层控制器进行调试,本系统使用蓝牙进行无线调试,通过发送动作控制指令进行对机器人的控制,并定时发送请求数据指令访问机器人相关的数据。

7 仿真方案

本系统采用Webots进行仿真测试。Webots是由瑞士联邦技术研究院研制的一款专业多功能机器人研发软件。如今,世界上已有1146多所大学和科研机构采用Webots系列软件进行机器人相关技术的研究。得益于其集建模、编程、仿真、程序移植为一体的优点,我们可以对步态算法进行测试,并快速移植到实体机上。如图5、图6所示。

通过仿真得到每一时刻两组足位置的实际值,可以看出仿真结果比较理想,移植到样机上效果良好,机器人运行较为平稳。

8 结束语

本文介绍了一种相对易行的步态控制器设计方案。本系统采用的控制器任务调度

[1] [2]  下一页