Skip to content

Welcome to KevinbotLib

Kevinbot logo Kevinbot logo

PyPI - Version PyPI - Python Version PyPI - License Pepy Total Downloads GitHub Downloads (all assets, all releases) Ruff uv Hatch project Codacy grade


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
  • View battery voltage (planned)
  • Change robot state and OpModes
  • Monitor robot system metrics

Development

This project is in the early stage of development. There are many missing functions that will be supported in the future.