日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

遨博协作机器人ROS开发 - 机械臂复杂轨迹规划

發(fā)布時間:2024/3/24 编程问答 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 遨博协作机器人ROS开发 - 机械臂复杂轨迹规划 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一、簡介

二、環(huán)境版本

三、學(xué)習(xí)目標(biāo)

四、知識儲備

?五、任務(wù)實施

六、任務(wù)拓展

?七、課堂小結(jié)

?八、課后練習(xí)


一、簡介

大家好,歡迎關(guān)注遨博學(xué)院帶來的系列技術(shù)分享文章(協(xié)作機(jī)器人ROS開發(fā)),今天我們來學(xué)習(xí)一下“機(jī)械臂復(fù)雜軌跡規(guī)劃”。

二、環(huán)境版本

  • 主機(jī)系統(tǒng)版本:Windwos10 64位
  • 處理器型號:Intel-i7
  • 虛擬機(jī)版本:VMware Workstation 16 Pro
  • 虛擬機(jī)系統(tǒng):Ubuntu 18.04.6 LTS
  • ROS版本:Melodic

三、學(xué)習(xí)目標(biāo)

四、知識儲備

下面開始介紹本節(jié)內(nèi)容的知識點:

1.MoveIt!的正向運(yùn)動學(xué)

通過MoveIt!的API接口控制機(jī)械臂運(yùn)動,程序中一般是通過設(shè)置機(jī)械臂末端需要到達(dá)的位姿,然后規(guī)劃路徑并執(zhí)行來控制機(jī)械臂運(yùn)動的,這樣可以保證每次末端都會運(yùn)動到指定的位姿,但是,機(jī)械臂6個關(guān)節(jié)的姿態(tài)每次規(guī)劃并不一定相同。

如下方兩個示意圖所示,機(jī)械臂具有相同的末端位姿,但是具備不同的關(guān)節(jié)角。

?通過機(jī)械臂末端的位姿來計算機(jī)器人運(yùn)動的路徑,其實是一個逆運(yùn)動學(xué)的過程,如果需要每次機(jī)械臂運(yùn)動后的整體姿態(tài)是固定的,就需要使用正運(yùn)動學(xué)過程,如下列代碼所示,設(shè)置的目標(biāo)不是末端的位姿,而是6個關(guān)節(jié)的角度。

需要注意的是,在ROS中角度使用的單位是弧度,而在機(jī)械臂示教器中使用的單位是角度,需要進(jìn)行單位的轉(zhuǎn)換。

設(shè)置關(guān)節(jié)角為目標(biāo)姿態(tài)時需要調(diào)用setJointValueTarget函數(shù)。

?2.圓弧軌跡規(guī)劃

在MoveIt!規(guī)劃中,圓弧軌跡插補(bǔ)API是未提供的。實際應(yīng)用里,例如焊接等任務(wù)需要圓弧軌跡,那么就需要自行實現(xiàn)。方法如下圖所示,是用很多直線段模擬圓弧,取點越多越接近實際圓弧。在圓弧上均勻采樣,將位置依次添加到路點,最后調(diào)用直線路徑規(guī)劃API實現(xiàn)圓弧運(yùn)動,實現(xiàn)方法如右側(cè)代碼所示。

3.軌跡重定義

如果對規(guī)劃出來的軌跡不是很滿意,可以在“plan”和“execute”之間對軌跡進(jìn)行修改。這里以刪除軌跡中的中間點為例,對軌跡進(jìn)行重定義。

首先調(diào)用MoveIt!的API規(guī)劃得到一條路徑plan(軌跡規(guī)劃),如下列代碼所示:

?接著調(diào)用右側(cè)代碼中實現(xiàn)的函數(shù),delete_trajectory(plan, 10);,這是對plan每隔10個點刪除一個,完成軌跡重定義,當(dāng)然如果刪除的點太多,會造成真實機(jī)械臂運(yùn)動產(chǎn)生卡頓和抖動

?4.多軌跡連續(xù)運(yùn)動

如果要一次運(yùn)動多種復(fù)雜的軌跡,使用前面的方法,需要每次規(guī)劃路徑,然后等待機(jī)械臂運(yùn)動完成,再次規(guī)劃下一條路徑,如此往復(fù)。在執(zhí)行每條路徑后,要規(guī)劃下一條路徑,這必然會導(dǎo)致計算路徑耗時所產(chǎn)生的停頓,如果計算機(jī)的運(yùn)算能力不高,這種停頓時間會更加明顯。

如何讓機(jī)械臂在各段軌跡之間不停頓,一氣呵成完成所有軌跡的運(yùn)動?MoveIt!本身是沒有此功能的,因為MoveIt!規(guī)劃出來的軌跡一定是速度從0到0的軌跡,我們需要重新組合API的調(diào)用來實現(xiàn)多軌跡連續(xù)運(yùn)動。

實現(xiàn)方法是將規(guī)劃得到的多條軌跡拼接成一條,然后對這一條軌跡中的速度,加速度進(jìn)行重新規(guī)劃,成為一條完整的軌跡,關(guān)鍵就在于如何重規(guī)劃。

下面給出用時間最優(yōu)算法對拼接的軌跡進(jìn)行重規(guī)劃,當(dāng)然也可以用其它算法實現(xiàn)。

?下列是多條軌跡連續(xù)規(guī)劃示例代碼,生成新軌跡,然后就可以控制機(jī)械臂運(yùn)動。

代碼流程為首先定義一個軌跡變量trajectory,接著將已經(jīng)規(guī)劃好的路徑中的每個點加入到trajectory中,重復(fù)此操作加入所有規(guī)劃的軌跡,然后將所有的軌跡點重新規(guī)劃,生成新的軌跡trajectory,最后將新軌跡賦值到規(guī)劃變量中。

?5.修改超時運(yùn)動限制

MoveIt!對于機(jī)械臂運(yùn)動一條軌跡的時間是有默認(rèn)限制的,如果采用多軌跡連續(xù)運(yùn)動,那么會認(rèn)為這是一條完整的軌跡,一般復(fù)雜軌跡運(yùn)動的時間是比較長的,所以需要修改這個限制,以防超時導(dǎo)致的報錯,方法如下。

修改AUBO-E5的MoveIt功能包下launch文件夾下的trajectory_execution.launch.xml文件,將執(zhí)行的超時時間修改為20,單位是秒,如果在運(yùn)行時報timeout的錯誤,也和機(jī)械臂運(yùn)行速度有關(guān),可適當(dāng)增大這個數(shù)值。

在下圖所示的位置進(jìn)行修改,需要注意的是,軌跡執(zhí)行時間限制的修改最好經(jīng)過測試并符合實際需求。

?五、任務(wù)實施

接下來,我們來看下通過機(jī)械臂跳舞案例,展現(xiàn)正向運(yùn)動學(xué)、軌跡重定義、多軌跡連續(xù)運(yùn)動等內(nèi)容。

12.機(jī)械臂復(fù)雜軌跡規(guī)劃

六、任務(wù)拓展

設(shè)置機(jī)械臂速度與加速度限制。

為了使機(jī)械臂舞蹈運(yùn)動速度和加速度更快,需要修改AUBO-E5的MoveIt功能包下config文件夾下的joint_limits.yaml文件,如右圖所示,這里可以設(shè)置機(jī)械臂6個關(guān)節(jié)最大速度和加速度。

此文件內(nèi)內(nèi)參數(shù)的含義如下:

  • has_velocity_limits:速度限制是否生效,true代表生效,false代表不生效,生效時才能控制最大速度;
  • max_velocity:最大速度限制值,單位為弧度/s;
  • has_acceleration_limits:加速度限制是否生效,true代表生效,false代表不生效,生效時才能控制最大加速度;
  • max_acceleration:最大加速度限制值,單位為弧度/平方秒。

?七、課堂小結(jié)

下面我們進(jìn)行課堂小結(jié):

1.本節(jié)內(nèi)容主要針對MoveIt!的復(fù)雜路徑規(guī)劃,可以利用圓弧軌跡規(guī)劃、軌跡重定義、多軌跡連續(xù)運(yùn)動等方式完成需要的軌跡路徑,這在實際的應(yīng)用過程中是非常重要的。

2.真實機(jī)械臂的ROS最大速度與最大加速的限制調(diào)節(jié)需要以安全為主,特別是在調(diào)試開發(fā)階段,防止速度超出預(yù)期造成不必要的損失,同時也請放心,在ROS控制下,機(jī)械臂的碰撞停止等安全功能依然有效。

?八、課后練習(xí)

最后給大家布置一道課后習(xí)題。

1.利用圓弧軌跡規(guī)劃的方法,編寫1個在水平面規(guī)劃圓形末端軌跡的程序節(jié)點,并控制真實機(jī)械臂完成此軌跡的驗證。

2.利用軌跡重定義的方法,逐步刪除軌跡中的路點,觀察真實機(jī)械臂的運(yùn)動情況。

在接下來的ROS課程中,我們會講解遨博機(jī)械臂末端工具ROS驅(qū)動,歡迎持續(xù)關(guān)注。

總結(jié)

以上是生活随笔為你收集整理的遨博协作机器人ROS开发 - 机械臂复杂轨迹规划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。