机器人模拟器

时间:2010-03-28 14:58:48

标签: robotics robotics-studio mobile-robots

哪个是最好的机器人模拟器?截至目前,我只是希望得到潜在场方法,Bug算法,A *算法等的简单模拟!

已知机器人模拟器的列表是

  1. Player Project(2D模拟器 - 舞台 - 3D模拟器 - Gazebo - 和控制界面 - 开源,ROS项目的一部分)
  2. MORSE(通用室内/室外3D模拟器)
  3. Microsoft Robotics Studio(模拟器+控制界面)
  4. KiKS(Matlab插件,仅适用于Khepera +控制界面)
  5. MobotSim(对于像机器人这样的点,更多算法实现)
  6. Karel(漂亮的Kiddish,我猜它是Pascal / Logo之类的)
  7. Peekabot(看起来很酷!)
  8. MRPT(看起来非常好,很快就会尝试)
  9. Carmen(机器人视觉等易于实现(?))
  10. Webots(开源 - 多平台 - 多语言[ROS,Python,Matlab等] - 最先进的外观 - 网页导出)
  11. Simbad(Java和Jython中的2D / 3D模拟器)
  12. Robocode(Java / .NET诉讼)
  13. Rossum's Playhouse(C / C ++诉讼)
  14. V-REP(3D,可用源代码,Lua脚本,C / C ++ API,Python,Java,Matlab,URBI,2个物理引擎,完整的运动求解器等)
  15. 一些更通用的平台/中间件也提供模拟工具:

    1. ROS目前是此类平台的最大集成
    2. URBI
    3. YARP
    4. OROCOS(对此一无所知!)
    5. 关于机器人模拟器的一些参考文献:

      1. Development environments for autonomous mobile robots: A survey
      2. Open source robotics toolkits
      3. Updated review of robotics software platforms
      4. Existing Simulators - webpage@laas.fr
      5. List at Asaf Matan's website

12 个答案:

答案 0 :(得分:9)

我会选择一个常用的框架。由于您对路径规划感兴趣,请选择已经模拟机器人的框架,然后编写为其生成路径所需的规划服务。

ROS非常酷,并且有很多有用的感知服务选择,以及完整的PR2堆栈。它使用凉亭(玩家/舞台的一部分)进行模拟,并包括一些现成的机器人(不稳定将是理想的)。它很新,但非常活跃。

MRDS有几个合适的机器人,坦率地说,更好的模拟环境然后是ROS,但通过高级服务并不是那么多。乐高机器人模拟器可以满足你的需求,并且可以让你选择在未来便宜地在真实硬件上进行验证。

目前,这两个人拥有狮子会的开发者份额。真正的决定归结为你是否更喜欢在Windows下的视觉工作室或Linux平台上开发。两者都是免费的(MSRS在ELMS / dreamspark项目下),两者都有学习曲线,都有很好的社区支持。对于MRDS,请注册论坛,获取ROS,加入邮件列表。

答案 1 :(得分:2)

听起来你需要的只是一个2D模拟器。所以我会避免3D模拟器的开销和头痛。关于您的选择的一些注释:

  1. 播放器包括2D模拟器(舞台)和3D物理模拟器(Gazeebo)我认为使用ODE
  2. MRDS包括PhysX的3D物理模拟器

  3. ROS只是一种架构,我不相信它有自己的模拟器。虽然它确实有一些不同的可视化工具。它也包装了玩家。

  4. 另一种流行的模拟器/架构是WeBots。但我认为这只是3D。

    这就是我所知道的。祝好运。 -ben

答案 2 :(得分:2)

我一直在针对SimSpark进行编程。它是RoboCup 3D Simulated Soccer League背后的开源模拟引擎。

它可以针对不同的模拟进行扩展。您可以使用C ++,Ruby和/或RSG(Ruby Scene Graph)文件插入自己的传感器,执行器和模型。

我不知道它是否是最好的模拟器,但我很喜欢使用它。

编辑回应Arkapravo的评论。

我编写了一个.NET API,用于编写名为TinMan的RoboCup 3D代理。

YouTube上有很多关于模拟3D足球比赛的视频。 This is one of my favourites

RoboCup 2010本周将在新加坡举行,但不幸的是我无法成功。

RoboCup 3D在名为SimSpark的物理模拟引擎上运行。它有一个comprehensive Wiki,其中包含大量信息,解释了它是如何工作的。

我的经纪人仍然很原始,所以我还没有发表任何关于它的内容。如果你有兴趣,有很多open source agent implementations用不同的语言。

答案 3 :(得分:2)

peekabot不是一个模拟器,只是一个可视化工具,在某种程度上是一个交互式控制机器人的工具。不过,它与没有自己的可视化的模拟器一起使用是很好的匹配。

MRPT没有(完整的)模拟器AFAIK,只有算法,接口,驱动程序和自己的日志格式。除此之外,它看起来很整洁。

如果您对规划感兴趣,

OpenRAVE可能值得一试。

Gazebo并不是真正的成熟和稳定,最后我尝试过它(〜1年前)。可能值得一试。

舞台使用简单,前提是您只需要一台没有动态的2D模拟器。

我已经将ODE和Bullet用于机器人模拟,虽然我推荐ODE,但两者都运行良好。

要获得更明确的答案,您需要优化您的要求 - 即您是否只寻找模拟器或更像ROS的东西,您是否需要具有动力学或仅2D的3D模拟器,它必须具备的准确度,是什么传感器你想要模拟等等。

答案 4 :(得分:1)

ODE有人吗?我在我的micromouse项目中经常使用它..

答案 5 :(得分:1)

Urbi不是模拟器。它是一个中间件平台,依赖于并行和事件驱动的脚本语言。它现在是开源的,并且支持ROS,这意味着你应该同时使用它们! 以下是有关Urbi的一些信息:www.urbiforge.org

最后但并非最不重要的是,它对初学者来说很容易使用。

希望您获得的所有信息都可以帮助您选择合适的模拟器!

答案 6 :(得分:1)

有一些针对人形机器人和/或一般多体应用,但它们也可以用于移动机器人的目的:

  1. OpenHRP:开源,包含大量用C ++编写的库,用于前向动力学模拟和可视化。启动和运行有点痛苦,相当多的依赖对版本非常敏感。
  2. Robotran:免费供个人使用和/或研究用途。主要在Matlab / Simulink环境中运行。很容易让模型运行起来。
  3. MapleSim:商业软件,但对非常复杂的建模非常有用。在Matlab / Simulink中为模拟/可视化输出高效的符号多体动力学。
  4. 所有这些软件包都用于模拟/可视化,这对机器人应用程序的一般设计很有用。

答案 7 :(得分:1)

我正在开发基于Blender的另一个机器人模拟器。它被称为MORSE,它的目标是成为一个基于模块化组件的非常灵活的模拟器。它提供与各种中间件的连接,目前是YARP,ROS和套接字。 目前使用它的应用包括多个移动机器人协作和人机交互。

您可以在官方主页上找到更多信息: http://morse.openrobots.org

它是全部开源的,我们有用户的邮件列表。如果您能尝试并给我们您的意见,我们将不胜感激

答案 8 :(得分:0)

Breve已被用于模拟已实际实施的机器人。 Breve由ODE推动。

答案 9 :(得分:0)

我推荐的一个非常好的选择是Cogmation的RobotSim。他们还有另一个产品RobotBuilder,让你可以构建任何你能想象到的机器人,甚至可以导入你自己的模型。

答案 10 :(得分:0)

我今天在网上遇到了福克斯:

http://www.fawkesrobotics.org/

  

Fawkes是面向各种平台和域的机器人实时应用程序的基于组件的软件框架。

     

开发并使用了四年多的认知机器人实时应用,如足球和服务机器人。它支持快速信息交换以及不同组件的有效组合和协调,以满足在不确定环境中运行的移动机器人的需求。

它也是开源的(GPL)。

答案 11 :(得分:0)

我还提到了Unity3D,它实际上更专为游戏开发而设计,但具有良好的3D图形,脚本(javascript或Mono / C#),物理等功能,可用作模拟器如果您愿意自己编写或集成某些特定于机器人的功能(传感器,算法等)。

另外,它是跨平台的,基本版本是免费的,它可以轻松地制作一些非常漂亮的演示。