近日,HuggingFace开源了低成本AI机器人LeRobot,并指导大家从头开始构建AI控制的机器人,包括组装、配置到训练控制机器人的神经网络。
当前的AI机器人,已能上蹿下跳后空翻、再接闪电五连鞭,代替人类承担各种工作。
而这个LeRobot,就是我们自己能拥有的ALOHA,能够模仿人类完成一些简单的任务。
单个机械臂的成本在200美元左右,而后端的模型训练在自己的笔记本上就可以搞定。
官方开源了全部的硬件和软件,包括训练和控制程序、AI模型、SolidWorks文件等。
包括如何从头开始构建AI控制的机器人,——组装、配置,以及训练控制机器人的神经网络。
项目基于开源的Koch v1.1机器人套件(也可以是别的硬件或者虚拟平台),包含两个六电机的机械臂,可使用一个或多个摄像头作为视觉传感器。
LeRobot还计划在未来开发更具性价比的Moss v1版本,定价仅为150美元。
我一直在等待两个平台的转变: -相当于早期PC的AR/VR -相当于早期个人电脑的机器人
目前的HuggingFace上给出了四种模型,以及98个数据集,开发者还可以再一次进行选择在训练过程中上传自己的数据集。
LeRobot目前使用的机械臂来源于Alexander Koch在几个月前开源的项目:
下图是前辈的样子,总体的硬件差别不大,但为了方便大家复刻和使用,LeRobot做了一些改进。
Koch v1.1拿掉了之前硬件模型中一些干扰材料,让尺寸标准化,并为引导臂添加了一个平台,允许从动臂从地面拾取物体。
通过更换直流转换器,Koch v1.1无需使用烙铁进行组装,也无需手动调节电压转换器。
下表是需要购买的部件,主要的开销在6个舵机上面,剩下的包括电机驱动板、固定装置、电源、杜邦线之类的。
实际上对于相关爱好者来说,这些零件基本都能凑出来,而且咱们国内买这么多东西也要便宜得多。
他这里给出的两种电机扭矩都不大,但精度和转速倒是都挺高,不知道替换后会有多大影响,感兴趣的小伙伴不妨一试。
程序实例化一个类来调用SDK操作电机(port改为自己设备上检测到的端口):
DynamixelMotorsBus会自动检验测试当前电机索引,如果电机中保存的索引与配置文件中不匹配,会触发一个配置过程,需要拔掉电机的电源,按顺序重新连接电机。
手动调节机械臂到几个固定的位置,相当于给电机一个相对的归零位置,同时也保证引导臂和从动臂的静止位置大致对齐。
准备就绪,下面能开始控制机械臂了,比如让从动臂模仿引导臂,设置采样频率200Hz,操作30秒:
那么由此可知,训练机械臂模仿人类的原理就是,在从动臂模仿引导臂的同时,加上一个摄像头的实时画面,
在模仿(训练)的过程中,模型收集了手臂位置和对应的图像数据,之后(推理)就能够准确的通过当前摄像头看到的画面来预测各个电机需要到达的角度。
除了ACT,你也能够正常的使用或者训练自己的模型,可以改成ALOHA那样的双臂模式,或者在虚拟环境中进行训练和验证。
项目使用opencv2库来操作camera,以下代码同时配置了机械臂和摄像头:
使用下面的代码尝试以60 fps录制视频30秒(busy_wait负责控制帧率):
摄像头拍摄的图像帧会以线程的形式保存在磁盘上,并在录制结束时编码为视频。
还可以使用命令行参数设置数据记录流程,包括录制开始前、录制过程和录制结束后停留的时间。
一旦您熟悉了数据记录,就可以创建更大的数据集进行训练。一个好的开始任务是在不同位置抓取一个物体并将其放入箱子中。
建议至少录制50集,每个地点10集。在整个录制过程中保持摄像机固定并保持一致的抓取行为。
实现可靠的抓取性能后,您能开始在数据收集过程中引入更多变化,例如额外的抓取位置、不同的抓取技术和改变相机位置。