多自由度机械臂是一种目前在人类生产领域广泛使用的机器人,根据机械臂的使用场景可将机械臂划分为操作机械臂、运输机械臂、维修机械臂等,近年来,机械臂在医疗、航空、船舶领域的应用也逐渐增加。多自由度机械臂具有很多优点:
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]。$ |
式中:
$ 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中,机械臂的位置坐标设为
机械臂位置的齐次变换矩阵由姿态矩阵和位置矩阵合成,表示如下:
$ 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] 。$ |
分别对坐标轴进行转角为
$ {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)运动建模
定义六自由度机械臂坐标轴的角位移分别为
$ \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. $ |
式中:
船体表面作业过程中的障碍物有船体表面棱角、表面附着的贝壳类海洋生物等,在使用六自由度机械臂进行空间作业时,需要避开这些障碍物,因此,机械臂的路径规划非常重要。本文采用的路径规划算法为粒子群优化算法。
首先在某空间中定义随机粒子,每个随机粒子的位置代表问题的可能解[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)。$ |
式中:
粒子群优化算法关键参数设置如下:
1)惯性权重
惯性权重表征当前粒子的重要程度,计算如下:
$ \omega = \frac{{\left( {\mu - 0.5} \right) \cdot \left( {{k_{\max }} - k} \right)}}{{{k_{\max }} + 0.5}} ,$ |
式中:
2)学习因子
学习因子
当
当
因此,理想的
3)适应度值
粒子群中的粒子的位置和速度随着迭代次数的增加而不断变化,适应度值
$ \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. $ |
式中:
粒子群寻优过程的位置迭代曲线如图3所示。
![]() |
图 3 粒子群寻优过程的位置迭代曲线示意图 Fig. 3 Schematic diagram of position iteration curve of particle swarm optimization process |
船体表面作业的机械臂避障路径规划需要按照一定的标准,比如最短路径长度、最小能量消耗等,将避障过程进行数学建模可知,路径规划是求解某个目标函数的极值问题,其数学模型用下式表达:
$ \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}$ |
式中:
建立机械臂避障过程的数学模型如图4所示。
![]() |
图 4 机械臂避障过程的数学模型 Fig. 4 Mathematical model of obstacle avoidance process of manipulator |
障碍物以圆形包络[5]表示,
$ \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 |
本文使用Matlab-simulink平台进行船体表面六自由度机械臂路径规划仿真,定义粒子种群规模为
$ \omega = \frac{{0.5 \cdot \left( {{k_{\max }} - k} \right)}}{{{k_{\max }} + 0.5}} ,$ |
式中:
学习因子
![]() |
图 6 船体表面机械臂路径规划仿真结果 Fig. 6 Simulation results of path planning of ship surface manipulator |
船体表面六自由度机械臂的路径规划是一个多约束、多目标的寻优过程,本文建立六自由度机械臂的空间运动模型,在此基础上集合粒子群优化算法研究了机械臂的路径寻优和避障,取得了良好的效果。
[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. |