机器人创新实验1介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成绩 中国农业大学 课程论文 (2014-2015学年秋季学期) 论文题目:机器人创新实验一实验报告 课程名称:机器人创新实验一 任课教师:吴刚 班  级:机制102 学  号:1007050418 姓  名:马玉磊 机器人创新实验一实验报告 实验名称:自动寻路机器人设计 小组成员:马玉磊 实验目的:使用机器人创意组件组装并使用TKstdio软件编写调试程序完成对自动寻路机器人动作的机械仿真 技术建议:摆动模块、转动模块、触须传感器、三轮机构、后轮驱动。 以下通过机器人要实现的功能来论述其机械结构设计: 实现前进,后退,左转,右转的轮式车身。车身采用三轮机构,采用后轮双轮驱动,前轮为自由轮。要实现此基础功能需要两个转动模块。两个转动模块需要两个圆周舵机来实现。 图1 基础功能模块机械结构 图2 基础功能模块机械结构 机器人在前进过程中在其左右方向触碰到障碍(即隧道墙壁)时,要实现自动避障,并转向相反的方向。要实现此功能,需要在基础功能模块的基础上,添加触发左右方向避障功能的两个触须传感器,安装在隧道探索车的左右两侧。特别的,为了实现探索车更好的转弯,特在车头安装飞轮装置,用来减轻探索车和墙壁的碰撞和摩擦。 图3自动调整行进路线功能模块机械结构 机器人在前进过程中遇到阻碍时,能够成功翻越并继续前进。要实现此功能,需要在基础功能模块的基础上,添加一个用于抬起前轮进行越障的摆动模块,摆动模块由标准舵机来实现;还需要添加一个触发越障功能的触须传感器,安装在前轮部位。特别的,在前轮抬起时小车需要支撑结构,故在前轮连杆结构上再固定安装一连杆结构,在前轮抬起时能够起到支撑作用,在正常行进时能够收到底盘处,不会对其正常行进产生影响。这样即实现了需求的功能,也实现了结构优化。 图4Robotway ARM7 LPC2138主控板控制接线示意图。1、2、3接口为传感器接口,接三个触须传感器;4为程序下载接口,连接USB转串口线;5、6、7、8、9为舵机接口接三个标准舵机和两个圆周舵机。舵机黑色线朝下,三针,最上针空余;10为电池接口或电源接口。 图6 控制接线示意图 程序: 用一死循环语句使程序永续执行;在循环语句中嵌套四段条件语句来实现隧道车的四种运动状态,即正常前行状态、左端触须传感器触发向右转并进行摄像、右端触须传感器触发向左转并进行摄像、前端触须传感器触发进行越障。由于正常前行为常态,而其他三种状态均为触发态、暂态。因此需引入一标志位flag来控制,flag为0时,常态;flag为1时,触发态。舵机控制用servo语句控制,触须传感器触发用Input语句控制。 程序源代码 #include config.h #include lib_io.h #include lib_arm.h int main(void) { unsigned int flag=1; Initial_ARM(); //初始化硬件 DelayNS(1500); //延时,确保初始化完成 while(1) { if(Input(1,1)==1) { LedIn(1,1); LedIn(2,2); LedIn(3,2); LedIn(4,2); Servo(1,120); Servo(3,90); Servo(4,0); DelayNS(1500); Servo(4,90); flag=1; } else if(Input(2,1)==1) { LedIn(1,2); LedIn(2,1); LedIn(3,2); LedIn(4,2); Servo(3,60); Servo(1,90); Servo(2,180); DelayNS(1500); Servo(2,90); flag=1; } else if(Input(3,1)==1) { LedIn(1,2); LedIn(2,2); LedIn(3,1); LedIn(4,2); Servo(1,60); Servo(3,120); DelayN

文档评论(0)

钱缘 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档