# hivecore_robot_system 面向机器人系统的企业级 ROS 2 基础设施工作空间。 ## 1. 简介 `hivecore_robot_system` 是 HiveCore 机器人系统的核心 ROS 2 工作空间,提供一套高质量、生产就绪的基础设施组件。 本仓库采用 **monorepo** 结构,每个功能领域以独立子目录的形式进行组织,所有组件统一由顶层 `colcon` 工作空间管理,可按需选包编译。各包的详细说明从第 5 章起依次展开,每个顶层包独占一章。 当前已包含的软件包: | 软件包 | 所属模块 | 说明 | | :--- | :--- | :--- | | `hivecore_logger` | 日志系统 | 面向 C++/Python 业务节点的异步非阻塞日志 SDK | | `hivecore_log_manager` | 日志系统 | 集中式日志管理服务:磁盘配额、压缩、动态调级 | | `hivecore_logger_interfaces` | 日志系统 | ROS 2 服务接口定义(`SetLogLevel.srv`) | | *(更多组件持续添加中)* | — | — | ## 2. 系统要求 以下为整个工作空间的通用基础要求,各组件若有额外依赖,请参阅对应子目录的文档。 | 项目 | 要求 | | :--- | :--- | | 操作系统 | Ubuntu 20.04 / 22.04(或其他 POSIX Linux) | | ROS 2 | Foxy / Humble | | C++ 编译器 | GCC 9+,支持 C++17 | | CMake | 3.14+ | | Python | 3.8+ | ## 3. 快速开始 ### 3.1 克隆与初始化 ```bash git clone hivecore_robot_system cd hivecore_robot_system ``` ### 3.2 安装通用依赖 ```bash sudo apt-get update && sudo apt-get install -y \ build-essential cmake \ python3-pip ``` 各组件的额外依赖请参阅对应子目录的 README 或 `USER_GUIDE.md`。 ### 3.3 编译工作空间 编译整个工作空间中的所有组件: ```bash colcon build --symlink-install source install/setup.bash ``` 如仅需编译指定组件: ```bash colcon build --packages-select [ ...] source install/setup.bash ``` 各包需要选择哪些包名,请参阅对应包章节的说明。 ### 3.4 验证安装 ```bash # 列出工作空间内所有已注册的 ROS 2 接口 ros2 interface list | grep hivecore # 查看已安装的可执行命令 ros2 pkg executables | grep hivecore ``` ## 4. 工程目录结构 本仓库以功能模块为单位组织子目录,每个模块是独立的 ROS 2 包(或包组),可单独编译和部署。 ```text hivecore_robot_system/ ├── hivecore_logger/ # 【日志系统】详见第 5 章 ├── / # 【预留】后续新增功能模块 ├── build/ # colcon 构建输出(不纳入版本管理) ├── install/ # colcon 安装输出(不纳入版本管理) └── log/ # colcon 构建日志(不纳入版本管理) ``` **新增模块约定**:每个新模块在仓库根目录下创建独立子目录,建议包含: ```text / ├── README.md # 模块说明 ├── USER_GUIDE.md # 安装与使用手册 ├── ros2/ # ROS 2 接口包及示例(如有) ├── examples/ # 接入示例 └── scripts/ # 验证脚本 ``` ## 5. hivecore_logger — 日志系统 面向 C++/Python 业务节点的企业级异步非阻塞日志基础设施。 ### 5.1 目录结构 ```text hivecore_logger/ ├── cpp/ # C++ 日志 SDK(基于 spdlog,异步非阻塞) ├── python/ # Python 日志 SDK(基于 QueueHandler) ├── manager/ # 集中式日志管理模块(独立部署或 ROS 2 节点) ├── ros2/ │ ├── hivecore_logger_interfaces/ # ROS 2 接口包 │ └── examples/ # ROS 2 最小调用示例 ├── examples/ # 外部业务节点接入示例(C++/Python) └── scripts/ # 一键验证与演示脚本 ``` ### 5.2 核心特性 | 特性 | 说明 | | :--- | :--- | | 异步非阻塞日志 | C++/Python SDK 均采用异步队列,极低业务侧开销 | | 热更新日志级别 | Python SDK 支持 inotify 零 CPU 占用热更新,无需重启节点 | | 日志限流与条件宏 | Python SDK 原生支持 `throttle`(限流)与 `expression`(条件)扩展 | | 集中式管理 | 统一的磁盘配额控制、后台异步压缩、节点级文件轮转 | | 安全性 | 防路径穿越攻击,日志目录强制沙箱隔离 | | 双调级入口 | 支持 HTTP REST 与 ROS 2 Service 两种运行时动态调级方式 | ### 5.3 快速编译与验证 **一键编译、安装并启动 Manager(发行版):** ```bash DEPLOY_MODE=prod bash hivecore_logger/scripts/build_install_and_start_manager.sh ``` 该脚本依次执行:编译 SDK(C++ + Python + ROS 2 接口)→ 安装至 `/opt/hivecore/` → 启动日志管理服务。 如需仅编译和安装 SDK,不启动服务: ```bash DEPLOY_MODE=prod bash hivecore_logger/scripts/build_install_sdk.sh ``` 验证服务健康状态: ```bash bash hivecore_logger/scripts/check_manager_health_prod.sh ``` 其他常用脚本: | 脚本 | 用途 | | :--- | :--- | | `scripts/start_manager.sh` | 单独启动日志管理服务 | | `scripts/stop_manager.sh` | 停止日志管理服务 | | `scripts/check_manager_health_prod.sh` | 检查发行版服务健康状态 | | `scripts/run_all_checks.sh` | 运行全量验证(单元测试 + 集成检查) | | `scripts/run_manager_demo.sh` | 运行演示流程 | ### 5.4 文档 | 文档 | 链接 | | :--- | :--- | | 模块说明 | [hivecore_logger/README.md](hivecore_logger/README.md) | | 安装与使用手册 | [hivecore_logger/USER_GUIDE.md](hivecore_logger/USER_GUIDE.md) | | 测试报告 | [hivecore_logger/TEST_REPORT.md](hivecore_logger/TEST_REPORT.md) | --- ## 6. 许可证 © HiveCore. All rights reserved.