舰船科学技术  2022, Vol. 44 Issue (12): 181-184    DOI: 10.3404/j.issn.1672-7649.2022.12.037   PDF    
船体表面作业用六自由度机械臂设计与路径规划
贾成芬, 唐小洁, 张攀     
四川大学 锦江学院,四川 眉山 620860
摘要: 在船舶建造、壳体喷涂和货物吊装等场景下,使用多自由度机械臂不仅能够提高工作效率,促进船舶的自动化发展,也能提高工作质量,替代工作人员进行危险作业。船体表面作业用六自由度机械臂主要负责船体表面的涂装、焊接和清洗,本文研究船体表面作业六自由度机械臂的设计与路径规划,详细讨论了六自由度机械臂工作过程的避障原理和方法。在仿真测试中,基于粒子群优化算法的船体表面用六自由度机械臂具有较好的路径规划效果,值得进一步推广和使用。
关键词: 六自由度机械臂     路径规划     避障     粒子群优化    
Research on design and path planning of six degree of freedom manipulator for hull surface operation
JIA Cheng-fen, TANG Xiao-jie, ZHANG Pan     
Sichuan University, Jinjiang College, Meishan 620860, China
Abstract: In the scenes of ship construction, shell spraying and cargo hoisting, the use of multi degree of freedom manipulator can not only improve the work efficiency and promote the development of ship automation, but also improve the work quality and replace the staff for dangerous operations. The six degree of freedom manipulator for hull surface operation is mainly responsible for hull surface coating, welding and cleaning. The research direction of this paper is the design and path planning of the six degree of freedom manipulator for hull surface operation. The obstacle avoidance principle and method of the working process of the six degree of freedom manipulator are discussed in detail. In the simulation test of this study, the six degree of freedom manipulator for hull surface based on particle swarm optimization algorithm has good path planning effect, which is worthy of further promotion and use.
Key words: 6-DOF manipulator     route planning     obstacle avoidance     particle swarm optimization    
0 引 言

多自由度机械臂是一种目前在人类生产领域广泛使用的机器人,根据机械臂的使用场景可将机械臂划分为操作机械臂、运输机械臂、维修机械臂等,近年来,机械臂在医疗、航空、船舶领域的应用也逐渐增加。多自由度机械臂具有很多优点:

1)生产操作的精度高,加工和维修效率高,节省了人力和时间成本;

2)可代替工作人员从事复杂和危险的作业,比如航天领域的太空出仓作业、船体表面的清洗作业等;

3)可实现远程控制,借助无线和移动通信,工作人员可对机械臂进行远程操控[1]

5000 t以上的大型船舶外表面积非常大,外表面的喷涂、清洗都属于比较危险的高空作业,且船体外表面的形状复杂,稍有不慎就可能导致工作人员跌落等风险。本文针对船体表面作业的六自由度机械臂进行研究,研究内容包括六自由度机械臂的运动建模、基于粒子群寻优算法的六自由度机械臂路径规划和避障等。

1 船舶表面作业用六自由度机械臂运动坐标系

船体表面作业的六自由度机械臂的运动建模不仅要考虑自身的运动形式,还需要考虑机械臂与船体的耦合运动,建立坐标系如图1所示。

图 1 船体六自由度机械臂运动坐标系 Fig. 1 Motion coordinate system of six degree of freedom manipulator of ship hull

1)旋转变换

在该坐标系下,机械臂的位置(单位矢量[2])相对于参考坐标系的方向余弦表示为:

$ {^A_B}R = \left[ {^A{x_B}\;{\;^A}{y_B}\;\;{^A}{z_B}} \right] = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}&{{r_{13}}} \\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}} \\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}} \end{array}} \right]。$

式中: $ {^A_B}R $ 为旋转矩阵,共有3个单位列矢量 $^A{x_B},{^A}{y_B},{^A}{\textit{z}_B}$ ,每个列矢量之间两两垂直,分别对坐标轴进行转角为 $ \theta $ 的旋转变换,旋转矩阵如下:

$ R(x,\theta ){\text{ }} = \left[ {\begin{array}{*{20}{c}} 1&0&0 \\ 0&{c\theta }&{ - s\theta } \\ 0&{s\theta }&{c\theta } \end{array}} \right],$
$ R({\text{y}},\theta ){\text{ }} = \left[ {\begin{array}{*{20}{c}} {c\theta }&0&{s\theta } \\ 0&1&0 \\ { - s\theta }&0&{c\theta } \end{array}} \right] ,R(\textit{z},\theta ){\text{ }} = \left[ {\begin{array}{*{20}{c}} {c\theta }&{ - s\theta }&0 \\ {s\theta }&{c\theta }&0 \\ 0&0&1 \end{array}} \right] 。$

2)齐次坐标变换

在静坐标系o-xyz中,机械臂的位置坐标设为 $p = \left[ {\begin{array}{*{20}{c}} x \\ y \\ \textit{z}\end{array}} \right]$ ,则该位置的齐次坐标形式为 $p = \left[ {\begin{array}{*{20}{c}} x \\ y \\ \textit{z} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {wx} \\ {wy} \\ {w\textit{z}} \\ w \end{array}} \right]$ $ w $ ≠1。齐次坐标用4个坐标值表示机械臂在三维空间中的位置,即 ${p_0} = \left[ {\begin{array}{*{20}{c}} x \\ y \\ \textit{z} \\ w \end{array}} \right]$ ,用 $[ 1 \;\; 0\;\;0\;\; 0 ]^{\rm{T}}, [ 0\;\;1\;\;0\;\;0 ]^{\rm{T}},[ 0\;\;0\;\;1\;\;0 ]^{\rm{T}}$ 表示坐标轴的方向,用 $[ 0\;\;0\;\; 0\;\; 1 ]^{\rm{T}}$ 表示坐标原点。

机械臂位置的齐次变换矩阵由姿态矩阵和位置矩阵合成,表示如下:

$ G = \left[ {\begin{array}{*{20}{l}} R&{\text{P}} \\ 0&1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}&{{r_{13}}}&{{p_x}} \\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}}&{{p_y}} \\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}}&{{p_{\textit{z}}}} \\ 0&0&0&1 \end{array}} \right] 。$

分别对坐标轴进行转角为 $ \theta $ 的旋转变换,旋转矩阵如下:

$ {Rot} (x,\theta ){\text{ }} = \left[ {\begin{array}{*{20}{c}} 1&0&0&0 \\ 0&{\cos \theta }&{ - \sin \theta }&0 \\ 0&{\sin \theta }&{\cos \theta }&0 \\ 0&0&0&1 \end{array}} \right] ,$
$ {Rot} (y,\theta ) = \left[ {\begin{array}{*{20}{c}} {\cos \theta }&0&{\sin \theta }&0 \\ 0&1&0&0 \\ { - \sin \theta }&0&{\cos \theta }&0 \\ 0&0&0&1 \end{array}} \right],$
$ {Rot} ({\textit{z}},\theta ) = \left[ {\begin{array}{*{20}{c}} {\cos \theta }&{ - \sin \theta }&0&0 \\ {\sin \theta }&{\cos \theta }&0&0 \\ 0&0&1&0 \\ 0&0&0&1 \end{array}} \right]。$

3)运动建模

定义六自由度机械臂坐标轴的角位移分别为 ${\beta _x},\; {\beta _y},\;{\beta _{\textit{z}}}$ ,则建立运动模型为:

$ \left\{ {\begin{gathered} {{x_0} = x\sin \alpha \cos \varphi + y\sin \varphi + {\textit{z}}\left( {\cos \varphi \sin \theta } \right)},\hfill\\ {{y_0} = x\sin \varphi \sin \theta + y\cos \varphi \sin \theta + {\textit{z}}\left( {\cos \varphi } \right)},\hfill \\ {{{\textit{z}}_0} = x\cos \varphi + {\textit{z}}\left( {\cos \varphi \sin \theta - \sin \alpha } \right)},\hfill\\ {{\beta _x} = {w_x} + {w_y}\sin \varphi - {w_{\textit{z}}}\cos \alpha \sin \theta },\hfill \\ {{\beta _y} = {w_y} + {w_y}\sin \theta - {w_{\textit{z}}}\cos \varphi \sin \theta },\hfill \\ {{\beta _{\textit{z}}} = {w_{\textit{z}}} + {w_y}\cos \alpha - {w_{\textit{z}}}\sin \varphi }。\hfill \\ \end{gathered}} \right. $

式中: $ {w_x} $ $ {w_y} $ ${w_{\textit{z}}}$ 分别为机械臂绕3个坐标轴方向的转动角速度; $ \varphi $ $ \theta $ $ \alpha $ 分别为3个坐标系轴的夹角。

2 船舶表面作业用六自由度机械臂设计与路径规划 2.1 六自由度机械臂路径规划方法中粒子群算法的应用

船体表面作业过程中的障碍物有船体表面棱角、表面附着的贝壳类海洋生物等,在使用六自由度机械臂进行空间作业时,需要避开这些障碍物,因此,机械臂的路径规划非常重要。本文采用的路径规划算法为粒子群优化算法。

首先在某空间中定义随机粒子,每个随机粒子的位置代表问题的可能解[3],通过不断的迭代逐步逼近最优位置,产生最优解。

粒子群优化算法的流程如图2所示。

图 2 粒子群优化算法的流程图 Fig. 2 Flow chart of particle swarm optimization algorithm

定义粒子群算法的目标函数为:

$ {v_{iD}}^{k + 1} = \omega {v_{iD}}^k + {c_1}\xi \left( {{p_{iD}}^k - {x_{iD}}^k} \right) + {c_2}\eta \left( {{p_{gD}}^k - {x_{iD}}^k} \right)。$

式中: $ \xi 和\eta $ 分别为粒子的速度更新系数和位置更新系数,k为迭代次数, $ {c}_{1}和{c}_{2} $ 均为学习因子, $ {v_{iD}}^k $ 为该规模种群下粒子的原始速度。

粒子群优化算法关键参数设置如下:

1)惯性权重

惯性权重表征当前粒子的重要程度,计算如下:

$ \omega = \frac{{\left( {\mu - 0.5} \right) \cdot \left( {{k_{\max }} - k} \right)}}{{{k_{\max }} + 0.5}} ,$

式中: $ {k_{\max }} $ 为最大迭代次数,k为当前迭代次数。

2)学习因子

学习因子 $ {c}_{1}、{c}_{2} $ 表征个体历史位置信息对整体寻优的影响。

${c_1} = 0$ 时,表示种群中的粒子不具备认知能力,对于复杂问题的寻优容易产生局域极值,造成寻优不准确。

${c_2} = 0$ 时,表示种群中的粒子不能进行信息共享,此时种群的寻优时间会非常长[4]

因此,理想的 $ {c}_{1}、{c}_{2} $ 值应该介于0~4,此时种群规模适中,粒子寻优的迭代速度快。

3)适应度值

粒子群中的粒子的位置和速度随着迭代次数的增加而不断变化,适应度值 $ \varepsilon $ 为判断粒子位置是否达到最优的判断依据,如下式:

$ \varepsilon = \left\{ {\begin{array}{*{20}{c}} {\dfrac{1}{{1 + {e^{ - 12(8{\delta _i} - 0.6)}}}},\;\;\;\;c \leqslant {c_{{\rm{BEST}}}}},\\ {\dfrac{1}{{1 + {e^{ - 12(8{\delta _i} - 0.6)}}}},\;\;\;c > {c_{{\rm{BEST}}}}}。\end{array}} \right. $

式中: $ {\delta _i} $ 取值为0~1。

粒子群寻优过程的位置迭代曲线如图3所示。

图 3 粒子群寻优过程的位置迭代曲线示意图 Fig. 3 Schematic diagram of position iteration curve of particle swarm optimization process
2.2 六自由度机械臂路径规划中的避障算法

船体表面作业的机械臂避障路径规划需要按照一定的标准,比如最短路径长度、最小能量消耗等,将避障过程进行数学建模可知,路径规划是求解某个目标函数的极值问题,其数学模型用下式表达:

$ \begin{gathered} \min f(x)x \in {R^n} \hfill \\ {g_i}(x) \leqslant {b_i}\quad i = 1,2, \cdots ,n 。\hfill \\ \end{gathered}$

式中: $ f(x) $ 为目标函数, $ {g_i}(x) $ 为约束条件, $ i = 1,2, \cdots ,n $ 为约束的个数。

建立机械臂避障过程的数学模型如图4所示。

图 4 机械臂避障过程的数学模型 Fig. 4 Mathematical model of obstacle avoidance process of manipulator

障碍物以圆形包络[5]表示, $\left( {x,y,\textit{z}} \right)$ 为障碍物的坐标,r为障碍物的作用半径,船体表面障碍物在空间中形成的区域为:

$ \left( {{\omega _i},{\omega _i} + {\gamma _i}} \right),\left( {{\omega _{i + 1}},{\omega _{i + 1}} + {\gamma _{i + 1}}} \right),\left( {{\omega _{i + 2}},{\omega _{i + 2}} + {\gamma _{i + 2}}} \right) 。$

船体表面作业六自由度机械臂的路径规划特点为:

1)复杂性

机械臂作业过程中船体可能处在动态时变环境中,对机械臂的路径规划问题来讲需要很大的计算量。

2)多约束

机械臂的作业过程需要几何约束和物理约束等多种约束条件。

3)多目标寻优

机械臂寻优过程的目标函数不仅包括路径最短,还需要综合考虑时间成本、能量消耗等。

基于粒子群算法的机械臂路径规划流程如图5所示。

图 5 基于粒子群算法的机械臂路径规划流程 Fig. 5 Path planning process of manipulator based on particle swarm optimization
2.3 船体表面六自由度机械臂路径规划仿真

本文使用Matlab-simulink平台进行船体表面六自由度机械臂路径规划仿真,定义粒子种群规模为 $ m = 50 $ ,惯性权重值按照线性变化:

$ \omega = \frac{{0.5 \cdot \left( {{k_{\max }} - k} \right)}}{{{k_{\max }} + 0.5}} ,$

式中: $ {k_{\max }} $ 为最大迭代次数,k为当前迭代次数。

学习因子 ${c}_{1}=2.5,{c}_{2}=2$ ,最大迭代次数500次,得到船体表面机械臂路径规划仿真结果如图6所示。

图 6 船体表面机械臂路径规划仿真结果 Fig. 6 Simulation results of path planning of ship surface manipulator
3 结 语

船体表面六自由度机械臂的路径规划是一个多约束、多目标的寻优过程,本文建立六自由度机械臂的空间运动模型,在此基础上集合粒子群优化算法研究了机械臂的路径寻优和避障,取得了良好的效果。

参考文献
[1]
宗成星, 陆亮, 雷新宇, 等. 一种基于A*算法的空间多自由度机械臂路径规划方法[J]. 合肥工业大学学报(自然科学版), 2017, 40(2): 164-168.
[2]
汪首坤, 朱磊, 王军政. 基于导航势函数法的六自由度机械臂避障路径规划[J]. 北京理工大学学报, 2015, 35(2): 186-191.
[3]
尹斌, 卢文涛, 魏文卿. 基于RRT*算法的六自由度机械臂避障路径规划[J]. 电子测试, 2021(16): 46-48.
[4]
马腾宇, 胡孝楠, 郭新华. 多约束条件下六自由度机械臂最优时间轨迹规划[J]. 数字制造科学, 2020, 18(4): 236-241.
[5]
刘妍, 张聪, 王晨升. 基于6自由度机械臂系统的路径规划算法[J]. 建筑机械, 2013(13): 89-92.