mecha10_core/actuator.rs
1//! Shared actuator message types
2//!
3//! This module contains common actuator command and status message types.
4
5use crate::messages::Message;
6use serde::{Deserialize, Serialize};
7
8// ============================================================================
9// Motor Types
10// ============================================================================
11
12/// Twist (velocity command) message
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct Twist {
15 pub linear: f32, // m/s
16 pub angular: f32, // rad/s
17}
18
19impl Message for Twist {}
20
21/// Motor status message
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct MotorStatus {
24 pub timestamp: u64,
25 pub left_motor_rpm: f32,
26 pub right_motor_rpm: f32,
27 pub battery_voltage: f32,
28 pub temperature_c: f32,
29}
30
31impl Message for MotorStatus {}