LEGO SPIKE Prime Essential 樂高機器人,LEGO MINDSTORMS Robot Inventor, EV3 ,樂高動力機械 BricQ Motion 程小奔Codey Rocky,mBot2,CyberPi 童芯派 mBlock5 慧編程, Python 專業教學,課程設計。 Scratch, MakeBlock產品 艾多美 Atomy 生活用品 NXT 樂高機器人:創意樂趣,隨心所欲!
SPIKE 樂高機器人
▼
我的網頁
▼
2012-03-07
MATLAB SIMULINK內建支援NXT樂高機器人
幾年前就有玩家利用MATLAB控制NXT樂高機器人,但是過程比較複雜,需要安裝驅動程式,設定一堆東西。
(請參考RWTH - Mindstorms NXT Toolbox for MATLAB)
現在MATLAB SIMULINK R2012a 直接內建支援NXT樂高機器人。學生版也可以使用。
(LEGO MINDSTORMS NXT Support with MATLAB and Simulink)
這樣設計的用意是:原本在電腦上模擬的動態控制可以落實到真正硬體應用,SIMULINK目前支援兩種硬體,
包含LEGO MINDSTORMS NXT Support with Simulink及BeagleBoard Support with Simulink
(請參考Simulink說明:Run Simulink Models on Supported Target Hardware)
使用上,除了簡單方便的安裝方式,還支援許多感應器:包括陀螺儀,加速度計,彩色感應器等。
MATLAB部落格也發文介紹自家產品,請參考Running Simulink models on LEGO MINDSTORMS NXT。
簡單連結下面兩個影片比一比:
使用前:
忍不住要跳出來替nxt-g喊冤一下。
回覆刪除雖然我本身也是matlab的愛好者,但是matlab用線性尋跡,g用二元循跡,這個比較差太多辣~~~
(但是就算g的程式架構改成跟matlab的一樣,彎道應該也沒matlab來的順,我猜)
邱老師要替nxt-g平反呀XD
[版主回覆03/14/2012 10:37:21]謝謝大雄老師的平反說明。
這種使用前使用後的比較,的確需要仔細思考比較的基準。
我想原始文章裡只是要說明作者一開始利用NXT-G控制NXT,後來發現MATLAB也可以寫程式操縱NXT。
其實拿NXT-G與MATLAB比較,當然不太公平。我在文中也請大家注意第2部影片是使用nxtOSEK軔體。
我不是程式設計專家,但就我的認知,控制機器人需要經過下列的程序才能完成:
程式-->編譯器-->軔體-->硬體
在硬體相同的情況下,就算程式架構一模一樣,還是會受到編譯器與軔體的影響。
MATLAB用到nxtOSEK的軔體,所以當然沒得比。
但是再想一想,NXC,LVEE,不都是可以使用NXT官方軔體嗎?
那麼這三者(NXT-G, NXC, LV)的表現又如何呢?
我不得不說這就是NXT-G可憐的地方,(真不知道NI在搞什麼,為了凸顯LABVIEW的功能才是強大的?)
其實NXT-G可以更好,更強 (請LEGO不要用『為了適合小朋友使用』的話術來塘塞我)
或許一個好的軟體可以簡易親民,也能夠變化萬千,才不辜負(禁錮)NXT硬體啊!
還請大雄老師試試以NXT-G模擬MATLAB程式,試試看P control架構是否能夠降低編譯器及軔體的影響。
昨天找時間去台中玩樂高手教室測試,測試結果是P control是可以有效改善機器人運動方式。
回覆刪除其中最讓我驚訝一點是,如果真的照著SIMULINK介紹頁的程式碼去模擬,你的車子是跑不動的!!!
這點,相信很多人在沒有實作之前是沒想到的。
http://www.youtube.com/watch?v=BU7CF09l9xk
[版主回覆03/18/2012 11:43:54]比例控制的確有效,感謝大雄老師的測試!
其實仔細觀看原作者的影片,你會發現MATLAB的程式碼跟部落格網頁也不相同喔!
(可見有一點模糊焦點的味道)
大雄老師更改兩個變數,提升機器人的速度,大家可以學習看看。
我想是不是不用更改Steering參數,只要將10的基速值提高,就能加速呢?
歡迎大家提出討論。