惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
P
Palo Alto Networks Blog
月光博客
月光博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
aimingoo的专栏
aimingoo的专栏
腾讯CDC
T
Threatpost
D
DataBreaches.Net
Vercel News
Vercel News
F
Fortinet All Blogs
Engineering at Meta
Engineering at Meta
C
Cybersecurity and Infrastructure Security Agency CISA
Forbes - Security
Forbes - Security
U
Unit 42
C
Check Point Blog
Blog — PlanetScale
Blog — PlanetScale
O
OpenAI News
量子位
TaoSecurity Blog
TaoSecurity Blog
Microsoft Azure Blog
Microsoft Azure Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Visual Studio Blog
Recorded Future
Recorded Future
云风的 BLOG
云风的 BLOG
Security Archives - TechRepublic
Security Archives - TechRepublic
The Last Watchdog
The Last Watchdog
S
Security Affairs
Attack and Defense Labs
Attack and Defense Labs
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
小众软件
小众软件
S
SegmentFault 最新的问题
www.infosecurity-magazine.com
www.infosecurity-magazine.com
W
WeLiveSecurity
AI
AI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
I
Intezer
Know Your Adversary
Know Your Adversary
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
博客园_首页
NISL@THU
NISL@THU
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12) Snack JSONPath 项目架构分析 Claude Code Buddy 小析:一个非核心功能,如何体现产品的细节完成度 AI新时代下的图床管理方案-Cloudflare图床+MCP+Skills方案指南 化繁为简:顺丰速运App如何通过 HarmonyOS SDK实现专业级空间测量 从零实现富文本编辑器#13-React非编辑节点的内容渲染 AI开发-python-langchain框架(3-23-OpenAI Functions风格Tool Calling智能助手) .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut PbootCMS 网站内容数量多导致访问慢?这些实用优化方案帮你提速! - 家兴网络技术工作室 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 网站漏洞怎么发现并修复?一篇实用指南(附完整流程) - 家兴网络技术工作室 开了 TUN 模式还是直连?90% 的人都踩过这个坑 Github日报|2026年04月12日 - AI一族 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术 Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模 MicroPython LVGL基础知识和概念:底层渲染与性能优化 - FreakStudio 数据库草图算法 Python 潮流周刊#146:CPython 引入 Rust 的进展 - 豌豆花下猫 最小生成树 - mofei1116 红日靶场七:从外网入口、容器逃逸到 AD 接管的完整利用链复盘 - YouDiscovered1t 分享四款开源且实用的 Kafka 管理工具 - 追逐时光者 vLLM 权重加载机制全解析:从挑战到理想架构 LCT 学习笔记 - ACehomoxue Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 当 AI Agent 把调用链拉长,延迟开始成为一门生意 conhost.exe 无法显示 U+2717 - 145a 太秀了,我把自己蒸馏成了 Skill!已开源 - 程序员鱼皮 ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑 基于 Ghostty 带有分割标签页和为 Claude 编程设计的通知终端 - BugShare AI 焊死入口:教育的“操作系统级”重塑 - 郝hai 初级Java开发工程师使用sql脚本编写代码的过程是简单而且不糊涂 - CoderOilStation Claude Code通关手册(六):MCP协议完全指南 - 暮色之狐 边框灯光环绕动画特效实现指南 - Newbe36524 开源:子木蒸馏版的 SEO 审计工具 seo-audit-skill v1.0 我所理解的Python元模型 【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite - 程序员Seven Claude 和 Codex 在审计 Skill 上性能差异探究 - ACai_sec AScript如何实现中文脚本引擎 - rockey627 【渗透测试】HTB Season10 Garfield 全过程wp - dynasty_chenzi Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革 树状数组正确性证明 - AC-wyr 你的 AI 焦虑,可能比 AI 本身更危险——ATM 机没有消灭银行柜员,但恐慌消灭了你的判断力 - 我没有三颗心脏 一个拉胯的分库分表方案有多绝望?整个部门都在救火! - 冰河团队 动态规划入门必学之走方格问题 - Ofnoname PostgREST 与 PostgreSQL 角色权限配置全解析(生产级实践) - SheepDog1998 使用 UEFI 图形输出协议 GOP 在屏幕上显示图像的方法 - 阿源- Claude Code通关手册(五):组建你的AI专家团队,子代理系统 - 暮色之狐 一个程序员到架构师的催婚路之感悟(整整10年后的催婚相亲感悟) - MisterLip 用 Agent Skill 自动生成工作周报 - 赵康
一个外行,半年搞定机械臂:我的从0到1踩坑实录
zhenjing · 2026-05-24 · via 博客园_首页

公众号:珍敬AI日志,专注于AI领域,如AI原生、AI工具、AI赋能等。

qrcode_for_gh_59f945268ef7_258


零:写在前面

写这篇文章,两个目的。

第一,给自己半年的从0到1做一次复盘。

第二,给想做机械臂的普通人一点参考。不是给科班生看的技术文章——不讲URDF怎么定义、雅可比矩阵怎么推。只讲一件事:一个base在厦门、出差6次48天、连URDF是什么都不知道的软件人,怎么一个人把行李搬运机械臂的整套软件系统跑通了。

这半年,AI帮了我大忙——但也给了不少错误答案。一个外行怎么判断AI说的对不对?这个话题,可能比你想象的重要。


一:学了1个月,我跑去跟公司说"我能搞定"

2024年11月之前,我在做行李抓取位姿算法,对控制机器人是天边的事。

2024年5月,公司启动行李搬运项目,同事搞了半年,不理想。高管想法很直接:招有经验的机器人工程师,项目从头开始。

我当时在干嘛?我在搞闸机。11月,直属领导让我转来熟悉机械臂控制,学moveit2。

公司需要就是工作,我抱着"先看看这东西到底是什么"的心态,花了一个月:搭环境、读文档、跑仿真、看MoveIt2教程。一台远程服务器,一个Ubuntu系统,一个AI——看不懂的贴给AI问"这是什么",遇到报错把error贴过去让它解释。

一个月后,我对技术栈有了一个初步判断:ROS2生态成熟,MoveIt2有完整的仿真链路,Gazebo能跑机械臂模型。软件侧这条路走得通。

于是我做了一个决定。跑去跟公司说:我有把握搞定机械臂操作的软件部分。

说这话的时候,我连真机都没摸过。

我不知道仿真和真机的差异有多大,对接一个机械臂厂商需要近1个月,Gazebo新版和旧版控制器不兼容。更不知道四个月后会连续加班到凌晨,只为赶4月26号的节点。

初生牛犊不怕虎。不是因为它勇敢,是因为它没看见虎有多大。


二:仿真跑通了,真机跑不通

公司同事写过一个demo(rwarm_ws),能在Gazebo仿真里跑通抓取放置流程——虚拟世界里看起来像模像样。但在真机上跑不了。

我拿它当起点。一个文件一个文件读代码,搞清MTC任务构造怎么把"拾取"和"放置"串起来,控制器的配置逻辑是什么。配合MoveIt2官方教程和examples,来回对照着啃。大概三周,把核心逻辑吃透了。

然后在仿真里反复跑:改参数,换规划器,对比RRTConnect和LazyPRMstar的轨迹质量,测试TRAC-IK比KDL快多少。仿真里一切正常,规划路径合理,碰撞检测也没问题。我当时甚至觉得:诶,好像也没传说中那么难?

后来才知道,"仿真跑通"和"真机能跑"之间,隔的东西比想象的多得多。

仿真不会告诉你ros2_control和新版Gazebo硬件接口不兼容。仿真不会告诉你不同品牌的SDK接口完全不一样,换机器人就得重新适配控制器。仿真更不会告诉你真机有"碰撞保护性停止"——你的代码在仿真里飞快,到了真机上安全机制直接锁定系统。

仿真像个驾校模拟器。你能学会踩油门、打方向、过S弯。但上路之后才发现,模拟器没教你怎么应对突然冲出来的电动车。

真正让我意识到"上路了"的,是选定了节卡Zu 18之后。


三:把模糊目标拆成确定性问题

起步阶段花了很多时间在仿真上,不是无用功。仿真阶段最大的价值,不是"跑通了一个demo",而是帮我对整个建立了概念

"行李搬运"这四个字,一开始对我来说就是个巨大的模糊目标。我甚至不知道从哪里问问题。但仿真跑下来后,逐渐能拆开了:

  • 行李在哪?→ 相机标定 + 点云 + 行李检测 + 抓取位姿估计
  • 怎么规划路径?→ 环境建模 + 碰撞检测 + MeshLab简化模型
  • 怎么抓怎么放?→ MTC任务构造 + 求解器选择(KDL vs TRAC-IK vs IKFast)
  • 行李怎么堆垛?→ 对行李建模,建立堆垛模型 (算法同事提供)
  • 仿真怎么切真机?→ ros2_control + 厂商SDK适配 + 控制器参数调试

这中间,每冒出一个问题,我的第一反应就是把问题抛给AI。AI不一定每次都答对,但它帮我在几分钟内建立起对新概念的基本认知——然后我带着这个认知去看官方文档、翻GitHub issue、搜ROS Discourse。

这半年我的学习节奏固定下来了:遇到新概念→问AI建立认知→看官方文档做交叉验证→写代码跑测试→跑不通再回去问AI。 这个循环,比任何"系统学习路径"都高效。

跨入完全陌生的领域,第一个里程碑不是"做出能用的东西",而是"知道有哪些问题需要解决"。


四:AI是个好导游,但不是好地图

AI帮了我大忙。但这个"帮忙"不是很多人想象的那样——AI写好了代码,我复制粘贴就完事。不是。真正有用的是:AI帮我缩小了搜索空间。

刚接触MoveIt2的运动规划器时,面前摆着OMPL二十几种算法、CHOMP、STOMP——怎么选?问AI,几分钟就理清了框架:RRTConnect快但不渐进最优,LazyPRMstar渐进最优但慢几倍,CHOMP能加约束但规划时间长。带着这个框架再去看官方文档和benchmark,效率完全不一样。

但AI也经常给我错误答案。

一个外行,怎么判断AI说的对不对? 这半年我摸出了几条办法:

第一,AI的答案必须有官方文档或GitHub issue交叉验证。 找不到出处的答案就是不可靠的。

第二,优先相信跑通的代码,不是AI说的"应该可以"。 工程问题上,现实世界永远是对的。

第三,同一个问题问不同AI模型。 两个答案不一样,说明AI也不确定,你得自己搞清楚。

第四,社区论坛比AI更可靠——但AI能帮你找到它们。 ROS Discourse、Robotics Stack Exchange上的回答经过真实项目检验。AI的价值是帮你知道该用什么关键词去搜。

AI是好导游,能帮你快速到达一个地方。但它不是好地图——真正的路,是你自己一步步踩出来的。


五:真机对接——隔着一整个深圳

硬件在深圳,我在厦门。每次真机调试都要出差。半年下来,出差6次,累计48天。

选定节卡Zu 18后,真正的工作开始。

从ROS1迁移到ROS2。节卡官方SDK是ROS1版本,要移植到ROS2——驱动层重写,控制器接口适配moveit2框架,仿真模型重新配置。一步就花了一周多。

仿真跑通了,该上真机了。飞到深圳,第一次把代码部署到真实机器人上。然后问题挨个来:

速度问题。 moveit2设速度scale为0.2,机械臂频繁报错——仿真里设多少都正常,真机上反而出问题。根本原因是SDK移动接口和moveit2控制频率不匹配,仿真世界里没有"接口失效"这回事。

安全的代价。 碰撞保护性停止是个安全机制,检测异常就强制锁定系统。但在调试阶段这玩意频繁触发——代码没问题,速度参数稍大它就停。停了必须重连,一上午调不了几次。

节奏问题。 用APP移动机械臂从一个位姿到另一个位姿,居然要5秒。按这个速度,搬一次行李要15秒以上,对真实场景太慢了。加速又触发前面的问题。平衡速度和稳定性,来来回回调了很多次。

这些都不是技术上最难的问题。但它们是真正消耗时间的问题。

对接节卡一个品牌,从移植SDK到稳定运行,实际用了约1个月。 而我最初的计划里只留了1-2周。

节卡的技术支持一直很配合,有问题能很快拉通。真正的问题在于:仿真和真机的差距,比我预估的大了一个数量级。 仿真里跑通了,真机上总有你没想到的事——通讯协议、PID参数、机械臂物理限制——每一个都要花时间定位和修复。而每次需要真机验证时,就得从厦门飞到深圳。


六:4月26日——计划永远赶不上变化

3月初我制定了一份开发计划,表格列得清清楚楚:ROS1迁移到ROS2,4天;控制器真机测试,2天;抓取任务测试,2天;手眼标定,2天……

回头看,计划的问题不是"不够详细",而是它假设每一步都能顺利走通。

真实情况呢?

新增了三个功能需求——展示大屏、平板APP、PLC外设控制(地轨移动、真空吸盘、行李滚筒、安全激光雷达)。完全不在原计划里。

手眼标定比预想复杂——到了现场发现相机支架都没准备好。行李检测和抓取位姿集成,每一步都有意料之外的坑:相机要连两路,点云精度要反复调,抓取点计算逻辑要适配不同行李。

4月下旬出差深圳,目标很明确:4月26号,完整行李搬运流程要跑通。

那段时间:整天在实验室调试整个系统,基本都10点后下班。出现问题→定位→修复→验证,这个循环一天转好几轮。记得,行李能搬运后,偶尔会出现moveit2规划轨迹报碰撞,但是从Rviz上看,无明显碰撞,前后调了3天,中间甚至怀疑moveit2有问题。因为系统测试中还有其他bug要修复,在修复其他bug后,就排查这个问题,最终发现moveit2报碰撞是对,是因为抓取位姿的处理有问题:z轴旋转180° 采用yaw+180,正确做法:绕 z 轴旋转 180° 后,ZYX欧拉角的变换规则为:(a**′,b′,c′)*= (a+180°,−b,−c)

4月26号,跑通了。

不完美。抓取成功率不够高,偶尔规划会失败。但流程闭环了:相机识别行李→计算抓取位姿→机械臂规划路径→抓取→放置→回到初始位姿→等下一个行李。

跑通了,但不是终点。 之后又做了半个月稳定性测试。5月16日,系统才正式向投资人开放。

现在回看3月那份计划书,最大的价值不是"指导执行",而是逼着我动手前把整个链条在脑子里走了一遍。 计划在执行第一周就过时了,但做计划这件事仍然值得做——它让你在偏离计划时,知道自己偏离了多远,下一步该往哪走。


七:半年,一个人,几点心得

回头看,这半年没有任何一个单点是高不可攀的。ROS2有完整文档,MoveIt2有丰富教程,节卡有技术支持,遇到问题有社区和AI。没有哪个门槛真的过不去。

真正难的是:很多事情只有上手做了,才知道是什么样。 看再多资料,只要没在真机上跑过,你就不知道仿真和真机的差距,你就不知道对接一个品牌要留多少时间,你就不知道哪些看起来很简单的事最消耗精力。

五条心得,是一个过来人的复盘:

1. 先跑起来,再谈精通。

第一个月别试图理解一切。不知道URDF标签干嘛的?先照着教程把模型跑起来。信心来自看见东西在动,不是看懂了原理。

2. 把模糊问题拆成确定性问题。

"搬行李"没法执行。"从A点抓取到B点,规划时间从2s降到0.8s"——可以操作。能写清到这个程度的问题,已经解决了一半。

3. 真机对接时间,至少按2倍预估。

仿真跑通只完成30%。剩70%在真机上,且这70%的大部份时间不是"写代码"而是"定位问题"。"顺利"在这个领域是一种意外,不是常态。

4. AI是好导游,不是好地图。

用它加速学习、建立新概念的认知框架——这是它擅长的。但重要的技术决策、要上真机的每一行代码,必须用官方文档和实际测试来验证。

5. 没看见虎有多大,反而是幸运。

如果2024年11月就知道后面要学多少东西、飞多少次深圳、加多少天班——我不会主动请缨说"我能搞定"。但也正是因为不知道,所以去了。去了之后发现:那些看起来很吓人的东西,拆开来,一件一件做,也就做完了。


八:写在最后

半年前,一个连URDF都不知道的软件人,在一台连ROS2都没装的服务器前,敲下第一个ros2 run

半年后,行李搬运机械臂在展厅里连续运行。

中间发生了很多。在仿真里跑了无数条规划轨迹。对着看不懂的C++代码一行行问AI。在深圳实验室,因为碰撞保护反复重连机器人,调PID调到不知道哪组最优。半夜改完代码,第二天早上看到机械臂按预期运动时的那种感觉。

然后呢?然后就继续往前走了。

初生牛犊不怕虎。等真的看见了虎长什么样,你已经站在它面前了。那时候只有一件事可以做——往前走。

如果你也想做机械臂,或者你也有一个"完全不懂但想试试"的领域——先迈第一步吧。装个ROS2,跑个仿真demo,让机械臂动起来。

这一步花不了你一周。做完了,你自己就知道答案了。

重新写文章,专注于AI领域,如AI原生、AI工具、AI赋能等,主阵地是公众号,欢迎关注。

原文链接:https://mp.weixin.qq.com/s/1HndisZZu1izYkj80TCivw