機器人與3D視覺 Robotics Toolbox Python 二 空間位姿描述

空間位姿描述

二維空間位姿描述

二維空間位姿表示方法

from spatialmath.base import *
from spatialmath import *
T1 = SE2(x=3,y=3,theta=30,unit="deg")
trplot2(T1.A,frame="T1",dims=[0, 5, 0, 5])
T2=transl2(3, 4)
trplot2(T2,frame="T2",dims=[0, 5, 0, 5],color='red')

在這里插入圖片描述

三維空間姿態描述

R1=SO3.Rx(60,"deg")*SO3.Ry(30,"deg")*SO3.Rz(50,"deg") #繞x軸旋轉60°,再繞y軸旋轉30°,再繞z軸旋轉50°
trplot(R1.A,frame="A", color= "b")#畫出旋轉矩陣R1
tranimate(R1.A,fram="A", color= "b")#將R1的變換做成動畫
R2=SO3.Rz(50,"deg")*SO3.Ry(30,"deg")*SO3.Rx(60,"deg");#繞z軸旋轉50°,再繞y軸旋轉30°,再繞x軸旋轉60°
trplot(R2.A,frame="B", color="r")#畫出旋轉矩陣R2
tranimate(R2.A,frame="B",color= "r")#將R2的變換做成動畫

在這里插入圖片描述

角度表示法

歐拉角表示方法

>>> R3=SO3.Rz(0.1)*SO3.Ry(0.2)*SO3.Rz(0.3)#構造旋轉矩陣R3
>>> print(R3)0.9021   -0.3836    0.1977    0.3875    0.9216    0.01983-0.1898    0.05871   0.9801>>> R4=eul2r(0.1,0.2,0.3)# 歐拉角轉化為旋轉矩陣
>>> print(R4)
[[ 0.902113   -0.38355704  0.19767681][ 0.3875172   0.92164909  0.01983384][-0.18979606  0.0587108   0.98006658]]
>>> eul=tr2eul(R3.A)# 旋轉矩陣轉化為歐拉角
>>> print(eul)
[0.1 0.2 0.3]
>>>

RPY角表示方法

>>> R5=SO3.Rz(0.3)*SO3.Ry(0.2)*SO3.Rx(0.1)# 構造旋轉矩陣R5
>>> print(R5)0.9363   -0.2751    0.2184    0.2896    0.9564   -0.03696-0.1987    0.09784   0.9752>>> R6=rpy2r(0.3,0.2,0.1)# rpy角轉化為旋轉矩陣
>>> print(R6)
[[ 0.97517033 -0.03695701  0.21835066][ 0.0978434   0.95642509 -0.27509585][-0.19866933  0.28962948  0.93629336]]
>>> rpy=tr2rpy(R5.A)# 旋轉矩陣轉化為rpy角
>>> print(rpy)
[0.1 0.2 0.3]

雙向量表示法

a=[1, 0, 0]
o=[0, 1, 0]
R7=SE3.OA(o,a) #將雙向量o,a轉化為旋轉矩陣R7
trplot(R7.A,frame="A", color= "b")#畫出旋轉矩陣R7

在這里插入圖片描述

向量旋轉角表示法

vec=[1,0,0]
R8=angvec2tr(theta=20,v=vec,unit='deg')
trplot(R8,frame="A", color= "b")#畫出旋轉矩陣R8

在這里插入圖片描述

四元素表示法

s=0.98335
v=[0.034271, 0.10602, 0.14357]
Q=UnitQuaternion(s,v) # 組成四元數
R9=q2r(Q.A) #四元數轉為旋轉矩陣
Q1=r2q(R9)  #旋轉矩陣轉為四元數
rul=Q.eul(unit='deg') #四元數轉為歐拉角
rpy=Q.rpy(unit='deg',order='zyx')  #四元數轉為rpy角
trplot(R9,frame="R9", color= "b")#畫出旋轉矩陣R9

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212655.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212655.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何理解 RPC 遠程服務調用?

本文主要講解 RPC 遠程服務調用相關的知識。 RPC 遠程服務調用是分布式服務架構的基礎,無論微服務設計上層如何發展,討論服務治理都繞不開遠程服務調用,那么如何理解 RPC、有哪些常見的 RPC 框架、實現一款 RPC 框架需要哪些技術呢&#xff…

解決electron修改主進程后需要重啟才生效

nodemon 是一種工具,可在檢測到目錄中的文件更改時通過自動重新啟動節點應用程序來幫助開發基于 node.js 的應用程序 nodemon 特性 自動重新啟動應用程序。檢測要監視的默認文件擴展名。默認支持 node,但易于運行任何可執行文件,如 python、…

自動駕駛學習筆記(十七)——視覺感知

#Apollo開發者# 學習課程的傳送門如下,當您也準備學習自動駕駛時,可以和我一同前往: 《自動駕駛新人之旅》免費課程—> 傳送門 《Apollo 社區開發者圓桌會》免費報名—>傳送門 文章目錄 前言 分類 目標檢測 語義分割 實例分割 …

SQL語句的執行順序怎么理解?

SQL語句的執行順序怎么理解? 我們常常會被SQL其書寫順序和執行順序之間的差異所迷惑。理解這兩者的區別,對于編寫高效、可靠的SQL代碼至關重要。今天,讓我們用一些生動的例子和場景來深入探討SQL的執行順序。 一、書寫順序 VS 執行順序 SQ…

【unity實戰】一個通用的FPS槍支不同武器射擊控制腳本

文章目錄 前言模型素材文章用到的粒子火光特效射擊效果換彈瞄準開槍抖動效果設置顯示文本最終代碼不同武器射擊效果1. 手槍2. 機槍3. 狙擊槍4. 霰彈槍5. 加特林 其他感謝完結 前言 實現FPS槍支不同武器效果,比如手槍,噴子,狙擊槍&#xff0c…

《使用ThinkPHP6開發項目》 - 創建應用

《使用ThinkPHP6開發項目》 - 安裝ThinkPHP框架-CSDN博客 《使用ThinkPHP6開發項目》 - 設置項目環境變量-CSDN博客 《使用ThinkPHP6開發項目》 - 項目使用多應用開發-CSDN博客 根據前面的步驟,我們現在就可以開發我們的項目開發了,根據項目開發的需要…

【數據挖掘】國科大蘇桂平老師數據庫新技術課程作業 —— 第四次作業

云數據庫研究 云計算與云數據庫背景 云計算(cloud computing)是 IT 技術發展的最新趨勢,正受到業界和學術界的廣泛關注。云計算是在分布式處理、并行處理和網格計算等技術的基礎上發展起來的,是一種新興的共享基礎架構的方法。它…

Django多對多ManyToManyField字段

Django是一個支持多對多關系的Web框架,可以在模型中定義多對多關系。多對多關系通常涉及兩個實體之間的復雜交互,例如用戶和組之間的關系,或者課程和學生之間的關系。在Django中,可以使用ManyToManyField字段來定義多對多關系。 …

[足式機器人]Part4 南科大高等機器人控制課 Ch05 Instantaneous Velocity of Moving Frames

本文僅供學習使用 本文參考: B站:CLEAR_LAB 筆者帶更新-運動學 課程主講教師: Prof. Wei Zhang 南科大高等機器人控制課 Ch05 Instantaneous Velocity of Moving Frames 1.Instantanenous Velocity of Rotating Frames2.Instantanenous Veloc…

機器學習基礎入門

機器學習 引言 介紹機器學習的重要性和應用領域。簡要說明機器學習與人工智能的關系。 在當今迅速發展的技術世界中,機器學習已經成為一項不可或缺的技術,它正在改變我們解決問題和理解世界的方式。機器學習,作為人工智能(AI&a…

最新Redis7持久化(權威出版)

首先我們要知道什么是持久化:持久化是指將數據保存到磁盤上,以確保在Redis服務器重啟時數據不會丟失。 Redis支持兩種主要的持久化方式:RDB持久化和AOF持久化 下面讓我依次給你介紹一下: RDB持久化 作用 這是將Redis數據保存…

Java8新特性 - Stream

一、特性 Java 8引入的Stream API為集合&#xff08;Collections&#xff09;提供了一種聲明式的處理方式&#xff0c;支持豐富的操作&#xff0c;包括篩選、映射、歸約等。以下是一些Stream的主要功能和使用方式的案例&#xff1a; 創建Stream&#xff1a; List<String&…

Java語言概述及保姆級入門教程(JDK 17版本)

筆記來自尚硅谷老師-康老師 學習教程&#xff1a;https://www.bilibili.com/video/BV1PY411e7J6/?spm_id_from333.337.search-card.all.click 1、Java基礎全程脈絡圖 1.1 本章專題與脈絡 2. 抽絲剝繭話Java 2.1 當前大學生就業形勢 麥可思研究院發布了《2022年中國大學生就業…

TCP 和UDP 到底有啥區別

TCP&#xff08;傳輸控制協議&#xff09;和UDP&#xff08;用戶數據報協議&#xff09;是互聯網上常用的兩種傳輸層協議&#xff0c;它們在數據傳輸方式和特性上有顯著的區別。下面是TCP和UDP的主要區別&#xff1a; 連接性: TCP 是一種面向連接的協議。在數據傳輸前&#xf…

C#圖像處理OpenCV開發指南(CVStar,09)——邊緣識別之Scharr算法的實例代碼

1 邊緣識別之Scharr算法 算法文章很多&#xff0c;不再論述。 1.1 函數原型 void Cv2.Scharr(src,dst,ddepth,dx,dy,scale,delta,borderType&#xff09; 1.2 參數說明 src 代表原始圖像。dst 代表目標圖像。ddepth 代表輸出圖像的深度。CV_16Sdx 代表x方向上的求導階數…

uniApp應用軟件在運行時,不符合華為應用市場審核標準。解決方案合集!

&#xff08;暫時用不到的也建議收藏一下&#xff0c;因為文章持續更新中&#xff09; 最新更改時間&#xff1a;20023-12-10 第一次做App應用開發相信大家一定都遇到過華為應用市場審核的“駁回”&#xff01; 有些問題一看就明白可以立馬修改&#xff0c;而有一些問題修改意…

Dubbo入門直接上手,結合微服務詳解

Dubbo 高性能、輕量級的 Java RPC 框架 RPC&#xff1a; Remote Procedure Call 遠程過程調用&#xff0c;簡單來說就是它允許一個計算機程序通過網絡請求調用另一個計算機上的程序&#xff0c;就像本地調用一樣。有非常多的協議和技術來都實現了RPC的過程&#xff0c;比如&a…

Elasticsearch 8.9 refresh刷Es緩沖區的數據到Lucene,更新segemnt,使數據可見

一、相關API的handler1、接受HTTP請求的hander(RestRefreshAction)2、往數據節點發送刷新請求的action(TransportRefreshAction)3、數據節點接收主節點refresh傳輸的action(TransportShardRefreshAction) 二、在IndexShard執行refresh操作1、根據入參決定是使用lucene提供的阻塞…

【華為數據之道學習筆記】3-8以確保合規遵從為核心的外部數據管理

一、以確保合規遵從為核心的外部數據管理 外部數據是指華為公司引入的外部組織或者個人擁有處置權利的 數據&#xff0c;如供應商資質證明、消費者洞察報告等。外部數據治理的出發點是合規遵從優先&#xff0c;與內部數據治理的目的不同。 外部數據的治理主要遵循以下原則。 1&…

【設計模式--創建型--原型模式】

設計模式--創建型--原型模式 原型模式概述結構實現結果 案例代碼結果使用場景 擴展&#xff08;深\淺克隆&#xff09;淺克隆演示&#xff1a;結果&#xff1a;使用深克隆&#xff08;利用對象流&#xff09;結果 原型模式 概述 用一個已經創建的實例作為原型&#xff0c;通過…