如何利用AI 代理移动机器人手臂
扫描二维码
随时随地手机看文章
移动机器人手臂通常需要编写严格的脚本或使用复杂的 ROS 节点。然而,随着 AI 代理的出现,我们现在可以将开发环境视为一个合作伙伴。通过使用 Claude Code 及其技能框架,我们可以使用自然语言来控制 4 自由度的机器人 myPalletizer 260 M5,让人工智能来处理坐标计算和错误纠正。设置环境。首先,确保您的硬件已连接,并且已安装 pymycobot 库。
硬件:myPalletizer 260 M5
myPalletizer 260 M5 是一款专为托盘装载任务设计的四轴机器人手臂。欲了解更多信息,请点击此处。
与六轴机器人手臂不同,它遵循的是特定的坐标系统进行运作:
• X、Y、Z:在三维空间中的直线运动。
• Rz:末端执行器的旋转(这对于与立方体或标记物对齐至关重要)。
自动手眼校准:连接两个世界
在基于视觉的机器人技术中,最困难的障碍并非视觉本身或移动方式——而是映射问题。你的相机是以像素(u,v)的形式来呈现世界景象的,而你的 myPalletizer 260 M5 则是以毫米(X、Y、Z)的形式进行移动的。要将这两个世界连接起来,我们需要找到一种被称为变换矩阵的数学“桥梁”。
算法:二维仿射变换
由于 myPalletizer 260 是一款四轴码垛机器人手臂,通常用于从平面上取下物品,因此我们可以将复杂的三维“手眼”问题简化为二维仿射变换。仿射变换是一种几何映射,它能保持点、直线和平面的特征。它涵盖了四种特定的变化类型:
1. 译文:移动原点(摄像机并非恰好位于机器人坐标系的[0, 0]位置)。
2. 旋转:摄像机可能与机器人的底座呈一定角度安装。
3. 缩放:将“像素”转换为“毫米”。
4. 谢尔:对相机镜头的轻微倾斜进行修正。从数学角度来讲,克劳德使用了 cv2.estimateAffine2D 函数来进行计算。
对于一个 2 行 3 列的矩阵(M):
“九点”策略
该代码实现了九点网格移动功能。虽然从技术上讲,仅需三个点即可定义仿射变换,但使用九个点则能提供冗余性。
对工作空间进行采样:通过将机械臂在 3×3 的网格中移动,我们能够对相机的整个视野区域进行采样。
误差最小化:克劳德使用最小二乘法估计(通过 OpenCV 实现)来找到能与所有九个点完美匹配的矩阵,从而有效地“消除”由电机抖动或镜头变形所导致的任何微小误差。
人工智能的优势
使用克劳德代码技术的最大优势在于其同步性。通常情况下,您需要手动移动机器人、记录坐标、在摄像头中点击一个点,然后手动运行一个单独的数学脚本。而克劳德的脚本则实现了这一过程的自动化:“握手”过程得以自动完成:
1. 它调用了“手臂.发送坐标”这一指令。
2. 它会等待物理振动停止(使用 time.sleep 函数)。
3. 它能够捕捉图像并识别标记。
4. 它能即时将这两个数据集进行关联。
在整个过程结束时,它会生成一个名为“calibration_matrix.npy”的文件。这个文件将成为未来所有任务的“关键资料”——无论是挑选红色立方体还是识别带有阿鲁科标记的盒子。
敏锐挑选(颜色与阿鲁科标记)
在保存了校准矩阵后,myPalletizer 260 现已具备了“空间感知能力”。然而,要使其真正实现自主操作,我们需要它能够“识别”特定的物体。在这个阶段,我们将从简单的移动过渡到利用吸力泵末端执行器的感知式拣选操作。
硬件部分:为何选用抽水机?
在该项目中,我们更换了标准的夹爪,采用了吸尘泵。在码垛过程中,对于木质立方体而言,采用吸尘方式往往更为有效,原因在于:
零握距空间要求:您无需在立方体周围留出“手指操作”的空间;只需要一个平整的顶部表面即可。
精度:只要喷嘴能形成真空密封,这个夹具就会非常稳固。
偏移管理:我们在代码中加入了“TOOL_OFFSET”这一项,以考虑相机镜头与吸尘嘴中心之间的实际距离。
深入剖析代码:克劳德是如何“理解”的的 我要求克劳德编写一个模块化的脚本,该脚本既要负责检测工作,又要处理坐标交换事宜。
这就是克劳德所采用的逻辑:
1. HSV 的优势
克劳德选择了 HSV(色相、饱和度、明度)色彩空间,而非标准的 RGB 色彩空间。
为什么?RGB 对亮度非常敏感。而通过使用 HSV(色调、饱和度、明度),克劳德能够将“色调”(颜色本身)与“明度”(光线照射到物体上的强度)区分开来。
现实检验:即便使用 HSV 颜色空间,我发现直接的顶光照明也是个难题。对于木质立方体而言,直接的强光会掩盖“饱和度”,导致机器人“盲目地”跳过一个方块。为解决这个问题,克劳德添加了高斯模糊和形态学操作(OPEN 和 CLOSE)。这些功能就像“数字砂纸”一样,能够消除噪点并填补由强光或木纹造成的颜色掩码中的小空洞。
2. 像素到毫米的转换:一旦找到颜色轮廓,该代码会计算出“中心点”(即立方体的中心位置)。然后它会执行以下转换:
这使得机器人能够精确计算出从其“起始”观察位置到所检测物体中心所需移动的具体毫米数。
“主动式”工作流程
这款软件的独特之处不仅在于其基于OpenCV的逻辑设计,还在于它与“克劳德代码”系统的交互方式。
扫描模式:该脚本会进入循环运行状态,持续展示摄像头画面,并突出显示检测到的立方体。
握手动作:一旦我按下“C”键以确认,该脚本就会输出一个格式类似于 JSON 的检测到的立方体列表。
决策过程:克劳德查看这一输出结果,确定哪个立方体符合我用自然语言表达的请求(例如,“挑选那个红色的”),然后计算出操作步骤:移动 → 下降 → 打开泵 → 提升。
复杂任务执行
现在,我们将这些逻辑模块组合起来,用于模拟实际场景:选择一个颜色方块,并将其放置在特定的阿鲁科标识上。
工作流程:
1. 找到那个红色的立方体。
2. 把它捡起来。
3. 搜索“阿鲁科”标识号 10 。
“技能”转型
这就是我们从运行单个脚本过渡到运用“代理技能”的阶段。
什么是技能?
根据“人类智能技能”库的内容:>技能是一系列指令、脚本和资源的集合,由克劳德动态加载以提高其在特定任务上的执行效率。这些技能教会克劳德以可重复的方式完成特定任务。
一项技能需要一个名为“SKILL.md”的文件,就像编程语言中的“main”一样。在该文件开头的部分是一个 YAML 格式的前缀:包含技能的名称和描述。描述内容非常重要,因为当用户要求执行某项操作时,Claude Code 将会依据此描述来决定是否使用该技能。
阿尼普特甚至创造了一种技能,用于创建其他技能:
并且我们将利用它来开发我们的机器人手臂功能。
使用技能创建器插件
我们使用 2026 技能创建者插件来实现自动化设置。
命令:
Bash 调用巴什·克劳德插件,使用“技能创建器”功能——名称设为“PalletizerPro”,文件夹路径设为“./技能/机器人” 对巴什进行的最后一轮提示:
“克劳德,使用技能创建器将我们的校准、颜色检测以及 ArUco 逻辑整合到‘PalletizerPro’技能中。定义一个名为 /sort-by-id 的命令,该命令需接收一个颜色和一个 ID 作为参数。”
现在,您只需输入以下内容即可:
/按ID排序 颜色:蓝色 ID:12
或者直接用自然语言告诉他去挑选那个蓝色的立方体即可。
克劳德将自主决定运行哪些脚本、处理视觉信息以及执行实际动作。
思考:人与人工智能协作循环的现实情况
使用像克劳德代码这样的自动化工具来控制硬件是一种独特的体验。这种感觉不像使用传统的集成开发环境,而更像是在监督一位反应迅速但有时过于自信的年轻工程师。
“超级功能”:自动纠错
这种工作流程中最令人印象深刻的部分就是终端反馈循环。当克劳德编写脚本来操作 myPalletizer 260 时,而 pymycobot 库出现串行错误或关节限制错误时,我无需将错误内容复制粘贴回聊天窗口中。
克劳德立刻就在终端中看到了回溯信息。它往往能比我更早地发现自身的错误,会说:“我注意到串口正忙;让我关闭连接并尝试不同的波特率。”这种“自我修复”的代码能力在调试硬件与软件接口时能极大地节省时间。
“陷阱”:当人工智能走向错误方向时
然而,这并非什么神奇的手段。该过程可能会出现两种不同的停滞情况:
1. 逻辑循环:有时,克劳德会发现一个问题,但提出的解决方案却不起作用。如果再次失败,它可能会尝试同样的错误解决方案的略微不同版本。我曾目睹它陷入了一个“重试循环”,即只是在代码中不断移动同一个错误。
2. 错误的方向:有时,它会从根本上误解某个物理动作失败的原因(例如,认为这是软件故障,而实际上是电源线被拔掉了)。
结论:每月支付 20 美元是否划算?
这就是 2026 年面临的重要问题。目前,每月 20 美元的 Pro 计划是使用“克莱欧代码”服务的入门选项,但该计划也有其限制条件:
• 配额危机:社区报告称,Anthropic 已在“幕后”悄悄降低了用户的配额,以应对新推出的 Opus 模型所带来的巨大计算负荷。
• 操作陷阱:仅使用 Opus 4.6 就能提出几个复杂的架构问题,这可能会在几分钟内耗尽您 5 小时的使用时长限制。如果您正在进行繁重的机器人相关工作,您会发现自己比预期更快地收到“使用量限制至下午 4 点前”的提示。
• 战略:如果您想尝试这种模式,请选择按月付费。2026 年人工智能的发展速度如此之快,以至于签订年度协议存在风险——今天所谓的“最佳”工具可能在下个月就被新的模型或更优的定价结构所取代。
总结
最终来看,如果能在一个下午内构建出一个具有敏锐感知能力的机器人代理,那这样做是值得的——只要您将克劳德视为需要监督的合作伙伴,而非可以忽略的“自动驾驶系统”就行。
本文编译自hackster.io





