«上一篇
 文章快速检索 高级检索

 智能系统学报  2019, Vol. 14 Issue (1): 165-170  DOI: 10.11992/tis.201805005 0

### 引用本文

ZHANG Yi, LIU Fangjun, HU Lei. A general robot inverse kinematics solution based on MPGA-RBFNN[J]. CAAI Transactions on Intelligent Systems, 2019, 14(1): 165-170. DOI: 10.11992/tis.201805005.

### 文章历史

A general robot inverse kinematics solution based on MPGA-RBFNN
ZHANG Yi , LIU Fangjun , HU Lei
Chongqing Information Accessibility and Service Robot Technology Research Center, Chongqing University of Posts and Telecommunications, Chongqing 400065, China
Abstract: In order to solve the problem of the inverse kinematics in a general robot, such as slow speed in problem-solving and lower solution accuracy, a high-precision algorithm is proposed for general robots, which introduces Multiple Population Genetic Algorithm into Radial Basis Functions neural network (MPGA-RBFNN). Combined with the positive kinematics model of general robots, a three-layer structure of RBFNN was used to solve the inverse kinematics, and the MPGA was adopted to optimize the network structure and connection weights of the RBFNN. By using hybrid coding and simultaneous evolutionary means, the non-linear mapping of the position of the robot in the working space to the joint angle was realized, avoiding complicated formula derivation and improving the speed of problem-solving. Finally, an experiment was conducted using the general 6R robot. The results showed that the speed of solving the problem of the inverse kinematics of a general robot was improved by the MPGA-RBFNN algorithm, and the training success rate of the MPGA-RBFNN algorithm and the calculation accuracy of the inverse kinematics were enhanced.
Key words: MPGA    RBFNN    general robot    inverse kinematics    hybrid coding    simultaneous evolutionary

RBFNN是一种高效的前馈式神经网络[9-10]，具有较好的非线性拟合能力，能够很好地逼近任意复杂的非线性系统，处理多输入多输出问题。故Zubizarreta等[11]提出了使用人工神经网络对3PRS机器人实时逆运动学问题进行计算，并实现其实时性能。Toshani等[12]采用RBFNN求解机器人逆运动学解，保证了网络权重和约束条件的收敛性，并获得了较小的误差值。Köker[13]通过结合遗传算法和神经网络的方法求解机器人运动学逆解，并成功地使用遗传算法将神经网络求解结果的浮点数部分提高了10位有效数字。尽管RBFNN在求解机器人逆运动学解上取得了一定的成果，但其仍然存在网络结构不完善、连接权值无法取得最优的缺陷，而且采用遗传算法优化RBFNN存在易陷入局部极值导致输出误差偏大的缺陷[14]

1 运动学分析

 Download: 图 1 Comau NJ-220型机器人及其D-H参数 Fig. 1 The Comau NJ-220 robot and the D-H parameters

 $\begin{gathered} _i^{i - 1}{{T}} = {\bf{Scre}}{{\bf{w}}_{{X}}}({a_{i - 1}}, {\alpha _{i - 1}}){\bf{Scre}}{{\bf{w}}_{{Z}}}({d_i}, {\theta _i}) = \\ \left[ {\begin{array}{*{20}{c}} \!\!\! {\cos {\theta _i}}&{ - \sin {\theta _i}}&0&{{{{a}}_{i - 1}}} \!\!\! \\ \!\!\! {\sin {\theta _i}\cos {\alpha _{i - 1}}}&{\cos {\theta _i}\cos {\alpha _{i - 1}}}&{ - \sin {\alpha _{i - 1}}}&{ - {{{d}}_i}\sin {\alpha _{i - 1}}} \!\!\! \\ \!\!\! {\sin {\theta _i}\sin {\alpha _{i - 1}}}&{\cos {\theta _i}\sin {\alpha _{i - 1}}}&{\cos {\alpha _{i - 1}}}&{{{{d}}_i}\cos {\alpha _{i - 1}}} \!\!\! \\ \!\!\! 0&0&0&1 \!\!\! \end{array}} \right] \\ \end{gathered}$ (1)

 $\begin{gathered} {}_6^0{{T}} = \prod\limits_{i = 1}^6 {{}_i^{i - 1}} {{T}} = \left( {\begin{array}{*{20}{c}} {{{{n}}_x}}&{{{{o}}_x}}&{{{{a}}_x}}&{{{{p}}_x}} \\ {{{{n}}_y}}&{{{{o}}_y}}&{{{{a}}_y}}&{{{{p}}_y}} \\ {{{{n}}_z}}&{{{{o}}_z}}&{{{{a}}_z}}&{{{{p}}_z}} \\ 0&0&0&1 \end{array}} \right) = \\ {{p}}({\theta _1}, {\theta _2}, {\theta _3}, {\theta _4}, {\theta _5}, {\theta _6}) \\ \end{gathered}$ (2)

 $\beta = \arctan 2( - {{{n}}_z}, \sqrt {{{n}}_x^2 + {{n}}_y^2} )$ (3)
 $\alpha = \arctan 2({{{n}}_y}, {{{n}}_x})$ (4)
 $\gamma = \arctan 2({{{o}}_z}, {{{a}}_z})$ (5)

2 MPGA-RBFNN算法

2.1 RBFNN结构

RBFNN具有较好的非线性拟合能力，能够很好地逼近任意复杂的非线性系统，处理多输入多输出问题[17]。在本文的网络结构中，将末端执行器的空间位姿 ${{P}} = \{ {{{p}}_x}, {{{p}}_y}, {{{p}}_z}, \beta , \alpha , \gamma \}$ 作为RBFNN的6个输入；输出量为各个关节角度 $({\theta _1}, {\theta _2}, {\theta _3}, {\theta _4}, {\theta _5}, {\theta _6})$ ，即所求的逆解。故RBFNN求逆解网络结构如图3所示。

 Download: 图 3 RBFNN求逆解网络结构 Fig. 3 RBFNN structure in solving inverse kinematics

 $\phi ({{x}}, {{{x}}_i}) = {{G}}({{x}}, {{{x}}_i}) = {{G}}(\left\| {{{x}} - {{{x}}_i}} \right\|) = \exp ( - \frac{1}{{2{{{b}}_i}^2}}\left\| {{{x}} - {{{x}}_i}} \right\|)$ (6)

 ${{{y}}_{{n}}}({{k}}) = \sum\limits_{i = 1}^n {{\omega _i} \times \phi ({{x}}, {{{x}}_i}} ) = \sum\limits_{i = 1}^n {{\omega _i} \times \exp ( - \frac{1}{{2{{b}}_{{i}}^2}}} \left\| {{{x}} - {{{x}}_i}} \right\|)$ (7)

 ${{e}}({{k}}) = \sum\limits_{k = 1}^n {\left[ {{{t}}({{k}}) - {{{y}}_{{n}}}({{k}})} \right]}$ (8)

2.2 设计编码方案

 ${{{c}}_1}{{{c}}_2} \cdots {{{c}}_{{l}}}{\omega _{11}}{\omega _{21}} \cdots {\omega _{l1}}{\omega _{12}}{\omega _{22}} \cdots {\omega _{{{l}}2}}{\omega _{1{{m}}}}{\omega _{2{{m}}}} \cdots {\omega _{lm}}{{{b}}_1}{{{b}}_2} \cdots {{{b}}_{{m}}}$ (9)

2.3 适应度函数

 ${{F}} = \frac{1}{{{{e}}({{k}})}} = \frac{1}{{\sum\limits_{k = 1}^n {\left[ {{{t}}({{k}}) - {{{y}}_{{n}}}({{k}})} \right]} }}$ (10)

2.4 构建遗传算子

 ${{{P}}_c}({{i}}) = {{{P}}_{c\min }}({{i}}) \times (1 - {\rm{rand}}({{N}}, 1)) + {{{P}}_{c\max }}({{i}}) \times {\rm{rand}}({{N}}, 1)$ (11)

 ${{{P}}_b}({{i}}) = {{{P}}_{b\min }}({{i}}) \times (1 - {\rm{rand}}({{N}}, 1)) + {{{P}}_{b\max }}({{i}}) \times {\rm{rand}}({{N}}, 1)$ (12)

 ${{{P}}_b}({{i}} + 1) = \frac{{{{{P}}_c}({{i}})}}{3} - \left( {\frac{{{\rm{GEN - gen}}}}{{{\rm{GEN}}}}} \right) \times (\frac{{{{{P}}_c}({{i}})}}{3} - {{{P}}_b}({{i}}))$ (13)

3 实验论证

3.1 算法的求解精度分析

 Download: 图 4 3种算法输出误差图 Fig. 4 The output error of three kinds of algorithm

3.2 算法的求解速度分析