電腦解數獨(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如此應用,真是高明!
快來看看影片,其他細節尚待公布喔!
邱老師
回覆刪除哇!又看見令人驚艷的東西,看來 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版以後已經有大幅進步!
使用其他語言或是不同韌體,應該可以完成這些功能。
期待您的介紹,我們都可以學習喔!謝謝!