您所在的位置:首页 >> 技术天地 >>正文
分享34K

ROS 和Web 带来更智能的机器人

发布时间: 2018-11-01 05:11:09 来源:新战略机器人网

核心提示: ROS目前已经建立了庞大的生态系统,其参与者包括来自全球机器人行业的众多开发者,而英特尔开源技术中心(OTC)的Web团队也是其中重要一员。他们在客户端、 edge、云、IoT、W3C标准、机器人技术等领域开发及应用web技术,致力于保持web开放、安全、特性丰富且性能强大。

随着AI的发展,机器人必然变得越来越智能。然而要实现智能化,除了需要丰富的AI算法外,还需要强大的操作系统支持——ROS就是这样一款非常受欢迎的机器人系统。ROS目前已经建立了庞大的生态系统,其参与者包括来自全球机器人行业的众多开发者,而英特尔开源技术中心(OTC)的Web团队也是其中重要一员。他们在客户端、 edge、云、IoT、W3C标准、机器人技术等领域开发及应用web技术,致力于保持web开放、安全、特性丰富且性能强大。

 对于机器人设计厂商来讲,他们在极力寻求更好的软硬件解决方案,所以有人自然想到将ROS和Web相结合从而得到更好的机器人解决方案。或许有人会问:为什么要在机器人技术中使用Node.js 和Web?它们各自有什么特点?先看Node.js,其具有高性能(JIT)特性,性能高于Python语言,从而使系统在同一机器人硬件平台上可实现更多功能;另外,Node.js拥有强大的生态系统和社区支持,是Github*上最流行的语言,而且拥有世界上最大的包分发系统——npm。Node.js设计时易于部署和调试,适合应用于web 界面。再看Web技术,它是远程控制和仪表板的最佳选择,可以进行状态检查、运动控制、姿势可视化、视频流等工作,而且可以在任何浏览器里运行,易于嵌入,拥有海量资源。


 基于两者各自的优势,工程师要考虑的是如何将web引入到ROS中?首先,RWT* 已经将ROS 1.0 APIs 在web中暴露,但在2017年年中之前还没有针对ROS 2.0的解决方案,因此OTC的Web团队开发了一套新模块应用于ROS 2.0。当然我们还需要考虑这是不是在web中暴露ROS API 的最佳方式呢? 比如:服务;另一种做法是Node.js web 服务器,就是在务器中暴露ROS API,这种方式灵活而有效,web页面中只保留业务逻辑(RaaS)。其实工程师也不必害怕,因为web服务器在 Node.js中只不过需要几行代码,并且前端和后端具有同样的技术栈,因此更易于调试。

 

ROS2.0路线图

 

我们目前取得的两个成果是GitHub RWT 的两个软件包,其中一个是rclnodejs(github repo),它是一个ROS 2.0的Node.js 客户端,它可以提供快速、便捷而强大的ROS 2.0的JavaScript接口;另一个是ros2-web-bridge(github repo),能够实现在web页面中调用ROS 2.0 API ,且与 roslibjs*兼容。下面我们来看看这两个模块各自的工作原理。

如上图所示,其展示了rclnodejs软件架构设计,其原则是对rcl层薄封装,从而快速而轻松地适应变化。软件接口采用事件驱动和非阻塞(Promise/Event)模式 ,使得程序可以拥有高并发特性;另外包本身无需重新编译即可使用新的ROS消息,一切都在运行过程中处理。如此一来,用户就能够轻松、有效地编写ROS 应用。

如上图所示,展示ros2-web-bridge 是如何将ROS 2.0引入到浏览器中。其与ROS 1.0 bridge (rosbridge_suite)现有的JSON消息协议兼容,从而现有的 Web Tools 可以直接使用,例如:2D/3D 可视化。保持开发的快速简单,用户友好的调试。如此一来,RWT ROS1.0组件便可与 ROS 2.0透明兼容。

除了Node.js,C++ 和 Python也是ROS开发中常用的两种语言,我们不妨将三者进行性能对比:发布一条ROS消息,测量所用的时间和内存。当运行次数增加时,趋势趋于稳定,其它类型的测试中也能观察到同样的趋势,两种趋势都与语言常识相符。可以看出,Node.js 的速度2倍于Python,但是在运行时会消耗更多内存。

 在Turtlebot* 3 + ROS 2.0应用案例中,采用了Intel® RealSense™ 相机和Intel Atom®的Up Board* ,用一个web应用作为远程控制,可以看出roslibjs +ros2-web-bridge易于创建强大的UI,可运行于任何浏览器中,其源代码在github上,ROS 2.0 的消息类型是geometry_msgs/msg/Twist。


在Turtlebot* 3 +ROS 2.0应用案例中,采用了Intel® RealSense™ 相机和Intel Atom®的Up Board* ,用一个web应用作为远程控制,可以看出roslibjs +ros2-web-bridge易于创建强大的UI,可运行于任何浏览器中,其源代码在github上,ROS 2.0 的消息类型是geometry_msgs/msg/Twist。


 在机器人领域,英特尔还做出了很多其它贡献,包括推出面向ROS 2.0的AI/ML/CV软件;通过Movidius NCS提供专用 AI 硬件;用RealSense深度相机,以3D的方式感知世界;采用改进的ROS MoveIt*实现更佳的操纵;以及对ROS 2.0 导航的重新设计。我们相信随着硬件和软件的不断发展,机器人会变得越来越智能。


【免责声明】所刊原创内容之本文仅代表作者本人观点,与新战略机器人网无关。新战略机器人网站对文中陈述、观点判断保持中立。本网转载自其它媒体的信息,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

【版权声明】凡本网注明“来源:xzl机器人”的所有作品,著作权属于新战略机器人网站所有,未经本站之同意或授权,任何人不得以任何形式重制、转载、散布、引用、变更、播送或出版该内容之全部或局部,亦不得有其他任何违反本站著作权之行为。违反上述声明者,本网将追究其相关法律责任。转载、散布、引用须注明原文来源。

分享到:
关闭对联广告
顶部微信二维码微博二维码
底部
扫描微信二维码关注我为好友
扫描微博二维码关注我为好友