# XRobot **Repository Path**: ding-jiuqiang/XRobot ## Basic Information - **Project Name**: XRobot - **Description**: https://github.com/xrobot-org/XRobot - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 31 - **Created**: 2023-03-07 - **Last Updated**: 2023-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XRobot 一套可在PC/MCU/模拟器运行的机器人控制系统,诞生于Robomaster比赛,但绝不局限于此。 ![平衡](./doc/image/平衡.gif "平衡") ![英雄](./doc/image/英雄.gif "英雄") ![工程](./doc/image/工程.gif "工程") ![飞镖架](./doc/image/飞镖架.gif "飞镖架") ## 组成 XRobot基本部分是一套开发板与功能模块的管理系统,能够让使用者选择所需的模块并搭建成完整的机器人系统。既有模块化开发即插即用的便利,又易于对模块功能进行定制和调整以便适应多种场景,还有完善简洁的底层API封装保证良好的运行效率。 * hw/bsp 包含底层外设驱动的通用封装,主函数入口,开发板的调试工程和配置文件等。 * hw/mcu 不同厂家和型号MCU的通用SDK和配置脚本。 * src/system 包含不同操作系统的兼容层,提供信号量/线程管理/队列/定时器等通用接口。 * src/device 通过操作底层接口对外部设备实现通信和控制的模块。 * src/module 包含多个设备,实现特定功能的模块。 * src/component 与硬件无关的数学运算 * src/robot 将多个模块和设备组合,完成复杂机器人功能 ## 软件工具 以下工具在所有框架支持的平台上都提供了实现 * 消息订阅 * 命令行 * 数据库 * 队列/链表等数据结构 * 定时器 * 内存分配 * log打印 ## 硬件支持 | MCU | Board | Image | | ----------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | | STM32F407IG | [Robomaster C型开发板](https://www.robomaster.com/zh-CN/products/components/general/development-board-type-c/info) | | | STM32F302CB | [IMU-DEV-BOARD](https://xrobot-org.github.io/1.hardware/3.IMU-DEV.html) | | | STM32F446RE | [C-Mini](https://xrobot-org.github.io/1.hardware/1.C-MINI.html) | | | STM32F103 | [F103 CAN](https://xrobot-org.github.io/1.hardware/4.F103_CAN.html) | ![F103 CAN](./doc/image/f103_can.jpeg) | | ESP32-C3 | [ESP32C3-Core](https://xrobot-org.github.io/1.hardware/2.ESP32C3-Core.html) | | | Linux x86 | [Intel NUC](https://www.intel.cn/content/www/cn/zh/products/details/nuc.html) | | | Linux arm | [Raspberry pi 4B](https://www.raspberrypi.com/) | | ## 主要特色 * 利用CMake & Clang实现跨平台开发 * VSCode一键编译调试 * ClangTidy代码检查 * 完善的[文档](https://xrobot-org.github.io) * BSP兼容层使用纯C实现,上层代码使用C++,稳定实时,开发方便 * 一个项目适配不同型号的机器人型号,现已支持步兵/英雄/哨兵/平衡 * 兼容多开发板和操作系统,支持Linux原生运行和Linux上的Webots仿真 * 兵种配置文件及图形化配置 * 操作手自定义UI * 命令行界面(CLI) * USB上位机控制 ## 图片展示 利用命令行可以辅助调试程序、校准开发板、初始化机器人、读取不同参数配置。 | ![VSCode调试界面](./doc/image/调试界面.png?raw=true "VSCode调试界面") ![Webots仿真](./doc/image/Webots仿真.png?raw=true "Webots仿真") ![命令行](./doc/image/命令行.png?raw=true "命令行") ![客户端UI](./doc/image/客户端UI.png?raw=true "客户端UI") ## 使用和入门 请阅读我们的[文档](https://xrobot-org.github.io)