• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      0 引言

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

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

      1 窗體應(yīng)用程序開(kāi)發(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 桿又對(duì)桿件DC 的運(yùn)動(dòng)造成影響,主動(dòng)桿AB桿與ED 桿共同影響CF 桿的運(yùn)動(dòng),同時(shí)CF 桿通過(guò)鉸鏈配合反過(guò)來(lái)對(duì)AB 桿和ED 桿造成約束。因此,該機(jī)器人使用D-H 法建模困難,難以使用各類(lèi)可視化虛擬仿真軟件進(jìn)行虛擬仿真。在此基礎(chǔ)上,對(duì)該機(jī)器人模型進(jìn)行進(jìn)一步的程序開(kāi)發(fā)。

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

      為了在計(jì)算機(jī)中建立該機(jī)器人的模型,在程序中聲明一個(gè)機(jī)器人類(lèi),使用該機(jī)器人的實(shí)際物理尺寸對(duì)該類(lèi)進(jìn)行初始化設(shè)定。機(jī)器人各桿件的參數(shù)見(jiàn)表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ī)器人類(lèi)添加正運(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ī)器人模型及功能可視化,須開(kāi)發(fā)預(yù)覽模塊。該模塊由機(jī)器人模塊根據(jù)主動(dòng)關(guān)節(jié)角或末端執(zhí)行器位置能唯一地確定機(jī)器人各桿件的位姿,通過(guò)畫(huà)圖模塊依次將機(jī)器人各桿件和端點(diǎn)描繪出來(lái)。以及通過(guò)坐標(biāo)系轉(zhuǎn)換模塊,將三維的機(jī)器人的模型在二維平面內(nèi)通過(guò)等軸測(cè)視圖展現(xiàn)出來(lái)。如圖2 所示是預(yù)覽模塊展現(xiàn)的機(jī)器人模型,預(yù)覽模塊對(duì)程序調(diào)試具有很大的意義,對(duì)正在開(kāi)發(fā)的功能有參考意義。更真實(shí)的模型則要對(duì)Solid Works 進(jìn)行二次開(kāi)發(fā)后獲得。

      圖2 預(yù)覽界面

      1.3 虛擬仿真模塊

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

      1.4 人機(jī)交互界面

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

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

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

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

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

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

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

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

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

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

      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 庫(kù)中一種選擇對(duì)象方法。

      swDisplayDimension//尺寸對(duì)象,對(duì)其進(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)畫(huà)效果的可視化虛擬仿真,當(dāng)建立好坐標(biāo)系以后,基于SketchSegment API 可以將機(jī)器人末端執(zhí)行器的路徑展現(xiàn)出來(lái)。

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

      為了驗(yàn)證所開(kāi)發(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),并畫(huà)出末端執(zhí)行器所行進(jìn)的路徑,整個(gè)過(guò)程以動(dòng)畫(huà)的形式表現(xiàn)。然后按下打開(kāi)Solid Works 按鈕,等到打開(kāi)三維界面,再按下三維仿真按鈕,根據(jù)虛擬仿真求得的路徑,通過(guò)API 接口控制機(jī)器人主動(dòng)關(guān)節(jié)角的角度值,讓機(jī)器人在三維中走出了對(duì)應(yīng)的路徑,并通過(guò)API 接口使用三維草圖功能繪畫(huà)出運(yùn)動(dòng)所走路徑,如圖6 所示。

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

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

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

      4 結(jié)語(yǔ)

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

      猜你喜歡
      窗體預(yù)覽位姿
      新品預(yù)覽
      試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
      檔案天地(2019年5期)2019-06-12 05:12:02
      11月在拍電視劇預(yù)覽表
      電視指南(2016年11期)2016-12-20 22:09:38
      基于共面直線(xiàn)迭代加權(quán)最小二乘的相機(jī)位姿估計(jì)
      基于CAD模型的單目六自由度位姿測(cè)量
      小型四旋翼飛行器位姿建模及其仿真
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      bauma China 2014展前預(yù)覽
      基于幾何特征的快速位姿識(shí)別算法研究
      巧設(shè)WPS窗體控件讓表格填寫(xiě)更規(guī)范
      香港 | 恩平市| 临海市| 鹤岗市| 成都市| 绍兴市| 林甸县| 潞城市| 宣威市| 贺兰县| 沅江市| 子长县| 招远市| 色达县| 瑞安市| 华宁县| 进贤县| 若尔盖县| 柳河县| 桃源县| 马关县| 青州市| 唐山市| 南投市| 宜兰县| 中超| 双流县| 莱芜市| 西林县| 鞍山市| 托克逊县| 乌审旗| 靖远县| 明溪县| 铅山县| 滨海县| 益阳市| 井研县| 嘉荫县| 右玉县| 桦川县|