2010年6月29日 星期二

John的機器人作品大整理

最近因為離開了NI的懷抱,在NI的座位也都清的一乾二淨了,所有的東西都被我放進了幾個大紙箱堆在家裡車庫,看起來還蠻礙眼的。這一陣子看到紙箱裡零零散散的機器人零件,突然回想起了一些自從投入機器人這一方面的作品,我這個人也蠻健忘的,所以想整理一下作品集,方便以後參考。

2009/1: CompactRIO 控制小型自走車平臺

這個是我的機器人處女作,還好那時候CompactRIO已經有了Scan Mode,一兩天拼拼湊湊就可以控制前進後退,然後在載具上加一個AXIS 206的相機,做一些物件追蹤的功能。後來為了搞效果,還把Wii無線搖桿控制還有PDA控制也加了進去。特別感謝台北科技大學車輛系蕭耀榮老師,把載具借給我們做實驗!

 

2009/3: CompactRIO控制全向輪平臺

做完了第一臺機器人之後,後來經驗就比較豐富了一點,挑戰比較困難的機器人。這是淡江大學翁慶昌老師的4輪全向平臺,馬達速度的計算法則是由研究生之前已經驗證好了,比較困難的是4軸同步的移動,以及4軸同時的PID closed-loop計算 … 呵呵,還好LabVIEW可以支援平行處理,搞定了一軸,4軸就不困難了。

 

2009/4: 台灣大學電機系羅仁權老師CompactRIO課程與輔導

有了之前的一些機器人系統經驗,之後就開始把這些經驗和概念整理成一套課程。可憐的台大學生,正是我課程的白老鼠,不過沒想到,效果還不錯,一個月內他們就把馬達控制和影像系統整合於他們的機器人平臺上。

 

2009/6: LabVIEW & LEGO NXT 影像追蹤

每次要帶CompactRIO出門教課或做demo其實要帶的東西還蠻多的,後來想想,其實同樣機器人的概念也可以用LEGO NXT來傳達(而且秀給人家看的時候,東西又不用帶的那麼多。) 這個作品其實是延用之前CompactRIO影像追蹤的程式,然後把程式修改成配合LEGO NXT,核心還是用LabVIEW。

 

2009/8: 吉他神彈機器人

這個是為了2009在南港辦的機器人展覽,美國有流行一個電動玩具遊戲叫Guitar Hero (有點類似太鼓達人的音樂遊戲,只不過是用玩具吉他然後配搖滾音樂,還蠻酷的。) 這個demo用了影像辨識來判別螢幕上的音符,然後再送訊號給DAQ來驅動機器人的手指。現場我們還開放讓人跟機器人PK,看誰分數比較高!

 

2010/2: 4 DOF機器手臂控制

自主性機器人也玩差不多了,接著開始踏入機器手臂這個領域。沒想到,原來手臂的控制有這麼的複雜,自己買了一些書來K,了解了一些DH轉換還有Jacobian的皮毛。還好 LabVIEW Robotics Module裡面有一些 inverse kinematics 的函式庫,幫我節省了一些時間。不過坦白講,這可能是我花最久時間才搞定的作品。

 

2010/4: LEGO NXT Delta Robot

手臂控制不僅是只有序列式的(serial robot arm),其實工業界有些也會用比較複雜的平行控制(parallel robot)。因為機構方面沒有現成的,所以我就先用了LEGO來驗證一下程式的可行性。跑起來還不錯…

 

2010/5: 管線檢測機器人

自從今年五月從NI離職,我在睿柏的時間大部份是以接業界的case為主。這個應用蠻特別的,客戶想要設計一個可以檢測管線表面的自動化移動平臺。於是,這又是一個用LEGO NXT & LabVIEW來快速驗證原型的一些想法。

未來也希望看到你用LabVIEW控制機器人的實例!

-John

2010年6月28日 星期一

iPhone直昇機Parrot AR.Drone

這個禮拜正趕著要參加在台北科技大學舉辦的2010系統科學與工程國際會議(2010 ICSSE, http://isd.ie.ntnu.edu.tw/ICSSE2010/),不過先PO個我已經注意很久的玩具,才$299美金而已,請看:

CES 2010最有意思的iPhone直昇機Parrot AR.Drone

ardrone-sghttp://iphone.15fun.com/?p=941

官方網站:

http://ardrone.parrot.com/parrot-ar-drone/en

Parrot這家公司本來是在做手機的藍芽配件,真沒想到他們會出這麼有趣的東西!

2010年6月19日 星期六

三分鐘挑選最適合機器人應用的CompactRIO模組

時常我會被問到:「咦,吳先生啊,CompactRIO有那麼多的模組可以選擇,可是反而選擇越多,我越覺得麻煩,可不可以推薦幾款模組是機器人應用常會被用到的?」

image 

的確,NI的CompactRIO模組有分很多種型號(現在已經有超過60幾種可以選),要選擇最適合的組合也不是一件很容易的事,有時候也要看應用的需求,想接哪種sensor,馬達,驅動器等等…在此提供一些選擇CompactRIO模組的準則,希望能夠幫大家節省一些困難。我們先從一些基本的模組分類來看:

  • Analog Input (AI,類比輸入)
  • Analog Output (AO,類比輸出)
  • Digital Input/Output (DIO,數位輸入/輸出)
CompactRIO I/O Modules

AI篇:

自主性機器人可能會用到的類比sensor有包含MEMS加速規,陀螺儀,紅外線,超音波…只要sensor本身有提供類比電壓的訊號,我們都可以用AI模組把訊號抓進來到CompactRIO。有幾個基本款可以跟大家推薦: NI 9215 (4個通道,100kS/s,16-bit) 或 NI 9201(8個通道,*500kS/s,12-bit。) 這兩款價錢差不多一樣,一個是通道數比較少,解析度比較高,另外一個則是通道數比較多,解析度只有到12-bit。如果sensor是比較精密的感測器(像MEMS加速規或陀螺儀),我會推薦 9215,如果沒有這方面的需求那9201還蠻適合一般機器人的應用。如果預算比較充裕的話,甚至可以考慮NI 9205 (32個通道,*250kS/s,16-bit) ,它就可以一次提供更多的通道數以及16-bit的解析度。

*備註: 9201和9205的sample rate是所有AI通道共享的,就拿9205來看,如果只需要一個channel它則可以跑到250kS/s,但是如果32個channel全部跑的話,那最高sample rate只能跑到7.8kS/s,請注意。不過以機器人應用來講,通常sample rate有1k-5k就綽綽有餘了。

AO篇:

再來就是AO的部份,還好AO的選擇就沒有那麼複雜,我推薦的AO模組會是NI 9263,有4個100kS/s的電壓輸出通道,可以直接拿來接到溫控器,速度控制模式的馬達,以及其它需要類比電壓控制的儀器。如果需要更多AO通道,那麼還有NI 9264可以考慮,它有16個AO通道,雖然價錢是9263的一倍,但是以cost per channel的比例來看的話會是比較划算。通常除非客戶已經知道會需要那麼多通道的話,一般我還是推薦NI 9263。

DIO篇:

至於DIO的話,一般機器人應用最需要的電壓準位大部份為5V,12V,和24V。如果只需要單純的5V DIO,那NI 9403(32個通道DIO,5V)會是不錯的選擇 不過,如果需要同時接馬達的編碼器encoder還有pulse訊號的sensor的話,我反而會推薦NI 9401(8個通道DIO,5V)。為什麼要犧牲通道數呢? 因為9401除了單純的DIO功能以外,它還可以配合LabVIEW Scan Mode設定為有counter功能的模組,非常方便。要用NI 9403達到同樣功能不是不行,只不過是要自己寫FPGA code,對於初學者來講會比較困難。至於輸出的部份,我會推薦NI 9472(8個高達24V的輸出通道)。9472可以接收一個外部DC電源,外部電源的電壓是多少,9472送出來的數位訊號就會以這個DC電壓為準。同樣的,如果需要更多輸出通道的話,可以選擇NI 9476 (32個高達24V的輸出通道。)

所以嘍,總而言之,這裡是John的CompactRIO首選模組總結:

image 

模組類別

最經濟實惠

預算充裕

AI

9201

9205

AO

9263

9264

DI

9401

9401

DO

9472

9476

這樣一來,各位就不用為該選哪些模組傷腦筋,我們可以有更多的時間來寫LabVIEW!

-John

2010年6月14日 星期一

Gobot, the Go Playing Robot - Demo

上次分享的Bioloid馬達控制,已經有人用LabVIEW做出類似的機器人了! 這是一個用Bioloid馬達做的機器手臂,LabVIEW把它跟影象辨識,下圍棋的AI演算法,以及控制手臂的反運動學計算全部結合在一起。他們用的library好像是GNUGo,有興趣的朋友們可以看一下。

原始連結: http://decibel.ni.com/content/docs/DOC-2976#comment-3417

當iPhone遇上LabVIEW,會擦出什麼樣的火花?

大家都知道,現在風靡全球的iPhone已經是無微不至,無孔不入,幾乎世界上的每個應用都有個iPhone程式,但是iPhone拿來控制機器人? 這我好像還沒聽說過。既然LabVIEW的連接能力這麼大,我們就來看看LabVIEW能不能夠跟iPhone結合在一起,我們先想辦法來讀取到iPhone的三維加速規和電子羅盤好了。

曾經我有在App Store搜尋過關鍵字LabVIEW,但是唯一的程式是個叫做VIRemote的app,那時候在NI為了做一些實驗,我們就狠心的把這個爆貴的程式買了下來(你有聽過美金19.99的app嗎? 這些人還蠻囂張的。) 雖然它功能蠻豐富,除了擷取加速規以外(沒有compass),還可以當作一個你在PC上跑的LabVIEW程式的”遙控”,就像遠端桌面那種概念一樣,在iPhone裡就會看到一個比較小但是跟PC螢幕上的front panel一樣的程式。不過它跑起來還有點麻煩,因為還要另外再下載一些專屬它的VI才能用。

http://itunes.apple.com/tw/app/viremote/id344980935?mt=8

為了幫各位節省各位荷包裡辛苦存的Coco,小弟我終於找出了一個便宜(免費)又方便的方法來擷取iPhone的加速規和電子羅盤資料。首先,先下載一個叫做iSensor的app:

http://itunes.apple.com/tw/app/isensor/id353118286?mt=8

image

它能夠透過UDP的方式直接用字串把資料透過無線網路送出來。接下來,只要你的電腦和Iphone有在同個網域,就可以接收到iPhone的字串。設定上,記得要把Network打開,Unicast或Multicast都可以用(印象中好像Unicast會比較快一點,不過要指定PC的IP。) 你可以用LabVIEW內建的UDP Receiver範例程式,或者是直接下載我修改過後的版本來用,要注意UDP port要跟app那邊設一樣就好了。

image

http://groups.google.com.tw/group/riobotics/web/UDP%20Receiver%20for%20iSensor%20app.vi

(補充: 若進到link不能下載,請按右鍵再按另存新檔)

接下來大家就可以發揮想像力,看看可以用在哪種應用。。。 這似乎比多年前LabVIEW控制Wii搖桿的程式碼還要刺激!

-John

LabVIEW 控制 Bioloid AX-12+馬達

上次幫客戶在做一些驗證,看LabVIEW可不可以透過RS-232控制韓國Bioloid系列的AX-12+馬達 … 後來狂K它的通訊協定,再加上一些朋友的幫忙,終於透過LabVIEW來控制它了。因為這些馬達力量還算不錯,體積又小,很多中小型人型機器人都會用這種馬達,只不過是要搞懂它的通訊協定罷了。有興趣的朋友可以email我,程式碼可以寄給你看看!

Bioloid  Robotic  Kit

2010年6月13日 星期日

RST 2010 大專盃 機器人移動平臺 Demo

這個週末外面都在下雨,哪兒都不能去,不過還好有機器人陪伴著我…

最近已經寫好了一些LabVIEW控制RST機器人平臺的範例程式,等我整理一下之後,就會將這些程式碼公佈出來,希望能夠提供今年要參加機器人競賽一些參考的基礎。沒想到這個平臺控制起來還蠻順的 … 請看以下影片:

 

 

接下來如果有時間的話,會陸續整理一個「非官方使用手冊」,這樣一來大家就可以站在同個起跑點了!

-John

2010年6月7日 星期一

NI,再見了 … 睿柏科技,我來了!

五年的時間說真的說長不長,說短不短,想當年進NI的時候是個傻小子,沒想到現在 … 還是一個傻小子。很多人都不太理解我為什麼會想離開NI … 說真的,我自己也說不太上來,可能是一種第六感吧,從小我就一直會幻想,好像我揹負著什麼神聖的使命感,看到許多自己覺得不公平的,不能理解的,無法抗拒的,就會想要去改變它。當然,踏入職場後,這種感覺漸漸的被現實生活中的需求擠到第二順位,就像學長的一句名言,還是填飽肚子最重要…

在NI的這段日子裡,我想除了學會和同事們之間合作以及溝通以外,最大的收穫應該就是學會LabVIEW吧。當然,當了NI的Marketing和Sales那麼久,不可否認的是NI很會宣傳自己的技術,不只是對客戶,對內部員工也是。有時候美國總部的宣傳都會用些蠻煽動人心的詞眼,像「LabVIEW 8.0 - 發現分散式智慧!」或者「LabVIEW 8.6 - 駕馭多核心處理器效能!」,身為NI台灣區的行銷工程師,有時候我們真的會人格分裂,因為我們必須保持著啦啦隊的熱忱,可是同時又要以最務實的角度來為台灣的客戶把關,三不五時的要回嗆美國,反問他們這些新功能到底台灣客戶用的到用不到。不過經過了這麼多版本的LabVIEW,我還是深深相信LabVIEW的能力,於是如今也把自己後半段人生託付給它了,成立了睿柏科技顧問有限公司。

到底為什麼要成立睿柏科技呢? 我希望透過睿柏的顧問服務,能夠讓越多人看到LabVIEW的威力與能力。其實我一直都樂于助人,樂于分享,只是有時候礙於工作崗位上的任務在身,沒辦法去照顧到每一個客戶,那種感覺就像你去四川大地震救難一樣,有這麼多人希望你去協助他,但是畢竟能力有限,能救一個是一個,於是那些你無法救的人,心中開始埋怨,「為什麼LabVIEW這麼爛!」我在深夜中搜尋到了這位研究生的blog文章,我不能夠忍受的是,我這麼愛用的工具居然會被人這樣誤解:

http://leojdh.pixnet.net/blog/post/27814974

於是,成立睿柏的其中一個目的就是為了想要提供想LabVIEW的同學們另外一個學習LabVIEW的途徑。現在睿柏已經和NI在搭配,提供兩天的LabVIEW學術課程: ni.com/taiwan/class,價位也比原廠訓練價位降許多。雖然現在課程剛起步,沒有很多同學知道有這個課程,但是我相信這個課程一定能夠打出好口碑,吸引更多同學慕名而來!

不過矛盾的是,我發現自從成立了公司之後,現在反而有更少的時間能夠玩我愛玩的LabVIEW程式,唉,這好像跟當初想像的不太一樣,不過我相信這只是個過渡期,未來一定可以有更多時間可以跟大家做分享!

clip_image002

-John