仿蜥蜴机器人设计与制作.docx
北京理工大学珠海学院2020届本科生毕业设计仿蜥蜴机器人设计与制作控制部分设计 学 院: 工业自动化学院 专 业: 机械电子工程 姓 名: 潘俊良 学号: 160404102593 指导老师:吴明友 职称:副教授中国·珠海二二零年 五月6毕业设计诚信承诺书本人郑重承诺:本人所呈交的毕业设计仿蜥蜴机器人设计与制作控制部分设计是在指导教师的指导下,独立展开研究取得的成果,文中引用他人的观点和材料,均在文后安顺序列出其参考文献,设计使用的数据真实可靠。 本人签名: 日期: 年 月 日仿蜥蜴机器人设计与制作控制部分设计摘 要仿生技术出现至今已有数十载,而仿生学是应用生物学领域的一门分支学科,软硬件的相互结合赋予了机器人另一种形式的“生命力”。本次毕业设计是通过研究蜥蜴的外形和运动姿态所设计与制作的仿蜥蜴机器人。根据步态分析和自由度的计算,设计结构外形和基本运动姿态,通过电路设计和程序写入去控制各运动副的关节运动,并且通过仿真优化和上位机的调试优化得到能满足运动要求的仿蜥蜴机器人。关键词:仿生技术,电路设计,优化,关节运动Design and manufacture of lizard - like quadruped robotControl system designAbstractIt has been decades since the advent of bionic technology, and bionics is a branch discipline in the field of applied biology. The combination of software and hardware endows robots with another form of "vitality". This graduation project is a lizard robot designed and made by studying the appearance and movement of lizards. According to the analysis of gait and the calculation of degree of freedom, the design of the structure shape and the basic motion posture, through the circuit design and program writing to control the joint motion of each motion pair, and through the simulation optimization and the upper computer debugging optimization can meet the motion requirements of the lizard robot.Key words: bionic technology, circuit design, optimization, joint motion目录1绪论11.1研究仿生蜥蜴机器人的现实意义和目的11.2国内外的发展状况对于仿生蜥蜴机器人12仿生蜥蜴机器人步态设计42.1行走原理42.2 自由度计算42.3步态分析53硬件模块介绍73.1硬件选用73.2 硬件系统框图73.3舵机选型83.4微处理器选型93.5舵机控制板选型123.6电源选型153.7超声波测距模块选型153.8 硬件系统电路设计164开发软件介绍174.1 Arduino IDE174.1.1 Arduino IDE软件介绍174.1.2 Arduino IDE界面展示184.1.3 Arduino IDE数据类型204.2 Lobot Servo Control204.3 Solidworks214.4 ALTIUM DESIGNER225控制系统软件设计245.1软件系统设计基本流程框图245.2运动组软件设计265.2.1运动组方案设计265.2.2 舵机偏差调整265.3动作组各参数275.3.1 前进275.3.2 后退285.3.3 转向295.4 程序代码305.4.1 程序结构流程图305.4.2 程序代码336调试过程386.1 16路PWM舵机驱动板从机内部资源386.2 Arduino主机内部资源396.2.1超声波测距模块396.3 整体运行调试40总结41参考文献42谢辞43附录44附录一.程序完整代码44附录二.电路原理图501绪论1.1研究仿生蜥蜴机器人的现实意义和目的代替人类在各种复杂和未知的工作环境中工作,国际社会对此表示赞成的声音越来越多,例如深海勘测,核辐射影响地区,对于恐怖组织所在地区,太阳系和各遥远星系人类所不可及之处。往小的方面说,需要机器人解放人类的劳动力,提高工作效率,例如负重搬运,运送物资,工厂生产,交通维护等都可以使用机器人代替人类社会工作。而四足机器人相比于两足机器人而言,具有更强的稳定性和良好的机动性,而相对于六足机器人而言,在构建和维护上又比六足更简单。而制作一台机器人的最终目的就是让它应用在我们的生活之中,模拟爬行动物的运动特征,通过机械结构和算法程序赋予其“生命”,使其能服务于人类社会,譬如赋予蜥蜴机器人自动避障和行走功能,便能使其具有基本避障神经元系统和运动特性,再赋予其图像识别和资料上传功能,便又具有勘测和记录的功能,我们可以根据所需要完成的目标而赋予其基本功能,所以研究仿生蜥蜴机器人的潜力十分巨大。1.2国内外的发展状况对于仿生蜥蜴机器人仿蜥蜴机器人的运动机构可以根据运动方式分为:传统的履带运动机器人,多足型传动机器人,多轮型传动机器人还有仿蛇爬形机器人,还包括近几年出现的水栖仿生机器人与多翼式仿生飞行机器人,未来可能出现的也许有喷射式机器人和磁力式机器人,或许还会出现打破传统力学机构的量子机器人和反重力机器人,这都是更高级的运动方式结构,而我们目前研究最多的方向还是在传统足式机器人,轮式机器人和履带机器人。第一个探索发展阶段是原始探索时期,此阶段通过对生物的物理外形和生物原型进行原始模仿,就比如飞机,原始的飞行器,通过模仿鸟类而制造,而且该阶段主要驱动力还是原始人力。直至科技不断发展,驱动系统装置不断更新换代和计算机技术的问世,从而进入第二个阶段在 2O世纪中后期, 第二个阶段主要是利用机电系统结合,通过编写控制程序实现生物功能例如行走,跳跃和爬行等。这是属于宏观上的仿生,不仅仅是仿形态而且也是仿行态,并实现较多的人为操控。快速的科技革新,使得人们进入了21世纪,人们开始从传统物理学和摩尔公式中继续摸索机器人的下一阶段-第三阶段。在第三阶段中,通过对生物的不断深入研究和发现,生命机理的不断突破进展而进入了能将机械的结构跟生物体之间的部分特性进行巧妙融合,机械技术也在不断发展结合生物科学,这时候的计算机技术也在革新,当这三者巧妙的融合之后,仿生机器体也开始步入下一个发展阶段第四个阶段。机械结构和生物性能进行部分的融合,亦如传统的机械结构与仿生材料之间的融合以及仿生驱动运动。随着对生物机理认识的不断发展,和计算机技术的不断革新,仿生机器人也往着下一阶段第四阶段发展。第四阶段是属于机械结构与生命形式进行融合的类生命形态(传统意义上不算是生命),以科技赋予传统的机械体生物的部分特征与仿生形态,通过技术嵌入自主学习与思考能力,自我认知,还有运动姿态的生命特征,更与生物本身模仿更进一步,也随着人类对生命思维和意识还有神经系统神经元的不断深入。人类对机器人研究的不断探索如下图1-1所示 。 图1-1 机器人研究发展趋势目前所能了解到的仿生蜥蜴机器人相对而言数量十分有限,这个研究对象对于国际社会而言并不是热门选择。通过网上查阅资料可以依稀发现有研究这方面课题的科研项目,他们所研究的仿生蜥蜴机器人结构如下图1-2,图1-3,图1-4所示。图1-2 仿生蜥蜴机器人A图1-3仿生蜥蜴机器人B图1-4 仿生蜥蜴机器人C生物,物理,机械的结合和仿生神经元系统控制成为科学家们研究的前沿方向。2仿生蜥蜴机器人步态设计2.1行走原理根据研究蜥蜴的爬行机制,骨骼之间驱动力的相互传导,还有关节的自由度,设计了一个以八自由度为运动关节,其中分为两只前肢和两只后肢,前后肢的机理都是相同的,每一条肢体都分配了三个自由度,分别是肩膀和手肘和手腕,胯和膝盖和脚踝这两种位置。需要实现的基本运动功能为:“前进”,“后退”,“左转”,“右转”。根据研究蜥蜴的运动形态,如图2-1所示。图2-1蜥蜴的运动形态2.2 自由度计算 在对其进行自由度的计算,仿生蜥蜴机器人都是空间移动,但传统的自由度计算公式繁多,每个公式对应的情况都各不相同,每个公式也都有一定的缺陷和局限性,对于此仿生蜥蜴机器人而言,综合考量后觉得使用目前最常用的自由度计算公式会比较合适,此计算自由度的公式是由1943年间,原苏联的科学院通讯院士陀勃罗弗尔斯基,由约束理论为根基所建立的一种具有一个统一的平面,空间机构的自由度公式:5:(式2-1)其中,式子中的m代表各个运动机构在运动过程中受到的共同的约束数量,式子中的n代表活动的杆体数额,而k为运动副级别的数量值。 通过对传统的计算公式简化,可以得到一个新等式: (式2-2)式中,P为机构各级别运动副的总数,为多余的自由度,N是空间封闭的闭环数。可以通过计算代入参数得出PX=3,=0,所以N=0,因此不构成封闭环,所以得出以下算式:W=3-0-3*0=3(式2-3)再通过计算,总自由度=每只脚的自由度*脚的数量=12; 所以该仿生蜥蜴机器人的总自由度是12.如图2-2所示单独观察单条腿的3自由度运动结构机理:图2-2单条腿自由度的三维结构图 2.3步态分析运动方式根据研究运动中的占空比以区分而分成3种:行走时(>=0.75),加速走动时(0.5<=<=0.75),跑步时(<0.5)。其中,步行时是属于稳定步态,加速走动还有跑步运动时都是属于非稳定步态,仿生蜥蜴机器人在稳定步态过程中,运动的任意时刻要有三条节肢与地面接触以支撑身体平衡,且机体需要在稳定占空比区间里做出调整,以使重心落在三足的支撑点构成的稳定区间内。当稳定度达到一个相对值时候,仿蜥蜴机器人行走的速度也达到相对值时,这时运动运动损失的能量越少而得到运动步态越合适。仿蜥蜴机器人运动步态运动一个周期的时间可以细分为迈腿损失时间和调整重心损失时间,仿蜥蜴机器人运动的速度跟跨度值的大小有关,也与重心所在落点位置还有运动时间有关,当迈腿的时间变小时运动步态便越合适。当稳定阈值不变时,运动需要调整的重心改变值越小得出的步态运动效率会越高,而运动损失的能量跟运动周期中重心的偏移程度相关。本次设计选用的是三角步态法,前进时让前肢左,后肢左和后肢右,与前肢右,后肢左和后肢所分别构成的三角形区域交叉进行,使重心落于其中,而后退时是让前肢左,前肢右和后肢左,与前肢左,前肢右和后肢右所分别构成的三角形区域交叉进行,使重心落于其中。机器人便能稳定运行。3硬件选型与电路设计3.1硬件选用12个MG90S舵机,各3D打印零部件,Arduino UNO R3,杜邦线若干,1个面包板。1个HC-SR04超声波测距模块,1个16路PWM舵机控制板。3.2 硬件系统框图设计与制作整个硬件电路系统,首先需要设计好硬件电路的系统框图,而硬件系统框图如图3-1所示。6V电源输入16路PWM舵机驱动板舵机Arduino UNO R3超声波测距模块图3-1 硬件系统框图3.3舵机选型舵机属于一种位置伺服驱动装置,由于其的可中断特性与角度偏移可变特性多被应用在一些需要不断改变偏移角度和维持偏移量的控制系统装置中,例如无人机,遥控汽车,许多机械机构装置中都有舵机的存在。一般而言,控制舵机方式一般是使用定时器还有中断器搭配单片机控制的。当传统单片机所搭载的舵机数量增多时,各模块不足以完整控制多舵机运行,而传统的单片机驱动方式步骤繁多且复杂,精度也无法保证,控制将变得复杂多样,而本次毕业设计设计的是12路的舵机驱动电路,也自因此,本次毕业设计采用市面上流行的开源硬件Arduino来驱动舵机。这种利用闭环控制系统的机电产品, 内部结构为小型的直流电机、变速的齿轮组、控制板和可调节电位器等机械部件组成,具有可以自由控制所需偏移角度值的特性(偏移舵角,一般而言舵角不超过180° ),如图3-2所示。图3-2 舵机结构本次设计选用的舵机型号是MG90S型号舵机,选用此种舵机的原因是他作为机器人的专用伺服电机,工作时产生的扭力大且稳定,精度高,反作用力影响较小。且使用插线式控制,适合于多自由度机器人的组装。MG90S舵机外形如下图3-3所示。图3-3 MG90S舵机外形舵机的控制方式:通过时基脉冲的刺激,当受到0.52.5ms的脉冲反馈时,舵机能分析反馈脉冲而转动所需的角度,如图3-4:图3-4 舵机控制方式脉冲角度对应表3.4微处理器选型本次毕业设计选用的单片机微处理器模块是Arduino,Arduino是属于意大利研发的一款开源的硬件模块,是属于教学使用的硬件模块,该模块的一般适用对象是部分希望尝试交互式的物理对象的实践人员和众多创客们还有部分有想法的艺术家所构建的,它的程序开发完全开源,可以免费下载。如下表3-1所示是各种Arduino微处理器产品的特点和物理特性,还有使用场景,价格,尺寸各参数分析。表3-1 Arduino 各种类参数对比Arduino版型ArduinoUNOArduinoDUEArduinoLeonardoArduinoMegaArduinoADKArduinoMicroArduinoYun微处理器ATmega328AT91SAM3X8EATmega32u4ATmega2560ATmega2560ATmega32u4ATmega32u4工作电压(电压/输入电压)5V/712V3.3V/7125V/7125V/7125V/7125V/7125VCPU频率16MHZ84MHZ16MHZ16MHZ16MHZ16MHZ16MHZEEPROMKB114411SRAMKB2962.58 82.52.5FlashKB32512322562563232Analog port (input/output)6/012/212/016/016/012/012/0Digital port (IO/PWM)14/654/1220/754/1554/1520/720/7USB接口A-BMicroMicroA-BA-BMicroMicroUART1424422尺寸75*55mm108*54mm75*55mm108*54mm108*54mm45*20mm75*55价格区间(¥)100-200300-400100-200300-400400-500100-200500-600特点Arduino UNO 是Arduino主控制器件系列中的经典款,Arduino后的新产品都是以Arduino UNO作为原型参照的ArduinoDUE是第一款基于32位ARM的Arduino 主控硬件,基于Atmel SAM3X8E CPU的微控制处理器ArduinoLeonardo是一款低成本的主控制器。不仅拥有两个控制串口,而且数字和模拟口均比Arduino UNO 多Arduino Mega拥有54个数字口,16个模拟口,是一款具有超多IO口的Arduino主控制器。Mega ADK是一款基于Atmega256的主控制器,其于Mega最大的区别在于-其完全兼容于GOOGLE ADKArduino Micro 是 基于Atmega32U4 的超小型主控板 。 具有超小尺寸,Arduino Micro可兼容小型面 包板上。Arduino Yun是一块 基于ATmega32u4 和Atheros AR9331 的主控器。Atheros 支持基于Linux分支 OpenWRT平台下 Linino系统。适用场景适合于初学者使用DUE不像其他Arduino主控产品,工作电压是3.3V,所以其不兼容于5V的shield和外设低成本的特点适用于Arduino爱好者多使用于需要外接较多传感器的场景多使用Android手机的USB数据通讯场景多使用于对尺寸有较多要求的Arduino设计师多使用于基于Arduino的物联网开发人员对于综上所述的硬件部分对比分析,本次毕业设计选用的微处理器模块是Arduino UNO R3模块,是考虑到Arduino是开源硬件,易于二次编程开发,选用的Arduino UNO R3模块具有USB通信功能,可以通过USB线直接连接电脑,通过软件“arduino”编程,软件编程语言环境属于类似Java、C语言的Processing/Wiring开发环境,与其它Arduino类产品对比更加简洁和容易使用,而此毕业设计对于产品而言无特殊需求,因此选择价格相对低廉,便于操作的UNO 系列产品。而Arduino UNO R3的外形如图3-5所示。图3-5 Arduino UNO R33.5舵机控制板选型本次毕业设计选用16路PWM舵机驱动板作为控制从机,选用此舵机控制板因为这是一款具有16条通道的12比特的PWM通信的舵机模块,搭配了PCA9685芯片,功能强大,特点是可以只需要使用两个引脚通过I2C就可以驱动16个舵机,通过级联的方式叠加,可以最高级联控制62个舵机驱动模块,所以总共可以一次性驱动992个舵机。可以很好的节省主机空间资源。级联的方式如下图3-6所示:图3-6多驱动板级联(提供更大的拓展性)Arduino UNO R3可以直接连接单个舵机驱动,但是如果舵机数量增加,Arduino UNO R3只有12个引脚(2号引脚到13号引脚),本次实验所需的舵机数量正好为12个MG90S舵机,但如果直接使用Arduino UNO R3外接12个舵机的情况下,因舵机的驱动电压维持在56伏特之间而需要相对而言更大的电压才能使得多个舵机同时正常工作,因此就需要外接更大功率的电源去供电使其正常工作,但大电源直接连接Arduino UNO R3有可能烧坏硬件板,而且Arduino UNO R3的IO口输出电流太低,无法全功率驱动舵机,对于处理器和外接硬件会造成一些难以预测的问题。因此综合考量,这时候就需要使用舵机控制器这款16路的PWM舵机驱动板,首先用Arduino UNO连接舵机驱动板,再通过外接电源给16路PWM舵机驱动板供电去驱动外接的12个MG90S舵机。接线图如下图3-7所示。图3-7 硬件系统接线图(1)下列是微处理器和舵机控制机的接线方式:1.+5V > VCC2.GND > GND3.SDA > SDA4.SCL > SCL(2)下列是16路PWM舵机驱动板的主要参数:1电压:舵机供电5-7V(电压可以稍高点)。2逻辑电路电压:3-5V。3通信接口:使用I2C通信方式,引脚是SCL,SDA。4OE反使能脚:该引脚是低电平使能,正常情况该引脚不用连接模块,因为如果不接模块内部会自动默认接地使能。5.运行环境频率:40-1000HZ。3.6电源选型舵机采用USB供电的方式,通过arduino微处理器外接USB电源线到电源,再把舵机和Arduino UNO R3共地接到外接电路中,因为舵机在不同的电压下工作扭力不同,电压如何过低,舵机产生扭力不够大以无法正常工作,达到实验目的,但电压太高又容易损坏舵机和硬件电路,所以电池的电压选择不能太高,本次实验选用4个1.5V锂电池并联成一个6V电源。3.7超声波测距模块选型对本次毕业设计选用的超声波测距模块型号是HC-SR04,超声波模块的工作原理:向模块前方发射超声波,通过媒介传播过程中碰到前方物体,声波会进行反射,此时该超声波模块会对反射声波进行吸收和分析,得出时间差,根据声速运算得出物体的距离。下列是该产品的各项功能参数如下:能够测量距离范围为2 450cm距离分辨率为0.3cm工作测量角度为15deg正常测量频率为40Hz(频率最快达到每25ms测量一次)正常运行电压为4.5 5.5伏特正常运行电流为10 40毫安接线方式:VCC, trig(控制端),echo(接收端),GND。3.8 硬件系统电路设计通过Altium Designer设计电路原理图,先打开“新建”,再点击“库”-“原理图库”,新建一个文件库,对所需要的各个硬件模块进行电路原理图设计,添加引脚和命名,然后再在原理图模块中添加刚刚新建的文件库,下载到“库”文档中,便可以在原理图绘制模块编辑。如图3-8所示为该仿蜥蜴机器人电路设计原理图.图3-8 硬件电路原理图设计4开发软件介绍4.1 Arduino IDE4.1.1 Arduino IDE软件介绍Arduino IDE是一款能写入,下载和上传代码的集成开发环境的软件系统,该应用系统里面功能主要包括一款文本编辑器模块用于编写程序代码,一个文本内容控制部分还有一个功能强大的调用工具栏。通过USB串口连接电脑串口,进行串行通信来下载软件编码到硬件中,连接Arduino和Genuino之后,就能上传程序和通信了。而对于初次接触Arduino的开发者而言,操作灵活性强,能够较容易去掌握这个软件的使用,能够进行图形化的编程测试,不需要太专业的单片机的操作背景。相对的而已,Arduino的电路原理图与设计图和软件核心的库都是开源的,在Arduino 的开源协议背景下可以修改程序原本的设计和对应的编码。4.1.2 Arduino IDE界面展示当打开Arduino IDE的主页面如下图4-1所示,但驱动舵机需要打开servo的库文件才能正常使用Arduino去控制舵机驱动。图4-1 Arduino INE界面找到“项目”的选项,打开后选择“加载库”,可以看到servo库的选项,如图4-2,点击它。图4-2 servo库文件位置打开servo 库之后,会自动调用servo编程模板,参数模板如下,可自己更改。Servo库的界面如下图(4-3)所示。#include<Servo.h> / 引入舵机控制库文件Servo myservo; / 实例化一个舵机对象来控制舵机int pos = 0;void setup() myservo.attach(5); / 引脚5为舵机控制接口void loop() for (pos = 0; pos <= 180; pos += 1) /控制舵机角度从0°转到180° myservo.write(pos); delay(15); /延迟15毫秒 for (pos = 180; pos >= 0; pos -= 1) myservo.write(pos); delay(15); 图4-3 servo库编程界面4.1.3 Arduino IDE数据类型下表4-1是Arduino IDE的数据类型统计。表4-1 Arduino IDE数据类型Boolean布尔Char字符Byte字节Int整数Unsigned int无符号整数Long长整数Unsigned long无符号长整数Float浮点Double双字节浮点String字符串Array数组4.2 Lobot Servo ControlLobot Servo Control是一款多个舵机同时控制的最多24路舵机控制程序软件,软件公司是LOBOT,Lobot Servo Control的操作相对而言十分容易,需要有串口通信功能的舵机驱动板还有多个舵机同时使用,可以通过移动条件上位机软件里的图形进行实时舵机编程,还有添加删除更新等功能模块可以选用,动作组的下载或是去除功能也十分全面。该软件对偏差的处理支持下载和复位偏差还有实时读取偏差。而舵机控制器是整个软件的核心部分,必须先熟练舵机控制器的操作方法才能安装我们的机器人,当设计仿蜥蜴机器人之前,首先是需要对所有舵机进行初始化的操作,这时候就需要使用Lobot Servo Control上位机软件更加方便我们对舵机进行复位和初始化的操作,这样才可以更加方便安装机器人。Lobot Servo Control软件界面如下图4-4所示。图4-4 Lobot Servo Control软件界面4.3 SolidworksSoildworks是一款基于Windows运行环境中的机械设计应用软件,适用于多数机械设计师和机械爱好者建模使用,以设计功能模块为主的CAD/CAM/CAE的建模软件,具有十分人性化的操作界面,其用户操作界面如图(4-5)所示。该软件功能也十分强大,搭配许多功能型插件和设计组件,自打问世以来一直都是世界领先的一流三维CAD绘图软件。插件内部包括有以下功能例如:绘制草图,设计工程图,建立装配体,设计各个零件模块,钣金设计,运动仿真和外形渲染等众多功能模块。图4-5 Solidworks2016界面通过solidworks这个三维建模软件对机器人的外形进行建模,在草图中绘制出所建零件的各尺寸再进行拉伸切除等操作,建立三维模型, 再通过打印的选项将所建模的零件转换成STL文件,在网上购买提供3D打印服务的店铺,将文件发送给店家,便可得到零件的模型实体。4.4 ALTIUM DESIGNERAltium Designer是一款功能齐全而且十分强大的专业设计PCB硬件电路的软件,使用不算复杂,对于初学者来说也比较容易上手,是一款隶属于Altium公司的电路设计软件,软件诞生至今不过数载,在美国电子工程师之中广泛流行后,传入世界再传入中国国内。这款软件是Protel软件的后身,该软件功能十分强大并且这是唯一的一款集齐所有应用方案的电子电路设计软件,具有市面上常见的电子产品需要的所有的设计和核心技术功能,像是PCB模型原理图,PCB设计,还有电路设计以及仿真等功能模块,打开Altium Designer的设计文件类型如下表4-2所示。表4-2 Altium Designer文件类型文件拓展名类型说明.PrjPCBPCB项目/工程文件.SchDoc原理图文件.Schlib/.SCHLIB原理图库文件.PcbDoc印制电路板文件PcbLib/.PCBLIBPCB封装库文件.intLib集合库软件打开界面如下图4-6所示。图4-6 软件打开界面软件使用PCB界面如下图4-7所示。图4-7 Altium designer PCB界面5控制系统软件设计5.1软件系统设计基本流程框图因研究的目标是仿蜥蜴四足机器人,运作形式是爬行机器人,以此为基本运动机构骨架。根据仿生蜥蜴机器人控制系统的控制要求,主控芯片模块选用Arduino UNO R3作为控制控制主机,辅助以MG90S型号舵机作为机器人的控制自由度单元,再配以超声波测距模块作为机器人的“眼睛”模块,能够实现避障功能,以此共同搭建仿蜥蜴机器人的控制系统部分。再通过调试,直至蜥蜴机器人能保持平衡并且能稳定得完成周期的前进,后退,左转,右转。先将蜥蜴机器人通电后,进行初始化操作。将全身各个舵机和超声波模块初始化操作,将Arduino主机,Lobot servo control从机,MG90S舵机和HC-SR04超声波测距模块复位,再通过电脑Arduino IDE写入编好的三角步态程序,之后上传运行蜥蜴机器人行走过程中输出和接收都通过HC-SR04超声波测距模块获取和发送信息,再通过Arduino主机进行信息分析处理,协调和调整从机完成步态的控制。HC-SR04超声波测距模块行走避障软件设计:当机器人超声波测距模块往前方发送声波,反射后接收处理得出前方物体距离机器人大于35cm时,则继续保持前进姿态。当机器人超声波测距模块往前方发送声波,反射后接收处理得出前方物体距离机器人小于或等于35cm时,则选择执行转向指令,执行指令后再发射和接受声波检测前方,若前方障碍物大于30cm时则保持前进姿态,若前方障碍物小于等于30cm时则继续转向。以此类推。软件运行流程图如下图5-1所示:图5-1 软件流程程序框图 5.2运动组软件设计5.2.1运动组方案设计本次设计实验对象是仿生蜥蜴,根据前面第二章的自由度设计可以计算得出,运动组模型具有12自由度,运动姿态也属于“爬行”姿态。蜥蜴机器人的两侧分别具有两条足,重心的保持与占空比有关,此蜥蜴机器人的每一个动作都需要抬起一只脚,和运动时需要有至少3只脚立于地面保持平衡,使重心落于那3只脚所构成的三角形稳定区间内,从而可以保持机器人的稳定和平衡姿态。对此仿生蜥蜴机器人的运动组设计需要同时用到Arduino IDE和Lobot servo control两个软件。5.2.2 舵机偏差调整(1)先通过Lobot Servo Contro软件对各个舵机进行编号,共使用12个舵机,将舵机编号为112。四足机器人的每条节肢分配了三个舵机,按照顺序把每个舵机编号。再通过Lobot servo control上位机软件的舵机进行排列,将机器人舵机和上位机的舵机排布顺序一致,分为4只腿,前肢左分配:(1号舵机,2号舵机,3号舵机),后肢左分配:(4号舵机,5号舵机,6号舵机),前肢右分配:(7号舵机,8号舵机,9号舵机),后肢右分配:(10号舵机,11号舵机,12号舵机)。如下图5-2和图5-3所示。图5-2 编号12个舵机图5-3 编制舵机编号图当组装好12个舵机和仿蜥蜴机器人模型零件之后,每个舵机都会存在中值偏差(中值为1500,偏差调整幅度为-100+100),需要对舵机进行偏差调整,使得仿蜥蜴机器人启动时能保持平衡姿态。5.3动作组各参数5.3.1 前进前进迈前左腿的动作命名为动作组(1),前进时需要保持一条腿抬起30度左右,另外三条腿保持重心的稳定,所以需要前肢左起脚,1号舵机和2号,3号舵机旋转角度分别从中值角度1500度旋转到1686度,1523度,1515度。其他各部分舵机保持平衡姿态,动作组(1)号的具体参数如下:#1 P1709 #2 P1198 #3 P1779 #4 1500 #5 P1495 #6 P1500 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1500 #12 P1505 然后动作组(1)运行结束。下一步使得机器人前倾,需要5号舵机和11号舵机同时转动,使得机器人重心运动,同时前肢左收回中值,经过调试,运动组(2)号具体参数如下:#1 P1500 #2 P1500 #3 P1505 #4 1500 #5 P1198 #6 P1500 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1244 #12 P1505 这时机器人已经往前迈出一只脚,需要保持静态平衡状态,舵机需要回到原始初值,动作组(3)参数如下:#1 P1500 #2 P1500 #3 P1505 #4 1500 #5 P1495 #6 P1500 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1500 #12 P1505同理迈出右足的参数运算如上所述。右脚交替运动的动作组参数如下:动作组(4):#1 P1500 #2 P1500 #3 P1500 #4 1500 #5 P1495 #6 P1500 #7 P1709 #8 P1198 #9 P1779 #10 P1495 #11 P1500 #12 P1505运动组(5):#1 P1500 #2 P1500 #3 P1505 #4 1500 #5 P1198 #6 P1500 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1244 #12 P1505运动组(6):#1 P1500 #2 P1500 #3 P1505 #4 1500 #5 P1495 #6 P1500 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1500 #12 P15055.3.2 后退后退的具体动作姿态与前进运动姿态恰是相反,不过因为重量不同,所以导致重心会不同。动作组参数如下所示:动作组(7):#1 P1500 #2 P1500 #3 P1505 #4 1128 #5 P1988 #6 P1198 #7 P1500 #8 P1500 #9 P1500 #10 P1495 #11 P1500 #