机器人姿态规划的三种常见方法:欧拉角、角轴和四元数

news2024/9/21 4:34:52

参考文献:

1. 布鲁诺·西西里安诺等[意] 《机器人学:建模、规划与控制》

2. 四元数小总结 - 孤独の巡礼 - 博客园 (cnblogs.com)

3. 基于单位四元数的姿态插补(Matlab) - 知乎 (zhihu.com)

4. 基于四元数的工业机器人姿态规划与插补算法的研究 - 豆丁网Docin

本文总结了用于机器人姿态规划的常见三种姿态规划方法,包括:欧拉角、角轴以及四元数。三种方法各有优劣,根据使用场景自由选择。

欧拉角

通过为欧拉角欧拉角ϕ= (φθ,ψ) 指定时间律来描述指向。通常使用三次多项式或混合抛物线线性分段时间律是方便的。基于这种方法,时变坐标系的角速度将具有连续量。

例子:

已知条件:初始和目标欧拉角已知,初始速度、加速度为0,最终速度、加速度为0。插值时间为tf。使用五次多项式时间律可以满足条件,位置、速度、加速度均连续。

有插值公式:

但是欧拉角姿态规划的方法存在万向节锁死的问题。

角轴

对于定义在操作空间的误差变量(位置和方向)进行处理,其表达式由下式给出:

e_{p}=p_{s}-p_{e} 

其中, 表示末端执行器的期望值, 表示末端执行器的计算值。

对于涉及到方向误差的部分,其表达式取决于末端执行器方向的详细表示,即,欧拉角,角和轴,单位四元数。

对于初始旋转矩阵 和目标旋转矩阵 ,有:

Re= Rs* R_{e}^{s}

所以有,

R_{e}^{s}= R_{s}^{-1}*R _{e}

对于旋转变换 ,可以表示为绕空间中一固定轴的旋转矩阵。计算轴的单位向量 ,可以求得初始旋转矩阵绕该轴的角速度和角加速度。

其中,轴的单位向量

指定一个时间律,当 ,且有 。我们使用五次多项式插值为 指定时间律,其中, 为总的姿态运动时间,由人为指定。

为常量,由此得到的速度和加速度为:

\omega ^{ i}=\dot{\theta }r^{i}

\dot{\omega }^{t}=\ddot{\theta }r^{i}

最后,为了表征末端执行器关于基坐标系的指向轨迹,需要进行如下变化:

R_{e}(t) = R_{i}R^{i}(t)

\omega _{e}(t) = R_{i}\omega ^{i}(t)

\dot{\omega}(t) = R_{i}\dot{\omega ^{i}}(t)

由此我们可以获取机械臂的姿态关节的运动速度,再通过雅可比逆解到各个关节。

但是以上基于角轴表达式的姿态规划存在奇异问题,当   = 0或   = Π时,单位向量r是奇异的。我们对  = 0这种场景进行了特殊处理。当  = 0时,默认姿态无转动,强制规划各姿态关节速度为0。  = Π时尚未做处理,后续考虑进行补充优化。

四元数

1. 四元数基础公式

 

 2. 四元数球面线性插值

 2.1 四元数球面线性插值的基本概念:

2.2 四元数球面线性插值的基本公式

我们采用第二种构造方式进行姿态规划!

 

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

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

相关文章

javaScript基础面试题 --- JS作用域

面试10家公司,得有8家会问到作用域的题。所以说JS的作用域一定要弄清楚,非常重要! 1、除了函数之外,JS没有块级作用域 2、作用域链:内部可以访问外部的变量,但是外部不能访问内部变量,如果内部有…

Docker搭建jenkins(Vue自动化部署)

前言 需要提前准备的条件 Docker环境 一、jenkins镜像 # 查询镜像 docker search jenkins# 下载镜像 # lts稳定版 docker pull jenkins/jenkins:lts#查看镜像 docker images二、启动Jenkins容器 创建挂载文件夹,并且进行文件授予权限 #创建文件夹 mkdir -p /home/j…

2023年湖北武汉初级、中级工程师职称评审条件和评审流程是什么呢?

职称分三个级别:初级、中级、高级,原则是需要一级一级的,但是有的地方可以跨级申报。 一、湖北武汉初级、中级工程师职称评定条件: 助理职称评定条件: 1.大学本科毕业,从事专业技术工作1年以上。 2.大学专…

Java Web 实战 02 - 多线程基础篇(1)

Java Web 实战 02 - 多线程基础篇 - 1一 . 认识线程1.1 概念1.1.1 什么是线程?1.1.2 为什么要有多个线程?1.1.3 进程和线程的区别(面试题)1.2 第一个多线程程序1.3 创建线程1.3.1 继承Thread类1.3.2 实现Runnable接口1.3.3 继承 Thread 类 , 使用匿名内部类1.3.4 实现 Runnab…

Linux嵌入式开发 | 汇编驱动LED(1)

文章目录🚗 🚗Linux嵌入式开发 | 汇编驱动LED(1)🚗 🚗初始化IO🚗 🚗STM32🚗 🚗使能GPIO时钟🚗 🚗设置IO复用🚗 &#x1f6…

3.5多线程

一.线程的状态1.NEW安排了工作,还未开始行动把Thread对象创建好了,但是还没有调用startjava内部搞出来的状态,与PCB的状态没什么关系2.TERMINATED工作完成了操作系统的线程执行完毕,销毁了,但是Thread对象还在,获取的对象3.RUNNABLE可以工作的,又可以分为正在工作中和即将开始工…

聊聊内存那些事(基于单片机系统)

单片机的RAM和ROM单片机的ROM,叫只读程序存储器,是FLASH存储器构成的,如U盘就是FLASH存储器。所以,FLASH和ROM是同义的。单片机的程序,就是写到FLASH中了。而RAM是随机读/写存储器,用作数据存储器&#xff…

SpringBoot笔记(一)入门使用

一、为什么用SpringBootSpringBoot优点创建独立Spring应用内嵌web服务器自动starter依赖,简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查及外部化配置无代码生成、无需编写XMLSpringBoot缺点人称版本帝,迭代快,需要时…

电路基础(1)电路模型和电路定律

电路中的电压、电流之间具有两种约束,一种是由电路元件决定的元件约束;另一种是元件间连接而引入的几何约束(就是拓扑约束),后者由基尔霍夫定律来表达。基尔霍夫定律是集总参数电路的基本定律。 1.电路和电路模型电源又…

电路模型和电路定律(2)——“电路分析”

各位CSDN的uu们你们好呀,好久没有更新电路分析的文章啦,今天来小小复习一波,之前那篇博客,小雅兰更新了电路的历史以及电压电流的参考方向,这篇博客小雅兰继续!!! 电阻元件 电压源和…

FFMPEG 安装教程windowslinux(CentOS版)

ps: 从笔记中迁移至blog 版本概述 Windows 基于win10 Linux 基于CentOS 7.6 一.Windows安装笔记 1.下载安装 https://ffmpeg.org/download.html 2 解压缩,拷贝到需要目录,重命名 3 追加环境变量 echo %PATH%setx /m PATH "%PATH%;F:\dev_tools\…

用C/C++制作一个简单的俄罗斯方块小游戏

用C/C制作一个简单的俄罗斯方块小游戏 用C/C制作一个简单的俄罗斯方块小游戏 0 准备1 游戏界面设计 1.1 界面布局1.2 用 EasyX 显示界面1.3 音乐播放 2 方块设计 2.1 方块显示2.2 随机生成一个方块2.3 方块记录 3 方块移动和旋转 3.1 方块的移动3.2 方块的旋转3.3 方块的碰撞和…

基于 WebSocket、Spring Boot 教你实现“QQ聊天功能”的底层简易demo

目录 前言 一、分析 1.1、qq聊天功能分析 1.2、WebSocket介绍 1.2.1、什么是消息推送呢? 1.2.2、原理解析 1.2.3、报文格式 二、简易demo 2.1、后端实现 2.1.1、引入依赖 2.1.2、继承TextWebSocketHandler 2.1.3、实现 WebSocketConfigurer 接口 2.2、…

LeetCode096不同的二叉搜索树(相关话题:卡特兰数)

目录 题目描述 解题思路 代码实现 进出栈序列理解卡特兰数分析策略 相关知识 参考文章 题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: …

《程序员面试金典(第6版)》面试题 02.07. 链表相交

题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果…

socket本地多进程通信基本使用方法和示例

目录 前言: socket是什么 socket基本原理框图 socket基本函数 1 socket() 函数 2 bind()函数 3 connect()函数 4 listen() 函数 5 accept() 函数 6 read() write() send() recv()函数 7 close()函数 8 字节序转换(hton) 示例代码 …

使用 Pulumi 打造自己的多云管理平台

前言在公有云技术与产品飞速发展的时代,业务对于其自身的可用性提出了越来越高的要求,当跨区域容灾已经无法满足业务需求的情况下,我们通常会考虑多云部署我们的业务平台,以规避更大规模的风险。但在多云平台部署的架构下&#xf…

埃安自研版图扩至夸克电驱,动力研发团队已超1000人

埃安的三电自研版图正在扩大。3月3日,广汽集团旗下埃安发布了一项名为“夸克电驱”的技术产品,相比主流电驱体积减少一倍,同时电机功率密度比主流电驱增加了一倍。此前,比亚迪刚刚发布易四方动力系统,特斯拉也在投资者…

HTML常见标签

文章目录一、HTML基础标签注释标签标题标签段落标签换行标签格式化标签图片、音频、视频标签超链接标签列表标签表格标签布局标签表单标签表单标签概述form标签属性表单项标签综合案例一、HTML基础标签 基础标签就是和文字相关的标签 标签描述<h1> ~ <h6>定义标题…

【项目管理】晋升为领导后,如何开展工作?

兵随将转&#xff0c;作为管理者&#xff0c;你可以不知道下属的短处&#xff0c;却不能不知道下属的长处。晋升为领导后&#xff0c;如何开展工作呢&#xff1f; 金九银十&#xff0c;此期间换工作的人不在少数。有几位朋友最近都换了公司&#xff0c;职位得到晋升&#xff0c…