可调机械手动态解耦控制

可调串联机械手的动态解耦考虑变化的有效载荷

摘要

本文研究了具有变化负载的可调串联机械手的动态解耦问题。在无负载情况下,此类机械手可通过连杆反向旋转和质量的最优重新分配实现动态解耦。然而,引入变化的有效载荷会导致机械手动态解耦的扰动。为了消除此类扰动,本文讨论了最优控制设计。所提出的方法结合了机械与控制解决方案,改进了已有的设计概念,实现了考虑变化有效载荷的串联机械手动态解耦。通过使用MATLAB软件对所提技术的效率进行了评估。

关键词 机电设计 Serial机械手 Decoupled动力学 可调机构

1 引言

已知机器人机械手的动力学模型通常由一组非线性、强耦合的微分方程描述。复杂的动力学特性源于变化的惯性、不同关节之间的相互作用,以及科里奥利力和离心力等非线性力。非线性力会导致误差在高速下的位置响应,并且已被证明即使在低速时也具有显著影响。因此,机器人机构的动态解耦引起了研究人员的关注,并提出了不同的解决方案。

在最近的研究中 [5],讨论了2自由度可调串联机械手的动态解耦问题。通过在具有可调长度连杆的初始结构上增加一个双Scott-Russell机构,并结合机械手连杆的相同且相反的旋转,实现了消除机械手动力学中非线性项的系数,即 [6] 与机械手连杆的相同且相反的旋转相结合,亦即 $h_1 = -h_2$(图 1)。

示意图0

当可调串联机械手的第二连杆处于静态平衡时,即 $l_{BS2} = 0$(图1),且重力方向垂直于运动平面xOy时,运动方程可写为:

$$
\begin{bmatrix}
s_1 \
s_2
\end{bmatrix}
=
\begin{bmatrix}
I_{S2} + I_{S1} + m_1 l_{A S1}^2 + m_2 l_1^2 & I_{S2} \
I_{S2} & I_{S2}
\end{bmatrix}
\begin{bmatrix}
\ddot{h}_1 \
\ddot{h}_2
\end{bmatrix}
=
\begin{bmatrix}
a & b \
a & a
\end{bmatrix}
\begin{bmatrix}
\ddot{h}_1 \
\ddot{h}_2
\end{bmatrix}
\quad (1)
$$

其中,$a = I_{S2}$; $b = I_{S1} + m_1 l_{A S1}^2 + m_2 l_1^2$;$I_{S1}$ 是连杆1相对于其质心 $S_1$ 的轴向惯性矩;$I_{S2}$ 是连杆2相对于其质心 $S_2$ 的轴向惯性矩;$m_1$;$m_2$ 分别为连杆1 和连杆2的质量;$l_{A S1}$ 是连杆1的质心 $S_1$ 到关节中心A的距离;$l_{B S2}$ 是连杆2的质心 $S_2$ 到关节中心B的距离;$\dot{h}_1$ 是连杆1相对于基座的角加速度;$\dot{h}_2$ 是连杆2相对于连杆1的角加速度;

由这些方程可得

$$
\text{if: } \ddot{h}_1 = -\ddot{h}_2
\Rightarrow
\begin{cases}
s_1 = b \ddot{h}_1 \
s_2 = 0
\end{cases}
\quad (2)
$$

即动力学方程实现解耦,且第二个执行器扭矩被消除。

2 考虑负载的动态解耦

上述运动方程的动态解耦对应于无负载的机械手。然而,显然变化的有效载荷会在执行器上产生非线性的可变负载。

$$
\begin{cases}
s_1 = w(h_2) \ddot{h}_1 + [c_2 + b(h_2)] \ddot{h}_2 - 2a(h_2)\dot{h}_1\dot{h}_2 - a(h_2)\dot{h}_2^2 \
s_2 = [c_2 + b(h_2)] \ddot{h}_1 + c_2 \ddot{h}_2 + a(h_2)\dot{h}_1^2
\end{cases}
\quad (3)
$$

其中,

$$
a(h_2) = M_2 l_1 l_{B S2} \sin(h_2); \quad b(h_2) = M_2 l_1 l_{B S2} \cos(h_2); \quad w(h_2) = c_1 + c_2 + M_2 l_1^2 + 2b(h_2);
$$
$$
c_1 = I_{S1} + m_1 l_{A S1}^2; \quad c_2 = I_{S2} + M_2 l_{B S2}^2
$$

其中 $M_2 = m_2 + \Delta m$ 和 $l_{B S2} = \frac{\Delta m}{m_2 + \Delta m} l_2$, $\Delta m$ 是负载的质量。

因此,负载的引入导致机械手第二连杆的不平衡。根据上述提出的解决方案,动力学方程可重写为:

$$
\begin{cases}
s_1 = (I_{S1} + m_1 l_{A S1}^2 + m_2 l_1^2) \ddot{h}_1 + \Delta m l_1 [l_1 + l_2 \cos(h_2)] \ddot{h}_1 - \Delta m l_1 l_2 \sin(h_2) \dot{h}_1 \dot{h}_2 \
s_2 = \Delta m l_1 l_2 \cos(h_2) \ddot{h}_1 + \sin(h_2) \dot{h}_1^2
\end{cases}
\quad (4)
$$

显然,执行器的扭矩大大简化了,但它们仍未完全解耦。与公式(2)相比,负载补偿可通过以下方式获得:

$$
\begin{cases}
\Delta s_1 = \Delta m l_1 [l_1 + l_2 \cos(h_2)] \ddot{h}_1 - \Delta m l_1 l_2 \sin(h_2) \dot{h}_1 \dot{h}_2 \
\Delta s_2 = \Delta m l_1 l_2 \cos(h_2) \ddot{h}_1 + \sin(h_2) \dot{h}_1^2
\end{cases}
\quad (5)
$$

3 实例研究的计算机仿真

为了评估所提出技术的性能,进行了带有负载补偿和不带负载补偿的仿真。首先,为了说明负载补偿的影响,使用了开环控制系统,即一种无反馈系统。

3.1 开环控制系统

开环控制律可以表示为:

$$
\begin{cases}
s_1(t) = (a + b) \ddot{h} {1R}(t) + a \ddot{h} {2R}(t) + \Delta s_{1R} \
s_2(t) = a \ddot{h} {1R}(t) + a \ddot{h} {2R}(t) + \Delta s_{2R}
\end{cases}
\quad (6)
$$

其中,负载补偿由以下给出:

$$
\begin{cases}
\Delta s_{1R} = \Delta m l_1 [l_1 + l_2 \cos(h_{2R})] \ddot{h} {1R} - \Delta m l_1 l_2 \sin(h {2R}) \dot{h} {1R} \dot{h} {2R} \
\Delta s_{2R} = \Delta m l_1 l_2 \cos(h_{2R}) \ddot{h} {1R} + \sin(h {2R}) \dot{h}_{1R}^2
\end{cases}
\quad (7)
$$

其中,

$$
\begin{cases}
h_{1R}(t) = h^i_1 + (h^f_1 - h^i_1) \left( \frac{t}{T} \right)^3 \left(10 - 15 \frac{t}{T} + 6 \left( \frac{t}{T} \right)^2 \right) \
h_{2R}(t) = h^i_2 + (h^f_2 - h^i_2) \left( \frac{t}{T} \right)^3 \left(10 - 15 \frac{t}{T} + 6 \left( \frac{t}{T} \right)^2 \right)
\end{cases}
\quad (8)
$$

其中,$T$ 是执行轨迹所用的时间, $0 \leq t \leq T$。而 $\dot{h} {1R}, \dot{h} {2R}, \ddot{h} {1R}, \ddot{h} {2R}$ 可通过连续求导获得。

机械手的初始和最终位置为:$h^i_1 = 0.576; h^i_2 = 0$ 和 $h^f_1 = 1.92; h^f_2 = -1.344$。轨迹 $h_{1R}(t)$ 和 $h_{2R}(t)$ 是时间函数,满足 $[h_{1R}(0), h_{2R}(0)]^T = [h^i_1, h^i_2]^T$ 和 $[h_{1R}(T), h_{2R}(T)]^T = [h^f_1, h^f_2]^T$。由于轨迹由时间参数化,我们可以通过微分得到轨迹上的速度和加速度。

如 $h^f_2 = h^i_1 + h^i_2 - h^f_1 \Rightarrow \ddot{h} {2R}(t) = -\ddot{h} {1R}(t)$ 且 $\dot{h} {2R}(t) = -\dot{h} {1R}(t)$。

对于 $T = 1\,\text{s}$ 和 $\Delta m = 1\,\text{kg}$,第 3 节中所示机械手在 MATLAB 软件中的响应如图 2 和 3 所示。

虚线表示未进行负载补偿时机械手的扭矩和角位移,实线表示进行负载补偿后的相应参数。因此可以看出这两种情况之间存在误差。在有负载补偿的情况下,机械手的两个连杆均能准确旋转至目标角度。然而,在没有负载补偿的情况下,连杆1和连杆2的角位移误差分别为39%和16.5%。这验证了考虑负载的前馈控制的效果。因此,在无负载补偿的情况下,需要采用反馈控制来减小误差。

示意图1

示意图2

3.2 闭环控制系统

闭环控制律可以表示为:

$$
\begin{cases}
s_1(t) = (a + b) \ddot{h} {1R}(t) + a \ddot{h} {2R}(t) + \Delta s_{1R} \
\quad - g_{11} \left[ (a + b)(\dot{h} 1(t) - \dot{h} {1R}(t)) + a(\dot{h} 2(t) - \dot{h} {2R}(t)) \right] \
\quad - g_{12} \left[ (a + b)(h_1(t) - h_{1R}(t)) + a(h_2(t) - h_{2R}(t)) \right] \
\
s_2(t) = a \ddot{h} {1R}(t) + a \ddot{h} {2R}(t) + \Delta s_{2R} \
\quad - g_{21} \left[ a(\dot{h} 1(t) - \dot{h} {1R}(t)) + a(\dot{h} 2(t) - \dot{h} {2R}(t)) \right] \
\quad - g_{22} \left[ a(h_1(t) - h_{1R}(t)) + a(h_2(t) - h_{2R}(t)) \right]
\end{cases}
\quad (9)
$$

其中,$\Delta s_{1R}(t)$ 和 $\Delta s_{2R}(t)$ 由公式(7)给出。

常数增益元素 $g_{11}$、$g_{12}$、$g_{21}$ 和 $g_{22}$ 通过状态反馈的最优极点配置设计获得。该静态平衡的 2自由度可调串联机械手 的状态空间表示将写作:

$$
\begin{bmatrix}
\ddot{h}_1 \
\dot{h}_1 \
\ddot{h}_2 \
\dot{h}_2
\end{bmatrix}
=
\begin{bmatrix}
0 & 1 & 0 & 0 \
0 & 0 & 0 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0
\end{bmatrix}
\begin{bmatrix}
\dot{h}_1 \
h_1 \
\dot{h}_2 \
h_2
\end{bmatrix}
+
\begin{bmatrix}
0 & 0 \
1 & 0 \
0 & 0 \
-\frac{1}{b} & \frac{1}{a} + \frac{1}{b}
\end{bmatrix}
\begin{bmatrix}
s_1 \
s_2
\end{bmatrix}
\quad (10)
$$

可控标准型由以下两个独立的子系统给出:

$$
\begin{cases}
(a + b) \ddot{h}_1 + a \ddot{h}_2 \
(a + b) \dot{h}_1 + a \dot{h}_2
\end{bmatrix}
=
\begin{bmatrix}
0 & 0 \
1 & 0
\end{bmatrix}
\begin{bmatrix}
(a + b) \dot{h}_1 + a \dot{h}_2 \
(a + b) h_1 + a h_2
\end{bmatrix}
+
\begin{bmatrix}
1 \
0
\end{bmatrix}
s_1 \
\
\begin{bmatrix}
a \ddot{h}_1 + a \ddot{h}_2 \
a \dot{h}_1 + a \dot{h}_2
\end{bmatrix}
=
\begin{bmatrix}
0 & 0 \
1 & 0
\end{bmatrix}
\begin{bmatrix}
a \dot{h}_1 + a \dot{h}_2 \
a h_1 + a h_2
\end{bmatrix}
+
\begin{bmatrix}
1 \
0
\end{bmatrix}
s_2
\end{cases}
\quad (11)
$$

一个双积分器 $\ddot{u}(t), \dot{u}(t)$ 构成的系统是完全可控的。我们寻求使代价函数 $J = \int_0^{T_p} x^T Q x + u^T R u \, dt$ 最小化的控制律,其中矩阵 $Q$ 基于如下定义的可控性格拉米矩阵:

$$
G_c(0, T_p) = \int_0^{T_p} e^{At} B B^T e^{A^T t} dt
$$

矩阵 $Q = \left(G_c(0, T_p)\right)^{-1}$ 是对称正定的。参数 $T_p$ 假设闭环系统的极点可在S平面中位于横坐标为 $-1/T_p$ 的垂直直线左侧。

线性二次型控制器是唯一的最优解 $u(t) = -G x(t)$,即具有 $G = B^T R$ 的全状态反馈控制律,可使代价函数 $J$ 最小化。矩阵 $R$ 是代数Riccati方程:$A^T R + R A - R B B^T R + Q = 0$ 的唯一对称正定解。因此,

$$
g_{11} = g_{12} = \frac{2 \sqrt{1 + \sqrt{3}}}{T_p}; \quad g_{21} = g_{22} = \frac{2}{T_p^2 \sqrt{3}}
$$

然后,闭环特征多项式为:
$$
P(s) = s^2 + 2 \frac{\sqrt{1 + \sqrt{3}}}{T_p} s + \frac{2}{T_p^2 \sqrt{3}}
$$

如果 $P(s) = s^2 + 2\zeta \omega_n s + \omega_n^2$,我们有:$\omega_n = \sqrt{\frac{2}{T_p \sqrt{3}}}$ 和 $\zeta = \frac{\sqrt{1 + \sqrt{3}}}{\sqrt{2 \sqrt{3}}} = 0.89$

对于 $T = 1\,\text{s}$;$T_p = 0.2\,\text{s}$ 且 $\Delta m = 1\,\text{kg}$ 时,MATLAB软件得到的响应如图 4 和 5 所示。与之前的情况一样,虚线表示未进行负载补偿的机械手扭矩和角位移,实线表示进行了补偿后的相同参数。与之前的仿真一样,负载补偿能够实现机械手运动的精确复现。

示意图3

示意图4

与这些结果相比,未进行负载补偿时连杆1和2的角位移误差(图4和 5)不超过2%。因此,使用反馈可以进一步减少因消除负载补偿而引起的误差。

4 结论

具有连杆可调长度的串联机械手在先前的研究中可以通过连杆反向旋转和质量的最优重新分配实现动态解耦。然而,显然引入变化的有效载荷会导致机械手动态解耦的扰动。为了确保在负载变化时机械手仍具有线性化解耦动力学,采用了一种最优控制技术。

因此,实现了考虑变化的有效载荷的机械手的完全动态解耦。为了评估所提出技术的效率,在开环控制系统(即无反馈系统)和闭环控制系统中分别进行了带有负载补偿和不带负载补偿的仿真。通过使用MATLAB软件获得的结果表明了所提出解决方案的有效性。

最后需要指出的是,与其它方案相比,所提出的设计概念能够在运动连杆的总质量相对较小增加的情况下实现具有解耦动力学的机械手,并且考虑了变化的有效载荷。该方案可在固定序列机械手的设计中得到广泛应用,以实现对夹持器运动的精确复现。

同步定位与地图构建(SLAM)技术为移动机器人或自主载具在未知空间中的导航提供了核心支撑。借助该技术,机器人能够在探索过程中实时构建环境地图并确定自身位置。典型的SLAM流程涵盖传感器数据采集、数据处理、状态估计及地图生成等环节,其核心挑战在于有效处理定位与环境建模中的各类不确定性。 Matlab作为工程计算与数据可视化领域广泛应用的数学软件,具备丰富的内置函数与专用工具箱,尤其适用于算法开发与仿真验证。在SLAM研究方面,Matlab可用于模拟传感器输出、实现定位建图算法,并进行系统性能评估。其仿真环境能显著降低实验成本,加速算法开发与验证周期。 本次“SLAM-基于Matlab的同步定位与建图仿真实践项目”通过Matlab平台完整再现了SLAM的关键流程,包括数据采集、滤波估计、特征提取、数据关联与地图更新等核心模块。该项目不仅呈现了SLAM技术的实际应用场景,更为机器人导航与自主移动领域的研究人员提供了系统的实践参考。 项目涉及的核心技术要点主要包括:传感器模型(如激光雷达与视觉传感器)的建立与应用、特征匹配与数据关联方法、滤波器设计(如扩展卡尔曼滤波与粒子滤波)、图优化框架(如GTSAM与Ceres Solver)以及路径规划与避障策略。通过项目实践,参与者可深入掌握SLAM算法的实现原理,并提升相关算法的设计与调试能力。 该项目同时注重理论向工程实践的转化,为机器人技术领域的学习者提供了宝贵的实操经验。Matlab仿真环境将复杂的技术问题可视化与可操作化,显著降低了学习门槛,提升了学习效率与质量。 实践过程中,学习者将直面SLAM技术在实际应用中遇到的典型问题,包括传感器误差补偿、动态环境下的建图定位挑战以及计算资源优化等。这些问题的解决对推动SLAM技术的产业化应用具有重要价值。 SLAM技术在工业自动化、服务机器人、自动驾驶及无人机等领域的应用前景广阔。掌握该项技术不仅有助于提升个人专业能力,也为相关行业的技术发展提供了重要支撑。随着技术进步与应用场景的持续拓展,SLAM技术的重要性将日益凸显。 本实践项目作为综合性学习资源,为机器人技术领域的专业人员提供了深入研习SLAM技术的实践平台。通过Matlab这一高效工具,参与者能够直观理解SLAM的实现过程,掌握关键算法,并将理论知识系统应用于实际工程问题的解决之中。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值