2009-08-21

天哪!這真是不可思議!解數獨的NXT樂高機器人

電腦解數獨(Sudoku),沒什麼了不起,因為數學就是電腦擅長的。

探奇的舊文章曾經介紹NXT數獨遊戲

在RWTH也曾經示範過Sudokusolvingrobot,由NXT搭載網路攝影機,進行翻書頁的動作,由PC電腦根據影像負責解數獨。

(號稱在三十分鐘解出兩百題數獨,因為是由電腦解數獨,NXT只是書僮,所以探奇就沒發文介紹)

但是這一台機器人就一定要介紹!!

作者就是創造出LEGO Mindstorms Rubik's Cube Solver的Tilted Twister。

(請參考探奇舊文章關於Tilted Twister的介紹)

這一台機器人LEGO Mindstorms Sudoku Solver,可以閱讀數獨題目,解題,填寫答案!!

(探奇推測叫NXT『出題』也一定做得到!)

看來今年的WRO創意機器人比賽非它磨屬,他不就是『萬能才藝機器人』嗎?!!

我一定會做一台試試看!

閱讀數獨題目:只靠光源感應器,加上影像處理技巧,就能辨識數字及位置。

影像處理包含:掃瞄原圖,二值化,篩選,細線畫,特徵擷取。真不是蓋的!

解題:使用數學技巧撰寫程式,但是NXT處理器不允許遞回功能,所以需要特別處理。

(探奇:不知道這是韌體的問題,還是程式語言的問題。也還不知道作者使用的韌體版本)

(2009.9.5更正,是NXT Firmware不支援recursion的問題)

填寫答案:機器手臂移動寫字的功能。

這真是集所有技術學問於一身,雖然不知道這台機器人要花多久時間完成任務,但是就軟硬體架構而言,已經跟真的機器人相去不遠。能夠將NXT如此應用,真是高明!

快來看看影片,其他細節尚待公布喔!




1 則留言:

  1. 邱老師
    哇!又看見令人驚艷的東西,看來 NXT 可以做出任何東西,只受限於你的想像力。
    另外從這個作品讓我了解到 NXT 提供三個馬達的用意,因為XYZ三度空間,倘若充分運用這三個馬達就可以精確定位。
    我所知道遞回功能 (Recursive) 在 C、PASCAL、Assembly 等語言很容易設計,因為這些程式語言可以直接使用記憶體做堆疊技巧 (stack),至於其它程式語言要設計 stack 資料結構也是辦得到,但需要程式設計功力夠強才寫的出來。
    看來找個時間在研發養成所介紹給大家參考。 ^_^
    [版主回覆08/23/2009 09:53:17]Bridan,你好:

    每個人都可以發揮想像力,一定能以NXT發展出許多有趣的應用。

    (當然還要有不屈不撓的執行力!)

    以機器人來看,三顆馬達具有三個自由度,可以完全涵蓋空間範圍。

    其實兩顆馬達就可以涵蓋機器人周圍大部分的空間,只是有一些限制。

    剩下的第三顆馬達就可以控制夾爪等終端設備。

    文中所述,NXT主機無法執行遞回功能,應該是受限於韌體或程式語言。

    個人認為1.05版的韌體只能接受整數運算,加上NXT-G沒有陣列,所以受到許多限制。

    NXT的韌體在1.26版以後已經有大幅進步!

    使用其他語言或是不同韌體,應該可以完成這些功能。

    期待您的介紹,我們都可以學習喔!謝謝!





    回覆刪除

探奇歡迎大家留言討論!謝謝分享你的意見。