1use crate::messages::Message;
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct RgbImage {
16 pub timestamp: u64,
17 pub frame_id: u64,
18 pub width: u32,
19 pub height: u32,
20 pub encoding: String,
21 pub data: Vec<u8>,
22}
23
24impl Message for RgbImage {}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct DepthImage {
29 pub timestamp: u64,
30 pub frame_id: u64,
31 pub width: u32,
32 pub height: u32,
33 pub data: Vec<f32>,
34}
35
36impl Message for DepthImage {}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct CameraInfo {
41 pub timestamp: u64,
42 pub width: u32,
43 pub height: u32,
44 pub fps: f32,
45}
46
47impl Message for CameraInfo {}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct LaserScan {
56 pub timestamp: u64,
57 pub scan_id: u64,
58 pub angle_min: f32,
59 pub angle_max: f32,
60 pub angle_increment: f32,
61 pub range_min: f32,
62 pub range_max: f32,
63 pub ranges: Vec<f32>,
64 pub intensities: Vec<f32>,
65}
66
67impl Message for LaserScan {}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
75pub struct Odometry {
76 pub timestamp: u64,
77 pub x: f32,
78 pub y: f32,
79 pub theta: f32,
80 pub linear_vel: f32,
81 pub angular_vel: f32,
82}
83
84impl Message for Odometry {}
85
86#[derive(Debug, Clone, Serialize, Deserialize)]
92pub struct ImuData {
93 pub timestamp: u64,
94 pub roll: f32,
96 pub pitch: f32,
97 pub yaw: f32,
98 pub angular_velocity_x: f32,
100 pub angular_velocity_y: f32,
101 pub angular_velocity_z: f32,
102 pub linear_acceleration_x: f32,
104 pub linear_acceleration_y: f32,
105 pub linear_acceleration_z: f32,
106}
107
108impl Message for ImuData {}