(2) 硬件平臺組成
一塊核心母板,配備CPU、16MB的NOR Flash、64MB的NAND Flash、32MB的SDRAM,并設置系統從NAND Flash啟動;一塊外設電路板,負責系統和外設器件的連接,布設有2個USB接口、1個UART口、24個3針插座(用 于控制機器人的關節)以及電源接口等。核心母板與外設電路板通過內存插槽進行連接。
分開設計的好處有:升級核心母板可實現系統處理能力的提高;而更換外設電路則可適應不同的應用。這樣就大大節約了硬件成本,對于開發和調試也是非常有利的。同時,核心母板本身就是一個最小系統,在嵌入式系統設計中,保證最小系統的可靠性是開發的第一步。
調試核心母板以及外設電路至工作正常。確保開發板與PC機通信(利用Windows下的超級終端工具,通過串口線連接開發板與PC機)。
2. 軟件平臺的構建和配置
目前,越來越多的嵌入式系統采用了Linux作為操作系統。Linux功能強大,運行穩定,驅動齊全,配置靈活,內核緊湊,從來就與嵌入式系統有密不可分的關系。Linux內核版本眾多,其中2.4系列比較成熟,在嵌入式平臺中應用廣泛,資料齊全。這里使用Linux- 2.4.18-rmk7-pxa1版本。
a. 配置開發板軟件環境
將系統引導程序(俗稱bootloader,其功能相當于PC機中的BIOS)燒寫進入S3C2410核心母板。這里采用了三星公司推薦的vivi程序。通過對vivi中參數的設置,完成對Flash的分區。
b. 配置、編譯、下載內核
(1) 下載源代碼,在PC端建立交叉編譯環境;armv4l-unknown-linux-gcc可以將Linux內核編譯為適用于ARM體系結構的二進制代碼;
(2) 配置內核:使用make menu-config命令,將USB設備支持、USB攝像頭驅動(針對OV511芯片)、NAND Flash驅動,以及掛載嵌入式文件系統所需要的驅動程序靜態編譯到內核中;
(3) 編譯內核:使用交叉編譯工具,將源代碼編譯為可執行二進制內核鏡像,生成文件zImage;
(4) 下載內核:將zImage通過串口線,利用vivi的數據燒寫功能,下載到Flash的內核分區中(kernel);
c. 制作文件系統
嵌入式系統中常見的文件系統有CRAMFS、JFFS、JFFS2、YAFFS等。考慮到實際的需求,這里采用了CRAMFS。在內核配置時對CRAMFS的驅動代碼進行靜態編譯,并且利用mkcramfs工具制作經過仔細裁剪的文件系統映像,利用vivi的燒寫指令下載到Flash的root分區。最終的文件系統映像小于3MB,這是由嵌入式系統較為緊張的存儲資源決定的。
啟動系統,通過PC機的超級終端,可看到啟動信息:包括內核的版本、Flash分區表、交叉編譯器的版本,以及內核中靜態編譯的組件等。
3. 驅動程序的編寫和應用程序的開發
視覺功能的最終實現,首先需要為機器人的關節電機編寫驅動程序,使操作系統可完成對機器人動作的控制,作為對視覺結果的響應。視覺絕非最終目的,而是機器人獲取信息的一種途徑,其根本目的在于為機器人的動作、行為提供策略或數據支持。單純的視覺并沒有意義。
機器人全身的關節均為舵機。舵機結構簡單,控制方便,外部只有3個引腳:電源、地、PWM信號。對舵機的控制實際上就是要產生頻率、脈寬合適的PWM波。
S3C2410芯片內部集成4個PWM發生單元。驅動程序利用其中的一個作為機器人頭部電機的控制信號源,通過改寫寄存器的值,改變頻率和占空比,產生期望的PWM波。
將驅動程序交叉編譯為模塊,在系統啟動后動態地插入內核中。模塊加載前獨立于內核,方便了驅動程序的調試。編寫簡短的測試程序,確認關節電機可以正常工作。
這里為機器人視覺系統搭建了一個實際的應用場景:活動的目標小球在背景中運動,期望機器人可以識別目標并對其定位,最后控制頭部跟隨目標運動(好像機器人在盯著活動目標觀察一樣)。
機器人視覺處理程序的主要功能為:
(1) 從USB攝像頭實時讀取視頻數據,進行簡單的預處理;
(2) 隨后進行圖像處理,主要完成空域的圖像增強。通過對圖像進行二值化,將目標小球從背景中提取出來;
(3) 計算目標的位置,進而計算出機器人頭部的旋轉角度,通過舵機驅動程序,控制機器人頭部轉動到目標所在角度,實現對目標物體的跟蹤。
經過實驗,機器人頭部可較好地跟蹤目標,實現了視覺原型系統。
4. 拓展性工作
機器人視覺系統的開發只是嵌入式系統在機器人領域中應用的一個方面。事實上,還有很多值得我們繼續去實現的子系統,諸如語音系統(語音識別、語音輸出)、行走控制(設計算法,實現平穩的行走)、網絡系統(未來的機器人將不再會是獨立的個體,多機器人的協同工作是必然的趨勢;同時,機器人同其他設備的連接需求也越來越迫切)等等。
應當承認,雖然目前的嵌入式處理器已經具備了比較強大的功能,但是受功耗、體積、成本因素的限制,在實時視頻(音頻) 處理、多媒體協同計算等方面,其速度仍然無法滿足需求;所以,更強勁的嵌入式處理器也是將來在為機器人選擇控制單元時的重要考慮因素。
四、嵌入式系統的前景
從本文所述的機器人視覺系統中就可看出嵌入式系統的強大功能與廣闊應用領域。在當今數字信息和網絡技術高速發展的后PC(Post-PC)時代,嵌入式系統已被廣泛應用于移動計算平臺(PDA、掌上計算機)、信息家電(數字電視、機頂盒、網絡設備)、無線通信設備(智能手機、股票接收設備)、工業/商業控制(智能工控設備、POS/ATM 機)、電子商務平臺、甚至軍事應用等諸多領域,其前景無疑是令人非常樂觀的。
編輯:jq
-
機器人
+關注
關注
211文章
28524瀏覽量
207558 -
嵌入式系統
+關注
關注
41文章
3605瀏覽量
129570 -
機器視覺系統
+關注
關注
1文章
83瀏覽量
18886
發布評論請先 登錄
相關推薦
評論