机器人轨迹优化
有多种函数插值可以应用到工业机器人的关节轨迹构造上,包括三次多项式,五次多项式,B样条甚至是NURBS等复杂函数。对于轨迹的优化,存在多种优化方法,智能算法的有遗传算法、粒子群算法、蚁群算法等,经典的算法有序列二次规划法(SQP),相平面法(position-velocity phase plane method),动态规划法(网格法)等。
多目标优化,也就是说,假如对轨迹的时间、能量、脉动等目标进行优化,可以采用两种方式,一种是将各个目标加权求和,作为一个总的目标进行优化,另一种是采用真正的多目标优化算法进行同时优化,譬如NSGA-II算法或者MOPSO多目标粒子群算法,两者各有优劣。
第一种方式可以得到一个优化解,需要人工调整参数,第二种方式有赖于几种多目标优化算法,可以获得一组解集,基本分布在Pareto前沿,可以采用不同的评估准则对解集进行性能评估。
NSGAI-II算法
NSGA-II即是一种经典的多目标优化算法,核心在于快速非支配排序算法,个体拥挤度距离计算,精英保存策略。理解它的重要途径是阅读作者Deb的原文《A Fast and Elitist Multiobjective Genetic Algorithm》。具体算法可以在matlab官网寻找,GitHub也可以。
NSGA-II算法的进化流程如下:
(1)采用合适的方式随机产生初始父代种群P
0
,种群规模为N,通过交叉变异产生种群大小也为N的子代种群Q
0
。
(2)父代种群和子代种群共同组成种群R
i
;采用快速非支配排序策略,将种群R
i
的全部个体进行分层,每一层为一个非支配集F
i
;计算每一非支配集的全体局部拥挤度并排序。
(3)按照排序顺序陆续将非支配集包含的个体填充进新的父代种群P
i+1
,当填充的某一级非支配集的全部个体将导致种群大小超过N时,按个体拥挤度大小将部分个体优先填充进种群P
i+1
,直至P
i+1
的规模大小为N为止。
(4)P
i+1
经过常规的遗传操作生成子代种群Q
i+1
。
(5)如果迭代次数未达到设定值,则再进行2、3、4步的操作。
Fig.1. NSGA-II的种群产生过程
轨迹优化重要参考文献
对于各种插值方式在工业机器人关节轨迹与空间轨迹构造上的应用,以及各种轨迹优化方法的应用介绍,可以参考意大利人Gasparetto的综述: Gasparetto, P. Boscariol, A. Lanzutti, R. Vidoni, Path planning and trajectory planning algorithms: A general overview, in: Mech. Mach. Sci., (2015) 3–27. doi:10.1007/978-3-319-14705-5_1.
对于多目标优化算法的Pareto解集的评估准则,可以参考Saravanan的好几篇相似的文献,譬如Saravanan R, Ramabalan S, Balamurugan C. Evolutionary optimal trajectory planning for industrial robot with payload constraints[J]. The International Journal of Advanced Manufacturing Technology, 2008, 38(11): 1213-1226.
应用五次NURBS在机器人关节轨迹构造上,并采用NSGA-II算法做优化,并采用简单的评估准则作解集的评估,可以参考Shi的论文,缺点是他的插值函数带有权重,评估准则也较简单。X. Shi, H. Fang, L. Guo, Multi-objective optimal trajectory planning of manipulators based on quintic NURBS, in: Mechatronics Autom. (ICMA), 2016 IEEE Int. Conf., IEEE, 2016: pp. 759–765. doi: 10.1109/ICMA.2016.7558658.