随着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 ROS 1.0组件便可与 ROS 2.0透明兼容。
相关文章:
- 淮安成功举办第四届淮河华商大会211个签约项2024-10-14
- 共探全球电网储能机遇!阿诗特与瓦锡兰达成2024-10-11
- 【展讯】“革故鼎新”59th届新加坡国庆美展202024-08-31
- 有梦当燃!“中国体育彩票杯”2024年海南省自2024-08-28
- 全球数字贸易亚洲行-银川高峰论坛暨数贸兴农2024-08-27
关键词:
责任编辑:[db:作者]
今日视点
淮安成功举办第四届淮河华商
5月22日,第四届淮河华商大会正式开幕,近200位知名侨...[详细]




