三维不同坐标系下点位姿态旋转平移变换

文章目录

  • 前言
  • 正文
    • 计算方法思路
    • Python实现
  • 总结

前言

本文主要说明以下几种场景3D变换的应用:

  1. 3D相机坐标系下长方体物体,有本身坐标系,沿该物体长边方向移动一段距离,并绕长边轴正旋转方向转90度,求解当前物体中心点在相机坐标系下的位置和姿态
  2. 多关节机器人末端沿工具坐标系,朝y向移动一段距离,并绕y轴正向旋转90度,求解当前点在机器人坐标系下的位置和姿态

其实综合起来说便是在基坐标系O下有一个点A,A点有自己的用户坐标系O’,A点在自己用户坐标系O’下发生三维平移、旋转变换,变换完成后该点B在基坐标系O下的位置姿态求解。

正文

坐标系三维建模如下图所示:

O:灰色比较大的基坐标系

A:起始点,基座标系下点为[1,2,3],欧拉角为[-90,0,0]

O’:A点所在处绘制的坐标系

B:结束点,在O’坐标系下A点沿[0,1,0]方向移动2个单位长度

请添加图片描述
图1 坐标系三维建模–Math3d: Online 3d Graphing Calculator
请添加图片描述

图2 坐标系旋转变换–Quaternions - Visualisation

计算方法思路

A点在O坐标系下矩阵描述:

注:前三阶代表旋转矩阵,最后一列表示位置[x,y,z,1]

[ 1 0 0 1 0 1 0 2 0 0 1 3 0 0 0 1 ] (P) \left[ \begin{matrix} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 2 \\ 0 & 0 & 1 & 3 \\ 0 & 0 & 0 & 1 \end{matrix} \right] \tag{P} 1000010000101231 (P)

[ 1 0 0 0 0 0 − 1 0 0 1 0 0 0 0 0 1 ] (T) \left[ \begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{matrix} \right] \tag{T} 1000001

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

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

相关文章

Redis基础篇:初识Redis(认识NoSQL,单机安装Redis,配置Redis自启动,Redis客户端的基本使用)

目录 1.认识NoSQL2.认识Redis3.安装Redis1.单机安装Redis2.配置redis后台启动3.设置redis开机自启 4.Redis客户端1.Redis命令行客户端2.图形化桌面客户端 1.认识NoSQL NoSQL(Not Only SQL)数据库是一种非关系型数据库,它不使用传统的关系型数…

我们的一生都是在挤火车。

哈喽,你好啊,我是雷工! 昨天从燕郊坐火车回石家庄,由于赶上元旦假期,所有高铁票都售罄,一张普通火车票,还是一周前就买才买到的。 从燕郊站,到北京站,然后地铁去北京西站…

C语言动态内存管理面(下)常⻅的动态内存的错误

我们接着C语言动态内存管理(上)没讲完整的继续来深度讲解。、 4. 常⻅的动态内存的错误 4.1 对NULL指针的解引⽤操作 主要的原因还是自己的粗心大意没有对malloc的值进行判断 void test() { int *p (int *)malloc(INT_MAX/4); *p 20; //如果p的值是…

JavaScript原型和原型链

JavaScript每个对象拥有一个原型对象 需要注意的是,只有函数对象才有 prototype 属性 当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索&#xff…

OpenGrok代码服务器搭建,解决代码检索慢的问题

一、背景 在前一家公司,公司提供了OpenGrok服务器供大家检索查阅代码。但在新公司,大家都使用vscode或Sourse Insight,这就存在一些问题: 不能跳转或者跳转比较慢。 搜索查询速度慢,且结果展示不易查看。 这严重影…

题目:泡澡(蓝桥OJ 3898)

问题描述: 解题思路: 图解:(以题目样例为例子) 注意点:题目的W是每分钟最大出水量,因此有一分钟的用水量大于出水量则不通过。 补充:差分一般用于对一段区间每个元素加相同值&#x…

nicegui学习使用

https://www.douyin.com/shipin/7283814177230178363 python轻量级高自由度web框架 - NiceGUI (6) - 知乎 python做界面,为什么我会强烈推荐nicegui 秒杀官方实现,python界面库,去掉90%事件代码的nicegui python web GUI框架-NiceGUI 教程…

2024护网面试题精选(二)完

0x02. 内网渗透篇 00- 内网渗透的流程 拿到跳板后,先探测一波内网存活主机,用net user /domian命令查看跳板机是否在域 内,探测存活主机、提权、提取hash、进行横向移动,定位dc位置,查看是否有能直接提权域 管的漏洞…

JavaSE面试——多态

多态 1. 多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。 2. 多态性分为编译时多态和运行时多态,方法重载(overload)实现的是编译时多态,而方法重写 &…

【运维】本地部署Gemma模型(图文)

工具简介 我们需要使用到两个工具,一个是Ollama,另一个是open-webui。 Ollama Ollama 是一个开源的大语言平台,基于 Transformers 和 PyTorch 架构,基于问答交互方式,提供大语言模型常用的功能,如代码生…

给 spyter/all-spark-notebook 添加scala支持

spyter/all-spark-notebook默认没有安装scala notebook,需要手动添加。 你可以创建一个新的 Dockerfile,在其中添加你需要的配置和组件。以下是一个简单的例子: FROM jupyter/all-spark-notebook:x86_64-ubuntu-22.04 #冒号后可以是latest&a…

CAE模拟仿真工具CEETRON Envision:大数据可视化助力工业设计与协同

行业: 制造业; 工业设计; 汽车;航天 挑战:工业客户需要有效的方法来处理CAE数据;ESTECO寻求提供CAE可视化功能来帮助客户做出决策;许多可用的可视化工具无法提供对模型中数据的完全访问以进行深入分析 解决方案&…

快速排序hoare优化

目录 三数取中法选key 优化点 基本思想 代码实现 小区间优化 优化点 基本思想 代码实现 由于hoare版快排在一些特殊情况下性能并不优,这里我们进行一些优化。 三数取中法选key 优化点 当数据有序时,快排就会很吃力,这是为什么呢…

OpenJDK 目前主要发展方向

Loom:得赶紧解决 synchronized pin 线程的问题(据说 Java 23 会解决,现在有预览版)。各个 Java 库需要改造原来使用 ThreadLocal 的方式:如果是为了穿参数,则可以使用 ScopedLocal;如果是对象池…

如何解决新版的anaconda notebook 打不开浏览器

1 安装nodejs 先安装nodejs,里面有很多需要用node来启动服务 2 一片空白 安装jupyter以后启动, 结果就得到了如下,在chrome里面打开以后,一片空白 3 列出环境 conda create --name pytorch python3.9 conda env list cond…

【数学建模】Topsis法python代码

昨天学习了Topsis法的基本概念,今天就来一起实践一下,用python实现topsis法 代码分块解释 1、引入numpy库 numpy as np 2、输入参评与指标数目 # 用户输入参评数目和指标数目,将输入的字符串转换为数值 print("请输入参评数目&#…

在DeepLn环境中安装VLLM与ChatGLM3

DeepLn | 智慧算力触手可及是一个挺便宜的算力租用平台,里面有大量的显卡可以租用。唯一美中不足的是,提供的pytorch版本低,只支持到2.01,为了匹配vllm,需要手动安装指定版本的pytorch。 vllm介绍 总体而言&#xff0…

AHU 数据库 实验四

【实验名称】 实验4 数据库的嵌套查询和集合查询 【实验目的】 1. 理解并掌握子查询的概念和作用; 2. 掌握DBMS 实现嵌套查询的基本方法和应用; 3. 掌握DBMS 实现集合查询的基本方法和应用; 4. 学习、掌握并熟练…

Spring Boot 面试题及答案整理,最新面试题

Spring Boot中的自动配置是如何工作的? Spring Boot的自动配置是其核心特性之一,它通过以下方式工作: 1、EnableAutoConfiguration注解: 这个注解告诉Spring Boot开始查找添加了Configuration注解的类,并自动配置它们…

Python中random模块:随机数生成与应用

random模块介绍 随机数在计算机编程中扮演着重要的角色,它们被广泛应用于游戏开发、密码生成、仿真等众多领域。 Python提供了丰富而强大的random模块,旨在方便开发者生成高质量的随机数,随机选择和操作数据。 本文将介绍Python中random模…