




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
六脚爬虫机器人的机械结构以及控制程序设计1 绪论1.1课题来源本项目来源于华中科技大学与伍斯特理工学院合作的WPI项目。1.2本课题的目的及其意义机器人是高级整合控制论、机械电子、计算机、材料和仿生学的产物。现在,机器人已经发展到一个全新阶段,各种机器人应运而生,从简单地追求功能到神似,到个性化;从单单发展工业机器人到工业、家用机器人全面开花,并取得了长足进步。六脚机器人作为行走机器人的一种,具有结构简单,稳定性好等优点,而本课题也并未在很高深的机器人理论花大量功夫,而更多地着眼于为大专院校提供机器人教学平台,或者用于科技馆展览。本课题所设计的机器人最大的特点是:理论通俗易懂、操作方便、便于二次开发。对于一些入门者(初步掌握控制论、机械设计、机械电子只是)来说,很容易便能被引领入机器人研究的殿堂。1.3 国内外发展现状对于仿生机器人,尤其是多足机器人,国内外均有大量研究。1990年,美国卡内基梅隆大学研制出用于外星探测的六脚步行机器人AMBLER。该机器人采用了新型的“腿机构,并由一台32位的处理机来规划系统运动路线、制运动和监视系统的状态。但由于体积和质量太大,最终没被用于行星探测计划。1993年,卡内基梅隆大学开发出有缆的八足步行机器人DANTE,用于对南极的埃里伯斯火山进行了考察,其改进型也在实际中得到了应用。1994年二代对距离安克雷奇145km的斯伯火山进行了考察,并传回了各种数据及图像。日本对多足步行机的研究从20世纪80年代开始,并不断进行着技术创新,随着计算机和控制技术的发展,其机械结构由复杂到简单,其功能由单一功能到组合功能,并已研究出各种类型的步行机。主要有四足步行机、爬壁机器人、腿轮分离型步行机器人和手脚统一型步行机器人。1994年,日本电气通信大学的木村浩等研制成功四足步行机器人Patrush二代。该机器人用两个微处理机控制,采用直流伺服电机驱动,每个关节安装了一个光电码盘,每只脚安装了两个微开关,采用基于神经振荡子模型CPG的控制策略,能够实现不规则地面的自适应动态步行,显示了生物激励控制对未知的不规则地面有自适应能力的特点。20002003年,木村浩等又研制成功四足步行机器人Tekken。该机器人用一台PC机系统控制,用瑞士Maxon直流伺服电机驱动,能适应中等不规则表面的自适应步行。我国对于多足机器人的研究起步则较晚。1989年,北京航空航天大学在张启先教授的指导下,孙汉旭博士进行了四足步行机的研究,试制成功一台四足步行机。钱晋武博士研究地壁两用六脚步行机器人,并进行了步态和运动学方面的研究。1990年中国科学院沈阳自动化研究所研制出全方位六脚步行机,不仅能在平地步行,还能上楼梯。1991年,上海交通大学马培荪等研制出JTUWM 系列四足步行机器人。2000年,马培荪等对第一代形状记忆合金SMA驱动的微型六脚机器人进行改进,开发出具有全方位运动能力的微型双三足步行机器人其每条腿的自由度变为3个自由度,总共6个自由度。2003年哈尔滨工程大学的孟庆鑫、袁鹏等进行了两栖仿生机器蟹的研究,通过研究多足步行机的单足周期运动规律,提出适合于两栖仿生机器蟹的单足运动路线规划方法,建立了生成周期运动的神经振荡子模型。目前市场上几款六脚机器人对比如下:(一)DEPUSH HexCrawlerHexCrawlerCompanyDEPUSHMaterial5052 alloy aluminum, 1/16” thick with clear anodizingLeg Movement2 DOFDimensionsBody: 49.68 x 40 cm, Height: between 12.3 and 15.2 cmCost$350+(二)Lynxmotion RB-Lyn-248RB-Lyn-248CompanyLynxmotionMaterial5052 alloy aluminum, 1/16” thick with black anodizingLeg Movement3 DOFDimensionsBody: 19.1 x 14.9 cm, Height: between 5.1 and 13.3 cm, Ground Clearance: up to 8.9 cmCost$261.35+(三)HexCrawler HDATSHexCrawler HDATSCompanyDEPUSHMaterial5052 alloy aluminum, 1/16” thick with clear anodizingLeg Movement3 DOFDimensionsBody: 52 x 49.7 cm, Height: between 12.3 and 15.2 cm, Ground clearance: 12.7 cmCost 10,000 (about $1,500)其中HexCrawler一代机器人使用的编程软件为Parallax公司提供的教育发展版芯片。图1.1为Phoenix公司提供的六脚机器人,图1.2则为Depush公司的六脚机器人一代外形,其每个脚仅有两个自由度。图1.1 Phoenix Hexapod图1.2 DEPUSH HexCrawler 1.01.4本课题的研究内容六脚机器人基本结构的设计,首先使之能够实现三脚步态、四脚步态、波动步态等,以满足行走要求;然后,能够感知外界环境的变化,实现避障报警等功能;最后,实现对机器人的远距离控制。具体要求为:设计机器人机械结构,使其可以完成前进,后退,左转,右转,侧移,扭动身躯等简单动作;可以完成抬脚,简单舞蹈等动作;1、编写机器人各种基本动作的软件代码,使其能完成以上动作;2、机器人可以接受电脑无线控制,编写相应无线控制程序;3、机器人可感知外界环境,编写相应传感器处理程序;4、对所有程序进行综合处理,协调各程序之间的关系。2 六脚机器人机械结构设计介绍2.1 功能需求与分析作为六脚仿生机器人,在追求神似的同时,关键在于能否像爬虫一样完成各种行走动作。本课题对机械结构的要求不高,但需要满足下面几点:灵活度高、稳定性好、能够实现多足机器人的基本步态。针对这几点,同时按照德普士公司的要求,再参照目前市面上存在的六脚仿生机器人,最终拟定的机械结构设计方案为:在DEPUSH HexCrawler 1.0(图1.2)的基础上每只脚增加一个舵机,即将自由度由两个提升为三个。2.2材料选择与结构设计介绍根据目前市面上的六脚仿真机器人,本课题选用5052铝合金作为机器人的主要材料,这样机器人既能满足强度要求,也能满足轻便性要求。同时,对外表进行烤漆处理,显得厚实而稳重,富有质感。如图2.1为机械结构的总三维图。图2.1 六脚机器人三维总图机器人整体上采用对称式结构,由六只脚和底架(身体)组成。每只脚有三个关节,每个关节处为采用舵机连接,可在固定平面内旋转180,如图2.2所示。其中舵机1控制机器人脚前后摆动;舵机2控制机器人上下摆动;舵机3控制机器人内外伸缩。三个舵机配合即可实现机器人的走动。图2.2 六脚机器人单脚结构图机器人身体(图2.3)、脚(图2.2)上均布满各种镂空图案,主要有两点作用:一、减轻机器人重量;二、增加机器人的美观度。由于机器人的完全对称性结构,其前后由认为设定,即图2.1中Leg1、Leg4在前,Leg3、Leg6在后。图2.3 六脚机器人底架结构图 机器人的主要尺寸为: 机器人全长:500.0mm; 底架(身体宽):228.0mm; 舵机1(Leg1)距底架最前方距离:60.0mm; Leg1与Leg2距离:195.0mm; Leg1与Leg3距离:390.0mm;每只脚上舵机2与舵机3距离:120.0mm; 舵机3与脚底距离:150.0mm。3 舵机及舵机控制板原理与应用 本章主要介绍舵机以及舵机控制板(PSCU)的原理、使用方法与程序编写。3.1 舵机原理介绍舵机是一个通过输出轴的转动来控制物体转动的装置。它在特定编码的驱使下可以转动到工作范围内的任意给定位置。因为它的轻便,位置控制简易且精确,在机器人中使用尤多。多舵机的协调工作可满足机器人的多自由度要求。舵机可以实现0180的旋转,当轴处于正确位置时,舵机将停止运动;当所在位置不对时,电路则驱动电机运转到需求位置。舵机是采用比例调节方式控制速度。当舵机转动的距离大时,则加载在舵机上的能量就大,反之亦然。而舵机的转动角度控制是由加载在控制线上的脉冲周期完成的,即所谓的脉冲编码调制。舵机设定为每隔20ms接受一个脉冲,这样的话,实际脉冲长度就可用来控制舵机转动的角度。如图3.1,例如1.5ms的脉冲可使舵机转动90。图3.1 舵机转角与脉冲周期关系图当舵机安装好后,需要获取其初始位置值,为编程做准备,具体可见3.3节关于PSCI软件的介绍。3.2 舵机控制板原理介绍由上述机械结构介绍可知,本六脚机器人是通过控制18个舵机来实现机器人的运动的。但如何协调好各舵机的动作,让其满足功能需求?这就需要用到舵机控制板。舵机控制板按控制舵机数目(接口数)的多少,可分为8路舵机控制器,16路舵机控制器,32路舵机控制器等等。考虑到成本以及控制舵机的数量,本课题采用两块16路舵机控制器串联的方式来控制舵机。选用型号为PARALLAX公司提供的Propeller Servo Controller USB(#28830,简称PSCU)。如图3.2所示:图3.2 舵机控制板PSCU具有下述多项特点:可串联两块控制板实现32路舵机控制; 独立的螺旋式接线柱为控制板供电,舵机则可通过开关控制关停; 其所用固件开放源代码; 可通过USB接口或者串行通信接口编程; 舵机速度可控。 PSCU规格及性能: 电源要求:逻辑电平5VDC60mA,4.87.5VDC控制舵机; 通信:异步串行通信2400bps或者38.4kbps(TTL或USB); 工作温度:32158F(070C); 尺寸:2.26x1.80x0.65in(57.3x45.7x16.5mm);3.3如何使用舵机控制板在使用控制板前,需通过螺旋式接线柱给控制板提供4.87.5V的直流电,同时为使舵机运动,还需给舵机提供5V的直流电。此项可通过USB接口(如图3.3)或者通过舵机控制板左上方的Serial In 处的杜邦针供电(TTL电平,如图3.4)。图3.3 PSCU-USB供电电路连接图图3.4 PSCU-主控制板供电电路连接图USB调试:安装FTDI VCP驱动(下载地址:/usbdrivers);安装PSCI软件(访问网址,并搜索28823)。双击软件图标,即可获得图3.5所示,连接好USB线,在界面上选择COM口,获取PSC版本,即可使用。图3.5 PSCI控制界面图中每个channel的进度条,可发现对应舵机会向相应方向发生一定度数的旋转。这可用来进行舵机控制调试,从而获取舵机位置值,来书写步态。注意:图中数据在编入ARM程序中时,应先除以2倍,才是实际数据,即图中的中心出1500对应实际的750。更多功能可参照PARALLAX公司提供的Propeller Servo Controller USB说明文档。当使用双块板时,其连接方式为:首先将主板的Serial In(两排,选上排)引出按高低电平信号线要求插在主控制板(STM32板)上,其中红色线接5V电源,黑色线接地,白色线接信号线,即PA9。然后将副板的Serial In(上排)引出插在主板的Serial In处(下排)。最后通上电源即可。了解了PSCI的基本功能,并按要求连接好电路后,首要做的就是将舵机位置的初始值找出。通过拖动进度条,并观察机器人各腿的位置,从而确定舵机初值。笔者提供的舵机初始值均为六脚与身体垂直时的值,且2、3关节夹角近似为90。本项目采用的事Hi-Tec公司生产的HS-322HD舵机,如图3.6。图3.6 HS-322HD舵机其主要技术参数如下:重量:43g尺寸:402036.5mm拉力:4.8V 3Kg.cm拉力:6.0V 3.7Kg.cm转速:4.8V 0.19sec/60转速:6.0V 0.15sec/60计算电流:0.35A3.4 控制板程序编写 基本工作准备与注意事项:前述工作准备停当,即可开始程序的编写。PARALLAX公司提供的说明文档中提供了BS2程序,需要通过C语言转译,才可供ARM板识别。首先注意的是PSCU板的默认波特率为2400bps,所以在编写串行通信程序时,应将串行通信的波特率设置为2400bps(具体见4.4节关于USART设置的介绍)。当然本控制板亦可通过程序设置,将波特率改为38.4kbps,具体内容下面会介绍到。此外,控制板接收的异步通信数据格式要求还有,正相,8个数据位,无奇偶校验位,1个或2个停止位。其次控制板分为主副板,则对应的舵机控制通道号即为031;即副板的通道号再原号基础上加16即可。如果按序连接舵机,可使编程变得较为简单,通过简单的数学关系进行数据处理,但线路凌乱,看起来不是很美观;本课题采用的是对称连线,即选用通道号08,2331;当然,这样编程相对就复杂一些。最后关于主副板的界定还需提醒一句,由于硬件可能出现bug,实际上控制板可能通道号等没有按照说明书的来,在调试过程中,可多试几次,按照实际结果编程。本课题在调试过程中即出现了问题,实际的主副板是颠倒的,且必须将副板与主控制板(STM32)连接才可使用。通信协议规则:PSCU为用户提供了多种控制功能,但每种控制字符串均是以!SC开始,以0x0D结束,中间有间隔4个主控制字符,下面将一一介绍:位置命令设置舵机的位置控制字符串为:“!SC” 其中channel为通道号,即前述的031;ramp speed为一字节值,用于舵机转速控制,其变化范围为063,且数值越大,转速越小;lowbyte为舵机位置的低字节,highbyte为舵机位置的高字节。通过改变lowbyte与highbyte值即可改变舵机位置,其值变化范围为2501250。位置命令控制板最基本的命令,往往也是唯一用到的功能。通过此命令,可以实现舵机按要求的转动,从而满足行走等多功能要求。SBR设置波特率控制字符串为:“!SCSBR” 其中mode是用来设置波特率的,0代表2400bps,1代表38.4kbps。控制板的默认波特率为2400bps,无需设置,但如果需要使用38.4bps的波特率进行通信时,可使用该程序对波特率进行更改。RSP返回位置值控制字符串为:“!SCRSP” 其中channel为通道号。与VER?一样,需要进行输入输出的设置,方能返回位置值,这对编程很有用处,可以通过读取位置值,判断其是否到位来实现延迟,精确性较高。本课题未使用。读者可拓展功能。PSS设置软件口控制字符串为: “!SCPSS” 其中mode为0代表015;1代表1631。可能由于板子的问题,实际过程中并未起作用,当控制板没问题时,可以根据个人喜好设置控制板的端口号,为编程提供便利。PSD使端口无效控制字符串为: “!SCPSD” 其中channel为通道号。此功能与PSE功能配合使用,在适当时候可能才生意想不到的效果。PSE使端口恢复有效控制字符串为: “!SCPSE” 其中channel为通道号。此功能用于PSD后,用来恢复端口的正常使用。其余的功能控制命令此处便不再赘述,因为一般情况下无法用到。C语言程序编写简介:由于说明书中只提供了BS2程序,较难普及,需使用应用较广的C语言编写。从控制命令的格式可以看出,无论哪种方式,都是8字节的字符串,于是,可定义一个联合体(结构体亦可),来储存这一串字节:typedef union _SERVO_PACKET char stream8; struct char CR : 8; char B3 : 8; char B2 : 8; char B1 : 8; char B0 : 8; unsigned SC : 24; packet; SERVO_PACKET; SERVO_PACKET pac;并将三字节的SC初始化为0x215343或”!SC”,将CR初始化为0x0D。这样在编写各种控制命令函数时,只要改变B0B3的值即可。例,位置命令函数:void SendPacket(char RS, char Channel, int Position) int i = 0; pac.packet.B0 = Channel; pac.packet.B1 = RS; pac.packet.B2 = LOWBYTE(Position); pac.packet.B3 = HIGHBYTE(Position); for(i = 7 ; i = 0 ; i-) ser_putbyte(pac.streami); /该函数4.4节介绍,作用为发送单个字节 其中LOWBYTE()、HIGHBYTE()函数的定义为:#define LOWBYTE(v) (unsigned char) (v) #define HIGHBYTE(v) (unsigned char) (unsigned int) (v) 8)其功能为获取数值(位置值)的低八位与高八位。这即可为编程提供很大方便。以此类推,其它命令的函数可以根据需要只要参考上述的位置命令函数编写即可。在此基础上以及之前用PSCI软件调试出的舵机初始值,即可编写舵机初始化程序了。void Initservo(void) int i=0; for(i=0;iCRL=(GPIOD-CRL&(0x0000000F04)|0x00000003CRL=(GPIOD-CRL&(0x0000000F04)|0x0000000404其中第一行将PD1设置为推挽输出模式,第二行将PD1设置为浮空输入模式。在使用时,只需在程序前,加入一行DAT_OUT;或者DAT_IN来切换PD1输入输出。当书写其它I/O口的程序时,只需将GPIOD换成相应I/O口,如果端口号为07,则只需将右边的04改成端口号*4的积,例如PA0则为00,如果端口号为815,则需将CRL换成CRH,同时DR = (data & 0xFF); return (data); 函数二:int SendChar (int ch) USART_SendData(USART1, (unsigned char) ch); while (!(USART1-SR & USART_FLAG_TXE); return (ch); 上述两个函数的功能等同,在写程序时可以随意调用,例如3.4节提到的SendPacket()函数便调用了上述的函数一。接收一个字节u8 RByte(void) u8 out=0;while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) = RESET) /等待接收完毕 out = (USART_ReceiveData(USART1); /接收一个字节return out; 该函数用于接收单个字节,在无线通信时可用到。发送一个字符串void Print_String(u8 *p)/发送一串数据 while(*p) USART_SendData(USART1, *p+); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET) 当连续发送的字符很多时,可以选用该函数以字符串形式发送。接收一个字符串void SerialIn(u8 *buf,u8 len) unsigned char i;for (i = 0; i CTRL &= 0xfffffffb; fac_us = SYSCLK / 8; fac_ms = (int)fac_us * 1000; fac_s = (int)fac_ms * 1000; 根据STK控制寄存器知,将02位设置成3,16位设置为1,则意味着:开启Systick功能、开启Systick中断、使用HCLK/8作为Systick时钟、上次读取本寄存器后,Systick已经数到了0;根据选用的时钟书写,调用时应写作delay_init(72);、可根据需要书写。然后书写延迟程序,以毫秒延迟为例:void delay_ms(int nms) /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025劳动合同法 员工合同
- 白山事业单位笔试真题2025
- 2 整式的乘法说课稿-2025-2026学年初中数学北师大版2024七年级下册-北师大版2024
- 第3课 突破封锁线说课稿-2025-2026学年小学信息技术(信息科技)第四册下粤教版
- 3.3 紧缺的水资源说课稿-2025-2026学年初中地理晋教版八年级上册-晋教版2012
- 2025合同样本:物料与采购管理系统协议范本
- 化肥厂合同审核管理制度
- 2025合同范本:股权激励分配协议示例
- 第8课 数字化生活教学设计-2025-2026学年小学地方、校本课程浙教版人·自然·社会
- 41. See Me Skip说课稿-2025-2026学年小学英语1a典范英语(Good English)
- 表面活性剂的基本作用
- 员工网络安全责任书
- 工程建设项目审批流程图(政府投资工程建设项目(市政类线性项目))
- 消防安全周巡查记录表
- 士林变频器说明书SL
- 博雅汉语准中级加速篇1
- 第二章第一节 遗传论与环境论心理学课件
- 九年级物理上册《第十三章 内能与热机》单元检测卷及答案(沪科版)
- 能源化学与能源化工概论-第一章 能源简介
- GB/T 16866-2006铜及铜合金无缝管材外形尺寸及允许偏差
- 量子信息与量子计算课件
评论
0/150
提交评论