机器人学习新突破:华为诺亚实验室推出Python编程框架Ark
这项研究是由华为诺亚实验室里的研究人员, 还有Bou-Ammar团队的人员, 联手达姆施塔特工业大学的人, 加上伦敦大学学院的人, 再加上牛津大学的人, 又联合帝国理工学院等多家人家顶尖机构的科研人员共同完成的。
它是在2025年6月24日发表出来的。发表的论文标题叫做"Ark: An Open- -based for Robot"。那些有兴趣、想要深入了解的读者, 可以通过arXiv:2506.这个途径, 去把完整的论文找来阅读。
说到机器人编程这块儿, 许多人在心里头会认定这是一个难度极高的专业领域, 非得花大力气去记一大堆专业知识才行, 还得会写那些绕来绕去的计算机语言不可。不过呢, 华为诺亚实验室那帮搞研究的团队成员, 他们压根就不想让大家还抱着这种看法, 而是铁了心想要把这种现象给改掉。
所以他们动手开发出一个叫做Ark的东西, 而且这个东西还是开源框架类型的。他们的目的, 是要让普通人去给机器人写程序这件事, 变得跟小孩玩那种一块块拼起来的塑料积木游戏一样容易, 看起来也清清楚楚的。
想要理解这项研究的重要程度, 我们首先需要去看看眼下机器人编程领域所面对的困境状况。传统意义上的机器人软件开发工作, 其过程和状态, 非常类似于在没有使用说明文档的情形之下, 去组装一台具备多个复杂结构的机械装置。
在这种情况之下, 相关人员必须要去掌握多种不同种类的编程语言, 尤其是C语言以及C++语言, 这些语言对于普通大众的人群来说, 是具有相当高难度的晦涩难懂的特点的。
另外一点值得注意的是, 相关人员还需要去面对并且处理各种各样的硬件驱动程序问题、通信协议相关问题, 以及系统集成这一方面所存在的较为复杂的各种技术问题。
这就跟你想弄一道挺简单的菜一样, 你得先弄清楚怎么才行吧, 比如说你得先去学会那个冶金术, 这样才能做出锅具来用, 你还得再去学会怎么种地啊农业这一套东西, 这样才能把食材也给种出来了, 另外还得去把那化学知识给掌握了, 这样才有可能去调配那个调料什么的。
相比之下, 人工智能领域的进步, 还有机器学习这块儿的发展, 情况就好像是已经备齐了一套厨房里面用的家伙什儿, 甚至连现成的食材都给你准备好了。
因为语言这个东西变得越来越普及了嘛, 再加上那些强大的好用的工具也随之而来, 这就让进行研究工作的人能够把所有的心思都花在算法本身上面, 不用再为底层的那些技术细节去费心操劳了。
一个新手可以在几小时之内训练出自己的第一个神经网络, 并且同样的人如果要让机器人完成一个抓取动作的话, 那么这个动作可能只是一个简单的动作, 但是却需要这个人花费数周或者数月的时间。
Ark框架的设计哲学, 是要去消除这种存在的鸿沟, 研究团队采取了三个核心设计原则作为应对方式。第一个原则, 是让机器人的编程接口和机器学习工具保持完全一致。
他们从Gym这个非常受到欢迎的机器学习环境接口处借鉴了经验, 使得那些已经熟悉机器学习领域的人群可以不用过渡期就转向机器人领域开展相关工作。这一做法就像是给那些在烹饪方面已经有经验的厨师提供了一套标准化分布的厨房布局一样, 因为这种标准化的存在所以无论走到哪个地方都能够快速地上手开始工作。
第二个核心原则的实现, 在于去达成仿真环境和现实生活之间的那种毫无缝隙的切换状态。在机器人领域进行的研究活动里, 仿真的那个环境还有真实的机器人设备, 这两者往往是使用完全不一样的代码架构体系的。
这种情况给人的感觉就像是, 在一台电脑里的游戏当中去练习驾驶汽车的操作方法, 和实际上在现实生活中去打方向盘开车这两件事儿, 完全是属于两码事情。
研究人员因此需要消耗大量的时间去重写代码文件, 只有这样子才能把那些已经在仿真平台上面验证通过了的算法, 成功地部署到真实的机器人身上去运行。研究人员只要去修改某个配置参数, 这样, 就能够让同样的代码在仿真环境和真实机器人之间进行切换, 而这个问题,是通过统一的配置文件系统来解决的。
第三个原则是采用一种所谓的优先开发策略。这个策略所依托的技术, 现在都已经成为人工智能领域里的通用语言了, 它有着特别丰富的生态系统, 还有特别庞大的开发者社区撑腰。不过在机器人这一个具体领域里面, 大多数人往往觉得它有点太慢了, 根本没办法很好地满足那种要求实时进行的控制方面的需求。
Ark这里面就巧妙地把这个问题给解决掉了, 具体是怎么做的? 就是对于大多数的一般性任务来说, 它会提供简洁又方便的接口给大家用, 而如果遇到那些确实需要高性能支持的情况, 它还提供了一个C++绑定工具, 这样一来就允许开发者们根据自己的实际需要去做相应的选择了。
Ark的技术架构是精心设计出来的, 它跟一个乐高系统很相似。整个框架用的是分布式的节点网络结构, 每一个功能组件都是一个独立的积木块, 这些积木块能够自由地进行组合和替换, 它们之间是通过轻量级消息传递系统进行通信的, 这就像是乐高积木通过标准化的接口相互连接在一起那样。
具体来说, Ark网络里的每个节点都是一个独立运行的程序, 它负责诸如传感器数据采集、运动控制以及图像处理之类的特定功能, 这些节点借助于发布-订阅模式来进行通信操作, 发送方将数据发布到指定的频道上面去, 而接收方则通过订阅相应的通道来获取数据信息, 之所以采用这样的设计方式, 主要原因在于它具备高度的模块化特点以及很强的可扩展性优势。
如果你是想换一个摄像头的话, 那么只需要替换对应的传感器节点就好了, 其他部分的代码则不需要任何修改。
为了实现这种模块化的设计目标, Ark选择了LCM作为底层的通信库。LCM就像积木块之间的那种标准接口一样。它能确保不同的组件可以可靠地交换信息。与此同时,LCM也支持许多不同的编程语言。这就意味着, 如果有部分硬件只提供了C++的接口, 那么开发者也能很容易地把它们集成进Ark系统去。
在观察和动作空间的设计上, Ark借鉴了强化学习里的经典概念。所谓观察空间, 其实就是定义了机器人能感知到的信息是哪些, 这些信息包括关节位置, 还有摄像头拍出来的图像等。
而所谓的动作空间, 则是定义了机器人能够去执行的动作是哪些, 这些动作比如关节速度控制, 或者末端执行器位置的调节等, 都算在内。这两个空间都是通过配置文件来定义的, 研究人员完全可以依照具体任务的需求, 对它们进行灵活调整。
这就像是针对各个不一样的烹饪工作, 去专门准备相应的食材清单以及工具清单, 可是所运用的却是同一套已经定好的规范化操作流程。
Ark这一系统里面, 有一个特点, 这个特点让大家印象很深, 那就是它能在仿真环境和现实环境之间切换, 而且这种切换是很流畅的, 没有缝隙。在以往的情况里, 研究人员通常是在仿真的环境下面去开发算法, 还有测试算法。
等到最后的时候, 他们就需要进行大量的代码修改工作, 这样才能够把这些算法部署到真实的机器人上面去。这一整个过程呢, 不仅非常地耗费时间, 而且很容易出现错误的情况。为了解决这一问题, Ark采用了统一的配置系统来处理。
整个系统配置信息包括机器人型号、传感器类型以及环境参数都被存储在YAML格式文件里面。研究人员如果想从仿真环境过渡到真实世界, 那就只用修改配置文件里头的一个标记位。这个动作就是把sim这个字段改成True或者False。Ark系统看到变化就会自动加载驱动程序和对应接口。
现在的人看着这个设计, 会觉得它挺妙的, 因为这个设计把那个叫做硬件抽象的东西和那个叫做算法逻辑的东西, 完全给它分开了。你写的代码里的那些算法, 只管着怎么去观察数据还有生出动作指令。
它压根不用去管这些数据是从哪个仿真器来的还是什么真实传感器传过来的。这就好比为一个人当司机一样, 不管他开的这辆交通工具呢是手动挡的或者是自动挡的, 他那份开车的基本本事都是一样的。唯一有点不一样的地方, 就是那种操作起来的界面稍微有点不同而已了。
在仿真器支持这方面, Ark选择了使用可插拔的后端设计这个方案。当前版本里面已经支持和这两个非常流行的物理仿真器了。在未来的计划之中, 还打算去支持更多的不同的仿真平台。每一个不一样的仿真器都有自己的特别之处。
有一些适合用来进行快速的原型开发, 而另一些则在精准度和运行性能方面表现得更加有优势。通过修改配置文件, 研究人员可以非常轻松地实现在不同仿真器之间的切换。这样做的最终目的是让研究人员能够找到最符合自己研究需求的工具。
为了实现对各种各样的硬件平台的支持, Ark提供了种类多的多种驱动接口, 针对可以直接访问其内部的硬件情况, Ark提供标准化的基类, 开发者只需要去继承这个已有的类, 并且要实现几个简单的简单方法, 这样就能集成新的硬件设备, 至于那些只能够提供C++接口的硬件环境而言, Ark提供了基于绑定的工具软件这一类的东西, 这种工具能够使得开发者把现有的C++代码与当前的运行环境之间进行毫无缝隙的整合处理。
特别需要拿出来说一说的事情, 就是关于 Ark 这个平台的 ROS 兼容性方面的设计内容。ROS 目前是大家在机器人领域里面使用得最为广泛的一个中间件平台名字, 像非常多的机器人设备和传感器产品, 都在它们的设计里提供了所谓的 ROS 接口功能。
然后呢, Ark 这边是通过了那个叫做 ROS-Ark 桥接器的工具或者是软件模块, 去实现了它自己和 ROS 这个平台之间进行双向数据通信交流的技术能力, 这个技术特点带来的实际结果是, 也就是指代这样一个含义, 让相关的研究人员群体在开展工作的时候, 完全可以做到不必去放弃他们手头已经存在的所有基于 ROS 编写的代码文件, 并且能够以比较平缓的方式、逐步地完成整个项目或者系统向 Ark 这个新平台的迁移工作过程。
这种设计, 就好比是说给不同牌子出来的那些家用电器搞出一个通用的电源适配器来用, 它们就可以处在同一个电力系统里面一起去配合着干活了。
在涉及用于调试和用于诊断的各种工具的时候, Ark提供了一个非常完整的、可以被人类直接进行视觉感知的工具组合。
关于名为Ark Graph的那个工具, 它能够对包括系统中每一个节点在内的全部状态情况以及与周围环境的连接关系, 在当前的时间点上进行实时的显示操作, 其呈现出来的直观程度类似于人们日常所看到的网络拓扑结构示意图。
另外一种是名为Ark Plot的工具, 它的作用是能够在时间轴上实时地绘制出包含数值类型的数据所发生变化的曲线轨迹, 这种方式主要是为了帮助那些从事相关研究的工作人员去对系统所表现出的性能状况进行持续性的监控和分析。
至于被专门提及的Ark部分, 它的任务领域是专注于对图像数据内容进行显示, 而这种设计方向特别适合被用在需要调整和维护与视觉功能有关的那些工作环节里。由于这些工具是存在的, 所以系统调试的难度在很大程度上下调了, 这让研究人员可以快速地找到问题所在并且解决掉这些问题。
为了验证 Ark这个框架的实用性, 研究团队一共做了好几个比较有代表性的实验。其中第一个实验主要展示了一种能力, 这种能力就是可以很顺利地在仿真环境和现实环境之间进行切换。
在这个实验里, 他们用了一个有 300s字样的机械臂, 来完成一个抓取东西和放置东西的任务。整个实验里的各种具体情况, 都是通过一个叫 YAML的配置文件来定义的。
比如物体的初始位置在哪里, 摄像头的状态是怎么样的, 机器人的姿态是怎样的, 还有重力这种物理参数, 都是通过这个文件来确定的。用户可以通过更改配置文件里面那个叫做sim的标志位, 来实现同样的代码在仿真环境和真实机器人两者之间切换的操作, 这一点是完全不需要进行任何代码修改的。
在数据收集这个方面, Ark它是展现出了它那种强大的灵活性。研究团队他们演示了好多种数据收集的方法, 这些方法里面包括手把手示教这种方式、还包括虚拟现实这种遥控方式、甚至游戏手柄遥控这种方式也算在内。
在手把手示教这种情况底下, 研究人员他们是直接操控那个机械臂去把任务给完成掉的, 系统通过LCM的日志功能是把整个过程中的数据都记录下来了。这些数据它们是可以直接被用来训练那些模仿学习算法的, 另一方面也可以通过lcm-工具来进行重放, 这样做的目的是为了可以用于验证和调试工作方面的事情。
虚拟现实遥控这件事情, 它就展示了Ark这一个品牌对于现代交互技术所给予的支持这一事实。研究人员他们是戴着VR头盔并且拿着控制器在远程控制这个标号-A1的人形机器人, 这样做的目的是为了让六自由度的姿态信息能够被实时地传输过去。
系统它依靠逆运动学控制器来工作, 把这些姿态信号转换成关节速度命令, 这就实现了那种非常直观的感受的远程操控过程。这种操作手段它是尤其适合用来收集那些复杂操作中关于任务的示教数据的, 因为在进行对比的时候可以发现, 使用VR界面的话会比使用传统遥控方法看起来更加自然一些也显得更加直观。
在模仿学习算法那个部署的方面, Ark展示出了与最新的AI技术无缝集成那样的情况。研究团队实现了扩散策略以及基于的动作分块也就是ACT这两种先进的模仿学习算法。
扩散策略是近年来在机器人学习领域备受关注的那么一种新方法, 它将扩散模型的思想应用到动作生成当中了, 它还能够学习那些复杂的多模态的行为策略。
在关于扩散策略的实验活动里, 研究方面的团队使用了机械臂, 还有使用Intel品牌的摄像头, 完成了推动这个动作的任务, 其中观察空间包含了机器人的关节位置情况, 以及连续的RGB图像的流式数据, 而动作空间则是发送出了给到机械臂的关节位置指令这一类的内容, 整个进行数据收集的过程完全是通过Ark节点来实现的, 这其中涵盖了包括PS4手柄输入这种情况、还有环境交互这种操作、以及逆运动学计算这类工作、另外还包括了传感器数据发布这样的环节。
因为系统会对消息的类型进行严格的管控, 并且要把不同的频道分开处理,所以研究人员能够很轻松地去修改系统的节点, 他们可以进行替换工作, 例如把原本使用的摄像头换掉, 或者是采用由脚本驱动的控制器来实现控制, 这个过程并不要求对这些系统内其他的部分进行修改。

ACT算法那边的实验呢,其实是用了那个叫做-A1的人形机器人平台来做的。他们是通过戴VR头盔的方式进行遥控操作的。研究团队这个团体收集了两类任务的数据, 一个是关于布料整理事务的任务, 另一个是关于物体传递事务的任务。
这些任务的存在是为了展示Ark在处理复杂且接触情况丰富的操作任务时究竟具备什么样的能力。训练完毕的策略能够产生非常精确的、也包含很多接触情况的行为表现, 这样一来就使得机器人能够完成诸如整理衬衫以及将香蕉放入碗中等等比较精细的操作动作。
除了那些操作任务之外, Ark这个系统, 还在移动机器人进行导航的时候, 展示出了它的厉害之处。研究团队这一块的人, 开发了一个完整的流水线工具。这个工具是用来做SLAM(同时定位与建图)的, 同时也是用来做路径规划用的。
系统在构建环境地图的时候, 使用了某种算法的变体。而这项算法的特点是什么呢, 是它通过粒子滤波器这种方法。借助于这种粒子滤波器, 系统就能一边估计机器人的位置在哪里。同时还能一边把环境的地图给构建出来。
每个粒子都负责维护着一个位姿估计, 同时还对应着一个局部占用网格, 在这个网格里面, 每一个单独的单元都会被分配上一个概率值, 这个数值的大小是从0到1之间进行确定的, 其中0表示那是空闲的, 而1则表示是被占用的。
在导航系统里, 它的规划部分是用A*搜索算法去做的事情。这个方法是在机器人的路径规划里面用的比较多的一个东西。它的好处是什么, 它是完备的, 这就说好了, 只要存在一条路可以走到终点, 它就肯定能找到这一条路的。
为了能保证走的路是安全的, 系统会先拿一个预定义好的阈值去对那个概率占用地图做离散化处理, 这个阈值通常都是0.5, 通过这个操作就能把空闲的地方和被占用的地方区分开来了。接着, 就去做那个距离变换这一类的事情, 目的就是在每一个单独的单元里头, 把离它最近的那个障碍物给找出来算个距离。
为什么这么做? 因为这会儿算出来的这个具体数值, 它是要拿来当标准的。用这个标准去卡一下, 保证后面规划出来的那条路, 在哪个地方都得留着足够的空档。这个空档不能太小得, 非得是机器人的宽度的一半再额外加上用户自己说好的那些多余的距离才行, 少一分都不行。
在具体的导航实验中, 研究团队的测试是在厨房环境下进行的, 他们使用了配备LiDAR传感器的Husky机器人。
机器人首先要通过遥操作的方法来构建环境地图, 在这个阶段, LiDAR数据和控制信号都会同时流向SLAM节点, 而SLAM节点负责融合这些输入数据, 进而估计机器人的位姿以及构建出环境的地图, 当地图构建完成之后, 系统接着才能够进行运动规划的操作。
一旦给定了目标位置, 规划子系统就会被触发, 并且会去计算从当前的位置到达这个目标的距离最近而且能够走通的一条路径是什么样的。
Ark框架的一个突出特点是, 它对现代人工智能技术提供了原生支持。这里特别包括了大语言模型的集成工作。研究团队展示了具体做法。他们让类似于-R1这样的先进语言模型, 成功整合进了机器人控制系统内部。在进行这个实验的过程中, 团队实现了一套智能体系统。
这套系统使用机械臂来完成棋类游戏的活动。该系统采用代码即策略这一范式, 把每一个机器人操作技能都实现成了参数化的策略形式, 这里的操作技能, 包括像拾取棋子这种动作, 还有放置到位置这样的动作, 以及移除物体这类任务, 这些实现好的策略, 到时候是可以当作函数来直接调用使用的。
这些功能是经由策略库对外界开放的, 其目的就是把它们暴露给大语言模型, 然后模型会去根据具体的任务上下文以及它自己所具备的场景理解能力, 从其中挑选出那些合适的策略来使用, 并且Ark网络里面的每一个节点都是被封装成了单独存在的独立组件形态的, 这些组件涵盖了场景感知这一项功能、基于语言的推理这一项功能以及运动执行这一项功能, 而这些节点最终会被集成到某一个特定的Ark节点里面去, 从而对外暴露出对应的服务接口部分, 在这个过程里, 提示词将会被当作是请求所带入的输入参数, 最后模型的输出结果则会作为该服务接口的响应内容予以返回。
在对策略进行决策的每一个步骤里面, 感知节点会把场景观察的数据, 这些场景观察的数据具体包括棋盘的状态、物体的姿态还有红色的绿色蓝色的图像这样的信息, 发送到共享频道上面去。
接着呢, 通过调用Ark服务这样的方式, 把这些输入作为结构化的查询内容传递给相关的节点。
研究团队为了验证语言模型在游戏方面所表现出的能力, 搞了个循环赛这样的测试安排来让R1和别的语言模型进行对比, 具体来说就是拿去跟Qwen 2.5以及Llama 3这两个模型比一比。
从测试结果来看, R1赢的次数最多, 胜率达到了43.3这一点是可以看到的, 而Qwen 25的胜率是26.6百分比, Llama 3的胜率则是30.0百分比。
研究团队, 也是很坦白地把这个事情给说出来了, 他们讲, 那个测试里面的所有的语言模型, 它都还是没有能力去把那个玩家给人类给打败的, 这就说明了什么? 就说明在那个进行复杂推理的时候, 这个能力方面, 它是还有很大的需要去改进的这样的一种空间的。
现在的人直接用普通话书面语来说, 就是Ark这个框架比起现有的那些机器人软件平台, 有着特别明显的优势, 而传统的机器人框架像ROS那样, 虽然功能是非常强大的, 但是学习的门槛是陡峭的, 文档是不够完善的, 并且和机器学习工具进行集成的时候是不够自然的, 至于YARP还有等其他的框架, 虽然在特定的领域里表现出来的水平是很出色的, 但是通常情况下它们只支持C++这一点是会限制它们在机器学习社区内部进行普及的。
从对比的方面来看, 例如和这些相对更新的一些框架的情况是这样子的, 它们尽管使用了并且在某种方式上集成了机器学习的工具, 但通常情况下只是支持特定的机器人平台这一种情况, 这种状况确实限制了在更广泛范围内的通用性这一表现。
Ark有一个特别的地方, 就是它能够成功地在好几个不同的层面上做到平衡, 具体来说, 就是它虽然把重点放在了自身之上但也可以支持C++这一种编程语言, 它的架构是模块化的但同时用起来也很简单, 它具备很强的通用能力而在专业领域的表现也不差, 另外一点是更加重要的, 就是它是原生就支持现代机器学习相关的操作流程的, 这意味着它可以覆盖到从收集数据、对数据进行处理、训练模型以及最后部署模型这样一个完整的工作流程。
这种设计, 对于机器学习研究人员来说是非常有帮助的, 因为这样的安排, 能够让研究人员可以比较快的进入机器人项目的工作当中去, 而并不需要去花费大量的时间, 去进行学习一些传统的机器人软件栈的内容。
在人们实际去使用该东西的时候, Ark这个工具的安装步骤以及配置过程, 是被设计得尽可能简化的那个样子的。它整体的那个框架是可以直接通过pip来进行安装的。同时, 它也是兼容conda环境的。对于那一群已经习惯了使用某种生态系统的研究人员而言, 这确实是非常友好的一个存在。
整个系统的启动操作以及管理操作, 也都是非常直观的一个状态。那些研究人员可以利用YAML格式的配置文件。通过这种方式他们可以定义出整个Ark网络的具体样子。接着他们还只需要借助特定的脚本就可以一次性地把所有需要的进程全都启动起来的。
研究团队还给Ark弄了大量的文档, 还有示例代码, 这些内容把从基础的概念到头等高级的应用都包揽了。这些东西摆在那儿之后, 让新用户去学习的门坎子就直接降下来了, 于是乎就让更多做研究的人可以迅速地把框架的用法给摸熟了。
再一个事儿呢, 因为它属于开源的项目, 所以Ark也在鼓励周围的社区去贡献自己的一份力量, 这种局面对于框架将来能一直不停地发展和变好来说是很有帮助的。
当然, Ark这个框架也存在一些局限的地方, 同时也还有可以继续改进的空间。从目前情况来看, 这个框架主要是把重点放在模仿学习上面, 对于强化学习的支持程度还是相对有限的。尽管这个框架在架构设计层面已经支持了强化学习操作, 但是它并没有和主流的强化学习库实现深度的集成。
研究团队已经在后续的工作计划中明确表示, 他们打算进一步加强这相关方面的支持力度的事情, 具体包括要和RLlib这些非常流行的库进行集成的做法, 以及提供对并行环境执行过程的支持等内容。
在仿真这一块, 虽然Ark它确实支持了一些东西, 不过它还缺少域随机化还有可微物理这么一些高级的功能。要知道, 这些功能对于策略学习以及从仿真到现实的转移过程来说, 是非常的重要。
研究团队打算在未来的版本里面去加强同高性能仿真后端之间的集成程度, 从而为大家提供一个更加准确、更具可扩展性、也更加多功能的一个仿真环境。
从更为宏观的角度去进行观察, 可以看到, ARK这个东西, 代表了在机器人软件工程领域正在出现的一个非常重要的发展趋势, 这个趋势的核心意思是什么呢? 那就是要把机器人的相关技术, 和当下非常流行的现代人工智能技术进行深层次的、紧密的结合。
因为现在大语言模型, 还有多模态模型等等这些类型的人工智能技术, 都在飞速地发展着, 所以说机器人行业正在发生变化, 这种变化表现为: 它们正在逐渐地从那些传统的、主要是依靠事先设定好的规则来运行的系统, 转变为那些具备更强智能性, 以及具有更好自适应能力的系统方式, 而像Ark这样的框架, 正是为了能够支撑起上述这种重要的转变, 所以才被开发出来, 它为这种转变提供了必须具备的基础设施方面的支持条件。
说到最根本的地方, Ark这个框架的真正的价值所在之处, 不仅是它处理好了那些个技术方面的大问题, 更加重要的是说, 它改变了大众在看待机器人编制程序这件事儿的时候所产生的固有印象。
它使得编程序这一行为, 原本属于那种需要耗费极长的岁月来进行专业的学习与训练才能达到一个比较高的起点门槛的一个圈子内的事儿, 如今变成了一个相对比较容易让人去跨入进去进行操作的一个工具类别的事物。
这种改变所蕴含着的意义是极其深远的, 它有可能吸引来更加多的来自于各种不同的学科背景以及职业背景的研究者或者是学者们, 一同加入到机器人的研究和开发领域中来, 这样一来, 便能够推动着整个这个大领域的进步和发展步伐变得更加快速起来。
对于普通的人来讲, 他们也许并不会直接去使用Ark这个工具来进行机器人的编程操作, 不过, 这方面的研究成果所带来的影响, 其实是间接的, 并且也是相当深刻的。
原因在于, 那些更加简易、而且更易于上手的机器人开发辅助工具的出现, 就意味着会有更多的创新机会和更广泛的应用场景被创造出来, 而这些最终是能够转化成为质量更高、体验更好的机器人产品以及相应的服务内容的。
无论是从服务于普通家庭的生活场景, 还是延伸到工厂里面的自动化生产环节, 或者是涉及到医疗领域的康复训练工作, 又或者说关乎到外太空的空间探索活动等等不同的领域里, 像Ark这样一种技术工具的存在与发展, 是有可能会起到推动或者加速作用, 从而使得机器人在各个不同的行业范围内部得到更加快速的普及, 并在实际应用中产生更大的价值。
说到底, Ark 这个框架展示了一个相当要紧的技术发展走向, 那就是什么叫做工具的民主化这件事。
回想过去那个阶段, 搞编程是需要有专门的计算机科学背景知识的人才能干的活儿, 但是到了现在这个时期, 好多个原本不具备这些专业身份的非专业人士也都能够自己开发出应用程序来了, 基于这种现状来看的话, 对机器人进行编程这项工作也变得比以前更容易被大家所掌握, 并且变得更加容易上手了, 在这样的一个大环境里面, Ark 起到了一个非常关键的促进变化的作用, 它不光给人们提供了一些技术方面的解法, 更加核心的一点在于, 它让很多人都改变了之前那种认为开发机器人的过程是非常复杂难懂的固有看法。
如果有兴趣再往里面深入看看这项研究的读者, 不妨去上头的开源代码库逛一逛, 或者是查阅由研究团队本身所发布的那些详细的文档以及相关的教程之类的东西, 那么因为这项研究它是具备着一种完全开源的那种特性, 所以说它也就意味着让世上的任何人都可以直接参与进来共同改进和扩展这个框架的运作机制, 而这些做法恰恰就是推动人类社会科技进步所必不可少的一项非常重要的力量所在之处。
Q&A
Q1问题是问Ark框架是什么, 它主要解决什么问题呢?
回答是, Ark是由华为诺亚实验室开发的开源机器人编程框架, 它主要解决的问题是传统机器人编程很复杂、学习门槛很高, 从而让机器人编程变得像搭积木一样简单这个目标, 框架的最大特色是可以让同一套代码在仿真环境和真实机器人之间实现无缝切换, 这样就大大简化了从实验室到实际应用的整个部署过程。
回答是: Ark并不会让机器人的编程工作变得简单到丧失专业性的程度。Ark这个系统的核心设计理念, 是把入门的门槛给降低下去, 同时绝对不会去降低专业层面的要求。
这个框架采用的是一种分层式设计结构, 初学者群体可以通过使用那些简易的接口来迅速地开始操作, 而专业的开发人员依然能够借助C++这一绑定方式, 去获取高性能的执行效果以及非常精细的控制能力。
我们可以打一个比方,这就相当于一辆具备自动挡功能的汽车, 它确实让驾驶的过程变得更轻松了, 但它并没有因此就降低这辆车本身所包含的技术性能与复杂程度。
第三个回答提到普通人能不能使用Ark。
答案是, 使用者需要拥有一定编程基础, 不过并不需要很深厚的机器人学专业知识, 因为架构设计初衷是让熟悉机器学习相关研究的科学家能够尽快转入到机器人领域当中去, 而且该平台提供很多文档还有示例程序通过pip安装包就可以完成配置过程, 所以对于一个已经在编写代码方面具备相当能力者而言整体难度并不会太高。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)