【路径规划】基于六次多项式的多关节机器人避障路径规划

  最近迷上了机械臂避障轨迹规划,因为之前一直做的都是无障碍物轨迹规划,所以这次想试一下有障碍物的,把避障算法用在我的SimMechanics机械臂上,看看效果咋样。以下定义不区分路径规划和轨迹规划。
  by the way,本文实现的是全局静态避障,而非局部动态避障 : )

0. 任务目标

  实现六关节机器人任务空间避障轨迹规划。

1. 思路分析

  本人之前尝试过使用采样算法RRT来进行三维路径的避障和寻优,不过感觉步骤比较繁琐,而且很多文章都是到三次B样条曲线拟合完路径就结束了,最后也没说怎么保证末端执行器的速度、加速度平滑和各个关节运动的运动平滑。
  鉴于此,本人放弃基于笛卡尔空间的避障轨迹规划,改做基于关节空间的避障轨迹规划。此方法相比于前个方法来说更加简便且不存在上述问题。

  基于关节空间轨迹规划需要考虑的有:

  • 碰撞检测
  • 轨迹规划
  • 遗传优化

2. 碰撞检测

  多关节机器人碰撞检测和移动机器人不一样,其不仅需要考虑末端执行器的避障而且还需要考虑中间连杆的避障,这里采用包围盒的思想,将连杆视为圆柱体,将障碍物视为球体。

  进一步地,根据多关节机器人的运动特性,其碰撞检测可以转化为由障碍物圆心到三个部分连杆中心线的距离d1、d2、d3。当d小于安全距离时即认为发生碰撞。

3. 轨迹规划

  当确定关节始末角度、速度、加速度边界条件时,五次多项式关节空间轨迹规划只能确定出一条唯一的运动曲线,所以这里采用六次多项式来进行关节轨迹规划

θ t = c 0 + c 1 t + c 2 t 2 + c 3 t 3 + c 4 t 4 + c 5 t 5 + K t 6 \boldsymbol{\theta }_t=\boldsymbol{c}_0+\boldsymbol{c}_1t+\boldsymbol{c}_2t^2+\boldsymbol{c}_3t^3+\boldsymbol{c}_4t^4+\boldsymbol{c}_5t^5+\boldsymbol{K}t^6 θt=c0+c1t+c2t2+c3t3+c4t4+c5t5+Kt6其中, θ = [ θ 1 , θ 2 , θ 3 , θ 4 , θ 5 , θ 6 ] \boldsymbol{\theta }=\left[ \theta _1, \theta _2, \theta _3, \theta _4, \theta _5, \theta _6 \right] θ=[θ1,θ2,θ3,θ4,θ5,θ6],代表机械臂的六个关节角, K \boldsymbol{K} K 为可调参数, K = [ K 1 , K 2 , K 3 , K 4 , K 5 , K 6 ] \boldsymbol{K}=\left[ K_1, K_2, K_3, K_4, K_5, K_6 \right] K=[K1,K2,K3,K4,K5,K6],通过改变系数K即可改变关节运动轨迹。六次多项式依然能保证各关节角度、角速度、角加速度的连续平稳运动。

4. 遗传优化

  现在的问题在于,如何能找到比较合适的K值,使得正运动学后的机器人末端执行器和连杆运动能够绕过障碍物,比较不错的方法是采用遗传算法,通过迭代找到最优值。为了方便,这里就采用我之前用过的JADE差分算法来进行寻优。
  适应度函数的确定:遗传优化的目的是在机械臂全局避障的同时,减少不必要的运动,所以适应度函数分为三部分:碰撞检测结果 f c o f_{co} fco、六个关节的角度变化总和 f θ f_{\theta} fθ、末端执行器的运动轨迹长度 f L f_L fL。进而则有 f K = − f c o η 1 f θ + η 2 f L f_K=-\frac{f_{co}}{\eta _1f_{\theta}+\eta _2f_L} fK=η1fθ+η2fLfco  基于此,可在关节空间中规划出一条无碰撞,同时运动学、轨迹长度、关节转动角度一起协同优化的理想运动轨迹。

5. 仿真验证

  将多关节机器人初始位置设在零位q=[0,0,0,0,0,0]rad,此时末端执行器初始位置为T=[0.8201, 0.0391, 0.9483]m,将末端执行器终点位置设为X移动-0.1m,Y移动+0.4m,Z移动-0.4m,即[0.7201, 0.4391, 0.5483]m,通过逆解即可求得末端终点位置对应的各关节角度。
  在机械臂的路径中设置球体障碍物,球体中心坐标设为[0.8, 0.2, 0.8]m,半径设为0.1m,六个关节的角速度、角加速度边界均设置为0。此外,设机械臂运行时间为5s,插值点个数为50,即每段插值点间的运行时间为0.1s。

仿真结果

  可以看出,机械臂在运动过程中发生了很明显的避让现象,为了更明显的观察,绘制出末端执行器的三维运动轨迹,红色为实际运动轨迹,虚线为无障碍物时的理想运动轨迹。

  由于各个关节的运动曲线为六次多项式,所以关节角速度、角加速度满足平滑条件,进一步的,绘制出末端执行器在XYZ方向分量上的速度、加速度曲线,可以看出,机械臂末端执行器的速度、加速度曲线均为连续平滑曲线,满足平稳运动的条件。

JADE寻优迭代图,在经过12次迭代后,迭代出了K的较优值和较小的适应度值。

6. 总结

  基于以上结论,成功的实现了多关节机器人避障路径规划,虽然没有找到一条最优路径,但已经找到了一条较优路径,且同时具备安全、稳定、高效的作用,有了以上的各个关节角度曲线,后续设计轨迹跟踪控制器即可完成机械臂高精度的轨迹跟踪。
  本次实验圆满完成 : )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树的定义和基本术语及性质

二叉树是一种特殊的树形数据结构,它对每个节点的子节点数进行了限制,即每个节点最多有两个子节点。这种结构使得二叉树成为了许多算法和数据结构的基础,如二叉搜索树、堆、哈夫曼编码等。本文将详细探讨二叉树的定义、基本术语和性质&#xf…

BGP扩展知识总结

一、BGP的宣告问题 在BGP协议中每台运行BGP的设备上,宣告本地直连路由在BGP协议中运行BGP协议的设备,来宣告通过IGP学习到的未运行BGP协议设备产生的路由;(常见) 在BGP协议中宣告本地路由表中路由条目时,将…

DNF手游攻略:2024新手攻略大全

在《DNF手游》的世界中,前期阶段对于新手玩家来说至关重要。以下是一份综合整理的新手攻略,帮助玩家快速适应游戏并取得进展。 1. 角色建立策略: 在前期,建议玩家建立3个角色,包括1个大号和2个小号。大号可以根据个人喜…

谷歌google浏览器无法更新Chrome至最新版本怎么办?浏览器Chrome无法更新至最新版本

打开谷歌google浏览器提示:无法更新Chrome,Chrome无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。点击「重新安装Chrome」后无法访问此网站,造成谷歌浏览器每天提示却无法更新Chrome至最新版本。 谷歌google浏览器无…

SaaS知识库哪些比较好用?中小企业也能适用

在快节奏的商业世界中,拥有一个高效、易于使用的知识管理工具是提升工作效率的关键。对于中小企业来说,选择合适的SaaS(软件即服务)知识库平台尤为重要,因为它不仅能帮助员工快速找到信息,而且还能优化客户…

数据结构进阶之堆

今天我们学习的是数据结构里面的堆,大家先看看我们今天要学习的内容 一、堆概念及认识 在学习堆之前我们得先明白完全二叉树是什么样子,因为堆是依据完全二叉树的结构来实现的,所以在这里我先告诉大家完全二叉树的是什么,如下图…

Excel中输入数字会改变怎么办?

一、数字显示不全,以“#”号代替 随着列宽的缩小,数字逐渐被“#”号代替(首先数字的格式是“数值型,且只有整数”) 原因分析:单元格中的数字无法完全显示,Excel会自动用“#”号填充剩余的空间 解…

00_如何使用国内镜像源下载QT

如何使用国内镜像源下载QT 如何使用国内镜像源下载QT 如何使用国内镜像源下载QT 第一步:下载下载qt online installer 网站:https://download.qt.io/official_releases/online_installers/ 添加链接描述 下载windows版本 第二步: 剪切放…

搭建个人智能家居 4 -WS2812B-RGB灯

搭建个人智能家居 4 - WS2812B-RGB灯 前言说明ESPHomeHomeAssistant 前言 上一篇文章我们已经完成了第一个外设的添加(一个LED灯),今天接着来“壮大”这个系统,添加第二个外设“RGB灯”。 环境搭建可以回顾前面的文章。前文回顾&…

AutoCAD 2024 安装注册教程

前言 大家好,我是梁国庆。 本篇分享的安装包是 AutoCAD 的全新版本——AutoCAD 2024,下文安装教程中简称 AutoCAD。 时间:2024年4月8日。 获取 AutoCAD 安装包 我已将本篇所使用的安装包打包上传至百度云,扫描下方二维码关注…

Linux 内核学习(1) --- 时钟子系统

标题 时钟系统说明时钟树Clock Provider时钟通用数据结构clock_device 的注册clock_provider DTS配置和注册clock consumer时钟系统总结 时钟系统说明 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波…

windows本地运行dreamtalk踩坑总结

dreamtalk是一个语音图片转视频的一个工具,就是给一段语音加一个头像图片,然后生成一段头像跟语音对口型的视频,其实还是很有意思的,最近阿里发布了一个类似的模型,但是还没开源,从展示视频看,阿…

itext7 pdf转图片

https://github.com/thombrink/itext7.pdfimage 新建asp.net core8项目&#xff0c;安装itext7和system.drawing.common 引入itext.pdfimage核心代码 imageListener下有一段不安全的代码 unsafe{for (int y 0; y < image.Height; y){byte* ptrMask (byte*)bitsMask.Scan…

Centos 7.9.2009 下 Gitlab 完全卸载

一、linux版本&#xff1a;lsb_release -a 二、GtiLab 版本 # 查看gitlab的版本号 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 三、开始卸载 3.1&#xff0c;停止Gitlab 相关服务 # 停止所有GitLab相关服务&#xff1a; sudo gitlab-ctl stop# 移除GitLab包…

【2024年MathorCup数模竞赛】C题完整解析(代码与技术文档)

C题第一问 1 数据预处理2 问题一2.1基于混合ARIMA-LSTM预测模型的未来30天货量预测2.1.1 自适应混合ARIMA-LSTM混合预测模型的建立2.1.2 自适应混合ARIMA-LSTM混合预测模型的求解 2.2 基于混合ARIMA-LSTM预测模型与模糊修正的未来30天每小时货量预测 代码分享 目前已经完成C题数…

如何利用python机器学习解决空间模拟与时间预测问题

徐老师&#xff1a;副教授&#xff1a;长期从事定量遥感、遥感数据同化、地表水热通量转化等相关领域的研究&#xff0c;发表多篇相关领域核心期刊论文&#xff0c;具有丰富的实践技术经验。 专题一、机器学习原理与概述 了解机器学习的发展历史、计算原理、基本定义&#xf…

vue快速入门(二十一)计算属性

注释很详细&#xff0c;直接上代码 上一篇 新增内容 计算属性的基本应用 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.…

Springboot+Vue项目-基于Java+MySQL的社区团购系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

酷得智能 无人机方案开发

东莞市酷得智能科技有限公司&#xff0c;是一家专业的技术服务公司&#xff0c;致力于为各类智能硬件提供高效、稳定、安全的底层驱动解决方案。拥有一支经验丰富、技术精湛的团队&#xff0c;能够为客户提供全方位的底层驱动开发服务。 无人机功能介绍&#xff1a; 1、自动跟…

【前缀合】Leetcode 连续数组

题目解析 525. 连续数组 寻找一个子数组&#xff0c;这个子数组中包含相同数目的0和1&#xff0c;但是这个子数组需要最长的 算法讲解 只需在[0,i]寻找一段区间使得这一段区间的和也等于sum即可 细节问题&#xff1a;1. 这里的哈希表的value存的是下标&#xff0c;因为需要找…