自动驾驶云服务 Octopus
自动驾驶云服务 Octopus
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- API参考
- SDK参考
- 常见问题
- 文档下载
- 通用参考
链接复制成功!
场景挖掘作业(数据标记)
作业输入输出规范
用户完成自定义场景挖掘镜像上传后,在运行作业容器时,Octopus平台会向作业容器中注入以下环境变量:
- rosbag_path: 作为数据源的rosbag存放路径,例如/tmp/data/20220620.bag
- output_dir: 场景挖掘作业运行结果输出目录,例如/tmp/output
用户的作业容器的作用是解析Rosbag,并将场景挖掘结果以csv格式输出到output_dir指定的目录,并以“segments.csv”作为文件名,文件完整路径示例:/tmp/output/segments.csv。
图1 csv文件内容示例

Csv文件表头固定为“tag_name,start,end”,指定该表的四列数据分别为“标签名”、“开始时间戳”、“结束时间戳”。
- tag_name:标签名对应Octopus平台标签管理模块内的标签,没有预先创建的标签会自动创建。
- start,end:开始和结束时间戳指定该打标片段的时间范围。
- folder:目录名指示OpenData数据包内的特定数据目录,对应为某个传感器。如果需要在相同时间片段上对多个传感器打标,需要为每个传感器输出一行打标信息。
输出结果完成后,作业容器需要在output目录创建一个名为“_SUCCESS”的标识文件,用于通知系统作业已完成。如果作业主动捕获到异常并失败退出,可在output目录创建一个名为“_FAILURE”的标识文件,用于通知系统作业已失败。
运行完成并上传的挖掘结果可以在“数据场景”模块进行检索、查看。选中一个场景片段后可以通过“回放”按键跳转到数据包的对应时间点进行回放,长度在10秒到99秒之间的场景片段可以生成仿真场景。选中片段后的预览样本图根据挖掘片段所对应的传感器类型选择相应的传感器样本来进行展示。
示例代码
代码文件命名为ros_hard_mining.py。
作业输入输出规范示例代码如下图所示:
图2 示例代码

构建镜像
Octopus平台依赖算子镜像内的/bin/bash、stdbuf、tee软件,请确保基础镜像内包含上述软件且能通过PATH找到。
- Dockerfile示例。
FROM ros:noetic COPY ros_hard_mining.py /home/main/ # 算法启动示例: # python3 /home/main/ros_hard_mining.py --tags tag1,tag2 --time_range 1673231275000,1673261275000 --sensors camera_encoded_1,pandar --number 10 USER root
- 构建镜像。
docker build -f Dockerfile -t ros-hard-mining:0.1
- 本地调试。
docker run -v ${HOME}/tmp/output:/tmp/output --env output_dir=/tmp/output --env tmp_dir=/tmp/workspace ros-hard-mining:0.1 /bin/sh -c “python3 /home/main/ros_hard_mining.py --tags tag1,tag2 --time_range 1673231275000,1673261275000 --sensors camera_encoded_1,pandar --number 10”
完成后在${HOME}/tmp/output目录查看运行结果文件:
图3 运行结果
父主题: 算子示例