




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要机器人技术是一个集环境感知、轨迹规划、机械手应用等功能于一体的机电一体化系统。它是集中了计算机、机构学、传感技术、电子技术、人工智能及自动控制等多科而形成的高新技术。人类社会始终朝着自动化和智能化方向发展,机器人研发、制造和应用将成为衡量国家科技创新和高端制造业水平的重要标志,是国家科技发展的战略需求。智能机器人的下一步发展将体现在作业能力、人机交互、安全性等诸多方面的提升和改进上。所以,随着社会的发展,智能化已经成为各类产品的主要发展方向,人们也在不断的用科技来改变生活,基于此,我们考虑将平衡车与机械臂相结合,制作一款自平衡服务机器人。本文介绍了基于STM32F103单片机的自平衡小车系统的设计。系统基于陀螺仪,利用PID平衡算法,对小车的速度倾斜角度平衡状态来进行检测,并通过单片机来控制电机来实现小车平衡地运动。系统中采用舵机控制板控制舵机,使机械臂完成一定的动作。本次设计将手机与机器人联系起来,通过手机可以向平衡小车发送命令,平衡小车也可以将自身的数据发送到手机上,从而可以通过手机实时地控制小车,也能在手机上观察到小车的状态。此款机器人主要针对办公室生活和家庭生活中,他可以为在我们疲惫的时候为我们跳一支舞蹈,通过手机蓝牙控制机器人的活动,方便快捷。希望我们的这个机器人可以为我们的生活提供方便,使得我们的生活更为简单。关键词:自平衡 机械臂 手机控制目录第一章 设计综述11.1 项目概述11.1.1 项目背景11.1.2 研究现状11.2 系统设计任务概述31.3 课程设计主要内容3第二章 方案设计42.1 机械结构方案设计42.2 驱动方案选择52.3 传感器的选择62.3.1 姿态检测传感器62.3.2 速度传感器62.4 结构的合理性8第三章 机械系统设计83.1 机械系统总体方案83.2 关键尺寸设计93.3 关键零部件结构设计103.4 驱动关节运动轨迹规划11第四章 控制系统设计124.1 控制系统总体方案124.2 运动控制器选型124.2.1 电机驱动模块12 4.2.2 驱动电机控制电路设计134.3 传感检测外围电路设计144.4 电源供电电路设计14第五章 软件系统设计155.1 软件系统总体方案155.2 平衡控制方案与流程155.2.1 PID算法简介155.2.2 直立控制165.2.3 速度控制175.2.4 转向控制185.3 蓝牙控制方案195.3.1 基本配置195.3.2 串口3接收中断205.4 舵机控制方案205.4.1 基本配置205.4.2 发送数据函数215.5 手机APP控制端介绍235.5.1 界面介绍235.5.2 控制方法23第六章 装配与调试256.1 机器人系统整体装配256.2 系统调试流程266.3 设计创新点266.4 系统缺陷与改进26第七章 市场应用前景分析277.1 市场调查分析277.2 市场行业分析277.3 目标市场的确定以及市场实施287.4 产品未来市场描述28第八章 总结及感想298.1 项目总结298.2 感想29参考文献30附录一 材料清单附录二 程序源代码第一章 设计综述1.1 项目概述1.1.1 项目背景机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。中国的机器人专家从应用环境出发,将机器人分为两大类,即工业机器人和特种机器人。所谓工业机器人就是面向工业领域的多关节机械手或多自由度机器人。而特种机器人则是除工业机器人之外的、用于非制造业并服务于人类的各种先进机器人,包括:服务机器人、水下机器人、娱乐机器人、军用机器人、农业机器人、机器人化机器等。在特种机器人中,有些分支发展很快,有独立成体系的趋势,如服务机器人、水下机器人、军用机器人、微操作机器人等。国际上的机器人学者,从应用环境出发将机器人也分为两类:制造环境下的工业机器人和非制造环境下的服务与仿人型机器人,这和中国的分类是一致的。电动平衡车,又叫体感车、思维车、摄位车等。市场上主要有独轮和双轮两类。其运作原理主要是建立在一种被称为“动态稳定”(Dynamic Stabilization)的基本原理上,利用车体内部的陀螺仪和加速度传感器,来检测车体姿态的变化,并利用伺服控制系统,精确地驱动电机进行相应的调整,以保持系统的平衡。是现代人用来作为代步工具、休闲娱乐的一种新型的绿色环保的产物。本次项目即为将机械手结构与平衡车相结合,使平衡车的便携性、趣味性与机械手的功能性相结合,实现机器人服务于人类的想法。1.1.2 研究现状 近年来,国内外多家科研单位和企业以及自平衡代步车的爱好者都对自平衡理论的发展做出了许多的有益的贡献,大大推进了自平衡技术的发展,同时也出现了一批有代表性的自平衡机器人和载人代步车作品。2002年,美国Lego公司的Steve Hassenplug设计了如图1.1所示的两轮自平衡传感式机器人Legway。这个设计引入了电机的差动驱动方式,它可以工作在倾斜面甚至不规则表面上,可遥控操作。通过对电动机进行遥控,Legway可以在前行,后退和转弯时保持平衡,可以实现零半径转弯和U型回转。 图 1.1 Legway 图 1.2 NEXTway 2007年,日本早稻田大学的Ayo Watanab。在Legway的启发下设计制作了NXTway,如图1.2所示。2002年,三洋电机展示了可依靠上体倒立来保持平衡的双轮行走机器人FLATHRU,如图1.3所示,大小为602x463x564mm,重20kg。移动速度方面,平地行走时最大30cmlS,可搬运重量最大为10kg,运行时间约为1小时。车轮中嵌有一个输出功率为90w的直流电动机,头部则嵌入了两个相同的电动机。为了检测上体的平衡情况,使用了3个陀螺仪和1个3轴加速度传感器。 图1.3 日本三洋电机的双轮行走机器人 图1.4 深圳固高科技教学用自平衡小车 深圳固高科技有限公司研制的教学用自平衡小车,如图1.4所示,大小为260mmx450mmx730mm,使用85W减速比10: 1的直流伺服电机,最大移动速度1.6m/s ,24V镍氢电池供电,电源持续工作时长大于1.5小时,最大爬坡角度20度。2002年,美国Segway公司开发了世界上第一部能够自平衡的两轮电动车,时速高达20km/h,如图1.5所示。该电动车把人们从传统的“三点平衡”和以低重心、大而稳的底盘设计来避免倾斜的束缚中解脱出来,通过检测车体的角度和角速度,用适当的回复转矩来避免倾斜摔倒。Segway使用的是航空级陀螺仪、一组倾斜传感器、一套复杂的“直觉软件”、一个加速度计、十个微处理器、两个镍氢电池组、一台电动机和每秒检测一百多次驾驶者重心的传感器。2007年,美国麻省理工学院的几名学生设计制作出了一台自平衡小车,如图1.6所示。中心处理器采用的PIC单片机,主程序采样频率达100Hz,传感器采用惯性元件陀螺仪和加速度计。 图1.5 美国Segway公司产品 图 1.6 麻省理工学院学生的DIY Segway 以上是国内外两轮自平衡机器人和自平衡代步车的研究现状。这些机器人和代步车对本课题的研究提供了很好的指导作用,为下面的研究工作提供了很好的参考。11.2 系统设计任务概述 (1)机器人能够实现自平衡; (2)机械手臂可以完成特定的动作; (3)实现蓝牙控制,可以通过手机软件控制小车的前进、后退、转弯以及机械臂的动作;1.3 课程设计主要内容 (1)资料分析:查阅相关文献资料,对资料进行分析总结。 (2)机器人总体设计:确定机器人的具体任务要求,根据任务初步拟定机器人的技术参数、运动形式、机械结构、驱动方案、传动方案、控制方案等。 (3)机器人机械结构设计:将机器人分解为车身结构、机械臂和车轮等若干部分,分别对各个结构的关键部件进行详细设计并校核,绘制机器人总装图和关键零部件图。 (4)传感和信息检测及信息传输:根据任务要求,完成相关信息检测、处理,并完成信息的正确传输。 (5)运动控制方案设计:基于传感信息,采用STM32完成机器人控制系统硬件和软件的设计和系统调试。 (6)编制课程设计说明书。第2章 方案设计2.1 机械结构方案设计 图 2.1 机器人整体效果图 所设计机械结构整体图如图2.1所示。2.2 驱动方案选择常用在机器人中的电机有三种类型:直流减速电机、步进电机、伺服电机,其特点及优点如表格1所示。表格 1 不同电机比较类型特点优点直流减速电机是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力矩。低转速,大力矩。步进电机将电脉冲信号转变为角位移或线位移。它的旋转是以固定的角度一步一步地运行。通过控制脉冲个数来控制角位移量达到准确定位的目的。伺服电机1.体积小、动作快反应快、过载能力大、调速范围宽。2.低速力矩大, 波动小,运行平稳。3.低噪音,高效率。可使控制速度,位置精度非常准确,可以将电压信号转化为转矩和转速以驱动控制对象。由于直流减速电机控制较简单,能够提供较大力矩,成本低,所以最终选择直流减速电机。2具体型号为:JGA25-371减速电机,如图2.2。选择TB6612FNG电机驱动模块,如图2.3。 图 2.2 JGA25-371减速电机 图 2.3 TB6612FNG电机驱动模块2.3 传感器的选择2.3.1 姿态检测传感器 选择MPU6050陀螺仪,如图2.4所示,其引脚如图2.5所示。 本设计中所采用的陀螺仪加速度设模块为MPU6050,之所以选择这个模块,是因为其有以下优点:(1)集角度测量与加速度测量于一体;(2)其那同时测量三轴上的角度与加速度测量;(3)其输出为数字信号,便于处理于存储与传输;(4)测量范围大,反应快。 图 2.4 MPU6050 图 2.5 MPU6050引脚 2.3.2 速度传感器采用光码盘测速模块。此模块有以下优点:(1)测速精度高,反应快,因为其一圈有高达60个栅格;(2)能测正反转。使用时,长时间挡住或者不挡均没有输出,作为相位检测,只有在对射的上升沿和下降沿才会有波形输出,所以转动码盘或者用不透明物体来回切换状态的时候才会有方波输出,高速状态下,类似正弦波或者锯齿波。光码盘测速原理图如图2.6所示。示波器波形检测如图2.7所示。电机正反转影响第二个脉冲信号,与第一个脉冲信号的错位左轮光码盘单片机信号处理(5V高低电平)无需外部电路,接上5V与GND,信号线跃出信号右轮光码盘图 2.6 光码盘测速原理图 图 2.7 示波器波形检测2.4 结构的合理性(1)整体结构连接处采用螺栓进行连接,关键部位采用双螺母防松,整体连接稳定可靠;(2)系统前后左右采取对称设计,有利于平衡车平衡;(3)平衡车机械臂和车体部分采用圆柱支撑,强度大,不易抖动,稳定性高;(4)机械臂部分采用专用舵机架连接,精度高,稳定性好。第3章 机械系统设计3.1 机械系统总体方案图 3.1 机械系统总体方案 机械系统总体由机械臂和车体组成,如图3.1所示。 机械臂由舵机和舵机支架组成。 车体由轮胎、L形支架、电机、联轴器、亚克力板、支撑柱、螺栓、螺母等组成。3.2 关键尺寸设计 首先由舵机及舵机支架组合成为机械臂,基于此设计小车整体尺寸,为:。 机器人三块支撑板设计分别见图纸所示。3.3 关键零部件结构设计 机械臂部分采用U形舵机架等通过螺栓进行连接,如图3.2所示。 车轮部分由L形支架、电机、联轴器、轮胎组成,如图3.3所示。 图 3.2 机械臂 图 3.3 车轮 3.4 驱动关节运动轨迹规划 图 3.4 动作组图 车轮部分在平衡状态时,由程序控制其前后运动以保持车体平衡。使用手机控制端可以控制其前后左右运动。 机械臂部分,每个机械臂包含两个舵机,为2个自由度,机械臂要完成图示动作,所以对此一系列动作进行轨迹规划。如图3.4。第4章 控制系统设计4.1 控制系统总体方案图 4.1 电路原理图 控制系统采用STM32F103作为控制核心,与蓝牙、电机编码器、舵机控制板、电机驱动模块、MPU6050等连接。如图4.1。44.2 运动控制器选型4.2.1 电机驱动模块选择TB6612FNG电机驱动模块,如图4.2。图 4.2 TB6612FNG电机驱动模块 TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机。 TB6612FNG每通道输出最高1A的连续驱动电流,启动峰值电流达2A/3A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;PWM支持频率高达100 kHz;待机状态;片内低压检测电路与热停机保护电路;工作温度:-2085 ;SSOP24小型贴片封装。4.2.2 驱动电机控制电路设计 电机驱动控制电路设计如图4.3所示。图 4.3 电机驱动控制电路4.3 传感检测外围电路设计编码器1和编码器2电路设计如图4.4、4.5所示。陀螺仪电路设计如图4.6所示。5 图 4.4 电机编码器1电路设计 图 4.5 电机编码器2电路设计图 4.6 陀螺仪电路设计 4.4 电源供电电路设计电路中需要4种电压,其中12V电压由电源直接提供,7V、5V、3.3V电压分别由降压模块提供。电路设计如图4.7所示。图 4.7 电源供电电路设计第5章 软件系统设计5.1 软件系统总体方案软件系统总体分为平衡部分、蓝牙控制部分、舵机控制部分。6如图5.1所示。图 5.1 控制系统框图5.2 平衡控制方案与流程平衡车平衡主要是通过PID技术对小车的状态进行实时地跟踪及调整。75.2.1 PID算法简介(1)PID技术控制技术是运动控制的核心,各种先进控制技术的研究不断推动着运动控制的发展,比如自适应控制技术和以神经网络和模糊控制为代表的智能控制技术,但在实际生产实践中应用最普遍的还是各种以PID为代表的基本控制技术按照偏差的比例、积分和微分进行控制的调节器,简称为PID调节器,是连续系统中技术成熟且应用广泛的一种调节器。(2)应用现状 PID的引入保证了其系统响应的快速性,稳定了闭环控制器,补偿了由逆变器引起的控制误差。PID控制器就是将偏差的比例(Proportional)、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制。 PID算法是目前工业过程控制中应用最广泛的控制算法。PID算法应用如此广泛,是因为它具有如下优点:(1)算法较为简单,易于实现;(2)基于线性控制理论,具备许多成熟的稳定性分析方法,有较高的可靠性;(3)可以在很宽的操作条件内保持较好的鲁棒性,对于控制对象模型参数小范变化不敏感;(4)不要求了解控制对象的精确数学模型。利用许多成熟的参数整定方法,可以根据控制对象的实际响应曲线来计算PID控制器的参数;(5)允许工程技术人员以一种简单直接的方式来调节控制系统,以达到希望得到的控制性能,如上升时间、最大超调量和稳态误差等。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。35.2.2 直立控制 平衡小车直立环使用 PD(比例微分)控制器。 下面是直立 PD 控制的代码:int balance(float Angle,float Gyro)float Bias,kp=300,kd=1;int balance;Bias=Angle-6.5; /计算直立偏差balance=kp*Bias+Gyro*kd; /计算直立 PWMreturn balance; /返回直立 PWM 入口参数是平衡小车倾角和 Y 轴陀螺仪(这个取决于 MPU6050 的安装),我们的小车前进方向是 MPU6050 的 X 轴的正方向,电机轴与 Y 轴平行。前面两行是相关变量的定义,第三行是计算角度偏差,第四行通过 PD 控制器计算直立 PWM,最后一行是返回。调试过程包括确定平衡小车的机械中值、确定 kp 值的极性(也就是正负号)和大小、kd 值的极性和大小等步骤。平衡程序流程图如图5.2所示。图 5.2 平衡程序设计流程图5.2.3 速度控制 平衡小车速度环使用 PI(比例积分)控制器,这也是速度控制最常使用的控制器。 PI 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差,将偏差的比例(P)和积分(I)通过线性组合构成控制量,对被控对象进行控制。 下面是速度 PI 控制的代码:int velocity(int encoder_left,int encoder_right)static float Velocity,Encoder_Least,Encoder;static float Encoder_Integral;float kp=45,ki=kp/200;Encoder_Least =(Encoder_Left+Encoder_Right)-0;Encoder *= 0.4;Encoder += Encoder_Least*0.1;Encoder_Integral +=Encoder;Velocity=Encoder*kp+Encoder_Integral*ki;return Velocity;入口参数为左右轮编码器。前面 3 行是相关变量的定义,第四行是获取最新的速度偏差,第 5 和第 6 行是对速度偏差进行低通滤波,第 7 行是对偏差积分得到位移。第 8 行是使用速度 PI 控制器计算速度控制 PWM,第 9 行是返回。以上代码实现的效果是:使小车在保持平衡的同时速度为零。调试过程包括计算速度偏差、确定 kp 和 ki 值的极性(也就是正负号)与大小。5.2.4 转向控制 平衡小车转向环使用 P(比例)D(微分)控制器下面是转向 PD控制的代码: float Turn_Amplitude=88,Kp=40,Kd=0.8; /=遥控左右旋转部分=/if(1=Flag_Left|1=Flag_Right) if(+Turn_Count=1) Encoder_temp=myabs(encoder_left+encoder_right); Turn_Convert=50/Encoder_temp;if(Turn_Convert3)Turn_Convert=3; else Turn_Convert=0.9; Turn_Count=0; Encoder_temp=0; if(1=Flag_Left) Turn_Target+=Turn_Convert; /左转 else if(1=Flag_Right) Turn_Target-=Turn_Convert; /右转 else Turn_Target=0; if(Turn_TargetTurn_Amplitude) Turn_Target=Turn_Amplitude;/=转向速度限幅 if(Turn_Target-Turn_Amplitude) Turn_Target=-Turn_Amplitude;if(Flag_Qian=1|Flag_Hou=1) Kd=0.6; else Kd=0; /转向的时候取消陀螺仪的纠正 /=转向PD控制器=/Turn=-Turn_Target*Kp - gyro*Kd; /=结合Z轴陀螺仪进行PD控制 return Turn; 入口参数为左右轮编码器和Z轴角度。调试过程包括确定 kp 和 ki 值的极性与大小。5.3 蓝牙控制方案5.3.1 基本配置使用串口3发送与接收手机APP数据。首先对串口3进行基本的配置。void uart3_init(u32 pclk2,u32 bound) float temp;u16 mantissa;u16 fraction; temp=(float)(pclk2*1000000)/(bound*16);/得到USARTDIVmantissa=temp; /得到整数部分fraction=(temp-mantissa)*16; /得到小数部分 mantissaAPB2ENR|=1APB1ENR|=1CRH&=0XFFFF00FF; GPIOB-CRH|=0X00008B00;/IO状态设置GPIOB-ODR|=1APB1RSTR|=1APB1RSTR&=(1BRR=mantissa; / 波特率设置 USART3-CR1|=0X200C; /1位停止,无校验位./使能接收中断USART3-CR1|=1CR1|=15; /接收缓冲区非空中断使能 MY_NVIC_Init(3,3,USART3_IRQn,2);设置优先级 5.3.2 串口3接收中断if(uart_receive=0x5A) Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=0;/刹车Else if(uart_receive=0x41) Flag_Qian=1,Flag_Hou=0,Flag_Left=0,Flag_Right=0;/前Else if(uart_receive=0x45) Flag_Qian=0,Flag_Hou=1,Flag_Left=0,Flag_Right=0;/后else if(uart_receive=0x42|uart_receive=0x43|uart_receive=0x44)Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=1; /左else if(uart_receive=0x46|uart_receive=0x47|uart_receive=0x48)/右 Flag_Qian=0,Flag_Hou=0,Flag_Left=1,Flag_Right=0;else Flag_Qian=0,Flag_Hou=0,Flag_Left=0,Flag_Right=0;/刹车5.4 舵机控制方案5.4.1 基本配置使用串口1向舵机控制板发送数据。首先对串口1进行基本的配置。void uart_init(u32 pclk2,u32 bound) float temp;u16 mantissa;u16 fraction; temp=(float)(pclk2*1000000)/(bound*16);/得到USARTDIVmantissa=temp; /得到整数部分fraction=(temp-mantissa)*16; /得到小数部分 mantissaAPB2ENR|=1APB2ENR|=1CRH&=0XFFFFF00F;/IO状态设置GPIOA-CRH|=0X000008B0;/IO状态设置 RCC-APB2RSTR|=1APB2RSTR&=(1BRR=mantissa; / 波特率设置 USART1-CR1|=0X200C; /1位停止,无校验位. #if EN_USART1_RX /如果使能了接收/使能接收中断USART1-CR1|=1CR1|=1SR&0X40)=0);/循环发送,直到发送完毕 USART3-DR = (u8) ch; elsewhil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论