第6章-六足仿生机器人项目设计课件.pptx

上传人(卖家):晟晟文业 文档编号:4609081 上传时间:2022-12-24 格式:PPTX 页数:54 大小:4.08MB
下载 相关 举报
第6章-六足仿生机器人项目设计课件.pptx_第1页
第1页 / 共54页
第6章-六足仿生机器人项目设计课件.pptx_第2页
第2页 / 共54页
第6章-六足仿生机器人项目设计课件.pptx_第3页
第3页 / 共54页
第6章-六足仿生机器人项目设计课件.pptx_第4页
第4页 / 共54页
第6章-六足仿生机器人项目设计课件.pptx_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、第6章 六足仿生机器人项目设计目录6.16.1设计思想设计思想6.2 6.2 材料清单材料清单6.3 6.3 机械零件设计机械零件设计6.4 6.4 组装流程组装流程6.5 6.5 电路设计电路设计6.66.6步态设计步态设计6.76.7红外控制设计红外控制设计6.86.8成品实物图成品实物图6.16.1设计思想设计思想六足仿生机器人俗称蜘蛛机器人,因其运动方式有着其他机器人不具有的能力优势流动性良好,能适应各种崎岖路面,且能耗较少,主要用于军事侦察、太空探索、救灾、抢险救灾等方面,还可应用于家庭娱乐、机器人教育等领域,有着较为广阔的应用前景。本项目的仿生蜘蛛机器人主要由控制板,18个舵机(六

2、条腿),稳压器,无线模块和一些数据采集传感器(温度传感器等)组成。本项目的蜘蛛机器人有丰富的扩展接口,后期可根据各种应用领域的需要扩充相应的传感器和功能模块,完全能够胜任视觉定位、自主规划判断路径、多传感器组合扩展等功能,具有语音控制、人机对话等多种功能,应用领域广泛、市场前景良好。6.2 6.2 材料清单材料清单材料清单如表6-1所示。材料清单材料清单序号元器件名称型号参数规格数量参考实物图1固定板 上自行打印1块详见6.32固定板 下自行打印1块详见6.33膝关节自行打印12个详见6.34胫关节自行打印12个详见6.35踝关节自行打印6个详见6.36脚部支撑自行打印6个详见6.37Ardu

3、inoMega 25601个8舵机控制器32路1个9语音模块非特定人声语音识别模块 核心版1个10红外避障红外避障C7A4611超声波传感器HC-SR04 超声波测距模块112open mvCam M4-OV77251个13云台支架自行打印1套 14数字舵机MRS-D2009SP1915电池1200mA/7.4v一个16杜邦线30cm公对母一捆17杜邦杜邦线线20cm公对公对母母2捆捆18红外接收器VS1838B 通用一体化红外接收头 一个19遥控器ps2无线手柄一个20螺丝M1.6*5144个21螺丝M1.6*2072个22螺丝M3*836个23螺母M312个上述清单中的材料中有几处需要特别

4、注意:1.第8项舵机控制器之所以选用了32路是为了日后扩展其他功能所预留的通道,如果没有其他特殊需求,实际上24路舵机控制器就可以满足需要,本项目至少需要使用12路以上舵机控制器,各位同学制作的时候可以根据自己的实际需求选定。此外,六足仿生机器人和四足仿生机器人、八足仿生机器人的控制原理基本相同,舵机控制调用方式相同,传感器连接设计方法相同,这些内容后面会陆续介绍,唯一不同的是步态姿势不同。各位有兴趣的同学可以在本项目设计完成之后,自行设计其他足数的仿生机器人。2.第9项是本项目的语音识别、对话功能实现的模块。之所以选择这个型号是因为其内置了较大的存储空间,用户可以自行定义2000句的对话。可

5、以实现人和机器人的对话交流,也能实现用户对机器人的语音控制功能。该语音模块有三个版本,分别是核心板、升级版和完全版。核心板的价钱相对较低,本项目建议使用该版本。如果有同学想额外增加语音方面的功能和有这方面需求,可以选择后面两个版本。3.第12项OPENMV模块是本项目的视觉模块,因其与Arduino兼容性较好,功能调用较为容易而选用。本模块用两个版本,分别为M4和M7。M4版本固件版本较低,芯片处理速度低于M7,但是其价格便宜,实现的功能基本相同,没有特别需求的同学可以选择M4版本。第13项云台支架本项目使用的是自行建模3D打印的零件,主要目的是降低开发成本。如果有同学想要性能更好的云台或者完

6、成某些测绘、监控任务的需求,可自行选装市面上的各种二轴、三轴无刷云台,提高性能的同时不影响本项目机器人的其他功能实现。第14项中的数字舵机,各位同学也可以根据实际需求选择市面上的数字舵机,根据需要可以选用180度或者270度的数字舵机。舵机的扭矩规格可以根据实际情况选用15KG-20kg之间。但是不建议同学们选用模拟舵机,因为模拟舵机需要不断的接受舵机控制器发送的PWM信号才能保持锁定角度,完成相应的操作,并且精度较差,线性度很难达标。而数字舵机仅需接受一次舵机控制器传递的PWM信号就可以锁定角度不变,控制精度较高、线性度良好、相应速度快,能够完成本项目的各项功能需要。特别值得注意的是,并不是

7、舵机的转动角度越大越好,同学们不要选用360度舵机,因为目前市面的无死角舵机绝大部分无法接受PWM信号控制,不能锁定角度不变,一经上电会不停旋转。6.第18项和第19项的红外接收模块和红外手柄(遥控器)是配套使用的。因成本低廉,本项目选用了红外控制方式。但是同学们需要注意的是,红外接收控制有较多的限制,控制距离较近,不能有明显的遮挡物,并且在电子设备较多的复杂情况容易造成信号丢失,从而导致对机器人失去控制。有条件的同学可以根据本书前几章的内容,选用蓝牙、WiFi、2.4G技术等控制方式,不影响机器人的其他功能实现。6.3 6.3 机械零件设计机械零件设计机械零件包括机身固定板上下两部分、12个

8、膝关节、12个胫关节、6个踝关节和6个脚步支撑部件组成,这些零件的设计图和装配图都在下文中给出。本项目的机械零件采用SolidWorks建模生成。该软件功能强大,能够胜任大部分的工程制图,最重要的是其操作简单、易学易用,特别适合新手使用。各零件图如下图6-1、6-2、6-3、6-4、6-5、6-6、6-7所示。图6-1底板零件图图6-2踝关节零件图图6-3上板零件图图6-4膝关节零件图图6-5足零件图图6-6云台零件图图6-7踝关节零件图本节所提供的零件都是3D建模,自行打印完成的,上述所有模型的尺寸单位都是mm。虽然作者使用的建模软件是SolidWorks,同学们也可以根据自己平时的喜好和习

9、惯选用其他的建模软件操作,只要按照上图所给出的尺寸设计就可以,但是输出文件一定要选择.stl格式的才可以,因为目前市面上常用的桌面级3D打印机和准工业级3D打印机仅支持这种文件格式。另外,3D打印机原则上是选用精度越高的越好,但是同学们往往接触到的都是入门级别的设备,所以上述零件图各插口没有做的特别细小,一般的打印机都可以完成。上述零件打印的最低要求标准是机器打印精度0.2mm,打印层高0.4mm6.4 6.4 组装流程组装流程6.4.1 六足组装六足组装步骤一:把两个膝部关节固定在一起,示意图如图6-8、6-9所示图6-8 固定示意图(1)图6-9 固定示意图(2)步骤二:把膝部舵机和上一步

10、的零件一起固定,固定过程分解图如图6-10、6-11、6-12所示。图6-10 固定示意图(1)图6-11 固定示意图(2)图6-12 固定示意图(1)步骤三:将上一步完成的内容与胫部关节连接件固定,示意图如下图6-13、6-14所示。图6-13 固定示意图(1)2.2.3 运算符运算符1.1.赋值运算符赋值运算符赋值语句的作用是把某个常量、变量或表达式的值赋给另一个变量。C 语言中,符号为“=”这里并不是等于的意思,只是赋值,等于用“=”表示。注意:赋值语句左边的变量在程序的其他地方必须声明。图6-14固定示意图(2)步骤四:完成胫部和踝部的连接,连接示意图如图6-15、6-16所示。图6-

11、15 连接示意图(1)图6-16 连接示意图(2)步骤五:将踝部、胫部、膝部所有零件固定,固定示意图如图6-17、6-18所示。图6-17 固定示意图(1)图6-18 固定示意图(2)步骤六:重复前面五个步骤,完成其他五条腿的组合。6.4.2 身体部分组装身体部分组装步骤一:安装云台,示意图如下6-19、6-20.图6-19 安装示意图(1)图6-20 安装示意图(2)步骤二:将上板,底板,云台与6只腿拼装起来,拼装示意图如图6-21、6-22、6-23.图6-21 拼装示意图(1)图6-22 拼装示意图(2)图6-23 拼装示意图(3)组装过程中,如果各别零件因为打印的原因无法按进螺丝或者打

12、印件有抽丝,可以有刻刀将孔洞适当的钻一下,但是一定要注意力度,不要将孔钻的过大。上螺丝的时候不易将螺丝拧的过紧,因为PLA素材相对较脆,打印机崩的太紧极易造成碎裂。此外,机身上板不要提早上螺丝,要按系统硬件连接图将主控板和传感器固定后再安装机身上盖。机身整体布线要尽量简洁工整,不要让舵机线裸露在外面。尽量将所有传感器调试好后,确定布线没问题了再固定,避免重复工作。6.5 6.5 电路设计电路设计6.5.1 6.5.1 机器人硬件系统框图机器人硬件系统框图如下图6-24所示,通过机器人模式的选择,语音控制模块、是视觉模块或者其他传感器将采集到的数据传输给主控板Arduino Mega 2560,

13、主控板将收到的数据进行处理编译,并将执行命令传输给舵机控制器,舵机控制器根据主控板发送的命令进行操作,驱动相对应的舵机完成指定命令,最终实现对六足机器人的控制。图6-24系统框架图6.5.26.5.2主板连接主板连接1.Arduino Mega 2560 原理图 原理图如图6-25所示。图6-25 Arduino Mega 2560 原理图 本系统之所以使用Arduino MEGA 2560 作为控制板是因为2560具有较高的性价比,具有14路数字输入输出口,4路串口信号,6路外部中断,14路脉冲宽度调制,具有丰富的扩展功能。实际上本设计的基本功能,Arduino Leonardo 也能够实现

14、,但是从后期开发和扩展等方面原因考虑,选择2560无疑为本项目提供了不断升级的可能。2.系统硬件连接 图6-26系统硬件连接图图6-26是系统的主要部件连接图,Arduino在这里起到了一个中间协调的作用,视觉模块将采集的信息传输给2560,2560接收到信息并进行处理后发出指令到舵机控制器,舵机控制器转出相应的命令对舵机进行控制。同理其他的传感器也是这个工作原理。6.5.36.5.3视觉模块连接视觉模块连接1.视觉模块本项目采用了OPENMV视觉模块。Openmv搭载MicroPython解释器,允许用户在嵌入式上使用Python来编程.Python使机器视觉算法的编程变得简单得多。比如,直

15、接调用find_blobs()方法,就可以获得一个列表,包含所有色块的信息。使用python遍历每一个色块,就可以获取它们所有信息。并且,用户可以使用OpenMV专用的IDE,它有自动提示,代码高亮,而且有一个图像窗口可以直接看到摄像头的图像,有终端可以debug,还有一个包含图像信息的直方图。OpenMV 摄像头使用标准M12镜头,以更换不同焦距的镜头。而且,OpenMV采用可叠加的设计,方便用户添加各种各样的shield。2.openmv与Arduino的通信 OPENMV与Arduino mega2560 连接通信方法如表6-1和图6-27所示。表6-1对应引脚关系图图6-27硬件连接示

16、意图3.程序代码OPENMV上的代码(python)import sensor,image,timefrom pyb import UARTyellow_threshold =(60,80,20,40,20,45)#_autosensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QQVGA)sensor.skip_frames(10)sensor.set_auto_whitebal(False)clock=time.clock()width=180#定义屏幕宽度 height=120#定义屏幕长

17、度a=0 c=0#uart=UART(3,9600)while(True):clock.tick()img=sensor.snapshot()blobs=img.find_blobs(yellow_threshold)if blobs:for b in blobs:img.draw_rectangle(b0:4)#rect img.draw_cross(b5,b6)#cx,cy print(b5,b6)a=b5 if(a=width/3)and(a=width/3*2):c=2 elif awidth/3*2:c=3 else:c=4 uart.write(c)print(c)time.sle

18、ep(800)1.Arduino Mega2560 上的代码 void sj()int shijue=Serial1.read();/读取串口接收到的值 if(-1!=shijue)/(没接收到数据时是等于-1的,Arduino串口基础,不多说。)if(1=shijue)/前进 Serial.print(G4F1rn);delay(100);if(2=shijue)/向左转60度 Serial.print(G2F1rn);delay(100);if(3=shijue)/向右转60度 Serial.print(G5F1rn);delay(100);if(4=shijue)/向后转 Serial.

19、print(G5F3rn);delay(100);6.5.46.5.4语音识别模块连接语音识别模块连接1.本项目语言识别模块使用了 WEGASUN-M6核心板。该模块一款集语音识别、语音合成、语音(MP3)点播、RF(射频)功能、红外功能于一体的多功能模块。目前主要应用在智能家居、对话机器人、车载调度终端、高端智能语音交互玩具、楼宇智能化、教育机器人等方面。主打傻瓜式的简易操作、优越的语音识别和语音合成性能,应用领域十分广泛。2.模块连接方法语音识别模块与Arduino 2560接线方法:语音模块TXD-2560 RX1语音模块RXD-2560 TX1语音模块GND-2560 GND语音模块3

20、V3-2560 3.3V同时,注意语音识别模块的供电。如果发现语音识别模块的3.3V电压从2560的3.3V引脚取电无法进行语音识别或者播放语音,那请将语音识别模块的5V电源输入端接到UNO的VIN引脚端,并且选择外部9V的电源适配器给2560供电,这样就有充足的电流和电压了。实物连接图如图6-28所示。图6-28实物连接图3.程序代码(1)核心板代码KeyWordBuf01#开机 001|关机 002|$KeyWordBuf02#前进 003|后退 004|$KeyWordBuf03#快跑 005|快退 006|$KeyWordBuf04#左转 007|右转 008|$KeyWordBuf0

21、5#左走 009|右走 010|$KeyWordBuf06#蹲下 011|起来 012|$KeyWordBuf07#攻击姿态 013|攻击 014|$KeyWordBuf08#警戒 015|复位 016|$KeyWordBuf09#睡 017|醒 018|$KeyWordBuf10#开启遥控模式 019|关闭遥控模式 020|$KeyWordBuf11#开启自由活动 021|关闭自由活动 022|$KeyWordBuf12#开启声音模块 023|关闭声音模块 024|$KeyWordBuf13#开启感光模式 025|关闭感光模式 026|$KeyWordBuf14#开启震动模块 027|关闭震

22、动模块 028|$KeyWordBuf15#开启触摸模块 029|关闭触摸模块 030|$WriteKeyWordBuf#$WriteFlashText#|001!|002!|003!|004!|005!|006!|007!|008!|009!|010!|011!|012!|013!|014!|015!|016!|017!|018!|019!|020!|021!|022!|023!|024!|025!|026!|027!|028!|029!|030!|$(2)Arduino Mega2560 代码void sk()int val=Serial2.read();if(-1!=val)if(1=v

23、al)/站立 Serial.print(G0F1rn);if(2=val)/蹲下 Serial.print(G10F1rn);if(3=val)/前进 for(int i=0;i 50;i+)Serial.print(G2F1rn);delay(500);if(4=val)/后退 for(int i=0;i 50;i+)Serial.print(G3F1rn);delay(500);if(5=val)/左转 Serial.print(G4F1rn);delay(500);if(6=val)/右转 Serial.print(G5F1rn);delay(500);if(7=val)/左走 for(

24、int i=0;i 50;i+)Serial.print(G6F1rn);delay(2000);if(8=val)/右走 for(int i=0;i 50;i+)Serial.print(G7F1rn);delay(2000);6.66.6步态设计步态设计1.步态设计原理 六足机器人根据仿生学原理,行走方式采用三角步态。六条腿的昆虫行走时,一般不是六足同时直线前进,是把三对足分成两组,以三角形支架结构,互相交替前行。目前,大部分仿生蜘蛛机器人采用了仿昆虫的结构,六条腿分布在身体的两侧,身体左面的前、后足及右面的中足为一组,右面的前、后足和左面的中足为另一组,分别组成两个三角形支架,靠大腿前后

25、划动来实现支撑以及摆动过程,这就是最典型的三角步态行走方式。主要有身体重心比较低,容易稳定的优点。如下图6-29所示。图6-29 三角步态行走方式2.步态实现 六足机器人的行走移动依靠32路舵机控制器实现,该控制器原理图如图6-30所示:图6-30 控制器原理图3.控制代码上位机截图如图6-31所示。前进:#5P1700#11P1300#17P1300T300#3P1500#6P1700#9P1500#10P1300#13P1500#16P1300T300#5P1500#11P1500#17P1500T300#2P1700#8P1700#13P1500#14P1300T300#3P1700#6

26、P1500#9P1700#10P1500#13P1300#16P1500T300#1P1500#2P1500#3P1700#4P1500#5P1500#6P1500#7P1500#8P1500#9P1700#10P1500#11P1500#12P1500#13P1300#14P1500#15P1500#16P1500#17P1500#18P1500T300 图6-31上位机截图后退:#2P1700#8P1700#14P1300T300#3P1300#6P1500#9P1300#10P1500#13P1700#16P1500T300#2P1500#8P1500#14P1500T300#5P170

27、0#11P1300#17P1300T300#3P1500#6P1300#9P1500#10P1700#13P1500#16P1700T300#5P1500#11P1500#17P1500T300左转:#2P1700#8P1700#14P1300T300#6P1300#10P1300#16P1300T300#3P1500#9P1500#13P1500T300#2P1500#8P1500#14P1500T300#5P1700#11P1300#17P1300T300#3P1300#9P1300#13P1300T300#6P1500#10P1500#16P1500T300#5P1500#11P1500

28、#17P1500T300#1P1500#2P1500#3P1500#4P1500#5P1500#6P1500#7P1500#8P1500#9P1500#10P1500#11P1500#12P1500#13P1500#14P1500#15P1500#16P1500#17P1500#18P1500T300右转:#5P1700#11P1300#17P1300T300#3P1700#9P1700#13P1700T300#6P1500#10P1500#16P1500T300#5P1500#11P1500#17P1500T300#2P1700#8P1700#14P1300T300#6P1700#10P17

29、00#16P1700T300#3P1500#9P1500#13P1500T300#2P1500#8P1500#14P1500T300#1P1501#2P1501#3P1501#4P1501#5P1501#6P1501#7P1501#8P1501#9P1501#10P1501#11P1501#12P1501#13P1501#14P1501#15P1501#16P1501#17P1501#18P1501T300 6.76.7红外控制设计红外控制设计红外接收模块适用于红外线遥控和红外线数据传输。对于不同的遥控器,区别只是接到的数字不同。注意要买三脚的红外接收头,而不是直接购买红外对管。当然也可以买电

30、子积木的红外接收模块,它还多了一块小板和小灯,质量也相对好一些,容易固定,价钱稍贵。因为日光中有红外线,所以在室外使用可能受到影响。1.连接方法VCC接 Arduino 3.3V或5.5VGND接 Arduino GNDOUT接 Digital 11具体连接方式见下图6-32所示。图6-32 连接方式1.控制代码-第一部分-#include int RECV_PIN=11;long CH1 =0 x00FFA25D;(不同遥控器不同码值)long CH =0 x00FF629D;long CH2 =0 x00FFE21D;long PREV=0 x00FF22DD;long NEXT=0 x0

31、0FF02FD;long PLAY=0 x00FFC23D;long VOL1=0 x00FFE01F;long VOL2=0 x00FFA857;long EQ=0 x00FF906F;long a0=0 x00FF6897;long a100=0 x00FF9867;long a200=0 x00FFB04F;long a1=0 x00FF30CF;long a2=0 x00FF18E7;long a3=0 x00FF7A85;long a4=0 x00FF10EF;long a5=0 x00FF38C7;long a6=0 x00FF5AA5;long a7=0 x00FF42BD;lo

32、ng a8=0 x00FF4AB5;long a9=0 x00FF52AD;IRrecv irrecv(RECV_PIN);decode_results results;-第二部分-/*红外遥控*pinMode(RECV_PIN,INPUT);irrecv.enableIRIn();/开始接收方-第三部分-/*红外遥控*void yaokon()if(irrecv.decode(&results)/if(results.value=a1)/左转 Serial.print(G19F4rn);delay(9000);Serial.print(G0F1rn);/if(results.value=a2

33、)/前进 Serial.print(G2F5rn);/if(results.value=a3)/右转 Serial.print(G20F4rn);delay(9000);Serial.print(G0F1rn);/if(results.value=a4)/左走 Serial.print(G5F4rn);/if(results.value=a5)/站姿 Serial.print(G0F1rn);/if(results.value=a6)/右走 Serial.print(G6F4rn);/if(results.value=a7)/Serial.print(G19F8rn);Serial.print

34、(G0F1rn);/if(results.value=a8)/后退 Serial.print(G3F2rn);/if(results.value=a9)/Serial.print(G20F8rn);Serial.print(G0F1rn);/if(results.value=a100)/蹲下 Serial.print(G10rn);/if(results.value=a200)/起立 Serial.print(G11rn);/if(results.value=PLAY)/低姿态 Serial.print(G12rn);/if(results.value=PREV)/低前进 Serial.print(G7F1rn);Serial.print(G8F2rn);/if(results.value=NEXT)/低后退 Serial.print(G7F1rn);Serial.print(G8F2rn);/irrecv.resume();/Receive the next value 6.86.8成品实物图成品实物图1.站立姿态如图6-33所示。图6-33 站立姿态2.移动姿态如图6-34所示。图6-34 移动姿态3.攻击姿态如图6-35所示。图6-35 攻击姿态4.俯视图如图6-36所示。图6-36 俯视图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第6章-六足仿生机器人项目设计课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|