本文档面向已经拿到官方 LeHome 比赛镜像、希望尽快开始训练与评测的同学。
重点回答四个问题:
- 当前镜像环境能不能直接用。
- 训练应该下载
merged还是非merged数据。 - 如何用最小代价启动训练、评测、复现实验。
- 训练配置具体怎么写,输出放到哪里。
- 哪些大文件不要提交进教程仓库。
视频教程:LeHome柔性衣物折叠ICRA2026比赛视频教程 http://xhslink.com/o/2oxCz0RTXcA
结论:可用。
已在当前镜像中完成以下验证:
LeHome仓库路径:/root/lehome-challengeisaacsim可用:5.1.0.0lerobot可用:0.4.3- GPU:
NVIDIA L40 - 本地 HEAD:
2953e2f9c1376a1e49ac10b3ad690efb886f4c6c - 当前远端
origin/main:32b53595da504880592a79ed5e362ad0ba0fac6b - 已成功跑通一轮 ACT 评测
- 已成功跑通一轮 DP 评测,并且
--policy_num_inference_steps 1生效 - 旧的失败评测视频已清理,后续统一输出到:
/root/gpufree-data/lehome-outputs/eval/
说明:
- 环境是能启动、能加载模型、能建场景、能完成评测的。
- 当前本地代码不是远端最新。
- 如果大家想严格对齐当前镜像,请先切到:
git checkout 2953e2f9c1376a1e49ac10b3ad690efb886f4c6c- 如果大家想跟远端最新主分支对齐,再切到:
git fetch origin
git checkout 32b53595da504880592a79ed5e362ad0ba0fac6b- 当前复现实验结果与官方复现包描述一致,成功率依旧偏低,这更像是任务本身/物理效果问题,不是镜像起不来。
如果目标是尽快开始基线训练,优先下载:
hf download lehome/dataset_challenge_merged --repo-type dataset --local-dir Datasets/example也就是优先使用 merged 版本。
官方训练配置默认就是 merged 数据:
configs/train_act.yaml使用Datasets/example/top_long_mergedconfigs/train_dp.yaml使用Datasets/example/top_long_mergedconfigs/train_smolvla.yaml使用Datasets/example/top_long_merged
这说明官方预期的训练入口就是“合并后的数据集”。
可以这样理解:
dataset_challenge- 更偏原始/分散的数据组织。
- 适合你自己做数据处理、拆分、增广、补深度、补点云。
- 如果你想研究数据生产流程,或者自己重构训练集,可以用它。
dataset_challenge_merged- 更偏训练直接可用的整理结果。
- 已经按类别合并成
top_long_merged、pant_long_merged这类目录。 - 最适合直接喂给
lerobot-train。
如果你只是先跑通 baseline:
- 先用
merged - 先不用深度
- 先用官方 RGB + joint state 基线
原因:
- 官方文档明确支持
state + RGB作为已验证组合 - 深度虽然可用,但会增加存储、I/O 和配置复杂度
- 官方数据处理文档里还专门给了“去掉 depth 减小存储”的流程
推荐顺序:
- 入门/比赛 baseline:
dataset_challenge_merged - 需要深度实验:在
merged基础上再加observation.top_depth - 需要自己做数据重构:再研究非
merged的dataset_challenge
如果目的是做教学,而不是一上来就冲完整比赛,我建议优先从:
top_short
开始。
这里要说清楚:这是一个工程上的教学选择,不是因为当前复现包里它已经成功率最高。当前复现包里四类历史统计都是 0.0% 成功率,所以不能把“最容易成功”说成已经被现有结果证明。
之所以仍然建议先讲 top_short,是因为它更适合教学起步:
- 相比
top_long,短袖上衣通常少了长袖带来的远端布料耦合 - 相比裤子类,短袖上衣的视觉目标更直观,学习者更容易理解“折叠成功”是什么
- 同样是上衣任务,
top_short通常比top_long更适合作为第一课
因此,本教程采用两层路线:
- 教学路线:先跑
top_short - 比赛路线:再把四类任务全部跑完
git clone https://github.com/lehome-official/lehome-challenge.git
cd lehome-challenge如果镜像已经预装好了,直接进入现成目录即可:
cd /root/lehome-challengehf download lehome/asset_challenge --repo-type dataset --local-dir Assetshf download lehome/dataset_challenge_merged --repo-type dataset --local-dir Datasets/example如果只想快速验证一个类别,也可以只下载需要的子目录,例如:
hf download lehome/dataset_challenge_merged \
--repo-type dataset \
--local-dir Datasets/example \
--include 'top_long_merged/**'如果你准备按本教程完整学习,建议确认四类目录都在:
Datasets/example/top_short_mergedDatasets/example/top_long_mergedDatasets/example/pant_short_mergedDatasets/example/pant_long_merged
这里要明确区分:
- 教学起步:先用
top_short_merged - 完整比赛:四类都要跑
教学流程不是为了第一天就把比赛所有任务跑完,而是为了先让学习者掌握:
- 数据目录怎么选
- 训练怎么起
- 日志怎么看
- 模型保存在哪里
- 评测视频在哪里
所以教学流程先只跑一个类别,推荐 top_short。
比赛流程则不同。比赛流程要求你最终覆盖四类任务:
top_shorttop_longpant_shortpant_long
建议使用教程专用配置,统一把输出保存到数据盘:
- 配置文件:
/root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_act_every_embodied.yaml
mkdir -p /root/gpufree-data/lehome-outputs/train/act_top_short
lerobot-train \
--config_path /root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_act_every_embodied.yaml \
2>&1 | tee /root/gpufree-data/lehome-outputs/train/act_top_short/train.log这条命令做了两件事:
- 用教程专用 YAML 启动训练。
- 用
tee把终端日志同时保存到train.log,方便后面分析 loss 和画图。
对于初学者,建议第一次不要改命令行,而是先读懂 YAML 里每个字段的作用,再只改一两个参数做实验。
这份 YAML 已经是 top_short 教学版,不需要你再手改。
同样建议使用教程专用配置:
- 配置文件:
/root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_dp_every_embodied.yaml
mkdir -p /root/gpufree-data/lehome-outputs/train/dp_top_short
lerobot-train \
--config_path /root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_dp_every_embodied.yaml \
2>&1 | tee /root/gpufree-data/lehome-outputs/train/dp_top_short/train.logDP 相比 ACT 通常更慢、更吃资源,所以教程配置里把:
batch_size设得比 ACT 小steps拉长到90000log_freq调细到100
这样更符合 Diffusion Policy 的常见训练习惯,也更方便观察收敛过程。
这份 YAML 同样已经是 top_short 教学版,不需要手改。
python -m scripts.eval \
--policy_type lerobot \
--policy_path /root/gpufree-data/lehome-outputs/train/act_top_short/checkpoints/last/pretrained_model \
--dataset_root Datasets/example/top_short_merged \
--garment_type top_short \
--num_episodes 2 \
--enable_cameras \
--save_video \
--video_dir /root/gpufree-data/lehome-outputs/eval/act_top_short \
--device cpuCPU 评测时建议显式限制 diffusion 推理步数:
python -m scripts.eval \
--policy_type lerobot \
--policy_path /root/gpufree-data/lehome-outputs/train/dp_top_short/checkpoints/last/pretrained_model \
--dataset_root Datasets/example/top_short_merged \
--garment_type top_short \
--num_episodes 2 \
--enable_cameras \
--save_video \
--video_dir /root/gpufree-data/lehome-outputs/eval/dp_top_short \
--device cpu \
--policy_device cpu \
--policy_num_inference_steps 1因为四类一起做,对第一次上手的人来说会同时叠加:
- 四套数据目录
- 四套模型输出目录
- 四套评测命令
- 更长训练时间
- 更复杂的排障路径
教学最重要的是先把一个完整闭环讲清楚,所以这里先拿 top_short 做第一课。
完整比赛不等于只跑 top_short。完整比赛建议按类别分别完成:
top_shorttop_longpant_shortpant_long
也就是说,你最终应该把“训练 + 评测 + 结果汇总”这套流程复制到四个类别上。
最稳妥、最容易教学的方案是:
- 四类分别训练
- 四类分别评测
- 最后统一汇总
推荐的目录组织:
/root/gpufree-data/lehome-outputs/
├── train/
│ ├── act_top_short/
│ ├── act_top_long/
│ ├── act_pant_short/
│ ├── act_pant_long/
│ ├── dp_top_short/
│ ├── dp_top_long/
│ ├── dp_pant_short/
│ └── dp_pant_long/
├── eval/
└── plots/
你可以把 top_short 的流程看作模板,然后把下面三个量替换掉:
dataset.rootoutput_dirgarment_type
例如:
top_shortdataset.root: Datasets/example/top_short_mergedgarment_type: top_short
top_longdataset.root: Datasets/example/top_long_mergedgarment_type: top_long
pant_shortdataset.root: Datasets/example/pant_short_mergedgarment_type: pant_short
pant_longdataset.root: Datasets/example/pant_long_mergedgarment_type: pant_long
所以教程里最关键的学习点不是死记一个命令,而是学会:
- 哪三个地方一换,就能迁移到另一类任务
当前官方仓库 README 里并没有给出固定的提交通道命令,它写的是:
- 提交说明将在官网提供
所以这里不能伪造一个“官方提交脚本”。但你完全可以把“提交前要准备好的材料”先整理好。
建议至少准备:
- 四类任务各自最终模型
- 四类任务各自评测日志
- 四类任务各自 success rate
- 四类任务各自代表性视频
- 训练配置 YAML
- 对应代码 commit
从教程角度,这一步可以理解成:
- 先把你的“比赛实验包”整理完整
- 等官方提交格式明确后再上传
教程专用配置里,最值得解释的是这些字段:
dataset.root- 训练数据目录。
- 教学第一课默认使用
Datasets/example/top_short_merged。 - 这样设计的原因是官方基线配置本身就是指向
*_merged,初学者不需要先理解多数据集合并逻辑,也能直接开练。
policy.typeact或diffusion。- ACT 是更推荐的第一站,因为训练逻辑更直观,速度通常也更快。
- Diffusion Policy 更适合在你已经跑通 ACT baseline 后再继续比较。
policy.device- 训练建议
cuda。 - 因为图像编码器和策略网络都比较重,CPU 训练几乎没有效率。
- 训练建议
input_features- baseline 推荐
observation.state + top/left/right RGB。 - 这是一个工程上很稳妥的起点。
state提供机械臂关节信息,RGB 提供布料形态和位姿信息。- 对学习者来说,这个组合也最容易理解:一部分是“机器人自己当前姿态”,一部分是“摄像头看到的场景”。
- baseline 推荐
output_features- baseline 推荐输出
action。 - 也就是直接预测关节动作。
- 这种 joint-space control 比
ee_pose更适合作为教学 baseline,因为它少了一层 IK 误差。
- baseline 推荐输出
output_dir- 已改到数据盘,例如
/root/gpufree-data/lehome-outputs/train/act_top_short。 - 这样做是为了避免把系统盘写满。
- 已改到数据盘,例如
batch_size- 和显存直接相关。
- ACT 教学版当前默认
64,DP 教学版当前默认48。 - 对初学者可以简单理解为:一次喂给模型多少条训练样本。
- 越大通常训练越快,但显存占用也越高。
steps- 总训练步数。
- ACT 可先跑
30000,DP 建议更长,教程配置里给到90000。 - 训练步数不是“越大越好”,而是“足够看到收敛趋势”。
- 教学上先用一个可跑完、可观察的步数更重要。
save_freq- checkpoint 保存间隔。
- 教程里调高了保存频率,便于中间结果回看。
- 这对教学尤其重要,因为你可以比较不同阶段 checkpoint 的效果,而不是只看最后一个模型。
log_freq- 日志打印频率。
- 教程里调高到更细,方便后续画图和排障。
- 对学习者来说,训练日志就是最直观的“训练过程观察窗口”。
eval_freq- 训练中的阶段性评估间隔。
- 便于观察并不是只有 loss 在变化。
- 如果一个模型 loss 在下降,但 eval success rate 不涨,这通常意味着“学到了训练分布内拟合”,但未必真正学会了任务。
这是很多学习者第一次会问的问题。
ACT 可以先理解成“基于视觉和状态做动作序列预测”的 transformer 类策略。
在本教程里,我们给 ACT 这样一组更激进、接近 L40 利用上限的参数:
batch_size: 64steps: 30000save_freq: 5000log_freq: 200eval_freq: 5000
这样设计的目的:
- 比较容易在单卡上跑起来
- 日志足够细,便于教学观察
- 每隔
5000step 就能拿到一个 checkpoint - 总步数
30000足够看到一个 baseline 的基本收敛趋势
Diffusion Policy 的推理和训练都更重,尤其在多相机输入下更明显。
教程配置里我们给了:
batch_size: 48steps: 90000save_freq: 10000log_freq: 100eval_freq: 10000
这样设计的目的:
- 降低显存压力
- 延长训练步数,给 diffusion 模型足够的收敛空间
- 用更细的日志频率观察 loss 和 gradient norm
所以不要机械地认为“ACT 和 DP 的参数应该一样”。不同策略结构,本来就应该有不同的训练节奏。
这里给的是经验预估,不是绝对值。
在当前这类 top_short_merged + state + 3路RGB 配置下,可以先这样估算:
- 推荐显存:至少
16GB,更稳妥是24GB+ - 在 L40 这类卡上通常可以单卡训练
30000 step一般是“小时级”任务,不是分钟级- 如果日志里
data_s和updt_s都不大,通常几个小时内能看到完整 baseline 结果
- 推荐显存:
24GB+更稳 90000 step通常明显比 ACT 更久- 更适合作为过夜训练任务
学习者应该关心的是:
- 有没有 OOM
- 每 step 花多久
- loss 是否稳定下降
- 中间 checkpoint 的 eval 是否真的变好
不要一上来纠结“到底 3 小时还是 5 小时”,先看自己机器日志里的:
updt_sdata_sstep_per_sec
这些值才是真正决定训练时间的依据。
推荐按下面顺序学:
- 先训练 ACT,不要先上 DP。
- 不要先加 depth。
- 不要先改成
ee_pose。 - 先跑通一个类别,比如
top_short_merged。 - 先观察 loss、grad norm、lr 和中间 eval。
- 确认 pipeline 稳定以后,再扩大到更多类别。
建议至少保留这些:
train.log- 所有 checkpoint
config.yaml或训练配置副本- 训练曲线图
- 训练指标 CSV / JSON 摘要
- 若有阶段性 eval,也保留对应日志和视频
对于教学用途,还建议加上:
- 一张训练曲线截图
- 一份“最佳 checkpoint”和“最后 checkpoint”的对比结论
- 一份训练耗时记录
- 一份显存占用记录
建议统一放到:
/root/gpufree-data/lehome-outputs/
├── train/
├── eval/
└── plots/
教程已附带一个脚本:
/root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/scripts/plot_train_metrics.py
它会从 train.log 中解析并生成:
train_metrics.csvtrain_metrics_summary.jsontrain_metrics.png
示例:
python /root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/scripts/plot_train_metrics.py \
--log_file /root/gpufree-data/lehome-outputs/train/act_top_short/train.log \
--out_dir /root/gpufree-data/lehome-outputs/plots/act_top_short \
--title "ACT Top-Short Training Metrics"当前脚本默认记录这些指标:
lossgrdn,也就是 gradient normlrupdt_sdata_sstep_per_sec
这些指标的教学意义分别是:
loss- 最基础的优化目标,先看是否整体下降。
grdn- 用来看梯度是否爆炸或异常不稳定。
lr- 用来看学习率调度是否正常。
updt_s- 单步参数更新耗时。
data_s- 单步数据加载耗时。
step_per_sec- 训练吞吐量的直观指标。
如果站在 ACT / Diffusion Policy 论文复现和工程训练角度,除了 loss,还建议尽量记录:
- 训练 loss
- 验证 loss
- gradient norm
- learning rate
- data loading time
- update time
- steps/sec 或 samples/sec
- checkpoint 对应的阶段性 eval 成功率
- 平均回报
return - episode length
- 不同 garment/category 的 success rate
真正和比赛结果最相关的,不是单独看 loss,而是:
loss是否稳定下降gradient norm是否异常爆炸lr调度是否正常- 中间 checkpoint 的
eval success rate是否同步提升
训练完成后,通常最值得关注的是这些内容:
train.log- 原始训练日志
checkpoints/- 每个阶段保存下来的模型
last/- 最后一次训练状态
pretrained_model/- 用于评测和部署的模型目录
- 你自己生成的:
train_metrics.csvtrain_metrics_summary.jsontrain_metrics.png
从教学角度,建议把这些文件分成两类理解:
- checkpoint
- last
- pretrained_model
这些是“模型本身”。
- train.log
- 指标 CSV/JSON
- 曲线图
- 中间 eval 结果
这些是“为什么我们认为这个模型训练正常”的证据。
教学里两类都要保留,不能只保留模型文件。
如果后续你要再往上加,我建议优先补:
- 每个 checkpoint 自动 eval
- 每个类别的 success rate 曲线
- best checkpoint 自动挑选
为了避免教程只停留在“命令应该能跑”,这里保留本机已经真实跑过的最小训练证据。
- 训练日志:
/root/gpufree-data/lehome-outputs/train/act_top_short_probe64.log
- checkpoint 输出:
/root/gpufree-data/lehome-outputs/train/act_top_short_probe64/checkpoints/000008/pretrained_model
- 曲线图:
/root/gpufree-data/lehome-outputs/plots/act_top_short_probe64/train_metrics.png
- 指标摘要:
/root/gpufree-data/lehome-outputs/plots/act_top_short_probe64/train_metrics_summary.json
本次 smoke 的关键信息:
- 数据:
top_short_merged - 有效 batch size:
64 - 参数量:约
52M - 已跑到 step
8 - loss 从
57.147降到22.134 - 平均
updt_s约1.77s - 平均
data_s约0.60s
这说明当前教程默认的 ACT 教学配置至少能在本机 L40 上稳定起跑,不需要用户再手工改 YAML 才能启动。
- 训练日志:
/root/gpufree-data/lehome-outputs/train/dp_top_short_probe48.log
- checkpoint 输出:
/root/gpufree-data/lehome-outputs/train/dp_top_short_probe48/checkpoints/000008/pretrained_model
- 曲线图:
/root/gpufree-data/lehome-outputs/plots/dp_top_short_probe48/train_metrics.png
- 指标摘要:
/root/gpufree-data/lehome-outputs/plots/dp_top_short_probe48/train_metrics_summary.json
本次 smoke 的关键信息:
- 数据:
top_short_merged - 有效 batch size:
48 - 参数量:约
271M - 已跑到 step
8 - loss 从
1.119降到1.097 - 平均
updt_s约0.94s - 平均
data_s约0.79s
这说明 DP 教学版配置也已经在本机验证过能稳定启动,并且能正常写出 checkpoint 和训练曲线。
这些结果不是正式比赛成绩,也不是完整收敛实验。它们的作用是:
- 证明命令、配置、输出路径已经打通
- 证明当前镜像里
top_short教学版配置可以直接启动 - 证明教程附带的画图脚本可以直接消费真实日志
正式比赛训练时,仍然建议按完整步数继续跑:
- ACT:
30000steps - DP:
90000steps
如果你想进一步吃满 L40 的 40G 显存,最稳妥的方法不是盲目加步数,而是优先继续试探:
- ACT 再增大
batch_size - DP 再增大
batch_size - 或者开启更多周期性的中间 eval
但教学版文档默认保留当前已经验证过的安全起点,这样读者第一次运行更稳。
除了训练 smoke 之外,本机还实际把 top_short 的首个 smoke 评测 episode 视频导出来了,位置如下:
- ACT:
/root/gpufree-data/lehome-outputs/eval/act_top_short_smoke/failure/episode0_observation_images_top_rgb.mp4/root/gpufree-data/lehome-outputs/eval/act_top_short_smoke/failure/episode0_observation_images_left_rgb.mp4/root/gpufree-data/lehome-outputs/eval/act_top_short_smoke/failure/episode0_observation_images_right_rgb.mp4
- DP:
/root/gpufree-data/lehome-outputs/eval/dp_top_short_smoke/failure/episode0_observation_images_top_rgb.mp4/root/gpufree-data/lehome-outputs/eval/dp_top_short_smoke/failure/episode0_observation_images_left_rgb.mp4/root/gpufree-data/lehome-outputs/eval/dp_top_short_smoke/failure/episode0_observation_images_right_rgb.mp4
当前 smoke 评测里,DP 已确认至少完成了首个 episode 并写出日志:
Return=102.25Length=600Success=False
这里保留的是“教学样例输出”,不是完整比赛统计。因为官方 category eval 会继续遍历该类别下的 garment 列表,做教程时通常先保留首个 episode 的真实样例就够用了。
如果目标从“先学会跑通”切到“做一个更像比赛提交的基线”,建议不要继续只盯 top_short。更合理的做法是直接切到:
- 数据:
four_types_merged - 模型:ACT
- 设备:单卡
L40
这里先把边界讲清楚:这不等于“保证前三名”。比赛排名最终取决于数据、策略结构、评测细节和训练时间,不能在教程里伪造承诺。但它确实比教学 smoke 更接近一个可拿去继续打榜的起点。
原因很实际:
- ACT 在这套数据上更容易先把长训稳定跑起来
- 单卡 L40 下,ACT 更容易控制 batch size 和训练节奏
- 如果要在一小时内把显卡稳定吃满并启动一个长期实验,ACT 的工程风险更低
所以本教程把“比赛强化版第一枪”定为:
four_types_merged + ACT + batch_size 64 + 50000 steps
对应配置文件:
/root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_act_competition_l40.yaml
我在本机对四类联合训练做了三档上探:
batch_size=96:OOMbatch_size=88:OOMbatch_size=80:OOM
最后落回 batch_size=64,这是为了保证:
- 能稳定启动长训
- 不在前几步直接炸掉
- 还能维持很高的 GPU 占用
也就是说,这里追求的是“稳定跑完整个长训”的最强可用点,而不是只追第一步把显存堆满。
当前本机已经启动:
- 训练日志:
/root/gpufree-data/lehome-outputs/train/act_four_types_l40.log
- GPU 采样:
/root/gpufree-data/lehome-outputs/monitor/act_four_types_l40_gpu.csv
- 训练曲线图:
/root/gpufree-data/lehome-outputs/plots/act_four_types_l40_live/train_metrics.png
- GPU 曲线图:
/root/gpufree-data/lehome-outputs/plots/act_four_types_l40_live/gpu_metrics.png
训练命令等价于:
cd /root/lehome-challenge
source .venv/bin/activate
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
lerobot-train \
--config_path /root/gpufree-data/every-embodied/15-Challenge竞赛/LeHome/resources/configs/train_act_competition_l40.yaml \
2>&1 | tee /root/gpufree-data/lehome-outputs/train/act_four_types_l40.log长训刚起步时,本机已经出现下面这些变化:
- step
50:loss12.334 - step
100:loss3.554 - step
150:loss2.940
这说明至少在训练早期,loss 下降是明显的,不是卡死或者纯噪声震荡。
GPU 采样也已经表明这轮长训确实把 L40 吃得很满:
- 显存占用:约
45.1 GiB / 46.1 GiB - GPU Utilization:长期接近
100% - 功耗:大约
280W到300W
从工程角度,这说明当前这份配置已经达到了“稳定且接近吃满单卡”的目标。
下面两张图就是更适合放进教程正文的版本,标题全部用英文,方便读者直接看图学判断。
训练曲线:
GPU 曲线:
这里故意没有写成无限拉长,原因是:
- 比赛训练不是“越久越一定更好”
- 在很多视觉策略里,前中期下降最快,后期会进入边际收益变小的区间
- 对教程和服务器资源来说,
50000已经属于“足够长、能看到明显趋势、但还算折中”的范围
所以这份配置更适合作为:
- 第一轮正式 baseline
- 第一轮打榜前的主实验
- 后续再决定是否延长到
70000或90000的参考起点
如果长训到中后期发现:
- loss 已明显平台化
- 中间 checkpoint 的 eval success rate 不再涨
那就不一定值得无限继续烧卡。
建议先从下面这套开始:
- policy:
ACT - 输入:
observation.state + top/left/right RGB - 输出:
action - device: 训练时用
cuda - 评测时 env 用
cpu
- 深度会增大数据量和训练复杂度
- baseline 先跑通更重要
- 官方文档明确说
state + RGB已验证可用 - 如果要加 depth,建议在 baseline 收敛后做对照实验
不建议作为首选。
官方文档也明确提醒:
observation.ee_poseaction.ee_pose
由于 IK 和硬件限制,稳定性不如 joint-space control。比赛 baseline 更建议用:
observation.stateaction
如果你要把这个教程整理进自己的大仓库,只建议保留这些轻量内容:
- 教程文档
- 训练配置样例
- 评测命令
- 少量日志片段
- 少量截图或短视频链接
- 必要的 patch / overlay 说明
不建议提交这些大资源:
Assets/Datasets/outputs/logs/models/videos/plots/.cache/- 任何大于几十 MB 的权重和素材
原因很简单:这些内容都应该通过下载命令获取,不应该进教程子仓库。
如果只是教程清理,之前那批 0% 成功率的失败视频可以删除。
当前需要删除的目录是:
/root/gpufree-data/lehome-eval-outputs/
后续统一改用:
/root/gpufree-data/lehome-outputs/eval/
建议在 every-embodied 中新增如下结构:
15-Challenge竞赛/
└── LeHome/
├── README.md
├── .gitignore
└── resources/
├── commands.md
├── configs/
└── scripts/
如果后续你还会增加其他比赛,也可以沿用同样的结构。
nvidia-smipython - <<'PY'
import isaacsim, lerobot
print("isaacsim ok")
print("lerobot", getattr(lerobot, "__version__", "unknown"))
PYls Assets
ls Datasets/examplecat Assets/objects/Challenge_Garment/Release/Release_test_list.txt如果你要宣传这个镜像,建议在说明里强调:
- 已预装官方 LeHome 环境
- 已验证可跑通训练与评测
- 建议首次使用时下载
asset_challenge+dataset_challenge_merged - 已适配
L40/ 服务器场景 - 提供 ACT/DP baseline 启动命令
- 默认不把比赛大资源打进教程仓库
可直接对外描述为:
一个面向 LeHome Challenge 的开箱即用镜像,预装 Isaac Sim / LeRobot / LeHome 运行环境,提供训练、评测、数据下载和问题复现的最小闭环。
本地已经验证:
- ACT 单 garment 评测可跑通,结果
Success Rate = 0.00% - DP 单 garment 评测可跑通,且
policy_num_inference_steps=1能生效 - 评测视频可以成功导出
这说明:
- 镜像可用
- 训练/评测链路可用
- 教程可以基于这套镜像直接编写和发布
安装图片和视频查看器
sudo apt install celluloid
sudo apt install viewnior
# 将常见图片格式的默认打开程序设为 Viewnior
xdg-mime default viewnior.desktop image/jpeg image/png image/gif image/bmp image/webp

