基于力/力矩傳感器的機(jī)器人力控制實驗作業(yè)系統(tǒng)
0 引言
隨著機(jī)器人技術(shù)的發(fā)展,機(jī)器人位置控制技術(shù)和計算機(jī)技術(shù)的日趨完善,人們已經(jīng)不再滿足于只讓機(jī)器人從事象點焊,弧焊,噴漆和搬運等不與環(huán)境物體接觸的工作任務(wù),而是試圖用機(jī)器人來完成象裝配,浮游物體抓取,邊緣跟蹤和去毛刺等與環(huán)境存在接觸的任務(wù)。然而由于外部環(huán)境和機(jī)器人本體的非理想化,無法消除誤差的存在,因而純位置控制方式下的機(jī)器人在從事這類工作的時候?qū)⒉豢杀苊獾禺a(chǎn)生一些不希望的環(huán)境接觸力,而且這種不希望的接觸力往往又是很大的,以至于損壞工件或機(jī)械手本身,致使任務(wù)無法正常進(jìn)行。為此,可以將六自由度腕力傳感器與機(jī)器人結(jié)合,組成力控制系統(tǒng)來完成預(yù)定作業(yè)任務(wù)。
1 系統(tǒng)組成
基于力/力矩傳感器的力控制系統(tǒng)由六維力/力矩傳感器、PC微型計算機(jī)、PUMA562機(jī)器人等部分組成。其中:機(jī)器人采用美國Unimation公司生產(chǎn)的PUMA562型通用可編程工業(yè)機(jī)器人;主控計算機(jī)為一臺(Pentium166)PC機(jī),主控計算機(jī)是實驗系統(tǒng)的核心控制單元,腕力傳感器獲得的數(shù)據(jù)通過計算機(jī)的并行打印口傳給計算機(jī),并由其完成計算機(jī)力/力矩的任務(wù),然后根據(jù)傳感器的力/力矩信息或者按預(yù)定的策略,計算產(chǎn)生機(jī)器人的運動軌跡,最后,通過與機(jī)器人連接的智能串行通訊卡,對機(jī)器人進(jìn)行實時的路徑修正。
2 智能串行通訊接口的設(shè)計
本系統(tǒng)通過計算機(jī)的并行通訊口與腕力傳感器進(jìn)行數(shù)據(jù)交換,計算出力/力矩等信息后,控制機(jī)器人進(jìn)行作業(yè),由于計算機(jī)還要承擔(dān)與機(jī)器人的數(shù)據(jù)交換等通訊任務(wù),要在極短的時間段里根據(jù)復(fù)雜的協(xié)議完成通訊,給主控計算機(jī)帶來了巨大的負(fù)擔(dān)。因此,專門設(shè)計了智能串行通訊接口卡把機(jī)器人與主控計算機(jī)通訊的任務(wù)分離出來,使得主控計算機(jī)只需向串行通訊電路提供修正數(shù)據(jù),拋開了復(fù)雜的通訊協(xié)議,并且在不需要修正時不必傳送修正數(shù)據(jù),從而提高整個系統(tǒng)的性能。
智能串行通訊接口卡插在主控計算機(jī)的I/O擴(kuò)展槽內(nèi),與主控計算機(jī)為并行數(shù)據(jù)傳輸,并把數(shù)據(jù)自動傳送給機(jī)器人。具體如下:
1、接收PUMA機(jī)器人的ALTER過程初始化信息塊,發(fā)送給PUMA機(jī)器人初始化應(yīng)答信息塊;
2、接收PUMA機(jī)器人的正常修正信息塊,檢測后傳送主控計算機(jī);
3、接收主控計算機(jī)路徑修正值,進(jìn)行超限檢測,將正確值送給機(jī)器人;
4、若在一個修正周期中,主控計算機(jī)沒有送來修正值,串行通訊電路會正常應(yīng)答機(jī)器人,不作修正;
5、與PUMA機(jī)器人通訊時,自動添加協(xié)議的內(nèi)容,自動按照通訊協(xié)議接收數(shù)據(jù)。
利用單片機(jī)片內(nèi)UART電路,經(jīng)電平轉(zhuǎn)換后與PUMA機(jī)器人控制器的ACCESSORY接口,構(gòu)成標(biāo)準(zhǔn)的RS-232C串行通訊通道。單片機(jī)與PC機(jī)之間采用74LS373和74LS374組成的雙向緩沖八位并行接口,并采用中斷和查詢相結(jié)合的方式控制數(shù)據(jù)流。這是由于在兩者交換數(shù)據(jù)時,PC機(jī)是主動的一方,在PC機(jī)需要輸入或輸出PUMA機(jī)器人關(guān)節(jié)角度數(shù)據(jù)時,通過對雙向緩沖器讀或?qū)?,將分別向單片機(jī)發(fā)出INT0或INT1中斷請求。另一方面由于所交換的數(shù)據(jù)是{DATAS}中的16個有效數(shù)據(jù)字節(jié),故在單片機(jī)響應(yīng)中斷后便與PC機(jī)之間進(jìn)行整塊數(shù)據(jù)的發(fā)送或接收,在字節(jié)間則采用查詢方式。
PUMA機(jī)器人、通訊電路和PC機(jī)三者之間存在數(shù)據(jù)流速度的協(xié)調(diào)性問題,這一問題主要是由PC機(jī)的運算時間不一定正好為28ms導(dǎo)致的。如果PC機(jī)在28ms內(nèi)沒有新的運算結(jié)果輸出給通訊電路,通訊電路則應(yīng)按上次結(jié)果發(fā)送;但如果PC機(jī)在28ms內(nèi)進(jìn)行了多次運算,而且當(dāng)某些運算結(jié)果具有累加性質(zhì)時,將導(dǎo)致機(jī)器人失控。為了避免后一種情況,通訊電路與PC機(jī)之間建立了同步握手關(guān)系,即單片機(jī)在收到PUMA機(jī)器人一組數(shù)據(jù)后將P1.7置1,而在收到一級PC機(jī)數(shù)據(jù)后將其清0,當(dāng)PC機(jī)查詢到該信號為1時便與通訊電路進(jìn)行一次數(shù)據(jù)交換。
3 串行通訊軟件設(shè)計
主控計算機(jī)與機(jī)器人進(jìn)行串行通訊的關(guān)鍵在于單片機(jī)通訊程序,主要功能包括:
1、接受PUMA機(jī)器人的串行通訊數(shù)據(jù),并完成"拆包"工作;
2、在接受的同時,向PUMA機(jī)器人發(fā)送完整的通訊數(shù)據(jù),在此期間對欲發(fā)送的進(jìn)行"打包";
3、與計算機(jī)之間進(jìn)行數(shù)據(jù)塊的并行交換;
4、對通訊過程中的錯誤進(jìn)行檢驗和處理,特別是檢驗法送給PUMA機(jī)器人的位置修正量,防止其超限,以保證安全性;
5、過程控制,包括數(shù)據(jù)協(xié)調(diào)、通訊結(jié)束控制等。
通過以上功能的實現(xiàn),著重解決了以下問題:
計算機(jī)將位置修正量輸出到單片機(jī)內(nèi)RAM中緩沖后,再轉(zhuǎn)送給PUMA機(jī)器人,故如果在單片機(jī)正與PUMA機(jī)器人通訊時,計算機(jī)用中斷方式請求與單片機(jī)傳輸數(shù)據(jù),為了保證這兩組數(shù)據(jù)間的完全隔離,特別是防止某組修正量低字節(jié)已發(fā)給PUMA機(jī)器人時計算機(jī)傳來新數(shù)據(jù),導(dǎo)致兩次數(shù)據(jù)間的"混迭",通訊程序中采用了兩級緩沖方式,即從計算機(jī)傳來的數(shù)據(jù)先進(jìn)入第一級緩沖區(qū),在向PUMA機(jī)器人發(fā)送數(shù)據(jù)前再將整體移入第二級緩沖區(qū),以后便發(fā)送第二級緩沖區(qū)中的數(shù)據(jù),同理,在接收PUMA機(jī)器人數(shù)據(jù)時也采用了兩級緩沖方式。
一旦PUMA機(jī)器人因故停止通訊,由定時器T0構(gòu)成的時間監(jiān)視器將向P1.6發(fā)出低電平,迫使單片機(jī)復(fù)位,該時間長度為65ms。為此每次收到PUMA機(jī)器人數(shù)據(jù)后將定時器T0清零。
由于填充的字節(jié)個數(shù)不等的原因,串行接收和發(fā)送的數(shù)據(jù)字節(jié)數(shù)不完全相等,因而串行接收和發(fā)送分別由獨立的子程序處理,只有兩者都完成才結(jié)束本周期的通訊。
與計算機(jī)進(jìn)行交換有效數(shù)據(jù)的INT0和INT1中斷服務(wù)子程序,兩者連起來的執(zhí)行時間約為380ms,串行接收或發(fā)送一個字節(jié)(共十位)的時間為502ms,因而不可能漏收每一個PUMA機(jī)器人發(fā)來的串行字節(jié)。
4 結(jié)束語
通過本文建立了基于力/力矩腕力傳感器的機(jī)器人力控制作業(yè)實驗系統(tǒng)。分析了在實時路徑修正基礎(chǔ)上設(shè)計的通訊接口卡的硬件設(shè)計、工作原理,并設(shè)計了通訊軟件,使主控計算機(jī)與PUMA機(jī)器人能夠順利地進(jìn)行數(shù)據(jù)交換。通過本實驗系統(tǒng)可以順利完成基于力控制的零件裝配作業(yè)。
隨著機(jī)器人技術(shù)的發(fā)展,機(jī)器人位置控制技術(shù)和計算機(jī)技術(shù)的日趨完善,人們已經(jīng)不再滿足于只讓機(jī)器人從事象點焊,弧焊,噴漆和搬運等不與環(huán)境物體接觸的工作任務(wù),而是試圖用機(jī)器人來完成象裝配,浮游物體抓取,邊緣跟蹤和去毛刺等與環(huán)境存在接觸的任務(wù)。然而由于外部環(huán)境和機(jī)器人本體的非理想化,無法消除誤差的存在,因而純位置控制方式下的機(jī)器人在從事這類工作的時候?qū)⒉豢杀苊獾禺a(chǎn)生一些不希望的環(huán)境接觸力,而且這種不希望的接觸力往往又是很大的,以至于損壞工件或機(jī)械手本身,致使任務(wù)無法正常進(jìn)行。為此,可以將六自由度腕力傳感器與機(jī)器人結(jié)合,組成力控制系統(tǒng)來完成預(yù)定作業(yè)任務(wù)。
1 系統(tǒng)組成
基于力/力矩傳感器的力控制系統(tǒng)由六維力/力矩傳感器、PC微型計算機(jī)、PUMA562機(jī)器人等部分組成。其中:機(jī)器人采用美國Unimation公司生產(chǎn)的PUMA562型通用可編程工業(yè)機(jī)器人;主控計算機(jī)為一臺(Pentium166)PC機(jī),主控計算機(jī)是實驗系統(tǒng)的核心控制單元,腕力傳感器獲得的數(shù)據(jù)通過計算機(jī)的并行打印口傳給計算機(jī),并由其完成計算機(jī)力/力矩的任務(wù),然后根據(jù)傳感器的力/力矩信息或者按預(yù)定的策略,計算產(chǎn)生機(jī)器人的運動軌跡,最后,通過與機(jī)器人連接的智能串行通訊卡,對機(jī)器人進(jìn)行實時的路徑修正。
2 智能串行通訊接口的設(shè)計
本系統(tǒng)通過計算機(jī)的并行通訊口與腕力傳感器進(jìn)行數(shù)據(jù)交換,計算出力/力矩等信息后,控制機(jī)器人進(jìn)行作業(yè),由于計算機(jī)還要承擔(dān)與機(jī)器人的數(shù)據(jù)交換等通訊任務(wù),要在極短的時間段里根據(jù)復(fù)雜的協(xié)議完成通訊,給主控計算機(jī)帶來了巨大的負(fù)擔(dān)。因此,專門設(shè)計了智能串行通訊接口卡把機(jī)器人與主控計算機(jī)通訊的任務(wù)分離出來,使得主控計算機(jī)只需向串行通訊電路提供修正數(shù)據(jù),拋開了復(fù)雜的通訊協(xié)議,并且在不需要修正時不必傳送修正數(shù)據(jù),從而提高整個系統(tǒng)的性能。
智能串行通訊接口卡插在主控計算機(jī)的I/O擴(kuò)展槽內(nèi),與主控計算機(jī)為并行數(shù)據(jù)傳輸,并把數(shù)據(jù)自動傳送給機(jī)器人。具體如下:
1、接收PUMA機(jī)器人的ALTER過程初始化信息塊,發(fā)送給PUMA機(jī)器人初始化應(yīng)答信息塊;
2、接收PUMA機(jī)器人的正常修正信息塊,檢測后傳送主控計算機(jī);
3、接收主控計算機(jī)路徑修正值,進(jìn)行超限檢測,將正確值送給機(jī)器人;
4、若在一個修正周期中,主控計算機(jī)沒有送來修正值,串行通訊電路會正常應(yīng)答機(jī)器人,不作修正;
5、與PUMA機(jī)器人通訊時,自動添加協(xié)議的內(nèi)容,自動按照通訊協(xié)議接收數(shù)據(jù)。
利用單片機(jī)片內(nèi)UART電路,經(jīng)電平轉(zhuǎn)換后與PUMA機(jī)器人控制器的ACCESSORY接口,構(gòu)成標(biāo)準(zhǔn)的RS-232C串行通訊通道。單片機(jī)與PC機(jī)之間采用74LS373和74LS374組成的雙向緩沖八位并行接口,并采用中斷和查詢相結(jié)合的方式控制數(shù)據(jù)流。這是由于在兩者交換數(shù)據(jù)時,PC機(jī)是主動的一方,在PC機(jī)需要輸入或輸出PUMA機(jī)器人關(guān)節(jié)角度數(shù)據(jù)時,通過對雙向緩沖器讀或?qū)?,將分別向單片機(jī)發(fā)出INT0或INT1中斷請求。另一方面由于所交換的數(shù)據(jù)是{DATAS}中的16個有效數(shù)據(jù)字節(jié),故在單片機(jī)響應(yīng)中斷后便與PC機(jī)之間進(jìn)行整塊數(shù)據(jù)的發(fā)送或接收,在字節(jié)間則采用查詢方式。
PUMA機(jī)器人、通訊電路和PC機(jī)三者之間存在數(shù)據(jù)流速度的協(xié)調(diào)性問題,這一問題主要是由PC機(jī)的運算時間不一定正好為28ms導(dǎo)致的。如果PC機(jī)在28ms內(nèi)沒有新的運算結(jié)果輸出給通訊電路,通訊電路則應(yīng)按上次結(jié)果發(fā)送;但如果PC機(jī)在28ms內(nèi)進(jìn)行了多次運算,而且當(dāng)某些運算結(jié)果具有累加性質(zhì)時,將導(dǎo)致機(jī)器人失控。為了避免后一種情況,通訊電路與PC機(jī)之間建立了同步握手關(guān)系,即單片機(jī)在收到PUMA機(jī)器人一組數(shù)據(jù)后將P1.7置1,而在收到一級PC機(jī)數(shù)據(jù)后將其清0,當(dāng)PC機(jī)查詢到該信號為1時便與通訊電路進(jìn)行一次數(shù)據(jù)交換。
3 串行通訊軟件設(shè)計
主控計算機(jī)與機(jī)器人進(jìn)行串行通訊的關(guān)鍵在于單片機(jī)通訊程序,主要功能包括:
1、接受PUMA機(jī)器人的串行通訊數(shù)據(jù),并完成"拆包"工作;
2、在接受的同時,向PUMA機(jī)器人發(fā)送完整的通訊數(shù)據(jù),在此期間對欲發(fā)送的進(jìn)行"打包";
3、與計算機(jī)之間進(jìn)行數(shù)據(jù)塊的并行交換;
4、對通訊過程中的錯誤進(jìn)行檢驗和處理,特別是檢驗法送給PUMA機(jī)器人的位置修正量,防止其超限,以保證安全性;
5、過程控制,包括數(shù)據(jù)協(xié)調(diào)、通訊結(jié)束控制等。
通過以上功能的實現(xiàn),著重解決了以下問題:
計算機(jī)將位置修正量輸出到單片機(jī)內(nèi)RAM中緩沖后,再轉(zhuǎn)送給PUMA機(jī)器人,故如果在單片機(jī)正與PUMA機(jī)器人通訊時,計算機(jī)用中斷方式請求與單片機(jī)傳輸數(shù)據(jù),為了保證這兩組數(shù)據(jù)間的完全隔離,特別是防止某組修正量低字節(jié)已發(fā)給PUMA機(jī)器人時計算機(jī)傳來新數(shù)據(jù),導(dǎo)致兩次數(shù)據(jù)間的"混迭",通訊程序中采用了兩級緩沖方式,即從計算機(jī)傳來的數(shù)據(jù)先進(jìn)入第一級緩沖區(qū),在向PUMA機(jī)器人發(fā)送數(shù)據(jù)前再將整體移入第二級緩沖區(qū),以后便發(fā)送第二級緩沖區(qū)中的數(shù)據(jù),同理,在接收PUMA機(jī)器人數(shù)據(jù)時也采用了兩級緩沖方式。
一旦PUMA機(jī)器人因故停止通訊,由定時器T0構(gòu)成的時間監(jiān)視器將向P1.6發(fā)出低電平,迫使單片機(jī)復(fù)位,該時間長度為65ms。為此每次收到PUMA機(jī)器人數(shù)據(jù)后將定時器T0清零。
由于填充的字節(jié)個數(shù)不等的原因,串行接收和發(fā)送的數(shù)據(jù)字節(jié)數(shù)不完全相等,因而串行接收和發(fā)送分別由獨立的子程序處理,只有兩者都完成才結(jié)束本周期的通訊。
與計算機(jī)進(jìn)行交換有效數(shù)據(jù)的INT0和INT1中斷服務(wù)子程序,兩者連起來的執(zhí)行時間約為380ms,串行接收或發(fā)送一個字節(jié)(共十位)的時間為502ms,因而不可能漏收每一個PUMA機(jī)器人發(fā)來的串行字節(jié)。
4 結(jié)束語
通過本文建立了基于力/力矩腕力傳感器的機(jī)器人力控制作業(yè)實驗系統(tǒng)。分析了在實時路徑修正基礎(chǔ)上設(shè)計的通訊接口卡的硬件設(shè)計、工作原理,并設(shè)計了通訊軟件,使主控計算機(jī)與PUMA機(jī)器人能夠順利地進(jìn)行數(shù)據(jù)交換。通過本實驗系統(tǒng)可以順利完成基于力控制的零件裝配作業(yè)。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
下一篇:智能傳感器