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

下载本文档

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

文档简介

1、 机器人测控课程设计机器人测控技术大作业课程设计 课程设计名称:基于STM32的机械臂运动控制分析设计 专 业 班 级 : 自动1302 学 生 姓 名 : 张鹏涛 学 号 : 201323020219 指 导 教 师 : 曹毅 课程设计时间: 2016-4-282016-5-16 指导教师意见:成绩:签名: 年 月 日目录摘要1第一章 运动模型建立21.1引 言21.2机器人运动学模型的建立21.2.1运动学正解4第二章 机械臂控制系统的总体方案设计52.1机械臂的机械结构设计52.1.1臂部结构设计原则52.1.2机械臂自由度的确定62.2机械臂关节控制的总体方案62.2.1机械臂控制器类

2、型的确定62.2.2机械臂控制系统结构72.2.3关节控制系统的控制策略7第三章 机械臂控制系统硬件设计83.1机械臂控制系统概述83.2微处理器选型93.3主控制模块设计93.3.1电源电路93.3.2复位电路103.3.3时钟电路103.3.4 JTAG调试电路113.4驱动模块设计123.5电源模块设计13第四章 机械臂控制系统软件设计144.1初始化模块设计144.1.1系统时钟控制144.1.2 SysTick定时器154.1.3 TIM定时器164.1.4通用输入输出接口GPIO174.1.5超声波传感器模块17总结19参考文献20附录A21附录B22I设计要求: 设计一个两连杆机

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

4、M32单片机进行控制,而自由臂选择工业中常见的四自由臂进行设计和建模分析,运动的控制选用舵机进行控制。首先根据机械臂系统的控制要求,整体上设计出单 CPU 的系统控制方案,即通过控制主控制器输出的 PWM 波的占空比实现对舵机转动的控制,进而实现各个关节的位置控制。在硬件方面,主要论述了如何以 ARM 微处理器STM32F103ZET6、MG995舵机为主要器件,通过搭建硬件平台和设计软件控制程序构建关节运动控制系统。然后按照结构化设计的思想,依次对以上各部分的原理和设计方法进行了分析和探讨,给出了实际的原理图和电路图。在软件设计方面,按照模块化的设计思想将控制程序分为初始化模块和运行模块,并

5、分别对各个模块的程序进行设计。关键词:四自由度机械臂,STM32,运动模型,脉冲宽度调制第1章 运动模型建立1.1引 言机器人运动学描述了机器人关节与组成机器人的各刚体之间的运动关系。 机器人在工作时,要通过空间中一系列的点组成的三维空间点域,这一系列空间点构成了机器人的工作范围,此工作范围可通过运动学正解求得。此外,根据机器人末端执行器的位置和姿态要求,通过运动学逆解求得各个关节转角,可以实现对机器人进行运动分析、离线编程、轨迹规划等工作。机器人控制的目的就在于它能快速确定位置,这使得机器人的运动学正逆解问题变得更为重要。只有计算与运动学正逆解问题相关的变换关系在尽可能短时间内完成,才能达到

6、快速准确的目的。在运动学方程正解过程中,只体现在矩阵相乘关系上,相对简单。1.2机器人运动学模型的建立本文所研究的机器人由四个旋转关节和四个连杆组成,故为四自由度机器人,如图1.1所示。图1.1用齐次坐标来描述机器人各连杆相对于参考坐标系的空间几何关系;用44的齐次变换矩阵来描述相邻两杆的空间几何关系;从而推导出机器人手爪坐标系相对于参考坐标系的空间位姿关系,利用该法得到的D-H参数如表1所示。图1.2机器人连杆坐标系表1 机器人连杆的D-H参数连杆变换表示连杆坐标系i相对于i-1的变换,根据连杆变换的通式: (1)其中:得到各连杆之间的变换矩阵 (2) (3) (4)式中:s1,s2,s3,

7、s4;c1,c2,cs3,c4分别表示sin1,sin2,sin3,sin4; cos1, cos2, cos3, cos4以下同。由矩阵(1)可知:连杆变换依赖于四个参数和,其中只有一个参数是变化的,对于本文所研究的机器人,显然只有为变量,其余三个参数为常量。1.2.1运动学正解 机器人运动学正解指:在已知机器人各关节变量i(i=1,n)的基础上,求解出机器人末端执行器的位置矢量p和姿态矢量n,o,a的过程。将连杆变换矩阵(2)(4)相乘,便得到了该机器人手爪的运动学方程 (5)其中,机器人手爪姿态方程为机器人手爪的位置方程为为检验所得结果的正确性,取1=90,2=0,3=-90,4=0计算

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

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

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

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

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

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

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

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

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

17、入和直流输出尽可能保持更大的距离;(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 供电而由外部电源实现供电。但是,当外部电源断开的情况下, R

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

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

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

21、过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的特性如下:输出电压可调,可调范围为1.2V37V,

22、误差范围4%;输出特性有良好的线性,并且负载可以调节;驱动能力较强,输出电流可高达3A,输入电压可高达40V;采用150kHz的内部振荡频率,属于第二代开关电压调节器;功耗小、效率高,具有过热保护和限流保护功能等。常用于高效率降压调节器,单片开关电压调节器,正、负电压转换器等。由LM2596构成的5V稳压电路如图3.9所示。图3.9 5V稳压电路第4章 机械臂控制系统软件设计4.1初始化模块设计初始化模块主要负责完成如下工作:系统时钟控制寄存器 RCC 的配置, SysTick 定时器,TIM 定时器,通用输入输出接口 GPIO ,嵌套向量中断控制器 NVIC, PWM 波输出,超声波传感器模

23、块的初始化。采用库函数进行编程。4.1.1系统时钟控制STM32 CPU 的时钟源可以来自内部高速振荡器(HSI)、外部高速振荡器(HSE)或者内部锁相环(PLL)。锁相环需要以 HSI 或 HSE 作为时钟来源,两者的差别在于内部高速震荡器 HSI 不能产生稳定的8MHz的时钟频率。为了获得最大的工作频率,都会通过锁相环配置出最大的72MHz频率,供给Cortex-M3内核使用。流程图如下:开始复位系统时钟设置开启外部振荡器HSE是否成功起振并稳定?YN选择AHB,APB1,APB2频率使能锁相环PLL等待PLL输出稳定,成为时钟源结束图4.2 系统时钟初始化流程图4.1.2 SysTick

24、定时器SysTick ,即系统节拍时钟,它作为ARM Cortex-M3内核的一个内设,和STM32微控制器之间并没有必然的联系。SysTick的存在既能够提供必要的系统节拍,为实时操作系统的任务调度提供一个有节奏的“心跳”,进而提高可靠性,又方便了程序在不同器件间的移植。系统初始化时,RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟。系统嘀嗒校准值固定为9000,当系统嘀嗒时钟设定为9MHz(HCLK/8的最大值),产生1ms时间基准。

25、本部分的程序流程图如下:开始设置Systick重装载时间失能Systick定时器设定中断函数,获取节拍使能Systick定时器结束图4.3 SysTick定时器初始化流程图4.1.3 TIM定时器STM32微控制器具备高级定时器TIM1和TIM8 2个,通用定时器TIM2、TIM3、TIM4和TIM5 4个以及基本定时器TIM6和TIM7 2个,再加上 RTC 和 Systick 定时器,总数量达到了10个。基本定时器可以为用户提供准确的时间参考;通用定时器不仅具备时间参考功能,还具有输入捕捉、输出比较、单脉冲输出、 PWM 输出功能和正交编码器的特点;高级定时器更是加入了可以产生带死区控制的

26、互补 PWM 信号、紧急制动、定时器同步等高级特征,并最多可以输出6路 PWM 信号,可谓是意法半导体赋予STM32的王牌。本设计采用TIM2、TIM3的 PWM 输出功能和TIM4的计数功能。本部分的程序流程图如下:开始配置PWM输出引脚设置定时器TIM2各输出通道占空比设置定时器TIM3输出通道1占空比延时1000ms,等待手臂初始化完成设置定时器TIM4计数模式结束图4.4 TIM定时器初始化流程图4.1.4通用输入输出接口GPIOGPIO 可以说是STM32最常用的外设。STM32F103ZET6提供多达112个双向 GPIO ,分别分布在 AG 这7个端口中。每个端口又包括16个 GPIO ,都可承受5V的压降。GPIO 可通过配置寄存器工作在如下8种模式:浮空输入、带上拉电阻的输入、带下拉电阻的输入、模拟输入;开漏输出、推挽输出、复用推挽输出、复用开漏输出。该设计中将PA0、PA1、PA2、PA3、PA6作为 PWM 波的输出口;PA4、PA5作为 LED 显示接口;PA7、PA8作为超声波传感器信号的接收发送接口;PB6、PB7分别作为串口的发送接收接口(人机交互)。4.1.5超声波传感器模块首先,STM32的PA7端口接超声波传感器的 TRIG 口,触发测距信号,发出

温馨提示

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

评论

0/150

提交评论