国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

變胞式碼垛機(jī)器人可視化虛擬仿真平臺開發(fā)研究

2022-02-10 12:23何思民董奕辰陳輝慶王汝貴
裝備制造技術(shù) 2022年11期
關(guān)鍵詞:窗體預(yù)覽位姿

何思民,董奕辰,陳輝慶,王汝貴

(廣西大學(xué) 機(jī)械工程學(xué)院,廣西 南寧 530004)

0 引言

工業(yè)機(jī)器人影響到生活的方方面面,是當(dāng)今社會不可缺少的一部分,為了設(shè)計(jì)出更好的工業(yè)機(jī)器人以及對設(shè)計(jì)出的機(jī)器人進(jìn)行改進(jìn),虛擬仿真技術(shù)必不可少,在虛擬的環(huán)境中對機(jī)器人進(jìn)行研究,可以節(jié)省大量的人力物力。傳統(tǒng)的可視化虛擬仿真存在的一個(gè)比較大的缺點(diǎn)是缺乏對所有種類機(jī)器人的泛用性,MATLAB 機(jī)器人工具箱只適用于D-H 法建模的機(jī)器人,ROS 機(jī)器人系統(tǒng)提供了許多開源的數(shù)據(jù)庫以及API 接口,但是其可視化虛擬仿真功能往往也是適用于D-H 法建模的機(jī)器人。造成可視化虛擬仿真軟件泛用性差的原因在于,可視化仿真展現(xiàn)機(jī)器人的三維模型是要確定機(jī)器人每一個(gè)桿件的位姿,通過D-H法建模的機(jī)器人可以很方便地逐級將各關(guān)節(jié)的兩端點(diǎn)位置以及該桿件相對于坐標(biāo)系原點(diǎn)的矢量求解得到,從而唯一地確定其機(jī)器人桿件位姿,此時(shí)可視化仿真軟件再通過計(jì)算機(jī)圖形技術(shù),將機(jī)器人的外形展現(xiàn)出來。而不方便使用D-H 法建模的機(jī)器人,其確定各桿件位姿的運(yùn)動(dòng)學(xué)方程則需要根據(jù)機(jī)器人的結(jié)構(gòu)進(jìn)行設(shè)計(jì)。

而Solid Works 軟件擁有強(qiáng)大的配合功能,通過簡單的幾個(gè)配合約束,可以唯一地確定機(jī)器人各桿件的位姿,其對于所有類型的機(jī)器人,在運(yùn)動(dòng)學(xué)建模方面都有良好的適應(yīng)性,但是Solid Works 的仿真功能較為薄弱,不少學(xué)者對其仿真功能進(jìn)行開發(fā)[1,2]?;赩isual Studio 編譯環(huán)境,使用C#語言,開發(fā)窗體應(yīng)用程序,C#語言便于開發(fā)各項(xiàng)功能,在窗體應(yīng)用程序中內(nèi)置這些功能,比如說運(yùn)動(dòng)學(xué)建模和虛擬仿真等,然后對Solid Works 進(jìn)行二次開發(fā),通過其豐富的API接口,將程序中的各項(xiàng)功能可視化地展現(xiàn)出來,搭建出可視化虛擬仿真平臺,方便以后進(jìn)一步深入研究機(jī)器人。

1 窗體應(yīng)用程序開發(fā)

1.1 機(jī)器人模型模塊

實(shí)驗(yàn)室團(tuán)隊(duì)已經(jīng)研制出一種新型可控變胞式碼垛機(jī)器人,并制作出實(shí)物樣機(jī)[3,4],以及分析其運(yùn)動(dòng)學(xué)[5]和控制程序[6]。該機(jī)器人的物理樣機(jī)和機(jī)構(gòu)如圖1 所示,其中電機(jī)一驅(qū)動(dòng)AB 桿運(yùn)動(dòng),電機(jī)二驅(qū)動(dòng)ED 桿運(yùn)動(dòng),ED 桿又對桿件DC 的運(yùn)動(dòng)造成影響,主動(dòng)桿AB桿與ED 桿共同影響CF 桿的運(yùn)動(dòng),同時(shí)CF 桿通過鉸鏈配合反過來對AB 桿和ED 桿造成約束。因此,該機(jī)器人使用D-H 法建模困難,難以使用各類可視化虛擬仿真軟件進(jìn)行虛擬仿真。在此基礎(chǔ)上,對該機(jī)器人模型進(jìn)行進(jìn)一步的程序開發(fā)。

圖1 機(jī)器人物理樣機(jī)和機(jī)構(gòu)

為了在計(jì)算機(jī)中建立該機(jī)器人的模型,在程序中聲明一個(gè)機(jī)器人類,使用該機(jī)器人的實(shí)際物理尺寸對該類進(jìn)行初始化設(shè)定。機(jī)器人各桿件的參數(shù)見表1。其中茲1 是主動(dòng)桿件AB的轉(zhuǎn)動(dòng)角度,茲2 是主動(dòng)桿件ED的轉(zhuǎn)動(dòng)角度,準(zhǔn)1是底部電機(jī)的轉(zhuǎn)動(dòng)角度,準(zhǔn)2是機(jī)器人末端執(zhí)行器的回轉(zhuǎn)角度。然后為該機(jī)器人類添加正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)模塊,當(dāng)輸入一組主動(dòng)關(guān)節(jié)角角度或機(jī)器人末端位姿之后,可以唯一確定機(jī)器人的位姿。

表1 機(jī)械臂尺寸和主動(dòng)關(guān)節(jié)角取值范圍

1.2 預(yù)覽模塊

為了將計(jì)算機(jī)程序中的機(jī)器人模型及功能可視化,須開發(fā)預(yù)覽模塊。該模塊由機(jī)器人模塊根據(jù)主動(dòng)關(guān)節(jié)角或末端執(zhí)行器位置能唯一地確定機(jī)器人各桿件的位姿,通過畫圖模塊依次將機(jī)器人各桿件和端點(diǎn)描繪出來。以及通過坐標(biāo)系轉(zhuǎn)換模塊,將三維的機(jī)器人的模型在二維平面內(nèi)通過等軸測視圖展現(xiàn)出來。如圖2 所示是預(yù)覽模塊展現(xiàn)的機(jī)器人模型,預(yù)覽模塊對程序調(diào)試具有很大的意義,對正在開發(fā)的功能有參考意義。更真實(shí)的模型則要對Solid Works 進(jìn)行二次開發(fā)后獲得。

圖2 預(yù)覽界面

1.3 虛擬仿真模塊

為了對機(jī)器人進(jìn)行虛擬仿真和對模型模塊以及預(yù)覽模塊進(jìn)行檢驗(yàn),開發(fā)虛擬仿真模塊,在窗體程序界面中輸入各個(gè)關(guān)鍵點(diǎn)的坐標(biāo),機(jī)器人末端執(zhí)行器依次通過各個(gè)關(guān)鍵點(diǎn),且用動(dòng)畫的形式展現(xiàn)出來,并且在機(jī)器人運(yùn)動(dòng)的過程中要實(shí)時(shí)展現(xiàn)機(jī)器人的關(guān)鍵信息,包括各主動(dòng)關(guān)節(jié)角的角度值和機(jī)器人末端執(zhí)行器的位置。通過如下方法實(shí)現(xiàn):根據(jù)機(jī)器人數(shù)學(xué)模型運(yùn)動(dòng)正解和逆解,對每一個(gè)時(shí)刻下的機(jī)器人的新位姿進(jìn)行求解,實(shí)時(shí)更新機(jī)器人位置。使用工具箱中的Timer控件,每隔若干時(shí)間計(jì)算一次,比如設(shè)定100 ms 求解一次機(jī)器人位姿,并更新預(yù)覽界面的圖形,便可以實(shí)現(xiàn)虛擬仿真的動(dòng)畫展現(xiàn)效果。

1.4 人機(jī)交互界面

為了實(shí)現(xiàn)上述各模塊,需要對大量函數(shù)進(jìn)行重復(fù)調(diào)用,為了減少代碼冗余度,將這些函數(shù)進(jìn)行封裝處理,封裝成一個(gè)個(gè)類,在有需要時(shí)再進(jìn)行調(diào)用。按照模塊化的思想,將各項(xiàng)功能總結(jié)成若干的按鈕排布在人機(jī)交互界面上,每一個(gè)功能按鈕背后都是大量函數(shù)的相互調(diào)用。如圖3 所示,是開發(fā)的窗體應(yīng)用程序的界面,日后根據(jù)實(shí)際需要,可以增減相對應(yīng)的功能,以方便對機(jī)器人的研究。

圖3 人機(jī)交互界面

2 對Solid Works 進(jìn)行二次開發(fā)

按照機(jī)器人實(shí)際尺寸創(chuàng)建Solid Works 零件并裝配成裝配體,如圖4 所示。

圖4 Solid Works 機(jī)器人三維模型

基于Solid Works 強(qiáng)大的API 接口功能,可以很方便使用C#等語言對Solid Works 進(jìn)行二次開發(fā)。這里給出關(guān)鍵的幾個(gè)API 接口和偽代碼。

public SldWorks swApp = new SldWorks();//創(chuàng)建變量swApp,設(shè)swApp 為新的Solid Works 實(shí)體對象。

ModelDoc2 swDoc = null;//初始化活動(dòng)文檔對象類API。

SketchSegment skSegment = null;//草 圖 管 理 類API,創(chuàng)建一個(gè)變量對象以使用草圖類下面的方法。

bool boolstatus = false;//用于選中某對象,比如:

boolstatus = swDoc.Extension.SelectByID2(“角度1”,“MATE”,0,0,0,false,0,null,0);//選中主動(dòng)關(guān)節(jié)角-角 度1,boolstatus 是 選 中 狀 態(tài),SelectByID2 是Solid Works 的API 庫中一種選擇對象方法。

swDisplayDimension//尺寸對象,對其進(jìn)行操作可以將主動(dòng)關(guān)節(jié)角的值改變以驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng)。

基于上述的幾個(gè)API,Solid Works 配合功能中的機(jī)器人各個(gè)主動(dòng)關(guān)節(jié)角的角度可以隨著窗體應(yīng)用程序的控制而改變,主動(dòng)關(guān)節(jié)角改變,則機(jī)器人的位姿發(fā)生改變,當(dāng)窗體應(yīng)用程序每間隔一段時(shí)間改變一次機(jī)器人的位姿,可以實(shí)現(xiàn)動(dòng)畫效果的可視化虛擬仿真,當(dāng)建立好坐標(biāo)系以后,基于SketchSegment API 可以將機(jī)器人末端執(zhí)行器的路徑展現(xiàn)出來。

3 虛擬仿真實(shí)驗(yàn)

為了驗(yàn)證所開發(fā)程序是否能夠?qū)崿F(xiàn)預(yù)期功能,進(jìn)行可視化虛擬仿真實(shí)驗(yàn)。給定路徑上的幾個(gè)關(guān)鍵節(jié)點(diǎn)(表2)。在窗體應(yīng)用程序中按下路徑規(guī)劃按鈕,預(yù)覽界面如圖5 所示。機(jī)器人依次沿著這幾個(gè)節(jié)點(diǎn)前進(jìn),并畫出末端執(zhí)行器所行進(jìn)的路徑,整個(gè)過程以動(dòng)畫的形式表現(xiàn)。然后按下打開Solid Works 按鈕,等到打開三維界面,再按下三維仿真按鈕,根據(jù)虛擬仿真求得的路徑,通過API 接口控制機(jī)器人主動(dòng)關(guān)節(jié)角的角度值,讓機(jī)器人在三維中走出了對應(yīng)的路徑,并通過API 接口使用三維草圖功能繪畫出運(yùn)動(dòng)所走路徑,如圖6 所示。

圖5 虛擬仿真窗體程序的界面和虛擬仿真預(yù)覽

圖6 窗體程序控制下的可視化虛擬仿真

表2 虛擬仿真過程中關(guān)鍵點(diǎn)末端位置和主動(dòng)關(guān)節(jié)角度

4 結(jié)語

針對可控變胞式碼垛機(jī)器人,基于Visual Studio編譯環(huán)境,使用C#語言開發(fā)窗體應(yīng)用程序,建立機(jī)器人模型,開發(fā)虛擬仿真功能,開發(fā)預(yù)覽功能,并對Solid Works 進(jìn)行二次開發(fā),將程序?qū)崿F(xiàn)的功能在Solid Works 中展現(xiàn)出來,從而達(dá)到了可視化仿真的效果。并進(jìn)行虛擬仿真實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果驗(yàn)證了搭建的可視化虛擬仿真平臺能滿足機(jī)器人的可視化虛擬仿真需求,為以后繼續(xù)開發(fā)研究變胞式碼垛機(jī)器人打下基礎(chǔ)。

猜你喜歡
窗體預(yù)覽位姿
融合二維圖像和三維點(diǎn)云的相機(jī)位姿估計(jì)
新品預(yù)覽
船舶清理機(jī)器人定位基準(zhǔn)位姿測量技術(shù)研究
試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
優(yōu)化ORB 特征的視覺SLAM
11月在拍電視劇預(yù)覽表
bauma China 2014展前預(yù)覽
基于幾何特征的快速位姿識別算法研究
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
WinCE.net下圖形用戶界面的開發(fā)