expolrer/lerobot_vlahost_force

支持力反馈信息的天机双/单臂仓库

1

stars

9

commits

Python

primary language

Aug 26, 2026

updated

README

lerobot_vlahost_force:四模型统一训练与部署

English

main 分支同时包含四套面向 Marvin 双臂机器人的力反馈模型,可在同一个仓库中直接选择环境、数据、训练和 部署流程。原 main 中的 Force-conditioned ACT 独立版本已移至 fcact 分支。

支持的模型

选择模型名Policy 类型工作区Conda 环境
1Force-conditioned ACTactworkspaces/fcactlerobot_vlahost_fcact
2Reactive Diffusion Policyrdpworkspaces/rdplerobot_vlahost_rdp
3ImplicitRDPimplicitrdpworkspaces/irdplerobot_vlahost_implicitrdp
4ForceVLAforcevlaworkspaces/fvlalerobot_vlahost_forcevla

四个模型都读取 RGB、observation.state[16] 和由 m_FB_Joint_SToq 转换得到的 observation.effort[14],并输出 action[16] 关节位置目标。Policy 不向 Marvin 发送力矩动作。

数据契约

LeRobot 字段固定语义类型与形状
observation.state左臂 7 + 右臂 7 + 左夹爪 + 右夹爪位置float32[16]
observation.velocity与 state 相同顺序的速度float32[16]
observation.effortm_FB_Joint_SToq:左臂 7 + 右臂 7 反馈关节扭矩float32[14]
action左臂 7 + 右臂 7 + 左夹爪 + 右夹爪目标位置float32[16]
observation.images.top顶部 RGBvideo[480,640,3]
observation.images.wrist_L左腕 RGBvideo[480,640,3]
observation.images.wrist_R右腕 RGBvideo[480,640,3]

训练预检会验证 dtype、shape、关节 names/order、有限值和 episode 连续性。任意 float32[14] 数据不能在 没有语义映射的情况下直接替代 Marvin effort。

安装仓库

git clone --branch main --single-branch git@github.com:expolrer/lerobot_vlahost_force.git
cd lerobot_vlahost_force
chmod +x run.sh workspaces/*/run.sh workspaces/*/scripts/*.sh workspaces/*/scripts/*.py scripts/*.py

需要 Ubuntu 22.04、NVIDIA/CUDA GPU 和 Conda。真机部署还需要已编译的 Marvin ROS2 工作区、三路相机及 VLAHost HTTP 服务。

统一入口:

./run.sh env       选择并安装模型环境
./run.sh data      转换/审查模型使用的数据
./run.sh train     选择模型和对应训练 YAML
./run.sh deploy    根据统一部署 YAML 选择模型和权重

阶段一:交互式一键安装环境

运行:

./run.sh env

脚本显示:

1) Force-conditioned ACT (FCACT)
2) Reactive Diffusion Policy (RDP)
3) ImplicitRDP
4) ForceVLA

输入 1234 后,脚本读取该模型的 config/environment.yaml,创建独立 Conda 环境,以 editable 方式安装当前 main,并只安装对应模型需要的依赖。安装结束后会自动执行 Policy 导入和环境检测。

无人值守时可直接指定模型:

./run.sh env --model fcact
./run.sh env --model rdp
./run.sh env --model implicitrdp
./run.sh env --model forcevla

阶段二:数据转换与审查

指定模型后,统一入口会进入对应环境并使用该工作区的 data.yaml

./run.sh data --model fcact
./run.sh data --model rdp
./run.sh data --model implicitrdp
./run.sh data --model forcevla

默认只审查 /home/zzx23457/Data/lerobot/zadai_200_with_effort。转换新 rosbag 时修改对应工作区的 config/data.yaml,设置 conversion.enabled: true、输入目录和输出目录。同一命令会完成 rosbag 检查、 velocity/effort 转换、可选 merge、严格数据审查和曲线生成。

可在不修改默认文件的情况下指定另一份配置:

./run.sh data --model rdp --config /绝对路径/其他_data.yaml

第 0 个 episode 的曲线:

左臂 7 通道右臂 7 通道
第 0 个 episode 左臂力反馈第 0 个 episode 右臂力反馈

第 0 个 episode 双臂力反馈

阶段三:按模型一键训练

统一训练入口会自动执行以下检查:

  1. 对应 Conda 环境是否存在;
  2. 当前 main 中对应 Policy 类能否导入;
  3. YAML 是否可解析且 policy.type 与所选模型一致;
  4. Marvin 数据字段、维度和通道顺序是否符合契约。

四个模型的默认训练命令:

./run.sh train --model fcact
./run.sh train --model rdp
./run.sh train --model implicitrdp
./run.sh train --model forcevla

只检查环境、数据和最终命令,不启动训练:

./run.sh train --model rdp --dry-run

默认 YAML 映射:

模型训练配置
FCACTworkspaces/fcact/config/train.yaml
RDPworkspaces/rdp/config/train.yaml
ImplicitRDPworkspaces/irdp/config/train.yaml
ForceVLAworkspaces/fvla/config/train.yaml

也可以直接指向自定义参数文件:

./run.sh train --model forcevla --config /绝对路径/forcevla_experiment.yaml

如果 YAML 中声明了另一个模型的 policy.type,环境检测会在训练开始前拒绝运行。

阶段四:按 YAML 选择模型和权重部署

统一部署配置为 config/deploy.yaml

model_name: fcact
weight_path: ${repo_root}/outputs/train/force_act_zadai_200/checkpoints/last/pretrained_model

model_name 可设置为 fcactrdpimplicitrdpforcevlaweight_path 设置为该模型的 pretrained_model 目录。例如部署 RDP:

model_name: rdp
weight_path: ${repo_root}/outputs/train/rdp_diffusion_zadai_200/checkpoints/last/pretrained_model

先做不连接机器人的完整选择、环境和配置预检:

./run.sh deploy --dry-run

入口会自动选择对应 Conda 环境、Policy、工作区 deploy_stage.yaml 和机器人配置,再把 YAML 中的 weight_path 注入临时配置。临时文件在运行结束后自动删除,不修改模型的默认 YAML。

真机服务可以由各工作区 deploy_stage.yamlservices.manage: true 自动启动。保持 false 时,在两个 终端启动:

cd /home/zzx23457/ws_apex
source install/setup.bash
ros2 launch node_manager bringup_all_dm_m696.launch.py
cd /home/zzx23457/ws_apex
source install/setup.bash
ros2 launch vlahost vlahost_server.launch.py

rqt 依次调用 /tj/control/set_ready;把 /tj/control/set_mode 设置为 data: 3;把 /tj/control/set_input 设置为 data: 1。确认 joint_states.efforts[14] 有效后正式运行:

./run.sh deploy

部署前应停止其他 rollout,把机器人置于无碰撞且可急停的位置。effort 缺失、非 14 维或含 NaN/Inf 时, 部署会在发送动作前退出。

各模型独立文档

四个工作区仍可单独使用自己的 run.sh;main 根目录的 run.sh 是推荐的统一入口。

Contributors

expolrer

9 commits

expolrer/lerobot_vlahost_force

支持力反馈信息的天机双/单臂仓库

1

stars

9

commits

Python

primary language

Aug 26, 2026

updated

README

lerobot_vlahost_force:四模型统一训练与部署

English

main 分支同时包含四套面向 Marvin 双臂机器人的力反馈模型,可在同一个仓库中直接选择环境、数据、训练和 部署流程。原 main 中的 Force-conditioned ACT 独立版本已移至 fcact 分支。

支持的模型

选择模型名Policy 类型工作区Conda 环境
1Force-conditioned ACTactworkspaces/fcactlerobot_vlahost_fcact
2Reactive Diffusion Policyrdpworkspaces/rdplerobot_vlahost_rdp
3ImplicitRDPimplicitrdpworkspaces/irdplerobot_vlahost_implicitrdp
4ForceVLAforcevlaworkspaces/fvlalerobot_vlahost_forcevla

四个模型都读取 RGB、observation.state[16] 和由 m_FB_Joint_SToq 转换得到的 observation.effort[14],并输出 action[16] 关节位置目标。Policy 不向 Marvin 发送力矩动作。

数据契约

LeRobot 字段固定语义类型与形状
observation.state左臂 7 + 右臂 7 + 左夹爪 + 右夹爪位置float32[16]
observation.velocity与 state 相同顺序的速度float32[16]
observation.effortm_FB_Joint_SToq:左臂 7 + 右臂 7 反馈关节扭矩float32[14]
action左臂 7 + 右臂 7 + 左夹爪 + 右夹爪目标位置float32[16]
observation.images.top顶部 RGBvideo[480,640,3]
observation.images.wrist_L左腕 RGBvideo[480,640,3]
observation.images.wrist_R右腕 RGBvideo[480,640,3]

训练预检会验证 dtype、shape、关节 names/order、有限值和 episode 连续性。任意 float32[14] 数据不能在 没有语义映射的情况下直接替代 Marvin effort。

安装仓库

git clone --branch main --single-branch git@github.com:expolrer/lerobot_vlahost_force.git
cd lerobot_vlahost_force
chmod +x run.sh workspaces/*/run.sh workspaces/*/scripts/*.sh workspaces/*/scripts/*.py scripts/*.py

需要 Ubuntu 22.04、NVIDIA/CUDA GPU 和 Conda。真机部署还需要已编译的 Marvin ROS2 工作区、三路相机及 VLAHost HTTP 服务。

统一入口:

./run.sh env       选择并安装模型环境
./run.sh data      转换/审查模型使用的数据
./run.sh train     选择模型和对应训练 YAML
./run.sh deploy    根据统一部署 YAML 选择模型和权重

阶段一:交互式一键安装环境

运行:

./run.sh env

脚本显示:

1) Force-conditioned ACT (FCACT)
2) Reactive Diffusion Policy (RDP)
3) ImplicitRDP
4) ForceVLA

输入 1234 后,脚本读取该模型的 config/environment.yaml,创建独立 Conda 环境,以 editable 方式安装当前 main,并只安装对应模型需要的依赖。安装结束后会自动执行 Policy 导入和环境检测。

无人值守时可直接指定模型:

./run.sh env --model fcact
./run.sh env --model rdp
./run.sh env --model implicitrdp
./run.sh env --model forcevla

阶段二:数据转换与审查

指定模型后,统一入口会进入对应环境并使用该工作区的 data.yaml

./run.sh data --model fcact
./run.sh data --model rdp
./run.sh data --model implicitrdp
./run.sh data --model forcevla

默认只审查 /home/zzx23457/Data/lerobot/zadai_200_with_effort。转换新 rosbag 时修改对应工作区的 config/data.yaml,设置 conversion.enabled: true、输入目录和输出目录。同一命令会完成 rosbag 检查、 velocity/effort 转换、可选 merge、严格数据审查和曲线生成。

可在不修改默认文件的情况下指定另一份配置:

./run.sh data --model rdp --config /绝对路径/其他_data.yaml

第 0 个 episode 的曲线:

左臂 7 通道右臂 7 通道
第 0 个 episode 左臂力反馈第 0 个 episode 右臂力反馈

第 0 个 episode 双臂力反馈

阶段三:按模型一键训练

统一训练入口会自动执行以下检查:

  1. 对应 Conda 环境是否存在;
  2. 当前 main 中对应 Policy 类能否导入;
  3. YAML 是否可解析且 policy.type 与所选模型一致;
  4. Marvin 数据字段、维度和通道顺序是否符合契约。

四个模型的默认训练命令:

./run.sh train --model fcact
./run.sh train --model rdp
./run.sh train --model implicitrdp
./run.sh train --model forcevla

只检查环境、数据和最终命令,不启动训练:

./run.sh train --model rdp --dry-run

默认 YAML 映射:

模型训练配置
FCACTworkspaces/fcact/config/train.yaml
RDPworkspaces/rdp/config/train.yaml
ImplicitRDPworkspaces/irdp/config/train.yaml
ForceVLAworkspaces/fvla/config/train.yaml

也可以直接指向自定义参数文件:

./run.sh train --model forcevla --config /绝对路径/forcevla_experiment.yaml

如果 YAML 中声明了另一个模型的 policy.type,环境检测会在训练开始前拒绝运行。

阶段四:按 YAML 选择模型和权重部署

统一部署配置为 config/deploy.yaml

model_name: fcact
weight_path: ${repo_root}/outputs/train/force_act_zadai_200/checkpoints/last/pretrained_model

model_name 可设置为 fcactrdpimplicitrdpforcevlaweight_path 设置为该模型的 pretrained_model 目录。例如部署 RDP:

model_name: rdp
weight_path: ${repo_root}/outputs/train/rdp_diffusion_zadai_200/checkpoints/last/pretrained_model

先做不连接机器人的完整选择、环境和配置预检:

./run.sh deploy --dry-run

入口会自动选择对应 Conda 环境、Policy、工作区 deploy_stage.yaml 和机器人配置,再把 YAML 中的 weight_path 注入临时配置。临时文件在运行结束后自动删除,不修改模型的默认 YAML。

真机服务可以由各工作区 deploy_stage.yamlservices.manage: true 自动启动。保持 false 时,在两个 终端启动:

cd /home/zzx23457/ws_apex
source install/setup.bash
ros2 launch node_manager bringup_all_dm_m696.launch.py
cd /home/zzx23457/ws_apex
source install/setup.bash
ros2 launch vlahost vlahost_server.launch.py

rqt 依次调用 /tj/control/set_ready;把 /tj/control/set_mode 设置为 data: 3;把 /tj/control/set_input 设置为 data: 1。确认 joint_states.efforts[14] 有效后正式运行:

./run.sh deploy

部署前应停止其他 rollout,把机器人置于无碰撞且可急停的位置。effort 缺失、非 14 维或含 NaN/Inf 时, 部署会在发送动作前退出。

各模型独立文档

四个工作区仍可单独使用自己的 run.sh;main 根目录的 run.sh 是推荐的统一入口。

Contributors

expolrer

9 commits

Languages

Python

99.1%