花了两天把HOST框架跑通了,写个从零开始的教程
我花了两天试了一下自变量刚开源的HOST框架,就那个让机器人看几十秒视频就能学新技能的东西。作为系统集成商,我第一反应是:这玩意儿能不能真的落到产线上?验证下来,至少在实验环境里,它比我想的靠谱。但前提是——你得把环境搭对。
先给完全不懂的朋友解释一下HOST是干啥的。以前让机器人学一个新动作,比如抓一个没见过的形状的零件,你得写代码、调参数、标数据,一个动作折腾一两天算快的。HOST框架的意思是,你拿手机拍一段几十秒的视频,人怎么操作,机器人看着学,然后就能模仿着做。框架是开源的,代码和模型都公开,也就是说你可以自己下载、部署、跑。
第一天:搭环境,踩了第一个坑
我是在一台Ubuntu 22.04的工控机上跑的,配置是i7-12700、32G内存、RTX 3060 12G显存。官方文档建议至少16G显存的显卡,但我手头只有3060,想着试试看。
第一步,去自变量官网(x2robot.com)的GitHub仓库把代码拉下来。直接在终端执行:
然后装依赖。官方推荐用conda创建虚拟环境,避免和系统Python冲突。我建议新手一定按这个来,别图省事直接pip install,后面会哭。
这里踩了第一个坑。requirements.txt里有个torch的版本是2.1.0+cuda118,但我的显卡驱动是535版本,cuda版本是12.2。直接装会报错说cuda版本不匹配。解决办法:先装torch,手动指定cuda版本。
装完再跑requirements.txt,把torch那行注释掉,剩下的包就能正常装了。
第三天:跑通了第一个demo
环境搭好之后,官网有一个预训练好的模型可以直接下载,大概4.3G。我不建议自己从头训练,新手没那个必要。下载命令:
把模型文件放到 checkpoints/ 目录下。
然后准备视频。我拍了一段自己用手抓取一个螺丝刀的视频,大概45秒,iPhone拍的,横屏1080p,30帧。拍的时候注意:背景别太乱,手部动作要清晰,最好固定机位别抖。
运行推理命令:
如果一切正常,你会看到终端开始输出帧率信息,然后弹出一个窗口,显示机器人手臂模型在模仿你的动作。第一次看到那个画面,说实话挺震撼的——机器人真的在学你抓螺丝刀的动作,而且不是简单复制,是理解了“抓取”这个意图。
但这里又踩了第二个坑。我一开始录的视频分辨率是4K,太大了,跑了大概40秒才出结果,而且显存直接爆了。后来压缩到1080p才正常。官方建议输入视频分辨率不高于1920x1080,帧率30fps以内。
一周后:试着让它学一个产线动作
熟悉了基本流程之后,我开始想能不能让它学一个产线上常见的动作——从料箱里抓取一个螺栓。我录了一段视频,人站在工位前,从料箱里取出一颗M8螺栓,放到定位夹具上。
这次跑完,机器人确实能复现这个动作,但精度还不够。抓取位置偏差大概在2-3厘米,对于产线来说这个误差太大了。不过让我意外的是,它学会了“到料箱里取东西”这个语义,而不是单纯复制轨迹。之前用传统视觉抓取,换一个零件位置就要重新标定,HOST框架至少不需要重新标数据,这一点我觉得是真正的突破。
学完这个,下一步可以试什么
如果你跑通了上面的demo,下一步可以试试自己录一个稍微复杂的动作,比如“拿起螺丝刀然后拧一下”。你会发现HOST框架对连续动作的支持比预想的好,但手部遮挡严重的时候会掉帧。另外,如果你有真实的机器人(比如发那科或库卡的小型协作臂),可以试试把输出动作映射到真实机器人上,这个才是真正的落地场景。
物界前沿