跳到主要内容

概述

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接口,详见教程