Add official preliminary submission archive
智航韧境是一套运行于 openKylin 的无人机具身系统韧性服务。它面向人员闯入、感知链路停更、任务心跳超时与消息丢失等开放环境异常,将分散的运行事件统一映射为可审计状态,按风险持续时间生成分级安全动作请求,并在进入 PX4 接口前完成独立安全许可、短时效校验、可靠交付和防重放检查。
系统形成“异常汇聚—状态分级—动作请求—安全许可—结果确认—恢复观察—审计回放”的组件级闭环。WebGL/PC 端 VR 画面承担任务交互和仿真态势可视化;openKylin 服务、原始 JSONL、测试日志和实验汇总共同构成工程证据。
人员风险 / 链路超时 / 任务异常 ↓ openKylin 韧性服务 五态引擎 · 恢复观察 · 审计 ↓ 版本化动作信封 + 有界重试 ↓ 独立安全闸门与执行适配 ↓ ACK / 终态 / 失败记录
NORMAL
DEGRADED
SAFE_HOLD
RTL
RECOVERY
LIMIT_SPEED
HOLD_POSITION
RTL_REQUEST
PENDING → ACKED / FAILED / EXPIRED
integrations/ros2/
src/resilience_daemon/
px4_action_executor_node.py
系统与 PX4 原生姿态控制和 failsafe 分工协同:韧性引擎形成安全意图,飞行侧闸门独立许可,执行器关联 PX4 命令接口,各层职责清晰、相互校验。
NONE
RECOVERY_PENDING
RESUME_ALLOWED
动作证据按以下四级记录:
ACTION_REQUEST_GENERATED
GUARD_ALLOWED
PX4_ACK_ACCEPTED
VehicleCommand
STATE_EFFECT_CONFIRMED
正式实验对组件决策、安全许可、消息交付终态和安全闸门矩阵进行量化验证;PX4 适配器通过 VehicleCommand、VehicleCommandAck 与飞行状态接口,对命令发布、确认和状态证据进行分级关联。
VehicleCommandAck
3713d1a7a626ba6cf2564ae2683dcf5144db0d99
20260718T170752Z
delivery_20260718T170752Z
2026-07-21T14:56:38Z
.pyc
__pycache__
完整日志:results/formal/3713d1a7a626/quality/quality-checks.txt。
results/formal/3713d1a7a626/quality/quality-checks.txt
正式版本源码在 openKylin 上完成安装、服务重启、指定快照回滚与重装验证。取证脚本核对的已安装源码提交与正式版本提交一致;最终服务为 enabled、active/running,NRestarts=0、ExecMainStatus=0。服务以独立账户 zhihang-resilience 运行,配置目录为组内只读,Unix-domain socket 权限为 0660。生命周期日志包含 LIFECYCLE_VERIFICATION_OK,最终普通服务账户健康查询返回 ok: true。
enabled
active/running
NRestarts=0
ExecMainStatus=0
zhihang-resilience
0660
LIFECYCLE_VERIFICATION_OK
ok: true
完整原始记录:results/formal/3713d1a7a626/systemd/。其中 metadata.txt 保存版本目录、源码提交、取证时间和回滚快照;lifecycle.txt 保存安装—重启—回滚—重装全过程;systemd-state.txt、permissions.txt、journal.txt 和两份查询 JSON 保存最终运行状态与权限证据。
results/formal/3713d1a7a626/systemd/
metadata.txt
lifecycle.txt
systemd-state.txt
permissions.txt
journal.txt
基线为可运行的单阈值 HOLD_POSITION 请求生成器,不具备迟滞、恢复观察、动作身份或 ACK 跟踪;韧性模式启用五态策略、恢复观察和动作去重。
上述四组中,两种模式的安全请求覆盖率均为 100%。对照结果说明韧性模式在保持触发覆盖的同时抑制重复请求,并在链路异常场景给出分级处置语义。
安全闸门预设矩阵 7/7 通过。本机 TCP 回环 100/100 成功,平均往返 0.621 ms、P95 0.760 ms。原始数据和汇总位于 results/formal/3713d1a7a626/component/。
results/formal/3713d1a7a626/component/
固定随机种子 20260718,每个条件、每种模式 500 轮。单次发送与“有界重试 + 幂等终态”对照如下:
20260718
该实验评价组件消息交付、ACK 可观察性和幂等执行,不等同于飞行动作成功率。原始逐轮数据和汇总位于 results/formal/3713d1a7a626/delivery/。
results/formal/3713d1a7a626/delivery/
export PYTHONPATH="$PWD/src" python3 -m resilience_daemon.cli serve --config config/resilience.json
另开终端查询或注入人员风险事件:
export PYTHONPATH="$PWD/src" python3 -m resilience_daemon.cli status --host 127.0.0.1 --port 8765 python3 -m resilience_daemon.cli send --host 127.0.0.1 --port 8765 \ --event-file examples/person_alert.json
reset 默认关闭,仅能在受控测试中通过 serve --allow-reset 显式启用。
reset
serve --allow-reset
sudo bash scripts/install.sh systemctl status zhihang-resilience.service --no-pager sudo -u zhihang-resilience env PYTHONPATH=/opt/zhihang-resilience/src \ python3 -m resilience_daemon.cli status \ --unix-socket /run/zhihang-resilience/daemon.sock
指定快照回滚:
sudo bash scripts/rollback.sh SNAPSHOT_ID
正式安装—重启—回滚—重装证据采集:
sudo bash scripts/capture_formal_systemd_evidence.sh
python3 integrations/ros2/resilience_bridge_node.py --ros-args \ -p daemon_unix_socket:=/run/zhihang-resilience/daemon.sock python3 integrations/ros2/px4_action_executor_node.py --ros-args \ -p dry_run:=true -p execution_enabled:=false
LIMIT_SPEED、HOLD_POSITION、RTL_REQUEST 分别映射至 PX4 VEHICLE_CMD_DO_CHANGE_SPEED、VEHICLE_CMD_NAV_LOITER_UNLIM、VEHICLE_CMD_NAV_RETURN_TO_LAUNCH。
VEHICLE_CMD_DO_CHANGE_SPEED
VEHICLE_CMD_NAV_LOITER_UNLIM
VEHICLE_CMD_NAV_RETURN_TO_LAUNCH
PYTHONDONTWRITEBYTECODE=1 python3 scripts/run_quality_checks.py PYTHONDONTWRITEBYTECODE=1 python3 scripts/run_component_experiment.py \ --trials 30 --tcp-samples 100 --seeds 30 PYTHONDONTWRITEBYTECODE=1 python3 scripts/run_delivery_reliability_experiment.py \ --trials 500 --seed 20260718
本仓库自行开发的核心包括韧性状态引擎、事件模型、可靠交付、动作安全闸门、持久化防重放与执行终态账本、openKylin 安装/回滚/systemd 服务、ROS 2 事件桥、PX4 动作执行适配器、实验工具、自动测试和证据控制台。
openKylin、ROS 2、PX4、AirSim 和 YOLO 分别作为操作系统、消息中间件、飞控/仿真环境与上游感知组件,通过公开接口和消息定义接入;项目自研代码聚焦韧性决策、可靠交付、安全许可、部署恢复与验证工具。详细边界见 第三方组件与代码来源说明。
src/resilience_daemon/ 状态引擎、服务、可靠交付、安全闸门与客户端 integrations/ros2/ ROS 2 事件桥与 PX4 动作执行适配器 config/ 韧性策略配置 systemd/ openKylin 服务单元 console/ 正式实验记录回放控制台 scripts/ 安装、回滚、实验、导出与质量检查 tests/ 单元、接口、文档一致性和 Unix Socket 测试 docs/ 架构、API、用户手册、测试和第三方边界 results/formal/ 与源码提交号绑定的正式原始数据和系统证据
项目自行开发代码采用 Apache-2.0 许可证。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
智航韧境:面向开放环境的无人机具身操作系统韧性增强技术
智航韧境是一套运行于 openKylin 的无人机具身系统韧性服务。它面向人员闯入、感知链路停更、任务心跳超时与消息丢失等开放环境异常,将分散的运行事件统一映射为可审计状态,按风险持续时间生成分级安全动作请求,并在进入 PX4 接口前完成独立安全许可、短时效校验、可靠交付和防重放检查。
系统形成“异常汇聚—状态分级—动作请求—安全许可—结果确认—恢复观察—审计回放”的组件级闭环。WebGL/PC 端 VR 画面承担任务交互和仿真态势可视化;openKylin 服务、原始 JSONL、测试日志和实验汇总共同构成工程证据。
核心能力
NORMAL、DEGRADED、SAFE_HOLD、RTL、RECOVERY,相同配置和事件序列产生可复现轨迹。LIMIT_SPEED、HOLD_POSITION、RTL_REQUEST,故障解除后先进入稳定观察窗。PENDING → ACKED / FAILED / EXPIRED生命周期,按 TTL 和重试预算有界重发。四层架构
integrations/ros2/src/resilience_daemon/px4_action_executor_node.py系统与 PX4 原生姿态控制和 failsafe 分工协同:韧性引擎形成安全意图,飞行侧闸门独立许可,执行器关联 PX4 命令接口,各层职责清晰、相互校验。
状态与动作
NORMALNONEDEGRADEDLIMIT_SPEEDSAFE_HOLDHOLD_POSITIONRTLRTL_REQUESTRECOVERYRECOVERY_PENDING/RESUME_ALLOWED动作证据按以下四级记录:
ACTION_REQUEST_GENERATED:韧性引擎生成动作请求;GUARD_ALLOWED:飞行侧软件闸门许可;PX4_ACK_ACCEPTED:PX4 接受VehicleCommand;STATE_EFFECT_CONFIRMED:独立飞行状态证据确认动作生效。正式实验对组件决策、安全许可、消息交付终态和安全闸门矩阵进行量化验证;PX4 适配器通过
VehicleCommand、VehicleCommandAck与飞行状态接口,对命令发布、确认和状态证据进行分级关联。openKylin 正式验证
3713d1a7a626ba6cf2564ae2683dcf5144db0d9920260718T170752Zdelivery_20260718T170752Z2026-07-21T14:56:38Z自动化质量门
.pyc或__pycache__。完整日志:
results/formal/3713d1a7a626/quality/quality-checks.txt。systemd 生命周期证据
正式版本源码在 openKylin 上完成安装、服务重启、指定快照回滚与重装验证。取证脚本核对的已安装源码提交与正式版本提交一致;最终服务为
enabled、active/running,NRestarts=0、ExecMainStatus=0。服务以独立账户zhihang-resilience运行,配置目录为组内只读,Unix-domain socket 权限为0660。生命周期日志包含LIFECYCLE_VERIFICATION_OK,最终普通服务账户健康查询返回ok: true。完整原始记录:
results/formal/3713d1a7a626/systemd/。其中metadata.txt保存版本目录、源码提交、取证时间和回滚快照;lifecycle.txt保存安装—重启—回滚—重装全过程;systemd-state.txt、permissions.txt、journal.txt和两份查询 JSON 保存最终运行状态与权限证据。功能基线与韧性模式对照
基线为可运行的单阈值
HOLD_POSITION请求生成器,不具备迟滞、恢复观察、动作身份或 ACK 跟踪;韧性模式启用五态策略、恢复观察和动作去重。上述四组中,两种模式的安全请求覆盖率均为 100%。对照结果说明韧性模式在保持触发覆盖的同时抑制重复请求,并在链路异常场景给出分级处置语义。
安全闸门预设矩阵 7/7 通过。本机 TCP 回环 100/100 成功,平均往返 0.621 ms、P95 0.760 ms。原始数据和汇总位于
results/formal/3713d1a7a626/component/。可靠交付对照
固定随机种子
20260718,每个条件、每种模式 500 轮。单次发送与“有界重试 + 幂等终态”对照如下:该实验评价组件消息交付、ACK 可观察性和幂等执行,不等同于飞行动作成功率。原始逐轮数据和汇总位于
results/formal/3713d1a7a626/delivery/。快速开始
本地开发模式
另开终端查询或注入人员风险事件:
reset默认关闭,仅能在受控测试中通过serve --allow-reset显式启用。openKylin 安装与生命周期验证
指定快照回滚:
正式安装—重启—回滚—重装证据采集:
ROS 2 / PX4 集成保护模式
LIMIT_SPEED、HOLD_POSITION、RTL_REQUEST分别映射至 PX4VEHICLE_CMD_DO_CHANGE_SPEED、VEHICLE_CMD_NAV_LOITER_UNLIM、VEHICLE_CMD_NAV_RETURN_TO_LAUNCH。复现实验
原创代码与第三方边界
本仓库自行开发的核心包括韧性状态引擎、事件模型、可靠交付、动作安全闸门、持久化防重放与执行终态账本、openKylin 安装/回滚/systemd 服务、ROS 2 事件桥、PX4 动作执行适配器、实验工具、自动测试和证据控制台。
openKylin、ROS 2、PX4、AirSim 和 YOLO 分别作为操作系统、消息中间件、飞控/仿真环境与上游感知组件,通过公开接口和消息定义接入;项目自研代码聚焦韧性决策、可靠交付、安全许可、部署恢复与验证工具。详细边界见 第三方组件与代码来源说明。
目录与文档
项目自行开发代码采用 Apache-2.0 许可证。