姜樹海12 楊若凡12 馬 超12
(1.南京林業(yè)大學(xué)智能控制與機器人技術(shù)研究所,南京 210037;2.南京林業(yè)大學(xué)機械電子工程學(xué)院,南京 210037)
基于ARM的六足仿生機器人野外定位系統(tǒng)
姜樹海1,2, 楊若凡1,2, 馬 超1,2
(1.南京林業(yè)大學(xué)智能控制與機器人技術(shù)研究所,南京 210037;2.南京林業(yè)大學(xué)機械電子工程學(xué)院,南京 210037)
為了更好地控制六足仿生機器人適應(yīng)野外作業(yè)環(huán)境,針對機器人野外定位問題,提出了一種六足仿生減災(zāi)救援機器人無線野外定位系統(tǒng)解決方案,方案以三星S3C2440為硬件平臺,以嵌入式linux系統(tǒng)為軟件平臺,設(shè)計了六足仿生機器人野外定位系統(tǒng);通過GPS全球定位系統(tǒng)進行六足仿生機器人的定位,利用GPRS實現(xiàn)網(wǎng)絡(luò)通信,并將定位信息傳輸?shù)浇K端設(shè)備,終端設(shè)備通過發(fā)送命令的方式控制六足仿生機器人實現(xiàn)相應(yīng)的動作;實驗證明:該系統(tǒng)的穩(wěn)定性好,可靠性較高,能較好地滿足六足仿生減災(zāi)救援機器人野外定位的需求。
六足仿生機器人;定位;GPS;嵌入式;Linux;GPRS
隨著地球環(huán)境的不斷惡化,自然災(zāi)害的頻繁發(fā)生,迫切需要能夠在復(fù)雜多變、崎嶇不平的惡劣地形環(huán)境下工作的高度自動化裝備。六足仿生機器人在非結(jié)構(gòu)化、不規(guī)則和凹凸不平的地形條件下,具有良好的惡劣地形環(huán)境的適應(yīng)能力[1]。多足生物能夠自如地行走在地球上各種車輛無法達到的地方[2]。有的昆蟲甚至能夠自由地出入垂直的洞穴。鑒于六足昆蟲以及其它多足爬行生物極強的惡劣地形環(huán)境的適應(yīng)能力,六足及其它多足仿生機器人的研究對地震救援、軍事偵查、星球探測和反恐活動、森林火災(zāi)巡檢與防控和災(zāi)后救援等具有重要的實際意義。為此,南京林業(yè)大學(xué)的姜樹海研究團隊在六足仿生機器人及其減災(zāi)救援領(lǐng)域的理論與應(yīng)用做了有益的研究工作[3-6]。
六足仿生機器人在進行災(zāi)害監(jiān)控和搜救的過程中,要求能夠?qū)崿F(xiàn)野外定位和災(zāi)害現(xiàn)場畫面的實時傳送與播放,以便對機器人進行遠程控制。全球首個機器人遠程操作系統(tǒng)是由美國西北大學(xué)的Argonne國家實驗室的R.Goertz成功研制[7-8]。從此遙操作控制技術(shù)得到了飛速的發(fā)展。隨著網(wǎng)絡(luò)技術(shù)的興起和發(fā)展,采用Internet作為通信介質(zhì)的機器人逐漸成為研究的熱點。西澳大利亞大學(xué)Ken Taylor和James Trevelyan研究開發(fā)了通過Internet控制機器人手臂動作[9]。機器人遠程監(jiān)控系統(tǒng)要求傳送數(shù)據(jù)的實時性高,數(shù)據(jù)量大[10]。因此,我們研發(fā)的六足仿生機器人野外定位系統(tǒng),在保證數(shù)據(jù)傳輸質(zhì)量的前提下,定位系統(tǒng)的實時性和可靠性是我們的設(shè)計目標(biāo)[11]?;贗P的網(wǎng)絡(luò)視頻監(jiān)控正在成為視頻監(jiān)控技術(shù)的主流[12]。采用這種方式有利于人們遠距離的操控,有利于機器人的野外“生存”。通過GPS全球定位系統(tǒng)的檢測向用戶返回六足機器人的具體方位,對于機器人的野外生存有著重要的意義。針對災(zāi)害救援的應(yīng)用實際要求,本文設(shè)計了基于ARM微處理器的機器人野外定位系統(tǒng),GSP模塊為普通的串口GPS設(shè)備,GPRS使用帶串口的GPRS設(shè)備,采用微處理器S3C2440為主控核心,ARM920T為嵌入式開發(fā)平臺。嵌入式開發(fā)平臺搭載內(nèi)核為linux-2.6.31的操作系統(tǒng)。利用GPS采集六足機器人的位置信息,當(dāng)中斷設(shè)備發(fā)送命令要求返回位置信息時,位置信息將通過GPRS模塊返回給終端設(shè)備,同時終端設(shè)備用發(fā)送命令的方式來控制六足機器人的相應(yīng)的步態(tài)。實驗證明所提出的系統(tǒng)具有較高的穩(wěn)定性和可靠性,結(jié)構(gòu)簡單,搭建容易,操作方便,能很好的滿足六足仿生減災(zāi)救援機器人野外定位需求。
六足仿生減災(zāi)救援機器人控制系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。CPU采用三星公司生產(chǎn)的一款32位ARM920T內(nèi)核的RISC處理器S3C2440,主頻達到400MHz,超頻達到533 MHz,低功耗,3.3 V供電,適合長時間在野外作業(yè)(外加太陽能電池)。加強的ARM體系結(jié)構(gòu)MMU用于支持WinCE和Linux操作系統(tǒng)。此外,處理器內(nèi)部集成了4通道DMA,3通道的UART,2通道SPI,130個GPIO等[13]。
圖1 六足機器人硬件系統(tǒng)結(jié)構(gòu)框圖
采用GPS模塊采集位置信息,GPS模塊為市場帶串口的全球定位設(shè)備,將采集到的數(shù)據(jù)放入掛載的U盤中,為以后取出U盤分析機器人的移動軌跡奠定基礎(chǔ)。
通用分組無線服務(wù)技術(shù)(General Packet Radio Service,簡稱GPRS)是一種在現(xiàn)有的GSM的基礎(chǔ)上發(fā)展起來的移動數(shù)據(jù)業(yè)務(wù)[14-15]。GPRS引入了分組交換能力,而且?guī)缀跫嫒菟蠫SM網(wǎng)絡(luò)軟、硬件平臺。GPRS通過封包方式來傳輸,并不占用整個頻道,以其傳輸資料的單位計算其費用,降低了使用者的成本。GPRS的數(shù)據(jù)傳輸速度高,每秒可達到至57.6 Kb,最大可達171.2 Kb。我們的系統(tǒng)采用帶串口的GPRS模塊,可以直接對串口編程來控制收發(fā)功能。
圖2 ARM控制器和GPRS模塊的連接
2.1 嵌入式Linux操作系統(tǒng)的移植
移植對于嵌入式系統(tǒng)來說非常重要。系統(tǒng)的移植就是將Linux系統(tǒng)針對具體的目標(biāo)平臺做相應(yīng)的裁剪,配置,編譯之后,安裝到目標(biāo)平臺上,并能夠使其正常、穩(wěn)定的運行和工作[16]。在嵌入式Linux系統(tǒng)移植前,要做必要的準備工作,包括在虛擬機VMware中安裝Redhat9操作系統(tǒng),安裝必要的庫文件和應(yīng)用軟件,搭建交叉編譯環(huán)境,如GCC,NFS、SMB、FTP服務(wù)、交叉編譯器arm-linux-gcc4.1.2等。接著宿主機上進行相應(yīng)目標(biāo)文件編譯、配置及移植。嵌入式平臺操作系統(tǒng)的移植一般包括了以下幾個步驟:
1)Bootloader移植:嵌入式平臺選用U-boot作為操作系統(tǒng)的引導(dǎo)程序。U-boot(Universal Boot Loader)在PPCBoot的基礎(chǔ)上發(fā)展起來的,能夠引導(dǎo)大部分的操作系統(tǒng),目前對Linux系統(tǒng)的支持最好。U-boot分為階段1(stage1)和階段2 (stage2)兩大部分。階段1常用匯編語言實現(xiàn),存放依賴于CPU體系結(jié)構(gòu)的代碼。階段2常用C語言來實現(xiàn),這樣可以實現(xiàn)復(fù)雜的功能[17]。在主機上編譯U-boot,通過修改相關(guān)的文件使得U-boot支持我們的Nandflash以及相關(guān)的文件,支持2440內(nèi)核,編譯U-boot等操作最終生成u-boot.bin文件,移植完成,使用oflash下載到nandflash中即可。
2)Linux內(nèi)核移植:在官網(wǎng)http://www.kernel.org/獲得最新版本的內(nèi)核源碼。在主機上編譯嵌入式Linux內(nèi)核,通過修改文件Makefile文件和機器碼(與U-boot中傳來的相同)、在終端輸入make menuconfig進入配置窗口進行內(nèi)核配置,進入Device driver,選擇支持串口,以及所需要的常用驅(qū)動,將不需要的驅(qū)動模塊去掉,精簡系統(tǒng),增加支持YAFFS文件系統(tǒng),make生成zImage的內(nèi)核鏡像文件。本系統(tǒng)采用內(nèi)核版本為2.6.31,生成的內(nèi)核文件使用Tftp下載到nandflash中。
3)根文件系統(tǒng)移植:根文件系統(tǒng)通常是用來存放運行時系統(tǒng)的文件和外部設(shè)備數(shù)據(jù)文件。通常用Busybox定制根文件系統(tǒng),通過編譯、修改Busybox目錄下的Makefile文件,配置busybox,更改內(nèi)核下Filesystem目錄選項,制作好根文件系統(tǒng),初期使用的是NFS掛載文件系統(tǒng),這樣有利于開發(fā)。確定無誤后,制作文件系統(tǒng)鏡像文件,下載到開發(fā)板中即可上電運行(改好環(huán)境參數(shù))。
2.2 GPS程序的編寫
GPS程序流程如圖3所示。系統(tǒng)采用模塊化編程,GPS與ARM控制器通過RS232接口連接。首先對串口進行初始化,GPS接收串口初始化,然后根據(jù)終端設(shè)備發(fā)過來的指令進行相應(yīng)的定位步態(tài)操作。
圖3 GPS程序流程
Linux系統(tǒng)對串口的編程主要是對struct termios主要是對結(jié)構(gòu)體的初始化,如下:
2.3 GPS的程序設(shè)計
硬件連接好以后,GPS上電,每隔一定的時間就會返回一定格式的數(shù)據(jù),下面給出部分GPS的解析程序。
2.4 GRPS程序的編寫
2.4.1 AT命令集
若要實現(xiàn)GPRS消息的收發(fā)功能,就要熟悉與GPRS消息相關(guān)的AT命令集。PDU模式收發(fā)短信的部分AT指令包括:選擇短消息模式、設(shè)置短消息中心號碼、發(fā)送短消息和接收短消息。
2.4.2 GPRS短消息接收和發(fā)送
GPRS短消息接收和發(fā)送的實現(xiàn)主要經(jīng)過GPRS模塊的初始化、AT指令分析、PDU編碼和GPRS發(fā)送短消息幾個步驟。
1)GPRS模塊的初始化:系統(tǒng)啟動后,通過調(diào)用相關(guān)函數(shù)完成模塊的初始化工作。
2)AT指令分析:GPRS模塊與嵌入式平臺通過UARTl進行數(shù)據(jù)通訊,按照AT指令進行數(shù)據(jù)封裝,然后進行數(shù)據(jù)的發(fā)送或接收。
3)PDU編碼:通常PUD編碼串主要由短信服務(wù)中心地址,目的號碼,消息內(nèi)容3個部分組成。即:PDUCODE=AD.DRESS+PHONE+MESSAGE。在中國地區(qū),這些信息是固定的。
主要的程序是通過調(diào)用以上模塊程序的接口來進行GPS的信息傳輸。
首先對GPS、GPRS串口進行初始化,對串口1與串口2,相應(yīng)的/proc/devices設(shè) 備/dev/TX2440_serial1和/dev/TX2440_serial2。通過使用void gps_parse(char*line,GPS_INFO*GPS)可對GPS信息進行解析,使用static void UTC2BTC(date_time*GPS)函數(shù)將世界時轉(zhuǎn)換為北京時間sprintf(short_message_buf,"DATE:%ld-%02d-% 02d\n",GPS->D.year,GPS->D.month,GPS->D.day),通態(tài)GSM_Send_Message(fd2)即可通過GPRS發(fā)送給終端用戶。同理可以發(fā)送緯度和經(jīng)度消息給用戶終端:
兩次分別調(diào)用GSM_Send_Message(fd2),其中short _message_buf是全局數(shù)組。經(jīng)過這些操作就可以實現(xiàn)機器人的野外定位系統(tǒng)。
將測試板的串口1和串口2分別接GPS和GPRS模塊,上電,同時利用終端發(fā)包含request positon的信息給測試板,測試板會立即返回當(dāng)前的位置信息。同時也可以發(fā)送right和left使機器人向左或者向右行走,或著on off來開始和關(guān)閉六足機器人。
2015年12月16日12:32:10
北緯:32°4′59″東經(jīng):118°48′23″
2015年12月16日12:32:11
北緯:32°4′59″東經(jīng):118°48′23″
2015年12月16日12:32:12
北緯:32°4′59″東經(jīng):118°48′23″
2015年12月16日12:32:13
北緯:32°4′59″東經(jīng):118°48′23″
2015年12月16日12:32:14
北緯:32°4′59″東經(jīng):118°48′23″
2015年12月16日12:32:15
北緯:32°4′59″東經(jīng):118°48′24″
...........
為了使我們開發(fā)的六足減災(zāi)救援機器人能夠更好地實現(xiàn)野外環(huán)境下的巡檢和救援作業(yè),我們提出了一種基于ARM的六足機器人野外定位系統(tǒng)實現(xiàn)方案。該方案運用嵌入式控制技術(shù)、全球定位技術(shù)和GPRS技術(shù),以嵌入式ARM920T為開發(fā)平臺,三星公司S3C2440為微處理器,在該平臺上移植了Linux2.6.31的操作系統(tǒng),利用GPS采集六足機器人的位置信息,實現(xiàn)了六足仿生機器人的野外定位。實驗測得的定位效果能夠滿足六足仿生機器人野外定位的要求。同時實現(xiàn)機器人的無線定位與導(dǎo)航控制。未來的通信技術(shù)不僅可以實現(xiàn)無線的定位數(shù)據(jù)的傳輸,而且可以實現(xiàn)實時的圖像數(shù)據(jù)傳輸,更有利于六足仿生機器人的野外生存,未來我們將致力于實現(xiàn)仿生機器人的野外實際作業(yè)。
[1]姜樹海,唐晶晶,陳 波,等.仿生甲蟲六足機器人結(jié)構(gòu)設(shè)計與步態(tài)分析[J].南京林業(yè)大學(xué)學(xué)報(自然科學(xué)版),2012,36 (6):115-120.
[2]Waldron K J,Vohnout V J.Pery A,et al.Configuration design of the adaptive suspension vehicle[J].International Journal of Robotics Research,1984,3(2):37-48.
[3]柳天虹,姜樹海.基于ARM的機器人遠程網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J].測控技術(shù),2014,33(5):65-68.
[4]陳 波,唐晶晶,姜樹海.基于ADAMS的仿生六足機器人運動仿真[J].計算機仿真,2012,19(9):182-186.
[5]姜樹海.林業(yè)機器人發(fā)展現(xiàn)狀[J].東北林業(yè)大學(xué)學(xué)報,2009,37(12):95-97.
[6]柳天虹,姜樹海.仿生六足機器人穩(wěn)定性分析與仿真[J].計算機仿真,2013,30(12):360-364.
[7]Feeling is Believing:History of Telerobotics Technology in:The Robot in the Garden,Telepistomology and the Internet Robot [M].K.Goldberg,editor,MIT Press,1999.
[8]Goertz R C.Fundamentals of General-Purpose Remote Manipulators[J].Nucleonics,1952,10(11):36-45.
[9]Some Online Robots:Robots that Manipulate[EB/OL].http://ford.ieor.berkeley.edu/ir/robots.html.
[10]施 偉,蔡自興.遠程機器人監(jiān)控系統(tǒng)的研制[J].湘潭師范學(xué)院學(xué)報(自然科學(xué)版),2004,26(4):42-45.
[11]趙 鵬,戴梅萼,付 良.遠程機器人監(jiān)控系統(tǒng)關(guān)鍵技術(shù)的研究和實現(xiàn)[J].小型微型計算機系統(tǒng),2000,21(12):1261-1263.
[12]王曉明.一種MPEG-4視頻采集與傳輸系統(tǒng)的研究與實現(xiàn)[J].計算機測量與控制,2005,13(8):869-871.
[13]Samsung Electronics.S3C2440A 32BIT coms microcontroller user 's manual[M].Republic of Korea:Samsung Electronics,2006.
[14]黃宇紅,孫少陵.通用分組無線業(yè)務(wù)(GPRS)[J].電信科學(xué),2000(05):7-10.
[15]李艷晴,劉向東,董 寧,等.基于GPRS/GPS的車輛監(jiān)控系統(tǒng)的設(shè)計[J].微計算機信息,2004,20(04):39-40,105.
[16]鄒 球.基于ARM2410嵌入式Linux內(nèi)核的編譯與移植[J].電腦知識與技術(shù),2008(15):1157-1159.
[17]劉永紅,劉盡堯.基于ARM9的GPRS短消息數(shù)據(jù)傳輸系統(tǒng)[J].現(xiàn)代計算機,2008(5):125-128.
Hexapod Bionic Robot Field Positioning System Based on ARM
Jiang Shuhai1,2,Yang Ruofan1,2,Ma Chao1,2
(1.Institute of Intelligent Control and Robotics,Nanjing Forestry University,Nanjing 210037,China;2.College of Mechanical and Electronic Engineering,Nanjing Forestry University,Nanjing 210037,China)
In order to better control the hexapod bionic robot to adapt to the wild fieldwork environment,a new solution of wireless field positioning system of the hexapod bionic mitigation rescue robot is proposed in connection with the problem of robot field positioning.In this paper,we design a bionic robot field positioning system by using the Samsung S3C2440 microprocessor as hardware platform and the embedded Linux system as software platform.The hexapod bionic robot is positioned by GPS global positioning system and the location information is transmitted to the terminal equipments by using the GPRS network communication.Then the terminal equipments send commands to control hexapod bionic robot to achieve the appropriate actions.Experiments show that,this system has good stability and high reliability.It can better meet the needs of field positioning of the hexapod bionic mitigation rescue robot.
hexapod bionic robot;positioning;embedded;Linux;GPS;GPRS
1671-4598(2016)08-0122-04
10.16526/j.cnki.11-4762/tp.2016.08.033
:TP24
:A
2016-03-07;
:2016-03-28。
國家公益性行業(yè)科研專項重大項目(201404402-03);南京林業(yè)大學(xué)引進高層次人才基金項目(G2003-01);江蘇省普通高校學(xué)術(shù)學(xué)位研究生科研創(chuàng)新計劃項目(KYLX_0869)。
姜樹海(1964-),男,吉林長春人,工學(xué)博士,副教授,主要從事機器人及其自動化,智能控制方向的研究。