matlab 轨迹生成函数

news/2024/4/30 10:27:49/文章来源:https://blog.csdn.net/zjh2883/article/details/137291268

文章目录

  • jtraj
  • ctraj
  • mstraj
  • mtraj
  • tpoly
  • lspb
  • trinterp
  • 用例
  • 参考链接

jtraj

计算两个构型之间的关节空间轨迹

[q, qd, qdd] = jtraj(q0, qf, m)是关节空间轨迹q(MxN),其中关节坐标从q0(1xN)变化到qf(1xN)。使用五次(5阶)多项式,并默认速度和加速度为零边界条件。假设时间以m步从0到1变化。关节速度和加速度可以分别以qd(MxN)和qdd(MxN)的形式随机返回。轨迹q,qd和qdd是MxN矩阵,每个时间步有一行,每个关节有一列。

[ q, qd, qdd] = jtraj( q0, qf, m, qd0, qdf)如前所述,但也规定了轨迹的初始和最终关节速度。

[ q, qd, qdd] = jtraj( q0, qf, T)同上,但轨迹长度由时间向量T ( Mx1 )的长度定义。

[ q, qd, qdd] = jtraj( q0, qf, T, qd0, qdf)如上,但指定轨迹和时间向量的初始和最终关节速度。

ctraj

两个位姿之间的笛卡尔轨迹。

tc = ctraj(T0, T1, n)是一个从位姿T0到T1的笛卡尔轨迹(4x4xN),其中n个点沿路径遵循梯形速度曲线。笛卡尔轨迹是一个齐次变换序列,最后一个下标是点索引,即T( :, :, i)是沿路径的第i个点。

tc = ctraj( T0, T1, s)如上,但s(Nx1)的元素指定沿路径的分数距离,这些值在[0 1]范围内。第i个点对应路径上的一个距离s(i)。

若T0或T1等于[ ],则取其为单位矩阵。
在第二种情况下,S可以由一个标量轨迹生成器生成,如TPOLY或LSPB (默认)。

mstraj

多段多轴轨迹

traj = mstraj( p, qdmax, tseg, q0, dt, tacc, Options)是一条N轴同时通过M段的轨迹( KxN )。每个片段为直线运动,片段之间用多项式混合连接。轴从q0(1xN)开始,通过矩阵p(MxN)的行定义的点穿过M - 1,在p的最后一行定义的点结束。轨迹矩阵每时间步有一行,每轴有一列。轨迹K中的步数是过孔点数和所适用的时间或速度限制的函数。

  • P(MxN)是一个过孔点矩阵,每过孔点1行,每轴1列。最后一个经过点即为终点。
  • QDMAX (1xN)为不能超过的轴速限制,
  • TSEG ( 1xM )是每个K片段的持续时间
  • Q0 ( 1xN )为初始坐标轴
  • DT为时间步长
  • TACC ( 1x1 )该加速时间适用于所有分段过渡
  • TACC ( 1xM )为每个片段的加速时间,TACC(i)为从片段i过渡到片段i + 1的加速时间。TACC(1)也为第1段起始时刻的加速时间。

traj = mstraj( segment, qdmax, q0, dt, tacc, qd0, qdf, Options),但额外指定了初始和最终的轴心速度( 1xN )。

  • 只需指定QDMAX或TSEG中的一个,另一个设置为[ ]。
  • 如果没有指定输出参数,则绘制轨迹。
  • 路径长度K是过孔点数Q0、DT和TACC的函数。
  • 最终过孔点P(end, :)即为终点。
  • 运动有M段,从Q0到P(1, :)到P(2,:)…到P(end,:)。
  • 所有轴同时到达其过孔点。
  • 可以用于创建关节空间轨迹,其中每个轴是关节坐标。
  • 可以用来创建笛卡尔轨迹,其中"轴"对应于RPY或欧拉角形式的平移和定向。

mtraj

两点之间的多轴运动轨迹

[q, qd, qdd] = mtraj(tfunc, q0, qf, m)是根据m步标量轨迹函数tfunc从构型q0 (1xN)变化到qf (1xN)的多轴轨迹( MxN )。关节速度和加速度分别为qd (MxN)和qdd (MxN)。轨迹输出为每时间步一行,每轴一列。

轨迹的形状由标量轨迹函数tfunc给出
[S,SD,SDD] = TFUNC(S0, SF, M);

而tfunc的可能取值包括梯形轨迹的@lspb,或者多项式轨迹的@tpoly。

[q, qd, qdd] = mtraj( tfunc, q0, qf, T)如上所述,但T (Mx1)是一个时间向量,它决定了轨迹上的点的数量。

  • 如果没有指定输出参数Q,则绘制QD和QDD。
  • 当TFUNC为@ tpoly时,除不能指定初始速度外,其结果与JTRAJ在功能上是等价的。JTRAJ在计算效率上略高。

tpoly

生成标量多项式轨迹

[s, sd, sdd] = tpoly( s0, sf, m)是一个标量轨迹( Mx1 ),使用五次(5阶)多项式以m步从s0到sf平滑变化。速度和加速度可以选择地返回为sd ( Mx1 )和sdd ( Mx1 )。

tpoly( s0, sf, m)如上,但在单个图中绘制s,sd和sdd随时间的变化。

[s, sd, sdd] = tpoly(s0, sf, T)如上所述,但根据时间向量T(Mx1)的长度指定轨迹。

lspb

线性段用抛物线混合

[s,

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

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

相关文章

如何注册midjourney账号

注册Midjourney账号比较简单,准备好上网工具,进入官网 Midjourney访问地址: https://www.midjourney.com/ 目前没有免费使用额度了,会员最低 10 美元/月,一般建议使用30美元/月的订阅方案。了解如何订阅可以查看订阅…

无人机/飞控--ArduPilot、PX4学习记录(5)

这几天看dronekit,做无人机失控保护。 PX4官网上的经典案例,我做了很多注解,把代码过了一遍。 无人机具体执行了: 先起飞,飞至正上空10m->向北移动10m->向东移动10m->向南移动10m->向西移动10m->回到初…

milvus search api的数据结构

search api的数据结构 此api的功能是向量相似度搜索(vector similarity search) 一个完整的search例子: 服务端collection是一个hnsw类型的索引。 import random from pymilvus import (connections,Collection, )dim 128if __name__ __main__:connections.connect(alias…

springboot websocket 持续打印 pod 日志

springboot 整合 websocket 和 连接 k8s 集群的方式参考历史 Java 专栏文章 修改前端页面 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Java后端WebSocket的Tomcat实现</title><script type"text/javasc…

A股企业数据要素利用水平数据集(2001-2022年)

参照史青春&#xff08;2023&#xff09;的做法&#xff0c;团队对上市公司-数据要素利用水平进行测算。统计人工智能技术、区块链技术、云计算技术、大数据技术、大数据技术应用五项指标在企业年报中的披露次数&#xff0c;求和后衡量数据要素投入水平。 一、数据介绍 数据名…

贪心算法|1005.K次取反后最大化的数组和

力扣题目链接 class Solution { static bool cmp(int a, int b) {return abs(a) > abs(b); } public:int largestSumAfterKNegations(vector<int>& A, int K) {sort(A.begin(), A.end(), cmp); // 第一步for (int i 0; i < A.size(); i) { // 第二步if…

力扣HOT100 - 56. 合并区间

解题思路&#xff1a; class Solution {public int[][] merge(int[][] intervals) {// 先按照区间起始位置排序Arrays.sort(intervals, (v1, v2) -> v1[0] - v2[0]);int[][] res new int[intervals.length][2];int idx -1;for (int[] interval : intervals) {//直接加入的…

PCF8591(ADDA转换芯片)

工具 1.Proteus 8 仿真器 2.keil 5 编辑器 原理图 讲解 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程&#xff0c;允许在同个I2C总线上接…

【实战解析】YOLOv9全流程训练至优化终极指南

【实战解析】YOLOv9全流程训练至优化终极指南 0.引言1.环境准备2.数据预处理&#xff08;1&#xff09;数据准备&#xff08;2&#xff09;按比例划分数据集&#xff08;3&#xff09;xml转txt脚本&#xff08;4&#xff09;配置文件 3.模型训练&#xff08;1&#xff09;单GPU…

【UE5 C++】各个头文件的含义

#pragma once 预处理程序指令 作用&#xff1a;保护同一个文件不会被多次包含&#xff0c;使得头文件只会被编译一次&#xff0c; #include “CoreMinimal.h” 包含了一套来自UE4的核心编程环境的普遍存在类型 #include “GameFramework/GameModeBase.h” 基于GameModeBas…

如何训练自己的ChatGPT?需要多少训练数据?

近年&#xff0c;聊天机器人已经是很常见的AI技术。小度、siri、以及越来越广泛的机器人客服&#xff0c;都是聊天机器人的重要适用领域。然而今年&#xff0c;ChatGPT的面世让这一切都进行到一个全新的高度&#xff0c;也掀起了大语言模型&#xff08;LLM&#xff09;的热潮。…

SpringBoot和Vue2项目配置https协议

1、SpringBoot项目 ① 去你自己的云申请并下载好相关文件&#xff0c;SpringBoot下载的是Tomcat&#xff08;默认&#xff09;&#xff0c;Vue2下载的是Nginx ② 将下载的压缩包里面的.pfx后缀文件拷贝到项目的resources目录下 ③ 编辑配置文件 &#xff08;主要是框里面的内…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

线程池的方式爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

Spring学习(四)反射、AOP、JUnit

文章目录 Java反射回顾 AOP代理模式AOP概念及术语概述术语作用 基于注解的AOP步骤依赖配置文件切入点表达式语法切面类重用切入点表达式切面的优先级 基于XML的AOP 单元测试JUnit引入依赖JUnit5 Java反射 Spring框架的IoC基于java反射机制实现&#xff0c;反射是指在运行状态中…

antd+Vue 3实现table行内upload文件图片上传【超详细图解】

目录 一、背景 二、效果图 三、代码 一、背景 一名被组长逼着干前端的苦逼后端&#xff0c;在一个晴天霹雳的日子&#xff0c;被要求前端订单产品实现上传产品图片并立刻回显图片。 二、效果图 三、代码 <template><a-table :dataSource"dataSource" :c…

CTF之矛盾

这一题就是php的弱比较“” 这里要求输入的不是数字&#xff0c;并且输入要为1才打印flag 那我们就输入一个1后面接随便什么字符&#xff0c;因为php的弱比较将字符与数字进行比较的时候&#xff0c;会把字符转换成数字再比较&#xff0c;当转换到字符时后面便都为空了 flag{…

Android如何实现一个应用位于前台时全局页面每隔三分钟弹出一次一天最多弹出5次的GroMore半插屏广告,处于付费页和后台时停止

首先我们需要添加一个全局的Application public class MyApp extends LitePalApplication {private static final String TAG "MyApp";private static Context mContext;private boolean isManageMent;public static String oaid;Overridepublic void onCreate() {…

【opencv】示例-epipolar_lines.cpp 对极线

这段代码总的功能是使用OpenCV库进行立体视觉的估计。它从命令行读取两个图像文件名&#xff0c;使用SIFT算法检测关键点并计算这些点的描述子&#xff0c;接着通过FLANN库进行快速近似最近邻搜索来找到匹配的关键点。然后使用RANSAC方法计算基础矩阵&#xff0c;找到内点&…

Python中大的一把锁

今天可以来讲解下GIL是个什么了。 GIL为什么是Python中大的一把锁&#xff1f; GIL是Global Interpreter Lock的缩写&#xff0c;翻译过来就是全局解释器锁。 从字面上去理解&#xff0c;它就是锁在解释器头上的一把锁&#xff0c;它使Python代码运行变得有序。 假如有一段…