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