基于改进 PSO 算法的时间最优机械臂轨迹规划

这篇具有很好参考价值的文章主要介绍了基于改进 PSO 算法的时间最优机械臂轨迹规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        以时间最优为目标,采用改进粒子群算法(PSO)对6自由度机械臂轨迹进行优化的方法。首先,在关节空间下利用机械臂正逆运动学原理获取其轨迹插值点;其次,为了使机械臂能够快速平稳地到达目标位置,采用3-5-3多项式对其轨迹进行插值;最后,使用改进PSO算法对分段多项式插值构造的轨迹进行优化,实现6自由度机械臂时间最优的轨迹规划。通过MATLAB仿真实验可以得到机械臂各个关节的加速度、速度和位置的轨迹信息。

1、机械臂的正运动学分析

puma560机器人DH参数表如下:

pso改进,算法

matlab建模如下:

% 轨迹规划中,首先建立机器人模型,6R机器人模型,名称modified puma560。
% 定义机器人 a--连杆长度,d--连杆偏移量
	a2=0.4318;a3=0.02032;d2=0.14909;d4=0.43307;
%			 thetai    di      ai-1        alphai-1
    L1 = Link([pi/2    0       0               0], 'modified');
    L2 = Link([0       d2      0           -pi/2], 'modified');
    L3 = Link([-pi/2   0       a2              0], 'modified');
    L4 = Link([0       d4      a3          -pi/2], 'modified');
    L5 = Link([0       0  	   0            pi/2], 'modified');
    L6 = Link([0       0       0           -pi/2], 'modified');
    robot = SerialLink([L1,L2,L3,L4,L5,L6]);
    robot.name = 'modified puma560';
%   robot.display();
%	robot.teach();

2、机械臂的轨迹规划方法

        采用3-5-3分段多项式对机械臂的运行轨迹进行插值,在一定的约束条件下,该多项式既可以保证各关节位置、速度和加速度的连续,也可以减小计算量和避免凸包性过差等问题。3-5-3分段多项式函数的表达式为:

pso改进,算法

各段分别进行一阶求导和二阶求导之后,从而可获得三段运动轨迹曲线的速度与加速度函数为:

pso改进,算法

        机械臂各个关节通过起始点β1,路径点β2、β3和终止点β4时,β1和β4处的速度和加速度均为0,其他插值点重合处的速度和加速度应相等。

pso改进,算法

        因此利用上述的约束条件可以获取到一个非齐次线性方程组为:

pso改进,算法

        各个矩阵的表达式为:

pso改进,算法

pso改进,算法

        由于已知各个路径点的位置和各段轨迹所需要的时间h,可以得到的系数矩阵为:

pso改进,算法

3、改进粒子群算法的轨迹优化

        以时间最少为目标,利用改进PSO算法对6自由度机械臂的运动轨迹进行规划,选取每个关节完成每段轨迹所用的时间t1,t2,t3构成一个三维的粒子群,其适应度函数表达式为:

F = t1 + t2 + t3

        PSO算法是一种模拟鸟群捕食活动的智能算法,它凭借着参数少、收敛迅速、结构简单和易控制等特点,在处理优化问题中更加快速便捷,但是传统的PSO算法容易受到待优化函数的影响提前收敛到局部最优。在每次迭代过程中,粒子群中的所有粒子都必须从当前的位置根据其更新的速度向新的位置移动。其粒子的速度和位置更新公式为:

pso改进,算法

        标准粒子群算法中的参数是固定不变的。ω描述的是粒子的惯性,在进化前期ω应该更大一些,保证每个粒子能够独立飞行充分搜索空间,后期应该小一点,多向其他粒子学习。c1和c2分别描述的是个体和全局的最大飞行步长,前期c1尽可能的大一些,后期c2应尽可能的大一些,这样就可以平衡粒子的全局搜索能力和局部搜索能力。3个参数共同影响了粒子的飞行方向,假设其他粒子找到了更好的位置,但是当前粒子的惯性太大不能很快地飞向更优的位置,这就有可能导致算法易早熟或者是算法后期收敛缓慢等问题。针对PSO易早熟且后期收敛速度慢等问题,对粒子群算法进行以下几点改进:

        1、采用混沌序列初始化代替PSO中的随机初始化粒子的种群。PSO中随机初始化易导致种群初始化分布不均从而影响算法的优化。混沌序列初始化种群时具有遍历性、随机性和均匀性的特点,是在规定的范围内根据本身规律不重叠地遍历整个搜索空间。因此,混沌序列初始化的种群可以有效地提高PSO算法。本文采用Logistic混沌映射,其表达形式:

x(i)=4.*x(i-1).*(1-x(i-1))

        2、自适应调整惯性权重的方法。常用的线性递减的惯性权重对POS跳出局部最优有一定作用,但是无论粒子的适应度是否变得更好,惯性权重都会根据迭代次数以线性速度递减。所以依靠线性递减惯性因子的粒子群算法有时也会陷入局部最优。自适应调整惯性权重综合考虑了粒子的迭代次数和粒子的目标值,初期使用较大的ω增强粒子的全局搜索能力,当有粒子飞行至最优点附近时,则减小ω增加粒子的局部搜索能力,这样对PSO优化的结果有较大提升。自适应调整惯性权重的表达式为:

pso改进,算法

        3、将局部和全局的学习因子c1和c2联合起来。当增大c1时,会增强粒子的个体认知能力,但是收敛速度缓慢;当增大c2时,会增强粒子的社会认知能力,收敛速度迅速,但是极易使算法早熟。为了保证PSO算法的搜索能力和协调粒子的个体认知和社会认知能力,采用动态调整学习因子的方法,将学习因子的取值与粒子当前的迭代次数联系起来。在搜索初期粒子个体的搜索意义大于全局的搜索意义,所以c1>c2;在搜索后期为了更加快速地获得全局最优解,应增加粒子与种群之间的交流,所以c1<c2。其函数表达式为:

pso改进,算法

        改进 PSO 算法对 6 自由度机械臂轨迹优化的具 体步骤如下:

        步骤1:机械臂每个关节3段轨迹的运动时间(t1、t2、t3)构成一个三维的搜索空间,采用混沌初始化产生N个粒子(共有3N个粒子)构成种群,并初始化种群中各粒子的位置和速度。
        步骤2:将初始化产生的N个三维时间组合带入式,求得各分段函数的系数。
        步骤3:判断机械臂各关节3段运动轨迹的速度和加速度是否满足最大约束条件,若3段都满足约束条件,则将3段轨迹的运行时间带入计算其适应度值,若3段中任意1段的速度或加速度不满足约束,则赋予一个很大的值作为该粒子的适应度值,以便在下一次迭代中淘汰该粒子。
        步骤4:经过k次迭代后,通过比较个体极值和全局极值的适应度值,选出适应度最佳的粒子,即为最优极值。
        步骤5:当机械臂所有关节的轨迹都完成优化时,每段时间取各关节完成该段轨迹所需要的最长时间,进而确保机械臂的所有关节都能完成轨迹的运行。

        根据各个点的位置信息和约束条件可以得到相应的时间

pso改进,算法

        由于各个关键点是在笛卡尔空间指定,需要使各关节的角度最终到达终止点。当某个关节提前到达关键点位置时,其他关节之后到达,为了使机械臂到达终止点,先到达关键点位置的关节会停止运动,待其他的关节到达之后再一起运动,这样会造成额外能量的损耗。因此使各个关节同步运动,即取各关节完成每段轨迹时间的最大值,既可以实现优化目的,也可以减少能量的消耗。

        取得最大时间后可以带入得到:

pso改进,算法

将各个关节的位置信息带入可以得到:

4.Matlab代码

🍞正在为您运送作品详情https://mbd.pub/o/bread/ZJ6Vm5Zq文章来源地址https://www.toymoban.com/news/detail-755293.html

到了这里,关于基于改进 PSO 算法的时间最优机械臂轨迹规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB - 选择机械臂路径规划、轨迹规划方式

      本示例概述了机器人系统工具箱™中可用的轨迹类型。在机械手运动、规划和控制应用中,必须为机器人选择轨迹。本示例有三个主要部分。第一部分展示了机械手使用的轨迹类型,第二部分演示了生成轨迹的功能,最后一部分则展示了更多轨迹规划工具。   在机械手中使

    2024年04月22日
    浏览(27)
  • 3-5-3机械臂轨迹规划matlab仿真

            查看很多文章有三次多项式插值,五次多项式插值,找了很久没有发现有3-5-3混合多项式插值的代码,想想估计是太简单了, 没有人写这个东西。我当机立断,想把这个代码写出来。虽然简单,但是对于我这种matlab小白来说还是有些吃力。         本文代码借鉴

    2024年02月13日
    浏览(32)
  • matlab机械臂建模运动学仿真+轨迹规划

    1.内容参考B站视频:https://www.bilibili.com/video/BV1q44y1x7WC?spm_id_from=333.337.search-card.all.click 2.工具箱10.4版下载 https://download.csdn.net/download/yohnyang/86099523 3.关于机器人控制相关算法的C++实现可以详见我的专栏 :https://blog.csdn.net/yohnyang/category_12119720.html Link类使用介绍:https://blog.csdn.

    2024年02月01日
    浏览(40)
  • 机械臂速成小指南(十四):多项式插值轨迹规划

    👨‍🏫🥰🥳需要机械臂相关资源的同学可以在评论区中留言哦🤖😽🦄   指南目录📖: 🎉🎉机械臂速成小指南(零点五):机械臂相关资源🎉🎉 机械臂速成小指南(零):指南主要内容及分析方法 机械臂速成小指南(一):机械臂发展概况 机械臂速成小指南(二)

    2024年01月25日
    浏览(33)
  • 基于人工蜂群算法多无人机轨迹规划

    # 生物背景 蜜蜂是一种群居生物,生物学家研究发现蜜蜂以跳舞的方式来交换蜜源信息。根据分工的不同,蜜蜂被分为三个工种: 引领峰、跟随蜂、侦察蜂 。 侦察蜂 的职责是侦察蜜源(即蜜蜂的食物),一旦某一个侦察蜂找到蜜源后,实际上它的角色就切换为 引领蜂 了。

    2024年01月19日
    浏览(39)
  • article-六轴机械臂(带抓手)运动学分析+轨迹规划

    1正运动学分析 采用标准的D-h法进行机械腿模型分析: D-h表如下 (2)通过(1)求解出机器人各位姿变换矩阵后,求解机器人手臂变换矩阵 ** ** 。通过matlab 计算,写出机器人末端位置。 正运动学分析 根据D-H表规定得到如下变换矩阵为: 根据DH参数求解变换矩阵的函数trans

    2024年02月11日
    浏览(42)
  • 时间序列预测 | Matlab基于粒子群算法优化门控循环单元(PSO-GRU)的时间序列预测,PSO-GRU时间序列预测,单列数据集

    效果一览 文章概述 时间序列预测 | Matlab基于粒子群算法优化门控循环单元(PSO-GRU)的时间序列预测,PSO-GRU时间序列预测,单列数据集。

    2024年02月12日
    浏览(47)
  • 【深蓝学院】移动机器人运动规划--第5章 最优轨迹生成--笔记

    Ch2讲了基于搜索的路径规划方法,Ch3讲了基于采样的路径规划方法,这些都是global methods,框架都是Exploration and Exploitation,且在算力足够大的情况下,一定能够找到全局最优解。 除了global methods,还有local methods,主要是Deterministic Optimization确定性优化。基于优化的方法,主要

    2024年02月19日
    浏览(43)
  • 六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划

    对机器人进行轨迹规划的主要任务是,根据机器人的工作环境和工作任务要求,求得一系列机器人末端位姿变换的时间序列,使得机器人末端可以正确地从初始姿态沿着期望的轨迹运动到终止位姿,完成工作任务,。对于六自由度的机器人来说,轨迹规划要解决的关键问题是

    2024年02月03日
    浏览(67)
  • 基于RRT算法的旋翼无人机安全和最小能量轨迹规划

    基于RRT算法的旋翼无人机安全和最小能量轨迹规划 概述: 无人机的轨迹规划是无人机自主飞行的关键问题之一。在飞行过程中,无人机需要在保证安全的前提下,以最小的能量消耗完成任务。本文将介绍如何使用RRT(Rapidly-exploring Random Tree)算法来实现旋翼无人机的安全轨迹

    2024年02月05日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包