基于STM32的机械手臂控制系统设计
2016-03-12北京联合大学钟晓青和青芳
北京联合大学 钟晓青 林 智 和青芳
基于STM32的机械手臂控制系统设计
北京联合大学 钟晓青 林 智 和青芳
机械臂在近十几年的发展中,已经实现根据软件程序的设计操作机械臂完成相应的特定工作。它不仅可以在人们无法作业的环境下工作,而且还能保持长时间的作业和低失误率。本文简要介绍基于STM32的机械手臂控制系统实现方案。
舵机;STM32单片机;PWM波
1.引言
早在很久以前,人们就已经开始制作机器人,以减轻人类的繁重劳动。一直以来,人们总是尝试将生活变的更加简单。而如今,有关于自动机器人相关的技术已然成为了各国科技水平程度的体现之一。
2.系统设计及实现方案
2.1 系统分析
本文对基于STM32的自动机械臂控制系统进行了研究和设计。以六自由度机械臂为研究对象,使用STM32为主控芯片,再利用稳压模块、无线模块和电机驱动模块设计了系统的硬件结构,并在软件设计方面采用了先进的控制理论。通过合理的算法进行了软件设计。
2.2 设计结构图
本设计采用单CPU集中控制方式,即由stm32来控制舵机,执行相应的预定动作,自动机械臂控制系统的构成如图2.1所示。
图2.1 机械臂控制系统结构
该系统是通过计算机的事先的编程之后,通过数据传输下载到stm32当中通过控制stm32的定时器产生多路的PWM波。舵机就会依据给定的PWM波完成相应的运动轨迹或按照预定的计划完成任务。
2.3 机械臂的臂部设计
因为机械臂主要是由臂部组成,所以在进行臂部设计时应当着重注意以下几点:(1)手臂在机械臂中起着重要的作用:它不光可以让物体进行移动而且还能进行一些操作。(2)因为机械臂的臂部在运动中有很大负担,为了减小手臂的负担,需要将手臂的截面形状做的更加合理。在进行了各种截面对弯曲度的承受力的实验后发现,在相同力的情况下,工字型的截面能承受的力最大,因此我选择使用工字型截面做手臂的截面。(3)因为机械臂在直线运动中可能会发生突然的方向转换,因此,为了防止机械臂的硬件损耗过大,需要采用一些装置来保护机械臂。同时要采用一定形式的缓冲措施。(4)为了减少臂部在运动时会产生较大的转动惯量,需要将臂部的重量减少,以免在运动中产生较大的误差,从而影响机械臂的整体运作,加快机械臂的运行速度。
经过对预期任务的特点和类型分析,该设计需要机械臂具有较高的灵活性和流畅性,因此在多次的比较和分析后,决定使用多关节型机械臂。它不仅可以灵活的完成预定任务,而且可以有更大的运动空间。
2.4 机械臂自由度选择
通常将机械臂是由几个传动结构组成的就称为几自由度。例如人类的自由度高达27个,而手臂部分的自由度一般为6自由度。所以仿照人类的特性,机械臂的自由度应当选为6自由度,这样既符合了身体力学并且动力传输效率也很高。为了更加流畅的完成抓取物体,并将物体移动到指定的位置,需要采用6自由度。而6自由度的机械臂的控制较为繁琐,所以工业和生活中机械臂的自由度多少于6个。
2.5 机械臂控制器类型
控制器的主要任务就是按照预先设计的程序进行相应的任务,它是机械臂中十分重要的组件。机械臂的控制器就相当于电脑中的处理器,只有处理器越好,电脑的运行速度和处理速度才会越快。对于机械臂来说也一样,只有控制器越好,才能更加精准快速的进行控制。从控制器的数量和机械臂的控制方式可分为以下几种:单CPU集中控制、多CPU分散控制、双CPU分级控制。本文所设计的机械臂控制系统,利用stm32的强大的处理能力和多线程的管理能力,由此,采用单CPU集中控制方式即可。
3.机械系统设计与实现
机械臂的机械系统的基本要求应当有如下几个特点:(1)控制系统应当微小化、轻便化和分块化,以便将控制器安装到受控对象的硬件上,以便更好的进行控制。因此为了更有效的减少硬件结构的复杂度和负载,所以要尽可能的微小化和轻便化。此外,为了系统具有较好的独立性,所以要尽可能的分层化。(2)控制系统的实时性:因为机械臂是一种即时的操作,所以对于机械臂的每一个动作,都要确保其是快速的反应,否则机械臂就不能顺利完成相应的动作。(3)系统的稳定性和开源性。为了确保机械臂可以完成任务要求,因此稳定性是十分重要的。此外,因为后期可能出现更多的问题,所以要确保后期可以对控制系统进行二次开发。
本文的系统由控制模块、直流伺服电机模块和电源驱动模块组成。每个模块的作用如下:
控制模块:该模块是机械臂控制系统的核心,由stm32、串口和稳压模块组成,其主要是控制各个直流伺服舵机进行运动。
直流伺服电机模块:该模块主要是实现不用动作的基础,由控制模块发送的PWM波进行控制。
图4.1 系统流程图
4.主要算法及实现
4.1 算法设计
硬件结构作为机械臂的身体构架支持着整个系统的运行。而软件方面作为机械臂控制系统的大脑中枢,统筹着身体和思维进行正确的判断和运作。软件部分的优劣影响着整个机械臂控制系统的运行流畅性、稳定性和整体功能的发挥。因此程序设计十分重要,需要满足整体系统的基本需要,主要包括以下几点:(1)实时性:因为在控制器控制手臂时,要实现对手臂的实时控制,需要确保数据的实时性,并且只有整体的实时才可以保证机械臂操作系统在工作的时候不会出现死区等故障问题。(2)稳定性:稳定性是指系统在运行过程中,为了防止故障发生,以及出现故障后的自我解决故障的能力。因此,为了提高系统的稳定性,在进行设计的时候必须要考虑到运行时可能出现的不正常现象。(3)再开发性:好的程序设计不是一次设计和调试就可以正常运行的,而总是伴随着一边调试一边更改的过程,经过多次修改后才能达到系统的要求。所以在开发的过程时,就应当有好的结构,以便于程序的再调试,并确保程序具有结构简单、思路清晰的优点。
对于如何使系统的运行,更加的顺利以及实现更多的功能,本文的机械臂控制系统的程序设计采用的是分层化结构设计,其中含有系统时钟与Systick定时器模块,串口采集模块,串口发送模块,定时器模块,计算器模块。基本的程序有程序初始化:使模块都处于可以被使用的状态,自动运行:各模块按照程序进行运作,手动操作:根据无线模块获取的信息进行处理后发送至舵机。流程图如图4.1所示。
5.结论
通过实验证明:本文设计的机械臂控制系统,可以胜任中小型机器人控制器的要求,具有控制准确度高、操作方便、动作灵活等方面的优良表现。然而仍有一些不足需哟改进,主要有:
(1)机械臂的改造。作为系统的主要受控对象,需要其有着优越的稳定性才能达到更加精准的控制。本文的机械臂的爪部有待改进,例如加入压力传感器可以更好的完成抓取的动作。
(2)算法的完善:对算法的冗余和处理方面进行改进,可以有效的改善机械臂的运作,例如调整:输入参数和如何输出更加精准的PMW波。
基于上述问题,在今后的时间里,我们将会不断的修改以加强机械臂的稳定性和可靠性。参考文献
[1]焦保存.基于四自由度机械臂控制系统的设计与研究[D].西安:西安电子科技大学,2009:5.
[2]李磊.六自由度机械臂控制系统设计[D].哈尔滨:哈尔滨工程大学,2007:66.
[3]程立艳.五自由度机械手的抓取设计[D].成都:西华大学,2012:51.
[4]ST Microelectronics 数据手册 STM32G103XCSTM32G103xD
STM32G103XE[EB/QL].http://www.st.com.
[5]ST Microelectronics STM32F101xx,STM32F102xx,STM32F103xx,ST M32F105xx和STM32F107xx,ARM内核32位高性能微控制器参考手册.
[6]黄智伟,王兵,朱卫华.STM32F32位ARM微控制器应用设计与实践[M].北京:北京航空航天大学出版社,2012:3-4.
[7]郑珊珊.基于ARM处理器的钻孔机械臂控制系统研究[D].南昌:江西理工大学,2009:5-6.
[8]库少平,刘晶.基于STM32F10x和MDK的步进电机控制系统设计[J].武汉理工大学,2011:7.
[9]曹欢.基于ARM和FPGA的多自由度机械臂控制系统设计[D].上海:华东理工大学,2011:7.
和青芳,指导教师。
鸣谢:该项目的研究成果基于北京联合大学“启明星”大学生科技创新项目经费资助,项目编号:201611417SJ096。