Skip to content

Routing Tools

源码路径:modules/routing/tools/

概述

提供两个命令行调试工具:routing_dump 用于从 Planning 轨迹中提取并保存路由信息,routing_cast 用于将保存的路由响应重新发布到 CyberRT 通道。

routing_dump

源文件:routing_dump.cc

功能:订阅 Planning 轨迹话题,当轨迹中包含路由调试数据时,将其导出为 protobuf 文本文件后退出。

cpp
void MessageCallback(
    const std::shared_ptr<apollo::planning::ADCTrajectory>& trajectory) {
  if (trajectory->debug().planning_data().has_routing()) {
    std::ofstream dump_file(FLAGS_routing_dump_file);
    dump_file << trajectory->debug().planning_data().routing().DebugString();
    dump_file.close();
    exit(0);
  }
}

参数

参数默认值说明
--routing_dump_file/tmp/routing.pb.txt输出文件路径

routing_cast

源文件:routing_cast.cc

功能:从文件加载 RoutingResponse protobuf,以 1Hz 频率持续发布到 /apollo/raw_routing_response 通道,用于离线回放或调试。

cpp
int main(int argc, char *argv[]) {
  apollo::routing::RoutingResponse routing_response;
  apollo::cyber::common::GetProtoFromFile(FLAGS_routing_dump_file,
                                          &routing_response);
  auto cast_writer = cast_node->CreateWriter<apollo::routing::RoutingResponse>(
      "/apollo/raw_routing_response");
  Rate rate(1.0);
  while (apollo::cyber::OK()) {
    cast_writer->Write(routing_response);
    rate.Sleep();
  }
}

参数

参数默认值说明
--routing_dump_file/tmp/routing.pb.txt输入文件路径

典型用法

bash
# 1. 先抓取当前路由数据
./routing_dump --routing_dump_file=/tmp/routing.pb.txt

# 2. 修改后重新发布
./routing_cast --routing_dump_file=/tmp/routing.pb.txt

调用关系

  • 依赖:CyberRT 通信框架、adapter_gflags(话题名定义)
  • 数据来源routing_dump 订阅 Planning 轨迹话题
  • 数据输出routing_cast 发布到 /apollo/raw_routing_response

贡献者

页面历史