2014-02-22 38 views
0

背景
我正在開展一個小組項目,以模擬一組獨立機器人在2D平面上形成任意形狀所使用的一些共識算法。機器人被建模爲單位磁盤,並且都運行相同的算法。基本上,每個機器人可以隨時移動,等待或觀察其本地環境,但無法與其他機器人明確溝通。我們希望找到一個模擬甚至2D圖形庫來幫助我們,而不用從頭開始編寫太多。2D多機器人模擬庫?

問題
誰能推薦一個仿真庫會議下方的要求,可用於多機器人二維模擬?

我以前從來沒有編寫過模擬代碼,所以有可能我的一些問題很容易被許多現有的庫解決。但是,Mason項目是我發現的迄今爲止看起來很有前途的唯一資源。不幸的是,我們的一些團隊成員並不擅長Java,因此如果可能的話,我希望找到適合其他語言的東西。

要求
*語言首選項(按降序排列):巨蟒,C++,(也許)的Java
*開源/開放源碼軟件建議只
*選項/標誌禁用模擬:我們計劃運行幾千根據每種算法對隨機生成的形狀進行試驗,因此對於大量試驗,我們不關心任何視覺表示,只是數據。因此,如果有意義的話,仿真邏輯必須與圖形組件分離。
*碰撞檢測
*可自定義的視覺表現:在模擬中,我們希望有多個視圖(或切換爲單個視圖),以呈現關於每個機器人的附加信息,例如當前狀態,當前正在觀察的區域等。

回答

0

對於這樣簡單的圖形,你肯定可以逃脫pyqt或wxpython。

模擬本身應該是它自己的python模塊; GUI應該只加載模塊,然後定期調用其「timestep」函數(定時器,GUI空閒回調等);階梯函數應該通過一小步時間來演化機器人系統。

GUI應該只顯示模擬狀態。避免將所有內容(顯示和模擬)混合在一個模塊中,它會變得非常混亂,再加上如果你的模擬引擎是一個單獨的模塊,那麼你也可以直接從命令行運行它並查看輸出文件。

編寫一個讀取這樣的輸出文件的python腳本並且生成命令來使用win32com在excel或powerpoint中以圖形方式表示它,在這種情況下,您甚至不需要pyqt或wxpython。

對於碰撞檢測,請看pybox2d。