visual_localization_v3 在线定位系统架构 (RK3588)

visual_localization_v3 在线定位系统架构 (RK3588) A architecture diagram generated by Archify. RK3588 NPU RK3588 CPU 相机 · /camera/cam1/image_raw · Architecture component · remap ~image 相机 /camera/cam1/image_raw remap ~image XFeat+steerer · RKNN · top_k2048 · 4变体 · RK3588 NPU · RK3588 NPU XFeat+steerer RKNN · top_k2048 · 4变体 RK3588 NPU 投影窗口匹配 · 2D-3D 对应 · top-K 450 · RK3588 CPU 投影窗口匹配 2D-3D 对应 · top-K 450 PnP RANSAC · EPnP→ITERATIVE · KB 切平面 · RK3588 CPU PnP RANSAC EPnP→ITERATIVE · KB 切平面 Ceres 位姿优化 · SE(2) prior + 滑窗 N=4 · RK3588 CPU Ceres 位姿优化 SE(2) prior + 滑窗 N=4 map→odom 校正 · MapOdomCorrector 平滑 · RK3588 CPU map→odom 校正 MapOdomCorrector 平滑 TF + Pose 输出 · map→odom · localization_pose · Architecture component TF + Pose 输出 map→odom · localization_pose VSMAP v2 地图 · MapManager · CosPlace gd · Architecture component · 冻结只读 VSMAP v2 地图 MapManager · CosPlace gd 冻结只读 局部地图 + 共视图 · n_covisible_kfs=10 · 0.5m 触发 · RK3588 CPU 局部地图 + 共视图 n_covisible_kfs=10 · 0.5m 触发 AprilTag 异步检测 · TagAsyncWorker · 默认休眠 · RK3588 CPU · sidecar 激活 AprilTag 异步检测 TagAsyncWorker · 默认休眠 sidecar 激活 wheel odom · /odom · bag 用 /jarvis/odom · Architecture component · 连续运动约束 wheel odom /odom · bag 用 /jarvis/odom 连续运动约束 raw 图像 特征+描述子 地图点+KF 局部地图点 2D-3D 对应 位姿初值 视觉位姿 map→odom 运动预测 SE(2) prior odom 主链路 角点注入

主链路 (源码验证)

  • • imageCallback → XFeat RKNN → 投影窗口 → PnP (localization.cpp:2997) → Ceres SE(2) → MapOdomCorrector
  • • 无 GTSAM (全仓库 grep 零命中);位姿优化是 Ceres pose-only BA
  • • 失锁恢复: CosPlace/FBoW 检索 + 地理过滤,再回 PnP

ROS 接口

  • • 订: /camera/cam1/image_raw (remap ~image) · ~camera_info · odom_topic
  • • 发: localization_pose / _with_covariance / path / map_cloud (latched)
  • • TF: map→odom + map→base_link;无 service;odom_topic 写错静默失效

运行位置与休眠模块

  • • NPU: xfeat_steer_fp16_512x640.rknn (24fps, 4变体) + CosPlace RKNN
  • • CPU: 局部地图/共视图、投影窗口、PnP、Ceres、AprilTag、FBoW
  • • AprilTag 休眠 (需 *.tags.yaml sidecar);FLANN 仅重定位;LightGlue 不上板