您已经创建了一个机器人模拟。你已经添加了你认为你需要的一切——机器人模型、传感器、末端执行器、物体……
模拟开始变得相当复杂。
它应该有多复杂?
你需要添加设置的每一个细节吗?
你的模拟变得过于复杂的迹象是什么?
模拟是在实际操作机器人之前测试机器人应用程序的好方法。它们允许您以一种安全的方式快速尝试新想法、策略和硬件项目窃取宝贵的生产时间从物理机器人。
但是,模拟也可能是一个黑洞。
我的意思是,如果你不小心的话,它会从你的工作中抽走宝贵的时间。
这种情况经常发生的一种情况是,当你给模拟本身添加太多复杂性时。
为什么机器人模拟不需要墙纸
在我们的生活中,我们总是会遇到3D模拟和动画。电影中充斥着越来越逼真的CGI,电视广告越来越多地使用动画而不是真实镜头工程产品的视频中往往有令人印象深刻的产品和机器动画。卡塔尔世界杯比分
自然,我们喜欢那些看起来更真实的模拟。
但是,这种对计算机生成现实主义的热爱可能会导致我们在创建机器人应用程序模拟时犯代价高昂的错误……
我们优先考虑模拟的美学而不是功能。
整个工厂完全复制的机器人模拟并不少见。人们将地板、墙壁和所有其他机器添加到他们的模拟中。他们甚至在模拟中添加了工人的模型,浪费了宝贵的时间让这些模型四处移动。
这相当于在你的CNC机器上粘贴漂亮的墙纸,“让它看起来更好。”它不会对机器的功能产生任何影响,甚至可能损害机器的性能。
模拟中唯一真正重要的复杂性
机器人模拟应该复杂的唯一原因是,这种复杂性是否增加了机器人应用程序的功能。
例如,假设您正在创建一个模拟来开发您的“选择和放置”应用程序的脱机程序。您应该向模拟中添加的惟一东西是有助于该应用程序成功的方面。
其他的一切都只是“墙纸”,可能是不必要的。
一方面,如果您希望能够自动编程机器人的路线——避免与工作空间中的对象发生碰撞——这将增加复杂性,因为在模拟和仿真中需要更多的对象运动计划的使用.然而,它是实现所需功能的必要复杂性级别。
另一方面,如果您想将机器人周围的所有其他机器添加到您的模拟中,即使机器人从不与这些机器交互,这也是不必要的复杂性,应该避免。
在RoboDK最近的一次更新中,我们增加了对更大、更复杂的项目文件的支持。
但是,仅仅因为你现在有这个额外的能力并不意味着你应该总是使用它。
模拟游戏可能需要的7个复杂性
下面是可以增加复杂性的机器人模拟的7个方面。也许你的模拟游戏需要它们,也许不需要。只有你能决定。
1.由机器人处理的物体
在模拟中只包含机器人将处理的对象,否则将影响机器人的任务。此外,除非有必要,否则您不需要包括那些对象的高度详细的模型。例如,如果机器人只抓取一个物体,你可以简化物体的形状,只包含合适的抓取点。
2.家具和其他环境物品
我们经常在机器人模拟中包含一个表。这在技术上并不总是必要的,但它确实帮助程序员可视化机器人将放置物体的表面。但是,要实现这一点,通常只需要一个表——不需要为特定的工作台创建高度精确的模型。
3.传感器
在模拟中包含传感器的主要目的是为了它们的功能。通常不需要传感器本身的精确模型。例如,如果你使用的是机器人视觉,那么包含一个简单的相机对象可能是可以接受的。你可能不需要一个完全工作的、详细的特定相机模型。
4.装饰
如果你愿意,你可以花几个小时为模拟中的所有模型开发纹理。你甚至可以在你的工作空间里给真实的物品拍照,然后费力地将这些照片映射到工作空间的定制3D模型上。如果你正在制作3D电影,这可能是必要的,但在机器人模拟中这是浪费时间。
5.编程的复杂性
程序越复杂,编写、调试和部署机器人所需的时间和精力就越多。这种复杂性可以通过多种方式表现出来,包括使用额外的库、添加许多子例程和使用更高级的特性。与其他所有事情一样,只使用对正确完成工作绝对必要的功能。
6.多个机器人
如果您在工作空间中使用多个机器人,可能有必要将它们都包含在同一个模拟中,但也可能没有。如果机器人将相互作用,那么是的,在相同的模拟中编程它们是有意义的。但是,如果它们永远不会相互交互,它们的工作空间也不交互,那么单独模拟它们可能会更简单。
7.其他机器
同样,只有模拟那些机器人将与之交互的机器才有意义。如果您正在使用机器人来管理一台数控机床,那么您可能想要模拟这台数控机床——或者根据您对机器人的编程需要来近似它——但您不需要模拟车间中的每一台机器。
避免模拟过于复杂的一个快速提示
创造一款不过于复杂的模拟游戏的关键在于始终思考实现任务的真正必要条件是什么。
每次你在你的机器人项目中添加一些东西时,快速问自己:
这真的需要在这里实现我需要的功能吗?
如果不是,那么在模拟中可能就不需要它了。
在你的上一个机器人模拟中,哪些道具可能是不需要的?请在下面的评论中告诉我们,或者加入我们的讨论LinkedIn,推特,Facebook,Instagram,或在RoboDK论坛.




