Skip to content
Website under Construction

KevinbotLib

KevinbotLib KevinbotLib

PyPI Version Python Version License Downloads GitHub Downloads Ruff uv Hatch Codacy


KevinbotLib development is paused while I’m working on new Kevinbot hardware. Current Alpha versions of KevinbotLib are not stable.

View Project on GitHub View Documentation


KevinbotLib is a modular robot control system integrating a high-speed server-client communication system, robust logging, gamepad inputs, and more.

Features

The Command Scheduler

  • A way to asynchronously run robot tasks
  • Commands can be grouped to run sequentially or in parallel if desired
  • Commands can be executed at a set interval

The Communication System

  • Uses Redis for set/get and pub/sub communication
  • Data can be easily sent from robot to client or vice versa
  • Data is synchronized between all clients
  • Out-of-the-box ready-made sendables for builtin primitive types
  • Create custom sendables based on pydantic models

The Vision Pipeline System

  • Create vision pipelines based on OpenCV
  • Pre-made sendables for video frames
  • Pre-made encoders and decoders for the communication system

Robust Logging

  • Logging is based on loguru
  • Automatic file rotations
  • Logs to stdout, an inbuilt file server over HTTP, and/or files.

Gamepad Inputs

  • Based on SDL2
  • Builtin-support for all Game Controllers supported under the SDL2 GameController API
  • Joystick data sender and receiver through the communication system

The Control Console

  • Operate a KevinbotLib robot through a simple GUI interface
  • Supports up to 8 gamepad devices (up to 32 buttons each)
  • View live robot telemetry
  • Monitor battery voltage
  • Change robot state and OpModes
  • Monitor robot system metrics

License

kevinbotlib is distributed under the terms of the LGPL-3.0-or-later license.

All KevinbotLib binaries are distributed under the terms of the GPL-3.0-or-later license due to the inclusion of several GPL dependencies.