《六足机器人设计参考.pdf》由会员分享,可在线阅读,更多相关《六足机器人设计参考.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要摘要六足机器人有强大的运动能力,采用类似生物的爬行机构进行运动,自动化程度高,可以提供给运动学、仿生学原理研究提供有力的工具。本设计中六足机器人系统基于仿生学原理, 采用六足昆虫的机械结构, 通过控制18个舵机,采用三角步态和定点转弯等步态,实现六足机器人的姿态控制。系统使用RF24L01射频模块进行遥控。为提高响应速度和动作连贯性,六足机器人的驱动芯片采用ARM Cortex M4芯片,基于C/OS-II操作系统,遥控器部分采用ARM9处理器S3C2440,基于Linux系统。通过建立六足机器人的运动模型,运用正运动学和逆运动学对机器人进行分析,验证机器人步态的可靠性。关键字:六足机器人
2、,Linux,ARM,NRF24L01,运动学AbstractBionic hexapod walking robot has a strong ability of movement, the use of similar creaturescrawling mechanism movement, high degree of automation, can be provided to the kinematics, theprinciple of bionics research provides powerful tool. Six feet in the design of this
3、 robot systembased on bionics principle, the mechanical structure of the six-legged insect, through 18 steeringgear control, use the gait, such as triangle gait and turning point to control the position ofsix-legged robot. Remote control system use RF24L01 rf modules. In order to improve theresponse
4、 speed and motion consistency, six-legged robot driver chip USES the ARM architecture(M4 chip, based on mu C/OS - II operation system, remote control part adopts ARM9 processorS3C2440, based on Linux system. By establishing a six-legged robot motion model, using forwardkinematics and inverse kinemat
5、ics analysis of robot, verify the reliability of the robot gait.KEYWORD:Bionic hexapod walking robot;Linux,ARM,NRF24L01;Kinematics目录目录1. 1. 绪论绪论2. 2. 六足机器人的硬件搭建六足机器人的硬件搭建3. 3. 操作系统的搭建操作系统的搭建4. 4. 六足机器人的步态分析与实现六足机器人的步态分析与实现5. 5. 总结与展望总结与展望1. 1. 绪论绪论1.1 多足机器人的发展状况目前,用于在人类不宜、不便或不能进入的地域进行独立探测的机器人主要分两种,一
6、种是由轮子驱动的轮行机器人,另一种是基于仿生学的步行机器人。轮行机器人的不足之处在于对于未知的复杂自然地形,其适应能力很差,而步行机器人可以在复杂的自然地形中较为容易的完成探测任务。因此多足步行机器人有广阔的应用前景,如军事侦察、矿山开采、核能工业、星球探测、消防及营救、建筑业等领域。在步行机器人中,多足机器人是最容易实现稳定行走的。在众多步行机器人中,模仿昆虫以及其他节肢动物们的肢体结构和运动控制策略而创造出的六足机器人是极具代表性的一种。六足机器人与两足和四足步行机器人相比,具有控制结构相对简单、行走平稳、肢体冗余等特点,这些特点使六足机器人更能胜任野外侦查、 水下搜寻以及太空探测等对独立
7、性、可靠性要求比较高的工作。国内外对六足机器人进行了广泛的研究,现在已有70多种六足机器人问世,由于六足仿生机器人多工作在非结构化、不确定的环境内,人们希望其控制系统更加灵活,并且具有更大的自主性。同时六足仿生机器人肢体较多,运动过程中需要实现各肢体之间的协调工作,如何方便可靠的实现这种协调,也是六足仿生机器人结构设计研究的一个热点。1.2 多足机器人的机构类型一般来说,腿的构造形式可分为昆虫类和哺乳动物类两种不同形式。昆虫类生物其腿的数目较多, 一般在四足以上;其腿分布于身体的两侧, 身体重心低,稳定性好,且运动灵活,但过低的重心不利于昆虫的越障能力 ;喃乳动物的行走腿则通常为两足或四足,且
8、腿多分布于身体下方,重心高,便于快速奔跑和越障,但在转向等需要灵活性的场合不如昆虫类有优势。无论是昆虫类亦或哺乳动物类的腿的构造方式,在机器人机构中的具体实现形式上,一般有以下几种方式:1.2.1 单连杆式出于简易灵活、价格低廉的角度考虑,一些功能单一、以娱乐性为主机器人的六条腿采用单连杆机构设计,并以较少的自由度实现了基本的步行功能,减少了执行电机,简化了设计。目前市面上有很多诸如此类的爬虫玩具,如图所示为常见的单杆式腿结构的机器人。但是,过于简单的腿部结构以及较少的自由度导致此类机器人难以完成复杂的动作,实用性较差。不过这类机器人也可以通过简单的控制完成倒退、转弯等功能,只是无法实现精确定
9、位。1.2.2 关节式出于简易灵活、价格低廉的角度考虑,一些功能单一、以娱乐性为主机器人的六条腿采用单连杆机构设计,并以较少的自由度实现了基本的步行功能,减少了执行电机,简化了设计。目前市面上有很多诸如此类的爬虫玩具,如图2一1所示为常见的单杆式腿结构的机器人。 但是, 过于简单的腿部结构以及较少的自由度导致此类机器人难以完成复杂的动作,实用性较差。不过这类机器人也可以通过简单的控制完成倒退、转弯等功能,只是无法实现精确定位。1.3 多足机器人的控制策略通俗地说,步态是行走系统抬腿和放腿的顺序。 从1899年Muybridge用连续摄影法研究动物的行走开始,人们对步行行走机构的步态进行了大量的
10、研究工作,尤其是近二三十年来,关于步态研究的重要成果不断涌现。下面介绍的是目前应用较广的几种多足机构行走方式。1.3.1 三角步态三角步态也称交替三角步态,是“六足纲”昆虫最常使用的一种步态,也被誉为最快速有效的静态稳定步态。大部分六足机器人都是从仿生学的角度出发使用这一步态。昆虫三角步态的移动模式较简单,非常适合步行架构的机器人的直线行走,行进速度也比较快。本论文也采用这种步态实现机器人的直线行走,该步态的具体方式将会在后文中具体给出。1.3.2 跟导步态通常,三角步态的研究通常都局限在平坦地面,并且假设对于不平地面也是合理的。然而随着1974年Sun首先提出了跟导步态的概念,并于1983年
11、由Tsai成功地把这种步态应用于俄亥俄州立大学的电动六足机器人中,这些为跟导步态的研究和发展,为提高机器人在不平地面上的行走速度奠定了基础。对于六足机器人来说,跟导步态的重点是选择前两足下一步的落点,而一对中足和一对后足的下一步落点由当前前足和中足的立足点决定。跟导步态每次只需要选择前两足的立足点,因而具有控制简单,稳定性较好,越沟能力强等特点,所以特别适合多足步行机在不平地面行走时采用。1.3.3交替步态与跟导步态类似,为了充分发挥六足机器人相对于轮式机器人在复杂地形的行走优势,交替步态成为新兴的六足机器人研究的重点。这种单腿交替行走步态,也被称为五角步态。在交替步态中,各腿的运动可分为抬升
12、和前进两个部分。当某腿的相邻各腿均已触地时,该腿开始运动,并给其相邻各腿发出信号。同样,在该腿触地时,也会给相邻各腿发出触地信号。这样,一旦整个六足系统进入行走状态,这种顺次的步态运行状态就可以一直维持下去。由于各腿等待其相邻腿触地的时间取决于其相邻腿的动作及其触地位置,因而,对于崎岖不平的地面而言,这种步态本身是不可预测的。然而,对于理想的平整地面而言,各腿的运动周期应该是一致的,故而此时的交替步态实质上等同于三角步态。2 2 六足机器人的硬件搭建六足机器人的硬件搭建2.1 机器人部分2.1.1 主控芯片机器人主控芯片采用先进的ARM Cortex M4架构的STM32F407芯片。具有浮点
13、型运算能力,增强型的DSP处理指令,主频高达168MHz,拥有高达1M字节的片上内存。本设计所选用封装为LQFP100封装,有多达80个IO口,9个通用定时器,20路以上的PWM输出通道,因此有足够的硬件资源满足本系统的设计需要。2.1.2 结构设计六足机器人每条腿有三个自由度,前两个自由度的转动轴线相互垂直,后两个自由度的转动轴线相互平行,分别由三个独立的舵机驱动。根据所需扭力和成本,选择辉盛MG995舵机。2.2 遥控器部分遥控器部分使用基于ARM920T核心的S3C2440A微处理器,主频可达400MHz,并且包含MMU内存管理单元提供了对Linux,Windows CE等操作系统的支持
14、。2.3 RF射频通信部分nRF24L01是一款工作在2.42.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置。3 3 操作系统的搭建操作系统的搭建3.1 c/OSII系统的移植与搭建C/OS-II,作为一个优秀的实时系统,不仅代码短小精悍,在实时性方面也非常优秀。C/OS-II的各种服务都以任务的形式来出现的。在C/OS-II中,每个任务都有一个唯一的优先级。它是基于优先级可剥夺型内核,适合应用在对实时性要求较高的地方。现在
15、介绍各个方框内的部分。从上往下看,可以看到应用程序在整个C/OS-II的构架的最上方。这点也很容易理解, 因为C/OS-II作为一个很优秀的嵌入式操作系统,它最基础的功能就在底层驱动支持下屏蔽硬件的差异性,来为用户提供一个不需要考虑硬件的多任务平台。因此和其他的操作系统一样用户程序都是建立在C/OS-II内核基础之上的。这样非常方便应用程序的编写。中间层左边方框内的这些代码是与处理器及其他硬件都无关的代码。可以看到,这些代码占了整个C/OS-II的绝大部分。作为嵌入式操作系统,易于移植是一个优秀操作系统必不可少的特性之一。为了使C/OS-II易于移植,它的创始人花费了大量的心血,力求与硬件相关
16、的代码部分占整个系统内核的比例降到最小。其中OS_CORE.C是内核文件,OS_FLAG.C是与事件标志管理相关的内容,OS_MBOX.C是负责消息邮箱管理的内容,OS_MEM.C负责内存管理,OS_MUTEX.C负责互斥信号量的管理,OS_Q.C负责消息队列的管理,OS_SEM.C负责信号量集的管理,OS_TASK.C负责任务管理等。中间层右边方框里列出的实际上是两个头文件。OS_CFG.H是为了实现C/OS-II内核功能的裁剪。 通过配置这个头文件, C/OS-II可以方便的实现裁剪,以适应不同的嵌入式系统。而INCLUDES.H 则包含了所有的头文件,这样在应用程序包含头文件时只需将此头
17、文件包括进去就能包含C/OS-II所有的头文件了。最下面的一个方框列出的是与处理器相关的代码,这部分是系统移植的主角。在OS_CPU.H中,主要声明了一些与微处理器相关的常量、宏和typedef。宏定义了进出临界代码区的语句,并且定义栈的生长方向等。与处理器相关的汇编代码是OS_CPU_A.ASM,其中有5个与处理器相关的函数, OS_CPU_SR_Save()函数作用是保存当前的状态寄存器然后关闭中断, 也就是进入临界区的汇编实现,代码如下OS_CPU_SR_SaveMRSR0,PRIMASK ;加载中断屏蔽寄存器的值到R0CPSIDI;关中断BXLR;函数返回OS_CPU_SR_Resto
18、re()函数作用是将状态寄存器的值从R0恢复PRIMASK以开启中断,并跳转回去,实现代码如下OS_CPU_SR_RestoreMSRPRIMASK, R0;恢复R0的值到PRIMASK,以开启中断BXLR;函数返回OSStartHighRdy()函数的作用是 (1) 设置PendSV优先级为最低优先级; (2)设置堆栈指针到0;(3)设置OSRunning = TRUE,以表明系统正在运行;(4)触发一次PendSV,打开中断等待第一次任务的切换;(5)开中断。OSCtxSw()和OSIntCtxSw()函数的内容一样, 作用都是完成一次任务的上下文切换,不过OSIntCtxSw()只在OS
19、IntExit()中被调S用。OS_CPU_C.C函数中编写了六个简单的C函数,唯一必要的函数是OSTaskStkInit(),初始化堆栈,其它五个函数必须得声明但没必要包含代码。3.2 Linux系统开发在Linux系统中一个完善的设备驱动既要有硬件的支持, 同时也要符合硬件设计的驱动模块。 结合NRF24L01芯片的特点以及Linux系统下设备类型的不同,可以把它认为是字符设备驱动的一种。 本次设计中使用的是2.6.30的内核, 根据Linux字符驱动的特定架构,本系统中设计的NRF24101芯片驱动由init、exit、open、close、read等函数结构组成,以完成不同的功能。本系
20、统板载2M NOR FLASH和256M NAND FLASH,掉电非易失,NORFLASH已经烧写BIOS,可用来引导内核文件和系统文件的装载。 系统启动时是从NAND FLASH开始。驱动程序设计完成以后,首先在内核源代码以及字符驱动的目录下,修改Makefile文件,做好编译前的配置工作,然后将驱动.h文件和.c文件移至字符驱动目录下,分别执行“make clean”,“make modules”命令后,将生成名为nRF24L01.ko的目标文件,最后将该文件从宿主机移至目标机上执行“insmodnRF24L01.ko”命令即完成驱动模块的加载,同时也可执行“rmmodnRF24L01”
21、命令来卸载模块。也可以将驱动程序编译到内核中去,配置Linux 2.6可采用makemenuconfig, 再修改对应目录下的Makefile和Kconfig即可完成配置, 最后在内核根目录下运行make即可完成编译。在Linux中,NRF24L01被看做为字符设备,因此我们需要在文件系统的dev目录下新建NRF24L01的设备节点,通过“mknodnrf24l01 c 3375 0”来完成,其中c代表字符型设备,3375和0代表主、次设备号。应用程序的编写比较简单,包括按键的中断检测和NRF24L01的发送。程序中通过检测按键中断,发送对应的编码,来控制机器人的动作。本系统中采用的是ARM-
22、Linux-gcc编译器,这样编译出来的可执行文件才能在板子上运行。5. 5. 六足机器人的步态分析与实现六足机器人的步态分析与实现5.1 步态的相关定义步态:是指机器人的每条腿按一定的顺序和轨迹的运动过程,正是因为这一运动过程实现了机器人的步行运动。步态周期:步态周期是指多足机器人完成一个步态所需的时间,也就是所有腿轮番完成一次“提起-摆动-放下”的动作所花费的时间,在此过程中机器人机体也完成过渡过程。本系统的步态周期参数可调,经过实际测试,最小步态周期是300ms,这个参数受限于舵机的性能。占地系数:占地系数是指每条腿接触地面的时间和整个步态周期的比值。当占地系数等于0.5时,机器人是用两
23、组腿交替摆动,这种步态称为小跑步态;当占地系数小于0.5时,机器人任何瞬间只有不足三条腿支撑地面,称为跳跃步态,当占地系数大于0.5时,机器人轮番有三条腿以上支撑地面,这种步态俗称慢爬行步态步幅:机器人的重心在一个步态周期中的平移为步幅。本系统中步幅为6cm。系统步幅参数也是可调的。静态稳定性:步态的生成策略则取决于机器人的步行稳定性,即在步态生成时必须进行稳定性分析。对于多足机器人,在任何时候都要有足够多的腿立足于地面支撑机器人机体,才能确保它静态稳定地步行。通常,至少需要三条这样的腿,并且由这三条腿的立足点构成的三角形必须包围机器人的重心垂直投影,机器人步行时,虽然这个三角形区域是不停变化
24、的,但只要机器人重心投影始终在这个交替变化的区域内,则机器人的步行就是稳定的。5.2 运动学分析5.2.1 机器人结构分析根据Grubler公式,机器人机体的运动自由度f0(n j 1)fi,其中n代表连杆数,j代表关节数,fi代表第i个关节的自由度数,=6代表运动参数。机器人与地面的接触点可看为球关节,其余关节为旋转关节。所以运动自由度f0 6(20 241)36118 6。因此任何时候机器人的机动性不仅包括三维平动还包括三维转动。5.2.1 机器人站力腿正运动学分析上图给出了多足爬行机器人站立腿的结构示意图,图中Ai代表站立腿的立足点,Bi代表机器人机体上臀关节的连接点,li代表第j个连杆
25、的长度,其中l1、l2、l3属于平面连杆机构,i、i和i代表驱动关节的位置(角度),而i、i和i代表被动关节的位置,o代表固定在地面上的参考坐标系,而Bi代表固定在臀关节Bi上并使旋转轴线和z轴重合的相对坐标系,pAi和pBi为Ai和Bi在参考坐标系的位置矢量,脚关节模型化为三个相互正交的旋转关节以及两个连杆l4和l5,一般而言,l4和l5都等于0。脚上各连杆、机器人机体和地面间几何关系的数学描述是至关重要的,这些关系是通过坐标系来建立的。齐次变换是解决此问题的重要手段,因为三维空间中的位置和方向可以通过齐次变化矩阵来描述。以pc和Rc代表坐标系c的原点位置和坐标系旋转矩阵即 xc原点位置pc
26、yc,坐标系旋转矩阵Rc xczcyczc,其中pc中xc、yc和zc代表c的原点位置在o中的三维坐标,Rc中xc、yc和zc代表相对于o中X、Y和Z轴的方向余弦构成。于是,齐次变换Tc可表示为Tc Rc0pc。1事实上,齐次变换矩阵可以通过平动齐次变换和旋转齐次变换导出,即 RTcc0pcI33=10pc Rc 1 00,其中I33为33阶单位矩阵,进而,平动和旋1转变换分别由trans( pc)和rot(k,)表示,即Itrans( pc)=330pcR(k,)0,=,其中R(k,)为旋转算子,代表rot(k,)011坐标系绕k轴旋转角度后得到的新坐标系的方位矩阵。现在,对机器人站立状态的
27、3号脚进行分析,首先令Bi和o重合,然后从Ai到Bi进行平移和旋转变换, 通过下述齐次变换得到Bi最后的位置和方向:TBi trans( xAi, yAi, zAi)rot(z,i)trans(0,0, l5)trans(l4,0,0)rot(y,i)trans(0,0, l3)rot(y,i)trans(0,0, l2)rot(y,i)trans(0,0,l1)rot(y,2)rot(z,i)上式为站力腿的正运动学解,即臀关节Bi的位置和姿态是由给定的关节角度确定的,由于臀关节轴是固定在机体上的,因此上式实际上给出了机器人机体的位置和姿态。5.2.1 机器人站力腿逆运动学分析逆运动学指的是根
28、据机器人的位置和姿态,计算机器人的驱动关节的变量值。已知pBi、RBi和pAi,而驱动关节变量未知,根据矢量与坐标的变换关系,可得p pBi RBibpAi,Ai腿的连杆平面与Bi中xy平面是垂直的,设腿在Bi中xy平面和z轴上的L bx2by2iAiAib伸展长度为Li和Hi,有,根据几何关系容易得到Hi zAibbtan() yxAiiAiLil1l2cosil3cos(ii)ai1siniai2cosi ai3联立这两个方程组可得H l sinl sin()b sinb cosbi3iiii2ii3i2i1其中ai1、ai2、ai3和bi1、bi2、bi3均为已知常量, 令t1 tan(
29、i2)及t2 tan(i2)得i 2arctan t1t1与t2的值。最终得到。 2arctan t 2arctan t21i5.3 本系统步态实现5.3.1 三角步态三角步态是占地系数为0.5的波形步态, 运动时候三条腿交替支撑前迈,“六足纲” 昆虫运动时, 是将三对足分成两组, 以三角形支架结构交替前行。 如图1、3、5为一组,2、4、6为一组。当一组三角形支架中所有的足提起时,另一组三角形支架的三只足原地不懂,以支撑身体,并以中足为支点,拉动身体向前,同时机器人的重心落在另一组“三角形支架”的三足上,然后重复前一组的动作,相互轮换周而复始。这种步态可以让机器人随时停下来,因为重心总是落在
30、三角形支架内。5.3.2 定点转弯步态以定点左转步态为例,设1、3、5为A组腿,2、4、5为B组腿,首先机器人做姿态调整,六条腿站立撑地,立足点不变。接着 B组腿摆动,A组腿支撑。机器人做姿态调整,六条腿站立支撑,立足点不变,机身转动。接着A组腿摆动,B组腿支撑,依次循环。由于定点转弯步态的稳定性容易满足,机器人最大转角主要由机械机构来决定,本系统的默认转角是7度。6 6 作品展望作品展望多足机器人之所以有存在的价值,就是因为他能够适应非结构环境,能够在崎岖不平的的恶劣路面上行走,这是他优于轮式和履带机器人的关键之处。显然,如何设计多足机器人的腿(脚),使其能够适应复杂地面状况的运动,这是目前众多研究人员仍在研究的目标。本作品因为没有安装足部的接触传感器,所以,并不能实现非平坦地面的行走,这是需要继续改善的一个方面。为本系统建立友好的人机界面。通过人机交互能够实时显示六足机器人的所有状态,并方便用户传达控制命令。为各个部件建立即插即用的功能,并能够自动识别在步行机器人构型中的位置和功能,使机器人具有可重构性,即在不改变软硬件的情况下实现机器人的重新构型,这就要求系统能够自动进行识别。使系统具有即插即用的可靠性即容错能力。引入操作系统,增加了系统的可扩展性,随着开发的深入,机器人可能需要增加一些特别的能力,比如视觉模块,GPS(全球定位系统)模块等等。