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/simple

2、魔搭一键下载(推荐)

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 架构

  1. 服务端:bash run_server.sh(跑 VLA 大模型,GPU 端)
  2. 机械臂客户端:在机械臂控制器运行驱动脚本,自动采集摄像头画面 + 发送指令,接收模型动作控制电机。

四、训练(核心:后训练微调,不用从零预训练,只用少量自有示教数据)

LingBot-VLA不做全参数预训练 ,官方只开放后训练 (Post-training 微调),150 条演示数据即可适配新任务 / 新机械臂。

步骤 1:采集 & 制作数据集(必须 LeRobot 数据集格式)

两种采集方案:

  1. 真机示教采集(推荐):手动拖动机械臂复现任务(如夹取、堆叠),相机录画面 + 同步记录关节数据,工具自动打包为 LeRobot 数据集;
  2. 仿真采集 :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

五、常用避坑总结,

  1. 版本锁死:Python=3.12、CUDA=12.8、Pytorch=2.8,不要混用你之前 labelImg 的 py3.8 环境;
  2. 显存不足 :调小micro_batch_size=1,开启--train.gradient_checkpointing true
  3. 动作跑偏 :90% 原因是yaml 关节配置错误 / 没做 norm 归一化,重新跑 compute_norm_stats;
  4. 国内下载慢:全程用 ModelScope 替代 HuggingFace 下载权重。
相关推荐
薇茗1 小时前
【C++】 类与对象 基础篇
开发语言·c++·基础语法·类与对象
晚笙coding1 小时前
从零讲透 LangChain 输出格式化:让模型真的“能用”
java·开发语言·langchain
奋斗的小方1 小时前
Java进阶篇1-1:异常
java·开发语言·python
颜酱1 小时前
LangChain 调大模型:模板拼接 + invoke / stream / batch
python·langchain
ice8130331811 小时前
【Python】调用opencv识别图片人脸位置
人工智能·python·opencv
A_humble_scholar1 小时前
Linux(三)深入理解 Makefile:自动变量、增量编译原理与文件时间属性
linux·服务器·c++·makefile
sycmancia1 小时前
Qt——多页面切换组件
开发语言·qt
思麟呀1 小时前
C++11并发编程:条件变量
java·linux·jvm·c++·windows
江湖有缘1 小时前
Docker部署Beaver Habit Tracker习惯追踪应用
运维·docker·容器