【ABB】機械臂歐拉角轉四元數


背景

我們最近搞機械臂+機器視覺實現機械臂的引導、定位和抓取操作。

我們的機械臂是ABB的,ABB的機械臂默認采用四元數的方式表示空間坐標,但是這個東西非常不便於理解,其他廠家的機械臂一般使用歐拉角表示空間位置和姿態。

關於如何將四元數與歐拉角之間進行轉換,我們調研了很長時間,現在總結出一個方法,供大家參考。

歐拉角:

 

使用到的庫

https://github.com/cgohlke/transformations

使用方式

import transformations
import numpy

def euler(roll, pitch, yaw, axes='rxyz'): yaw = float(yaw) / 180 * numpy.pi pitch = float(pitch) / 180 * numpy.pi roll = float(roll) / 180 * numpy.pi return list(transformations.quaternion_from_euler(roll, pitch, yaw, axes=axes))


roll = 180
pitch = 0
raw = 0
quaternion = euler(roll, pitch, raw)

重要說明:

axes表示機械臂運動時的繞軸順序,默認xyz沒有問題,最關鍵的在於前面的

r:表示基於夾爪(自身)的坐標系進行運動

s:表示基於機械臂的基坐標的坐標系進行運動。

絕大部分情況,推薦使用r模式,更容易讓人理解,是相對於夾爪的位置進行的運動。

另外,這個庫的quaternion_from_euler函數,傳入角度不是我們認知的0-360度,而是根據pi進行轉換,pi表示180度。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM