Matlab機械人工具箱(二)

2021-07-24 10:03:54 字數 2440 閱讀 3366

上一章主要介紹了在二維和三維空間中如何描述位姿。這一章則將上章拓展到物件,其位姿是時間的函式。

分兩個部分,第乙個部分主要討論如何產生一系列短暫的位姿序列,一條足夠光滑的從起始位姿到終止位姿的軌跡;

第二部分主要討論位姿改變速率的概念,即其導數,以及如何將從機械學角度比如速度和角速度等方面將這些概念

聯絡起來。

注意路徑(path)和軌跡(trajectory)的區別,路徑是指從a到b的空間概念,而軌跡是有特定時間點的一條路徑。

軌跡的乙個重要特徵就是光滑(包括位置和姿態都關於時間是光滑的)。

接下來討論如何在一維空間中產生光滑的軌跡,然後擴充套件到多維空間,然後擴充套件到分線段的軌跡。

機械人工具箱提供了函式mstraj()來產生一條基於中間點的多段多軸的軌跡。例如2軸經過4個中間點的軌跡就

可以這樣產生:

其中via就是4個中間點的座標,mstraj的第乙個引數就是要通過的中間點,第二個引數就是每個軸的最大的速度

所組成的向量,第三個引數是每個段的間隔所組成的向量,第四個引數是初始的軸座標,第六個引數是取樣週期,

最後乙個引數是加速時間。mstraj函式會返回乙個矩陣,行表示時間間隔,列表示座標值。

可以找到對應的rpy:

然後可以在這兩個姿態之間以50個步長建立一條軌跡:

可以以動畫的形式來演示:

也可以用單位四元素法來做插補,例如上面的例子中,我們先找到其單位四元素:

然後進行插補:

用tranimate(q)就可以動態顯示了。

上面只討論了從乙個姿態變換到另乙個姿態的運動,而沒有平移運動,然後在實際的機械人系統中,一般都是兩

種運動都有的,所以當設計到從乙個位姿運動到另乙個位姿的時候,我們叫做笛卡爾運動。

我們用齊次變換來表示起始和終止位姿:

機械人工具箱中提供函式trinterp()提供這種插補,例如:

在這裡平移部分用的是線性插補,姿態部分用的方式還是四元素插補所用的方法:interp。

所以一條在兩個位姿之間的步長50的軌跡就可以產生了:

其中ts是乙個三維矩陣,前二維表示齊次變換矩陣,後一維表示時間步長:

我們可以看到路徑上第乙個位姿:

我們也可以tranimate(ts)看到它的變換過程:

我們可以得到這個軌跡的平移部分:

>>p=transl(ts);

可以得到乙個50x3的矩陣,每一行就是軌跡點的位置,我們可以繪製出來:

>>plot(p)

我們也可以得到其姿態矩陣:

>>rpy=tr2rpy(ts);

>>plot(rpy)

從上圖中可以看到平移運動在開始和結束的地方有速度和加速度的不連續。我們可以用tpoly和lspb函式來使其

連續。讓上述兩個函式作為trinterp函式的第三個引數。

>>ts=trinterp(t0,t1,lspb(0,1,50));

從圖中可以看出其速度和加速度都是連續的,但軌跡是沒有改變的。機械人工具箱提供了另外乙個比較方便的函式:

>>ts=ctraj(t0,t1,50);

前面部分討論的是如何產生有平移和旋轉速度分量的座標系運動。平移部分比較簡單,就是位置的變換速率,而姿

態的速度就有點複雜。

我們已經注意到旋轉的不可互換性,但是對於無窮小的角度改變姿態的乘法運算卻是可以互換的。我們可以用數值

來驗證一下:

從上面可以看到當旋轉的角度很小的時候,是可以相互交換順序的。我們也可以通過函式vex得到角度的變化:

那麼對於兩個相對變化很小的兩個姿態,我們可以用工具箱函式tr2delta來得到其之間的變化差值:

上面的d就是兩個姿態t0和t1之間的姿態差值,我們也可以用工具箱函式delta2tr來用這個差值得到t0經過這個差值變換之後的結果:

從上面可以看出這樣得到的結果和t1其實是很接近的,之所以會有差距是因為這個差值並不是足夠小,所以會有一

些差距。

matlab機械人工具箱學習

選了機械人的課,作業需要用matlab機械人工具箱robotic toolbox。作業要求是搭建乙個機械臂,然後在工作空間某個平面內寫乙個字,涉及到機械人的軌跡規劃,求逆解。步驟 1.搭建四軸scara機械人 dh模型i ad 1 02250 1 201750 23 00d0 4000 3 建立機械...

MATLAB機械人工具箱 1

工具箱版本不同下面的函式呼叫格式會有微弱不同但是大體一樣。以機械臂運動規劃分析為例子 1.link 呼叫格式 l link theta d a alpha sigma offset convention 其中theta為關節角,d為連桿偏移量,a為連桿長度,alpha為連桿轉角,sigma代表關節型...

機械人工具箱的安裝

機械人工具箱的安裝 機械人工具箱估計會一直更新下去,下面把工具箱管理者更新工具箱的位址貼上 上面有許多程式 的示例和一些 addpath c robotic tool box rvctools startup rvc 上面的這種方法在每次開啟matlab之後都需要手動輸入這兩條指令,未免有些繁瑣,下...