1. 架构 Architecture
上手与环境见 §0;各模块 API 见 §2–§12。本文描述 栈内位置、内部分层、部署形态、数据流与生命周期。
本文 §1 |
相关文档 |
|---|---|
分层、数据流、环境 |
1.1 栈内位置
Autonomy 算法模块不直接操作 DDS/SHM,而是经 Node + 消息边界 与 autolink 交互。
autonomy::commsgs::* struct,进程内算法逻辑
相关模块 |
关系 |
|---|---|
消息类型与 proto |
|
Server 装配与 Lua 配置 |
|
外部协议互通 |
1.2 内部分层
autolink 运行时自顶向下分为五层;发现与数据路径分离——拓扑匹配后,业务数据不经发现通道。
1.3 两种部署形态
形态 |
入口 |
调度 |
适用 |
|---|---|---|---|
Binary |
|
自建 |
示例、工具、快速验证 |
Component |
|
Scheduler + DataVisitor |
生产模块、车载部署 |
详见 §2 节点 Node · §9 启动 Launch · §10 组件 Component。
1.4 Component 数据流
多输入 Component 由 DataVisitor 缓存并对齐各路最新消息,齐备后唤醒 Proc。
readers[] 注入;Writer 在 Init() 中创建
TimerComponent 无输入 channel,由 DAG interval(ms)直接触发 Proc(),见 §11。
Channel 直驱回调路径见 §3.7。
1.5 生命周期
autolink::Init;运行期调度方式不同
| 状态 | 触发 / 含义 |
|---|---|
| Init | autolink::Init(argv),加载配置与子系统 |
| Ready | CreateNode 或 mainboard LoadAll |
| Running | OK() 循环;Reader 回调 / Proc / Timer |
| Shutdown | SIGINT 或异常;Component::Shutdown |
| 阶段 | Binary | Component |
|---|---|---|
| 启动 | Init → CreateNode | mainboard -d foo.dag |
| 运行 | while (OK()) + Rate | Scheduler 调度 Proc |
| 退出 | 析构 / Clear | Shutdown → UnloadLibrary |
1.6 环境与路径变量
GetFilePathWithEnv 按变量解析相对路径;未设置时回退到 AUTOLINK_PATH 下默认目录。
变量 |
解析对象 |
典型值 |
|---|---|---|
|
运行时根( |
|
|
安装前缀 |
|
|
模块配置、调度 conf |
|
|
|
安装 share 目录 |
|
Component |
|
|
|
同 DAG |
|
插件描述与 |
见 §7 |
|
调度配置 |
|
|
RTPS 发现域 |
|
|
日志 |
见 §8 |
Python 另需 PYTHONPATH 指向 autolink_py3(examples/python/README.md)。
1.7 CLI 工具
工具 |
作用 |
|---|---|
|
|
|
多 module 进程编排 |
|
诊断 channel 匹配 |
|
实时流量 |
|
录放(§3.9) |
构建:cmake ... -DAUTOLINK_BUILD_TOOLS=ON。
1.8 Autonomy 集成
system::Autonomy 各 Server 在内部 CreateNode,将 commsgs 与 autolink 对接:
Server |
autolink 用法 |
|---|---|
Planning |
Plugin 加载 |
Navigator |
Action Client → Controller |
各模块 |
Lua 配置 + 可选 Parameter |
详见 Framework §3。
导航:← §0 指南 · §2 节点 Node →