概述
Bitbot旨在提供一套简洁易用的机器人软件系统框架,可以轻松扩展出适用于不同机器人平台的应用程序。它们实现机器人运行全周期管理,同时具有相同的控制接口,使机器人开发者专注于控制算法研究工作。
理念
统一
不同机器人平台对应不同的Bitbot框架,但它们都应该具有相同的控制接口,用户无需关心软件框架的具体实现即可在不同框架间快速移植。
高效
机器人控制频率可能高达1kHz,意味着软件框架不能占用过多的处理器时间,将尽可能多的时间留给控制算法。
灵活
配置文件。
功能
Bitbot提供多项机器人应用程序程序必备功能:设备总线通信、通用控制台、日志记录。
设备总线通信
机器人通常具备电机、惯性传感器、力传感器等多种硬件设备,这些硬件使用总线系统连接,例如CAN总线、EtherCAT总线等。本框架提出一种硬件抽象层,将通讯细节进行封装,用户直接对设备进行操作。
通用控制台
系统内置一个http服务后端,可通过控制台实时查看机器人运行数据,接收键盘、遥控手柄等控制指令。
日志记录
将机器人运行数据持久化保存
开发环境
C++以高性能著称,是绝大多数机器人实际部署时的选择,Bitbot同样使用它作为开发语言。作为一个全新的软件框架,Bitbot大量使用c++20特性以及CMake现代化包管理模块FetchContent
。
- CMake 版本3.14或以上
- C++编译器,要求支持c++20特性。以下任选其一
- msvc >= 2022
- gcc > 11.2
- clang > 13
使用FetchContent
将依赖软件包源码并入项目工程中一同编译,能够避免软件包在不同平台的安装问题和版本冲突问题。
使用
Bitbot是一系列框架的统称,核心功能包为Bitbot-Kernel,由其派生针对不同运行平台的软件框架
- Bitbot-Mujoco
集成状态机模型,通过事件队列处理外部指令,进行数据修改和状态切换。
它们对外采用相同的API接口,详见教程