久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
樓主: 水水5

已知面角,如何求歐拉角,機器人坐標變換怎么求?

[復制鏈接]
11#
 樓主| 發表于 2025-7-29 19:18:50 | 只看該作者
DaedraMech 發表于 2025-7-28 14:23
* W; N$ x8 T# E4 R一般對算法這邊來說最直接的就是拿到變換矩陣了,不知道為什么還要舍近求遠獲得歐拉角,不過樓主需要的話 ...

" q+ T# E  Y: o% |- O7 |" ^% L感謝層主,膜拜
% G, b& C% h9 a
4 d# `" V* k. x( |( [我一定把它付諸實踐
  r. y- B6 l& p$ O, T) j7 p2 C# P% I  Q! ^7 R
我又搜索了一些其他的方法,再次請樓主給于指導。一些方法貼入后面的回復。- d1 R( m! \2 g* U1 v
12#
 樓主| 發表于 2025-7-29 19:20:54 | 只看該作者
7 Q4 j% l: g- ]( G) u! i
1 m# M# u, ~4 }8 b7 v, ]
方法一 本文轉載自簡書,作者是梁間。表示感謝
  T& X+ J6 @: P: |6 k) A
數學模型已知兩個坐標系在各方向上尺度縮放比例一致,兩個坐標系的轉換關系可以用7個參數來表示,3個旋轉參數,3個平移參數,1個比例參數。已知三點在A、B兩個坐標系中的坐標,那么這7個參數可以唯一確定。+ T& y! m$ w- k2 d/ k
坐標轉換的數學模型為:
, D6 ^9 H4 W7 T2 H, \: C# X. @4 V' f6 }8 M; p
其中,λ是比例參數,R是旋轉矩陣,Δ是平移向量,A、B分別是兩個坐標系中的坐標。" t+ q  v& {2 C1 Q7 l) J& `. _
比例參數λ最容易計算4 f/ Y2 D/ L8 T, M8 C, W( C# s
4 |* s4 t; n; f5 J1 a, v; P
其中兩點在A坐標系中的距離。
% k' w9 C/ x% h5 V( @2 O旋轉矩陣R是一個3x3的正交矩陣,有3個自由度。可利用反對稱矩陣S來構造旋轉矩陣R:
- ^1 G; R9 N9 `4 z; G4 q* k8 z& B. b& D! Q: W" @
那么
5 T6 z: W8 q5 {1 c8 j* P) W$ e+ Y  y" Z# ?% [: W
其中I是單位矩陣,這里R只有a、b、c三個變量,解出a、b、c即可確定旋轉矩陣R。' |: C0 @5 Q$ h0 F# [; [
兩點帶入(1)式并相減消去ΔX、ΔY、ΔZ
; K$ f5 e' D9 v. e; n# d. [/ N3 X+ ]' Z) `% M* H) ^
這里點在A坐標系X軸向坐標值,為已知量。我們簡化一下寫法設定:
. h4 L9 o4 ^, Y3 b$ q( |) M% Z4 H/ v* K& P
這樣(3)式可寫為
4 J% |/ `' X  X% S
7 h+ A4 P; [" q3 N3 _( {( ^6 s. h  {把(2)式帶入(4)
+ x# E3 ^) A4 C) [" T! H$ e
: M' v$ }2 Y) J! G$ M帶入S
$ g2 x- x8 p+ @+ z' `9 R* a+ _: q1 t& H
展開7 n4 D9 @; a, S. P

0 q. ], S2 V( h5 e+ D7 B整理可得! j# C4 }/ B7 L! S+ \: u2 D) k# Z- o

0 ], ?/ z) f7 D- T7 p. I(5)式只有兩個獨立方程,解不出a、b、c三個未知量。帶入點得到和(5)式類似的方程組,兩個方程組聯立,取3個獨立方程
6 I) k2 v% j, {7 w+ u) F; t
* u1 A; p9 }" {- `4 X2 T( {/ ~( m4 s0 Y3 H
可結出1 j3 Y( T4 h) H/ X

: }* D7 m3 s% W  \, K把a、b、c帶入(2)式可到旋轉矩陣R,把任意一點坐標帶入(1)式可得Δ。
9 @4 j3 |  n1 J1 t6 g, W; t, L$ F
* s- }6 r+ t" V% [: v$ N
1 j+ x* a* s. z9 x3 l  i5 P
作者:梁間
) L7 D; f* q, e+ [% i. Q% [鏈接:https://www.jianshu.com/p/58cf5655f9a9
% k! N& }2 H0 j0 }4 Q3 A來源:簡書
6 p# N2 x1 k+ M5 u9 `" H- p9 \, A著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
+ c1 T; C* ~4 [5 b1 H; t
1 J0 {$ f* }8 n' s3 |9 z
13#
 樓主| 發表于 2025-7-29 19:23:22 | 只看該作者
方法二,這里提到了SVD算法
* Q5 F6 m2 A% |9 k
通過實際的坐標點例子,來直觀解釋通過SVD求對應的坐標系關系。
已知四個點在坐標系A中的坐標為:
(0, 0, 0); (1,0,0); (1,1,0); (0,1,0)
可得矩陣A為

9 `+ l; O, j- v2 |6 H: @0 E
- _9 R) ^" i7 `! L8 ]  t! c矩陣A
這四個點在坐標系B中的坐標為:
(2,2, 2); (3,2,2); (3,3,2); (2,3,2)
可得矩陣B為
5 n& D1 g8 L9 o5 L5 {9 b
: ]! s' n7 j) O0 a$ n8 L
矩陣B步驟一:求兩個數據集的質心
根據上述公式,可得質心為
步驟二:將兩個數據集的質心移動至同一個點,即只存在于一個旋轉的轉換關系。
對應坐標系中的點同時減去質心,計算后的矩陣A和B分別為
1 p0 t1 F. g. v  d2 h

+ `* z) U9 s9 p& w# P! K# V計算后的矩陣A
* Y7 \- |/ u4 @, a: M
- x* t  {' I8 `8 O- L計算后的矩陣B
備注:此處的矩陣A和矩陣B一樣,因為舉得例子較為特殊,只存在平移關系。計算過程通用。
步驟三:通過SVD算法計算旋轉和平移關系。
定義一個3X3的矩陣,將矩陣A的每一行數據與矩陣B進行點乘,會產生四組3X3的矩陣,將這四組數據求和,得到最終的3X3的矩陣,就是我們需要用SVD算法來進行奇異值分解的矩陣H。
上述公式中,顏色相同的框內數據進行點乘,構成3X3的矩陣a1,a2,a3,a4。
矩陣H = a1 + a2 + a3 + a4。計算結果如下
通過SVD算法分解該矩陣,這里直接通過MATLAB接口調用,具體原理在前面的章節中已描述。
步驟四:計算旋轉和平移關系
根據上述求出的u1和v1,可求得旋轉矩陣R為將該旋轉矩陣轉為歐拉角則Rx = 0, Ry = 0, Rz = 0。
根據公式
平移矩陣
總結:如果在實際項目中,需要獲取多臺設備間的關系,如機器人相對于產品間的關系,或者機床相對于產品的關系,則該方法較為實用。注意:在實際的選擇參考點時,不要在一條線上選點。如上述選的四個點,要求不能共線。要不然會減少有效數據。

% ?8 ~! d# N7 n
14#
發表于 2025-7-29 20:37:54 | 只看該作者
本帖最后由 DaedraMech 于 2025-7-29 20:42 編輯
; H+ {; |% t0 E6 s; _
/ T) ~5 W- T) e7 G$ N& d沒想到水水大俠對此問題如此孜孜以求,鉆研精神和信息獲取能力令小弟佩服,我比較功利,方法能解決問題就行。+ Y! b2 j: I/ H5 G5 C# C
  _! v! s' B3 o- `4 k% {7 n
我把之前回復中的齊次變換矩陣改一下符號,樓主可以對比下和文章中的表達方式是不是一回事:
7 j; h- f- ?0 {: N5 Z/ y1 N; D, d( t2 ~6 o* V/ g

: }+ \6 ?' U/ T平移、旋轉、縮放這類坐標變換我們統稱為線性變換。平移和縮放非常簡單,沒什么好說的,重點就是如何求得旋轉矩陣R,上述兩種方法就是通過純代數的方法求解R。
$ h* M7 l6 k  M$ ^你用什么方法和選擇的工具有關,上述兩種方法多用在圖像處理和機器學習中,算法工程師手里的工具是集成編程環境,是代碼,采用代數方法自然是比較直接的。但要知道矩陣可是聯系代數和幾何的橋梁啊,而我們則掌握了強大的幾何工具SW,利用【旋轉矩陣可以表示坐標系】這一幾何意義我們可以直接得到R,完全不需要上面繁瑣的運算。
/ v8 V. R, ]8 ^3 R+ t

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
15#
 樓主| 發表于 3 天前 | 只看該作者
本帖最后由 水水5 于 2025-8-3 20:21 編輯
# I8 d3 l. N% o
DaedraMech 發表于 2025-7-29 20:37
+ v3 E+ B5 s2 Y& {2 s& C沒想到水水大俠對此問題如此孜孜以求,鉆研精神和信息獲取能力令小弟佩服,我比較功利,方法能解決問題就行 ...

9 }( y% u7 b& D# C: ]感謝大俠的持續教誨。大俠如果有,從變換矩陣導出歐拉角,的計算公式,恭請再給明示下。
/ F; y2 ]3 e+ U5 R6 P9 z! n3 S5 y' f4 @& {
經過又一個周末的摸索和學習,我已經學到了旋轉矩陣的測量方法,并且通過計算一個點的坐標在兩個坐標系中的坐標值進行了驗證。
6 _& B4 T  ?- }0 ~+ R: D: b  n2 X- A) [/ W1 W/ s, {) M$ A
這是第一步,下一步是求歐拉角。
; F! a% f: |& \$ R
( o6 c, }+ \/ o我最終的目的是:
: {; g. J+ k8 i4 `“在機器人示教工具坐標系的時候,不需要再繁瑣的用6點法搞一個小時示教,而是我作為機械工程師,可以直接從三維中計算出,通過計算,直接可以提供XYZABC的數值”
# m4 r% |& n) p: y0 M( e2 o1 x" _% U% |8 F
但是這里面有個難題,我不知道機器人工具坐標系參數他是采用的哪種形式的歐拉角0 i" S3 |; k& g* I
下圖是我的作業
2 z# V9 J* h" R# u1 C; m. [$ O/ W, ]8 m( d! U( @

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?注冊會員

×
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-8-6 02:31 , Processed in 0.074618 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表