7天学会plc加机器视觉关于运动控制部份,配套视频在bib
利用ai 高效学习,通常半个月能学会plc 加机器视觉
以下是运动控制这么份,大家主要是先会采集数据,标记数据就好,至于训练和使用这些都 可交给ai 来完成
以下主要是搭环境,我是任何技术的入门必做,
详细操作可以bibi 上查对应视频
LingBot-VLA(灵波 VLA)完整使用 + 微调训练教程
LingBot-VLA 是蚂蚁灵波开源 VLA 具身模型(视觉 - 语言 - 动作),基座 4B,只需要 150 条真机示教数据就能微调适配新机械臂(SO100 / 乐聚 / 自研臂),分:环境安装→权重下载→推理使用→数据集制作→后训练微调→真机部署五大步骤。
硬件底线:单卡≥24G 显存(3090/4090/A6000);推荐 4090 (24G) 起步;系统优先 Ubuntu22.04/24.04,Windows 可用 WSL2。
为了录这个课我先买了一张显卡,后面我们还会续更新
一、新建 Conda 环境 & 安装依赖(固定 Python3.12,别用 3.8/3.10,会依赖冲突)
打开 Anaconda Prompt / 终端,逐条执行:
bash
# 1.创建专属环境 conda create -n lingbotvla python=3.12 -y conda activate lingbotvla # 2.拉取源码 git clone https://github.com/Robbyant/lingbot-vla.git cd lingbot-vla # 3.一键安装全依赖(含torch2.8、CUDA12.8、flash-attn、lerobot) bash install.sh坑点:
install.sh编译flash-attn2.8.3很慢,编译失败就手动装预编译包:pip install flash-attn --no-build-isolation
二、下载模型权重(国内优先魔搭 ModelScope,避开 HF 翻墙)
需要两个权重:LingBot-VLA-4B 基座 + Qwen2.5-VL-3B-Instruct(视觉语言底座)
1、安装下载工具
bash
pip install modelscope huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple2、魔搭一键下载(推荐)
bash
# 1)下载LingBot-VLA-4B主模型 modelscope download --model Robbyant/LingBot-VLA-4B --local-dir ./lingbot-vla-4b # 2)下载Qwen2.5-VL基座 modelscope download --model Qwen/Qwen2.5-VL-3B-Instruct --local-dir ./Qwen2.5-VL-3B-Instruct下载完成目录结构:
plaintext
lingbot-vla/ ├─ lingbot-vla-4b/ # VLA主权重 ├─ Qwen2.5-VL-3B-Instruct/ # 多模态底座三、快速使用:本地推理(仿真 / 单步测试,不用机器人硬件)
方式 1:命令行单指令测试(输入文字指令 + 图片,输出机器人动作)
bash
python infer_single.py \ --model_path ./lingbot-vla-4b \ --tokenizer_path ./Qwen2.5-VL-3B-Instruct \ --image_path ./test.jpg \ --prompt "把红色方块夹到盒子里"输出:关节动作序列(6/7/14 维机械臂关节值)
方式 2:RoboTwin 仿真部署(无实体机械臂,软件仿真运行)
bash
# 启动仿真服务端 bash run_server.sh # 新开终端启动仿真客户端,自动加载VLA控制虚拟机械臂 bash run_robotwin_client.sh打开可视化界面,输入自然语言:拿起水杯放到桌面右侧,虚拟机械臂自动执行。
方式 3:真机硬件部署(SO100 / 乐聚机械臂)
采用WebSocket C/S 架构:
- 服务端:
bash run_server.sh(跑 VLA 大模型,GPU 端) - 机械臂客户端:在机械臂控制器运行驱动脚本,自动采集摄像头画面 + 发送指令,接收模型动作控制电机。
四、训练(核心:后训练微调,不用从零预训练,只用少量自有示教数据)
LingBot-VLA不做全参数预训练,官方只开放后训练 (Post-training 微调),150 条演示数据即可适配新任务 / 新机械臂。
步骤 1:采集 & 制作数据集(必须 LeRobot 数据集格式)
两种采集方案:
- 真机示教采集(推荐):手动拖动机械臂复现任务(如夹取、堆叠),相机录画面 + 同步记录关节数据,工具自动打包为 LeRobot 数据集;
- 仿真采集:RoboTwin 仿真内录制轨迹生成数据集。数据集目录示例:
./data/my_task_data/(内含 episode 录像 + 关节 json)
步骤 2:配置机器人 yaml(适配自己机械臂关节维度)
复制模板修改:
bash
cp configs/robot_configs/robotwin.yaml configs/robot_configs/my_arm.yaml修改 yaml:关节数量、观测维度、动作归一化范围(关键!训练前必须算数据均值方差)。
步骤 3:数据集统计归一化(必做,模型读取数据前提)
bash
python tools/compute_norm_stats.py \ --dataset_path ./data/my_task_data \ --robot_cfg configs/robot_configs/my_arm.yaml生成norm_stats.json放到数据集目录。
步骤 4:启动微调训练(单卡 / 多卡 FSDP 分布式)
单卡 4090 训练命令(最常用)
bash
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True bash train.sh tasks/vla/train_lingbotvla.py ./configs/vla/finetune_single.yaml \ --model.model_path ./lingbot-vla-4b \ --model.tokenizer_path ./Qwen2.5-VL-3B-Instruct \ --data.train_path ./data/my_task_data \ --data.robot_config configs/robot_configs/my_arm.yaml \ --train.output_dir ./output/my_finetune_model \ --train.micro_batch_size 2多卡分布式(2/4/8 卡 A6000,FSDP 自动分片)
bash
torchrun --nproc_per_node=4 tasks/vla/train_lingbotvla.py ...(同上参数)出现
Doing Post Training即正式开始微调,训练完权重保存在output/my_finetune_model。
步骤 5:离线评估 & 导出微调后模型
bash
# 离线测试数据集成功率 python eval_vla.py --ckpt ./output/my_finetune_model --eval_data ./data/my_task_data # 导出可用推理权重 python export_ckpt.py --input_ckpt ./output/my_finetune_model --save_dir ./my_final_vla五、常用避坑总结,
- 版本锁死:Python=3.12、CUDA=12.8、Pytorch=2.8,不要混用你之前 labelImg 的 py3.8 环境;
- 显存不足:调小
micro_batch_size=1,开启--train.gradient_checkpointing true; - 动作跑偏:90% 原因是yaml 关节配置错误 / 没做 norm 归一化,重新跑 compute_norm_stats;
- 国内下载慢:全程用 ModelScope 替代 HuggingFace 下载权重。
