可集成多模型的机器人开发框架 dora:让机器人编程走向大众

news2025/1/12 23:44:46

作者 | Annie Xu
责编 | 何苗
出品 | GOSIM 开源创新汇

C 和 C++是机器人编程中常用的编程语言,但学起来存在一定难度。那些对机器人感兴趣,但没有精力花费数周时间学习 C 和 C++编程的用户只能望而却步。

为了让机器人技术变得更简单,陶海轩(Xavier Tao)与 Philipp Oppermann 共同主持开发了 dora:允许用户使用 Python 或 Rust 等更易上手的语言进行机器人编程,从而简化了开发过程,降低了学习门槛。

图片

陶海轩在 2024 GOSIM 欧洲站现场

dora 全称 Dataflow Oriented Robotics Architecture,是一个新型开源自动驾驶及机器人中间件框架和数据流计算平台,借用 dora 框架可以使同台主机上的不同应用程序间实现 zero copy 的信息传递。dora 主要面向可以在亚马逊网站或者线下店中买到的机器人硬件的 DIY,而非大型、定制化的机器人。

他们希望机器人技术是人人都可参与的,将 dora 项目的内容全部开源。截至目前,该项目在 GitHub 上获得了 1,400 颗 Star。

dora 被 Hugging Face 的联合创始人 Thomas Wolf 所看好,同时与特斯拉 Optimus 人形机器人团队的 Remi Cadene 展开合作。

陶海轩:Dora-rs:大模型驱动的机器人执行代码变革

本次演讲的亮点内容:

  • 在 Arrow 统一的存储布局下,所有消息可以在零拷贝的情况下传递。通过避免零拷贝,dora 的性能得到显著提升,这也成为 dora 的优势之一。

  • 研究机器人技术的延伸领域机器臂时,在控制和精度方面都取得极大进展。仅用了一周时间,团队即实现了通过语音指令指挥机器臂执行“夹起桌边的一块巧克力”这一动作指令。这背后仅仅由短短 50 行 Rust 代码所控制。

  • 陶海轩认为:机器人技术是人人都能使用的。同时也践行着这个理念,努力将机器人技术从闭源转向开源,公开闭源社区收集到的创意、降低机器人编程的学习门槛。

以下是陶海轩本次演讲的主要内容 :  

图片

Arrow:统一存储布局带来的高效通信

编程机器人程序与编写一般的应用程序不同,两者的关键区别之一前者涉及多个并行运行的循环,且要保证这些循环间的高效通信。例如,网络摄像头处于以一定频率推送新图像循环的同时,AI 模型循环也正进行一些计算。这些循环相互并行,彼此间也需要进行通信。为了通信的高效运行,dora 引入了“节点”和“边”。“节点”是并行运行的独立主循环,节点之间通过发布/订阅模式进行通信。“边”可以看作是定义了名称的主题。

图片

构思这样的图表需用到 YAML 文件,和使用 Docker Compose 和 Kubernetes 的方式相类似,只需声明清楚输入、输出以及源代码,循环能够运行。

为了克服不同编程语言之间的兼容性问题,陶海轩在 dora 中采用了 Arrow。Arrow 不仅在机器人领域被广泛应用,在科学界也得到广泛使用。它定义了统一的存储布局方式,使得从 C 和 C++转换到 Rust 或 Python 时,存储布局不会发生改变。NumPy、Pandas、PyTorch、OpenCV 等许多库都是基于 Arrow 构建的。

在 Arrow 统一的存储布局下,所有消息可以在零拷贝的情况下传递。通过零拷贝,dora 的性能得到显著提升,这也成为 dora 的优势之一。

例如,在使用指针时,零拷贝或序列化避免了使用协议缓冲区或其他通信序列化类型时可能产生的延迟。这大大减少了处理大量数据时的计算开销。在传输庞大的视频流或激光雷达传感器数据时,可能会减少至少 20 毫秒的延迟

图片

图片

集成多款开源大模型:机器人智能 up

基于这些技术,陶海轩进一步展示了如何通过 dora 集成在线模型来丰富机器人的功能,包括使用许多在线模型以及开源深度学习模型的数据集。例如,OpenAI 的 Whisper 可以实现语音转文字,VLM 模型可以根据图片生成文字描述,Hugging Face 的 Parler 模型可以将文字转换为语音。

陶海轩在现场演示了一个连接到 Whisper、VLM 和 Parler 模型的可视化工具 Rerun 的行动过程。通过语音指令,Rerun 实现了描述现场环境并移动功能。

此外,可以将文本映射到相应的功能上。例如,回家后只需挥一挥手,所有灯就能亮起来——这些都是可以实现的。此前的 AI 操作可能还需要某种形式的边界框、固定的结构化数据,而现在,机器人应用可以入非结构化数据

陶海轩表示这只是 dora 众多的功能之一。不过,也要做好心理准备,Rerun 只是依托电脑运行,并没有 GPT-4 视觉、深度学习视觉那么强大,运行过程中出现一些问题也是意料之中。

图片

图片

热重载:实时调试提升开发效率

过去,每当需要修改代码时,都得重新启动应用程序,十分耗时。而如果是机器人编程,还需要经过关闭机器人、重置不同的传感器、再重新启动一系列“耗时”过程。因此,dora 开发了“热重载”功能,其优势包括以下四点:

  • 在运行时更改代码,为开发人员带来绝佳体验;

  • 无需在每个迭代步骤中进行重置;

  • 包含故障安全措施,避免大的未定义行为;

  • 集成大语言模型(LLM)。

陶海轩展示了如何利用 LLM 来实现策略编码,将 Whisper 的视觉文本映射到语音指令,使得 Rerun 可以实时执行命令,如在提到“办公室”时,机器人会自动移动到办公室。Rerun 基本上可以实现你能想象到的任何类型的互动,不过目前这些只针对小型机器人。

图片

图片

机械臂:高效控制与精准操作

机械臂也是机器人技术应用的重要领域。陶海轩团队在成本精度方面都取得了很大进展。他们利用 DRAW 的优势研究机械臂。记录每次的操作过程,随后进行回放,并将其映射给具体的语音命令。

仅用了一周时间,团队即实现了通过语音指令指挥机器臂执行“夹起桌边的一块巧克力”这一动作指令。这背后只是由短短 50 行 Rust 代码所控制。陶海轩认为这实现起来非常容易。

接下来,他们计划构建端到端的 LLM 模型。通过不同的语音指令实现机械臂的多样化操作。目前 dora 机械臂的改进结果如下:

  • 将 SOTA aloha 机械臂的远程操作频率提高了 10 倍(从 50Hz 提高到 500Hz),将两个机械臂之间的通信延迟降低到 2 毫秒。2 毫秒的通信延迟听起来可能没有什么,但实际上非常重要。例如,打乒乓球时,如果手臂速度过慢,就无法接到球;

  • 用于训练的细粒度遥操作数据提供更好的遥操作控制,提升遥操作性能并改善数据集和模型;

  • 只需使用 cargo,无需复杂安装;

  • 支持跨平台使用:Linux、MacOS 和 Windows 上的 Rust,C,C++,Python。

机器人领域有很多定制化的内容,过去编程机器人技术非常困难。不过现在,陶海轩正试图用不同领域更简单的工具来代替原本复杂的内容。

机器人技术没有门槛,人人都能使用的。他们同时也践行着这个理念,努力将机器人技术从闭源转向开源,积极搜集闭源社区的创意想法并公开,努力探索降低机器人编程学习难度的方法。

dora 项目体验https://github.com/dora-rs/dora

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2064612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AWS SAM CLI 备忘单!

安装 AWS SAM CLI brew tap aws/tap brew 安装 aws-sam-cli 验证安装 $ sam --version 升级 SAM $ brew upgrade aws-sam-cli 您需要 AWS 凭证才能在 AWS 上工作。 构建并部署简单应用程序 $ sam init→ 下载示例应用程序 $ sam build→ 构建您的应用程序 $ sam deploy --guid…

机器学习:决策树回归树实现

1、决策树: 是一种树形结构,用于通过一系列的是非问题来预测目标值。在决策树回归中,树的叶子节点代表预测的连续值。 2、数据准备: 收集数据集,并对其进行清洗和预处理。 将数据集分为特征(X)…

git-20240822

目录 初始化仓库 Git init Git init project --bare 查看提交的记录 git log --prettyoneline 查看当前git远程库地址 git remote -v 查看详细提交记录 git log 撤出暂存区的文件 git reset HEAD file(.代表全部文件) 提交数据到远程仓库 git config --global push.…

4.6算法之贪心_702:Crossing River

题目 702:Crossing River 总时间限制: 1000ms 内存限制: 65536kB 描述 A group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore some sort of shuttle arrangement must be arranged in order to row the boat…

【TB作品】普中V2,数字时钟万年历显示,音乐闹钟,流水灯,Proteus仿真

文章目录 功能硬件原理图LCD1602独立按键LED灯ds1302蜂鸣器 引脚汇总按键功能code 功能 带闹钟和花样流水灯的LCD数显实时时钟设计(运用DS1302时钟模块,LCD显示,带万年历,时间到响音乐显示花样流水灯) 万年历显示 按…

禹神:三小时快速上手TypeScript,TS速通教程(上篇、中篇、下篇,3合1笔记),根据视频整理

TypeScript快速上手 📚一、TypeScript简介 1.TypeScript由微软开发,是其于JavaScript的一个扩展语言. 2.TypeScript包含了JavaScript的所有内容,即:TypeScript是JavaScript的超集 3.TypeScript增加了:静态奖型检查、接…

Win10安装ChatTTS-2024-cuda10.1

0x00 前言 ChatTTS是专门为对话场景设计的文本转语音模型,例如大语言助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。目前在huggingface中的开源版本为4万小时训练且未SFT的版本。 0x01 准备环境 版本操作系统Win1…

大模型参数高效微调技术总结

基础知识 最近,OpenAI推出的ChatGPT展现出了卓越的性能,引发了大规模语言模型(Large Language Model, LLM)的研究热潮。大规模语言模型的“大”体现在两个方面:模型参数规模大,训练数据规模大。以GPT3为例,GPT3的参数…

springboot集成redis之接口缓存

什么是redis的接口缓存? Redis的接口缓存是一种利用Redis这种内存数据库来存储接口(API)响应数据的技术,以提高应用程序的响应速度和性能。具体来说,当用户请求一个接口时,系统会首先检查Redis缓存中是否已…

windows vs2022 MFC使用webview2嵌入网页

Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎,以在本机应用中显示 web 内容。 一、通过菜单“项目”-“管理NuGet程序包”,下载相关包 二、安装 Microsof…

windows ssh launch Jenkins

一、 windows server2012 ssh launch jenkins 经过一系列测试验证发现,windows server2012始终无法launch到jenkins master。配置ssh之后 [08/21/24 10:08:03] [SSH] Opening SSH connection to 172.xx.xx.xx:18822. [08/21/24 10:08:03] [SSH] WARNING: SSH Host …

DBeaver连接GBase 8s数据库的步骤

最近在学习国产数据库GBase 8s。酷酷一顿操作后,发现自带的 dbaccess 不好用,然后尝试用DBeaver这种图形界面来尝试使用。 本次使用工具: 1、dbeaver-ce-24.1.4 2、GBase 8s Server 8.8 一、搭建环境,官方建议使用的是CentOS 7.3&…

vue 实现批量引入组件

批量引入组件 1.目录示例2.被引入组件示例3.全局注册方法3.1.require.context() 是什么3.2.require.context() 用法 4.使用全局注册方法5.使用 1.目录示例 2.被引入组件示例 注意&#xff1a;必须要有name <template><div>Hkmxdy</div> </template> &l…

【学习笔记】Day 21

一、进度概述 1、机器学习常识19-22&#xff0c;以及相关代码复现 二、详情 19、矩阵分解 矩阵分解是一个纯数学问题&#xff0c;但当给矩阵赋予现实意义后&#xff0c;矩阵分解就成为了使用数学应对机器学习问题的一类典型而巧妙的方法。 在线性回归分析中&#xff…

PaddleNLP 3.0 支持大语言模型开发

huggingface不支持模型并行。张量并行&#xff0c;不满足大规模预训练的需求。 1、组网部分 2、数据流 3、训练器 4、异步高效的模型存储

CV每日论文--2024.7.25

1、Diffusion Models for Monocular Depth Estimation: Overcoming Challenging Conditions 中文标题&#xff1a;单目深度估计的扩散模型&#xff1a;克服具有挑战性的条件 简介&#xff1a;本文提出了一种新颖的方法,旨在解决单张图像深度估计任务中具有挑战性的、超出分布范…

java设计模式--结构型模式

结构性模式&#xff1a;适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09; 充当两个不兼容接口之间的桥梁&#xff0c;属于结构型设计模式。目的是将一个类的接口转换为另一个接口&am…

Numba加速计算(CPU + GPU + prange)

文章目录 加速方法&#xff1a;Numba、CuPy、PyTorch、PyCUDA、Dask、Rapids一、Numba简介二、Numba类型&#xff1a;CPU GPU三、项目实战 —— 数组的每个元素加23.1、使用 python - range 循环计算 —— &#xff08;时耗&#xff1a;137.37 秒&#xff09;3.2、使用 python…

天空卫士五载出海路:让国际数据安全舞台,有我们的身影

在全球化和“一带一路”倡议的推动下&#xff0c;中国企业正加速出海&#xff0c;探索新的增长机会。中国联通联合天空卫士等合作伙伴&#xff0c;推出“安全产业链联合出海计划”&#xff0c;旨在汇聚资源&#xff0c;打造国家级网络安全产业平台&#xff0c;推动出海业务的发…

C# 必备技能—项目打包

目录 前言 准备工作 第一步 第二步 第三步 扩展 总结 最后 前言 在C#开发中&#xff0c;项目打包是一个重要的环节&#xff0c;将你的应用程序及其依赖项组织成一个或多个可以在目标系统上安装和运行的包。 这对于发布应用程序至关重要&#xff0c;因为它确保了最终用…