跳转至

数据与绘图


Part A:数据记录

实验日志器 (experiment_data_logger)

闭环与手动实验在 Launch 时默认启动结构化日志器 experiment_data_logger.py。该节点持续订阅系统关键话题,并以 JSONL 格式分流写入磁盘。

核心配置定义在 src/on_orbit_apps/config/experiment_logger.yaml

配置项 默认值 说明
log_root /workspace/closed 日志存储根目录
sample_rate 10.0 Hz 定频采样写入频率
planner_command_topic /on_orbit/planner/command 订阅规划指令
mode_state_topic /on_orbit/mode_state 订阅模式状态
reference_topic /on_orbit/reference 订阅参考轨迹
franka_state_topic /franka_state_controller/franka_states 订阅机器人物理状态
supervisor_events_topic /on_orbit_supervisor/debug/events 订阅 Supervisor 事件流

如不需要数据记录,在 Launch 时显式关闭:

roslaunch on_orbit_bringup manual_experiment.launch enable_experiment_logger:=false

日志目录结构

日志按控制策略自动分组存放,每次会话独立建目录并维护 latest 软链接:

/workspace/closed/
├── hqp_se3/
│   ├── latest -> closed_loop_...
│   └── closed_loop_.../
├── imp_decoupled/
│   ├── latest -> closed_loop_...
│   └── closed_loop_.../
└── publication/

单次会话文件说明

文件 内容
metadata.json 会话元信息(启动时间、主机名、模式快照)
events.jsonl 模式切换、planner command、reference 到达等离散事件流
samples.jsonl ModeStateFrankaStatePlannerStatusControllerDebug 的定频采样记录
controller_debug.jsonl 控制器 debug 状态序列
active_reference_pose.jsonl 控制器实际追踪的参考位姿序列
commands/ 原始 PlannerCommand 消息快照存档
references/ 原始 ReferenceTrajectory 消息快照存档
processed/ 后处理产出(对齐 CSV、清洗摘要),由绘图脚本自动生成

ROS 系统日志位于 /workspace/log/ros/

tail -f /workspace/log/ros/latest/*.log

Part B:论文绘图

一键生成

闭环实验结束后执行:

python3 /workspace/src/on_orbit_apps/scripts/plot_experiment_publication.py

脚本自动完成两步操作:

  1. 调用 clean_experiment_series.py 对最新两组实验记录做时间对齐与清洗,产出 processed/cleaned_series_*.csv
  2. /workspace/closed/publication/ 下输出论文风格对比图(PNG + PDF)。

默认输出

文件 内容
fig_error_comparison_motion.png/.pdf 位置跟踪误差 + 姿态轴角误差
fig_force_comparison_motion.png/.pdf Z 轴接触力 + 六维广义力范数

参数自定义

python3 /workspace/src/on_orbit_apps/scripts/plot_experiment_publication.py \
  --align-to execution
python3 /workspace/src/on_orbit_apps/scripts/plot_experiment_publication.py \
  --phase-boundary-s 20 \
  --contact-time-s 27 \
  --time-end-s 40
python3 /workspace/src/on_orbit_apps/scripts/plot_experiment_publication.py \
  --skip-clean
python3 /workspace/src/on_orbit_apps/scripts/plot_experiment_publication.py \
  /workspace/closed/imp_decoupled/latest \
  /workspace/closed/hqp_se3/latest

默认绘图参数

参数 默认值
对齐方式 motion
阶段分界线 20 s
接触时刻线 27 s
绘图时间范围 0 – 40 s