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