1. 程式人生 > 其它 >【ABB】機械臂尤拉角轉四元數

【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度。

原創作者:鄭立賽


郵箱:[email protected]


歡迎關注我們的公眾號獲取最新文章:運維自動化開發