Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
28
crates/agentic-robotics-embedded/Cargo.toml
Normal file
28
crates/agentic-robotics-embedded/Cargo.toml
Normal file
@@ -0,0 +1,28 @@
|
||||
[package]
|
||||
name = "agentic-robotics-embedded"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
authors.workspace = true
|
||||
license.workspace = true
|
||||
repository.workspace = true
|
||||
homepage.workspace = true
|
||||
documentation.workspace = true
|
||||
description.workspace = true
|
||||
keywords.workspace = true
|
||||
categories.workspace = true
|
||||
readme = "README.md"
|
||||
|
||||
[dependencies]
|
||||
agentic-robotics-core = { path = "../agentic-robotics-core", version = "0.1.1" }
|
||||
serde = { workspace = true }
|
||||
anyhow = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
|
||||
# Embedded-specific dependencies (optional for non-embedded builds)
|
||||
# embassy-executor = { version = "0.7", optional = true }
|
||||
# rtic = { version = "2.1", optional = true }
|
||||
|
||||
[features]
|
||||
default = []
|
||||
embassy = []
|
||||
rtic = []
|
||||
54
crates/agentic-robotics-embedded/README.md
Normal file
54
crates/agentic-robotics-embedded/README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# agentic-robotics-embedded
|
||||
|
||||
[](https://crates.io/crates/agentic-robotics-embedded)
|
||||
[](https://docs.rs/agentic-robotics-embedded)
|
||||
[](../../LICENSE)
|
||||
|
||||
**Embedded systems support for Agentic Robotics**
|
||||
|
||||
Part of the [Agentic Robotics](https://github.com/ruvnet/vibecast) framework - high-performance robotics middleware with ROS2 compatibility.
|
||||
|
||||
## Features
|
||||
|
||||
- 🔌 **No-std compatible**: Run on bare-metal embedded systems
|
||||
- ⚡ **RTIC integration**: Real-Time Interrupt-driven Concurrency
|
||||
- 🚀 **Embassy support**: Modern async/await for embedded
|
||||
- 💾 **Minimal footprint**: < 50KB code size
|
||||
- 🎯 **Zero-allocation**: Static memory allocation
|
||||
- 🔋 **Low power**: Optimized for battery-powered robots
|
||||
|
||||
## Installation
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
agentic-robotics-core = { version = "0.1.0", default-features = false }
|
||||
agentic-robotics-embedded = "0.1.0"
|
||||
```
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Status | Framework | Example |
|
||||
|----------|--------|-----------|---------|
|
||||
| **STM32** | ✅ Supported | RTIC, Embassy | STM32F4, STM32H7 |
|
||||
| **ESP32** | ✅ Supported | Embassy | ESP32-C3, ESP32-S3 |
|
||||
| **nRF** | ✅ Supported | Embassy | nRF52, nRF53 |
|
||||
| **RP2040** | ✅ Supported | Embassy | Raspberry Pi Pico |
|
||||
|
||||
## License
|
||||
|
||||
Licensed under either of:
|
||||
|
||||
- Apache License, Version 2.0 ([LICENSE-APACHE](../../LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||
- MIT License ([LICENSE-MIT](../../LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||
|
||||
at your option.
|
||||
|
||||
## Links
|
||||
|
||||
- **Homepage**: [ruv.io](https://ruv.io)
|
||||
- **Documentation**: [docs.rs/agentic-robotics-embedded](https://docs.rs/agentic-robotics-embedded)
|
||||
- **Repository**: [github.com/ruvnet/vibecast](https://github.com/ruvnet/vibecast)
|
||||
|
||||
---
|
||||
|
||||
**Part of the Agentic Robotics framework** • Built with ❤️ by the Agentic Robotics Team
|
||||
41
crates/agentic-robotics-embedded/src/lib.rs
Normal file
41
crates/agentic-robotics-embedded/src/lib.rs
Normal file
@@ -0,0 +1,41 @@
|
||||
//! ROS3 Embedded Systems Support
|
||||
//!
|
||||
//! Provides support for embedded systems using Embassy and RTIC
|
||||
|
||||
|
||||
/// Embedded task priority
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum EmbeddedPriority {
|
||||
Low = 0,
|
||||
Normal = 1,
|
||||
High = 2,
|
||||
Critical = 3,
|
||||
}
|
||||
|
||||
/// Embedded system configuration
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct EmbeddedConfig {
|
||||
pub tick_rate_hz: u32,
|
||||
pub stack_size: usize,
|
||||
}
|
||||
|
||||
impl Default for EmbeddedConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
tick_rate_hz: 1000,
|
||||
stack_size: 4096,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_embedded_config() {
|
||||
let config = EmbeddedConfig::default();
|
||||
assert_eq!(config.tick_rate_hz, 1000);
|
||||
assert_eq!(config.stack_size, 4096);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user