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