Skip to main content

TF 树梳理与变换管理:YAML/JSON 外参加载、图路径与环检测、直接关系重写、局部求逆、可嵌入 TF 树可视化与操作底座、变换矩阵计算

Project description

tftree-manager

当前版本:0.1.1

tftree-manager 是 D03 的 TF/外参领域服务库,用于加载、查询、诊断和更新 YAML / mdrive4 JSON / PB 派生外参工作区。它不是底层矩阵小工具,也不是端到端应用工作流;项目侧仍应负责 UI 状态、车辆/任务上下文、临时目录、业务保存策略和标定算法编排。

安装

pip install tftree-manager

推荐入口

V0.1.1 延续 TFTreeWorkspace + services 主入口:

from tftree_manager import (
    TFTreeWorkspace,
    TransformOperationService,
    TransformQueryService,
    TopologyService,
)

workspace = TFTreeWorkspace.load_yaml("/path/to/yaml_dir")
query = TransformQueryService(workspace)
topology = TopologyService(workspace)
ops = TransformOperationService(workspace)

frames = workspace.frames()
cycles = topology.detect_cycles()

# 默认 compute,用于标定文件、尺寸链、保存和 JSON/PB/YAML 写回。
T_compute = query.get_transform("lidar", "camera")

# projection 用于 lidar2cam 显示、PnP 和图像投影。
T_projection = query.get_transform("lidar", "camera", output_mode="projection")

# 如果外部输入矩阵来自投影链路,D03 在 API 边界归一为 compute 后存储。
ops.upsert_direct_transform(
    "lidar",
    "camera",
    T_projection,
    input_mode="projection",
    save=False,
)

服务边界

D03 库内负责沉淀稳定的领域能力:

  • workspace 加载/保存:TFTreeWorkspace.load_yaml()load_mdrive4_json()save_yaml()
  • transform 查询:TransformQueryService.get_transform()compute_all_from_root()convert_transform_mode()
  • 路径和拓扑诊断:TopologyService 的路径、环检测、边查询。
  • 通用外参更新原语:TransformOperationService 的 direct relation、标定链路替换、相邻边求逆和 direct transform upsert。
  • 格式边界:YAML、mdrive4 JSON、PB 派生 YAML 与可视化数据模型。

项目侧应保留业务状态和编排逻辑,包括当前 lidar/camera 选择、GUI 状态、车辆/任务上下文、临时目录策略、业务保存策略、标定算法输入输出组织。

compute / projection 合同

  • compute 是默认模式,用于标定文件、尺寸链、direct/manual link 存储、PB/YAML/JSON 写回。
  • projection 用于 lidar2cam 显示、PnP 和图像投影。
  • graph 内部只保存 computeprojection 只在 get_transform(..., output_mode="projection")convert_transform_mode(...)input_mode="projection" 的 D03 API 边界派生/归一。
  • mdrive4 JSON camera 的 compute 轴系为 FLU,projection 轴系为 OpenCV/RDF。
  • PB/YAML 无 order_manifest.yaml.frame_axes metadata 时,D03 不推测相机轴系,computeprojection 返回一致。
  • JSON 写回必须走 D03 的 compute -> JSON FLU 序列化,业务侧不要自行拼 camera JSON RPY/translation。

兼容层

TFTreeManager 在 V0.1.0 中仅作为 deprecated compat wrapper 保留,用于旧项目平滑运行;新文档、新示例和后续 C 项目接入应以 TFTreeWorkspace + services 为主入口。

C01~C08 当前只作为需求采样来源,不要求、不强制立即迁移。后续迁移应逐项按项目节奏接入稳定 facade 或 services。

面向 C 项目的 facade

重复的矩阵查询、路径查询、JSON root edge 更新和图数据构建可优先使用稳定 facade:

from tftree_manager import GraphViewModelBuilder, JsonRootEdgeUpdater, PathLookup, TransformLookup

matrix = TransformLookup.from_yaml("/path/to/yaml_dir").matrix("lidar", "camera")
path_edges = PathLookup.from_yaml("/path/to/yaml_dir").edge_keys("lidar", "camera")
view_model = GraphViewModelBuilder.from_yaml("/path/to/yaml_dir").build(
    source_frame="lidar",
    target_frame="camera",
)

updater = JsonRootEdgeUpdater.from_yaml("/path/to/yaml_dir", root_frame="vrf_ground")
updater.update_root_edge("lidar", "camera", matrix, save=False)

更多文档

  • doc/README.md:完整功能说明和 CLI 示例。
  • doc/API_USAGE.md:Flask 旧接口、Python API 和接入示例。
  • doc/UPDATE.md:V0.1.1 更新说明与迁移方向。
  • plan/:长期架构调整计划、验收矩阵和执行记录。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tftree_manager-0.1.1.tar.gz (63.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tftree_manager-0.1.1-py3-none-any.whl (82.9 kB view details)

Uploaded Python 3

File details

Details for the file tftree_manager-0.1.1.tar.gz.

File metadata

  • Download URL: tftree_manager-0.1.1.tar.gz
  • Upload date:
  • Size: 63.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for tftree_manager-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c05e2c62c79c92334a0871b5b8139a60c60ab88db8534f8d0935c9186f5538e0
MD5 32c7b79b8b662b1cf67021afbc6d2df1
BLAKE2b-256 8a0210f84757e5e9f24ae0424d76a1072e8e0baa47bb32087a563adeb3c8a009

See more details on using hashes here.

File details

Details for the file tftree_manager-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tftree_manager-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 82.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for tftree_manager-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4e830ac6d48988f654f7c4307ca25c4986c0bbfc337c59e29014e3c10149280d
MD5 38391e89796919e761480349a5d64792
BLAKE2b-256 2fdc4122a7f98b3c0d3cd9099f7ef95dd3f40916662c1b1b5563bf821294d323

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page