owb-core 0.1.0

Core drivers and utilities for the Omni‑Wheel Bot (no‑std embedded robotics)
Documentation

owb-core

Core drivers and utilities for the Omni-Wheel Bot on no-std embedded platforms.

crates.io docs.rs license

Overview

The owb-core crate provides core abstractions, drivers, and helper utilities for building omnidirectional robot firmware using the embedded-hal and Embassy ecosystems.

It is designed for no-std targets and supports async/await via Embassy.

Quick Start

Add owb-core to your Cargo.toml:

[dependencies]
owb-core = "0.1"

In your application:

#![no_std]
#![no_main]

use owb_core::utils::math::Vector2;

#[embassy_executor::main]
async fn main(_spawner: embassy_executor::Spawner) {
    // Initialize peripherals and scheduler...
    let v = Vector2::new(1.0, 0.0);
    // Use utilities and controllers to drive the wheels
}

Features

Documentation

Full API documentation is available on docs.rs.

WebSocket server

use picoserve::Router;
use embassy_executor::Spawner;
use owb_core::utils::connection::server::{WebSocket, ServerTimer};

#[embassy_executor::main]
async fn main(_spawner: Spawner) {
    // Build the WebSocket route at `/ws`
    let mut router = Router::new();
    router.ws("/ws", WebSocket, ServerTimer);

    // Listen for incoming WebSocket connections indefinitely
    router.listen().await.unwrap();
}

License

This project is dual-licensed under MIT OR Apache-2.0. See the [LICENSE-MIT] and [LICENSE-APACHE] files for details.