多项式轨迹规划

news2024/9/28 7:25:11

公众号“轻松玩转机器人”,欢迎关注。

1、简介

常用的多项式规划一般泛指3次、5次和7次等多项式规划,4次多项式规划用到的比较少,暂不介绍。

为什么奇数次多项式比较常用呢?因为其有偶数个系数!

偶数个系数有什么用呢?能列偶数个方程来求解,偶数个方程可能包括始末位移、速度和加速度,甚至包括跃度。

一般机器人规划都是点到点的规划,从零速到零速。在某些场景下机器人需要柔顺启停,此时要求启动和停止时的加速度是零,甚至要求始末跃度为零。

下面以5次多项式规划为例进行介绍,其余类型多项式规划类似。

2、原理

5次多项式规划的位移方程:

s = c0 + c1 * t + c2 * t^2 + c3 * t^3 + c4 * t^4 + c5 * t^5

由上式,可以看到5次多项式有6个系数,需要6个方程联立求解,该方程组可以通过以下6个条件得到:

s(0) = 0 %起始位移为零
s(T) = s %终点位移为s
v(0) = 0 %起始速度为零(零速启动)
v(T) = 0 %终点速度为零(零速停止)
a(0) = 0 %起始加速度为零(零加速度启动,柔顺、冲击小)
a(T) = 0 %终点加速度为零(零加速度停止,柔顺、冲击小)

列出上述6个方程就可以解了嘛,答案是不行滴,方程组里还有个未知数T,也就是该运动的时间,一般可以通过如下思路计算:

(1)计算速度最大值(始末时刻及速度导数等于零的时刻),得到位移、运动时间T_v和速度最大值的关系;

(2)计算加速度最大值(始末时刻及加速度导数等于零的时刻),得到位移、运动时间T_a和加速度最大值的关系;

(3)计算跃度最大值(始末时刻及跃度导数等于零的时刻),得到位移、运动时间T_j和跃度最大值的关系。

对于某一款机器人,都有其运动性能参数,如最大速度v_max、最大加速度a_max和最大跃度j_max。分别假设运动过程中达到了最大速度、最大加速度和最大跃度,可以得到三种时间,公式如下:

T_v = 15 * s / (8 * v_max);
T_a = sqrt(10 * s / (sqrt(3) * a_max));
T_j = (60 * s / j_max) ^ (1/3);

运动时间要取三种时间的最大值,否则会存在速度、加速度或跃度超限的问题:

T = max([T_v, T_a, T_j]);

此时再去解方程组,即可得到多项式系数,完成5次多项式规划的创建,更新时只需将时间t代入位移方程即可得到每个时刻的位移。

3、实验

设机器人运动性能:

v_max = 2000;
a_max = 40000;
j_max = 1.8e7;

设运动参数:

s = 25;

位移曲线:

速度曲线:

加速度曲线:

跃度曲线:

由上述速度、加速度和跃度曲线可以看到:

(1)加速度达到最大值,速度和跃度均没达到最大值,满足计算运动时间的方程和条件;

(2)速度和加速度都是从零开始、以零结束,而跃度则不是,这符合我们求解多项式系数所列的条件。

(3)若要求跃度在运动启动和结束时为零,则要用7次多项式规划,若不要求加速度在启动和结束时为零,则可以降低计算量,用3次多项式规划,原理类似,可以自行求解、测试。

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

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

相关文章

泛型的初步认识(1)

前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&#x…

Unity中的UI系统之UGUI

目录 概述UGUI基础——六大基础组件六大基础组件概述Canvas画布组件CanvasScaler画布缩放控制器组件必备知识恒定像素模式缩放模式恒定物理模式3D模式 Graphic Raycaster图形射线投射器EventSystem和Standalone Input ModuleRectTransform UGUI基础——三大基础控件Image图像控…

【解决】Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed

问题原因: 在Java8及高版本以上的版本在源应用程序不信任目标应用程序的证书,因为在源应用程序的JVM信任库中找不到该证书或证书链。也就是目标站点启用了HTTPS 而缺少安全证书时出现的异常 解决方案: 我使用的是忽略证书验证 public clas…

vs code server for wsl closed unexpectedly

前言: 我的Windows 版本: 10.0.19045.4291 (如果你是Win11或者你要使用WSL2请谨慎) 之前是可以用的,但安装Vmware(并安装了Ubuntu进行了一番实验后,就出现如标题所述问题) 问题&a…

内存满了如何处理?

目录 虚拟内存 内存分配过程 直接内存回收和后台内存回收 回收内存的触发标准 那些内存被回收呢? 内存回收后,内存还是不够怎么办呢? 虚拟内存 介绍操作系统内存如何使用时,不可以避免的先认识到虚拟内存 首先我们通过虚拟内存的作用,来认识一下: 1.虚拟内存可以使得…

基础SQL DML-插入语句

插入语句前,我们先创建一个表。表的创建在DDL语句里面涉及,可以参考:小赖同学吖-CSDN博客 我们创建一个员工表进行数据的插入操作 插入(添加)语句的语法 给员工表添加一条记录 给员工表添加多条记录 也可以通过下面的方…

Python 面向对象——2.类与对象实例属性补充解释,self的作用等

本章学习链接如下: Python 面向对象——1.基本概念 实例的属性 1.创建对象 在上一小节的学习中我们提到了类中的变量与函数变量的区别,self.param1和param1,接下来我们继续详细解释这个知识点。 当我们创建一个学生的类,比如…

铜缆与网线:数字时代的信息高速公路

在现代社会,信息传输已成为日常生活的重要部分。从个人通信到全球数据中心,铜缆和网线扮演着至关重要的角色。本文将详细介绍铜缆和网线的类型、特点以及它们在数字时代的应用。 铜缆的种类与应用 铜缆的类型 UTP(无屏蔽双绞线)&…

登录的几种方式

一、session 1、客户端发送请求,服务器将登录信息存储在 Session 中,Session 依赖于 Cookie(cookie指的就是在浏览器里面存储的一种数据,仅仅是浏览器实现的一种数据存储功能。Cookie实际上是一小段的文本信息。)&…

Arthas介绍及使用技巧

文章目录 简介能做什么? 使用下载并启动arthas选择应用 java 进程退出 arthas 常用查看命令帮助查看 dashboard通过 thread 命令来获取到线程的栈通过 jad 来反编译 Classwatch 查看方法出入参、sc 搜索类: 查看已加载类所在的包monitor 方法执行监控trace 方法内调…

牛客NC238 加起来和为目标值的组合【中等 DFS C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/172e6420abf84c11840ed6b36a48f8cd 思路 本题是组合问题,相同元素不同排列仍然看作一个结果。 穷经所有的可能子集,若和等于target,加入最终结果集合。 给nums排序是为了方便…

day04 51单片机-矩阵按键

1 矩阵按键 1.1 需求描述 本案例实现以下功能:按下矩阵按键SW5到SW20,数码管会显示对应的按键编号。 1.2 硬件设计 1.2.1 硬件原理图 1.2.2 矩阵按键原理 1.3软件设计 1)Int_MatrixKeyboard.h 在项目的Int目录下创建Int_MatrixKeyboard.h,写入以下内容。 #ifndef __…

Pyhton Sqlite3手机数据库

代码结果 Code import sqlite3 connsqlite3.connect(test.db) csconn.cursor() create_tb_sqlcreate table if not exists info(id int primary key,name text,age int)cs.execute(create_tb_sql)# cs.execute(insert into info(id,name,age) values(3,"dog_Senior&quo…

Ubuntu Server 20.04 LTS 64bit安装ftp服务

1.安装vsftpd sudo apt install vsftpd2.配置vsftpd sudo vim /etc/vsftpd.conf write_enableYES # 启用任何形式的FTP写入命令,即可以修改文件local_umask022 # 本地用户创建文件的 umask 值,默认是被注释的connect_from_port_20YES # 针对 PORT 类型…

java 溯本求源之基础(十八)之Monitoring--jmc

1.JMC概述 JMC全称Java Mission Control,集成了多个功能强大的组件,其中最核心的两部分是管理控制台和Java Flight Recorder。管理控制台允许开发者实时监控应用的运行状态,捕捉各种性能指标;而Java Flight Recorder则提供了一种高…

深兰科技入选2024全国“人工智能+”行动创新案例TOP100

近日,中科院《互联网周刊》联合eNET研究院、德本咨询、中国社会科学院信息化研究中心共同发布了《2024全国“人工智能”行动创新案例TOP100》榜单。经评委会层层遴选,深兰科技专为洛阳市打造的“工业智能化洛阳中心”项目成功入围该榜单。一同入围的还包…

力扣(leetcode) 407. 接雨水 II 3D接雨水

力扣(leetcode) 407. 接雨水 II 3D接雨水 给你一个 m x n 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 示例 1: 输入: heightMap [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] 输…

IEC104协议

1. 简介 IEC104规约是一个广泛应用于电力、城市轨道交通等行业的国际标准。 2. 术语解释 遥脉 (电度量): 是指对现场某装置所发出的脉冲信号进行周期累计的一种远程计数操作。 其实,遥脉也可以看成是被具体规定了采用脉冲计数作为测量方法的一种遥测…

日本二次元团建国内院线:一周一部,占据36.2%票房

从《你想活出怎样的人生》开始,到《哈尔的移动城堡》结束,日本动画正在占据国内院线的整个4月份档期。 包括《数码宝贝02:最初的召唤》、《间谍过家家 代号:白》多部作品在内,整个国内四月份院线日本动画平均一周上映…

分布式锁(Redis)

一、序言 本文和大家聊聊分布式锁以及常见的解决方案。 二、什么是分布式锁 假设一个场景:一个库存服务部署在上面三台机器上,数据库里有 100 件库存,现有 300 个客户同时下单。并且这 300 个客户均摊到上面的三台机器上(即三台…