目录

面向智能机器人的 AIOS

参赛队伍:DWC | 赛题:面向智能机器人的 AIOS(高校赛题) | 完成日期:2026 年 10 月

一台网球捡球机器人的操作系统改造。机器人跑在 LicheeRV Nano 开发板(SG2002,RISC-V C906 + 片上 TPU)上, 外接 USB 摄像头、麦克纳姆轮底盘、三关节机械臂与板载麦克风。作品把它的内核整体换成 Rust 组件化内核 (StarryOS / ArceOS),补齐系统调用、文件接口与外设驱动,打通板上的视觉推理与语音识别,再用内核级的 调度与内存优化缩短热路径;内核侧改动以补丁形式回流上游公共仓库。

四条技术线

技术线 主要内容 主要位置
用户态函数级观测 用户态返回探针、压缩指令与 PC 相对指令插桩、按进程号附加的耗时工具 src/tgoskits/kprobe-local/、src/tgoskits/os/StarryOS/kernel/src/{perf,uprobe}/、src/tgoskits/apps/starry/ebpf/akars_trace/
板载音频与端侧语音 SG2002 麦克风采集驱动与音频接口层、端侧中文口令识别(TPU 前端) src/tgoskits/drivers/audio/、src/tgoskits/apps/starry/sg2002-voice-commands/
检测模型 稀疏专家块做成官方框架插件(七代主干通用),训练与评测 见《项目说明书》第 2、3 章
内核热路径与回流 分配器、事件等待、地址空间、核间中断、文件映射等热路径改动,逐条附溯源材料并提交上游 见《项目说明书》第 2 章补丁清单;按拉取请求编号可逐条核对

机器人程序(视觉伺服抓取、串口引脚复用、摄像头采集路径)见 src/akars/。

仓库结构

├── README.md            ← 本文件
├── src/                 ← 项目源代码
│   ├── tgoskits/        ← StarryOS/ArceOS 内核树(含 kprobe-local、akars_trace、语音指令应用)
│   └── akars/           ← 机器人用户态程序(抓球主程序)
├── docs/                ← 决赛文档(4 份 PDF)+ 底稿与生成脚本(docs/drafts/)
├── tests/               ← 测试及验证材料(构建/验证方法与预期结果)
├── demo/                ← 可验证交付物(内核镜像 + 静态追踪工具)
├── presentation/        ← 决赛现场演示 PPT
├── 演示视频/            ← 决赛演示视频
└── 作品原创承诺书.pdf

所有源码均已直接纳入仓库(非 submodule),克隆后即可查看与构建。src/akars/ 构建时需要 TPU SDK(toolchains/tpu-sdk-sg200x,见其 .gitmodules),该 SDK 未随仓库分发。

构建与运行

环境:Linux x86_64,rustup 工具链 nightly-2026-09-04(src/tgoskits/rust-toolchain.toml), RISC-V 交叉工具链。详细步骤与预期输出见 tests/README.md。

内核(在 src/tgoskits/ 下执行):

cargo run -p tg-xtask -- starry build --config os/StarryOS/configs/board/licheerv-nano-sg2002.toml

追踪工具(静态链接 RISC-V64):

cd src/tgoskits/apps/starry/ebpf/akars_trace
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-Ctarget-feature=+crt-static -Clink-arg=-fuse-ld=lld" \
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_MUSL_LINKER=riscv64-unknown-linux-musl-gcc \
cargo build --release --target riscv64gc-unknown-linux-musl -Zbuild-std=std,panic_abort

机器人程序:

cd src/akars
./akars <model.cvimodel> --camera /dev/cvi-usb-camera0 --motor /dev/ttyS1 --arm /dev/ttyS2

运行:烧写 demo/starryos-licheerv-nano-sg2002.uimg 后按 demo/README.md 操作。

文档

  • 《项目说明书》《项目创新说明》《成员分工及主要贡献说明》《人工智能及第三方工具使用声明》见 docs/;
  • 文档底稿与生成脚本见 docs/drafts/(修改底稿后可重新生成 PDF);
  • 测试与验证方法、预期输出见 tests/README.md;可验证交付物见 demo/README.md。

已知限制

  • 硬件 PMU 计数/采样路径当前仅 aarch64 实现,RISC-V 目标板上硬件采样剖析不可用 (本队 eBPF 软件探针路径不受影响);
  • 返回探针实例池固定容量(每探针 10 个并发在飞行实例),更深的同函数并发递归会丢弃事件并告警;
  • 追踪目标以 ELF 符号定位,被编译器完全内联的函数不可追踪;
  • 端侧语音识别当前只输出命令事件,尚未接入底盘控制。

说明

文档与脚本中的命令、设备名和文件路径来自比赛期间的实际开发环境。在其他主机或开发板环境中 复现时,请根据本地磁盘设备、工具链路径与仓库位置进行调整。

关于
172.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号