基于STM32的机械臂运动控制分析设计说明_第1页
基于STM32的机械臂运动控制分析设计说明_第2页
基于STM32的机械臂运动控制分析设计说明_第3页
基于STM32的机械臂运动控制分析设计说明_第4页
基于STM32的机械臂运动控制分析设计说明_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、沐勺,密衣厚机器人测控技术大作业课程设计课程设计名称:基于STM32的机械臂运动控制分析设计专业班级:学生姓名:学号:指导教师:自动1302张鹏涛201323020219课程设计时间:2016-4-28 -2016-5-16指导教师意见:成绩:签名:年 月日摘要目录曹毅IV第一章运动模型建立V1.1引言V1.2机器人运动学模型的建立V1.2.1运动学正解 VII第二章 机械臂控制系统的总体方案设计 VIII2.1机械臂的机械结构设计 VIII2.1.1臂部结构设计原则VIII2.1.2机械臂自由度的确定 IX2.2机械臂关节控制的总体方案X2.2.1机械臂控制器类型的确定X2.2.2机械臂控制

2、系统结构XI2.2.3关节控制系统的控制策略XI第三章机械臂控制系统硬件设计XII3.1机械臂控制系统概述 XII3.2微处理器选型 XIII3.3主控制模块设计 XIII3.3.1电源电路XIV3.3.2复位电路XIV3.3.3时钟电路XIV3.3.4 JTAG调试电路XV3.4驱动模块设计XV3.5电源模块设计XVII第四章 机械臂控制系统软件设计 XVIII4.1初始化模块设计 XVIII4.1.1系统时钟控制 XVIII4.1.2 SysTick 定时器XX4.1.3 TIM 定时器XXI4.1.4通用输入输出接口 GPIO XXII4.1.5超声波传感器模块 XXII总结XXIV参考

3、文献XXV附录A XXVI附录 B XXVII设计要求:设计一个两连杆机械臂,具体参数自行设计,建立其运动学模型,然后在此基础上完成该机械臂两点间的路径规划,并给出仿真结果。设计完成上述目标的控制系统,控制器可以自行选择(单片机,ARM , DSP, PLC等),其他硬件部分根据系统所需要完成的功能自行选择,基本要求要体现系统的输入,输出信号和人机交互界面,画出整个系 统的硬件结构(电路模块,驱动模块,控制模块等)和软件部分。摘要由于机械臂在各行各业中得到了愈来愈广泛的应用,机械臂控制的多 样化、复杂化的需要也随之日趋增多。作为当今科技领域研究的一个热 点,提高机械臂的控制精度、稳定性、操作灵

4、活性对于提高其应用水平有着 十分重要的意义。经过仔细的分析和研究之后,我选择的是STM32单片机进行控制, 而自由臂选择工业中常见的四自由臂进行设计和建模分析,运动的控制选 用舵机进行控制。首先根据机械臂系统的控制要求,整体上设计出单CPU的系统控制 方案,即通过控制主控制器输出的PWM波的占空比实现对舵机转动的控 制,进而实现各个关节的位置控制。在硬件方面,主要论述了如何以ARM 微处理器STM32F103ZET6、MG995舵机为主要器件,通过搭建硬件平 台和设计软件控制程序构建关节运动控制系统。然后按照结构化设计的思 想,依次对以上各部分的原理和设计方法进行了分析和探讨,给出了实际 的原

5、理图和电路图。在软件设计方面,按照模块化的设计思想将控制程序 分为初始化模块和运行模块,并分别对各个模块的程序进行设计。关键词:四自由度机械臂,STM32 ,运动模型,脉冲宽度调制第一章运动模型建立1.1引言机器人运动学描述了机器人关节与组成机器人的各刚体之间的运动关系。机器人在工作时,要通过空间中一系列的点组成的三维空间点域,这一系列空间点构成了 机器人的工作范围,此工作范围可通过运动学正解求得。此外,根据机器人末端执行器 的位置和姿态要求,通过运动学逆解求得各个关节转角,可以实现对机器人进行运动分 析、离线编程、轨迹规划等工作。机器人控制的目的就在于它能快速确定位置,这使得机器人的运动学正

6、逆解问题变 得更为重要。只有计算与运动学正逆解问题相关的变换关系在尽可能短时间内完成,才能 达到快速准确的目的。在运动学方程正解过程中,只体现在矩阵相乘关系上,相对简单。1.2机器人运动学模型的建立本文所研究的机器人由四个旋转关节和四个连杆组成,故为四自由度机器人,如图所示。得到各连杆之间的变换矩阵710RO$1cl.0-c2 02oi.0(1.000c3*3诂30 a3ITJ000 (T001/:0010一s4-c400.0001-0001J式中:s1 ,s2,s3,s4;c1 ,c2,cs3,c4 分别表示 sin B1 ,sin B2,sin 03,sin 04; cos 01, cos

7、 92, cos 93, cos 94以下同。由矩阵(1 )可知:连杆变换依赖于“一一八仏四个参数和,其中 只有一个参数是变化的,对于本文所研究的机器人,显然只有为变量,其余三个参数为常 量。1.2.1运动学正解机器人运动学正解指:在已知机器人各关节变量0i(i=1,n)的基础上,求解出机器人末端执行器的位置矢量p和姿态矢量n,o,a的过程。将连杆变换矩阵(2)(4) 相乘,便得到了该机器人手爪的运动学方程S 叫心+几J勺叭七pg +p二;T二沈代胃代岸二訊T其中,机器人手爪姿态方程为Jl =-JU2S3C4 - cls4n.=-s2c3tf4 匚 2 占 3c4n. = -ec2c3 “十

8、v? 1*2 怎和 4 + J (I4 门” =-slc2c3c4 + $1J 2,F3衬一cl t?4 or = s2i?3.t4 + c2j?3.s4 =el2.3 - (4 品 2 匚 3 a、-J1C2J3u = ,v2s3 -r2r3机器人手爪的位置方程为Pa 二clc2(cUsi +a2)-rf4clc2c3py =51c2( -d4s3 + 还)-d4sls2c3 p:- -J2n _ cT3 +a2) hc3c2 + d.为检验所得结果的正确性,取 B仁90 , 92=0 , 93=90 , 94=0 计算的值纟吉果为:ro10J0于 + HF0100-000与图1所示机器人手

9、爪的位姿完全一致,表明所得结果正确。这样只要知道关 节变量9, 92, 63和,94的值,就可以完全确定机器人手爪的位置和姿态。第二章机械臂控制系统的总体方案设计2.1机械臂的机械结构设计2.1.1臂部结构设计原则作为机械臂的一个重要组成部分,手臂不仅起到支撑被抓物体、手爪和其他关节的作用,而且还可以驱动手爪抓取物体,并根据事先预定的位置将物体搬运到指定 地点。机械臂的结构形式必须基于其运动形式、动作自由度、抓取质量、受力情况和其 他的因素来确定,整个系统的总质量比较大,受力也比较复杂,其运动部件 的质量直 接影响到机械臂的刚度和强度。所以,进行手臂的设计时,一般应注意下述要求:(1) 刚度要

10、大。为了避免机械臂在运动过程中发生较大的形变,要合理选 择手臂的 截面形状。(2) 导向性要好。为了避免机械臂在运动过程中发生不必要的相对运动,臂杆最好 设计成方形或是花键等形式。(3) 偏重力矩要小。要尽可能减小机械臂运动部分的质量。该设计根据机械臂的功能及搬运工作的任务的特点以及类型,为了使其在一定程度 上具有操作的灵活性和运行性能的良好,经过多次的比较、讨论后,该设计选用多关 节型的机械臂,它不仅具有动作的角度大的优点,还可以使机械臂在更大的空间内的运 动。2.1.2机械臂自由度的确定机械臂的自由度是一个非常重要的参数,取决于机械臂的类型及其结构,并 且在很 大程度上直接决定到机械臂能否

11、完成预定的任务。一般来说是根据机械臂的用途来设计机械臂的自由度。自由度越多的机械 臂,具有更 大的运动的灵活性,通用性也越强,但结构较复杂,难以实现。所设计的搬运机械臂采用四个自由度就可以完成设定的搬运任务。其中机械 臂的手 臂的旋转关节包括腰关节、肩关节、肘关节和腕关节四个关节以及末端手爪的开合。2.2机械臂关节控制的总体方案2.2.1机械臂控制器类型的确定作为机械臂的心脏,机械臂控制器是根据程序指令和从传感器获得的传感信息来控制机械臂完成事先预定的动作或任务的装置,控制器的性能决定了机械臂控制性能的好 坏。从计算机结构、控制方式方面来划分,机械臂控制器大约可分为3种:单CPU 集中控制方式

12、、多CPU分布式控制方式、二级CPU主从式 控制方式。(1 )单CPU集中控制方式:单CPU集中控制系统必须是一个强大的控制系统,它的全部控制功能是用一台功能强大的计算机实现的。HeroI、Robot-I等这些时代较早的机器人采用的就是这种单CPU集中控制方式的结构,但由于在控制 的过程中需要进行大量的计算,因此这种控制方式的控制速度一般比较慢。(2) 多CPU分布式控制方式:多CPU分布式控制系统的最大特点就是一个 CPU负责控制一个关节轴,同时在上位机与单轴控制的CPU之间设计了一个并行 接口,其主要负责上、下位机的通信,从而保证了数据的可靠传输。(3 )二级主从式控制方式:该控制方式需要

13、主从两个CPU,即上位机和下 位的 单片机两层结构。上位机负责运动轨迹的规划、运动学计算等任务,根据预定的位 置,计算出各个关节的运动量,以指令形式传送给下位的微处理器。下位的微处理器 根据指令对各关节进行运动控制本课题所设计的机械臂系统基于STM32微处理器,利用STM32强大的运算和处理 能九 采用单CPU集中控制方式即可满足要求。2.2.2机械臂控制系统结构本课题研究的机械臂控制系统采用单CPU集中控制方式,系统框图如下:图2.1机械臂控制系统结构图计算机用于完成整个系统的管理、发送指令、运动轨迹规划等。计算机通过JLink仿真器将程序下载至STM32微处理器,向关节控制系统发出位置指令

14、,STM32根据指令输出PWM波,从而使机械臂的各个关节转过指定的角度,进而使其按照预定的轨迹完成搬运任务。2.2.3关节控制系统的控制策略本课题设计的机械臂关节控制系统以STM32微处理器为核心,对直流伺服电机(舵机)进行较为精确的运动控制。关节控制系统的工作原理是:STM32微处理器内部的PWM单元产生PWM信号,驱动直流伺服电机旋转。电机驱动舵机内部的齿轮组,其输出端带动一个线 性的比例电位器作为位置检测,该电位器把转角坐标转换为一比例电压反馈给控制线路 板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动电机正向或者 反向的转动,使齿轮组的输出位置与期望值相符,令纠正脉冲最

15、终趋于为0,从而达到 使伺服电机的精确定位冋。该关节控制系统的主要特点如下:(1 )使用以Contex-M3为内核的STM32F103ZET6作为系统的微控制 器,与传统的51单片机相比起来,具有功耗小,运算能力大大增强的优点。(2) 采用直流伺服电机驱动机械臂的各个关节,根据STM32微控制器输出的PWM控制信号的占空比来确定直流电动机的转速和转向,控制起来简单,准确。第三章机械臂控制系统硬件设计3.1机械臂控制系统概述机械臂控制系统通常要满足如下几个基本的要求:(1) 控制系统的微型化、轻型化和模块化。(2) 控制系统的实时性。(3) 系统的稳定性和开放性。该机械臂控制系统由主控制模块、电

16、机驱动模块和 电源模块组成,每个子模 块的功能如下:主控制模块:作为该控制系统的核心,包括ARM Cortex-M3内核和有关外围电 路,主要负责完成PWM波(控制信号)的输出。驱动模块:负责机械臂各个关节的驱动,由舵机组成。电源模块:机械臂控制系统采用双电源供电模式,STM32单片机经过AMS1117-3.3V稳压芯片供电,舵机驱动模块采用7.2V可充电电池经LM2596 DC-DC可调降压模 块实现供电。3.2微处理器选型微控制器作为机械臂运动控制系统的核心,如下几个方面为重点进行微控制器的选 择:系统时钟速度运算速度功能电机控制方式 ROM及ROM的大小控制板的结构尺寸经过反复比较,本设

17、计采用意法半导体公司的STM32处理器,如图3.1所示。STM32F103ZET6是基于32位ARM Cortex-M3内核的微处理器,不但 支持实时仿 真,而且嵌入了 512KB的高速闪存。CPU的最高工作频率为72MHz ,支持Thumb-2 o图 3.1 STM323.3主控制模块设计该设计的主控制模块的硬件系统包括电源电路、复位电路、系统时钟电路以及JTAG调试电路四大组成部分。3.3.1电源电路在硬件电路的设计中,电源模块的设计是非常重要的,如果不能妥善处理,不但会使 电路不能正常工作,严重的还可能烧毁电路。因此,在设计电源时务必 要注意如下几 占/ (1) 交流输入和直流输出尽可能

18、保持更大的距离;(2) 地线要足够粗,单点和多点相结合,同时分离模拟地和数字地;(3) 散热要好,布局应合适;图3.2电源电路图如上图所示,开发板由7.2V接口供电。板上的电源转换芯片将7.2V接口输入的7.2V电源转换成5V的电源,然后转换成3.3V给处理器和相关外围电路供电。3.3.2复位电路图3.3复位电路图如上图所示,B1为整个板的复位按钮,当按钮被按下时,STM32处理器、TFT彩屏等都将复位。3.3.3时钟电路STM32的VBAT的供电是由外部电源完成的,在有外部电源(VCC3.3 )的情况 下,VBAT供电而由外部电源实现供电。但是,当外部电源断开的情况下,RTC的走 时以及后备

19、寄存器的内容就会丢失。相关电路如下:图3.4时钟电路图3.3.4 JTAG调试电路软件程序的编写通常是需要多次的修改才适用的,因此一些比较先进的调试 手段便 应运而生。JTAG仿真调试手段作为其中的一种,是由ARM公司提出的。本设计采用 占用10 口资源少的SWD调试,只需JTAG仿真器上的4根 线就能完成,如下图所 示:图3.5 SWD调试电路图通过SWD接口,我们可以烧录和调试程序,开发板的JTAG接口的硬件连接如上 图所示,可以与目前主流的JLINKV8仿真器配合使用。3.4驱动模块设计通常对机械臂的驱动系统的要求有:(1) 驱动系统的质量不应太重,效率也应较高;(2) 响应速度快;(3

20、) 动作灵活,位移偏差以及速度偏差均较小;(4) 安全可靠;(5) 操作和维护方便;(6) 经济合理,占地面积要尽可能的小。基于上述驱动系统的特点和该机械臂驱动系统的设计要求,该设计选用直流伺服电 机负责机械臂各个关节的驱动。该设计选用的舵机型号为分别MG995,如图3.2、3.3,其参数如下:MG995 :(1) 尺寸:40mrrT 20mmX36.5mm(2)重量:62g(3) 技术参数:无负载速度0.17/60度(4.8V)、0.13/60度(6.0V)(4) 扭矩:13KG(5)使用温度:-30+60摄氏度(6)死区设定:4微秒(刀工作电压:3.0V-7.2V图3.6 MG995舵机般

21、来说,舵机是由舵盘、减速齿轮组、位置反馈电位计、直流电机、控制 电路板等几个重要部分组成的。信号线把来自于微控制器的控制信号传输到舵机的控制电路板,控制电路板的,所以在舵盘转根据相应的控制信号控制电机的转动,同时电机带动齿轮组随之转动,经减速机构减速 后传动到输出舵盘。由于舵机的输出轴和位置反馈电位计是连接在一起 动的时候会带动位置反馈电位计,电位计根据当前位置将一个 电压信号反馈到控制电路 板,然后控制电路板根据电位计反馈回来的数据决定电机后续的转动方向和速度,从而使 舵机运动到指定的位置后停止运动,可以实现对位置的精确控制3.5电源模块设计机械臂控制系统采用双电源供电模式,STM32单片机

22、经过AMS1117-3.3V稳压芯 片供电,舵机驱动模块采用7.2V可充电电池经LM2596 DC-DC可调 降压模块实现供 电。AMS1117是正向低压降的稳压器,在1A电流下产生1.2V的压降。它的内部所集 成有过热保护和限流电路,因此是电池供电和便携式计算机的最佳选 择。由AMS1117-3.3V芯片构成的3.3V稳压电路如图3.8所示。图3.8 3.3V稳压电路LM2596开关电压调节器是降压型电源管理单片集成电路,可以输出最高 达3A的 驱动电流,同时也有良好的线性和负载调节特性。可调型的LM2596甚至可以输出低于 37V的各种电压。LM2596的特性如下:输出电压可调,可 调范围

23、为1.2V-37V,误差 范围4% ;输出特性有良好的线性,并且负载可以调节;驱动能力较强,输出电流可高达 3A,输入电压可高达40V;采用150kHz的内部振荡频率,属于第二代开关电压调节器;功 耗小、效率高,具有过热保护和限流保护功能等。常用于高效率降压调节器,单片开关电 压调节器,正、负电压转换器等。由LM2596构成的5V稳压电路如图3.9所示12VInregulated fDC Input I-|680 “F+你1N58242T53ON/OFFGND丁FeedbackLM2596OutputLI33 DI5 Ov RyuHatedrOutputWUT 220 1256X11图3.9

24、5V稳压电路第四章 机械臂控制系统软件设计4.1初始化模块设计初始化模块主要负责完成如下工作:系统时钟控制寄存器RCC的配置,SysTick定时器,TIM定时器,通用输入输出接口GPIO,嵌套向量中断控制器N VIC, PWM波输出,超声波传感器模块的初始化。采用库函数进行编 程。4.1.1系统时钟控制STM32 CPU的时钟源可以来自内部高速振荡器(HSI )、外部高速振荡 器(HSE)或者内部锁相环(PLL) o锁相环需要以HSI或HSE作为时钟来源,两者的 差别在于内部高速震荡器HSI不能产生稳定的8MHz的时钟频率。为了获得最大的工作 频率,都会通过锁相环配置出最大的72MHz频率,供

25、给Cortex-M3内核使用。流程图如下:图4.2系统时钟初始化流程图4.1.2 SysTick 定时器SysTick ,即系统节拍时钟,它作为ARM Cortex-M3内核的一个内设,和 STM32微控制器之间并没有必然的联系。SysTick的存在既能够提供必要的系统节 拍,为实时操作系统的任务调度提供一个有节奏的“心跳”,进而提高可靠性,又方便 了程序在不同器件间的移植。系统初始化时,RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定 时器 (SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或 Cortex(HCLK)时钟作为SysTick

26、时钟。系统嘀嗒校准值固定为9000,当系统嘀嗒时钟 设定为9MHz(HCLK/8的最大值),产生1 ms时间基准V本部分的程序流程图如下:开始设置Systick重装载时间失能Systick定时器I设定中断函数,获取节拍使能Systick定时器ZTZ结束图4.3 SysTick定时器初始化流程图4.1.3 TIM定时器STM32微控制器具备高级定时器TIM1和TIM8 2个,通用定时器TIM2、TIM3、 TIM4和TIM5 4个以及基本定时器TIM6和TIM7 2个,再加上RTC和Systick定时器, 总数量达到了 10个。基本定时器可以为用户提供准确的时间参考;通用定时器不仅具备时间参考功

27、能, 还具有输入捕捉、输出比较、单脉冲输出、PWM输出功能和正交编码器的特点;高级定时器更是加入了可以产生带死区控制的互补PWM信号、紧急制动、定 时器同步等高级特征,并最多可以输出6路PWM信号,可谓是意法半导体赋予STM32 的王牌。本设计采用TIM2、TIM3的PWM输出功能和TIM4的计数功能。本部分的程序流程图如下:图4.3 SysTick定时器初始化流程图图4.4 TIM定时器初始化流程图4.1.4通用输入输出接口 GPIOGPIO可以说是STM32最常用的外设。STM32F103ZET6提供多达112个双向GPIO,分别分布在AG这7个端口中。每个端口又包括16个GPIO,都可承受5V的压降。GPIO可通过配置寄存器工作在如下8种模式:浮空输 入、带上拉电阻的输入、带下拉电阻的输入、模拟输入;开漏输出、推挽输出、复用推 挽输出、复用开漏输出。该设计中将PAO、PA1、PA2、PA3、PA6作为PWM波的输出口; PA4、PA5作为LED显示接口 ; PA

温馨提示

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

评论

0/150

提交评论