2009年7月28日 星期二

LabVIEW & Lego NXT (English Version)

I’ve received many requests lately about putting up an English version of my previous LabVIEW & LEGO NXT video … well, after two weeks later, here it is.  Hopefully this should attract some visitors from abroad as well!

-John

2009年7月13日 星期一

LabVIEW + LEGO NXT 影像追蹤

最近有很多朋友在問我說,到底要怎麼將視覺的軟硬體和機器人整合在一起?  大家都知道視覺可以讓我們將機器人發揮到很豐富的境界,例如做物件追蹤,立體距離偵測或地圖重建的應用 … 但是往往要玩視覺的話,你最好要有心理準備,其實要懂的還蠻多的。

如果有可以用到現成視覺函式庫的機會,那應該好好把握,像我的話就是下載了上次介紹的 NI Vision軟體,然後再用 Vision Assistant 寫了一些程式,這樣一來就可以很快速的做一些物件追蹤的功能。

哈哈,因為我沒錢買個十幾萬的機器手臂,所以只好先抓個Lego NXT來做示範。有來上過我的LabVIEW for NXT課程應該記得這個 demo:

幾個重點:

  1. 其實NXT-G本身就已經是LabVIEW的一種,只不過是LEGO把LabVIEW重新包裝了一下,讓小孩子和學生也可以玩。
  2. 雖然NXT-G很好玩,但是他畢竟功能還是很陽春,很多我訪問過的學生和老師都說他們從NXT-G畢業了之後,就需要開始玩RobotC以及其它的文字型語言,但是一下子從圖形化跳到文字型語言畢竟需要一段適應時間,而這也造成學生們學習上的一種門檻和斷層。
  3. LabVIEW再加上NXT Toolkit,就可以讓學生延續之前的圖形化思維和概念。雖然LabVIEW還是有它一定的學習曲線,但是畢竟從圖形化跳到另一個圖形化的工具可以比較容易上手和接軌。

上次有跟大家介紹過 NI Vision Assistant,我把這個demo的程式還有思維po出來給大家看一下:

imageimage

透過一連串二值化處理和演算,我們就可以將需要隔離的紅色物件抓出來。

NI CompactRIO,還不就是給大人玩的LEGO NXT嗎? :-)

-John

2009年7月12日 星期日

「自我放牧」的機器人吃生質燃料

(Credit: Robotic Technology)

機器人潛在的自治能力受限於它必須不斷地重新補充燃料,但是如果一個機器人在執行任務時可以自己找到補充燃料的方法,跳過加油站直接尋找環境中可用的生質燃料(Biomass Fuel),也許情況就不一樣了。

這台「能量自治戰略機器人」(Energetically Autonomous Tactical Robot;EATR)就是設計成這種功能--可從環境中尋找生物質,再從中吸取能量,必要時也可轉換成使用傳統或替代性能源(例如汽油、柴油、丙烷、太陽能)(見PDF)。

馬里蘭州波多馬克(Potomac, Md.)的Robotic Technology與佛羅里達州龐帕諾比奇(Pompano Beach)的Cyclone Power Technologies已經共同完成全世界第一台可「自我放牧」的機器人的初步系統,該系統可像有機體一樣進行採集能量的行為,換句話說,它會搜尋食物來餵飽自己。

這是項艱鉅的任務。首先機器人必定義出合適的生物質(例如木頭、草和紙之類),然後必須避免無法消化的生物質(例如石頭、金屬或玻璃)。機器人必須在廣大空間裡行走,還要能「處理」生物質,例如裁剪或撕成較小的尺寸,再用它的機器人手臂跟「終端受動器」來抓取「食物」,將食物舉起並倒進體內的熔爐裡,食物會在熔爐裡被「吸收」並產生足以驅動機器人的電力。這個步驟由龍捲風引擎(Cycloneengine)負責,龍捲風引擎是一個現代化的熱燃蒸氣引擎,基本上可靠任何燃料運轉。

機器人會透過感應器結構、感應器處理過程、資料庫、電腦模型與機械控制等等來決定菜單或做出其他決定,所以能展現出它自己的智慧。

這項結合蒸氣系統與生質熔爐的發明若能開花結果,應能讓美軍離不需依靠人力或傳統方式補充燃料、可執行大範圍長時間任務的機器人更近一步。

http://taiwan.cnet.com/crave/0,2000088746,20139453,00.htm

機器人模擬救災 高苑奪獎

 

【聯合報╱記者顏福江/橋頭報導】

2009.07.12 04:06 am

高苑工商學生,參與學校推動的綜合高中資訊技術學程,以樂高積木實做災害處理機器人,在競賽中獲得優等獎。
記者顏福江/攝影

高苑工商綜合高中資訊技術學程學生以樂高積木實做災害處理機器人,在97學年度由教育部所舉辦的專題製作競賽暨成果展活動中,獲得優等獎;另外兩組團隊參加「2009WRO高高屏校際盃機器人選拔賽」,榮獲高中職組第二名及佳作四名。

李姿瑤、凌婉真、吳宗瑋與陳明宏四位學生表示,利用樂高機器人模擬實際災害,並模擬地震發生後,進行災後現場的物資運送路線障礙排除,協助受傷人員資訊收集。

另兩組團隊學生,也參加機器人選拔賽,榮獲高中職組第二名及佳作第四名。
記者顏福江/攝影

指導老師王博彥表示,從開始的提出構想、討論主題、確立研究目的、研究方法到寫成報告,專題的漸進式進行,讓學生自課程中深刻認識學習內容,提升實務製作與成果展現的能力。

「從不可能中找出可能的線索!」學生李姿瑤表示,製作過程以「人」為本,探索人類無法進入的救援地點,協助救援工作的進行,而災害處理機器人是一種模仿生物的「仿生機器人」,它可以突破地形限制,從事救援,「或許將來真的有變形金剛呢!」

另兩組團隊分別為學生何天翰、何宗勳、穆映丞,以及曾于豪、陳柏龍、許哲銘、余鈞庭等人。何天翰表示,利用樂高機器人的組裝,寫入程式,在學習中瞭解機械、自動控制及電腦程式等知識。

王博彥說:「透過競賽過程,將電腦資訊及科學原理融合運用,啟發學生創造力及科技運用能力。」

高苑工商校長黃志華表示,技職策略聯盟是教育部近年來所推動的計畫之一,學生透過競賽及成果展示,達成互相觀摩學習的目的。

【2009/07/12 聯合報】@ http://udn.com/

http://udn.com/NEWS/DOMESTIC/DOM6/5013489.shtml

2009年7月6日 星期一

應用範例: 利用 NI Vision Assistant 快速開發筆電特徵視覺檢測系統

Hello 各位,

又到了案例分享時間,今天的焦點是 NI Vision Assistant 這套開發工具 … 這裡是之前一位台大博士生幫我們做的應用評估報告和使用心得,提供給大家參考參考。需要使用版軟體的話,可以到此聯結下載,請笑納!

NI Vision Assistant 試用版下載:

https://lumen.ni.com/nicif/us/evalvisiondevmodule/content.xhtml

嫌下載太慢的話,可以撥 02-23772222 轉業務部,向 NI 索取免費 demo CD!

-John

前言:

利用相機取像後, 再透過已編輯好的LabView 程式對影像作後處理, 基本上這些影像後處理程序包含很多如Threshold, Fill holes etc…, 我們可以依據一些應用須要如找物體中心, 算物體面積, 高度etc…去選擇適當的影像後處理程序. 這裡舉一個筆記型電腦面積及高度的應用例, 此應用例只是用來解釋影像後處理的功能及效果, 當然同一個影像後處理程序可用在很多不同的應用上, 甚至於不同的影像後處理程序的組合更可得到一影像處理的最佳結果.我們將此算筆記型電腦面積及高度的應用例程序步驟敘述如下.

clip_image002[6]

1. 開啟Vision Assistant

clip_image004[6]

2. 開啟一Sample 影像檔

clip_image006[5]

3. 開啟影像檔後選擇影像處理模式

clip_image008[7]

4. 開啟影像檔後選擇影像處理模式並調整(color threshold), 因為先將筆記型電腦的高度面變成一單一色彩的面, 如此對於後續再尋邊會有較佳且容易得到正確的結果.

clip_image010[6]

5. 開啟影像檔後選擇影像處理模式並調整(Adv. Morphology),須作這一步驟的原因是因為要補嘗上一步驟的缺陷,如步驟四的圖示, 在紅色面積內仍有些許封閉的小孔在紅色區域內, 這些小孔可能會影響尋邊的數值, 所以在此步驟我們用fill holes 的影像後處理程序來將整個筆記型電腦的高度面變成紅區域,如此尋邊就會更穩定更準確了.

clip_image012[5]

6. 開啟影像檔後選擇影像處理模式並調整(Adv. Morphology: Fill Hole)

clip_image014[6]

7. 開啟影像檔後選擇影像處理模式並調整(Measure: Length), 在Measure 這個影像處理程序下, 有Position, Length, Angle Area,四個量測選項, 可依據所要得到的Data選擇量測選項. 此例我們選擇Length 和 Area 兩個量測選項來完成我們算筆記型電腦面積及高度的應用.

clip_image016[6]

8. 開啟影像檔後選擇影像處理模式並調整(Measure: Area)

clip_image018[5]

9. 開啟影像檔後選擇影像處理模式並調整(Measureè存檔), 我們可以將所量測到的Length 和 Area 數據儲存到檔案中, 對於寫檔我們可以用 Write To Spreadsheet File.vi 來寫資料到檔案, 此 Write To Spreadsheet File.vi 是屬於一較高階的VI, 它已包含了開檔, 寫資料及關檔三個功能, 所以我們不要將此Write To Spreadsheet File.vi 放在 While/For Loop 內, 以免一直開/關檔案浪費 CPU 資源.若有須要在While/For Loop 內寫資料到檔案, 則我們可以選擇較低階的檔案I/O 寫檔方式, 即在進入 While Loop 之前先開檔, 接著在 While Loop 內寫資料到檔案內, 最後寫入資料完成且離開 While Loop 後將檔案關閉. 基本上因為此次並沒有真正接CCD Camera 來抓取影像, 所以我們直接用 NI Vision Measure Setup 的 Save Results 來儲存資料.

clip_image020[5]

10. 影像處理模式完成

clip_image022[5]

11. 選擇Tools下之Create LabVIEW VI 產生SUB VI 檔

clip_image024[5]

12. 給定產生之SUB VI 檔儲存路徑

clip_image026[5]

13. 給定產生之SUB VI 檔儲存檔名

clip_image028[5]

14. 給定產生之SUB VI 檔儲存路徑及檔名

clip_image030[5]

15. 選擇Current Script 後按Next

clip_image032[4]

16. 選擇Image File 後按Next

clip_image034[4]

17. 選擇界面選項

clip_image036[4]

18. 勾選全部界面選項

clip_image038[4]

19. 產生之SUB VI 過程中

clip_image040[4]

20. 產生之SUB VI

clip_image042[4]

21. 產生之SUB VI

clip_image044

22. 右上角有一Write To Spreadsheet File.vi 用來寫資料到檔案

clip_image046[4]

23. 執行SUB VI

clip_image048[4]

24. 執行SUB VI後

clip_image050[4]

25. 選擇Zoom to Fit 將Image 最佳化放置

clip_image052[4]

26. Image 最佳化放置

clip_image054

27. 用 Write To Spreadsheet File.vi儲存量測結果

clip_image056

28. SUB VI 執行後之結果

結論:

LabView 給我最大的感覺就是User Friendly, LabView 是屬於一很高階的程式語言, 尤其是它的圖形化介面程式設計規劃的觀念, 這是別的程式如 C++, VB, PLC etc…所沒辦法同日而語的, 這對於一研發人員來說實在是一福音, 因為大部分的研發人員或工程師總是希望能縮短研發時間, 進而快一點得到研發成果, 所謂時間就是金錢, 誰的產品先上市, 那必定會有最大的成功機會, 相信這是一個贏家非常重要的關鍵條件. LabView 正好有這個特點, 用LabView可讓研發團隊的心思都花在核心技術上, 如此不但對研發團隊有很大的助益, 對於產品往後的維修服務更是可讓複雜度簡化到最低.

相關下載:

此報告 PDF 文件和程式下載

NI Vision Assistant 試用版下載:

https://lumen.ni.com/nicif/us/evalvisiondevmodule/content.xhtml

嫌下載太慢的話,可以撥 02-23772222 轉業務部,向 NI 索取 demo CD!