编辑
2021-07-20
Analysis
00
请注意,本文编写于 1034 天前,最后修改于 66 天前,其中某些信息可能已经过时。

目录

柔性关节机械臂控制与概率动力学建模
课题背景
课题研究内容与方法
虚拟机械臂的搭建
控制系统的开发
实物柔性关节机械臂的搭建
概率动力学建模
项目的研究结果
控制系统
柔性关节机械臂实物
柔性关节-刚性连杆机械臂系统动力学模型
创新处
结束语
主要参考文献

柔性关节机械臂控制与概率动力学建模

项目成员:宋迪、刘翌、李淼、葛一杨

指导教师:刘延芳

摘要: 针对很多机械臂由于材料、体积等原因产生的不能忽略的弹性影响,建立一个柔性关节机械臂模型,并对其进行仿真分析及并完成概率动力学建模。本项目搭建了一个可视为刚性的机械臂并对其中两个关节进行柔性改装,并安装传感器,完成柔性关节机械臂的搭建。应用基于力的阻抗控制较好的实现了柔性关节机械臂的控制。由于时间的错误安排,没有完成仿真分析及概率动力学建模。

关键词: 机械臂;柔性关节;阻抗控制;概率动力学

image.png

课题背景

随着制造业的快速发展,机器人技术渐渐渗透到各个领域,产品需求量日益增大。受生产环境以及机器人的重量、体积、和灵活度等影响,如何在复杂或未知的环境中平稳运行是机器人即将面临的难题。与此同时,研发水平的提升、新材料的投入使用以及工艺技术的创新,都为机器人的发展提供了便利,未来机器人将逐渐向柔性化方向发展。

而在航天领域机械臂的柔性化也日渐突显出其重要性。在卫星天线及航天飞机上抓取卫星用的机械臂有几十米长,且质量很轻,弹性的影响必须计及。由于弹性引起的振动,使得机械臂不能准确定位,不能可靠工作,甚至损坏机械结构。因此,怎样抑制和减少柔性机械臂的振动是近年来相关学者研究的热点。

若想完成高速度、高精度的工作,必须考虑到机械臂结构的柔性特征。从严格意义上说,广义的柔性机械臂总体可以分为两种:一是机械臂连杆是弹性材料做成,连杆本身存在柔性,即分布式柔性机械臂;二是机械臂的连杆是刚性的,柔性有且只有在关节处存在,称为柔性关节机械臂。

我们研究的方向主要是柔性关节机械臂。相对于传统的刚性机械臂,柔性关节机械臂具有质量轻、体积小、 能耗低等特点,其应用范围越来越广,由此也引申出了很多相关研究。如何对柔性机械臂进行有效和精确的建模以及对其进行有效的控制一直是国内外学者研究的重要课题。如果能成功完成柔性关节机械臂的开发以及建立一个贴合实际的概率动力学建模,将对航天工业的发展起到重要的推动作用。

课题研究内容与方法

虚拟机械臂的搭建

虚拟样机技术是目前全球比较新颖的产品设计方法,它是在产品设计阶段采用计算机应用虚拟样机技术建立机械臂的虚拟模型,能够把各种方式各种方法设计的模型联合在一起使用,它可以最大程度的模拟所要设计产品的功能、外形、以及必要的物理特征。所以我们在搭建真实机械臂之前先应用SolidWorks、MATLAB等进行模拟机械臂的研究与开发。这样我们可以提前获知所要搭建的机械臂的多种物理性质与可能出现的问题,这些将增加现实中搭建机械臂的速度,减少不必要的问题。

实施方案:

(1)认真学习SolidWorks、MATLAB等软件的使用方法,分析各种软件的优劣,以便于应用不同的软件进行机械臂不同方面的开发与测试;

(2)搜集各方资料,寻找最合适的机械臂结构样式,并应用各种模拟软件进行可行性测试,最终选定搭建的机械臂结构;

(3)根据确定的机械臂结构样式,应用软件完成虚拟机械臂的搭建,并测试其不同状况下的物理特征等,为真正机械臂的搭建奠定基础。

控制系统的开发

对于一个机械臂,控制系统是非常重要的组成部分。只有开发出一个合适的控制系统才能使机械臂正常接收指令,正常运动,完成工作内容。本主题采用Arduino作为控制系统,该平台主要基于C语言的集成开发环境,在IDE中编写控制程序代码,之后将程序上传到Arduino电路板,驱动系统通过输出PWM波来实现对电机转向装置的旋转控制,进而实现每个关节的运动控制,即用单片机控制机械臂相应舵机。

(1)主控制模块:设计控制模块使用Arduino中的UNO控制板,对机械臂的两处关节进行控制。主控板由单片机和相应的电路板组成,单片机负责程序运行,电路板处理输入输出信号以实现对关节处舵机的控制。

(2)舵机;舵机由主控制模块控制以完成四自由度的机械臂相应运动以及夹取物体、释放物体等指令动作。

(3)套电源及其他:电源用于控制系统供电,如蜂鸣器则是用于机器故障报警所用。

实物柔性关节机械臂的搭建

无论是要进行关于柔性关节机械臂的相关研究,还是依此建立概率动力学模型并进行试验验证,搭建一个柔性关节机械臂的实物都是至关重要、不可或缺的一部分。在虚拟机械臂的基础上,选择合适的材料和零部件,完成实物的搭建,将对整个研究有着巨大的推动作用。

实施方案:

(1)收集汇总各方资料,了解各种构型机械臂的优劣,并确定项目中柔性关节机械臂的构型方向;寻找合适的材料,并依照材料等的物理性质,完成虚拟机械臂的开发;

(2)对于已经设计出的机械臂进行可行性推导,依据结果对所设计的机械臂进行进一步的修改进而完成实物机械臂的搭建;

(3)对于在搭建过程中出现的实物与虚拟不能完美重合、由于现实中的一些因素使得实物与模拟机械臂产生偏差等问题,不断修改模拟机械臂的结构,找到解决问题的最优解。

概率动力学建模

实现柔性关节机械臂高精度的有效控制必须考虑其系统动力学特性。建造一个动力学模型成为在柔性关节机械臂研发与应用中重要的一环。由于柔性关节机械臂是一个非常复杂的动力学系统,且其动力学方程相比于刚性机械臂具有高度非线性, 强耦合, 实变等特点,一般的动力学模型很难进行确切的描述。因此我们选择以高斯方程为基础建立概率动力学模型以更精确更贴近实际地描述柔性关节机械臂的控制系统。

(1)系统研究掌握高斯方程模型,并参考已用于对机械臂动力学的研究的Lagrange法(功能平衡法)、Newton-Euler法(动态平衡法)和 Kane法等,进行初步合理设想。

(2)为了便于模型推导,利用Spong提出的假设模型采用线性弹簧来描述柔性关节特性,并提出适当的进一步假设条件以简化模型。

(3)建模,完成完整的方程组推导,并初步选取单连杆柔性关节机械臂为研究对象,进行数值仿真检验上述模型的合理性。

(4)进入实验阶段,与实际模型进行对照修正并适当运用Simulink等工具对其进行进一步仿真以使其能更好的便于实际模型参考。

项目的研究结果

控制系统

为了使机械臂能够真正的进行精细操作,控制系统的软件设计同样重要。根据手臂与环境之间是否存在力的作用,可以将手臂控制分成自由空间和约束空间的控制两个部分。通常把约束空间的控制统称为柔顺控制,而如何同时满足位置控制和力控制的要求,是柔顺控制所要解决的主要问题。

机械臂的柔顺控制具有主动柔顺和被动柔顺两种实现方式,主动柔顺是凭借能吸收或储存能量的机构,使手臂与物体接触时能对接触力产生一定的顺从能力,基于力反馈信息对手臂和物体之间的作用力进行主动控制,而被动柔顺控制不能进行严格意义上进行力的控制,因此主动柔顺控制逐渐成为机器人领域的一个研究重点。

机器人主动控制方法主要包括阻抗控制和力或位置混合控制等,与力或位置混合控制不同的是:阻抗控制不是直接控制期望的位置和力,而是通过调节机器人末端的阻抗实力与位置满足期望的动力学关系,从而实现机器人的主动柔顺阻抗控制。实现阻抗控制的方法很多,通常可以分为两类:基于力的阻抗控制或基于位置的阻抗控制。基于力的阻抗控制,一般由内环的力控制器和外环的阻抗计算环节组成,根据系统的期望运动状态和实际运动状态以及目标阻抗参数,外环计算出实现目标阻抗关系所需要的期望力,然后通过内环的力控制器,使机器人与环境之间的实际作用力跟踪该期望力,从而实现机器人的目标动力学特性,进而研究机械臂关节的柔性。其阻抗关系可以用一个二阶微分方程描述出来,如下所示:

F(t)=Md[X¨(t)X¨d(t)]+Bd[X˙(t)X˙d(t)]+Kd[X(t)Xd(t)]F(t)=M_d\left[\ddot{X}(t)-\ddot{X}_d(t)\right]+B_d\left[\dot{X}(t)-\dot{X}_d(t)\right]+K_d\left[X(t)-X_d(t)\right]

其中, 其中 MdBdM_d 、 B_dKdK_d 都是半正定对角阵, 分别表示阻抗模型的期望惯性矩阵、期望阻尼矩阵和期望刚度矩阵 X(t)X˙(t)X(t) 、 \dot{X}(t)X¨(t)\ddot{X}(t) 分别表示七自由度机械臂末端的当前位置、当前速度和当前加速度, Xd(t)X˙d(t)X_d(t) 、 \dot{X}_d(t)X¨d(t)\ddot{X}_d(t) 分别表示七自由度机械臂末端的期望位置、速度和加速度; F(t)F(t) 是机器人与作业环境的作用力。

机械臂在进行柔顺控制时,可以分为两部分,一是在自由空间的运动,二是在约束空间的运动。当在自由空间中运动时,机械臂可以抛离环境单独作为一个控制系统,此时 F(t)\mathrm{F}(\mathrm{t}) 为零,力控制外环不参与控制,此时机械臂就相当于处于位置控制模式下; 当处于约束空间时, 即机械臂与作业环境有接触, 需要把机械臂和作业环境看成一个整体,此时机械臂与作业环境的动力学模型可以表述为:

F(t)=Fd(t)Ke[X(t)Xe(t)]F(t)=F_d(t)-K_e\left[X(t)-X_e(t)\right]

其中, Fd(t)F_d(t) 是期望跟踪的力, KeK_e 是环境的刚度力控制外环跟踪期望力和接触力的差值。实际应用中, 机械臂的柔顺控制通常有两种:基于力和基于位置的阻抗控制,也就是阻抗和导纳控制。基于力的阻抗控制由力控制内环和位置控制外环构成, 由位置控制计算出当前位置与期望位置的差值, 通过阻抗控制器计算出机械臂力驱动的期望力, 然后通过力控制内环进行控制, 实质上就是通过关节的力矩驱动来动态调节机械臂接触力和位置之间的关系。基于位置的阻抗控制由位置控制内环和力控制外环组成, 由力传感器计算出机器人与环境的偏差力, 输入阻抗控制器计算出位置修正值, 将位置修正值与目标轨迹相加得到期望位置, 然后送给位置控制内环进行运动, 从而动态的实现机械臂与作业环境的柔顺接触。

基于位置的阻抗控制虽然更容易实现,但是对于我们所搭建的柔性关节机械臂来说对于位置的控制很难达到精准,而基于力的阻抗控制可以让我们控制输出的力进而减少柔性对机械臂准确性的影响。在对于一个自由度较低的机械臂来说,基于力的阻抗控制并不难完成,所以我们选择应用基于力的阻抗控制进行柔顺控制的研究。

柔性关节机械臂实物

无论是要进行关于柔性关节机械臂的相关研究,还是依此建立概率动力学模型并进行试验验证,搭建一个柔性关节机械臂的实物都是至关重要、不可或缺的一部分。在进行了对模型的选择和分析之后,我们开始着手搭建一个实物机械臂模型,以便于日后数据的搜集和分析,并为概率动力学建模做准备。

在模型选择方面,我们决定采用仿腱线性弹簧为关节提供柔性的单连杆机械臂模型,这种模型搭建较简单并且易于分析。

以下是我们搭建出的机械臂模型(见图1)。该机械臂共有三处关节,我们在其中的两处对其进行了改造,增添了弹簧结构(见图2),使得其产生一定的柔性。并扩展了其功能增添了用于提供数据的传感器模块。改造后的机械臂已经过可行性推导和多次调试,并进行了进一步的修改,最后搭建的模型能够满足我们对于关节柔性的要求并能够用于进行实验得出数据。由于疫情,该部分进度受到了一定影响,传感器功能不够完善,未能完整提供所有所需数据,我们用定位控制软件提供的时间,角度,坐标等数据进行了完善以达到目的。

以下是目前的机械臂实物图:

image.png 图1 原机械臂模型:① 机械臂底座,② 铜柱,③ 舵机支架,④ 旋转平台,

⑤ 左侧舵机,⑥ 左侧舵机支架,⑦ 左侧舵机连接件,⑧ 一级机械臂,

⑨ 二级机械臂,⑩ 三级机械臂,⑪ 右侧舵机,⑫ 三级机械臂,

⑬ 机械爪连杆,⑭ 机械爪舵机,⑮ 旋转平台,⑯ 机械爪。

image.png

image.png

控制系统以Arduino Uno控制板为核心,其主要结构及功能如下:

(1)1个DC输入,为Arduino板提供外部电源输出,使Arduino控制板具有能够驱动舵机等外部设备的能力;

(2)1个USB口,通过该接口接到计算机,由Arduino的IDE将编写好的控制程序上传到控制板中,同时还可以通过该扣为电路板供电,驱动舵机,其单片机驱动电机控制主要结构如图3所示;

image.png 图3 Arduino单片机控制驱动器及电机主要结构

(3)14个数字输入输出端口,用来接收和发送数据,接收外部信号,实现外部中断功能等等;

(4)6个模拟输入输出端口,可实现12c通信等;

(5)1个复位按钮;

(6)电源接口,外接电源插口,串口状态灯等其它设备,首先程序定义各种舵机引脚,并将各舵机的角度初始化为90°,如果初始化成功,则继续进行子程序的编写,编写后执行程序,在执行程序后根据执行情况对程序进行调试,若程序执行调试成功即程序正确,则可通过控制杆或键盘端操控机械臂实现相应的动作指令,其流程如图4所示;

image.png

图4 单片机操控机械臂程序流程图

柔性关节-刚性连杆机械臂系统动力学模型

image.png

柔性关节-刚性连杆机械臂系统动力学模型如下:

图5 柔性关节-刚性连杆机械臂模型

连杆部分动能包括连杆和连杆末端负载的转动动能,势能包括连杆和连杆末端负载的重力势能。

连杆1上任意一点坐标为:

r1=[x1cos(θ1)x2sin(θ1)]r_1=\left[\begin{array}{l} x_1 \cos \left(\theta_1\right)\\ x_2 \sin \left(\theta_1\right) \end{array}\right]

连杆2上任意一点坐标为:

r2=[L1cos(θ1)+x2cos(θ2)L1sin(θ1)+x2cos(θ2)]r_2=\left[\begin{array}{l} L_1 \cos \left(\theta_1\right)+x_2 \cos \left(\theta_2\right) \\ L_1 \sin \left(\theta_1\right)+x_2 \cos \left(\theta_2\right) \end{array}\right]

连杆1的动能为:

E1=1213M1L12θ˙12=16M1L12θ˙12E_1=\frac{1}{2} \cdot \frac{1}{3} M_1 L_1^2 \dot{\theta}_1^2=\frac{1}{6} M_1 L_1^2 \dot{\theta}_1^2

连杆1末端负载动能为:

E3=12 m1L12θ˙12E_3=\frac{1}{2} \mathrm{~m}_1 L_1^2 \dot{\theta}_1^2

连杆2动能为:

E2=12M2L12θ˙12+16M2L22θ˙22+12M2L1L2θ˙1θ˙2cos(θ2θ1)E_2=\frac{1}{2} M_2 L_1^2 \dot{\theta}_1^2+\frac{1}{6} M_2 L_2^2 \dot{\theta}_2^2+\frac{1}{2} M_2 L_1 L_2 \dot{\theta}_1 \dot{\theta}_2 \cos \left(\theta_2-\theta_1\right)

连杆2末端负载动能为:

E2=12m2L12θ˙12+12m2L22θ˙22+12m2L1L2θ˙1θ˙2cos(θ2θ1)E_2=\frac{1}{2} m_2 L_1^2 \dot{\theta}_1^2+\frac{1}{2} m_2 L_2^2 \dot{\theta}_2^2+\frac{1}{2} m_2 L_1 L_2 \dot{\theta}_1 \dot{\theta}_2 \cos \left(\theta_2-\theta_1\right)

连杆 1 和连杆 1 末端负载重力势能为:

U1=(12M2+m1)L1sin(θ1)U_1=\left(\frac{1}{2} M_2+m_1\right) L_1 \sin \left(\theta_1\right)

连杆 2 和连杆 2 末端负载重力势能为:

U2=(12M2+m1)(L2sin(θ1)+L2sin(θ2))U_2=\left(\frac{1}{2} M_2+m_1\right)\left(L_2 \sin \left(\theta_1\right)+L_2 \sin \left(\theta_2\right)\right)

连杆总势能为:

U=U1+U2U=U_1+U_2

连杆部分总动能为:

E=E1+E2+E3+E4E=E_1+E_2+E_3+E_4

根据拉格朗日方程 (3-2) 可以求的连杆的动力学方程为:

M2×2Q˙+C2×2Q˙+G2×1=tol2×1\boldsymbol{M}_{2 \times 2} \dot{\boldsymbol{Q}}+\boldsymbol{C}_{2 \times 2} \dot{\boldsymbol{Q}}+\boldsymbol{G}_{2 \times 1}=\boldsymbol{t o l}_{2 \times 1}

其中, Q[θ1θ2]Q\left[\begin{array}{ll}\theta_1 & \theta_2\end{array}\right] 为连杆的广义坐标, MM 为质量矩阵, CC 为科氏力、离心力矩阵, GG 为质量矩阵, tol关节对连杆产生的力矩。矩阵中各个具体参数为:

m11=(13M1+M2+m1+m2)L12+(13M2+m2)L22+2(M2+m2)L1L2cos(θ2θ1)m_{11}=\left(\frac{1}{3} M_1+M_2+m_1+m_2\right) L_1{ }^2+\left(\frac{1}{3} M_2+m_2\right) L_2{ }^2+2\left(M_2+m_2\right) L_1 L_2 \cos \left(\theta_2-\theta_1\right)
m12=m21=(13M2+m2)L22+(M2+m2)L1L2cos(θ2θ1)m22=(13M2+m2)L22c1l=(M2+m2)L1L2(θ˙1+θ˙2)cos(θ2θ1)c12=(M2+m2)L1L2(θ˙1+θ˙2)cos(θ2θ1)c21=(M2+m2)L1L2(θ˙1+θ˙2)cos(θ2θ1)c22=0\begin{aligned} & m_{12}=m_{21}=\left(\frac{1}{3} M_2+m_2\right) L_2{ }^2+\left(M_2+m_2\right) L_1 L_2 \cos \left(\theta_2-\theta_1\right) \quad m_{22}=\left(\frac{1}{3} M_2+m_2\right) L_2{ }^2 \\ & c_{1 l}=-\left(M_2+m_2\right) L_1 L_2\left(\dot{\theta}_1+\dot{\theta}_2\right) \cos \left(\theta_2-\theta_1\right) \quad c_{12}=-\left(M_2+m_2\right) L_1 L_2\left(\dot{\theta}_1+\dot{\theta}_2\right) \cos \left(\theta_2-\theta_1\right) \\ & c_{21}=\left(M_2+m_2\right) L_1 L_2\left(\dot{\theta}_1+\dot{\theta}_2\right) \cos \left(\theta_2-\theta_1\right) \quad c_{22}=0 \end{aligned}
G2=(12M1+m1+M2+m2)gL1sinθ1+(12M2+m2)gL2sinθ2G2=(12M2+m2)gL2sinθ2tol=[k1(β1θ1)k2(β2θ2)]=[τ1J1β¨1τ2J2β¨2]\begin{gathered} G_2=\left(\frac{1}{2} M_1+m_1+M_2+m_2\right) g L_1 \sin \theta_1+\left(\frac{1}{2} M_2+m_2\right) g L_2 \sin \theta_2 \\ G_2=\left(\frac{1}{2} M_2+m_2\right) g L_2 \sin \theta_2 \\ \boldsymbol{t o l}=\left[\begin{array}{l} k_1\left(\beta_1-\theta_1\right) \\ k_2\left(\beta_2-\theta_2\right) \end{array}\right]=\left[\begin{array}{l} \tau_1-J_1 \ddot{\beta}_1 \\ \tau_2-J_2 \ddot{\beta}_2 \end{array}\right] \end{gathered}

β=[β1β2]\beta=\left[\begin{array}{ll}\beta_1 & \beta_2\end{array}\right], 则

J=[J1N100J2N2]KS=[k100k2]\boldsymbol{J}=\left[\begin{array}{cc} J_1 N_1 & 0 \\ 0 & J_2 N_2 \end{array}\right] \quad \boldsymbol{K}_{\boldsymbol{S}}=\left[\begin{array}{cc} k_1 & 0 \\ 0 & k_2 \end{array}\right]

则柔性关节柔性连杆机械臂动力学方程可以写成如下形式:

Jβ+Kf(βQ)=τMQ¨CQG=Kf(βQ)J \beta+\boldsymbol{K}_f(\boldsymbol{\beta}-\boldsymbol{Q})=\tau \quad M \ddot{\boldsymbol{Q}} \cdot \boldsymbol{C Q} \cdot \boldsymbol{G}=\boldsymbol{K}_f(\boldsymbol{\beta}-\boldsymbol{Q})

其中 τ\tau 是柔性关节端连杆电机的输出力矩。

创新处

应用弹簧等具有柔性特征的物品对机械臂进行改造,使得机械臂关节具有一定的柔性特征,能够满足项目需要。适当安装Ardunio UNO开发套件及传感器对机械臂功能进行拓展,结合配套软件定位控制,有效解决了原本电机参数不明,无法有效控制的问题。

结束语

我们对柔性关节机械臂及概率动力学建模进行了研究,首先,进行了虚拟机械臂的搭建,比对多种机械臂的性能结构,并测试其各种物理特征,最终决定搭建以亚克力板为主体材料,3个关节,6个自由度的机械臂。在控制方面,我们基于Ardunio,应用基于力的阻抗控制完成了机械臂控制系统的开发。

通过合理的假设条件运用拉格朗日动力学方程建立了柔性关节机械臂的通用数学模型,并且具体推导了一个具体的四自由度柔性臂数学模型。在此基础之上,为了下一阶段的研究,对机械臂进行了改装,即在关节处安装弹簧为机械臂提供柔性性质,并安装传感器以提高控制精度测量相关数据。

由于对建模的难度和所需时间的估计不足,且受疫情影响在机械臂搭建阶段耽误了一些时间,我们没有完成仿真分析及之后的概率动力学建模部分。

主要参考文献

[1]黄华.柔性关节机械臂的建模及控制研究.湖南工业大学,2014.

[2]安凯,王飞飞.一种单连杆机械臂柔性关节的滑模变结构控制[J].现代电子技术,2016,39(02):4-8.

[3]杨佳炜. 带有柔性关节的空间机械臂系统的振动控制[D].南京航空航天大学,2019.

[4]刘业超. 柔性关节机械臂控制策略的研究[D].哈尔滨工业大学,2009.

[5]汪超. 面向人机交互的七自由度服务机械臂柔顺控制研究[D].南京邮电大学.2019

[6]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.

[7]谢鸿鹄,王慧丽.Arduino机械手臂系统设计[J].湖北农机化,2019(21):123-124.

[8]李秀玲. 柔性机械臂动力学模型、轨迹规划与控制研究[D].浙江工商大学,2019.

本文作者:aurelianolm

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!