版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于小喵科技RosBot机器人开发板控制器机器人控制系统硬件和软件设计案例目录TOC\o"1-3"\h\u23605基于小喵科技RosBot机器人开发板控制器机器人控制系统硬件和软件设计案例 1228511总体设计方案 1221211.1设计思路 1309661.2设计结构图 278162硬件的设计与实现 2134632.1主控板的设计 248102.1.1主控板详细参数 4145922.2舵机 5240912.3避障探险模块 6227862.4WiFi模块 8218492.5电源模块 10220522.6视频数据采集模块 10316183软件的设计与实现 11144923.1开发环境的配置 11195493.2步态规划设计 11306793.3控制思想的整体设计 1328213.4舵机控制程序 1518293.5避障避险设计 16180593.5.1避障避险控制思想 16166353.5.2避障避险程序 171总体设计方案1.1设计思路该六自由度机器人采用RosBot开发板进行图形化编程,通过调制舵机的转动角度来实现控制转向[2],从而实现六自由度机器人的实地勘探。可以使用两种方式进行探险,一种方式是在针对近处物体时:使用超声波传感器进行避障探险;另一种方式是在针对远处物体时:因为是基于RosBot进行开发,所以搭载RosBot的WiFi模块,将摄像头采集的数据传输至PC,然后由上位机进行控制。系统主要包括六个模块:单片机控制模块、舵机模块、电源模块、视频数据采集模块、超声波避障避险模块、WiFi模块。1.2设计结构图本系统选用小喵科技出品的RosBot机器人开发板控制器,完全兼容UNO,运用多个系统模块的相互配合作为探测装置,通过超声波传感器进行避障或无限远程控制进行探测,由于Android端与WiFi模块间进行无限远程控制,所以结构图中用虚线进行对应,系统硬件结构图见图1.1所示。RosBotRosBot电源模块超声波传感器模块舵机机器人行走esp8266WiFi模块Android手机图1.1设计结构图2硬件的设计与实现2.1主控板的设计方案一:采用Arduino主控板,Arduino主控板是一款便捷灵活、方便上手的开源电子原型平台。Arduino主控板使用的编程软件叫做ArduinoIDE,该款软件的开发环境具备基本的setup()和loop()框架,编程较为简单,上传程序方便,相当于RosBot主控板的子板,但它也有自身的缺陷,制作项目时需要加载对应的库函数,有时需要使用编程器上传,同时Arduino主控板需要外接直流电机驱动板才能进行电机多路驱动、需要外接步进电机扩展版才能进行步进电机多路驱动、需要外接舵机扩展版才能进行舵机的多路驱动,无法满足本次设计的需求。方案二:采用RosBot主控板,RosBot主控板是一款图形化编程主控板。它是基于Mega328P芯片的一款板子,与ArduinoUNO的的主芯片是一样的,所用的图形化编程软件是Kittenblock。与ArduinoUNO相比,它具有的优势有五点:积木化编程。打通软硬件结合,降低制作的门槛。RosBot同时支持C++、ide、米思齐。可以直接用C++等代码编译,也可以通过Kittenblock转译成C++代码复制到其他环境中。功能性主板。主控板支持舵机、直流电机、步进电机驱动,不需要单独的驱动模块。接口多扩展强。板载多接口:大电流外部输入接口、板载串口转出接口、I2C接口、蓝牙、WFI接口、ICSP下载接口、直流电机、步进接口、转接板接口。与Arduino兼容。板子上引脚定义与ArduinoUNO引脚对应、支持ArduinoIDE编程、支持Arduino所有的电子模块。搭档树莓派。兼容树莓派接口,可连接树莓派机器人的功能扩展板。一个机器人的控制单元相当于机器人的大脑,是机器人的最核心的部位,选择一款既实惠又能实现自身功能的主控板尤为重要。因此,综合以上两种方案,在本次设计中选择集多功能于一身的RosBot主控板作为该机器人的核心控制单元。图2图2.1主控板图片2.1.1主控板详细参数对比以下两种主控板的详细参数,RosBot主控板的优势明显,CH340专用的串口下载芯片,稳定耐用,驱动容易安装;USB接口小巧;采用优质电源芯片,支持电压更宽;RosBot少的几个数字IO口,用来电机或步进电机驱动芯片了。并且IO口采用黄红黑更加清楚的排针进行管脚表示,使得插接市面上的Arduino,3PIN模块更加方便,不用再使用扩展版进行转接;独立的I2C接口,令插接更方便,更清楚。而普通的Arduino需要外接直流电机驱动板才能进行电机多路驱动,需要外接步进电机扩展版才能进行步进电机多路驱动,需要外接舵机扩展版才能进行舵机多路驱动,而RosBot根本不需要。ArduinoRosArduinoRosBot主控芯片MEGA328PMEGA328P串口芯片CH34016U2USB电压MicroUSB5V方形B口5V外部电源接口6~12V7~12V过流保护自恢复保险丝自恢复保险丝DigitalI/O
数字输入/输出端2、3、4、7、8、11、12、131~13Analog
I/O
模拟输入/输出端A0-A5A0-A5直流电机接口四路(驱动电流决定于外部电源,最大支持3A)无步进电机接口两路(驱动电流决定于外部电源,最大支持3A)无舵机接口十路(驱动电流决定于外部电源,最大支持3A)独立三排针扩展接口I2C接口无转接KB转接板接口无转接树莓派接口无转接WIFI/蓝牙接口无转接串口功能支持转出外部无转接表2.1主控板详细参数2.2舵机本设计使用的六自由度机器人,其中主要使用舵机来提供自由度功能,通过不断调节舵机的角度从而实现机器人的行走,而调试的过程是在线调试,简单方便。操控舵机主要使用三根线,分别为电源线,地线,信号线,主要使用信号线来接收PWM波来操控舵机角度的偏转。本文的六自由度探索机器人的舵机采用MG996R,20KG/cm360°,这个舵机扭力大,可转的角度广,可以实现更多的动作,4.8V~6.0V属于舵机的工作电压范围。舵机的组成原件主要是舵盘、驱动马达、位置检测元件、控制电路板及可变速的齿轮组[3]。转速、转矩、电压是舵机的几个主要参数。转速是由舵机无负载的情况下转过60度所需要的时间来衡量,舵机常见的速度一般控制在0.11/60度~0.21/60度[4]。因为要保证机器人行走的稳定性,所以本次设计要求的舵机速度较缓慢,如果舵机速度过快,则会导致行走出现偏差,严重会导致机器人歪倒以及舵机的使用寿命,如果舵机速度过慢,则会造成机器人行动迟缓,无法满足步态行走的要求,综上所述,舵机的速度要控制在0.18/60度。舵机的另一个重要参数是扭矩,影响着六自由度探索机器人性能,为了达到输出的动力恰好满足行走的设计要求,所以要求的转矩为12-15kg.cm。本次设计中选用的MG996R舵机属于模拟舵机。脉冲宽度调制信号作为主控板上舵机控制模块的控制信号,如表2.2所示,脉冲宽度从0.5ms变化到2.5ms所对应的舵机角度为-90度到+90度,呈线性变化[5]。PWM0.5ms1ms1.5ms2ms2.5ms角度-90度-45度0度45度90度表2.2脉宽的对应角度高电平持续时间(脉宽):0.5ms-2.5ms高电平持续时间(脉宽):0.5ms-2.5ms高电平持续时间(脉宽):0.5ms-2.5ms高电平持续时间(脉宽):0.5ms-2.5msPWM:20ms图2.3占空比图2.2舵机2.3避障探险模块本设计主要为了实现六自由度探索机器人在地质勘探,化工等领域的应用。由于在地质勘探领域受到地面不平整,有障碍物阻挡等因素的影响,所以利用传感器可以将其他信号转化为电信号的优点,反馈给主控制器,从而做出路径的改变。方案一:采用光电传感器,本设计如果采用光电传感器检测地形,至少需要四个,分别位于机器人前后左右方向,虽然光电传感器的工作原理简单,调试方便,只需通过发出射线,得到输出电平的高低来检测前方是否出现障碍物,但是安装的时候会造成机器人体积庞大,对环境的适应能力较差,红外射线在黑暗环境无法正常探测,且远距离精度差。方案二:采用超声波传感器HC-SR04,在空气中不断发射物理信号,然后反馈给主控板,此时物理信号转化为电信号,从而完成探测任务。本设计如果采用超声波传感器进行地形的探测,由于超声波的探测范围广,所以只需采用两个超声波传感器,分别位于机器人的左右两侧区域,安装方便,可直接安装在主控板上,当检测到障碍时,采用电平触发测距,精度高,能即时的反馈给主控制器,从而提高机器人的行走效率,其次,该传感器材质坚硬,在复杂环境不易出现破损。超声波传感器的工作原理如下:发射出的超声波向空中四面八方直线传播,遇到障碍物后它可以发生反射,反馈给主控制器,主控板的接收器在收到由发射器传来的超声波后,使内部的谐振片谐振,通过声电转换作用将声能转换为电脉冲信号,然后输入到信号放大器中,最后驱动执行器使超声波传感器的电路作出相应动作[6]。综合以上两种方案,选择方案二。HC-SR04引脚功能见表2.3,实物图见图2.4。序号名称引脚功能1VCC电源2Trig触发信号输入3Echo回响信号输出4GND地表2.3HCSR04引脚功能图图2.4HCSR04实物图若设超声波模块发出的声波和接受声波时间之间的差用t表示;用v表示它在空气中的传播速度;此时可以求出超声波模块与障碍的间距[7]。此间距由物理常识可知声波在空气中的传播速度是随着温度的升高速度越快。故而对它进行做温度补偿,对声速进行校正:其中,t表示实际测量温度值,v表示在空气介质里面的速度[8]。2.4WiFi模块在各种探险环境中,传统的有线控制已不能满足各种探索未知的需求,本设计采用“上位机+RosBot”,上位机可以是PC端,也可以是Android端,通过WiFi模块实现无线远程对机器人控制的解决方案[9]。WiFi模块选用体积小,功耗低、性能稳定、高度集成的ESP8266WiFi模块。ESP8266与其说是模块,倒不如说是比RosBot更小的一个具有WiFi功能的单片机,因为它可以编程,可以进行串口通信,有输入输出功能,可以接受和处理数据[10]。其次,因为它与板子的兼容性更好,更容易编写程序。但WiFi连接有好处也有坏处,它无法进行远距离通讯,对信号的依赖性较强,有机会再对通信模块进行改进。下图为WiFi模块的实物图。图2.5WiFi模块下图为esp8266原理图:图2.6esp8266原理图2.5电源模块电源模块为系统的主控板、视频数据采集模块、舵机模块、避障避险模块提供可靠的工作电压。可靠的电源方案也是整个硬件电路稳定可靠运行的基础[11],本文采用的电源是12V比赛专用电池,容量为1500mAH,供给主板和舵机等其它模块能够行走约半小时。可直接给主控板供电,其它模块直接连接在主控板上,不需要其他转换模块的参与。2.6视频数据采集模块视频数据采集模块在六自由度探索机器人无限远程控制中担任视觉系统的角色,它可以将我们的眼睛延伸到肉眼无法观测到的领域,让我们在危险区域及时做出调整,在机器人探险过程中扮演着举足轻重的角色。视频采集与传输的过程如图所示。图2.7视频采集与传输由于ESP8266WiFi模块的传输距离较远,所以选用的无线视频模块为FPV摄像头无线模块。它的主要工作原理是物象通过镜头生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D转换后变为数字图像信号,再送到数字信号处理芯片中加工处理,再通过USB接口传输到PC端或Android端进行处理,通过显示器就可以看到图像了[12]。完全符合通过WiFi模块向RosBot主控板发送控制信号来控制机器人的移动范围,符合此设计的要求。3软件的设计与实现3.1开发环境的配置RosBot主控板的控制代码与C,C++或Java等语言十分类似,只是加入了一些自身与硬件结合的控制语言,编程语言是以setup()开头,loop()作为主体的一个程序构架[13],使用的编程软件版本是Kittenblock1.7.7,运用简单易懂的图形化语言编写机器人的各种步态和其他控制动作,调试界面简单流畅。在Kittenblock上编好程序后下载到RosBot单片机上,可直接对单片机上的模块进行操作。3.2步态规划设计步态规划是机器人稳定步行的基础,如果没有一个好的步态规划,那么机器人将无法完成任何任务。在步态行走过程中,机器人的肩部、骻部、膝盖以及脚踝等各关节联动为一个整体,相互协调运作才能完成行走动作。在机器人行走过程中,以下几步显得尤为重要。重心左移:原先站立状态的机器人重心左移,使机器人的重心转移到左脚板上,左脚受力支撑全身,右脚离地。实现方法:通过调节双脚的腰部舵机1和足舵机2使机器人达到如下图所示位置。其原理类似正方形变成平行四边形的过程。图图3.1机器人重心左移右脚跨出:在重心落在左脚的情况下,右脚向前跨出。具体的实现方法是调节腰部舵机2和足舵机1。此时需要右脚的脚板与地面保持平行,这样会使行走变得非常简单;右脚着地:重心逐渐回到中心位置。同时调节左脚腰部舵机2与舵机1使机器人右脚着地,实现第一步的跨出。中心左偏:通过调节腰部舵机1与足舵机2使机器人重心右偏,将机器人重心落在机器人左脚。跨出左脚:在上一图的基础上调节左脚的腰部舵机2与足舵机1使机器人左脚跨出。左脚着地:原理同右脚着地。重心左移右脚收回:通过脚步舵机1足舵机2实现重心的左移,然后收回右脚,这样就实现了连续前进,而不是每一步都从立正开始立正结束,使机器人的行走更拟人更自然。3.3控制思想的整体设计执行程序的设计思路从三方面进行讲述,首先,在PC机上对六自由度探索机器人进行程序的编写工作,将程序下载到RosBot主控板上,实现对六个舵机的分级控制,通过控制六个舵机的转动角度来实现机器人的步态行走,通过调节六个舵机的转动速度来实现机器人的稳定前进[14];其次,由超声波传感器发射检测信号,当检测到有障碍物时,及时作出调整;最后,在复杂地形中,在摄像头提供镜头的前提下,可使用上位机PC端或Android端通过WiFi模块进行无限远程控制。具体的执行程序框图如下:开始开始寻迹前进寻迹前进超声波超声波发射检测信号或摄像头进行物像数据采集Y路线是否正常Y路线是否正常NN调整步态调整步态,继续前进N判断是否到达目的地N判断是否到达目的地Y结束Y结束图图3.2控制思想的整体设计3.4舵机控制程序根据前章的舵机介绍部分里,已经明白舵机的控制技术的关键问题在于转过的角度而不是转过的速度。由Mega328P芯片的计时器产生成脉冲宽度调制信号,产生信号的脉冲周期为20ms,然后把这相应的脉冲信号送到相对应的I/O端口处,这样与之相对应的舵机就开始动作了[15]。舵机可以控制机器人各个关节的停留角度,驱动简单,控制方便,使关节控制变得稳定。舵机的控制流程图如下:图3.3舵机控制流程图图3.4舵机控制程序在PC中使用Kittenblock软件中编写程序控制舵机角度和速度的变化时,需要调用Servo舵机库函数图3.4舵机控制程序3.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 香精香料安全生产制度
- 新茶饮生产车间管理制度
- 医技科安全生产培训制度
- 2025年酒店行业服务质量手册
- 水上作业安全生产制度
- 天然气公司生产管理制度
- 马铃薯淀粉生产管理制度
- 醋酸菌生产许可制度范本
- 电气试验安全生产制度
- 调味品生产作业卫生制度
- 房屋买卖合同全文内容
- 11BS4排水工程华北标图集
- YST 581.1-2024《氟化铝化学分析方法和物理性能测定方法 第1部分:湿存水含量和灼减量的测定 重量法》
- 电池测试岗位工作总结
- 吕国泰《电子技术》第7章触发器和时序逻辑电路
- 路灯养护投标方案
- (完整版)医疗器械网络交易服务第三方平台质量管理文件
- 中国高血糖危象诊断与治疗指南
- 人教版三年级语文下册《选读课文8 除三害》优质教学设计教案-9
- 人民医院检验科程序文件
- 在BBO桥牌在线练习桥牌的步骤
评论
0/150
提交评论