我想列出一个出色的机器人模拟环境,包括它们的优点和缺点。我知道的一些例子是Webots和Player/Stage。
12 回答
ROS将可视化您的机器人以及您从中记录的任何数据。
要检查的包裹将rviz
和nav_view
另请阅读MSDN 杂志上的这篇文章
这完全取决于你想对模拟做什么。我做有腿机器人模拟,我的视角不同于移动机器人,但是......
如果您对动力学感兴趣,那么最古老但最难使用的一种是 sd/fast。最初制造它的公司被一家大型 cad 装备收购。您可以尝试前往:http
://www.sdfast.com/
这会花费您一些钱,但我相信模拟的准确性。没有接触或碰撞模型,所以你必须自己动手。我用它来模拟两足动物、游泳鱼等。也没有可视化。因此,它适用于铁杆程序员。但是,它在我们这些老人中很受尊重。
人们使用 OpenDynamics 引擎http://www.ode.org/进行“更轻松”的模拟。它带有一个积分器和一个原始的可视化包。有 python 绑定(python 万岁!)。
摩擦模型的构建......是......没有很好的记录。而且没有意义。此外,模拟可能会无缘无故地突然“分崩离析”。模拟可能准确也可能不准确。
现在,MapleSoft(在美丽的加拿大滑铁卢)推出了 maplesim。它会让你花掉一些钱,但这是我喜欢它的地方:
它不仅仅是机器人技术。你几乎可以做任何事情。我相信您可以模拟汽车、齿轮、发动机上的悬挂系统……我认为它甚至可以与电路模拟接口。因此,如果您正在构建高性能产品,那么 MapleSim 是一个强有力的竞争者。转到 www.maplesoft.com 并搜索它。
他们非常乐意为您提供 30 天的评估副本。
当然,你可以回家酿造。您可以使用 maple 或 mathematica 等符号计算程序求解大多数简单机器人的 Lagrange-Euler 运动方程。编辑:不能优雅地在 Maple 中做某些衍生物。我不得不求助于黑客。
但是,请注意速度问题。
最后,对于更具生物学动机的工作,您可能需要查看 opensim(不要与 OpenSimulator 混淆)。
编辑:OpenSim 与 SD/Fast 共享一个团队成员。
还有很多其他专门的模拟器。但是,要小心。
总之,这里是面向机器人工作的模拟器的评估标准:
(1) 你有什么样的碰撞模型?如果是非常刚性的弹性碰撞,则在碰撞期间您可能会遇到数值稳定性问题(2)可视化-您可以添加不同的地形等。(3)方便的图形构建工具,因此您不必编码然后查看-你得到什么。处理复杂的系统(比如一个完整的人形机器人)很难在你的脑海中思考。
(4) 底层仿真算法的复杂度是多少。如果是 O(N) 那就太好了。但它可能是 O(N^4) ,就像直接拉格朗日欧拉推导的情况一样……那么无论你的机器有多快,你的系统都无法扩展。
(5) 它有多准确,你在乎吗?(6) 它是否帮助您集成传感器。对于移动机器人,您需要具有“机器人眼睛视图”(7)如果它进行可视化,您是否可以在物体移动时自动跟随它,还是必须四处追赶?
希望有帮助!
它不像 Webots 那样令人印象深刻,但RobotBasic是免费的、易于学习的,并且对于制作简单的机器人运动算法的原型很有用。您还可以从 IDE 编写 BasicStamp。
我一直在针对SimSpark进行编程。它是RoboCup 3D 模拟足球联赛背后的开源模拟引擎。
它可以针对不同的模拟进行扩展。您可以使用 C++、Ruby 和/或 RSG(Ruby 场景图)文件插入自己的传感器、执行器和模型。
ABB 有一个名为 RobotStudio 的解决方案,用于模拟他们的大型工业机器人。我不认为它是免费的,我猜你不会从中获得很多乐趣,但它令人印象深刻。这是一个关于它的页面
我一直在使用 Carmen http://carmen.sourceforge.net/并发现它很有用。
Carmen 的缺点之一是所有方面的文档,我认为该网页有点过时且不足。所以我喜欢听取其他有与 Carmen 合作经验的人的意见,或与 Carmen 打交道的学生报告/项目。
你可以找到一个很好的模拟环境列表http://www.intorobotics.com/robotics-simulation-softwares-with-3d-modeling-and-programming-support/
MRDS 是最好的之一,而且它是免费的。LabView 也很适合在机器人中使用
MRDS 是免费的,是机器人最好的仿真环境之一。也可以使用 Workspace,如果您想要完整的机器人仿真软件列表,请查看此链接
Trik Studio有一个漂亮而清晰的 2D 模型模拟器,以及它们的可视化和文本编程环境。他们还将很快支持基于Morse模拟器的 3D 建模工具。它也是免费和开源的,并具有多语言界面。