1、基于STM32的机械臂运动控制分析设计说明沐 勺,密衣厚机器人测控技术大作业课程设计课程设计名称:基于STM32的机械臂运动控制分析设计课程设计时间: 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机械臂控制系统结构 XI2.2.
2、3关节控制系统的控制策略 XI第三章 机械臂控制系统硬件设计 XII3.1机械臂控制系统概述 XII3.2微处理器选型 XIII3.3主控制模块设计 XIII3.3.1电源电路 XIV3.3.2复位电路 XIV3.3.3时钟电路 XIV3.3.4JTAG 调试电路 XV3.4驱动模块设计 XV3.5电源模块设计 XVII第四章 机械臂控制系统软件设计 XVIII4.1初始化模块设计 XVIII4.1.1系统时钟控制 XVIII4.1.2SysTick 定时器 XX4.1.3TIM 定时器 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机器人运动学模型的建立本文所研究的机器人由四个旋转关节和四个连杆组成,故为四自由度机器人,如图1.1所示。图1.1用齐次坐标来描述机器人各连杆相对于参考坐标系的空间几何关系;用4 X 4的齐次变换矩阵来描述相邻两杆的空间几何关系;从而推导出机器人手爪坐标系相对于参考坐标系的空间位姿关系,利用该法得到的 D-H参数如表1所示。图1.2机器人连杆坐标系表1机器人
7、连杆的D-H参数iOff关节变量范围连杆参数/劝和100-15- +90心=12020-90030 _ +90心=120300趴-60 +90心=11040-90-180- + 180500G0必=120连杆变换表示连杆坐标系i相对于i-1的变换,根据连杆变换的通式得到各连杆之间的变换矩阵7100Rf20O$1cl00100 10J =001.1 =一s2-c2 00.0101 一.00 0L(2)c3-s30a c40(T2 oi*3003 /T001心yT=0010s4 - c400.0001 一-0001J(3)(4)式中:s1,s2,s3,s4;c1,c2,cs3,c4 分别表示 si
8、n B1,sin B2,sin 03,sin 04; cos 01, cos 92, cos 93, cos 94以下同。由矩阵(1 )可知:连杆变换依赖于一一八仏 四个参数和,其中只有一个参数是变化的,对于本文所研究的机器人,显然只有 为变量,其余三个参数为常量。1.2.1运动学正解机器人运动学正解指:在已知机器人各关节变量 0i(i=1,n)的基础上,求解出机器人末端执行器的位置矢量 p和姿态矢量n,o,a的过程。将连杆变换矩阵 (2)(4)相乘,便得到了该机器人手爪的运动学方程S 叫心+几 J 勺叭+py o. +p 二0 0 I其中,机器人手爪姿态方程为比=- i I + .s 1 s
9、4Jl = - j1j2s3c4 - cls4n. = s2c3t4 匚2 占 3c4n. = -ec2c3(4 十 ?1*2怎和4 + j(I4 门” =slc2c3c4 十 $12,f3.衬cl t?4 or = s2i?3.t4 + c2j?3.s4 = el2.3 -(4品2匚3a、- - j1c2j3 - ss2c3u = ,2s3 -r2r3机器人手爪的位置方程为pA =clc2( d4si +a2) -rf4clc2c3py =51c2( -d4s3 +还)-d4sls2c3 p:- -j2 _ d“3 +a2) - J4c3c2 + d.为检验所得结果的正确性,取 B仁90 ,
10、 92=0 , 93=-90 , 94=0 计算的值 结果为:0 1000J于 + HF n 号100-000与图1所示机器人手爪的位姿完全一致,表明所得结果正确。这样只要知道关节变量9, 92, 63和,94的值,就可以完全确定机器人手爪的位置和姿态。第二章 机械臂控制系统的总体方案设计2.1机械臂的机械结构设计2.1.1臂部结构设计原则作为机械臂的一个重要组成部分,手臂不仅起到支撑被抓物体、手爪和其他关节的作用, 而且还可以驱动手爪抓取物体, 并根据事先预定的位置将物体搬运 到指定地点。机械臂的结构形式必须基于其运动形式、 动作自由度、 抓取质量、 受力情况 和其他的因素来确定, 整个系统
11、的总质量比较大, 受力也比较复杂, 其运动部件 的质量直接影响到机械臂的刚度和强度。 所以,进行手臂的设计时, 一般应注意 下述要求:(1 )刚度要大。为了避免机械臂在运动过程中发生较大的形变,要合理选 择手臂的截面形状。(2)导向性要好。为了避免机械臂在运动过程中发生不必要的相对运动, 臂杆最好设计成方形或是花键等形式。(3)偏重力矩要小。要尽可能减小机械臂运动部分的质量。该设计根据机械臂的功能及搬运工作的任务的特点以及类型, 为了使其在一 定程度上具有操作的灵活性和运行性能的良好, 经过多次的比较、 讨论后, 该设 计选用多关节型的机械臂, 它不仅具有动作的角度大的优点, 还可以使机械臂在
12、 更大的空间内的运动。2.1.2机械臂自由度的确定机械臂的自由度是一个非常重要的参数, 取决于机械臂的类型及其结构, 并 且在很大程度上直接决定到机械臂能否完成预定的任务。一般来说是根据机械臂的用途来设计机械臂的自由度。自由度越多的机械 臂,具有更大的运动的灵活性,通用性也越强,但结构较复杂,难以实现。所设计的搬运机械臂采用四个自由度就可以完成设定的搬运任务。 其中机械 臂的手臂的旋转关节包括腰关节、 肩关节、肘关节和腕关节四个关节以及末端手 爪的开合。2.2机械臂关节控制的总体方案2.2.1机械臂控制器类型的确定作为机械臂的心脏,机械臂控制器是根据程序指令和从传感器获得的传感信 息来控制机械
13、臂完成事先预定的动作或任务的装置, 控制器的性能决定了机械臂 控制性能的好坏。 从计算机结构、 控制方式方面来划分, 机械臂控制器大约可分 为3 种:单 CPU 集中控制方式、多 CPU 分布式控制方式、二级 CPU 主从式 控制方式。(1 )单 CPU 集中控制方式:单 CPU 集中控制系统必须是一个强大的控制系统,它的全部控制功能是用一台功能强大的计算机实现的。 Hero- I、Robot-I等这些时代较早的机器人采用的就是这种单 CPU集中控制方式的结构,但 由于在控制的过程中需要进行大量的计算, 因此这种控制方式的控制速度一般比 较慢。(2)多 CPU 分布式控制方式:多 CPU 分布
14、式控制系统的最大特点就是 一个 CPU 负责控制一个关节轴, 同时在上位机与单轴控制的 CPU 之间设计 了一个并行接口,其主要负责上、下位机的通信,从而保证了数据的可靠传 输。(3 )二级主从式控制方式:该控制方式需要主从两个 CPU,即上位机和下 位的单片机两层结构。 上位机负责运动轨迹的规划、 运动学计算等任务, 根据预 定的位置, 计算出各个关节的运动量, 以指令形式传送给下位的微处理器。 下位 的微处理器根据指令对各关节进行运动控制本课题所设计的机械臂系统基于 STM32微处理器,利用STM32强大的运 算和处理能力,采用单CPU集中控制方式即可满足要求。2.2.2机械臂控制系统结构
15、本课题研究的机械臂控制系统采用单 CPU集中控制方式,系统框图如下:图2.1机械臂控制系统结构图计算机用于完成整个系统的管理、发送指令、运动轨迹规划等。计算机通 过J-Link仿真器将程序下载至STM32微处理器,向关节控制系统发出位置 指令,STM32根据指令输出PWM波,从而使机械臂的各个关节转过指定的 角度,进而使其按照预定的轨迹完成搬运任务。2.2.3关节控制系统的控制策略本课题设计的机械臂关节控制系统以 STM32微处理器为核心,对直流伺服 电机(舵机)进行较为精确的运动控制。关节控制系统的工作原理是:STM32微处理器内部的PWM单元产生PWM信号,驱动直流伺服电机旋转。电机驱动舵
16、机内部的齿轮组,其输出端带 动一个线性的比例电位器作为位置检测, 该电位器把转角坐标转换为一比例电压 反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较, 产生纠正脉冲, 并驱动电机正向或者反向的转动, 使齿轮组的输出位置与期望值相符, 令纠正脉 冲最终趋于为 0,从而达到使伺服电机的精确定位 17 。该关节控制系统的主要特点如下:(1 )使用以 Contex-M3 为内核的 STM32F103ZET6 作为系统的微控制 器,与传统的 51 单片机相比起来,具有功耗小,运算能力大大增强的优点。(2 )采用直流伺服电机驱动机械臂的各个关节,根据 STM32 微控制器输 出的 PWM 控制信
17、号的占空比来确定直流电动机的转速和转向, 控制起来简单, 准确。第三章 机械臂控制系统硬件设计3.1机械臂控制系统概述机械臂控制系统通常要满足如下几个基本的要求:(1)控制系统的微型化、轻型化和模块化。(2)控制系统的实时性。(3)系统的稳定性和开放性。 该机械臂控制系统由主控制模块、 电机驱动模块和电源模块组成, 每个子模 块的功能如下:主控制模块:作为该控制系统的核心,包括 ARM Cortex-M3 内核和有关 外围电路,主要负责完成 PWM 波(控制信号)的输出。驱动模块:负责机械臂各个关节的驱动,由舵机组成。电源模块:机械臂控制系统采用双电源供电模式, STM32 单片机经过 AMS
18、1117-3.3V 稳压芯片供电,舵机驱动模块采用 7.2V 可充电电池经 LM2596 DC-DC 可调降压模块实现供电。3.2微处理器选型微控制器作为机械臂运动控制系统的核心, 如下几个方面为重点进行微控制 器的选择:系统时钟速度运算速度功能电机控制方式ROM 及 ROM 的大小控制板的结构尺寸经过反复比较,本设计采用意法半导体公司的 STM32 处理器,如图 3.1 所 示。STM32F103ZET6 是基于32位ARM Cortex-M3 内核的微处理器,不但 支持实时仿真,而且嵌入了 512KB 的高速闪存。 CPU 的最高工作频率为 72MHz ,支持 Thumb-2 。图 3.1
19、 STM323.3主控制模块设计该设计的主控制模块的硬件系统包括电源电路、 复位电路、系统时钟电路以 及 JTAG 调试电路四大组成部分。3.3.1电源电路在硬件电路的设计中,电源模块的设计是非常重要的,如果不能妥善处理, 不但会使电路不能正常工作, 严重的还可能烧毁电路。 因此, 在设计电源时务必 要注意如下几点:(1)交流输入和直流输出尽可能保持更大的距离;(2)地线要足够粗,单点和多点相结合,同时分离模拟地和数字地;(3)散热要好,布局应合适;图 3.2 电源电路图如上图所示,开发板由 7.2V 接口供电。板上的电源转换芯片将 7.2V 接口输入的 7.2V 电源转换成 5V 的电源,然
20、后转换成 3.3V 给处理器和相关外围电 路供电。3.3.2复位电路图 3.3 复位电路图如上图所示, B1 为整个板的复位按钮,当按钮被按下时, STM32 处理器、TFT 彩屏等都将复位。3.3.3时钟电路STM32 的 VBAT 的供电是由外部电源完成的,在有外部电源( VCC3.3 ) 的情况下, VBAT 供电而由外部电源实现供电。但是,当外部电源断开的情况 下, RTC 的走时以及后备寄存器的内容就会丢失。相关电路如下:图 3.4 时钟电路图3.3.4JTAG 调试电路软件程序的编写通常是需要多次的修改才适用的, 因此一些比较先进的调试 手段便应运而生。 JTAG 仿真调试手段作为
21、其中的一种,是由 ARM 公司提出 的。本设计采用占用 IO 口资源少的 SWD 调试,只需 JTAG 仿真器上的 4 根 线就能完成,如下图所示:图 3.5 SWD 调试电路图通过 SWD 接口,我们可以烧录和调试程序,开发板的 JTAG 接口的硬件 连接如上图所示,可以与目前主流的 JLINK V8 仿真器配合使用。3.4驱动模块设计通常对机械臂的驱动系统的要求有:(1)驱动系统的质量不应太重,效率也应较高;(2)响应速度快;(3 )动作灵活,位移偏差以及速度偏差均较小;(4)安全可靠;(5)操作和维护方便;(6)经济合理,占地面积要尽可能的小。基于上述驱动系统的特点和该机械臂驱动系统的设
22、计要求, 该设计选用直流 伺服电机负责机械臂各个关节的驱动。该设计选用的舵机型号为分别 MG995,如图3.2、3.3,其参数如下:MG995 :(1)尺寸: 40mm 20mmX 36.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 舵机般来说,舵机是由舵盘、减速齿轮组、位置反馈电位计、直流电机、控制 电路板等几个重要部分组成的。信号线把来自于微控制器的控制信号传输到舵机的控制电路板, 控制电
23、路板根据相应的控制信号控制电机的转动, 同时电机带动齿轮组随之转动,经减速机 构减速后传动到输出舵盘。由于舵机的输出轴和位置反馈电位计是连接在一起 的,所以在舵盘转动的时候会带动位置反馈电位计, 电位计根据当前位置将一个 电压信号反馈到控制电路板,然后控制电路板根据电位计反馈回来的数据决定电 机后续的转动方向和速度,从而使舵机运动到指定的位置后停止运动,可以实现 对位置的精确控制3.5电源模块设计机械臂控制系统采用双电源供电模式, STM32 单片机经过 AMS1117-3.3V 稳压芯片供电,舵机驱动模块采用 7.2V 可充电电池经 LM2596 DC-DC 可调 降压模块实现供电。AMS1
24、117 是正向低压降的稳压器,在 1A 电流下产生 1.2V 的压降。它的 内部所集成有过热保护和限流电路,因此是电池供电和便携式计算机的最佳选 择。由 AMS1117-3.3V 芯片构成的 3.3V 稳压电路如图 3.8 所示。图 3.8 3.3V 稳压电路LM2596 开关电压调节器是降压型电源管理单片集成电路,可以输出最高 达 3A 的驱动电流,同时也有良好的线性和负载调节特性。可调型的 LM2596 甚至可以输出低于 37V 的各种电压。 LM2596 的特性如下:输出电压可调,可 调范围为1.2V37V,误差范围4% ;输出特性有良好的线性,并且负载可以 调节;驱动能力较强,输出电流
25、可高达3A,输入电压可高达40V ;采用150kHz 的内部振荡频率,属于第二代开关电压调节器;功耗小、效率高,具有过热保护 和限流保护功能等。常用于高效率降压调节器,单片开关电压调节器,正、负电 压转换器等。由 LM2596 构成的 5V 稳压电路如图 3.9 所示图3.9 5V稳压电路第四章 机械臂控制系统软件设计4.1初始化模块设计初始化模块主要负责完成如下工作:系统时钟控制寄存器 RCC的配置,SysTick定时器,TIM定时器,通用输入输出接口 GPIO,嵌套向量中断控制器NVIC , PWM波输出,超声波传感器模块的初始化。采用库函数进行编 程。4.1.1系统时钟控制STM32 C
26、PU 的时钟源可以来自内部高速振荡器(HSI )、外部高速振荡 器(HSE )或者内部锁相环(PLL )。锁相环需要以HSI或HSE作为时钟来 源,两者的差别在于内部高速震荡器 HSI不能产生稳定的8MHz的时钟频率。 为了获得最大的工作频率,都会通过锁相环配置出最大的 72MHz频率,供给Cortex-M3 内核使用。流程图如下:图4.2系统时钟初始化流程图4.1.2SysTick 定时器SysTick ,即系统节拍时钟,它作为 ARM Cortex-M3 内核的一个内设, 和STM32微控制器之间并没有必然的联系。SysTick的存在既能够提供必要的 系统节拍,为实时操作系统的任务调度提供
27、一个有节奏的“心跳”,进而提高可 靠性,又方便了程序在不同器件间的移植。系统初始化时,RCC通过AHB时钟(HCLK)8分频后作为Cortex系统定 时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择 上述时钟或Cortex(HCLK)时钟作为SysTick时钟。系统嘀嗒校准值固定为 9000,当系统嘀嗒时钟设定为9MHz(HCLK/8 的最大值),产生1ms时间基准本部分的程序流程图如下: 开始设置Systick重装载时间失能Systick定时器I设定中断函数,获取节拍使能Systick定时器ZTZ结束4.1.3TIM 定时器STM32微控制器具备高级定时器
28、 TIM1和TIM8 2个,通用定时器TIM2、 TIM3、TIM4和TIM5 4 个以及基本定时器 TIM6和TIM7 2 个,再加上 RTC 和Systick定时器,总数量达到了 10个。基本定时器可以为用户提供准确的时间参考; 通用定时器不仅具备时间参考 功能,还具有输入捕捉、输出比较、单脉冲输出、 PWM输出功能和正交编码器的特点;高级定时器更是加入了可以产生带死区控制的互补 PWM信号、紧 急制动、定时器同步等高级特征,并最多可以输出 6路PWM信号,可谓是意 法半导体赋予STM32的王牌。本设计采用TIM2、TIM3的PWM输出功能和TIM4的计数功能。本部分的程序流程图如下:图
29、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 口,触发测距信号,发出10us的高电平信号;然后,超声波发射器自动发送 8个40KHZ的方波,接收器检测返回信号;然后,PA8端口接的ECHO发给STM32微控制器 个高电平,用TIM4来测量高电平的持续时间。本部分的程序流程图如下:图4.5超声波模块初始化流程图总结机械臂控制系统是当今社会的一项非常重要的研究课题, 尽管其发展已经有 了一段很长的历史, 但是其发展并不完全成熟。 无论是学术界、 工业还
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1