2014-02-22 36 views
0

背景
我正在开展一个小组项目,以模拟一组独立机器人在2D平面上形成任意形状所使用的一些共识算法。机器人被建模为单位磁盘,并且都运行相同的算法。基本上,每个机器人可以随时移动,等待或观察其本地环境,但无法与其他机器人明确沟通。我们希望找到一个模拟甚至2D图形库来帮助我们,而不用从头开始编写太多。2D多机器人模拟库?

问题
谁能推荐一个仿真库会议下方的要求,可用于多机器人二维模拟?

我以前从来没有编写过模拟代码,所以有可能我的一些问题很容易被许多现有的库解决。但是,Mason项目是我发现的迄今为止看起来很有前途的唯一资源。不幸的是,我们的一些团队成员并不擅长Java,因此如果可能的话,我希望找到适合其他语言的东西。

要求
*语言首选项(按降序排列):巨蟒,C++,(也许)的Java
*开源/开放源码软件建议只
*选项/标志禁用模拟:我们计划运行几千根据每种算法对随机生成的形状进行试验,因此对于大量试验,我们不关心任何视觉表示,只是数据。因此,如果有意义的话,仿真逻辑必须与图形组件分离。
*碰撞检测
*可自定义的视觉表现:在模拟中,我们希望有多个视图(或切换为单个视图),以呈现关于每个机器人的附加信息,例如当前状态,当前正在观察的区域等。

回答

0

对于这样简单的图形,你肯定可以逃脱pyqt或wxpython。

模拟本身应该是它自己的python模块; GUI应该只加载模块,然后定期调用其“timestep”函数(定时器,GUI空闲回调等);阶梯函数应该通过一小步时间来演化机器人系统。

GUI应该只显示模拟状态。避免将所有内容(显示和模拟)混合在一个模块中,它会变得非常混乱,再加上如果你的模拟引擎是一个单独的模块,那么你也可以直接从命令行运行它并查看输出文件。

编写一个读取这样的输出文件的python脚本并且生成命令来使用win32com在excel或powerpoint中以图形方式表示它,在这种情况下,您甚至不需要pyqt或wxpython。

对于碰撞检测,请看pybox2d。