最新机器人课程设计报告资料_第1页
最新机器人课程设计报告资料_第2页
最新机器人课程设计报告资料_第3页
最新机器人课程设计报告资料_第4页
最新机器人课程设计报告资料_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档智能机器人课程设计总结报告姓 名:组 员:指导老师 :时 间 :精品文档精品文档一、课程设计设计目的了解机器人技术的基本知识以及有关电工电子学、 单片机、 机械设计、 传感器等相关技 术。初步掌握机器人的运动学原理、 基于智能机器人的控制理论, 并应用于实践。 通过 学习,具体掌握智能机器人的控制技术,并使机器人能独立执行一定的任务。基本要求: 要求设计一个能走迷宫 (迷宫为立体迷宫 )的机器人。 要求设计机器人的行走 机构,控制系统、传感器类型的选择及排列布局。要有走迷宫的策略(软件流程图) 。对于 走迷宫小车控制系统设计主要有几个方面:控制电路设计,传感器选择以及安放位置设计, 程

2、序设计二、总体方案2.1 机器人的寻路算法选择将迷宫看成一个 m*n 的网络,机器人通过传感器反馈的信息感知迷宫的形状, 并将各个 节点的与周围节点的联通性信息存储于存储器中, 再根据已经构建好的地图搜索离开迷宫的 路径。这里可选择回溯算法。对每个网格从左到右,每个网格具有 4 个方向,分别定义。并 规定机器人行进过程中不停探测前方是否有障碍物, 同时探测时按左侧规则, 进入新网格后 优先探测当前方向的左侧方向。 探测过程中记录每个网格的四个方向上的状态: 通路、 不通 或未知, 探测得到不同状态后记记录, 同时记录当前网格的四个方向是否已被探测过。 若某 网格四个方向全部探测过则利用标志位表

3、示该网格已访问。 为了寻找到从起点到终点的最佳 路径,记录当前网格在四个方向上的邻接网格序号, 由此最后可在机器人已探测过的网格中 利用 Dijkstra 算法找到最佳路径。并为计算方便,记录网格所在迷宫中行号、列号。并机 器人探索过程中设置一个回溯网格栈记录机器人经过的迷宫网格序号及方向, 此方向是从一 个迷宫网格到下一个迷宫网格经过的方向。 设置一个方向队列记录机器人在某网格内探测方 向的顺序。设置一个回溯路径数组记录需要回溯时从回溯起点到回溯终点的迷宫网格序号及 方向。考虑到迷宫比较简单, 且主要为纵横方向的直线, 可采用让小车在路口始终左转或者始 终右转的方法走迷宫, 也就是让小车沿迷

4、宫的边沿走。 这样最终也能走出迷宫。 本次课程设 计采用此方法。 即控制策略为机器人左侧有缺口时, 向左进入缺口, 当机器人前方有障碍是, 向右旋转 180,其余情况保持前进。2.2 传感器的选择 精品文档精品文档由于需要检测机器人左侧和前方是否有通路, 采用红外传感器对机器人行进方向和左侧 进行感知。 红外避障传感器是依据红外线的反射来工作的。 当遇到障碍物时, 发出的红外线 被反射面反射回来, 被传感器接收到, 信号输出引脚就会给出低电平提示信号。 本机器人系 统的红外避障信号采用直接检测的方式进行, 直接读取引脚电平。 传感器感应障碍物的距离 阈值可以通过调节传感器上的变阻器来改变。行进

5、过程中, 机器人可能会偏绿迷宫的横轴或纵轴的方向。 碰触传感器利用外力的作用 传递给单片机信息, 当碰触传感器碰到迷宫墙壁后, 传感器检测到信号就可以判断小车碰壁。 经过电路处理后, 信号输出接口输出数字信号送给控制器, 从而让控制器进行决策调整小车 姿态。本机器人系统共使用了 2 个碰触传感器, 分别安装在小车的左前方和右前方, 使得机 器人在偏离航向撞击迷宫侧面后可以立即对航向进行修正。四个传感器一共占用四个外部中断。3.3 总体结构设计三、具体实现3.1 芯片选择最小系统已经设计好,本次课程设计采用的控制芯片为 STM32F103RBT6精品文档精品文档它是 32 位的 Cortex-M

6、3 内盒的控制芯片 , 主频达到 72MHz, 拥有 128kB 闪存, 20kBSRAM,锁相环 , 内置 8MHz and 32kHz 时钟电路,具有 PWM模块,方便电机转速的控制。3.2 控制电路设计1)电机驱动:电机驱动电路原理图如图所示, 采用 BTS7960芯片驱动电机, 以控制机器人的两个驱动 轮,利用 PWM控制方法, 通过改变 PWM波的占空比,达到调节电机转速的目的,实现机器人 的前进,后退,转向,刹车等功能。每个电机都由一个H 桥电路驱动,由两个输入信号共同 精品文档精品文档 控制。两个电机共由 4路 PWM波进行控制, 结合上述的电机驱动原理, 小车运动方式可以通 过

7、如下方式实现:四个控制信号均为低电平时,电机停转,小车停止; 电机的左右轮电机同 向等速运行时, 可以实现前行或后退的动作; 小车的左右转向通过两轮差速来实现。 在本机 器人的设计中,需要实现的 90角度转弯,是通过电机定速运动和延时的配合完成的,通 过不断调试确定出最佳的旋转时间。2)电源模块:采用电池供电,可行的供电方案原理图如下(3)引脚(外部中断)分配:PA0,PA4,PA5,PA15 为中断输入引脚。 PA0 引脚对应的外部中断由机器人前向红外传感器 触发, PA4, PA5分别连接机器人前进方向的左侧和右侧的碰撞开关,PA4,PA5的上升沿信号代表机器人与迷宫的左,右侧发生碰撞,触

8、发相应地终端服务程序,调整航向。 PA15 接 收左侧红外传感器产生的触发信号, 当机器人左侧出现缺口时, 触发中断服务程序, 机器人 向左转向进入缺口。精品文档精品文档3.3 程序设计部分(1)机器人的移动:机器人靠两个驱动轮, 一个从动轮进行移动, 每个驱动轮由一个电机, 两个驱动芯片进行控制。驱动芯片输出电平的高低决定电机的转向,占空比决定了电机的转速。首先应配置芯片的 PWM模块,具体过程如下:#include pwm.hfloat mo1,mo2,mo3,mo4;void PWM_Init(u16 arr,u16 psc)RCC-APB1ENR|=1CRL&=0X00FFFFFF;G

9、PIOA-CRL|=0XBB000000;GPIOA-ODR|=16|1CRL&=0XFFFFFF00;GPIOB-CRL|=0X000000BB;GPIOB-ODR|=10|1ARR=arr;TIM3-PSC=psc;TIM3-CCER|=11|15|19|1CCMR1|=712|7CCMR1|=111|1CCMR2|=712|7CCMR2|=111|1CCER|=112|18|14|1CR1=0x0080; /ARPE 1?TIM3-CR1|=1EGR |= 1CR1|=0x01;本段代码使能 TIM3时钟,启用 PA6,PA7,PB0,PB1引脚的复用功能,并对计数器进行 相应设置(向下

10、计数) ,使得芯片能在这四个引脚上输出所需的PWM波。由于前进,后退,转向,都是重复性的动作,直接对这些操作进行宏定义,需要的时候 直接调用,能减轻程序编写的负担:#define Moto_PwmMax 899 /#define LEFT_MOTOR_F TIM3-CCR1精品文档精品文档#define LEFT_MOTOR_BTIM3-CCR2#define RIGHT_MOTOR_BTIM3-CCR3#define RIGHT_MOTOR_FTIM3-CCR4注: TIM3产生 PWM波相应寄存器的宏定义如下#define go_forwardLEFT_MOTOR_F =3500;LEFT

11、_MOTOR_B =0;RIGHT_MOTOR_F =3500;RIGHT_MOTOR_B =0;#define go_backLEFT_MOTOR_F =0; LEFT_MOTOR_B =3500; RIGHT_MOTOR_F =0; RIGHT_MOTOR_B =3500;#define turn_leftLEFT_MOTOR_F =0;LEFT_MOTOR_B =0;RIGHT_MOTOR_F =4000;RIGHT_MOTOR_B =0;#define turn_left_90LEFT_MOTOR_F =0;LEFT_MOTOR_B=0; RIGHT_MOTOR_F=4000;RIGH

12、T_MOTOR_B=0;delay_ms(800);delay_ms(800);delay_ms(600); RIGHT_MOTOR_F=0;#define turn_rightLEFT_MOTOR_F =4000;LEFT_MOTOR_B =0;RIGHT_MOTOR_F =0;RIGHT_MOTOR_B =0; delay_ms(200);#define turn_back_righLEFT_MOTOR_F=4000;LEFT_MOTOR_B=0;精品文档精品文档RIGHT_MOTOR_F=0;RIGHT_MOTOR_B=4000;delay_ms(800);delay_ms(800);d

13、elay_ms(400);LEFT_MOTOR_F=0;RIGHT_MOTOR_B=0;#define turn_back_leftLEFT_MOTOR_F =0;LEFT_MOTOR_B =4000;RIGHT_MOTOR_F =4000;RIGHT_MOTOR_B=0;delay_ms(800);delay_ms(800);delay_ms(400);LEFT_MOTOR_B=0;RIGHT_MOTOR_F=0;#define stopLEFT_MOTOR_F =0;LEFT_MOTOR_B =0;RIGHT_MOTOR_F =0;RIGHT_MOTOR_B =0;/ 几个机器人基本动作的宏定义响应值越大,由于采用向下计数的方式, CCR中的值代表相应引脚高电平持续时间长度, PWM占空比越大,驱动电机转速越快。(2) 机器人对外界的感知及相应中断服务程序的编写:#includeexti.hvoid EXTIX_Init(void)RCC-APB2ENR|=1CRL&=0XFF00FFF0;GPIOA-CRL|=0X00880008;GPIOA-CRH&=0X0FFFFFFF;GPIOA-CRH|

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论