顯示具有 CompactRIO 標籤的文章。 顯示所有文章
顯示具有 CompactRIO 標籤的文章。 顯示所有文章

2010年10月25日 星期一

IROHCS 2010 機器人競賽賽後轉播

各位久違了,最近真的是當了一個很不盡責的站長,好像離上一次的文章發表已經有足足一個月多的時間,不過各位放心,John都有在偷偷的做筆記,在為未來的文章內容做準備。上個禮拜真是忙翻了,不但是有台北的機器人展覽要顧,同時禮拜五又是IROHCS 2010大專盃的總決賽,John的電話量瞬間暴增,每天手機都要早晚充電一次才夠用。上禮拜五真是精彩啊! IROHCS 籃球機器人總決賽賽,由初賽的12組當中,有4組晉級到決賽,再加上大會邀請了兩組大陸隊伍(北京清華大學,上海交通大學),由這六組來決一勝負,爭奪前三名的名次和獎金。今年的題目,除了包含機器人自主取球並傳遞至球員以外,還有個特別加分題,就是將一個排球射進一個小型的籃框。當John幾個月前看到題目時,真的是有點傻眼,要機器人傳球就已經很困難了,還要射球?! 這根本是難上加難。

不過,今年度倒是新增了一些蠻有創意的作品。去年冠軍隊伍台大電機系使用的是拋球的機構,在今年份我們也看到了許多類似的設計。其實這個競賽比較有趣的部份是,機器人的穩定度不是唯一奪冠的要素,競賽有一部份的分數還是要靠人把籃球射進籃框。現在就讓我們來看看,這次競賽的作品吧!

崑山科技大學: 感覺上來勢洶洶,機器人上準備了一些超大的馬達,好像除了籃球以外,真正的石頭也可以投。很可惜這參加隊伍沒有仔細看機器人重量的限制,他們的機器人雖然力道很強,但是還是被取消了得分資格。

IMG_0641IMG_0642

明新科技大學: 這臺機器人採用的不是一般鏟球的方式來取球,而是將手臂放下來用夾的方式。

IMG_0644

義守大學: 為節省成本,這組採用LEGO NXT為控制核心,然後以TETRIX擴充套件來添加手臂。

IMG_0650

台灣大學: 上一次競賽的衛冕者,這次修改了機構,採用比較長的手臂設計,若馬達力量足夠,能夠將籃球拋出更遠的距離。

IMG_0651

建國科技大學: 這應該是我看過線最多的一個作品,他們在機器人上背了一罐壓縮空氣,成為他們機器人的射球動力來源。不過好像後來,真的有一條線不小心掉了…

IMG_0652

台灣科技大學: 機構採取木板組裝,取球的時候,球會「坐電梯」來到機器人的上方,然後再經由彈簧拋出去。

IMG_0655

上海交通大學: 這可能是我看過最專業的作品,連他的馬達都用的是諧和式減速機(harmonic drive)在跑,連手臂降下來的時候都會嗡嗡做響,讓我差點以為變形金剛來了!

IMG_0662

在決賽的最後幾會合裡,分數已經幾乎不分上下,上海交通決定挑戰加分會合: 將排球射進籃球框裡! 以下是剛好捕捉到的影片,真是令人熱血沸騰的一刻!


經由這次競賽,我們看到了很多隊伍的技術突破,希望在明年度的競賽能夠再看到精彩的機器人脫穎而出!

-John

2010年7月14日 星期三

RST非官方說明手冊 Part 4: 軟體設定與測試

現在,我們需要將所有的元件的軟體都安裝並設定好。我們先把焦點放在無線AP上,就像在家裡設定無線網路一樣,你可以將筆電和AP先用網路線對聯起來,或者是用筆電的無線網路搜尋這個AP的SSID然後跟它連線。無論用哪種方法,到最後都可以用瀏覽器指向它的預設IP http://192.168.11.1,這樣就可以進入AP的設定畫面。WCR-G54的預設username為”root”,密碼為空白。以下則是WCR-G54的設定畫面。

註: 不同廠商的AP會有不同預設IP和密碼,詳細規格請以廠商提供之文件為主。

clip_image002

在設定畫面裡,我們就可以更改AP的IP,或者改它廣播的SSID,以及是否要不要加密。我讓IP保留為預設的192.168.11.1,不過為了未來搜尋這個AP比較方便,我將SSID改為”RST Robot”,這樣就不會跟家裡或者學校其他無線網路搞混。

clip_image004

設定完成之後,就會看到像這樣的確認畫面:

clip_image006

接下來要為CompactRIO設定IP,請用桌面上的Measurement & Automation工具(簡稱MAX)來進行設定:

clip_image008

將MAX開啟,應該就會在左半邊的畫面看到Remote Systems»0.0.0.0。這是CompactRIO的預設IP,現在我們就把它改為跟AP一樣的subnet,也就是說,IP address前三碼一樣,最後一碼不一樣。例如,在IP address的欄位,直接填入192.168.11.3,subnet mask填入255.255.255.0,gateway和DNS Server都可以留空白,設定完成了之後就可以按Apply按鈕來讓新IP地址生效。

image

接下來,需要下載這個小工具,它是一個精靈安裝程式,可以快速的完成CompactRIO剩下的設定。下載點:

NI Robotics Hardware Setup.zip

開啟RoboticsHWSetup.exe,看到了以下第一個畫面,就可以按Next繼續。

clip_image012

Step 2會詢問現在你的硬體是不是NI的Robotics Starter Kit,這裡的格子不要勾。

註: NI Robotics Starter Kit為NI的小型機器人平臺學習套件,有興趣可以到http://sine.ni.com/nips/cds/view/p/lang/zht/nid/208010多加了解。

clip_image014

Step 3會自動偵測網路subnet裡的CompactRIO系統,給它幾秒鐘來掃描,偵測到了之後就可以進行下一步。

clip_image016

Step 4將會把一些CompactRIO本身需要的軟體核心灌進CompactRIO裡,這部份可能要等一兩分鐘才會完成。

clip_image018

完成了之後,可以查看CompactRIO的第四個LED是否有在閃爍,若有,代表安裝程序正確!

clip_image020

最後Step 5會問你要不要用LabVIEW開一個Project,這個不用勾,直接按Exit就可以了。

clip_image022

接著我們也要把AXIS 206的IP設定一下。AXIS 206背面有貼一個貼紙,上面寫著它的預設IP以及Username/Password。例如,我手上這款是192.168.0.112,Username為root,密碼為pass。

clip_image024

用瀏覽器指向http://x.x.x.x,然後以提供的帳戶和密碼登錄,就會看到相機的即時影像。

clip_image026

選擇右上角的Setup選項,再點選左邊的TCP/IP選項,就可以設定AXIS 206的IP。我把它設為192.168.11.4,subnet mask 255.255.255.0。設定好了之後,再按最下面的Save按鈕。

image

再來還有一個選項要處理的,就是點選左邊Users選項,然後把Enable Anonymous Login選項打勾。這會讓以後我們要用相機的時候,不用每次都要key in帳戶和密碼。設定好了之後,再按最下面的Save按鈕。

image

終於,這一切都設定完了之後,可以開始用LabVIEW來測試一下一切是否正常。這裡有個我寫的LabVIEW測試程式,各位可以從這裡下載:

RST Robot 6.10.2010.zip

請開”RST Robot 2010”的LabVIEW Project檔,開啟了應該會看到像這樣的畫面:

clip_image032

接著,開啟CompactRIO底下的Motor Remote Control Main.vi。在執行的時候,這個程式會讓CompactRIO接收由PC筆電傳來的馬達速度指令。按下左上角的執行按鈕,程式就會下載到CompactRIO並執行。

image

接下來,再開啟My Computer底下的Joystick Control.vi。這個程式負責從一個USB搖桿擷取指令,然後把馬達速度傳給CompactRIO來執行。一樣,按下左上角的執行按鈕,程式就會執行。這時候你就可以用你的USB類比搖桿,來控制RST平臺的前進,後退,左右轉,並且還可以依據你類比搖桿的位置來控制RST平臺的相對移動速度。

clip_image036

最後一個程式則是RST Object Tracking Vision Demo.vi,這個程式會利用AXIS 206所擷取到的影像來做顏色辨識,並將RST平臺左右移動,讓RST平臺可以將物件鎖定在正前方。執行之前先把Joystick Control.vi停止,這樣兩個程式才不會衝突到。更多有關這個Vision程式的原理以及操作說明可以參考我之前的文章:

HSL 色彩空間原理

AXIS 206 Camera 測試

clip_image038

好啦,如果這兩個demo程式跑起來順利的話,表示我們所有的線路和軟體設定都已經處理好了。接下來,就等著你去發揮你的創意,來挑戰IROHCS 2010大專盃的機器人競賽!

補充一下,在提供的範例Project裡,有一個資料夾叫做RST Control VIs,這裡面是些基本的RST平臺控制subVI,方便我們去進行程式撰寫或修改,先解釋一下這些VI的用途:

clip_image002[1]

clip_image004[1]

Open RST: 開啟對RST平臺的連線。在針對RST平臺下任何指令之前,一定要先執行這個VI。

Control Axis 1: 控制左邊馬達的速度(單位是deg/s來算,正數為前進方向,負數為後退。)

Control Axis 2: 同上,不過控制右邊馬達。

Control Both Axes: 同上,不過同時控制左右馬達

Stop Axis 1: 停止左邊馬達。

Stop Axis 2: 停止右邊馬達。

Stop Both Axes: 同時停止左右馬達

Close RST: 釋放RST平臺的連線,準備結束程式。

祝各位一切順利,馬到成功,最重要的是: Have fun!

-John

2010年7月13日 星期二

RST非官方說明手冊 Part 3: 控制訊號和通訊

好,所有的元件都有了電之後,接下來我們要把RST平臺的控制架構建立好。這個階段分為兩個部份: 從CompactRIO接訊號到馬達驅動器,以及把每個元件的網路通訊連接起來。

clip_image002

首先我們先了解一下,RST平臺的伺服馬達控制方式。它的馬達出廠的時候是設定為位置控制模式,換句話說,驅動器可以接受0V-5V脈衝的訊號,驅動器每偵測到一個脈衝(pulse),馬達就會移動一步。RST馬達出廠設定為一圈12,500步,所以當我們送一個12,500 Hz的方波訊號給驅動器的時候,馬達就會以每秒一圈的速度在跑。同理,如果方波訊號頻率是25,000 Hz,那就是每秒兩圈的速度。

那要如何從CompactRIO送方波訊號給馬達驅動器呢? NI 9403這個模組是個標準0V-5V DIO模組,它具有32個channel,透過LabVIEW的程式設定我們就可以控制它輸出的方波頻率。不過LabVIEW的部份我們先不談,首先我們要先把一些線接好。從9403到馬達驅動器有四個訊號是一定要接的:

註: 為了方便,我們就把左邊馬達稱為AXIS 1,右邊馬達稱為AXIS 2

  • AXIS 1的 STEP (PLS) 訊號
  • AXIS 1的 DIR 訊號
  • AXIS 2的 STEP(PLS) 訊號
  • AXIS 2的 DIR 訊號

STEP(PLS)為脈衝訊號,DIR為馬達轉向控制(正轉或反轉。) 這裡是馬達驅動器與9403的pin圖:

image

於是先從AXIS 1而言,我們要把從9403的P0.0接到馬達的PLS+,P0.1接到馬達的DIR+,9403的COM再接到PLS-和DIR-。AXIS 2也是一樣。為了方便,我建議用個37-pin 公對母的cable接到一個37-pin的接線盒,然後再從接線盒把線接到馬達驅動器。或者如果沒有一個接線盒的話,也可以考慮直接用杜邦線來接。

image

到時候就拉兩個37-pin的公接頭出來,兩邊馬達各一個。

clip_image008

再把37-pin cable的另外一頭從RST平臺機身的鐵板拉上來到第二層,這時候我們就準備要把當初拆下來的第一層鐵板裝回去了…

clip_image010

不過在裝回去之前,可以先在AP上接兩條網路線,插到哪個插孔無所謂,這兩條一條是要接CompactRIO,另外一條接AXIS 206相機。

clip_image012

把第一層鐵板鎖回去之後,記得把所有的相關的線材都拉出來到最上層。

clip_image014

把37-pin接到CompactRIO的9403模組,網路線和電源接上CompactRIO,然後把AXIS 206的網路線和電源也接上。再用一些雙面膠把相機和CompactRIO固定在鐵板,恭喜你,控制訊號和通訊的架構就搞定了!

clip_image016

呼,玩了老半天,都沒有開始碰到軟體的部份。下個階段就要把每個元件的軟體先設定好,然後再用LabVIEW程式來做基本測試嘍。

-John

2010年7月12日 星期一

RST非官方說明手冊 Part 2: 其他配件電力整合

好吧,上回我們已經把CompactRIO的電力系統準備好了,接下來我們可以準備其它配件的供電方式。由於Wireless AP以及AXIS 206相機都是使用5V的電源,這時候就需要在RST平臺上多加一個DC-DC Converter來幫我們做電壓轉換。

clip_image002

(在上一步已經接好的CompactRIO,其實在這個階段可以先拔掉,等我們把這些配件的電力都準備好了之後可以再放回去。)

我們選擇的這款DC-DC Converter是VIA PWM-M120G,原用途是小型電腦的電壓轉換器,不過拿來做RST機器人的電力配件也不錯。它可以接受12V-24V的電壓輸入,然後同時提供3.3V,5V以及12V的電壓輸出。它有包含一個DC插頭轉接板,以及一些ATX主機板的電線。

clip_image004

clip_image006

光看power board的話,它有一個標準ATX 20-pin的接頭,以及一個4-pin的接頭。Pin圖如下:

                clip_image008                   clip_image010

在使用之前,PW_ON和GND一定要先短路,否則power board是不會有電壓輸出的(這應該是個安全措施吧。)要短路很簡單,只要用條杜邦線把兩個pin接起來就好。

clip_image012

接下來,要將這個power board連接到RST的電力有很多方法,不過我想最簡單的是從提供的4-pin cable下手。將其中一頭剪掉 …

clip_image014

我們只需要一條紅線,一條黑線,所以我把中間兩條也剪掉了。我在線上加了兩個Y形端子,方便我們來接到配電盤。

clip_image016

準備一片厚紙板,剪成剛好power board的尺寸,然後再用雙面膠帶把厚紙板黏在power board下面。這是為了避免power board跟鐵的RST平臺機身短路。

clip_image018

再用雙面膠把power board和厚紙板的組合黏在RST平臺上(如圖),然後將剛才的Y型端子接上配電盤,最後將4-pin接頭接起來。

clip_image020

如果暫時把RST開關打關的話,用電表來量power board的電壓輸出就會看到一些反應了。我剛好量了一下5V的pin,看起來電壓是OK的。Power board整合完畢!

clip_image022

接著剩下來的配件就簡單了。我們先從無線AP開始。這款Buffalo WCR-G54是市面上算比較小的一款AP,穩定度也不錯,除了提供無線網路以外,並同時提供1+3個有線LAN接頭,所以擴充性也很高。它的包裝:

clip_image024

盒子裡面包含: AP,網路線,還有變壓器。

clip_image026

變壓器以後就可以收起來了,因為我們要直接用power board給的電。這時候就要把一些DC插頭拿出來跟變壓器的DC插頭尺寸比對一下,最好是能夠找到最相似的。如果可以找到圖中像左邊的這種DC插頭延伸線,那會更方便。

clip_image028

拿出好用的雙面膠,在AP的下面貼幾條,然後再把AP貼上RST平臺吧!

clip_image030clip_image032

接著再將DC延伸線的正負端接上power board其中一組5V和GND電源輸出。如果需要的話,可以用剝線鉗剝掉一公分的線,然後再壓兩個杜邦接頭。記得要確認DC接頭到底是「內正外負」,還是「外正內負」,如果正負接錯的話,搞不好會把AP燒壞。

clip_image034

接上的模樣:

clip_image036

保持整齊,把一些線用膠帶固定住。這時候可以再把RST平臺開關打開測試一下,AP上的LED應該就會亮起來嘍!

clip_image038

最後,來把乙太網路攝影機的電力也加上去吧。這是AXIS 206的包裝。註: 據說AXIS這款相機已經快面臨停產,不過其他AXIS系列相機也可和CompactRIO相容,本人有測過206的替代品AXIS M1011相機,一樣也是可以用。

clip_image040

裡面有相機和變壓器,簡簡單單的。

clip_image042

一樣把變壓器拿出來看看,找一個跟它一樣大小的DC接頭。

clip_image044

就如AP那樣,把相機的DC線接到power board的另一組5V輸出。RST平臺開關打開,相機前面的紅色LED就會亮個幾秒鐘(這代表相機啟動狀態),接著它就會以綠色LED顯示(代表相機持續運作狀態。)

clip_image046

恭喜嘍,這時候所有的基本配件都已經有了電。接著在下一個章節,我們要來看這些配件之間的通訊該如何串起來!

-John