这完全取决于您想对模拟做什么。
我做的是腿式机器人模拟,我的视角不同于移动机器人,但是......
如果您对动态感兴趣,那么最古老但最难使用的一种是 sd/fast。最初制造它的公司被一家大型 cad 装备收购。
您可以尝试前往:http://www.sdfast.com/
这会花费你一些钱,但我相信模拟的准确性。没有接触或碰撞模型,所以你必须自己动手。我用它来模拟两足动物、游泳鱼等。也没有可视化。因此,它适用于铁杆程序员。但是,它在我们这些老人中很受尊重。
人们http://www.ode.org/ 使用 OpenDynamics 引擎进行“更轻松”的模拟。它带有一个积分器和一个原始的可视化包。还有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) 如果它是可视化的,你能做一些事情,比如在物体移动时自动跟随它,还是你必须四处追赶?
希望有帮助!