摘 要:本文設(shè)計(jì)了一個(gè)基于Lab VIEW平臺(tái)的LEGO Mind storms輪式機(jī)器人運(yùn)動(dòng)軌跡實(shí)時(shí)繪制系統(tǒng),本系統(tǒng)采用上下位機(jī)結(jié)構(gòu),使用Lab VIEW的圖形化編程功能,設(shè)計(jì)了簡單易用的上位機(jī)人機(jī)界面,并通過相關(guān)的函數(shù)模塊化實(shí)現(xiàn)了對輪式機(jī)器人的控制和運(yùn)動(dòng)軌跡實(shí)時(shí)繪制功能。本文重點(diǎn)探討了基于機(jī)器人移動(dòng)方向的角度值和移動(dòng)距離值,對繪制運(yùn)動(dòng)軌跡所需的平面坐標(biāo)值的計(jì)算和機(jī)器人運(yùn)動(dòng)軌跡的繪制。
關(guān)鍵詞:Lab VIEW;運(yùn)動(dòng)軌跡;實(shí)時(shí)繪制;LEGO Mind storms;輪式機(jī)器人
中圖分類號(hào):TP242 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2013) 09-0000-04
機(jī)器人運(yùn)動(dòng)軌跡的跟蹤繪制是機(jī)器人學(xué)的一個(gè)非常重要的問題,是移動(dòng)機(jī)器人所需具備的一種重要功能,利用機(jī)器人運(yùn)動(dòng)軌跡的跟蹤繪制功能可以使機(jī)器人能夠完成對一些未確定的行走路徑進(jìn)行初步探索和規(guī)劃。在完成機(jī)器人運(yùn)動(dòng)軌跡的跟蹤和繪制后,可以將其應(yīng)用到機(jī)器人的全局路徑規(guī)劃中,使機(jī)器人能夠更容易和更準(zhǔn)確的沿規(guī)劃的路徑運(yùn)動(dòng),達(dá)到指定的目的地和完成給定的任務(wù)。
Lab VIEW (laboratory virtual instrument engineering work-bench)是美國NI公司開發(fā)的優(yōu)秀的圖形化編程軟件,是一個(gè)虛擬儀器工程平臺(tái),具有編程直觀、快捷、高效等特點(diǎn)[1]。對于使用虛擬儀器技術(shù)應(yīng)用于機(jī)器人數(shù)據(jù)采集和運(yùn)動(dòng)控制方面的研究,目前已有很多的學(xué)者進(jìn)行了大量的研究[2]-[5],并發(fā)表了相關(guān)的文章或論文,但對于如何使用Lab VIEW實(shí)時(shí)跟蹤繪制機(jī)器人的運(yùn)動(dòng)軌跡的探討卻不是很多。
本文針對輪式機(jī)器人運(yùn)動(dòng)軌跡的跟蹤繪制問題,通過角度傳感器獲取伺服電機(jī)的旋轉(zhuǎn)角度和驅(qū)動(dòng)輪的周長計(jì)算出機(jī)器人的移動(dòng)距離,再利用電子羅盤傳感器上獲取的機(jī)器人運(yùn)動(dòng)方向角度,實(shí)現(xiàn)了對輪式機(jī)器人的運(yùn)動(dòng)軌跡進(jìn)行跟蹤和繪制。
1 系統(tǒng)構(gòu)成
本實(shí)驗(yàn)平臺(tái)總體上包含上位機(jī)和下位機(jī)兩部分:上位機(jī)的硬件部分主要由帶藍(lán)牙通訊模塊的PC機(jī)構(gòu)成,軟件部分采用Lab VIEW編寫完成;下位機(jī)硬件部分主要采用LEGO Mind storms機(jī)器人套件,利用它只需要進(jìn)行簡單的硬件連接就可以快速的搭建出實(shí)驗(yàn)用輪式機(jī)器人硬件平臺(tái),而且還可以使用內(nèi)置的藍(lán)牙通訊模塊與上位機(jī)進(jìn)行通訊。系統(tǒng)的整體框架,如圖1所示。
圖1 系統(tǒng)整體框架圖
2 系統(tǒng)硬件結(jié)構(gòu)
本研究的系統(tǒng)硬件由PC機(jī)(帶藍(lán)牙通訊模塊)、LEGO Mind storms機(jī)器人套件等構(gòu)成。PC機(jī)作為上位機(jī),可以向下位機(jī)傳送指令完成機(jī)器人運(yùn)動(dòng)控制、實(shí)時(shí)傳感器值顯示、實(shí)時(shí)繪制運(yùn)動(dòng)軌跡、實(shí)驗(yàn)參數(shù)設(shè)置等任務(wù)。下位機(jī)采用由LEGO NXT 9797搭建的雙驅(qū)輪式移動(dòng)機(jī)器人,由NXT32位中央控制器、帶旋轉(zhuǎn)角度傳感器的伺服電機(jī)、電子羅盤傳感器和超聲波傳感器等組成。機(jī)器人的運(yùn)動(dòng)方式,通過控制左右輪速差的方式來完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本運(yùn)動(dòng)動(dòng)作。NXT 32位中央控制器采集機(jī)器人上的伺服電機(jī)旋轉(zhuǎn)角度、機(jī)器人行進(jìn)方向(角度)、超聲波傳感器等數(shù)據(jù)信息,使用內(nèi)置的藍(lán)牙通訊模塊(從機(jī))將數(shù)據(jù)發(fā)送出去,與之配對上位機(jī)上的藍(lán)牙通訊模塊(主機(jī))接收數(shù)據(jù)后,由Lab VIEW對接收到的數(shù)據(jù)進(jìn)行處理顯示,實(shí)現(xiàn)實(shí)時(shí)繪制機(jī)器人的運(yùn)動(dòng)軌跡。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件設(shè)計(jì)以Lab VIEW 2012作為開發(fā)平臺(tái),完成輪式機(jī)器人運(yùn)動(dòng)軌跡的實(shí)時(shí)繪制功能。在Lab VIEW平臺(tái)上,可以方便而快速的利用模塊化函數(shù)建立上位機(jī)與LEGO NXT主控制器之間的通信,并可以指定USB或藍(lán)牙等通信方式。同時(shí)對LEGO Mind storms機(jī)器人的控制和常用傳感器值的獲取,也同樣可以直接調(diào)用模塊化的函數(shù),從而使機(jī)器人的運(yùn)動(dòng)控制和調(diào)用相關(guān)傳感器值變的非常簡單,因此本文重點(diǎn)對實(shí)驗(yàn)項(xiàng)目中的機(jī)器人運(yùn)動(dòng)軌跡實(shí)時(shí)繪制部分的設(shè)計(jì)進(jìn)行探討。
在Lab VIEW中,利用圖形控制可以快捷的建立直觀的操控界面,本系統(tǒng)軟件的上位機(jī)操控界面包括機(jī)器人運(yùn)動(dòng)控制區(qū)、前方障礙物雷達(dá)圖示區(qū)、機(jī)器人方位顯示羅盤和運(yùn)動(dòng)軌跡繪制區(qū)及參數(shù)設(shè)置顯示區(qū)等部分組成,如圖2所示。其中機(jī)器人運(yùn)動(dòng)控制區(qū),用于對機(jī)器人的運(yùn)動(dòng)進(jìn)行控制,包括前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和功率的設(shè)置顯示;前方障礙物雷達(dá)圖示區(qū),用于顯示前方超聲波傳感器測到障礙物的距離并以雷達(dá)圖示的方式顯示,以方便對機(jī)器人運(yùn)動(dòng)的操控;機(jī)器人方位顯示羅盤,用于顯示當(dāng)前機(jī)器人行進(jìn)的方向及角度值;運(yùn)動(dòng)軌跡繪制區(qū),用于實(shí)時(shí)繪制機(jī)器人的運(yùn)動(dòng)軌跡;參數(shù)設(shè)置顯示區(qū),用于設(shè)置軌跡繪制比例和機(jī)器人輪胎直徑等參數(shù),并顯示繪制坐標(biāo)等一些常用的實(shí)時(shí)參數(shù)。
圖2 輪式機(jī)器人運(yùn)動(dòng)軌跡繪制系統(tǒng)上位機(jī)操控界面
本文提出的機(jī)器人運(yùn)動(dòng)軌跡是指操控輪式機(jī)器人在前進(jìn)或后退移動(dòng)時(shí)的運(yùn)動(dòng)路徑,該運(yùn)動(dòng)路徑是由一系列的具有起點(diǎn)和終點(diǎn)的線段組成,每條線段是指機(jī)器人移動(dòng)時(shí)的距離。線段的起點(diǎn)和終點(diǎn),用一個(gè)平面坐標(biāo)(X,Y)來表示,其中(XS,YS)和(XT,YT)分別代表起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo)。在機(jī)器人移動(dòng)時(shí)根據(jù)當(dāng)前的起點(diǎn)和終點(diǎn)坐標(biāo)值繪制出運(yùn)動(dòng)軌跡線段。機(jī)器人運(yùn)動(dòng)軌跡實(shí)時(shí)繪制的基本工作流程,如圖3所示。
圖3 運(yùn)動(dòng)軌跡實(shí)時(shí)繪制的基本工作流程示意
在上位機(jī)系統(tǒng)軟件中,是使用Lab VIEW的二維圖片控件來實(shí)現(xiàn)運(yùn)動(dòng)軌跡的繪制。由于Lab VIEW的二維圖片控件的默認(rèn)坐標(biāo)基點(diǎn)(0,0)是位于圖形繪制區(qū)的左上角,因此為了便于機(jī)器人運(yùn)動(dòng)軌跡的繪制,把二維圖片控件的中心坐標(biāo)點(diǎn),作為每次啟動(dòng)繪制機(jī)器人運(yùn)動(dòng)軌跡的基點(diǎn)(如圖4所示),即在初始狀態(tài)下,運(yùn)動(dòng)軌跡的當(dāng)前坐標(biāo)值為(XS=X/2,YS=Y/2)。
圖4 二維圖片控件圖形繪制區(qū)中運(yùn)動(dòng)軌跡初始繪制基點(diǎn)示意
機(jī)器人實(shí)際移動(dòng)距離是實(shí)時(shí)運(yùn)動(dòng)軌跡繪制的基礎(chǔ),只有獲取正確的移動(dòng)距離才能夠計(jì)算出需要繪制軌跡的長度。機(jī)器人在前進(jìn)或后退時(shí),利用伺服電機(jī)上內(nèi)置的角度傳感器獲取當(dāng)前伺服電機(jī)的旋轉(zhuǎn)度數(shù)值和設(shè)置的輪胎直徑參數(shù)(以毫米為單位),就可以計(jì)算出機(jī)器人當(dāng)前的移動(dòng)距離。
在二維圖片控件上繪制機(jī)器人的運(yùn)動(dòng)軌跡是需要以像素為單位進(jìn)行繪制的,因此在程序中需要根據(jù)當(dāng)前所設(shè)置的比例參數(shù),計(jì)算出以像素為單位的需要繪制的運(yùn)動(dòng)軌跡的長度,程序框圖如圖5所示。
圖5 機(jī)器人實(shí)際移動(dòng)距離和繪制運(yùn)動(dòng)軌跡長度的程序框圖
在啟動(dòng)機(jī)器人后,上位機(jī)通過機(jī)器人上的電子羅盤傳感器,可以實(shí)時(shí)的獲取當(dāng)前機(jī)器人移動(dòng)方向的角度值。利用當(dāng)前的起點(diǎn)坐標(biāo)值、運(yùn)動(dòng)軌跡的長度值和機(jī)器人移動(dòng)方向的角度值,在繪圖區(qū)域中構(gòu)建出對應(yīng)的直角三角形計(jì)算模型,如圖6所示。在圖6的繪圖區(qū)域中,A表示為機(jī)器人移動(dòng)方向角度值;D表示為繪制軌跡的長度值,也是直角三角形的斜邊;a表示為直角三角形的夾角;E表示為直角三角形的夾角對邊;F表示為直角三角形的夾角對邊;(XS,YS)表示為起點(diǎn)坐標(biāo);(XT,YT)表示為終點(diǎn)坐標(biāo)。
圖6 利用起點(diǎn)坐標(biāo)值、運(yùn)動(dòng)軌跡的長度值和機(jī)器人移動(dòng)方向的角度值構(gòu)建的直角三角形計(jì)算模型示意
根據(jù)圖6的計(jì)算模型就可以計(jì)算出繪制線段的終點(diǎn)坐標(biāo)(Lab VIEW程序框圖,如圖7所示),具體的計(jì)算步驟如下:
(1)根據(jù)機(jī)器人移動(dòng)方向角度值A(chǔ),計(jì)算出直角三角形的夾角a的值:
a=A-(90*「(A/90)」
(2)根據(jù)直角三角形的夾角a的值和斜邊D的值,計(jì)算出直角三角形夾角a對邊E的長度值:
E=sinα*D
(3)根據(jù)直角三角形的夾角a的值和斜邊D的值,計(jì)算出直角三角形夾角a鄰邊F的長度值:
F=cosα*D
(4)根據(jù)直角三角形直角邊E和F的長度值,通過起點(diǎn)坐標(biāo)(XS,YS)和機(jī)器人移動(dòng)方向角度值,就可以計(jì)算出終點(diǎn)坐標(biāo)(XT,YT):
1)當(dāng)符合0>A<90且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和180>A<270且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=Xs+E,YT=Ys-F
2)當(dāng)符合90>A<180且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和270>A<360且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS+F,YT=YS+E
3)當(dāng)符合180>A<270且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和0>A<90且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS-E,YT=YS+F
4)當(dāng)符合270>A<360且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和90>A<180且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS-F,YT=YS-E
圖7 直角三角形夾角a的值不等于0時(shí)計(jì)算終點(diǎn)坐標(biāo)的程序框圖示意
在步驟(1)中,如果計(jì)算出直角三角形夾角a的值為0,那么表示當(dāng)前機(jī)器人的移動(dòng)方向角度值A(chǔ)可能等于0、90、180或360,如圖8所示。
圖8 直角三角形夾角a的值為0時(shí)機(jī)器人移動(dòng)方向示意
當(dāng)出現(xiàn)圖8所示的情況,就不需要步驟(2)~步驟(4)的計(jì)算,而是直接依據(jù)當(dāng)前起點(diǎn)坐標(biāo)(XS,YS)的值、機(jī)器人移動(dòng)方向角度值A(chǔ)和繪制軌跡的長度值D,計(jì)算終點(diǎn)坐標(biāo)(XT,YT)的值(Lab VIEW的程序框圖,如圖9所示):
1)當(dāng)符合A=0或A=360且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和A=180且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS,YT=YS-D
2)當(dāng)符合A=90且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和A=270且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS+D,YT=YS
3)當(dāng)符合A=180且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和A=0或A=360且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS,YT=YS+D
4)當(dāng)符合A=270且機(jī)器人處于前進(jìn)移動(dòng)狀態(tài)和A=90且機(jī)器人處于后退移動(dòng)狀態(tài)條件時(shí),終點(diǎn)坐標(biāo)(XT,YT)為:
XT=XS-D,YT=YS
圖9 直角三角形夾角a的值等于0時(shí)計(jì)算終點(diǎn)坐標(biāo)的程序框圖示意
在Lab VIEW的中,使用移動(dòng)畫筆函數(shù)先將畫筆移動(dòng)到起點(diǎn)坐標(biāo)(XS,YS)位置,然后通過繪制直線函數(shù)在二維圖片控件的圖形繪制區(qū)域中繪出到結(jié)束點(diǎn)坐標(biāo)(XT,YT)的直線,即可實(shí)時(shí)的繪制出當(dāng)前機(jī)器人的運(yùn)動(dòng)軌跡,程序框圖如圖10所示。
圖10 機(jī)器人運(yùn)動(dòng)軌跡繪制程序框圖
4 結(jié)束語
本設(shè)計(jì)主要研究的是基于圖形化編程平臺(tái)Lab VIEW,對LEGO Mind storms輪式機(jī)器人在移動(dòng)時(shí)運(yùn)動(dòng)軌跡的實(shí)時(shí)繪制功能,以擴(kuò)展機(jī)器人在未知環(huán)境下對路徑的探索和規(guī)劃,從而進(jìn)一步拓展移動(dòng)機(jī)器人的基礎(chǔ)應(yīng)用。所設(shè)計(jì)的系統(tǒng)按照目標(biāo)要求,使用LEGO NXT作為硬件的基礎(chǔ)平臺(tái),搭載了電子羅盤、超聲波、角度等傳感器,通過Lab VIEW的圖形控件和強(qiáng)大的模塊化函數(shù)快速構(gòu)建上位機(jī)的人機(jī)界面和程序。經(jīng)實(shí)驗(yàn)表明,系統(tǒng)利用當(dāng)前輪式機(jī)器人的移動(dòng)距離和移動(dòng)方向角度值就可以實(shí)現(xiàn)實(shí)時(shí)、快速、準(zhǔn)確地繪制機(jī)器人運(yùn)動(dòng)軌跡功能,并具有工作穩(wěn)定、操控方便、顯示直觀等特點(diǎn)。
參考文獻(xiàn):
[1]雷振山.Lab VIEW 基礎(chǔ)教程[M].北京:中國鐵道出版社,2008.
[2]向科鋒.基于Lab VIEW的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械管理開發(fā),2011(4).
[3]梁全貴,武麗,李長春.基于Lab VIEW的智能車數(shù)據(jù)采集與處理研究[J].工業(yè)控制機(jī)算機(jī),2010,23:31-32.
[4]張衛(wèi)星,趙峰.基于Lab VIEW 的運(yùn)動(dòng)控制系統(tǒng)的研究[J].工業(yè)控制計(jì)算機(jī),2008,21(11):26-28.
[5]余軍.基于虛擬儀器的智能車無線實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2010(2).
[作者簡介]陳洪亮(1974-),男,浙江廣播電視大學(xué)縉云分校,講師,研究方向:計(jì)算機(jī)科學(xué)技術(shù)的開發(fā)與應(yīng)用。