ROS Development Studio创建加强学习ROS程序进行获取。来源:构造
现在已经是2019年了,我们仍然没有想象中的机器人来帮助我们完成所有单调和危险的任务。自早期的机器人技术以来,已经有了很大的进步,但自主智能机器人还没有出现。看起来机器人的发展还有很长的路要走。
延迟智能机器人到达的第一个问题之一是在软件和硬件方面缺乏标准。
大约15年前,当我开始接触机器人世界时,大多数零件都是定制的。每个机器人专家都必须从零开始创建自己的程序来访问机器人的设备。每个人都在创建不同的本地化和绘图软件。每个人都在创造自己的物体识别系统。每个人都在创造一种抓握的习惯。
正如您所看到的,建立一个单一的系统本身就可以是一个巨大的任务。因此,致力于构建完整的机器人系统,可以导航,识别对象,并掌握它们的所有部分都是重载的。
提供机器人标准
全球机器人标准缺乏硬件和软件,缺乏人工智能或机器学习。
从历史上看,我们没有明确定义的接口,将组件从不同制造商连接到单个机器人中。
通过遵循软件标准的模型,可以克服该机器人的发展问题。以同样的方式,不同的打印机可以使用Windows系统 - 因为操作系统本身注意引入一个兼容层——不同的机器人部件应该在同一个系统下工作。这种软件已经存在,是过去10年为大众开发机器人的最大进步之一。我说的是机器人操作系统(ROS)。
ROS允许来自世界各地的人分享代码防止所有实验室在21世纪初都遭受过的重新发明轮子的痛苦。通过声明一个用于访问硬件的公共接口,ROS允许相同的程序在不同的机器人实现中工作。
仍然不够快
即使你创建了基于ROSified的程序,也并不意味着它们可以在任何ROSified机器人中工作。在许多情况下,下载一些基于ros的代码只是您需要采取的一系列步骤中的第一步,以便使这些代码适合您的特定机器。
是的,使用其他人制作的ROS代码比从头开始的速度更快,但对于快速机器人的发展仍然是不够的。
尝试复制从Repo下载的ROS代码结果时发现的典型问题包括以下内容:
- 不同版本的第三方图书馆ROS程序要求(并且您无法更改,或者整个系统无法正常工作)。
- 代码为不同版本的ROS.这可能意味着您正在尝试访问当前安装的ROS版本中不可用的一些功能。解决方案是更改为最新版本,这可能是不可能的,因为其他系统依赖于当前版本。或者,更改代码以适用于您所拥有的任何ROS版本可能需要大量工作。
- 代码为不同版本的Linux.请记住,ROS仅在非常具体版本的Linux下工作。您可以在不同的Linux版本上运行ROS代码,但只有额外的适应工作。如果要运行不同版本的ROS代码,则会发生同样的情况。
- “它适用于我的电脑”(IWOC)效果.这是指机器的某些特定配置使程序工作,但其他人不能复制它,即使复制到计算机的最后一个螺丝。这是在科学论文中出现的一个典型情况,没有人可以复制,即使是下一个要继续这项工作的研究人员,所以他或她必须从头开始。
因此,由于您必须获取ROS代码并在机器人上运行,共享ROS代码可能需要花费大量的时间和精力。
幽默看起来再现机器人的当前状态。结果。(来源:博士漫画)
机器人结果的再现性
我的建议是创建一个统一的机器人开发系统,允许创建、测试和共享机器人软件。通过允许只需要点击一下就可以复制机器人的结果,我们可以期待人们更快地验证其他开发人员的结果,并在已有的工作基础上进行构建。
此系统将允许开发人员共享已使用简单程序与其他人一起运行的代码。然后,收件人可以立即重现完全相同的结果 - 无论它们是否在Linux,Windows或Mac OS上运行。
通过这种解决方案,没有人将不得不浪费时间使代码工作,因为它会在货架上工作。相反,机器人开发人员可以从目前的结果继续并发货,零运动。为此,我们必须转移到云机器人。
云机器人开发平台
云机器人开发平台需要满足以下条件:
- 它必须基于云.此要求是强制性的,因为只有这样,我们可以保证所有情况的执行条件都是相同的。执行代码的条件将是云计算机中的条件,而不是本地计算机。云计算机的提供程序是确保软件所有实例的相同条件的提供者。
- 概念验证必须在机器人模拟中进行.这个需求允许在模拟中看到所建议的解决方案是如何实际工作的。即使模拟与真实的机器人不一样,它们也提供了一个很好的功能概述。此外,模拟提供了一种比较结果的好方法,这将允许我们对解决方案进行基准测试(这是另一篇文章的主题)。
- 它必须允许通过标准程序转移到真正的机器人上.最后,程序必须能够在真正的机器人上工作。在将控制器发送到机器人的过程中,可以发生更改代码执行条件的许多步骤。为了确保任何开发人员的真实机器人相同的结果,必须标准化转移程序。
ROS开发工作室
在构造,我们自2015年以来相信这种方法,并开发了一个集成所有这些工具的平台。这ROS开发工作室(ROSDS):
- 在云上运行
- 提供了一个具有仿真的机器人开发环境
- 允许以标准化程序转移到真实机器人
- 当然,它是基于ROS!
在ROSDS中创建ROS程序时,可以使用任何已经提供的模拟,也可以创建自己的模拟。有趣的是,当您使您的代码与选定的模拟工作时,该工作可以在相同的条件下被任何人共享和复制。如果它对您有效,那么它对获得您的ROSDS项目的任何人都有效。
ROS11:ROS项目
一种rosject.包含重现结果所需的所有代码和数据。它包含您开发的ROS包,您创建的数据集,仿真和笔记本形式的说明。
一个ROSject可以与一个Web链接共享。收到链接的人将获得一份完整的ROSject副本,包括代码、模拟、数据集和笔记本。例如:
- 在这里,我们有一个rosplect火车杆杆平衡杆,使用加强学习。如果单击链接,您将获得它的副本,并且可以在一分钟内运行它。
- 在这里,我们提供了一个提供的rosplect仿真产业环境,所有的控制器和系统都正常工作
- 这里有一个提供仿真机器人水车.
当您通过链接共享ROS11时,打开ROSJECT的人将能够查看您的代码和指令并重现您的结果。由于执行代码的执行机器人云,存在用户计算机上的依赖关系。
应用程序
我们已成功使用此链接共享功能进行许多不同的目的。有关机器人的开发例子,请参阅下面。
用ROS机器人教学域随机化强化学习。来源:构造
- 重现机器人论文的科学结果并允许人们获得代码。在这个ROS11,我们复制了一篇着名的纸张的结果,将深度神经网络从模拟转移到现实世界的域随机化.如果单击该链接,您将获得具有模拟的完整代码,用于生成数据集,并使用数据集与Keras + Tensorflow一起培训神经网络。您还可以使用训练有素的模型来使获取机器人区分垃圾邮件对象在许多干扰者之间,掌握它,并将其扔到垃圾桶里。一切都在工作,提供的完整代码。您只需遵循包含笔记本的说明。获得ROS11的人将能够从该点改善域随机化。
- 与学生分享机器人课程课程或者发送他们的考试。作为教师,您可以创建一个包含学生必须完成的课程,模拟和一些模板代码的ROS11。准备rosplect时,您知道它将适用于所有学生,独立于计算机。在这里,我为Lasalle大学的学生准备了一段课程的一个例子死亡的阻碍导航.
- 比较同一机器人问题的结果.由于用于测试的仿真环境始终相同,无论用户计算机和位置如何,您都可以使用此功能将不同的解决方案与给定的机器人问题进行比较,并识别产生最佳结果的解决方案。
- 通过youtube教实阶的课程并与与会者分享所有代码,注释和模拟。每个星期二在18:00 CET中,我们提供免费的ROS Live Class,在那里我们教导了一个关于使用ROS编程机器人的主题。
结论
云技术的发展是加快机器人技术发展的必由之路。
即使许多玩家想要进入该领域,目前唯一可用的解决方案是ROS开发工作室。尝试自由层,看看它是否可以简化您的ROS开发。
![]()
关于作者:
Ricardo Tellez是联合创始人兼首席执行官构造.在此职位之前,他是西班牙研究委员会机器人学院的博士后研究员。Tellez在PAL机器人开发人形机器人的七年以上,包括他们的导航系统和推理引擎。他掌握了一个博士学位。在人工智能中,旨在创造真正了解他们在做什么的机器人。
提交:AI•机器学习那机器人的报告那机器人•机器人夹具•终点效果





告诉我们你的想法!