构建一个放在书桌旁的机器人研究装置

Hacker News Top 工具

摘要

详细描述了构建一个低成本(<5000欧元)的机器人研究装置,包括工业级机械臂、摄像头和远程操作软件,设计为可放在书桌旁。作者认为,近期可负担的硬件和基础模型方面的进展使得个人现在可以独立进行有意义的机器人研究。

快速说明,因为文章很长:我于2017-2020年在OpenAI从事机器人操作研究,当时的桌面装置成本大约是这个的10倍,并且需要一个团队来运行。这个项目是我在测试一个人是否现在可以在同一类问题上进行有意义的工作:从物理和软件设置开始。<p>我有些最不确定的决定,希望得到一些反驳/反馈:<p>- 单臂 vs. 双臂(我选择了单臂,出于成本/空间考虑,知道这排除了像折叠布料之类的事情)<p>- 目前不校准相机外参/内参<p>- RGB vs. RGB-D用于从头策略(ACT / Diffusion Policy)<p>还有一个我更有信心但预计会有分歧的决定:不基于ROS 2 / LeRobot构建,而是自己编写整个软件栈。很乐意讨论其中的理由。
查看原文
查看缓存全文

缓存时间: 2026/06/20 14:26

# 在我桌边搭建一个机器人研究装置 来源: https://dfdxlabs.com/research/2026/robotics-setup 完成后的装置运行中:通过远程操作布置棋盘。图中可见不同的摄像头画面、人类操作员以及感知到的机器人状态;操作员可以在不同摄像头之间切换。 机器人研究已经变得足够廉价和普及,以至于小团队甚至个人现在都可以在真实硬件上进行有意义的研究。这有两个原因。 首先,功能强大的机器人硬件价格大幅下降:下面的物理装置使用了一个工业级机械臂、两个摄像头和一个完整的遥操作设备,总价低于5,000欧元¹ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-1) ¹ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-1) 此价格不含增值税和计算成本。 其次,现在有大量公开可用的机器人基础模型。例如,Hugging Face 的 LeRobot (https://huggingface.co/lerobot) 正是基于相同的理念,旨在推动最先进的机器人研究民主化。 我在这方面有些经验。在2017年到2020年间,我在OpenAI从事机器人操控研究,先是研究机械手 (https://openai.com/index/solving-rubiks-cube/),后来是桌面操控 (https://robotics-self-play.github.io/)。我在2019/2020年左右使用的桌面装置成本大约比这里描述的高一个数量级。这种比较并不完美,但关键是,在这个价位上,这个版本竟然能达到类似的实用性。那时,这类工作需要大约20人的团队。如果我的判断正确,现在一个人坐在桌边就应该能取得惊人的进展。 因此,为了验证这个想法,我决定直接动手:未来几个月,我将独立进行机器人操控研究,并且完全公开进行。我不期望主要产出是论文或开源代码库² (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-2) ² (https://dfdxlabs.com/research/2026/robotics-setup#footnote-2) 我目前不计划开源这里描述的代码。维护开源项目是真正的工作,我更愿意把时间花在研究上。这点可能会改变。我关心的是研究日志本身:什么有效,什么失败,以及我从运行系统中学到了什么。 本文涵盖第一步:为研究搭建完整的基础设施。前半部分关于物理装置:一个工业级机械臂、两个摄像头和遥操作,全部集成在一个足够小、可以放在我桌边的盒子里。后半部分是关于我从头编写的操作系统的软件栈。上面的视频展示了运行结果。 这是一个实验,计划可能会改变。但我很兴奋。 ## 需求 根据以往经验,我知道机器人研究应该在实际硬件上进行,所以第一步是搭建一个我可以做实验的装置。在购买任何东西之前,我写下了一些需求。它们适用于整个系统——物理装置及其操作软件: - 低于10,000欧元 - 足够小,可以放在桌上或桌边 - 零件易于获取(无需企业销售) - 可通过Python轻松使用 - 对软件栈无倾向性(因为我想自己构建) 10,000欧元的限额并非来自详细估算。当时我基本不知道最终系统会花多少钱。这个数字作为一个上限很有用:足够高,我不必为每个组件优化价格,但又足够低,使装置仍能负担得起。 这五个约束解释了本文中大部分决策的原因。 ## 物理装置 我决定搭建一个单臂桌面操控装置。桌面操控很好,因为它提供了无尽的不同难度的任务:例如,你可以从基本的单物体抓取-放置任务开始,然后逐步过渡到布置棋盘或组装乐高,所有这些都在同一个物理装置内完成³ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-3) ³ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-3) 6年前我们在OpenAI机器人团队也有同样的推理。在解决魔方之后,我们转向了桌面装置 (https://arxiv.org/abs/2101.04882),因为它可以支持如此多不同的任务,而我们对通用机器人感兴趣。 我选择了单臂而非双臂,是为了简单、节省空间和成本。然而,这个选择确实对可执行任务的类型施加了一些限制:例如,用单臂折叠衬衫可能是不可能的。但单臂仍然留有大量有趣的桌面任务,并且它迫使产生一种有用的约束:策略必须用行为来补偿缺失的硬件。它可以将物体推靠另一个物体或桌子边缘以固定它,在抓取前重新定位,或者利用环境作为操控策略的一部分。目前,这正是我想研究的领域。 对于视觉,我使用一个腕部摄像头和一个固定摄像头。这里的一个限制是空间:我无法搭建一个完全集成的“机器人笼”实验室装置,这意味着摄像头位置、光照条件和视野内的背景会随时间变化。代价是数据会比固定实验室装置更杂乱。然而,我认为这是一个特性而非缺陷:为了让机器人真正有用,它们必须恰好在这种条件下工作。 为了测试装置并记录数据,我使用一个6自由度空间鼠标进行遥操作。我在机器人旁边使用一张简单的可折叠宜家桌子,将我的工作空间(通常堆满各种物品)与机器人的分开。这也更安全。 因为机器人直接“坐”在我旁边,使用它的摩擦非常低。虽然最初是出于空间限制,但我非常喜欢这种设置,可以全天快速迭代和开发。 下面展示的是我最终采用的完整物理装置。我将更详细地描述各个组件。 机器人装置的正视图,位于小桌上,机械臂、摄像头、空间鼠标和桌子上带有编号标签。机器人装置的俯视图,带有编号标签。机器人装置(正视图和俯视图)。可见:(1)UFACTORY xArm Lite 6,(2)Intel RealSense D405 腕部摄像头,(3)Logitech C920 桌面摄像头,(4)用于遥操作的3Dconnexion SpaceMouse Wireless,(5)可折叠桌子。 ### 物料清单 完整物料清单如下。所有价格均为我购买时的价格,不含增值税。我还提供了购买链接以便参考,但所有零件都应可从各种其他经销商处轻松获得。 | 产品 | 价格 | 购买链接 | |------|------|----------| | UFACTORY xArm Lite 6 | €3,403.32 | Reichelt (https://www.reichelt.de/de/de/shop/produkt/ufactory_lite_6_roboterarm-330833) | | UFACTORY xArm Lite 6 夹爪 | €444.50 | Reichelt (https://www.reichelt.de/de/de/shop/produkt/gripper_lite_2-fingergreifer_fuer_lite_6_850-340109) | | UFACTORY xArm 摄像头支架 | €89.03 | Reichelt (https://www.reichelt.de/de/de/shop/produkt/xarm_kamera_halterung-301263) | | Intel RealSense D405 摄像头 | €302.51 | MyBotShop (https://www.mybotshop.de/Intel-RealSense-Depth-Camera-D405) | | Logitech C920 摄像头 | €47.86 | Reichelt (https://www.reichelt.de/de/de/shop/produkt/webcam_full_hd_1080p_logitech_c920_hd_pro-129256) | | Intel RealSense USB 线缆 (3m) | €20.25 | Reichelt (https://www.reichelt.de/de/de/shop/produkt/usb_5_gb_s_kabel_a_stecker_auf_micro_b_stecker_3_m-273572?nbc=1) | | SmallRig Desktop Magic Arm | €28.90 | Foto Koch (https://www.fotokoch.de/en/68633.html?pfad=68633&rewrite=on) | | 3Dconnexion SpaceMouse Wireless | €174.70 | Amazon (https://www.amazon.de/dp/B0D3HMLTKV/) | | AGPTEK 线夹 | €8.32 | Amazon (https://www.amazon.de/dp/B08CJZDXGY/) | | IKEA SUNDSÖ 折叠桌 | €50.41 | IKEA (https://www.ikea.com/de/de/p/sundsoe-tisch-elfenbeinweiss-fuer-draussen-80575560/#content) | | **总计** | **€4,569.80** | | 总价为4,569.80欧元,不含增值税和计算成本。这比我设定需求时10,000欧元的预算的一半还少。重要的不是这个价格绝对便宜,而是对于个人或小团队来说,在真实硬件上迭代已经足够便宜了。 计算是唯一需要注意的地方。你显然需要GPU计算来训练策略并最终服务它们。我把它排除在外,因为我已有可用的计算资源⁴ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-4) ⁴ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-4) 我已有的计算设备是一台 NVIDIA DGX Spark (https://www.nvidia.com/en-us/products/workstations/dgx-spark/) 盒子。,而且我怀疑许多研究人员也是如此。 ### 机械臂 我选择了 UFACTORY xArm Lite 6 (https://www.ufactory.us/product/lite-6),因为我想要一个可靠、工业级的机械臂。我认为更便宜的机械臂如 LeRobot SO-101 (https://huggingface.co/docs/lerobot/so101)、OpenArm (https://openarm.dev/) 和 Robot Learning Company (https://www.robot-learning.co/) 很有趣,我很高兴它们存在⁵ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-5) ⁵ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-5) 事实上,我也买了一个 LeRobot SO-101 套件。它便宜得多(约450欧元),但也明显更玩具化。 然而,我过去的研究经验告诉我,购买一个精密、成熟且耐用的机械臂会让一切变得容易得多:它们就是能工作,而且很少出故障。特别是UFACTORY机械臂非常有吸引力,因为它性价比惊人,并附带一个实用的Python SDK (https://github.com/xarm-developer/xarm-python-sdk)。 带腕部摄像头和平行夹爪的UFACTORY xArm Lite 6机械臂。UFACTORY xArm Lite 6,配有原厂腕部摄像头支架和xArm Lite 6夹爪。我使用便宜的亚马逊线夹来布置腕部摄像头的USB线缆。 到目前为止,我对我的选择非常满意。机械臂装在一个漂亮的箱子里(如果需要的话便于运输),而且看起来制作精良。它还附带一个底座和两个用于固定在桌子上的夹具,一个紧急停止按钮,以及一个外部电源(支持110V和220V)。 安装非常简单。我估计从开箱到首次操作大约花了30分钟。机械臂通过以太网连接,并提供一个方便的网页界面来操作它。 UFACTORY控制机械臂的网页界面截图。UFACTORY网页界面,直接运行在机器人上。对于初始测试和设置非常方便。 除了网页界面,原厂Python SDK (https://github.com/xarm-developer/xarm-python-sdk) 使得操作非常简单。机械臂可以通过关节位置或速度驱动,但也支持在TCP空间中进行驱动⁶ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-6) ⁶ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-6) 工具中心点(TCP)是附加到末端执行器的参考点或坐标系,其笛卡尔位姿是你关心的。对于夹爪,这通常位于手指之间某处,而不是物理安装点。在TCP空间中驱动意味着你在笛卡尔空间中指令所需的位姿或速度,机器人控制器计算相应的关节运动。后者效果很好,也是我实际使用的。 机器人还附带了几项安全功能:具有自碰撞避免功能,可配置全局速度和加速度限制,检测并避免关节限制违规,并在检测到过大力量时感应并中止(灵敏度也可配置)。它还支持“教导模式”,操作员可以自由移动机械臂。 对于夹爪,我决定使用UFACTORY的xArm Lite 6平行夹爪。夹爪能用,但它是装置中最薄弱的部分。它是气动驱动的,因此打开时噪音很大,而且力量较弱。夹爪本身没有传感器,因此确定开/闭状态只能通过读取控制信号。 xArm Lite 6平行夹爪在窄配置下的特写。平行夹爪宽度非常窄,因此你只能拾取小物体。可以通过将手指旋转180度重新配置为“宽”配置,但那样就不能完全闭合了。 它也不太灵活:夹爪可以完全闭合,但打开时的最大宽度非常窄(如上图所示)。可以将夹爪重新配置为“宽”配置。这通过拧下两个手指,交换它们,然后重新拧上来完成。在这种配置下,夹爪打开时更宽,但不能再完全闭合了。所以你必须选择你的毒药:要么可以抓取小物体,要么可以抓取较大物体,但不能用同一设置同时做到。 然而,机械臂有一个标准的末端执行器支架,因此可以更换夹爪。UFACTORY还生产真空夹爪 (https://www.ufactory.us/product/ufactory-xarm-vacuum-gripper) 和更高级的平行夹爪 (https://www.ufactory.us/product/ufactory-xarm-gripper)。它还支持更高级(但也更贵)的 Robotiq (https://robotiq.com/products/adaptive-grippers) 夹爪。所以如果当前夹爪成为瓶颈,我可以更换它。 ### 摄像头 我打算使用的主要感知方式是基于视觉的⁷ (https://dfdxlabs.com/research/2026/robotics-setup#sidenote-7) ⁷ (https://dfdxlabs.com/research/2026/robotics-setup#footnote-7) 当然我也会使用机器人的本体感知:关节角度、夹爪状态(开/闭)以及TCP位姿(通过正向运动学)。。我目前决定使用双摄像头设置:一个腕部摄像头和一个固定摄像头,安装在我的桌上,视野覆盖机器人的整个工作空间。 #### 腕部摄像头 对于腕部摄像头,我选择了 Intel RealSense D405 (https://www.intel.com/content/www/us/en/products/sku/229218/intel-realsense-depth-camera-d405/specifications.html)。主要原因是其紧凑的外形、全局快门以及7厘米到50厘米的工作范围,使其非常适合安装在会移动并接近其他物体的腕部摄像头。 通过木质角支架连接到机器人腕部的Intel RealSense D405。Intel RealSense D405安装到xArm摄像头支架上。摄像头外壳和机器人摄像头适配器之间可见木制“角支架”。 它还支持720p分辨率、30 fps的16位深度通道。摄像头依靠立体视觉实现这一点,但方便地已在设备上完成必要处理,并直接输出RGB-D。我的假设是,当从头训练策略时,深度信息会最有帮助,因为它直接暴露了几何结构,可能有助于策略在纹理、光照、桌面外观和背景变化时更好地泛化。我不太确定对于微调视觉-语言-动作模型(VLA)有多大用处,这类模型通常在仅RGB数据上预训练;添加深度可能弊大于利。无论如何,我很高兴能够对比仅RGB和RGB-D对学习策略的影响。 腕部摄像头通过USB3连接,Intel提供了pyrealsense2 SDK (https://pypi.org/project/pyrealsense2/) 用于从Python访问。遗憾的是,它不兼容

相似文章

实验室机器人的启发式方法及其未来走向

Hacker News Top

本文讨论了实验室机器人的启发式方法,涵盖了不同类型的机器人(箱式机器人与机械臂),自动化协议的成本效益分析,以及在翻译层、硬件层和智能层的未来方向。本文还借鉴了该领域多位专家的见解。