Skip to content

Data Tools

源码路径:modules/data/tools/smart_recorder/

概述

智能录制工具(Smart Recorder),基于可配置的触发器规则,从连续录制的数据中自动提取关键片段(如急刹车、碰撞、紧急模式等事件前后的数据),用于数据回放和问题分析。

核心类

TriggerBase

cpp
class TriggerBase {
 public:
  virtual bool Init(const SmartRecordTrigger& trigger_conf);
  virtual void Pull(const cyber::record::RecordMessage& msg) = 0;
  virtual bool ShouldRestore(const cyber::record::RecordMessage& msg) const = 0;
};

职责:触发器基类,定义消息判断和时间区间记录接口

RecordProcessor

cpp
class RecordProcessor {
 public:
  RecordProcessor(const std::string& source_record_dir,
                  const std::string& restored_output_dir);
  virtual bool Init(const SmartRecordTrigger& trigger_conf);
  virtual bool Process() = 0;
 protected:
  bool ShouldRestore(const cyber::record::RecordMessage& msg) const;
  std::vector<std::unique_ptr<TriggerBase>> triggers_;
  std::unique_ptr<cyber::record::RecordWriter> writer_;
};

职责:录制处理器基类,管理触发器集合并决定哪些消息需要保留

触发器类型

触发器文件触发条件
HardBrakeTriggerhard_brake_trigger.h/cc急刹车事件
BumperCrashTriggerbumper_crash_trigger.h/cc碰撞事件
EmergencyModeTriggeremergency_mode_trigger.h/cc紧急模式切换
DriveEventTriggerdrive_event_trigger.h/cc驾驶事件标记
SwerveTriggerswerve_trigger.h/cc急转向事件
SmallTopicsTriggersmall_topics_trigger.h/cc小话题持续记录
RegularIntervalTriggerregular_interval_trigger.h/cc定时触发

处理器类型

处理器说明
RealtimeRecordProcessor实时录制处理,边录边判断
PostRecordProcessor后处理模式,对已有录制文件提取

调用关系

  • 入口smart_recorder.cc main 函数
  • 依赖:CyberRT RecordReader/RecordWriter

贡献者

页面历史