2D多机器人仿真库?

时间:2014-02-22 22:02:08

标签: simulation robot

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

问题
任何人都可以推荐满足以下要求的仿真库,可以用于多机器人2D仿真吗?

我之前从未对模拟进行过编码,因此很多现有的库都可以解决我的一些问题。但是,Mason项目是我发现的迄今为止看起来很有希望的唯一资源。不幸的是,我们的一些团队成员并不十分精通Java,所以如果可能的话,我希望找到适合其他语言的东西。

要求
 *语言偏好(降序):python,c ++,(也许)java
 *仅限开源/ FOSS建议  *禁用模拟的选项/标志:我们计划针对每种算法运行数千个随机生成的形状的试验,因此对于大多数试验,我们不关心任何视觉表示,只关心数据。因此,如果有意义的话,模拟逻辑必须与图形组件分离  *碰撞检测
 *可定制的可视化表示:在模拟中,我们希望有多个视图(或单个视图的切换),提供有关每个机器人的其他信息,如当前状态,当前观察的区域等。

1 个答案:

答案 0 :(得分:0)

对于这样简单的图形,你可以放心使用pyqt或wxpython。

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

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

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

对于碰撞检测,请查看pybox2d。