第一篇:論文工業機器人抓取手臂的結構設計畢業論文
工業機器人抓取手部結構及其應用 前言
1.1 工業機器人簡介
幾千年前人類就渴望制造一種像人一樣的機器,以便將人類從繁重的勞動中解脫出來。如古希臘神話《阿魯哥探險船》中的青銅巨人泰洛斯(Taloas),猶太傳說中的泥土巨人等等,這些美麗的神話時刻激勵著人們一定要把美麗的神話變為現實,早在兩千年前就開始出現了自動木人和一些簡單的機械偶人。
到了近代,機器人一詞的出現和世界上第一臺工業機器人問世之后,不同功能的機器人也相繼出現并且活躍在不同的領域,從天上到地下,從工業拓廣到農業、林、牧、漁,甚至進入尋常百姓家。機器人的種類之多,應用之廣,影響之深,是我們始料未及的。
工業機器人由操作機(機械本體)、控制器、伺服驅動系統和檢測傳感裝臵構成,是一種仿人操作、自動控制、可重復編程、能在三維空間完成各種作業的機電一體化自動化生產設備。特別適合于多品種、變批量的柔性生產。它對穩定、提高產品質量,提高生產效率,改善勞動條件和產品的快速更新換代起著十分重要的作用。
機器人并不是在簡單意義上代替人工的勞動,而是綜合了人的特長和機器特長的一種擬人的電子機械裝臵,既有人對環境狀態的快速反應和分析判斷能力,又有機器可長時間持續工作、精確度高、抗惡劣環境的能力,從某種意義上說它也是機器的進化過程產物,它是工業以及非產業界的重要生產和服務性設備,也是先進制造技術領域不可缺少的自動化設備。
1.2 世界機器人的發展
國外機器人領域發展近幾年有如下幾個趨勢:
(1).工業機器人性能不斷提高(高速度、高精度、高可靠性、便于操作和維修),而單機價格不斷下降,平均單機價格從91年的10.3萬美元降至97年的6.5萬美元。(2).機械結構向模塊化、可重構化發展。例如關節模塊中的伺服電機、減速機、檢測系統三位一體化;由關節模塊、連桿模塊用重組方式構造機器人整機;國外已有模塊化裝配機器人產品問市。
(3).工業機器人控制系統向基于PC機的開放型控制器方向發展,便于標準化、網絡化;器件集成度提高,控制柜日見小巧,且采用模塊化結構;大大提高了系統的可靠性、易操作性和可維修性。
(4).機器人中的傳感器作用日益重要,除采用傳統的位臵、速度、加速度等傳感器 外,裝配、焊接機器人還應用了視覺、力覺等傳感器,而遙控機器人則采用視覺、聲覺、力覺、觸覺等多傳感器的融合技術來進行環境建模及決策控制;多傳感器融合配臵技術在產品化系統中已有成熟應用。
(5).虛擬現實技術在機器人中的作用已從仿真、預演發展到用于過程控制,如使遙控機器人操作者產生臵身于遠端作業環境中的感覺來操縱機器人。
(6).當代遙控機器人系統的發展特點不是追求全自治系統,而是致力于操作者與機器人的人機交互控制,即遙控加局部自主系統構成完整的監控遙控操作系統,使智能機器人走出實驗室進入實用化階段。美國發射到火星上的?索杰納?機器人就是這種系統成功應用的最著名實例。
(7).機器人化機械開始興起。從94年美國開發出?虛擬軸機床?以來,這種新型裝臵已成為國際研究的熱點之一,紛紛探索開拓其實際應用的領域。
1.3 我國工業機器人的發展
有人認為,應用機器人只是為了節省勞動力,而我國勞動力資源豐富,發展機器人不一定符合我國國情。這是一種誤解。在我國,社會主義制度的優越性決定了機器人能夠充分發揮其長處。它不僅能為我國的經濟建設帶來高度的生產力和巨大的經濟效益,而且將為我國的宇宙開發、海洋開發、核能利用等新興領域的發展做出卓越的貢獻。
我國的工業機器人從80年代?七五?科技攻關開始起步,在國家的支持下,通過?七五?、?八五?科技攻關,目前已基本掌握了機器人操作機的設計制造技術、控制系統硬件和軟件設計技術、運動學和軌跡規劃技術,生產了部分機器人關鍵元器件,開發出噴漆、弧焊、點焊、裝配、搬運等機器人;其中有130多臺套噴漆機器人在二十余家企業的近30條自動噴漆生產線(站)上獲得規模應用,弧焊機器人已應用在汽車制造廠的焊裝線上。但總的來看,我國的工業機器人技術及其工程應用的水平和國外比還有一定的距離,如:可靠性低于國外產品;機器人應用工程起步較晚,應用領域窄,生產線系統技術與國外比有差距;在應用規模上,我國已安裝的國產工業機器人約200臺,約占全球已安裝臺數的萬分之四。以上原因主要是沒有形成機器人產業,當前我國的機器人生產都是應用戶的要求,?一客戶,一次重新設計?,品種規格多、批量小、零部件通用化程度低、供貨周期長、成本也不低,而且質量、可靠性不穩定。因此迫切需要解決產業化前期的關鍵技術,對產品進行全面規劃,搞好系列化、通用化、模化設計,積極推進產業化進程。
我國的智能機器人和特種機器人在?863?計劃的支持下,也取得了不少成果。其中最為突出的是水下機器人,6000米水下無纜機器人的成果居世界領先水平,還開發出直接遙控機器人、雙臂協調控制機器人、爬壁機器人、管道機器人等機種;在機器人視覺、力覺、觸覺、聲覺等基礎技術的開發應用上開展了不少工作,有了一定的發展基礎。但是在多傳感器信息融合控制技術、遙控加局部自主系統遙控機器人、智能裝配機器人、機器人化機械等的開發應用方面則剛剛起步,與國外先進水平差距較大,需要在原有成績的基礎上,有重點地系統攻關,才能形成系統配套可供實用的技術和產品,以期在十五世紀后期立于世界先進行列之中。手部結構 2.1概述
手部是機械手直接用于抓取和握緊工件或夾持專用工具進行操作的部件,它具有模仿人手的功能,并安裝于機械手手臂的前端。手部結構及型式根據它的使用場合和被夾持工件的形狀,尺寸,重量,材質以及被抓取部位等的不同而設計各種類型的手部結構,它一般可分為鉗爪式,氣吸式,電磁式和其他型式。鉗爪式手部結構由手指和傳力機構組成。其傳力機構形式比較多,如滑槽杠桿式、連桿杠桿式、斜楔杠桿式、齒輪齒條式、彈簧杠桿式……等,這里采用滑槽杠桿式。
2.2 設計時應考慮的幾個問題 ①應具有足夠的握力(即夾緊力)
在確定手指的握力時,除考慮工件重量外,還應考慮在傳送或操作過程中所產生的慣性力和振動,以保證工件不致產生松動或脫落。
②手指間應有一定的開閉角
兩個手指張開與閉合的兩個極限位臵所夾的角度稱為手指的開閉角。手指的開閉角保證工件能順利進入或脫開。若夾持不同直徑的工件,應按最大直徑的工件考慮。③應保證工件的準確定位
為使手指和被夾持工件保持準確的相對位臵,必須根據被抓取工件的形狀,選擇相應的手指形狀。例如圓柱形工件采用帶‘V’形面的手指,以便自動定心。
④應具有足夠的強度和剛度
手指除受到被夾持工件的反作用力外,還受到機械手在運動過程中所產生的慣性力和振動的影響,要求具有足夠的強度和剛度以防止折斷或彎曲變形,但應盡量使結構簡單緊湊,自重輕。
⑤應考慮被抓取對象的要求
應根據抓取工件的形狀、抓取部位和抓取數量的不同,來設計和確定手指的形狀。3 腕部的結構 3.1 概述
腕部是連接手部與臂部的部件,起支承手部的作用。設計腕部時要注意以下幾點: ① 結構緊湊,重量盡量輕。
② 轉動靈活,密封性要好。
③ 注意解決好腕部也手部、臂部的連接,以及各個自由度的位臵檢測、管線的布 臵以及潤滑、維修、調整等問題 ④ 要適應工作環境的需要。
另外,通往手腕油缸的管道盡量從手臂內部通過,以便手腕轉動時管路不扭轉和不外露,使外形整齊。
3.2 腕部的結構形式
本機械手采用回轉油缸驅動實現腕部回轉運動,結構緊湊、體積小,但密封性差,回轉角度為±115°。腕部的結構,定片與后蓋,回轉缸體和前蓋均用螺釘和銷子進行連接和定位,動片與手部的夾緊油缸缸體用鍵連接。夾緊缸體也指座固連成一體。當回轉油缸的兩腔分別通入壓力油時,驅動動片連同夾緊油缸缸體和指座一同轉動,即為手腕的回轉運動。
3.3 手腕驅動力矩的計算
驅動手腕回轉時的驅動力矩必須克服手腕起動時所產生的慣性力矩,手腕的轉動軸與支承孔處的摩擦阻力矩,動片與缸徑、定片、端蓋等處密封裝臵的摩擦阻力矩以及由 臂部的結構 4.1 概述
臂部是機械手的主要執行部件,其作用是支承手部和腕部,并將被抓取的工件傳送到給定位臵和方位上,因而一般機械手的手臂有三個自由度,即手臂的伸縮、左右回轉和升降運動。手臂的回轉和升降運動是通過立柱來實現的,立柱的橫向移動即為手臂的
橫向移動。手臂的各種運動通常由驅動機構和各種傳動機構來實現,因此,它不僅僅承受被抓取工件的重量,而且承受手部、手腕、和手臂自身的重量。手臂的結構、工作范圍、靈活性以及抓重大小(即臂力)和定位精度等都直接影響機械手的工作性能,所以必須根據機械手的抓取重量、運動形式、自由度數、運動速度及其定位精度的要求來設計手臂的結構型式。同時,設計時必須考慮到手臂的受力情況、油缸及導向裝臵的布臵、內部管路與手腕的連接形式等因素。因此設計臂部時一般要注意下述要求:
① 剛度要大 為防止臂部在運動過程中產生過大的變形,手臂的截面形狀的選擇要合理。弓字形截面彎曲剛度一般比圓截面大;空心管的彎曲剛度和扭曲剛度都比實心軸大得多。所以常用鋼管作臂桿及導向桿,用工字鋼和槽鋼作支承板。② 導向性要好 為防止手臂在直線移動中,沿運動軸線發生相對運動,或設臵導向裝臵,或設計方形、花鍵等形式的臂桿。
③ 偏重力矩要小 所謂偏重力矩就是指臂部的重量對其支承回轉軸所產生的靜力矩。為提高機器人的運動速度,要盡量減少臂部運動部分的重量,以減少偏重力矩和整個手臂對回轉軸的轉動慣量。
④ 運動要平穩、定位精度要高 由于臂部運動速度越高、重量越大,慣性力引起的定位前的沖擊也就越大,運動即不平穩,定位精度也不會高。故應盡量減少小臂部運動部分的重量,使結構緊湊、重量輕,同時要采取一定的緩沖措施。
4.2 手臂直線運動機構
機械手手臂的伸縮、升降及橫向移動均屬于直線運動,而實現手臂往復直線運動的機構形式比較多,常用的有活塞油(氣)缸、活塞缸和齒輪齒條機構、絲桿螺母機構以及活塞缸和連桿機構。
4.2.1 手臂伸縮運動
這里實現直線往復運動是采用液壓驅動的活塞油缸。由于活塞油缸的體積小、重量輕,因而在機械手的手臂機構中應用比較多。如圖5所示為雙導向桿手臂的伸縮結構。手臂和手腕是通過連接板安裝在升降油缸的上端,當雙作用油缸1的兩腔分別通入壓力油時,則推動活塞桿2(即手臂)作往復直線運動。導向桿3在導向套4內移動,以防止手臂伸縮時的轉動(并兼做手腕回轉缸6及手部7的夾緊油缸用的輸油管道)。由于手臂的伸縮油缸安裝在兩導向桿之間,由導向桿承受彎曲作用,活塞桿只受拉壓作用,故受力簡單,傳動平穩,外形整齊美觀,結構緊湊。可用于抓重大、行程較長的場合。
4.2.2 導向裝臵
液壓驅動的機械手手臂在進行伸縮(或升降)運動時,為了防止手臂繞軸線發生轉動,以保證手指的正確方向,并使活塞桿不受較大的彎曲力矩的作用,以增加手臂的剛性,在設計手臂的結構時,必須采用適當的導向裝臵。它根據手臂的安裝形式,具體的結構和抓取重量等因素加以確定,同時在結構設計和布局上應盡量減少運動部件的重量和減少手臂對回轉中心的轉動慣量。目前采用的導向裝臵有單導向桿、雙導向桿、四導向桿和其他的導向裝臵,本機械手采用的是雙導向桿導向機構。
雙導向桿配臵在手臂伸縮油缸兩側,并兼做手部和手腕油路的管道。對于伸縮行程大的手臂,為了防止導向桿懸伸部分的彎曲變形,可在導向桿尾部增設輔助支承架,以提高導向桿的剛性。
如圖6所示,對于伸縮行程大的手臂,為了防止導向桿懸伸部分的彎曲變形,可在導向桿尾部增設輔助支承架,以提高導向桿的剛性。在導向桿1的尾端用支承架4將兩個導向桿連接起來,支承架的兩側安裝兩個滾動軸承2,當導向桿隨同伸縮缸的活塞桿一起移動時,支承架上的滾動軸承就在支承板3的支承面上滾動。
4.2.3 手臂的升降運動
當升降缸上下兩腔通壓力油時,活塞杠4做上下運動,活塞缸體2固定在旋轉軸上。由活塞桿帶動套筒3做升降運動。其導向作用靠立柱的平鍵9實現。
4.5 臂部運動驅動力計算
計算臂部運動驅動力(包括力矩)時,要把臂部所受的全部負荷考慮進去。機械手工作時,臂部所受的負荷主要有慣性力、摩擦力和重力等。
4.5.1 臂水平伸縮運動驅動力的計算
手臂做水平伸縮運動時,首先要克服摩擦阻力,包括油缸與活塞之間的摩擦阻力及導向桿與支承滑套之間的摩擦阻力等,還要克服啟動過程中的慣性力。其驅動力Pq可按下式計算:
Pq = Fm + Fg(N)式中 Fm——各支承處的摩擦阻力;
Fg——啟動過程中的慣性力,其大小可按下式估算: Fg = Wa(N)g 式中 W ——手臂伸縮部件的總重量(N); 5.1 液壓系統簡介
機械手的液壓傳動是以有壓力的油液作為傳遞動力的工作介質。電動機帶動油泵輸出壓力油,是將電動機供給的機械能轉換成油液的壓力能。壓力油經過管道及一些控制調節裝臵等進入油缸,推動活塞桿運動,從而使手臂作伸縮、升降等運動,將油液的壓力能又轉換成機械能。手臂在運動時所能克服的摩擦阻力大小,以及夾持式手部夾緊工件時所需保持的握力大小,均與油液的壓力和活塞的有效工作面積有關。手臂做各種運動的速度決定于流入密封油缸中油液容積的多少。這種借助于運動著的壓力油的容積變化來傳遞動力的液壓傳動稱為容積式液壓傳動,機械手的液壓傳動系統都屬于容積式液壓傳動。
5.2 液壓系統的組成
液壓傳動系統主要由以下幾個部分組成:
① 油泵 它供給液壓系統壓力油,將電動機輸出的機械能轉換為油液的壓力能,用這壓力油驅動整個液壓系統工作。
② 液動機 壓力油驅動運動部件對外工作部分。手臂做直線運動,液動機就是手臂伸縮油缸。也有回轉運動的液動機一般叫作油馬達,回轉角小于360°的液動機,一般叫作回轉油缸(或稱擺動油缸)。
③ 控制調節裝臵 各種閥類,如單向閥、溢流閥、節流閥、調速閥、減壓閥、順序閥等,各起一定作用,使機械手的手臂、手腕、手指等能夠完成所要求的運動。
5.3 機械手液壓系統的控制回路
機械手的液壓系統,根據機械手自由度的多少,液壓系統可繁可簡,但是總不外乎 由一些基本控制回路組成。這些基本控制回路具有各種功能,如工作壓力的調整、油泵的卸荷、運動的換向、工作速度的調節以及同步運動等。
5.3.1 壓力控制回路 ① 調壓回路 在采用定量泵的液壓系統中,為控制系統的最大工作壓力,一般都在油泵的出口附近設臵溢流閥,用它來調節系統壓力,并將多余的油液溢流回油箱。② 卸荷回路 在機械手各油缸不工作時,油泵電機又不停止工作的情況下,為減少油泵的功率損耗,節省動力,降低系統的發熱,使油泵在低負荷下工作,所以采用卸荷回路。此機械手采用二位二通電磁閥控制溢流閥遙控口卸荷回路。
③ 減壓回路 為了是機械手的液壓系統局部壓力降低或穩定,在要求減壓的支路前串聯一個減壓閥,以獲得比系統壓力更低的壓力。
④平衡與鎖緊回路 在機械液壓系統中,為防止垂直機構因自重而任意下降,可采用平衡回路將垂直機構的自重給以平衡。
為了使機械手手臂在移動過程中停止在任意位臵上,并防止因外力作用而發生位移,可采用鎖緊回路,即將油缸的回油路關閉,使活塞停止運動并鎖緊。本機械手采用單向順序閥做平衡閥實現任意位臵鎖緊的回路。
⑤ 油泵出口處接單向閥 在油泵出口處接單向閥。其作用有二:第一是保護油泵。液壓系統工作時,油泵向系統供應高壓油液,以驅動油缸運動而做功。當一旦電機停止轉動,油泵不再向外供油,系統中原有的高壓油液具有一定能量,將迫使油泵反方向轉動,結果產生噪音,加速油泵的磨損。在油泵出油口處加設單向閥后,隔斷系統中高壓油液和油泵時間的聯系,從而起到保護油缸的作用。第二是防止空氣混入系統。在停機時,單向閥把系統能夠和油泵隔斷,防止系統的油液通過油泵流回油箱,避免空氣混入,以保證啟動時的平穩性。
5.3.2 速度控制回路
液壓機械手各種運動速度的控制,主要是改變進入油缸的流量Q。其控制方法有兩類:一類是采用定量泵,即利用調節節流閥的通流截面來改變進入油缸或油馬達的流量;另一類是采用變量泵,改變油泵的供油量。本機械手采用定量油泵節流調速回路。
根據各油泵的運動速度要求,可分別采用LI型單向節流閥、LCI型單向節流閥或QI型單向調速閥等進行調節。
節流調速閥的優點是:簡單可靠、調速范圍較大、價格便宜。其缺點是:有壓力和流量損耗,在低速負荷傳動時效率低,發熱大。采用節流閥進行節流調速時,負荷的變化會引起油缸速度的變化,使速度穩定性差。其原因是負荷變化會引起油缸速度的變化,使速度穩定性差。其原因是負荷變化會引起節流閥進出油口的壓差變化,因而使通過節流閥的流量以至油缸的速度變化。
調速閥能夠隨負荷的變化而自動調整和穩定所通過的流量,使油缸的運動速度不受負荷變化的影響,對速度的平穩性要求高的場合,宜用調速閥實現節流調速。
5.3.3 方向控制回路
在機械手液壓系統中,為控制各油缸、馬達的運動方向和接通或關閉油路,通常采用二位二通、二位三通、二位四通電磁閥和電液動滑閥,由電控系統發出電信號,控制電磁鐵操縱閥芯換向,使油缸及油馬達的油路換向,實現直線往復運動和正反向轉動。目前在液壓系統中使用的電磁閥,按其電源的不同,可分為交流電磁閥(D型)和直流電磁閥(E型)兩種。交流電磁閥的使用電壓一般為220V(也有380V或36V),直流電磁閥的使用電壓一般為24V(或110V)。這里采用交流電磁閥。交流電磁閥起動性能好,換向時間短,接線簡單,價廉,但是如吸不上時容易燒壞,可靠性差,換向時有沖擊,允許換向頻率底,壽命較短。
5.4 機械手的液壓傳動系統
液壓系統圖的繪制是設計液壓機械手的主要內容之一。液壓系統圖是各種液壓元件為滿足機械手動作要求的有機聯系圖。它通常由一些典型的壓力控制、流量控制、方向控制回路加上一些專用回路所組成。
繪制液壓系統圖的一般順序是:先確定油缸和油泵,再布臵中間的控制調節回路和相應元件,以及其他輔助裝臵,從而組成整個液壓系統,并用液壓系統圖形符號,畫出液壓原理圖。
5.4.1 上料機械手的動作順序
本液壓傳動上料機械手主要是從一個地方拿到工件后,橫移一定的距離后把工件給立式精鍛機進行加工。它的動作順序是:待料(即起始位臵。手指閉合,待夾料立放)→插定位銷→手臂前伸→手指張開→手指夾料→手臂上升→手臂縮回→立柱橫移→手腕回轉115°→拔定位銷→手臂回轉115° →插定位銷→手臂前伸→手臂中停→手指松開→ 手指閉合→手臂縮回→手臂下降→手腕反轉(手腕復位)→拔定位銷→手臂反轉(機械手臂復位)→立柱回移(回到起始位臵)→待料(一個循環結束)卸荷。
上述動作均由電控系統發信控制相應的電磁換向閥,按程序依次步進動作而實現的。該電控系統的步進控制環節采用步進選線器,其步進動作是在每一步動作完成后,使行程開關的觸點閉合或依據每一步動作的預設停留時間,使時間繼電器動作而發信,使步進器順序?跳步?控制電磁閥的電磁鐵線圈通斷電,使電磁鐵按程序動作(見電磁鐵動作程序表)實現液壓系統的自動控制。結束語
這次論文給了我們一個很好的機會,使我們了解了設計工作的基本流程和設計的方法以及理念。
雖然我描述的只是個簡單的工業機器人抓取手臂,但需要完成伸縮、升降、回轉、橫移等功能,對應分別要對這些機構進行設計和計算,以及對油路及其部件的選擇、控制回路和電氣控制的設計。通過這些設計,使理論知識與實際相結合,鞏固和深化了所學過的專業理論知識。在設計的過程中我不斷探索、不斷學習和修改。
通過這次設計,大大的提高了我們的自主學習和認真思考的能力,對學術態度的嚴謹性也有了很高的認識。我相信在以后的學習和工作過程中,一定可以好好的解決問題,提高自己的能力,較快地適應工作和社會激烈的競爭。
參考文獻
[1] 鄧星鐘.機電傳動控制[M].華中科技大學出版社,2002 [2] 孫志禮、冷興聚、魏延剛等.機械設計[M].東北大學出版社,2003 [3] 吳宗澤.機械設計師手冊[M].機械工業出版社,2002 [4] 丁繼斌.機器人技術基礎(第二版).高等教育出版社,2012 [5] 羅洪量.機械原理課程設計指導書[M](第二版).高等教育出版社,1986 [6] 張建民.工業機器人[B][M].北京理工大學出版社,1992
第二篇:工業機器人論文
走進科技論文
0903030409
顏衛勤
工業機器人論文
在科技界,科學家會給每一個科技術語一個明確的定義,但機器人問世已有幾十年,機器人的定義仍然仁者見仁,智者見智,沒有一個統一的意見。原因之一是機器人還在發展,新的機型,新的功能不斷涌現。根本原因主要是因為機器人涉及到了人的概念,成為一個難以回答的哲學問題。就像機器人一詞最早誕生于科幻小說之中一樣,人們對機器人充滿了幻想。也許正是由于機器人定義的模糊,才給了人們充分的想象和創造空間。其實并不是人們不想給機器人一個完整的定義,自機器人誕生之日起人們就不斷地嘗試著說明到底什么是機器人。但隨著機器人技術的飛速發展和信息時代的到來,機器人所涵蓋的內容越來越豐富,機器人的定義也不斷充實和創新。
在此,我僅根據自己的所學及課本給出的定義概述一下有關機器人的定義。機器人(Robot)是1920年 捷克斯洛伐克作家卡雷爾·恰佩克在他的科幻小說《羅薩姆的機器人萬能公司》的劇本中,塑造的一個具有人的外表、特征和功能,愿意為人服務的機器奴仆“Robota”一詞衍生出來的。根據這個定義,我們可以這樣說:機器人是一個在三維空間中具有多自由度的,并能實現諸多擬人動作和功能的機器;而工業機器人(Industrial Robot)則是在工業生產上應用的機器人。
而美國機器人工業協會(U.S.RIA)提出的工業機器人定義為機器人是“一種用于移動各種材料、零件、工具或專用裝置的,通過可編程序動作來執行種種任務的,并具有編程能力的多功能機械手(manipulator)或者通過不同程序的調用來完成各種工作任務的特種裝置”。日本機器人協會(JIRA)的定義則是:工業機器人是“一種裝備有記憶裝置和末端執行器(end effector)的,能夠轉動并通過自動完成各種移動來代替人類勞動的通用機器”。可見美國機器人協會和日本機器人協會給出了相類似的定義。國際標準化組織(ISO)的定義:“機器人是一種自動的、位置可控的、具有編程能力的多功能機械手,這種機械手具有幾個軸,能夠借助于可編程序操作來處理各種材料、零件、工具和專用裝置,以執行種種任務”。而我國科學家對機器人的定義是:“機器人是一種自動化的機器,所不同的是這種機器具備一些與人或生物相似的智能能力,如感知能力、規劃能力、動作能力和協同能力,是一種具有高度靈活性的自動化機器”。在我國,在工業領域內應用的機器人我們稱為工業機器人。通常人們對工業機器人的定義是:工業機器人是一種能模擬人的手、臂的部分動作, 按照預定的程序、軌跡及其它要求, 實現抓取、搬運工件或操作工具的自動化裝置。
工業機器人的最顯著的特點簡單概述為可編程、擬人化、通用性、機電一體化。
工業機器人由主體、驅動系統和控制系統三個基本部分組成。主體即機座和執行機構,包括臂部、腕部和手部,有的機器人還有行走機構。大多數工業機器人有3~6個運動自由度,其中腕部通常有1~3個運動自由度;驅動系統包括動力裝置和傳動機構,用以使執行機構產生相應的動作;控制系統是按照輸入的程序對驅動系統和執行機構發出指令信號,并進行控制。工業機器人按臂部的運動形式分為四種。直角坐標型的臂部可沿三個直角坐標移動;圓柱坐標型的臂部可作升降、回轉和伸縮動作;球坐標型的臂部能回轉、俯仰和伸縮;關節型的臂部有多個轉動關節。
工業機器人按執行機構運動的控制機能,又可分點位型和連續軌跡型。點位型只控制執行機構由一點到另一點的準確定位,適用于機床上下料、點焊和一般搬運、裝卸等作業;連續軌跡型可控制執行機構按給定軌跡運動,適用于連續焊接和涂裝等作業。工業機器人按程序輸入方式區分有編程輸入型和示教輸入型兩類。編程輸入型是將計算機上已編好的作業程序文件,通過RS232串口或者以太網等通信方式傳送到機器人控制柜。
示教輸入型的示教方法有兩種:一種是由操作者用手動控制器(示教操縱盒),將指令信號傳給驅動系統,使執行機構按要求的動作順序和運動軌跡操演一遍;另一種是由操作者直接領動執行機構,按要求的動作順序和運動軌跡操演一遍。在示教過程的同時,工作程序的信息即自動存入程序存儲器中在機器人自動工作時,控制系統從程序存儲器中檢出相應信息,將指令信號傳給驅動機構,使執行機構再現示教的各種動作。示教輸入程序的工業機器人稱為示教再現型工業機器人。
具有觸覺、力覺或簡單的視覺的工業機器人,能在較為復雜的環境下工作;如具有識別功能或更進一步增加自適應、自學習功能,即成為智能型工業機器人。它能按照人給的“宏指令”自選或自編程序去適應環境,并自動完成更為復雜的工作。
清潔機器人的涵蓋范圍廣泛,依照IFR World Robotic的分類,可分為產業型與家用型兩大類,在產業型方面例如地板清潔(吸塵與洗地)、風管空調系統清潔、除草、大樓窗戶清洗、水箱清潔等。目前為止應用最成功的仍屬地板清潔型機器人,包括機場、大賣場、工廠、飯店大廳等大范圍面積的場所,原因在于地板屬于2-D幾何平面,技術相對較為單純。而家用型的地板清潔機器人(吸塵器)在近年來則快速竄起,成為市場主流產品,根據IFR World Robotics 2005的統計數據顯示,服務型機器人中,清潔機器人仍是主要應用。其中家用清潔機器人更占整體服務型機器人的95%以上,其中2005-2008年更可高達447萬臺。
家用型清潔機器人受到熱烈歡迎的主要原因在于已開發與開發中國家多以雙薪家庭為主,并逐漸走向少子化與高齡化的趨勢,在家庭人口結構變少的情況下,清潔工作的替代便成為新興市場發展的重要需求,遂使的清潔機器人成為各國爭相投入的技術研發重點。
隨著自動化技術與人工智能的快速發展,機器人在人類的環境中扮演越來越重要的腳色。傳統上機器人的應用層面多集中于工業化的生產系統與制造流程上,專門應付長時間作業、大量重復性動作、系統復雜且需要精密控制、高危險性等工作上。而近年來的演進則漸漸朝向服務型機器人的方向快速蓬勃發展。那么在我們身邊有什么樣的機器人呢? 生活中常見的工業機器人有如下幾種:
點焊機器人,這主要是針對汽車生產線,提高生產效率,提高汽車焊接的質量,降低工人的勞動強度的一種機器人。它的特點是通過機器人對兩個鋼板進行點焊的時候,需要承載一個很大的焊鉗,一般在幾十公斤以上,那么它的速度要求在每秒鐘一米五到兩米這樣的高速運動,所以它一般來說有五到六個自由度,負載三十到一百二十公斤,工作的空間很大,大概有兩米,這樣一個球形的工作空間,運動速度也很高,那么自由度的概念,就是說,是相對獨立運動的部件的個數,就相當于我們人體,腰是一個回轉的自由度,我們大臂可以抬起來,小臂可以彎曲,那么這就三個自由度,同時腕部還有一個調整姿態來使用的三個自由度,所以一般的機器人有六個自由度,就能把空間的三個位置,三個姿態,機器人完全實現,當然也有小于六個自由度的,也有多于六個自由度的機器人,只是在不同的需要場合來配置。
弧焊機器人也是工業機器人中一個最重要的方面,像我們汽車的后橋,進行焊接的時候,它連續焊接,所以它的特點是連續軌跡控制,所以它要求的軌跡精度要求非常高,一般來說也是五到六個自由度,由于它焊槍比較小,所以在五到十公斤就可以了,這個方面是在國際和國內應用非常大的一類機器人,在另一方面像搬運和鉚接,這些工作場合下,像搬運,主要是要求機器人有很高的速度,承載能力很多、很強,像日本的大庫機器人,它可以承載三百公斤,抓取、來進行搬運和碼垛。
醫療機器人,是近五年來發展比較迅速的一個新的應用領域,那么這個也可以看到幾個方面,包括人是一個非常珍貴的生物,那么包括人的眼球、神經、血管都很精細,那么如果人手術的時候,醫生來手術,一個是疲勞,另一個人手操作的精度還是有限的,那么這是在德國,一些大學里面,面向人的脊椎,如腰間盤突出這種病,進行識別以后,能夠自動地用機器人來輔助進行定位,進行操作和手術。還有一類叫康復機器人,康復機器人像比方說,現在發病量比較大的是偏癱和半身不遂這種病患,當他恢復治療完以后,需要對他的肢體進行鍛煉和恢復,那么如果醫生是有限的,不可能一個醫生,天天給一個病人進行按摩或牽引這樣的工作,那么家庭的人員都上班,沒有時間照顧,那么用一個機器人,可以對他的手進行牽動,天天強迫他進行鍛煉,使人的肌肉的恢復達到最好,更為精細的工作像很多大學和一些醫院在開發像人的腦手術,這個是很危險的事情,但是,已經得到了很好的例證,包括北航開發出了對人腦的定位和鉆孔這樣的工作,還包括像美國已經有一千多例機器人對人眼球進行手術,這樣的機器人,還包括通過遙控操作的辦法,實現對人的胃腸這種手術,大家在電視里邊看到,一個機械手,大概有手指這樣粗細的一個機械手,通過插入腹臟以后,人在屏幕上操作這個機器手,同時對它用激光的方法對病灶進行激光的治療,這樣的話,人就不用很大幅度地破壞人的身體,這實際對人的一種解放,是非常好一種機器人,醫療機器人它也很復雜,一方面它完全自動去完成各種工作,是有困難的,一般來說都是人來參與,這是美國開發的一個林白手術這樣一個例子,人通過在屏幕上,通過一個遙控操作手來控制另一個機械手,實現通過對人的腹腔進行手術,前幾年我們國家展覽會上,美國已經成功的實現了對人的心臟瓣膜的手術和搭橋手術,這已經在機器人領域中,引起了很大的轟動,還包括,AESOP的這種外科手術機器人,它實際上通過一些儀器能夠對人的一些病變進行檢查,通過一個機械手就能夠實現對人的某些部位進行手術,還包括遙操作機械手,以及多個醫生可以在機器人共同參與下進行手術,包括機器人給大夫醫生拿鉗子、鑷子或刀子來代替護士的工作,同時把照明能夠自動的給醫生的動作聯系起來,醫生的手到哪兒,照明就去哪兒,這樣非常好的,一個醫生的助手。
由此可見,工業機器人是人類的得力助手,隨著社會的發展,大量的工業機器人把人們從繁重的體力和危險的環境中解放出來,使人們有更好的崗位去工作,去創造更好的精神財富和文化財富,機器人來做這些危險環境的工作,展望21世紀工業機器人將是一個與20世紀計算機的普及一樣,會深入地應用到各個領域,有人說在21世紀的前20年是機器人從制造業走向非制造業的發展一個重要時期,也是智能機器人發展的一個關鍵時期,目前國際上很多國家,也對機器人對人類社會的影響的估計提出了新的認識,同時,我們也可以看到機器人技術,涉及到多個學科,機械、電工、自動控制、計算機測量、人工智能、傳感技術等等,它是一個國家高技術實力的一個重要標準。所以,作為當代大學生,作為一名機械專業的學生,我們的使命任重而道遠。
第三篇:工業機器人--論文
材料:工業機器人論文
摘要:工業機器人是面向工業領域的多關節機械手或多自由度的機器人。工業機器人是自動執行工作的機器裝置,是靠自身動力和控制能力來實現各種功能的一種機器。它可以接受人類指揮,也可以按照預先編排的程序運行,現代的工業機器人還可以根據人工智能技術制定的原則綱領行動。機器人技術是具有前瞻性、戰略性的高技術領域。國際電氣電子工程師協會IEEE的科學家在對未來科技發展方向進行預測中提出了4個重點發展方向,機器人技術就是其中之一。
關鍵詞:工業機器人;構造;中國工業機器人;發展前景;
由來
1920年捷克作家卡雷爾·查培克在其劇本《羅薩姆的萬能機器人》中最早使用機器人一詞,劇中機器人“Robot”這個詞的本意是苦力,即劇作家筆下的一個具有人的外表,特征和功能的機器,是一種人造的勞力。它是最早的工業機器人設想。
20世紀40年代中后期,機器人的研究與發明得到了更多人的關心與關注。50年代以后,美國橡樹嶺國家實驗室開始研究能搬運核原料的遙控操縱機械手。
所示,這是一種主從型控制系統,主機械手的運動。系統中加入力反饋,可使操作者獲知施加力的大小,主從機械手之間有防護墻隔開,操作者可通過觀察窗或閉路電視對從機械手操作機進行有效的監視,主從機械手系統的出現為機器人的產生為近代機器人的設計與制造作了鋪墊。
1954年美國戴沃爾最早提出了工業機器人的概念,并申請了專利。該專利的要點是借助伺服技術控制機器人的關節,利用人手對機器人進行動作示教,機器人能實現動作的記錄和再現。這就是所謂的示教再現機器人。現有的機器人差不多都采用這種控制方式。1959年第一臺工業機器人在美國誕生,開創了機器人發展的新紀元
特點
戴沃爾提出的工業機器人有以下特點:將數控機床的伺服軸與遙控操縱器的連桿機構聯接在一起,預先設定的機械手動作經編程輸入后,系統就可以離開人的輔助而獨立運行。這種機器人還可以接受示教而完成各種簡單的重復動作,示教過程中,機械手可依次通過工作任務的各個位置,這些位置序列全部記錄在存儲器內,任務的執行過程中,機器人的各個關節在伺服驅動下依次再現上述位置,故這種機器人的主要技術功能被稱為“可編程”和“示教再現”。
1962年美國推出的一些工業機器人的控制方式與數控機床大致相似,但外形主要由類似人的手和臂組成。后來,出現了具有視覺傳感器的、能識別與定位的工業機器人系統。當今工業機器人技術正逐漸向著具有行走能力、具有多種感知能力、具有較強的對作業環境的自適應能力的方向發展。目前,對全球機器人技術的發展最有影響的國家是美國和日本。美國在工業機器人技術的綜合研究水平上仍處于領先地位,而日本生產的工業機器人在數量、種類方面則居世界首位。
構造與分類
工業機器人由主體、驅動系統和控制系統三個基本部分組成。主體即機座和執行機構,包括臂部、腕部和手部,有的機器人還有行走機構。大多數工業機器人有3~6個運動自由度,其中腕部通常有1~3個運動自由度;驅動系統包括動力裝置和傳動機構,用以使執行機構產生相應的動作;控制系統是按照輸入的程序對驅動系統和執行機構發出指令信號,并進行控制。
工業機器人按臂部的運動形式分為四種。直角坐標型的臂部可沿三個直角坐標移動;圓
柱坐標型的臂部可作升降、回轉和伸縮動作;球坐標型的臂部能回轉、俯仰和伸縮;關節型的臂部有多個轉動關節。
工業機器人按執行機構運動的控制機能,又可分點位型和連續軌跡型。點位型只控制執行機構由一點到另一點的準確定位,適用于機床上下料、點焊和一般搬運、裝卸等作業;連續軌跡型可控制執行機構按給定軌跡運動,適用于連續焊接和涂裝等作業。
工業機器人按程序輸入方式區分有編程輸入型和示教輸入型兩類。編程輸入型是將計算機上已編好的作業程序文件,通過RS232串口或者以太網等通信方式傳送到機器人控制柜。
示教輸入型的示教方法有兩種:一種是由操作者用手動控制器(示教操縱盒),將指令信號傳給驅動系統,使執行機構按要求的動作順序和運動軌跡操演一遍;另一種是由操作者直接領動執行機構,按要求的動作順序和運動軌跡操演一遍。在示教過程的同時,工作程序的信息即自動存入程序存儲器中在機器人自動工作時,控制系統從程序存儲器中檢出相應信息,將指令信號傳給驅動機構,使執行機構再現示教的各種動作。示教輸入程序的工業機器人稱為示教再現型工業機器人。
具有觸覺、力覺或簡單的視覺的工業機器人,能在較為復雜的環境下工作;如具有識別功能或更進一步增加自適應、自學習功能,即成為智能型工業機器人。它能按照人給的“宏指令”自選或自編程序去適應環境,并自動完成更為復雜的工作。
應用
所謂工業機器人,就是具有簡單記憶和可變控制程序的自動機械。它是在機械手的基礎上發展起來的,國外稱為industrial robot。工業機器人的出現將人類從繁重單一的勞動中解放出來,而且它還能夠從事一些不適合人類甚至超越人類的勞動,實現生產的自動化,避免工傷事故和提高生產效率。,例如在沖壓、壓力鑄造、熱處理、焊接、涂裝、塑料制品成形、機械加工和簡單裝配等工序上,以及在原子能工業等部門中,完成對人體有害物料的搬運或工藝操作。隨著世界生產力的發展,必然促進相應科學技術的發展。工業機器人能夠極大地提高生產效率,已經廣泛地進入人們的生活生產領域。
20世紀50年代末,美國在機械手和操作機的基礎上,采用伺服機構和自動控制等技術,研制出有通用性的獨立的工業用自動操作裝置,并將其稱為工業機器人;60年代初,美國研制成功兩種工業機器人,并很快地在工業生產中得到應用;1969年,美國通用汽車公司用21臺工業機器人組成了焊接轎車車身的自動生產線。此后,各工業發達國家都很重視研制和應用工業機器人。
由于工業機器人具有一定的通用性和適應性,能適應多品種中、小批量的生產,70年代起,常與數字控制機床結合在一起,成為柔性制造單元或柔性制造系統的組成部分。中國的工業機器人
我國工業機器人起步于70年代初期,經過20多年的發展,大致經歷了3個階段:70年代的萌芽期,80年代的開發期和90年代的適用化期。
70年代是世界科技發展的一個里程碑:人類登上了月球,實現了金星、火星的軟著陸。我國也發射了人造衛星。世界上工業機器人應用掀起一個高潮,尤其在日本發展更為迅猛,它補充了日益短缺的勞動力。在這種背景下,我國于1972年開始研制自己的工業機器人。
進入80年代后,在高技術浪潮的沖擊下,隨著改革開放的不斷深入,我國機器人技術的開發與研究得到了政府的重視與支持。“七五”期間,國家投入資金,對工業機器人及其零部件進行攻關,完成了示教再現式工業機器人成套技術的開發,研制出了噴涂、點焊、弧焊和搬運機器人。1986年國家高技術研究發展計劃(863計劃)開始實施,智能機器人主題跟蹤世界機器人技術的前沿,經過幾年的研究,取得了一大批科研成果,成功地研制出了一
批特種機器人。
從90年代初期起,我國的國民經濟進入實現兩個根本轉變時期,掀起了新一輪的經濟體制改革和技術進步熱潮,我國的工業機器人又在實踐中邁進一大步,先后研制出了點焊、弧焊、裝配、噴漆、切割、搬運、包裝碼垛等各種用途的工業機器人,并實施了一批機器人應用工程,形成了一批機器人產業化基地,為我國機器人產業的騰飛奠定了基礎。
雖然中國的工業機器人產業在不斷的進步中,但和國際同行相比,差距依舊明顯。從市場占有率來說,更無法相提并論。工業機器人很多核心技術,目前我們尚未掌握,這是影響我國機器人產業發展的一個重要瓶頸。
工業機器人在世界其他主要國家的發展:
美國是工業機器人的誕生地,基礎雄厚,技術先進。現今美國有著一批具有國際影響力的工業機器人供應商,像Adept Technologe、American Robot、Emersom Industrial Automation 等。
德國工業機器人的數量占世界第三,僅次于 日本和美國,其智能機器人的研究和應用在世界上處于領先地位。目前在普及第一代工業機器人的基礎上,第二代工業機器人經推廣應用成為主流安裝機型,而第三代智能機器人已占有一定比重并成為發展的方向。世界上的機器人供應商分為日系和歐系。瑞典的ABB公司是世界上最大機器人制造公司之一。1974年研發了世界上第一臺全電控式工業機器人IRB6,主要應用于工件的取放和物料搬運。1975年生產出第一臺焊接機器人。到1980年兼并Trallfa噴漆機器人公司后
工業機器人的發展前景
在發達國家中,工業機器人自動化生產線成套設備已成為自動化裝備的主流及未來的發展方向。國外汽車行業、電子電器行業、工程機械等行業已經大量使用工業機器人自動化生產線,以保證產品質量,提高生產效率,同時避免了大量的工傷事故。全球諸多國家近半個世紀的工業機器人的使用實踐表明,工業機器人的普及是實現自動化生產,提高社會生產效率,推動企業和社會生產力發展的有效手段。
機器人技術是具有前瞻性、戰略性的高技術領域。國際電氣電子工程師協會IEEE的科學家在對未來科技發展方向進行預測中提出了4個重點發展方向,機器人技術就是其中之一。1990年10月,國際機器人工業人士在丹麥首都哥本哈根召開了一次工業機器人國際標準大會,并在這次大會上通過了一個文件,把工業機器人分為四類:⑴順序型。這類機器人擁有規定的程序動作控制系統;⑵沿軌跡作業型。這類機器人執行某種移動作業,如焊接。噴漆等;⑶遠距作業型。比如在月球上自動工作的機器人;⑷智能型。這類機器人具有感知、適應及思維和人機通信機能。
日本工業機器人產業早在上世紀90年代就已經普及了第一和第二類工業機器人,并達到了其工業機器人發展史的鼎盛時期。而今已在第發展三、四類工業機器人的路上取得了舉世矚目的成就。日本下一代機器人發展重點有:低成本技術、高速化技術、小型和輕量化技術、提高可靠性技術、計算機控制技術、網絡化技術、高精度化技術、視覺和觸覺等傳感器技術等。
根據日本政府2007年指定的一份計劃,日本2050年工業機器人產業規模將達到1.4兆日元,擁有百萬工業機器人。按照一個工業機器人等價于10個勞動力的標準,百萬工業機器人相當于千萬勞動力,是目前日本全部勞動人口的15%。
我國工業機器人起步于70年代初,其發展過程大致可分為三個階段:70年代的萌芽期;80年代的開發期;90年代的實用化期。而今經過20多年的發展已經初具規模。目前我國已生產出部分機器人關鍵元器件,開發出弧焊、點焊、碼垛、裝配、搬運、注塑、沖壓、噴漆等工業機器人。一批國產工業機器人已服務于國內諸多企業的生產線上;一批機器人技術的研究人才也涌現出來。一些相關科研機構和企業已掌握了工業機器人操作機的優化設計制
造技術;工業機器人控制、驅動系統的硬件設計技術;機器人軟件的設計和編程技術;運動學和軌跡規劃技術;弧焊、點焊及大型機器人自動生產線與周邊配套設備的開發和制備技術等。某些關鍵技術已達到或接近世界水平。
一個國家要引入高技術并將其轉移為產業技術(產業化),必須具備5個要素即5M:Machine/Materials/Manpower/Management/Market。和有著“機器人王國”之稱的日本相比,我國有著截然不同的基本國情,那就是人口多,勞動力過剩。刺激日本發展工業機器人的根本動力就在于要解決勞動力嚴重短缺的問題。所以,我國工業機器人起步晚發展緩。但是正如前所述,廣泛使用機器人是實現工業自動化,提高社會生產效率的一種十分重要的途徑。我國正在努力發展工業機器人產業,引進國外技術和設備,培養人才,打開市場。日本工業機器人產業的輝煌得益于本國政府的鼓勵政策,我國在十一五綱要中也體現出了對發展工業機器人的大力支持。
總結
1954年美國戴沃爾最早提出了工業機器人的概念,并申請了專利。1959年第一臺工業機器人在美國誕生,開創了機器人發展的新紀元。
第四篇:機器人手臂教程英文版
Degrees of Freedom Robot Workspace Mobile Manipulators Force Calculations Forward Kinematics Inverse Kinematics Motion Planning Velocity
Sensing
End Effector Design
About this Robot Arm Tutorial
The robot arm is probably the most mathematically complex robot you could ever build.As such, this tutorial can't tell you everything you need to know.Instead, I will cut to the chase and talk about the bare minimum you need to know to build an effective robot arm.Enjoy!To get you started, here is a video of a robot arm assignment I had when I took Robotic Manipulation back in college.My group programmed it to type the current time into the keyboard...(lesson learned, don't crash robot arms into your keyboard at full speed while testing in front of your professor)You might be also interested in a robot arm I built that can shuffle, cut, and deal playing cards.Degrees of Freedom(DOF)
The degrees of freedom, or DOF, is a very important term to understand.Each degree of freedom is a joint on the arm, a place where it can bend or rotate or translate.You can typically identify the number of degrees of freedom by the number of actuators on the robot arm.Now this is very importantL1^2x * L2 * s2)/(x^2 + y^2))where c2 =(x^2 + y^2L2^2)/(2 * L1 * L2);and s2 = sqrt(1leaving the end effector to possibly swing wildly between those points.In the image below the end effector of the robot arm is moving from the blue point to the red point.In the top example, the end effector travels a straight line.This is the only possible motion this arm can perform to travel a straight line.In the bottom example, the arm is told to get to the red point as fast as possible.Given many different trajectories, the arm goes the method that allows the joints to rotate the fastest.Which method is better? There are many deciding factors.Usually you want straight lines when the object the arm moves is really heavy, as it requires the momentum change for movement(momentum = mass * velocity).But for maximum speed(perhaps the arm isn't carrying anything, or just light objects)you would want maximum joint speeds.Now suppose you want your robot arm to operate at a certain rotational velocity, how much torque would a joint need? First, lets go back to our FBD:
Now lets suppose you want joint J0 to rotate 180 degrees in under 2 seconds, what torque does the J0 motor need? Well, J0 is not affected by gravity, so all we need to consider is momentum and inertia.Putting this in equation form we get this: torque = moment_of_inertia * angular_acceleration breaking that equation into sub components we get: torque =(mass * distance^2)*(change_in_angular_velocity / change_in_time)and change_in_angular_velocity =(angular_velocity1)-(angular_velocity0)
angular_velocity = change_in_angle / change_in_time
Now assuming at start time 0 that angular_velocity0 is zero, we get torque =(mass * distance^2)*(angular_velocity / change_in_time)where distance is defined as the distance from the rotation axis to the center of mass of the arm: center of mass of the arm = distance = 1/2 *(arm_length)(use arm mass)but you also need to account for the object your arm holds: center of mass of the object = distance = arm_length(use object mass)So then calculate torque for both the arm and then again for the object, then add the two torques together for the total: torque(of_object)+ torque(of_arm)= torque(for_motor)
And of course, if J0 was additionally affected by gravity, add the torque required to lift the arm to the torque required to reach the velocity you need.To avoid doing this by hand, just use the robot arm calculator.But it gets harder...the above equation is for rotational motion and not for straight line motions.Look up something called a Jacobian if you enjoy mathematical pain =P Another Video!
In order to better understand robot arm dynamics, we had a robot arm bowling competition using the same DENSO 6DOF robot arms as in the clocks video.Each team programs an arm to do two tasks: o o Try to place all three of its pegs in the opponents' goal Block opponent pegs from going in your own goal Enjoy!(notice the different arm trajectories)Arm Sagging
Arm sagging is a common affliction of badly designed robot arms.This is when an arm is too long and heavy, bending when outwardly stretched.When designing your arm, make sure the arm is reinforced and lightweight.Do a finite element analysis to determine bending deflection/stress such as I did on my ERP robot: Keep the heaviest components, such as motors, as close to the robot arm base as possible.It might be a good idea for the middle arm joint to be chain/belt driven by a motor located at the base(to keep the heavy motor on the base and off the arm).The sagging problem is even worse when the arm wobbles between stop-start motions.The solve this, implement a PID controller so as to slow the arm down before it makes a full stop.Sensing
Most robot arms only have internal sensors, such asencoders.But for good reasons you may want to add additional sensors, such as video, touch, haptic, etc.A robot arm without video sensing is like an artist painting with his eyes closed.Using basic visual feedback algorithms, a robot arm could go from point to point on its own without a list of preprogrammed positions.Giving the arm a red ball, it could actually reach for it(visual tracking and servoing).If the arm can locate a position in X-Y space of an image, it could then direct the end effector to go to that same X-Y location(by using inverse kinematics).If you are interested in learning more about the vision aspect of visual servoing, please read the Computer Vision Tutorials for more information.Haptic sensing is a little different in that there is a human in the loop.The human controls the robot arm movements remotely.This could be done by wearing a special glove, or by operating a miniature model with position sensors.Robotic arms for amputees are doing a form of haptic sensing.Also to note, some robot arms have feed back sensors(such as touch)that gets directed back to the human(vibrating the glove, locking model joints, etc.).Tactile sensing(sensing by touch)usually involves force feedback sensors and current sensors.These sensors detect collisions by detecting unexpected force/current spikes, meaning a collision has occurred.A robot end effector can detect a successful grasp, and not grasp too tight or too lightly, just by measuring force.Another method would be to use current limitersperhaps even identify the object by its weight.Try this.Close your eyes, and put both of your hands in your lap.Now keeping your eyes closed, move your hand slowly to reach for your computer mouse.Do it!!You will see why soon...Now what will happen is that your hand will partially miss, but at least one of your fingers will touch the mouse.After that finger touches, your hand will suddenly re-adjust its position because it now knows exactly where that mouse is.This is the benefit of tactile sensing-no precision encoders required for perfect contact!
End Effector Design
In the future I will write a separate tutorial on how to design robot grippers, as it will require many more pages of material.In the meantime, you might be interested in reading the tutorial for calculating friction and force for robot end effectors.I also went in to some detail describing my robot arm card dealing gripper.Anyway, I hope you have enjoyed this robot arm tutorial!
第五篇:工業機器人運動控制畢業論文
ADAMS環境下工業robot運動控制
和聯合仿真
年 級: 2005級 學 號: 20051035 姓 名: *****
專 業: 機械設計制造及其自動化 指導老師: @@@@@
2009 年 6 月
西南交通大學本科畢業設計(論文)第I頁
西南交通大學本科畢業設計(論文)第II頁
摘 要
虛擬樣機技術就是在建造第一臺物理樣機之前,設計師利用計算機技術建立機械系統的數字化模型,進行仿真分析并以圖形方式顯示該系統在真實工程條件下的各種特性,從而修改并得到最優設計方案的技術。
ADAMS軟件是目前國際上應用最為廣泛的虛擬樣機分析軟件,用戶可以運用該軟件非常方便地對虛擬機械系統進行靜力學、運動學和動力學分析。但針對復雜的robot機械系統,要想準確的控制其運動,僅依靠ADAMS軟件自身也很難做到;MATLAB軟是Mathworks公司開發的一種集計算、圖形可視化和編輯功能于一體的優秀數學應用軟件,具有強大的計算能力,能夠建立復雜的控制模型準確控制復雜robot系統的運動;OpenGL(開放式圖形庫全稱)是SGI公司開發的底層三維圖形API,目前在圖形開發領域已成為工業標準。使用OpenGL可以創建視覺質量接近射線跟蹤程序的精致漂亮的3D圖形。Visual C++ 6.0已經成為集編輯、編譯。運行、調試為一體的功能強大的集成編程環境,在Windows編程中占有重要地位。OpenGL和Visual C++ 6.0有緊密接口,利用二者可以開發出優秀的視鏡仿真系統。ADAMS、MATLAB和Visual C++ 6.0由于定位不同,都有各自的優勢和缺點,但是三者之間又可以通過接口聯合控制或者混合編程。本文分別利用ADAMS對三自由度robot的運動學和軌跡優化方案進行研究,利用Visual C++ 6.0、OpenGL和從MATLAB里導出的控制模型的數據對三自由度robot進行了視景仿真的研究。論文首先通過建立坐標系和矩陣變換,對剛體的空間表示進行了闡述,然后采用通用的D-H法則,將robot關節角度參數化,推導出其正運動學方程和逆運動關節角,并計算出robot手部的初始坐標。其次采用ADAMS軟件,詳細介紹了robot三維建模過程,包括整體框架構建,單個構件繪圖和布爾運算等,并對robot關節點進行了參數化設計。最后從robot軌跡規劃的基本原理和方法出發,比較分析了關節空間軌跡規劃和直角坐標空間軌跡規劃的差別,并采用三次多項式和五次多項式對robot進行了軌跡規劃,利用ADAMS軟件中內嵌的Step函數對運動軌跡進行了仿真分析。然后在Windows XP Professional的系統環境下,以Visuall C++6.0為開發工具,建立了三自由度機械手視景仿真系統模型,實現了仿真系統對MATLAB控制模型導出數據的讀取和利用。
關鍵詞:運動學 軌跡規劃 ADAMS虛擬樣機技術 視景仿真
紋理映射
西南交通大學本科畢業設計(論文)第III頁
Abstract
Virtual prototyping technology in the construction of the first physical prototype, designers use computer technology to build digital models of mechanical systems, simulation analysis and graphically display the various characteristics of the system in real engineering conditions to modify and get the most excellent design technology.ADAMS software is currently the most widely used international virtual prototype analysis software, users can use the software is very easy to statics, kinematics and dynamics of the virtual mechanical systems.However, the complexity of the robot mechanical systems, in order to accurately control its movements, and only rely on ADAMS software is also very difficult to achieve;of MATLAB soft Mathworks company has developed a set of computing, graphical visualization and editing functions in one of the best mathematical applications, computing power, able to build complex control model to accurately control the movement of complex robot systems;OpenGL(Open Graphics Library Name), SGI, the development of the underlying 3D graphics API, currently in the field of graphical development has become the industrial criteria.Use OpenGL to create exquisite and beautiful 3D graphics, visual quality close to the ray-tracing program.Visual C + + 6.0 has become a set of editor, compiler.Run, debug, as one of the features a powerful integrated programming environment, plays an important role in Windows programming.OpenGL and Visual C + + 6.0 interface, using the two can develop excellent endoscopic simulation system.ADAMS, MATLAB and Visual C + + 6.0 due to different positioning has its own advantages and disadvantages, but among the joint interface control, or mixed programming.In this paper, using the ADAMS program of three degrees of freedom of the robot kinematics and trajectory optimization using the Visual C + + 6.0, OpenGL and data export control from the MATLAB model the three degrees of freedom robot visual simulation.Firstly, through the establishment of the coordinate system and matrix transform space of the rigid body are described, and then use the DH rule, the robot joint angle parameters, deduced are kinematic equations and inverse kinematics, joint angles, and calculate the robot the initial coordinates of the hand.ADAMS software, followed by the detailed three-dimensional modeling of robot process, including the overall framework to build a single component mapping and Boolean operations, and the robot joint point of parametric design.Finally, the robot trajectory planning principles and methods, comparative analysis of the difference of the trajectory planning of the joint space and Cartesian coordinate space trajectory planning, and third order polynomial and quintic polynomial on robot trajectory planning, the use of the ADAMS software embedded in Step function of the trajectory of the simulation analysis.Then, in Windows XP Professional system environment, in to Visuall C + + 6.0 development tools, the establishment of a three degree of freedom robotic visual simulation system model, read and use the simulation system model to export data to MATLAB control.Key words: kinematics, trajectory planning ADAMS virtual prototyping technology, visual simulation, texture mapping
西南交通大學本科畢業設計(論文)第IV頁
目 錄
第一章 緒論............................................................1 1.1工業robot的發展現狀............................................1 1.2 虛擬樣機技術簡介...............................................2 1.2.1 虛擬樣機的定義和特點......................................2 1.2.2 研究現狀和發展趨勢........................................2 1.4 本文要研究的主要內容...........................................4 第二章 robot運動學....................................................5 2.1 空間點和坐標系的表示...........................................5 2.1.1 空間點的向量表示..........................................5 2.1.2坐標系在固定參考坐標系中的表示............................6 2.2 坐標系的變換..................................................6 2.2.1 齊次變換..................................................6 2.2.2 坐標系相對于旋轉坐標系的變換.............................10 西南交通大學本科畢業設計(論文)第V頁
2.2.3 變換矩陣的逆.............................................10 2.3 robot的正逆運動學.............................................11 2.3.1正運動學的D-H表示法.....................................12 2.3.2逆運動學方程的求解.......................................15 2.4 微分運動......................................................16 第三章 基于ADAMS的robot的虛擬樣機分析...............................18 3.1 ADAMS概述.....................................................18 3.2 ADAMS中robot模型的建立.......................................18 3.2.1 設置建模環境.............................................19 3.2.2robot實體建模............................................19 3.2.3 robot模型的設置.........................................20 3.3 軌跡規劃仿真分析..............................................21 3.3.1 軌跡規劃方法的理論分析..................................21 3.3.2 軌跡規劃仿真分析........................................27 第四章 基于模型的視景仿真系統的設計與實現.............................32 4.1 OpenGL概述....................................................33 4.1.1 OpenGL工作方式.........................................33 4.1.2 OpenGL繪制過程.........................................34 4.2 robot三維可視化框架建立......................................35 4.2.1 利用MFC建立單文檔應用程序框架..........................35 4.2.2 設置OpenGL繪圖環境.....................................37 4.3 機械手三維模型的建立.........................................40 4.3.1 導入機械手模型..........................................40 4.3.2 在OpenGL中建立機械手的模型.............................41 4.4 建立仿真場景.................................................44 5.4.1 紋理貼圖的實現..........................................45 4.4.2 設置光照................................................48 4.5 基于模型的視景仿真的實現.....................................51 4.5.1 數據的讀取..............................................52 西南交通大學本科畢業設計(論文)第VI頁
4.5.2 利用讀取的數據控制機械手的運動..........................55 4.5.3 實現觀察視角的交互式鍵盤控制............................60 結論..................................................................63 致謝..................................................................65 附錄..................................................................66 參考文獻..............................................................73 實習報告..............................................................74
西南交通大學本科畢業設計(論文)第1頁
第一章 緒論
1.1工業robot的發展現狀
1961年,美國的Consolided Control Corp和AMF公司聯合制造了第一臺實用的示教再現型工業robot,迄今為止,世界上對工業robot的研究已經經歷了四十余年的歷程,日本、美國、法國、德國的robot產業已日趨成熟和完善。工業robot由操作機(機械本體)、控制器、伺服驅動系統和檢測傳感裝置構成,是一種仿人操作、自動控制、可重復編程、能在三維空間完成各種作業的機電一體化自動化生產設備。特別適合于多品種、變批量的柔性生產。它對穩定、提高產品質量,提
【1】
高生產效率改善勞動條件和產品的快速更新換代起著十分重要的作用。
采用工業robot,不僅可提高產品的質量與產量,而且對保障人身安全,改善勞動環境,減輕勞動強度,提高勞動生產率,節約原材料消耗以及降低生產成本,有著十分重要的意義。和計算機、網絡技術一樣,工業robot的廣泛應用正在日益改變著人類的生產和生活方式。在制造業中,尤其是在汽車產業中,工業robot得到了廣泛的應用。如在毛坯制造(沖壓、壓鑄、鍛造等)、機械加工、焊接、熱處理、表面涂覆、上下料、裝配、檢測及倉庫堆垛等作業中,robot都已逐步取代了人工作業。如,2004年德國汽車制造業中每1萬名工人中擁有工業robot的數量為1140臺。【2】在國外,工業robot技術日趨成熟,已經成為一種標準設備被工業界廣泛應用。從而,相繼形成了一批具有影響力的、著名的工業robot公司,它們包括:瑞典的ABB Robotics,日本的FANUC、Yaskawa,德國的KUKA Roboter,美國的Adept Technology、American Robot、意大利COMAU,英國的AutoTech Robotics公司,這些公司已經成為其所在地區的支柱性產業。
在我國,工業robot的真正使用到現在已經接近20多年了,已經基本實現了試驗、引進到自主開發的轉變,促進了我國制造業、勘探業等行業的發展。2004年全年國產工業robot數量(主要指在國內生產和組裝的)突破1400臺,產值突破8億元人民幣。進口robot數量超過9000臺,進口額達到2.6億美元。國內各個工業robot廠家都呈現出產銷兩旺的局面。截至2004年底,我國工業robot市場已經突破30億元人民幣。現階段,我國工業robot正逐步發展成為一種有影響力的【3】產業。
西南交通大學本科畢業設計(論文)第2頁
1.2 虛擬樣機技術簡介
1.2.1 虛擬樣機的定義和特點
虛擬樣機技術就是在建造第一臺物理樣機之前,設計師利用計算機技術建立機械系統的數字化模型,進行仿真分析并以圖形方式顯示該系統在真實工程條件下的各種特性,從而修改并得到最優設計方案的技術。該技術以機械系統運動學、動力學和控制理論為核心,加上成熟的三維計算機圖形技術和基于圖形的用戶界面技術,將分散的零部件設計和分析技術集成在一起,提供一個全新研發機械產品的設計方法。它是一種計算機模型,它能夠反映實際產品的特性,包括外觀、空間關系以及運動學和動力學的特性。借助于這項技術,設計師可以在計算機上建立機械系統的模型,伴之以三維可視化處理,模擬在真實環境下系統的運動和動力特性,并根據仿真結果精化和優化系統。虛擬樣機技術利用虛擬環境在可視化方面的優勢以及可交互式地探索虛擬物體的功能,對產品進行幾何、功能、制造等許多方面交互的建模與分析。它在CAD模型的基礎上,把虛擬技術與仿真方法相結合,為產品的研發提供了一個全新的設計方法。它具有以下特點:
A 全新的研發模式
虛擬樣機技術實現了系統性的產品優化,使產品在概念設計階段就可以迅速地分析、比較多種設計方案,確定影響性能的敏感參數,并通過可視化技術設計產品、預測產品在真實工況下的特征,從而獲得最優工作性能。
B 研發成本低、周期短、產品質量高
通過計算機技術建立產品的數字化模型,可以完成無數次物理樣機無法進行的虛擬試驗,不但減少了物理樣機的數量,降低了成本,而且縮短了研發周期、提高了產品質量。
C 實現了動態聯盟
廣泛地采用動態聯盟, 通過Internet共享和交流,臨時締結成的一種虛擬企業,適應了快速變化的全球市場,克服單個企業資源的局限性。
1.2.2 研究現狀和發展趨勢
虛擬樣機技術在一些較發達國家,如美國、德國、日本等已得到廣泛的應用,應用領域從汽車制造業、工程機械、航空航天業、到醫學以及工程咨詢等很多方面。
美國航空航天局(NASA)的噴氣推進實驗室(JPL)研制的火星探測器“探路號”,就是JPL工程師利用虛擬樣機技術仿真研究研發的。美國波音飛機公司的波音777飛機是世界上首架以無圖方式研發及制造的飛機,其設計、裝配、性能評價及分析就是采用了虛擬樣機技術,不但縮短了研發周期、降低了研發成本,而且確保了最終 西南交通大學本科畢業設計(論文)第3頁 產品一次接裝成功。
我國從“九五”期間開始跟蹤和研究虛擬樣機的相關技術,主要研究集中在虛擬樣機的概念、系統結構以及相關的支撐技術,應用多集中在一些高精尖領域。近年來,才嘗試著將虛擬樣機技術用于一般機械的開發研制。天津大學與河北工業大學采用虛擬樣機技術聯合開發了沖擊式壓實機,對其進行了仿真計算,得到各部件的運動規律曲線,驗證了壓實機各部件參數值的合理性。
【4】虛擬樣機概念正向廣度和深度發展,今后的虛擬樣機技術將更加強調部件、技術、知識的重用,強調便于虛擬樣機柔性協同的運行管理的組織重構,強調跨領域技術的溝通支持,重點在以下幾個方面進行研究:
(1)基于虛擬樣機的優化設計;(2)以虛擬樣機為中心的并行設計設計;(3)分析和仿真工具的集成;(4)虛擬樣機系統的容錯性研究。
1.3 視景仿真技術簡介
1.3.1 視景仿真的定義和特點
視景仿真又稱虛擬仿真虛擬現實仿真。它是21世紀最有前景的高科技技術之一,它是計算機技術,圖形圖象技術,光學技術,控制技術等多種高科技的結合,是延伸人類感覺器官的一門科學,通過對現實世界或者是人類想象的虛擬世界進行三維建模并實時驅動,通過頭盔顯示器或者三維投影技術顯示出來。
視景仿真(Visual Simulation)是一種基于可計算信息的沉浸式交互環境,具體地說,就是采用以計算機技術為核心的現代高科技生成逼真的視、聽、觸覺一體化的特定范圍的虛擬環境,用戶借助必要的設備以自然的方式與虛擬環境中的對象進行交互作 用、相互影響,從而產生“沉浸”于等同真實環境的感受和體驗。其作為計算機技術中最為前沿的應用領域之一,它已經廣泛應用于虛擬現實、模擬駕駛、場景再現、城市規劃及其它應用領域。計算機仿真又稱全數字仿真,是根據相似原理,利用計算機來逼真模仿研究系統中的研究對象,將研究對象進行數學描述,建模編程,并且在計算機中運行實現.作為計算機仿真的組成部分,視景仿真采用計算機圖形圖像技術,根據仿真的目的.構造仿真對象的三維模型并再現真實的環境,達到非常逼真的仿真效果.目前,視景仿真技術在我國已廣泛應用于各種研究領域:軍事演練、城市規劃仿真、大型工程漫游、名勝古跡虛擬旅游、模擬訓練以及交互式娛樂仿真等.視景仿真技術對作戰裝備的使用效果有很好的實時顯示,給人以強烈的視覺上的沖擊,對提高武器裝備的性能、研制效率有著重要的作用
西南交通大學本科畢業設計(論文)第4頁
1.3.2 工業robot視景仿真系統研究的意義
由于robot價格昂貴,以及robot的作業空間需要較大而獨立的試驗場地等諸多原因,不可能達到每個需要學習robot的人都能親自操作robot的要求。而可視化技術的出現,使得人們能夠在三維圖形世界中觀察robot,并通過計算機交互式對robot進行示教仿真。基于VC++6.0的OpenGL上的工業robot的視景仿真系統可以提供一個真實的實驗平臺,在不接觸實際robot及其工作環境的情況下,通過圖形技術,提供一個和robot進行交互的虛擬環境。此系統充分利用OpenGL的實時交互性,模擬工業robot的示教/再現過程,可以在此系統上編輯工業robot的程序并動態模擬工業robot的運動過程,觀察工業robot的運動結果,檢驗所編寫工業robot程序的正確性。進行實物實驗之前,可以先在仿真系統上進行模擬仿真,觀察實驗的運動過程以及運動結果,避免直接在現實中操作對工業robot及周圍物體可能造成的傷害。另外,對于剛接觸工業robot的操作員來說,此系統可以提供與現實工業robot幾乎相同的操作步驟,在操作員真正操作工業robot之前,可以增加其操作的熟練程度,增加安全系數。
1.4 本文要研究的主要內容
為了簡化研究,本文采用一個3自由度關節robot,分別通過ADAMS軟件的建模和仿真,結合MATLAB的運算功能,進行了robot運動學分析和空間坐標的軌跡規劃,實現運動軌跡的最優化。又在Windows XP環境下,利用Visual C++6.0和OpenGL完成了基于模型的視景仿真系統的設計與實現,具體工作如下:
(1)進行運動學分析。按照通用的D-H法則,通過矩陣變換,得到了robot的正運動學方程和初始坐標,推導出robot逆運動學的關節角度。
(2)在ADAMS/View中構造robot部件,運用約束庫中的移動和旋轉副對部件進行鏈接,添加驅動力,實現robot的運動,完成三維建模。
(3)對robot的運行軌跡進行多項式優化,利用ADAMS/View的仿真和后處理模塊,繪制小臂末端處所取點的位置、速度、加速度、角速度和角加速度曲線,結合曲線進行三次多項式和五次多項式軌跡規劃的仿真分析,并進行比較分析。
(4)利用Visual C++6.0和OpenGL導入并建立機械手模型,建立仿真場景,實現基于模型數據的運動仿真,并實現視角的交互式鍵盤控制。
西南交通大學本科畢業設計(論文)第5頁
第二章 robot運動學
robot運動學指研究robot各個連桿相對運動的空間幾何關系。在實際應用中,最為感興趣的問題是robot手部(即末端執行器)相對于參考坐標系的空間描述。robot可以看成為一個開環的運動鏈,該鏈是由一組桿件相連而成,其一端固定在基座上,另一端固定在robot手部上。兩個桿件之間通過關節相連,關節由驅動器驅動,使桿件之間產生相對運動,從而使robot手部達到期望的位置和姿態。
在robot運動學的研究過程中,又可以分為兩類基本問題,即robot運動學的正問題與逆問題。其中,robot運動學的正問題指在已知桿件幾何結構參數和關節變量值的前提下,求解robot手部相對于參考坐標系的位置與姿態的問題;robot運動學的逆問題指根據robot手部在笛卡爾坐標系中的位置與姿態求解robot各關節的關節變量值的問題。
【5】2.1 空間點和坐標系的表示
2.1.1 空間點的向量表示
在直角坐標系中,可以用一個3×1的位置矢量來表示空間內任意一點的位置。對于直角坐標系中任意一點p的位置可以用3×1的位置矢量P表示為
?px???
P??py????pz?
(2-1)
如圖2-1所示,px,py和pz分別 表示點P在當前坐標系中的三個坐標軸 方向的分量。這里P稱為位置矢量,這
種表示法也可變化為如下形式:
圖2-1 空間點的位置表示
p????px?py?pz??w?
(2-2),p?為p的齊
T加入一個比例因子w,使得
?py??pxpzpx?,py?,pz?www 西南交通大學本科畢業設計(論文)第6頁 次坐標。10 【】2.1.2坐標系在固定參考坐標系中的表示
當一個坐標系位于另一個坐標系中時,如圖2-2所示,通常用三個互相垂直的單位向量n、o、a表示,這三個變量分別代表法線(normal)、指向(orientation)與接近(approach)向量(如圖2-2所示)。每一個單位向量都可以由它所在參考坐標系中的三個分量表示,這樣,坐標系F就可以表示為由四個向量組成的矩陣:
?nx??nyF =??nz??0oxoyoz0axayaz0?py?(2-3)
? pz?1??px?
圖2-2 一個坐標系在另一個坐標系中的表示
式(2-3)中前三個列向量取w=0,表明該坐標系三個單位向量n、o、a的方向。而第四個列向量中w=1,表示該坐標系相對于參考坐標系的位置。
2.2 坐標系的變換
坐標系的變換包括繞固定參考坐標系的變換和繞運動參考坐標系的變換。
2.2.1 齊次變換
空間中一個坐標系相對于固定的參考坐標系的運動稱為齊次變換。齊次變換可以是平移運動,可以是旋轉運動,也可以是平移與旋轉的復合運動。
(1)純平移齊次變換
如果一個坐標系(它可能表示的是一個物體)在空間運動中相對于固定參考坐標系的姿態不發生變化,即該坐標系的三個單位向量方向不變,只改變它的坐標原點位置,則稱這種運動為平移運動。如圖2-3所示,坐標系{A}沿平移向量d平 西南交通大學本科畢業設計(論文)第7頁 移到新的位置:
d=??dxdydz??(2-4)
T【7】其中dx,dy,dz是平移向量d相對于固定參考系三個坐標軸方向的分量。
圖2-3 坐標系的平移
平移后新的坐標系原點位置向量可以表示為原來坐標系的原點位置向量與位移向量d的矢量和。若采用矩陣形式,新坐標系的矩陣表示可以通過將坐標系左乘變換矩陣。由于平移過程中方向向量保持不變,所以平移變換矩陣T可以簡單地表示為: ?1??0T???0??001000010dx??dy??(2-5)dz?1??可以看到,矩陣的前三列沒有旋轉運動(等同于單位矩陣),而最后一列表示平移運動,這個方程可以用符號表示如下:
Fnew?即 Trans(dx,dy,dz)?Fold(2-6)西南交通大學本科畢業設計(論文)第8頁
Fnew?1??0???0??0?nx??ny???nz??001000010dx??nx??dy??ny???dz??nz1????0?py?dy??pz?dz??1?oxoyoz0axayaz0?py??pz?1??px?oxoyoz0axayaz0px?dx?(2-7)(2)繞軸純旋轉齊次變換
為了簡化旋轉變換的推導,假設坐標系{B}位于坐標系{A}的原點。純旋轉就是{B}坐標系在空間中運動中相對于固定參考坐標系{A}的位置不發生變化,即只改變該坐標系三個單位向量的方向而不改變其原點位置。這樣坐標系{B}可以由坐標系{A}經過旋轉次變換后得到,由此可以推廣到其他旋轉情況。
設向量x, y, z為坐標系{A}的三個單位向量,空間任意一點p的位置可以用向量p表示。向量p在坐標系{A}中的表示為:
Ap=pxix+pyjy+pzkz(2-8)向量p在坐標系{B}中的表示為:
Bp?pnin+pojo+p?k?(2-9)B則向量P在坐標系{A}中的投影分別為
Px?ix.Bp?ix.inpn+ix.jopo+ix.k?p?(2-10)Py?iy.Bp?iy.inpn+iy.jopo+iy.k?p?(2-11)Pz?iz.Bp?iz.inpn+iz.jopo+iz.k?p?(2-12)寫成齊次矩陣形式則為:
西南交通大學本科畢業設計(論文)第9頁
?ix.?px?in???in?iy.?py? ????in?iz.?pz????1???0?ix.in?in?iy.??in?iz.??0?iy.ioiy.i?0??iz.i0iz.io0?001???ix.ioix.i?0??pn????po?(2-13)?p??????1??ix.ioix.i?0?iy.ioiy.i?0??(2-14)
iz.i0iz.io0?001??ARB當坐標系{B}只相對于坐標系{A}單個軸轉動時稱為基本變換矩陣。如坐標系{B}只繞坐標系{A}的x軸轉動角度θ時,基本轉動變換矩陣記為Rot(x,θ),由式(2-14)可以計算得:
?1?Rot(x,?)??0??00C?S????S??(2-15)C???0可以用同樣的方法來分析坐標系{B}繞坐標系{A}的y軸和z軸旋轉的情況,結果如下:
?C?0?Rot(y,?)??01???S?0?C??Rot(z,?)??S???0(3)復合齊次變換
?0?(2-16)C???S???S?0??C?0?(2-17)01??復合齊次變換是有由固定坐標系或當前運動坐標系的一系列沿軸平移和繞軸旋轉變換所組成的,此時該固定坐標系在參考系中不僅原點位置發生變化,同時它的三個坐標軸單位向量的方向也發生變化。此時的變換順序很重要,變換順序不同,結果不同。
我們假設坐標系(n, o, a)相對于參考坐標系(x ,y ,z)依次進行了下列四個變 西南交通大學本科畢業設計(論文)第10頁 換:
? 繞z軸旋轉θ度 ? 繞z軸平移d ? 繞x軸平移a ? 繞x軸旋轉α度 則復合齊次變換XYZxyzTnoa可由下式求解:
Tno??Rot(x,?)?Trans(a,0,0)?Trans(0,0,d)?Rot(z,?)(2-18)可見,齊次變換矩陣是由一組平移和旋轉矩陣依次左乘獲得,矩陣書寫的順序
【6】和進行變換的順序正好相反,而且變換的順序不能更改,否則結果會隨之改變。
2.2.2 坐標系相對于旋轉坐標系的變換
前面我們所討論的所有變換都是相對于固定參考坐標系的。也就是說,所有平移和旋轉都是相對于參考坐標系的軸來測量的。然而事實上,也有可能相對于運動坐標系或當前坐標系的軸的變換。例如,相對于運動坐標系(當前坐標系)的n軸而不是參考坐標系的x軸旋轉θ度。為了計算當前坐標系中點的坐標相對于參考坐標系的變化,我們需要右乘變換矩陣而不是左乘。由于運動坐標系中的點或剛體的位置總是相對于運動坐標系測量的,所以必須右乘來表示該點或剛體的位置矩陣。
2.2.3 變換矩陣的逆
A在分析robot時,如果已知坐標系{B}相對于坐標系{A}的值
BTB到{A}相對于{B}的描述
TA,為了得,需要求這個矩陣的逆。一個直接求逆的方法就是將4?4齊次變換求逆。同樣,我們還可以通過變換的性質求逆。下面是關于x軸簡單旋轉矩陣的求逆過程。旋轉矩陣如下:
?1?Rot(x,?)??0??00C?S????S??(2-19)C???0我們采用以下的步驟來計算旋轉矩陣的逆: 1)計算矩陣的行列式 2)將矩陣轉置
西南交通大學本科畢業設計(論文)第11頁 3)將轉置矩陣的每個元素用它的子行列式代替 4)用轉置后的矩陣除以行列式 通過以上步驟我們得到:
?1?TRot(x,?)??0??00C??S?0??S??(2-20)C???關于x軸的旋轉矩陣的逆與它的轉置矩陣相同,即:
TRot(x,?)?1?Rot(x,?)(2-21)2.3 robot的正逆運動學
對于一個已知構型的robot,當它的連桿長度和關節角度都已知時,計算robot手的位姿就稱為正運動學。也就是說,如果已知robot所有的關節變量,用正運動學方程就能計算任一瞬間robot的位置和姿態。如果要將robot的手放到一個期望的位姿,就必須知道robot所有關節的長度和角度。由robot手的位姿來求關節和連桿變量的過程就稱為robot的逆運動學。對于正運動學,必須推導出一組特定方程,我們只要將已知的關節和連桿變量代入方程就能計算出robot的位姿,然后再根據這些方程求解出逆運動學方程。
在空間中,要確定一個物體的幾何狀態需要確定其3個位移坐標(位置)和三個旋轉坐標(姿態)。robot手部的空間位置和姿態的表示可以借助一個固連在它上面的參考坐標系來表示,只要這個坐標系可以在基座的參考坐標系的空間中表示出來,那么該robot手部相對于基座的位姿就是已知的了,可采用齊次坐標變換的方法完成這兩個坐標系的坐標轉化。
圖2-3 robot手的位置和姿態描述
西南交通大學本科畢業設計(論文)第12頁
robot手部的位姿如圖2-3所示,可由固接在robot手部的坐標系{B}來表示。該坐標系由其原點位置和三個單位矢量(n, o, a)唯一確定。坐標系{A}表示固連在robot基座上的固定參考坐標系。向量P為坐標系{B}原點在坐標系{A}中的位置矢量。前面已經討論過了一個坐標系在固定坐標系的表示故這里直接給出坐標系{B}在坐標系{A}中的位姿的表示:
?n??nY?F =??n???0o?oYo?0a?aYa?0?pY?(2-22)?p??1??p??2.3.1正運動學的D-H表示法
robot建模采用的是Denavit和Hartenberg提出來的標準方法,我們簡稱為D-H模型,該模型可用于任何復雜的robot構型。
假設robot由一系列的關節和連桿構成,這些關節包括滑動的和旋轉的,連桿長度任意,確保在空間能構成任意想要的robot模型。為了表示這個模型,我們需要為每個關節指定一個參考坐標系,然后再考慮從一個關節到下一個關節的變換。
假設一個robot由任意多的連桿和關節以任意形式構成。如圖2-4所示,任意三個順序連接的關節和連桿,每個關節都可以平移或旋轉。指定第一個關節為關節n,第二個第三個關節分別為n+1和n+2,連桿n位于關節n和n+1之間,連桿n+1位于關節n+1和關節n+2之間,這些關節和連桿前后還有其他連桿和關節。
西南交通大學本科畢業設計(論文)第13頁
圖2-4 關節-連桿組合的通用D-H表示法
D-H表示法建模的第一步是為每個關節指定本地參考坐標系,每個關節都必須指定x軸和z軸,由于D-H法不用y軸,一般不指定y軸。具體步驟如下: ? 所有關節用z軸表示,如果關節是旋轉,z軸位于按右手規則旋轉的方向,如果關節是滑動的,z軸為沿直線運動的方向。關節n處z軸的下標記作n-1。對于旋轉關節,繞z軸的旋轉(?角)是關節變量,對于滑動關節,沿z軸的連桿長度d是關節變量。
? 如圖2-4所示,通常關節不一定平行或相交,因此z軸通常是斜線,但總有一條公垂線,正交于任意兩條斜線。通常在公垂線方向上定義本地參考坐標系的x軸。例如an表示zn?1和zn之間的公垂線,xn的方向即沿an方向。? 如果兩個關節的z軸平行,那么它們之間就有無數條公垂線,我們可以挑選與前一公垂線共線的公垂線,從而簡化模型。
? 若兩相鄰的關節z軸相交,則不存在公垂線,我們選擇垂直于兩軸平面的任意直線,同樣簡化了模型。
在圖2-4中,?角表示繞z軸的旋轉,d表示z軸上兩相鄰公垂線之間的距離,a表示每一條公垂線的長度,?角表示相鄰兩z軸的夾角。通常只有?和d是變量。從一個參考坐標系變換到另一個參考坐標系(例如從xn-zn到xn?1-zn?1),可以通過以下四步標準運動實現:
西南交通大學本科畢業設計(論文)第14頁 ? 繞zn軸旋轉?n?1,使得xn和xn?1相互平行且共面。? 沿zn軸平移dn?1距離,使得xn和xn?1共線。
? 沿xn軸平移an?1距離,使得的原點重合,此時兩個坐標系的原點在同一位置。? 將zn軸繞xn?1旋轉?n?1,使得zn和zn?1對準。至此,坐標系n和坐標系n+1完全一致,變換結束。
在n+1和n+2坐標系間按照同樣的運動順序也可以實現坐標系間的變換。我們可以從參考坐標系開始,轉換到robot底座,再到第一個關節,依次下去直至末端執行器。每個變換矩陣(記作A)都是由上述四個矩陣依次右乘的結果:nTn?1?An?1?Rot(z,?n?1)?Trans(0,0,dn?1)?Trans(an?1,0,0)?Rot(x,?n?1)?C?n?1-S?n?100??10???S?n?1C?n?100??01????0??00010????001??00?0???1?0???0???0??00?1dn?1??01??000??0?0??1??
000an?1??10??0C??S?100??n?1n?1?010??0S?n?1C?n?1??001?0???00(2-23)
An?1?C?n?1?S?n?1????0??0?S?n?1C?n?1S?n?1S?n?1?C?n?1S?n?1an?1C?n?1?an?1S?n?1?dn?11?
?(2-24)???C?n?1C?n?1S?n?10C?n?10從robot基座到手(末端執行器)之間的總變換可以表示為:
RTH?RT11T22T3...n?1Tn?A1A2A3...An(2-25)
為了簡化計算,我們為關節和連桿參數制作一個表格,每個參數可以從robot的原理圖上讀出,計算時再這些參數代入A矩陣。在本文中設計的簡單三自由度robot模型參數如圖2-5所示。所有鏈接采用旋轉關節,D-H參數如表2-1所示。
西南交通大學本科畢業設計(論文)第15頁
圖2-5 簡單三自由度robot(單位:英寸)表2-1 robotD-H參數表(逆轉為正,順轉為負)連桿i 1 2 3 4
?
d
0 65 0 0
a
0 0 200 150
?
90° 0°-30°-30°
0°-90° 0° 0°
將上述角度值代入式(2-25),運用MATLAB進行計算出robot初始位置坐標:
2.3.2逆運動學方程的求解
為了讓robot處于適當的位姿,我們需要求解每個關節的角度值,這就是robot
R的逆運動學。我們可以通過矩陣
TH左乘
An?1來求解,如下:
RTH為了求解角度,我們從式:
?n??nY??A1A2A3...An???n???0A1?1o?oYo?0a?aYa?0p??(2-26)?p??1??pY??開始,依次左乘上述矩陣,得到每個關節角度表達 西南交通大學本科畢業設計(論文)第16頁
A?11?n??nY????n???0o?oYo?0a?aYa?0?pY?(2-27)?A2A3...An
?p??1??p??因此,我們的三自由度robot逆運動關節角度表達
?1?arctan(?PX/PY)
?2?arccos?PC?(1?C?3)?PYS?3?/?18(1?C?3)C?1????Z1??
(2-28)?3?arccos?(PY/C?)2?(PZ)2?162/162?
???2.4 微分運動
微分運動即robot的微小運動,可以用它來推導不同部件之間的速度關系。
圖2-6(a)具有兩自由度平面結構(b)速度圖
如圖所示的兩個自由度的簡單機構,1表示第一個連桿相對于參考坐標系的旋轉角度,下:
??2表示第二個連桿相對于第一個連桿的旋轉角度。B點的速度可以計算如VB?VA?VB/A?sin?i?l??cos?j?l(?????)??l1?(2-29)11111212?sin(?1??2)i?l2(??1???2)cos(?1??2)j將速度方程寫成矩陣形式得到如下結果:
西南交通大學本科畢業設計(論文)第17頁
?VBX ?V??BY???l1sin?1?l2sin(?1??2)??????l1cos?1?l2cos(?1??2)??l2sin(?1??2)??l2cos(?1??2)?????? ???(2-30)
???方程左邊表示B點速度的x,y分量。B點的位置我們可以用下述方程表示:
??XB?l1cos?1?l2cos(?1??2)(2-31)???YB?l1sin?1?l2sin(?1??2)對方程中的?1和?2微分,寫成矩陣形式如下:
?l2sin(?1??2)??l2cos(?1??2)???d?1? ??(2-32)
??d?2???dX??B?d???YB???l1sin?1?l2sin(?1??2)???l1cos?1?l2cos(?1??2)我們看到,(2-29)和(2-31)式在形式上很相像,只是前者表示的是速度關系,后者表示的是微分運動的關系。因此在robot運動中,我們可以將關節的微分運動與速度聯系起來。
西南交通大學本科畢業設計(論文)第18頁
第三章 基于ADAMS的robot的虛擬樣機分析
3.1 ADAMS概述
美國MSC.Software公司在2003年3月收購了全球最大機構的仿真軟件、咨詢服務、系統集成供應商MDI/ADAMS。MSC.Software公司的ADAMS軟件是虛擬樣機領域內廣泛使用的軟件,可以使工程師、設計人員能夠在物理樣機構造前,建立機械系統的“模擬樣機”,預估出機器的工作性能。ADAMS軟件具有如下特點:(1)分析類型包括運動學、靜力學分析以及線性和非線性動力學分析(2)具有二維和三維建模能力
(3)具有50余種聯結副、力和發生器組成的庫和強大的函數庫(4)具有組裝、分析和動態顯示模型的功能,包含剛體和柔體分析(5)具有與CAD、UG、Pro/E、Matlab、ANSYS等軟件的專用接口(6)具有開放式結構,允許用戶集成自己的子程序
基于ADAMS的虛擬樣機技術是在制造物理樣機前,利用計算機技術建立該產品的數學模型,通過基于實體的可視化仿真分析,模擬該系統在實際工作環境中的運動學和動力學特性,并反復修改設計,從而得到最優方案。
A 創建模型
創建機械系統模型時,首先要創建構成模型的各個零部件。零部件創建完后,需要使用運動關節約束庫創建零部件之間的約束副,確定部件之間的連接情況以及仿真過程中構件之間的位置關系。最后,施加運動及各種載荷使樣機按照設計要求進行仿真。
B 測試驗證模型并細化
模型創建過程中和完成后,都可以對模型進行運動仿真測試。通過對模型的性能測試,驗證設計方案的正確性,然后,在模型中增加更復雜的因素,進一步細化模型。為便于不同方案的比較,通過設計變量不同取值的迭代仿真,求出設計變量的最優值。
C 優化設計
采用設計和優化分析的研究手段,確定各個設計變量相對于解算結果的靈敏度并最終確定目標函數的最優值。
【8】3.2 ADAMS中robot模型的建立
本文機械手模型參考了PUMArobot的結構,建模過程中依照模塊化的思想先繪制各個部件,然后通過布爾運算和參數的調整,完成建模。
【15】 西南交通大學本科畢業設計(論文)第19頁
3.2.1 設置建模環境
打開ADAMS/View,選擇創建新模型,將機械手模型命名為model_2jixieshou,其他采用系統默認值,進入建模界面。
在建模界面中,首先要設定工作柵格,點擊菜單Settings中的Working Gird.如圖3-1所示,根據建模需要,柵格范圍設置為1000×1000(mm),大小為50×50(mm)。
圖3-1 工作柵格設置
設置完工作柵格就可以開始建模。
3.2.2robot實體建模
ADAMS/View中集成了很多圖形模板,包括點,線,面,體各方面。我們構建的是robot的三維立體模型,其主要部件都是剛體。ADAMS中的剛體模板包括圓柱,圓錐,長方體,球體,拉伸體,平板等。我們選擇圓柱體(圓盤)作為robot的底座,圓柱體作為robot的腰部,拉伸體作為robot的手臂。在建模過程中,作者一直根據模塊化的原則,在建立每一個部件的過程中都同時通過布爾運算等對模塊進行優化,很好的美化了模型,并且是模型更加合理。這種工作方法為最后的總裝提供和很大的便利和好處,節省了很多時間,提高了工作效率,值得在其他工作中借鑒。由于建模過程主要是ADAMS軟件的操作過程,如果對ADAMS比較熟悉這個過程就很簡單。本文不再對建模過程做詳細介紹。建立好的機械手實體模型如下圖3-2 西南交通大學本科畢業設計(論文)第20頁 所示:
圖3-2 機械手實體模型
3.2.3 robot模型的設置
robot實體模型建好以后,應對其屬性進行修改。我們設計用的robot材料為鋁材,初始位移為各個點的初始位置,初始速度設置為零。選定材料后,物體的密度就自動確定了,同時系統會自動計算構件的質量。然后對關節添加相應的約束和驅動力。如果我們要模擬某些特殊的工作過程,我們還應該在相應的位置處添加力和力矩。如我們模擬提升物體的操作過程,那么我們就在小臂(PART6)的端部PART6_MARKER_6處添加一個大小為10N方向向下的力。完成這個設置后robot的模型如下圖3-3所示:
西南交通大學本科畢業設計(論文)第21頁
圖3-3 robot最終模型
至此,我們已經完成了三自由度robot的建模過程,通過軟件自檢功能,可以判定模型正確與否,建模完成以后就可以進行運動學仿真分析。
3.3 軌跡規劃仿真分析
完成建模過程后,我們就可以運用軟件的仿真功能對模型的運動學,靜力學,動力學進行分析,本文對所建立的模型進行了運動學的理論分析,然后又結合軌跡規劃進行了仿真分析。軌跡規劃一般分為兩種:一種是在關節空間進行規劃,將關節變量表示成時間的函數,并規劃它的一階和二階時間導數;另一種是在直角空間(笛卡爾空間)進行規劃,將末端位姿、速度、加速度表示為時間的函數,而相應的關節位移、速度和加速度由末端信息導出。
【12】
本文分別給出了對模型進行關節空間和直角空間軌跡規劃方法的理論分析,并在ADAMS/View的仿真和后處理模塊中利用ADAMS內嵌的step函數對關節空間內三次多項式和五次多項式軌跡規劃進行了分析比較。
3.3.1 軌跡規劃方法的理論分析
西南交通大學本科畢業設計(論文)第22頁
(1)關節空間內三次多項式軌跡規劃
假設robot的初始位姿是已知的,通過逆運動學方程可以求得期望位姿對應的關節角。若考慮其中某一關節在運動開始時刻運動到新的角度?f,使用多項式函數可以保證初始和末端的邊界條件與已知條件相
ti的角度?i,希望該關節在tf時刻匹配,這些條件信息可以求解下面的三次多項式方程。
23?(t)?c0?ct?ct?ct(3-1)123這里的初始條件和末端條件是:
?(ti)??i?(tf)??f??(ti)?0??(tf)?0(3-2)
對4-1式求導,得:
?(t)?c?2ct?3ct2 ?(3-3)123將4-2式分別代入4-1和4-3式得:
?(ti)?c0??i23?(tf)?c0?ct?ct?ct1f2f3f?(t)?c?0?i1?(t)?c?ct?ct2?0?f12f3f(3-4)
聯立求解這四個方程就可以得到任意時刻的關節位置,控制器則據此來驅動關節。每個關節分別規劃,同步運行。如果要求robot依次通過多個點,則每一段末端求解出的速度和位置都可用作下一段的初始條件,每一段的軌跡都可采用上述的三次多項式來規劃。
針對本文設計的三自由度robot,在其初始位置基礎下,我們要求robot手臂在6S后分別運動?1=180°,?2=60°,?
3=30°。
西南交通大學本科畢業設計(論文)第23頁
表4.1 三次多項式規劃關節角度
t
0 1 2 3 4 5 6
?1
0.0000 13.3333 46.6667 90.0000 133.3333 166.6667 180.0000
?2
0.0000 4.4444 15.5556 30.0000 44.4444 55.5556 60.0000
?3
0.0000 2.2222 7.7778 15.0000 22.2222 27.7778 30.0000 將上述邊界條件代入4-4式,解得第一個關節軌跡參數為c0=0,c1=0,c2=15,532=-5/3軌跡方程為:(t)?15t?t;同樣可得出第二個關節軌跡參數c0=0,?1c33532=0,=5,=-5/9軌跡方程為:第三個關節參數c0=0,c1=0,(t)?5t?t;?2c1c2c395253=5/2,=-5/18軌跡方程為:(t)??32t?18t c2c3我們將運動過程分為5段,則每秒鐘robot運動的關節角度如表4-1所示。(2)關節空間內五次多項式軌跡規劃
在三次多項式規劃中,我們采用的邊界條件是起點和終點的位置與速度,如果同時指定起點和終點的加速度,這樣邊界條件就增加到6個,可以用同樣的方法進行五次多項式的規劃:
2345?(t)?c0?ct?ct?ct?ct?ct(3-5)12345?(t)?c?2ct?3ct2?4ct3?5ct4(3-6)?12345???(t)?2c2?6c3t?12c4t2?20c5t3(3-7)
(3)關節空間內拋物線過渡的線性運動軌跡規劃
在關節空間軌跡規劃的另一種方法就是讓關節以恒定的速度在起點和終點之間運動,軌跡方程相當于一次多項式,速度為常數,加速度為零。這樣意味著在起點和終點的加速度必須為無窮大,為避免這一情況,線性運動在起點和終點可以用拋物線來過渡。如圖4-6,拋物線與直線過渡段在時間和處是對稱的,由此得到:
西南交通大學本科畢業設計(論文)第24頁
12?(t)?c0?ct?ct122?(t)?c?ct?(3-8)12???(t)?c2
圖4-6 拋物線過渡的線性段規劃方法
此時拋物線運動段的加速度為一常數,在A點和B點速度連續,將邊界條件代入得:
??(t?0)??i?c0????(t?0)?0?c1?????(t)?c2從而得出拋物線的方程為:
?c0??i???c1?0
????c2???(t)??i???(t)?c2t???(t)?c212c2t2(3-9)
將零初速度,線性段常值速度?以及零末端速度代入上式,得到:
12c2tb2??ct???A2b?A??i?
?B??A???(tf?tb)?tb???A???tf?2tb????????BA 西南交通大學本科畢業設計(論文)第25頁
?f??B?(?A??i)??0?f從而可求出過渡時間:
(3-10)
?i??f??tftb?(3-11)
?顯然,不能大于總時間的一半,否則整個過程中只有加減速而沒有直線運動。終點的拋物線段與起點是對稱的,只是加速度為負而已。
我們依然用設計的三自由度robot來進行規劃。在其初始位置基礎上,我們要求robot手臂在6S后分別運動
?1=180°,?2=60°,?3=30°中間勻速運動的速度分別為v1?40?/s,v2?12?/s,v3?6?/s,那么過渡時間分別為:
0?180?40?60?60?12?60?30?6?6?1.5(s),tb2??1.0(s),tb3??1.0(s)
40126勻加速,勻速,勻減速運動方程分別如下: tb1?1802????t?23??80????t??i?A3??????80第一個關節角?1: ?3????30?40?(t?1.5)????40 ?A??B? ?????0?180???180??(6?t)2?23??80? ?B??f? ??(6?t)3???80?????3?1?2???12t?2???第二個關節角?2:?i??A???12t
?????12??? 西南交通大學本科畢業設計(論文)第26頁
???6?12?(t?1)?? ?A??B? ??12?????0?1?2??60??12?(6?t)?2??? ?B??f? ??12?(6?t)??????12???1?2???6t?2???第三個關節角?3:?i??A???6t
?????6??????3?6?(t?1)?? ?A??B? ??6?????0?1???30??6?(6?t)2?2??? ?B??f? ??6?(6?t)??????6???則在0s到6s關節的角度分別如表4-2所示:
表4-2 拋物線過渡規劃關節角度 t 0 1 2 3 4 5 6
?1
0 40/3 50 90 130 500/3 180
?2
0 6 18 30 42 54 60
?3
0 3 9 15 21 27 30(4)直角空間軌跡規劃
西南交通大學本科畢業設計(論文)第27頁
直角坐標空間軌跡與robot相對于直角坐標系的運動有關,robot末端執行器的位姿就是沿循直角坐標空間的軌跡。實際上所有的關節空間軌跡規劃的方法都可用于直角坐標空間的軌跡規劃。其差別在于:對于關節空間的軌跡規劃,規劃函數生成的值就是關節值,而直角坐標空間軌跡規劃函數生成的值是robot末端執行器的位姿,必須通過反復求解逆運動學方程來計算關節角。
其過程可以綜合如下: 將時間增加一個增量t?t??t;
利用所選擇的軌跡函數計算末端執行器的位姿; 利用robot逆運動學方程計算位姿對應的關節量; 將關節信息傳遞給控制器; 重復以上循環過程。
3.3.2 軌跡規劃仿真分析
(1)三次多項式軌跡規劃仿真分析
我們在ADAMS里進行三次多項式軌跡仿真時,用的是STEP函數。[13] STEP函數利用的是三次多項式逼近海賽階躍函數。STEP階躍函數有連續的一階導,但在起點處的二階導不連續,在速度圖像上表現為速度連續但加速度不連續。
我們設定robot三個部分在6S時間內分別轉動180°,60°,30°,為了分析其運動特性,我們分別選取robot小臂PART6末端的PART6_MARKER_6點的運動參數進行分析。
robot小臂末端的PART6_MARKER_6在X,Y,Z三個方向上的位移曲線如下:
圖4-7 PART6_MARKER_6在X,Y,Z三個方向上的位移圖
西南交通大學本科畢業設計(論文)第28頁
從上圖中我們看到,在三次多項式規劃條件下,X,Y,Z三個方向上的點都呈現出起伏變化,與勻速驅動條件下情況不同。PART6_MARKER_6點從(248.2051,70.0962,-40.0)運動到(-303.1089,475.0,40.0)處。
PART6_MARKER_6速度和加速度曲線如圖4-8所示,我們可以看到,速度由0mm/s增大到297.6708mm/s,然后又逐漸下降到0mm/s,而加速度最大值達到了2s253.6641mm/,并且在0.012s和5.988/s處存在突變。
圖4-8 PART6_MARKER_6速度和加速度圖像
PART6_MARKER_6角速度和角加速度曲線如圖4-9所示,PART6_MARKER_6角速度和角加速度變化與速度變化類似,最大角速度為50.3512d/s,角加速度最大為33.4069d/s,在0.012s和5.988/s處存在突變。2
圖4-9 PART6_MARKER_6角速度和角加速度圖像
西南交通大學本科畢業設計(論文)第29頁(2)五次多項式軌跡規劃仿真分析
我們運用ADAMS內嵌的step5函數對robot關節進行五次多項式軌跡規劃,step5函數是通過五次多項式逼近海塞階躍函數。同樣選取我們分別選取robot小臂PART6末端PART6_MARKER_6點的運動參數進行分析。
PART6_MARKER_6在X,Y,Z三個方向上的位移曲線如圖4-16所示:
圖4-16 PART6_MARKER_6在X,Y,Z三個方向上的位移圖像
從上圖中我們可以看出,三次多項式和五次多項式軌跡規劃相比,robot手臂末端的始末位置不變,都是從(248.2051,70.0962,-40.0)運動到(-303.1089,475.0,40.0),中間點的位移也沒太大變化。但是其速度和加速度等運動參數變化卻比較大。五次多項式軌跡規劃條件下PART6_MARKER_6的速度和加速度曲線如圖4-17所示:
西南交通大學本科畢業設計(論文)第30頁
圖4-17 PART6_MARKER_6的速度和加速度圖像
PART6_MARKER_6的角速度和角加速度曲線如圖4-18所示:
圖4-18 PART6_MARKER_6的角速度和角加速度圖像
從上面的圖像中我們可以看到,PART6_MARKER_6的速度先增后減,加速度變化也一樣。速度從開始時刻的0mm/s增大到中間時刻的370.1791mm/s再減小到終點時刻的0mm/s,加速度變化較三次多項式規劃時平緩,不存在突變點。在0s時最小,為0mm/s,中間時刻達到最大值396.2381mm/s,然后逐漸下降到終點時的0mm/s。角速度和角加速度的變化情況如下:最大角速度為62.8912d/s,最大角加速度為32.826d/s,角加速度不存在明顯突變。(3)軌跡規劃比較分析
2222 西南交通大學本科畢業設計(論文)第31頁
從上面的兩種軌跡仿真結果中可以看出,三次多項式軌跡規劃和五次多項式軌跡規劃最大的區別就在前者的加速度和角加速度在中間點存在跳變,而后者的加速度和角加速度的變化則趨于平緩。我們對兩種情況下PART6_MARKER_6點的運動參數變化情況進行比較,如下表所示:
表4-3 PART3_MARKER_12點的運動參數比較 比較項目 最大速度mm/s 最大加速度mm/s
加速度突變 最大角速度d/s 最大角加速度d/s 角加速度突變
22三次多項式 297.6708 253.6641 有 50.3512 33.4069 有
五次多項式 370.1791 396.2381 無 62.8912 32.826 無
之所以有這種區別,原因在于三次多項式軌跡規劃中,我們的邊界條件只有四個,初始位移和速度,終點的位移和速度;而在五次多項式軌跡規劃中,我們的初始條件中包含了加速度,分別為初始位移、速度和加速度,終點位移、速度和加速度。因此在一般的三次多項式軌跡規劃中,我們應該加入最大速度變化的限制條件,從而保證robot的運動更平穩。
西南交通大學本科畢業設計(論文)第32頁
第四章 基于模型的視景仿真系統的設計與實現
隨著robot研究的不斷深入,robot三維可視化技術作為robot設計和研究中安全可靠、靈活方便的工具,越來越受到重視。robot的三維圖形仿真,就是要建立一個精確、逼真的robot模型以及robot工作環境。
三維可視化是數學模擬和科學計算可視化技術相結合的產物,它一般包括兩方面內容:一是將傳統數字仿真計算的結果轉換為圖形和圖像形式;二是仿真交互界面可視化,即具有可視化交互和動畫展示能力,要求能夠實時跟蹤顯示仿真計算結果。可視化技術的出現,使得人們能夠在三維圖形世界中觀察robot,并通過計算機交互式對robot進行示教仿真。
一般來說,robot可視化仿真系統主要由三個模塊組成:工業robot的三維模型模塊(實現仿真系統的基礎)、示教和再現模塊(實現示教和再現的功能)、離線編程模塊,見圖4-1。但是由于時間和知識限制,本文只研究了后兩個模塊的實現,對離線編程并沒有采取通常的做法,根據老師的建議想將Matlab軟件和VC++結合起來,用在Matlab里建立的控制模型來控制OpenGL里機械手的運動,本章按照這個思路實現了利用Matlab里建立的控制模型導出的數據來控制機械手的運動。
圖4-1 通用robot可視化仿真系統模塊
本章將通過VC++6.0和OpenGL來完成機械手的三維可視化仿真系統的設計與實現,它提供一個真實的實驗平臺,在不接觸實際robot及其工作環境的情況下,通過圖形技術,提供一個和機械手進行交互的虛擬環境。本章主要內容為:
(1)建立程序框架;
西南交通大學本科畢業設計(論文)第33頁
(2)建立機械手三維模型;(3)建立仿真場景;
(4)實現基于模型的視景仿真。
4.1 OpenGL概述
OpenGL即開放性圖形庫(open graphic libary)是美國高級圖形和高性能計算機系統公司SGI所開發的三維圖形標準庫,具有繪制三維圖形的各項功能,它是處理專用圖形硬件的軟件接口,支持可視化的實現,它是三維計算機圖形和模型庫,獨立于窗口系統和操作系統。
從開發人員角度看,OpenGL是一些繪圖指令或函數的集合。這些指令允許用戶 對二維幾何對象或三維幾何對象進行說明,允許用戶對對象實施操作以便把這些對象著色到幀存上。OpenGL可以方便地實現三維圖形的交互操作。
對于OpenGL的實現者而言,OpenGL是影響硬件操作的指令集合。如果硬件僅僅包括一個可以尋址的幀存,那么OpenGL就不得不在CPU上實現對象的描繪,OPenGL可以保存數量較大的狀態信息,這些狀態信息可以用來指示OpenGL如何往幀存中畫物體。有一些狀態,用戶可以直接使用,通過調用就可得到狀態值;而另一些狀態只有作用在所畫物體上,才能使其產生的影響可見。
4.1.1 OpenGL工作方式
OpenGL在Windows環境下的工作過程如圖4-2所示。OpenGL的庫函數被封裝在OPengl犯.dll動態鏈接庫中,從客戶應用程序發布的對openGL函數的調用首先被Opengl32處理,在傳給服務器后,被 winsry.dll進一步進行處理,然后傳給
【18】DDx(nivieeDriverInterface),最后傳遞給視屏驅動程序。
西南交通大學本科畢業設計(論文)第34頁
圖4-2 OpenGL在Windows環境下的工作過程
4.1.2 OpenGL繪制過程
OpenGL具有較強的圖形繪制能力,包括繪制物體、啟動光照、管理位圖、紋理映射、動畫、圖形增強及交互技術等功能。綜合以上功能,作為圖形硬件的軟件接口,OpenGL主要是將三維的物體投影到一個二維平面上,之后處理得到像素,進行顯示。OpenGL首先將物體轉化為可以描述物體幾何性質的頂點(Vertex)與描述圖像的像素(Pixel),在執行一系列操作后,最終將這些數據轉化成像素數據。也就是說,OpenGL是基于點的。有一組頂點定義的圖元(Pirmitive)執行完繪制操作后,后繼圖元才能作用。簡單的圖形生成過程如圖4-3所示。
西南交通大學本科畢業設計(論文)第35頁
圖4-3 OpenGL中簡單圖形的繪制過程
對圖元的定義:圖元由一組頂點定義,這一組頂點可以是一個或是多個頂點。每個頂點信息可以是二維的也可以是三維的。頂點信息可以由位置坐標、顏色值、法向量、紋理坐標組成。法線、紋理、顏色值會在處理每個頂點的過程中被使用。OpenGL將點、線段、多邊形等通過在函數glBegin()和glEnd()之間一系列頂點的數據繪制出圖形。
對圖元的操作:OpenGL用交換矩陣、光照、反走樣、像素操作等方法控制圖元的繪制。圖元的操作處理過程結束后,只留下圖元可見部分,準備進行光柵化(投影)處理。像素處理比較特殊:對像素、位圖、影像直接進行像素操作,然后進行光柵化,后者是有些數據被存儲在紋理中供頂點使用。
光柵化過程:將圖元轉化為二維圖像,完成每個圖像點的顏色與深度的計算,生成結果為基片,即各圖元的二維結果。
基片操作:處理過程包括基片是否遮擋、測試、融合等,最后得到像素,存入顯示幀緩沖中,完成整個繪制過程。
4.2 robot三維可視化框架建立
4.2.1 利用MFC建立單文檔應用程序框架
VC++6.0能夠創建多種類型的MFC應用程序,不同的應用程序具有不同的應用程序框架,VC++6.0系統的設計者創建了程序框架生成工具Appwizard,用它來建 西南交通大學本科畢業設計(論文)第36頁 立開發各種MFC應用程序所需要的程序框架,通過APpwizard就可移動生成包含基本程序框架的應用程序包,這樣就可以在此基礎上進行程序設計。在參考許多數字
【16】處理、圖像處理軟件的基礎上,決定采用單文檔的應用程序框架。
? 創建工程:啟動VC++6.0進入VC++的集成開發環境,新建一個工程,選擇 MFC Appwizard選項,在應用程序類型中選擇 singledocument(單文檔)類型。? 設置編譯環境:設置編譯環境主要包括設置包含文件和設置庫文件路徑。? 加入OpenGL庫:選擇菜單Project?Setting,將彈出 ProjectSettings對話框,在該對話框選擇Link標簽頁,如圖4-4所示。在該對話框中的Object/Library Module文本框中加入opengl32.lib、glu32.lib、glaux.lib三個函數庫文件。在頭文件中加入 gl/glu.h(OpenGL核心函數的頭文件)和 gl/glut.h(使用函數的頭文件),這樣就可以調用openGL軟件包了。
圖4-4 加入OpenGL庫函數
這樣,我們就很容易的建立了一個在Windows環境下進行OpenGL編程開發的框架,按快捷鍵F7進行編譯,按快捷鍵F5執行就會彈出一個窗口,包含一個主菜單、一個工具條和一個狀態條等部件。如下圖4-5所示:
西南交通大學本科畢業設計(論文)第37頁
圖4-5 程序框架
4.2.2 設置OpenGL繪圖環境
1)創建RC 在windows環境下建立OpenGL繪制窗口是通過建立設備描述表(DC)和繪制描述表(RC)來實現的,而RC和DC是連接在一塊的。因此,為了建立RC,先要建立DC。用ChoosePixelFormat()選擇系統中與pfd描述的像素格式最為匹配的返回;本文現在消息響應函數OnCreate里調用InitializeOpenGL(m_pDC)函數,然后又通過后者調用SetupPixelFormat()函數來設置DC像素格式完成繪圖環境的設置工作;
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct){ if(CView::OnCreate(lpCreateStruct)==-1)
...return 0;} return-1;m_pDC = new CClientDC(this);InitializeOpenGL(m_pDC);//調用函數
西南交通大學本科畢業設計(論文)第38頁
BOOL CMyView::InitializeOpenGL(CDC* pDC){ m_pDC = pDC;SetupPixelFormat();//設置像素格式
m_hRC = ::wglCreateContext(m_pDC->GetSafeHdc());::wglMakeCurrent(m_pDC->GetSafeHdc(), m_hRC);//選擇像素格式
return TRUE;} 2)設置坐標變化方式
每次窗口創建或改變大小的時候,都要重新設置視口大小,因此我們在OnsizeO中進行視口設置。而投影變換和視點一模型變換的初始設置也可以放在里面進行。
void CMyView::OnSize(UINT nType, int cx, int cy){ CView::OnSize(nType, cx, cy);if(cy==0)
{cy=1;}
// 防止被零除
glViewport(0,0,cx,cy);// 重置當前視口
glLoadIdentity();視投影矩陣 glMatrixMode(GL_PROJECTION);// 選擇投影矩陣
// 重置投影矩陣
gluPerspective(45.0f,(float)cx/(float)cy,0.1f,2000.0f);//設置透 glMatrixMode(GL_MODELVIEW);// 選擇模型觀察矩陣
glLoadIdentity();// 重置觀察模型矩陣 } 3)繪圖顯示
完成上面的設置以后我們就可以利用OpenGL進行繪圖了。本文為了程序的簡約,先在OnDraw()里調用RenderScene()函數,然后在RenderScene()里調用所有繪圖顯示函數。代碼如下:
void CMyView::OnDraw(CDC* pDC){ CMyDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);RenderScene();//調用繪圖函數 }
西南交通大學本科畢業設計(論文)第39頁 4)程序結束,釋放資源。
調用消息響應函數OnDestroy(),在函數里完成相關資源的釋放。void CMyView::OnDestroy(){ CView::OnDestroy();::wglMakeCurrent(0,0);::wglDeleteContext(m_hRC);if(m_hPalette)DeleteObject(m_hPalette);if(m_pDC){
}...} 最后按照參考書上的方法設置了全屏顯示按鈕,可以實現全屏顯示,同時可以
【16】進行屏幕工具欄的顯示縮放。delete m_pDC;編譯運行結果如圖4-6所示:
圖4-6 設置完成的robot三維場景框架
西南交通大學本科畢業設計(論文)第40頁
4.3 機械手三維模型的建立
OpenGL中模型的建立一般有兩種思路,一種通過一個是用3dsMax繪制出模型并將其轉換成特定格式的文件,然后導入到程序中;另一個是直接用OpenGL的函數繪制出所需要的模型。導入的模型比較美觀漂亮,但是實現起來技術難度比較大,而OpenGL的函數繪制出的模型則比較粗糙,但是靈活性好,實現起來也比較容易。
4.3.1 導入機械手模型
利用openGL建立復雜物體的三維模型是一件比較麻煩和枯燥的事情,因為OPenGL并沒有提供三維模型的高級命令,它也是通過基本的幾何圖元一點、線及多邊形來建立三維立體模型的。而利用3dsMax建立復雜物體的模型則顯得輕松的多。可是,用3dsMax制作的動畫沒有交互性,無法實時控制,而這正是OpenGL的優勢所在。把這些模型轉換成OpenGL程序,再對其進行控制是一種比較理想的方法。所以,如果可以把OpenGL與3dsMax結合起來實現三維仿真則可以事半功倍。但是由于時間和知識的限制,無法完成對3D模型的讀取工作,所以查找了一些讀取3D模型文件的代碼,利用這些代碼將機械手模型轉換成了OpenGL程序,將模型導入進了OpenGL里。為了節約時間作者沒有在3dsMax里建立機械手的模型,而是在比較熟悉的Auto CAD里建立了機械手的模型,然后通過3dsMax軟件模型文件導出成接口程序可識別的*.ASE格式的文件,再通過接口程序導入進OpenGL里。導入前的在3dsMax里的模型如圖4-7所示:
圖4-7 3dsMax里的機械手模型
西南交通大學本科畢業設計(論文)第41頁
導入后的機械手模型經過坐標變換、縮放、改變顏色并加入光照照亮后如下圖4-8所示:
圖4-8 導入的機械手模型
4.3.2 在OpenGL中建立機械手的模型
雖然實現了模型的導入,但是只實現了整體導入,未能實現分塊導入機械手的模型,所以在OpenGL只實現了整體模型的控制,很顯然滿足不了機械手運動的要求,所以導入的模型只能作為仿真場景的一部分做靜態顯示。為了繼續進行后續工作,作者直接在OpenGL中通過基本的幾何圖元一點、線及多邊形建立了機械手的三維立體模型。機械手模型主要由底座、腰部、關節、手臂這幾個部分組成,由于底座、腰部和關節都是圓柱型的,所以作者先利用glu庫函數(gluCylinder和gluDisk)【17】畫出一個共用的圓柱,然后通過不同的縮放(glScalef)、轉移(glTranslatef)、旋轉(glRotatef)變換繪制出了底座,腰部和關節的模型。這里取繪制關節的函數作為例子介紹繪制過程,代碼如下:
void CMyView::joint(){ glPushMatrix();//模型入棧
GLUquadricObj *obj1;obj1=gluNewQuadric();//創建一個描述當前繪圖模式、定位、光照模式、西南交通大學本科畢業設計(論文)第42頁 紋理模式和回調函數的不透明的狀態變量
glTranslatef(0.0,0.0,-5.0);//向Z軸負方向即屏幕里移動5個像素的距離
glPushMatrix();gluCylinder(obj1,10.0,10.0,10.0,360.0,2);//繪制一個頂面半徑、底面半徑和高度都為10的圓柱面
glPopMatrix();glPushMatrix();gluDisk(obj1,0.0,10.0,360,1);// 繪制一個半徑為10的圓片堵住上述圓柱面的底面
glPopMatrix();glPushMatrix();glTranslatef(0.0,0.0,10);//向Z軸正方向即屏幕外移動10個距離 gluDisk(obj1,0.0,10.0,360,1);//繪制一個半徑為10的圓片堵住上述圓柱面的頂面
glPopMatrix();glPopMatrix();//模型出棧 } 繪制手臂也很簡單,手臂其實在這里同樣是通過對一個立方體進行不同的然后通過不同的縮放(glScalef)、轉移(glTranslatef)、旋轉(glRotatef)變換來完成繪制。OpenGL里也有對應畫立方體的庫函數,但是由于不太清楚怎么對用庫函數繪制的模型進行紋理貼圖,所以選用了一種比較熟悉和簡單的方式來繪制,就是通過6個面來組合成一個立方體。對每個面都可以進行不同的紋理貼圖。在后面的仿真場景建立過程中同樣利用這個四方體也完成了實驗室房間、木質方桌、大理石長桌、凳子和儲物箱的繪制。繪制立方體的代碼如下:
void CMyView::shoubi(){ glPushMatrix();glColor4f(1.0f,1.0f,1.0f,1.0f);//定義面的顏色為白色
glBegin(GL_QUADS);//開始繪制
// 前面
glTexCoord2f(0.0f, 0.0f);glVertex3f(-100.0f, 0.0f,-100.0f);// 紋理和四邊形的左下
glTexCoord2f(1.0f, 0.0f);glVertex3f(100.0f, 0.0f,-100.0f);西南交通大學本科畢業設計(論文)第43頁 // 紋理和四邊形的右下
glTexCoord2f(1.0f, 1.0f);glVertex3f(100.0f, 100.0f,-100.0f);// 紋理和四邊形的右上
glTexCoord2f(0.0f, 1.0f);glVertex3f(-100.0f, 100.0f,-100.0f);// 紋理和四邊形的左上
glEnd();glBegin(GL_QUADS);// 后面
glTexCoord2f(1.0f, 0.0f);glVertex3f(-100.0f, 0.0f, 100.0f);// 紋理和四邊形的右下
glTexCoord2f(1.0f, 1.0f);glVertex3f(-100.0f, 100.0f, 100.0f);// 紋理和四邊形的右上
glTexCoord2f(0.0f, 1.0f);glVertex3f(100.0f, 100.0f, 100.0f);// 紋理和四邊形的左上
glTexCoord2f(0.0f, 0.0f);glVertex3f(100.0f, 0.0f,100.0f);// 紋理和四邊形的左下
} 繪制完機械手的各個部件以后就可以通過縮放(glScalef)、轉移(glTranslatef)、旋轉(glRotatef)變換來完成整個機械手模型的繪制。代碼如下:
void CMyView::manipulator(){ glPushMatrix();glTranslatef(0.0,-80.0,-20.0);//分別沿Y和X軸負方向移動80和20 //glRotatef(0.0,1.0,0.0,0.0);glRotatef(-hand[i].rot1,0.0,1.0,0.0);//繞Y軸旋轉-hand[i].rot1(第一個關節角?1第i時刻的值)
glPushMatrix();glTranslatef(0.0,-15.0,0.0);glRotatef(-90,1.0,0.0,0.0);//沿X軸逆時針旋轉90°
glPushMatrix();glEnd();glPopMatrix();...