用途
CloudRobo 数据管线编排技能用于帮助用户根据自然语言需求创建或修订自定义 CloudRobo 数据管线,生成经过校验的 pipeline.yaml 草稿。它面向需要组合并运行算子工作流的场景,支持内置仿真/遥操数据处理模板,也支持完全由预置算子、工作区算法或两者混合构成的自定义工作流。
主要能力
- 内置管线模板:仅当用户明确要求使用内置 sim/teleop 模板时,加载 templates/sim-teleop-cleaning.yaml,按 Stage 0→5 执行:解析 → 上传/注册 → 转换 → 清洗 → 评估 → 输出。
- 引导式自定义创建/修订:收集用户选择 → 校验 → 导出 YAML、可编辑草稿和预览;仅在用户要求时执行。
- 执行自定义管线:用户提供 pipeline.yaml 时,解析并执行其声明的算子 DAG。
- 复用已有数据:用户已有处理后数据时,验证输入后仅执行所选步骤。
- 打开监控:直接打开已有真实运行或持久化运行列表,不创建管线,也不进入演示模式访谈。
- 数据上传路由:管线内的本地数据上传/导入通过资产中心技能(huawei-cloud-cloudrobo-asset)完成,使用 cloudrobo asset CLI 命令。
使用方式
执行模式
| 模式 | 用户意图示例 | 阶段 |
|---|---|---|
| 内置管线 | “用遥操/仿真数据处理模板” | Stage 0→5(加载 sim-teleop-cleaning.yaml 模板) |
| 引导式自定义创建/修订 | “引导我创建自定义管线” / “清洗后加一步,不执行” | 收集选择 → 校验 → 导出 YAML + 可编辑草稿 + 预览;仅在要求时执行 |
| 自定义管线 | 用户提供 pipeline.yaml | 解析并执行其声明的算子 DAG |
| 复用已有数据 | “我已有处理后的数据,接两个空间算法” | 验证输入,然后仅执行所选步骤 |
| 打开监控 | “打开监控网站” / “查看当前管线监控” | 直接打开已有真实运行或持久化运行列表 |
数据上传
本地目录使用 cloudrobo asset import-asset --local-path ...,同时完成资产/版本创建和 OBS 上传。已有 obs:// 源使用资产注册流程,不要再次上传或将 OBS URL 作为 --local-path 传入。已有资产/版本则验证并复用。导入后记录实际资产/版本 ID,使用 show-version 验证其 URL 和就绪状态,然后在导入前初始化的同一运行上使用 record-inputs。
跳过阶段输入要求
恢复内置模板时:
- Stage 3(清洗):需提供转换输出的 target_path、target_asset_id、target_version_id、资产名称。
- Stage 4(评估):需提供清洗输出的 target_path、target_asset_id、target_version_id、资产名称;若算子声明且所选指标需要,可选配置挂载。
缺失必需交接值时询问用户。缺失版本或资产名称可通过 cloudrobo asset list-versions --asset-id <id> --sort-key created_at --sort-dir desc --limit 1 和 cloudrobo asset show-asset --asset-id <id> 解析,并与用户确认。
数据流契约
内置模板的编号交接:
- Stage 0 → 1:source_type、obs_path / local_path / asset_id+version_id、data_source_type、robot_type
- Stage 1 → 2:dataset_asset_id、dataset_version_id、数据集名称、数据集 OBS 路径(来自 show-version)
- Stage 2 → 3:转换 target_path、target_asset_id、target_version_id、<conversion output_name> → 清洗 dataset_configs
- Stage 3 → 4:清洗 target_path、target_asset_id、target_version_id、<cleaning output_name> → 评估顶层字段 + 单项 dataset_configs(含 version_id);可选输入配置挂载
- Stage 4 → 5:每个成员的评估 task_id / status / target_report_path 和报告链接;TrainingReady 路径 = 清洗 target_path
自定义工作流中,每个声明的 proc 输入作为有序 dataset_configs 条目,每个 eval 输入作为匹配的顶层 dataset 字段加一个 dataset_configs 条目,最终数据取自 pipeline.output.from_stage。
前置条件
本地编写仅需 Python 3.9+,无需云认证或可用算子即可保存明确标记的草稿。以下前置条件适用于解析真实平台元数据或执行管线时:
- 安装 cloudrobo CLI 并通过
cloudrobo config set ak <ak> sk <sk>或 HUAWEI_CLOUD_AK / HUAWEI_CLOUD_SK 认证 - 通过
cloudrobo workspace use --workspace-id <id>设置 workspace_id(或向 create-task 传递 --workspace-id) - 原始数据可用:本地目录、已注册资产或 OBS 路径
- 具有可用于数据处理任务的配额资源池
- 所需算子已在当前区域/市场发布
- 具备资产、数据集 proc/eval 和 OBS 操作的 IAM 权限
执行环境预检
在首个本地脚本前,识别实际 shell(Git Bash、PowerShell 或其他),选择可用的 Python 解释器并验证其确实运行 Python 3.9+。接受 Miniconda 的 python;不要假设 python3 或 py -3 存在。后续脚本复用已验证的解释器。
在解析真实执行计划前,运行 cloudrobo config get region;这读取本地配置,不是实时区域证明。将预期区域与可用工作区/端点信息交叉核对,包括显式内网端点覆盖。若命令不可用、值缺失或来源冲突,在真实执行前询问用户;绝不从 SWR 镜像 URL 推断任务区域或静默更改配置。
适用场景
- 使用内置仿真/遥操数据处理模板处理数据
- 通过自然语言引导创建或修订自定义数据管线
- 执行用户提供的 pipeline.yaml
- 复用已有处理后数据并接续算子
- 打开本地 Web 监控页面查看运行状态
- 处理跳过阶段请求(仅做技术兼容性验证)
限制
- 转换阶段不可跳过:原始 H5/ROS2/UMI 数据必须转换为 LeRobotV3,因为预置清洗/评估算子要求 LeRobotV3 输入。
- 清洗/评估阶段在下游兼容时可跳过。
- 多输入合并阶段、已提交任务、下游已提交/完成的任务不符合跳过条件。
- 本地草稿的有效性不验证实时算子。
- 创建本地文件是请求的动作,无需额外审批门;仅创建请求不授权云提交、资产注册、版本发布或初始化已确认的 Web 运行。
- 若独立环境中未安装配套技能,继续使用相同的资产 CLI 工作流并报告该限制;单独的 OBS 工具不是前置条件。
- 并发版本冲突时,resolve-skip 报“状态版本已更改”属预期,刷新状态后重试。
- 打开监控不需要创建管线、确认执行计划、初始化示例运行记录,也不需要云凭证即可查看空列表。
- 仅当用户明确要求演示、模拟数据或离线网站体验时才使用 --demo。