Skip to content

Commit 6bf1e58

Browse files
committed
Refactor SimulationMessage
1 parent 0d5ba24 commit 6bf1e58

File tree

13 files changed

+36
-74
lines changed

13 files changed

+36
-74
lines changed

Cargo.lock

Lines changed: 0 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ members = [
4343
"crates/ransac",
4444
"crates/repository",
4545
"crates/ros2",
46-
"crates/simulation-message",
4746
"crates/source_analyzer",
4847
"crates/spl_network",
4948
"crates/spl_network_messages",
@@ -216,7 +215,6 @@ serde_json = "1.0.138"
216215
serde_test = "1.0.177"
217216
sha2 = "0.10.8"
218217
simba = "0.9.0"
219-
simulation-message = { path = "crates/simulation-message" }
220218
smallvec = "1.14.0"
221219
source_analyzer = { path = "crates/source_analyzer" }
222220
spl_network = { path = "crates/spl_network" }

crates/control/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ proptest = { workspace = true }
3636
rand = { workspace = true }
3737
rand_chacha = { workspace = true }
3838
serde = { workspace = true }
39-
simulation-message = { workspace = true }
4039
smallvec = { workspace = true }
4140
spl_network_messages = { workspace = true }
4241
splines = { workspace = true }

crates/control/src/sensor_data_receiver.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use hardware::{LowStateInterface, TimeInterface};
99
use linear_algebra::Vector3;
1010
use nalgebra::UnitQuaternion;
1111
use serde::{Deserialize, Serialize};
12-
use simulation_message::SimulationMessage;
1312
use types::{
1413
cycle_time::CycleTime,
1514
joints::Joints,
@@ -77,13 +76,11 @@ impl SensorDataReceiver {
7776
&mut self,
7877
mut context: CycleContext<impl LowStateInterface + TimeInterface>,
7978
) -> Result<MainOutputs> {
80-
let SimulationMessage { time, payload } = context
79+
let low_state = context
8180
.hardware_interface
8281
.read_low_state()
8382
.wrap_err("failed to read from sensors")?;
8483

85-
let low_state = payload;
86-
8784
// let measured_angular_velocity = low_state.imu_state.angular_velocity;
8885
// let measured_acceleration = low_state.imu_state.linear_acceleration;
8986
// let measured_roll_pitch_yaw = low_state.imu_state.roll_pitch_yaw;

crates/hardware/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,5 @@ booster.workspace = true
1010
color-eyre = { workspace = true }
1111
hula_types = { workspace = true }
1212
ros2 = { workspace = true }
13-
simulation-message = { workspace = true }
1413
types = { workspace = true }
1514
zed = { workspace = true }

crates/hardware/src/lib.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use color_eyre::eyre::Result;
55

66
use hula_types::hardware::{Ids, Paths};
77
use ros2::geometry_msgs::transform_stamped::TransformStamped;
8-
use simulation_message::SimulationMessage;
98
use types::{
109
audio::SpeakerRequest,
1110
camera_position::CameraPosition,
@@ -58,28 +57,28 @@ pub trait SensorInterface {
5857
}
5958

6059
pub trait LowStateInterface {
61-
fn read_low_state(&self) -> Result<SimulationMessage<LowState>>;
60+
fn read_low_state(&self) -> Result<LowState>;
6261
}
6362

6463
pub trait LowCommandInterface {
6564
fn write_low_command(&self, low_command: LowCommand) -> Result<()>;
6665
}
6766

6867
pub trait FallDownStateInterface {
69-
fn read_fall_down_state(&self) -> Result<SimulationMessage<FallDownState>>;
68+
fn read_fall_down_state(&self) -> Result<FallDownState>;
7069
}
7170
pub trait ButtonEventMsgInterface {
72-
fn read_button_event_msg(&self) -> Result<SimulationMessage<ButtonEventMsg>>;
71+
fn read_button_event_msg(&self) -> Result<ButtonEventMsg>;
7372
}
7473
pub trait RemoteControllerStateInterface {
75-
fn read_remote_controller_state(&self) -> Result<SimulationMessage<RemoteControllerState>>;
74+
fn read_remote_controller_state(&self) -> Result<RemoteControllerState>;
7675
}
7776
pub trait TransformStampedInterface {
78-
fn read_transform_stamped(&self) -> Result<SimulationMessage<TransformStamped>>;
77+
fn read_transform_stamped(&self) -> Result<TransformStamped>;
7978
}
8079

8180
pub trait RGBDSensorsInterface {
82-
fn read_rgbd_sensors(&self) -> Result<SimulationMessage<RGBDSensors>>;
81+
fn read_rgbd_sensors(&self) -> Result<RGBDSensors>;
8382
}
8483

8584
pub trait SpeakerInterface {

crates/hulk_mujoco/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ serde_json.workspace = true
4747
serde.workspace = true
4848
spl_network_messages = { workspace = true }
4949
spl_network.workspace = true
50-
simulation-message = { workspace = true }
5150
tokio = { workspace = true }
5251
tokio-tungstenite.workspace = true
5352
tokio-util = { workspace = true }

crates/hulk_mujoco/src/hardware_interface.rs

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ use log::{error, warn};
2020
use parking_lot::Mutex;
2121
use ros2::geometry_msgs::transform_stamped::TransformStamped;
2222
use serde::Deserialize;
23-
use simulation_message::{ClientMessageKind, ServerMessageKind, SimulationMessage};
2423
use spl_network::endpoint::{Endpoint, Ports};
2524
use tokio::{
2625
runtime::{Builder, Runtime},
@@ -33,18 +32,19 @@ use types::messages::{IncomingMessage, OutgoingMessage};
3332
use types::samples::Samples;
3433
use zed::RGBDSensors;
3534

35+
use crate::simulation_message::{ClientMessageKind, ServerMessageKind, SimulationMessage};
3636
use crate::HardwareInterface;
3737

3838
const CHANNEL_CAPACITY: usize = 32;
3939

4040
struct WorkerChannels {
41-
low_state_sender: Sender<SimulationMessage<LowState>>,
41+
low_state_sender: Sender<LowState>,
4242
low_command_receiver: Receiver<LowCommand>,
43-
fall_down_sender: Sender<SimulationMessage<FallDownState>>,
44-
button_event_msg_sender: Sender<SimulationMessage<ButtonEventMsg>>,
45-
remote_controller_state_sender: Sender<SimulationMessage<RemoteControllerState>>,
46-
transform_stamped_sender: Sender<SimulationMessage<TransformStamped>>,
47-
rgbd_sensors_sender: Sender<SimulationMessage<RGBDSensors>>,
43+
fall_down_sender: Sender<FallDownState>,
44+
button_event_msg_sender: Sender<ButtonEventMsg>,
45+
remote_controller_state_sender: Sender<RemoteControllerState>,
46+
transform_stamped_sender: Sender<TransformStamped>,
47+
rgbd_sensors_sender: Sender<RGBDSensors>,
4848
}
4949

5050
#[derive(Clone, Debug, Deserialize)]
@@ -62,13 +62,13 @@ pub struct MujocoHardwareInterface {
6262
enable_recording: AtomicBool,
6363
time: Arc<Mutex<SystemTime>>,
6464

65-
low_state_receiver: Mutex<Receiver<SimulationMessage<LowState>>>,
65+
low_state_receiver: Mutex<Receiver<LowState>>,
6666
low_command_sender: Sender<LowCommand>,
67-
fall_down_receiver: Mutex<Receiver<SimulationMessage<FallDownState>>>,
68-
button_event_msg_receiver: Mutex<Receiver<SimulationMessage<ButtonEventMsg>>>,
69-
remote_controller_state_receiver: Mutex<Receiver<SimulationMessage<RemoteControllerState>>>,
70-
transform_stamped_receiver: Mutex<Receiver<SimulationMessage<TransformStamped>>>,
71-
rgbd_sensors_receiver: Mutex<Receiver<SimulationMessage<RGBDSensors>>>,
67+
fall_down_receiver: Mutex<Receiver<FallDownState>>,
68+
button_event_msg_receiver: Mutex<Receiver<ButtonEventMsg>>,
69+
remote_controller_state_receiver: Mutex<Receiver<RemoteControllerState>>,
70+
transform_stamped_receiver: Mutex<Receiver<TransformStamped>>,
71+
rgbd_sensors_receiver: Mutex<Receiver<RGBDSensors>>,
7272
}
7373

7474
impl MujocoHardwareInterface {
@@ -180,10 +180,7 @@ async fn handle_message(
180180
time,
181181
} => {
182182
*hardware_interface_time.lock() = time;
183-
worker_channels
184-
.low_state_sender
185-
.send(SimulationMessage::new(time, low_state))
186-
.await?
183+
worker_channels.low_state_sender.send(low_state).await?
187184
}
188185
SimulationMessage {
189186
payload: ServerMessageKind::FallDownState(fall_down_state),
@@ -192,16 +189,17 @@ async fn handle_message(
192189
*hardware_interface_time.lock() = time;
193190
worker_channels
194191
.fall_down_sender
195-
.send(SimulationMessage::new(time, fall_down_state))
192+
.send(fall_down_state)
196193
.await?
197194
}
198195
SimulationMessage {
199196
payload: ServerMessageKind::ButtonEventMsg(button_event_msg),
200197
time,
201198
} => {
199+
*hardware_interface_time.lock() = time;
202200
worker_channels
203201
.button_event_msg_sender
204-
.send(SimulationMessage::new(time, button_event_msg))
202+
.send(button_event_msg)
205203
.await?
206204
}
207205
SimulationMessage {
@@ -211,7 +209,7 @@ async fn handle_message(
211209
*hardware_interface_time.lock() = time;
212210
worker_channels
213211
.remote_controller_state_sender
214-
.send(SimulationMessage::new(time, remote_controller_state))
212+
.send(remote_controller_state)
215213
.await?
216214
}
217215
SimulationMessage {
@@ -221,7 +219,7 @@ async fn handle_message(
221219
*hardware_interface_time.lock() = time;
222220
worker_channels
223221
.transform_stamped_sender
224-
.send(SimulationMessage::new(time, transform_stamped))
222+
.send(transform_stamped)
225223
.await?
226224
}
227225
SimulationMessage {
@@ -231,7 +229,7 @@ async fn handle_message(
231229
*hardware_interface_time.lock() = time;
232230
worker_channels
233231
.rgbd_sensors_sender
234-
.send(SimulationMessage::new(time, rgbd_sensors))
232+
.send(rgbd_sensors)
235233
.await?
236234
}
237235
};
@@ -240,7 +238,7 @@ async fn handle_message(
240238
}
241239

242240
impl LowStateInterface for MujocoHardwareInterface {
243-
fn read_low_state(&self) -> Result<SimulationMessage<LowState>> {
241+
fn read_low_state(&self) -> Result<LowState> {
244242
self.low_state_receiver
245243
.lock()
246244
.blocking_recv()
@@ -257,7 +255,7 @@ impl LowCommandInterface for MujocoHardwareInterface {
257255
}
258256

259257
impl FallDownStateInterface for MujocoHardwareInterface {
260-
fn read_fall_down_state(&self) -> Result<SimulationMessage<FallDownState>> {
258+
fn read_fall_down_state(&self) -> Result<FallDownState> {
261259
self.fall_down_receiver
262260
.lock()
263261
.blocking_recv()
@@ -266,7 +264,7 @@ impl FallDownStateInterface for MujocoHardwareInterface {
266264
}
267265

268266
impl ButtonEventMsgInterface for MujocoHardwareInterface {
269-
fn read_button_event_msg(&self) -> Result<SimulationMessage<ButtonEventMsg>> {
267+
fn read_button_event_msg(&self) -> Result<ButtonEventMsg> {
270268
self.button_event_msg_receiver
271269
.lock()
272270
.blocking_recv()
@@ -275,7 +273,7 @@ impl ButtonEventMsgInterface for MujocoHardwareInterface {
275273
}
276274

277275
impl RemoteControllerStateInterface for MujocoHardwareInterface {
278-
fn read_remote_controller_state(&self) -> Result<SimulationMessage<RemoteControllerState>> {
276+
fn read_remote_controller_state(&self) -> Result<RemoteControllerState> {
279277
self.remote_controller_state_receiver
280278
.lock()
281279
.blocking_recv()
@@ -284,7 +282,7 @@ impl RemoteControllerStateInterface for MujocoHardwareInterface {
284282
}
285283

286284
impl TransformStampedInterface for MujocoHardwareInterface {
287-
fn read_transform_stamped(&self) -> Result<SimulationMessage<TransformStamped>> {
285+
fn read_transform_stamped(&self) -> Result<TransformStamped> {
288286
self.transform_stamped_receiver
289287
.lock()
290288
.blocking_recv()
@@ -293,7 +291,7 @@ impl TransformStampedInterface for MujocoHardwareInterface {
293291
}
294292

295293
impl RGBDSensorsInterface for MujocoHardwareInterface {
296-
fn read_rgbd_sensors(&self) -> Result<SimulationMessage<RGBDSensors>> {
294+
fn read_rgbd_sensors(&self) -> Result<RGBDSensors> {
297295
self.rgbd_sensors_receiver
298296
.lock()
299297
.blocking_recv()

crates/hulk_mujoco/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use crate::execution::run;
1919
use crate::hardware_interface::{MujocoHardwareInterface, Parameters as HardwareParameters};
2020

2121
mod hardware_interface;
22+
mod simulation_message;
2223

2324
pub fn setup_logger() -> Result<(), fern::InitError> {
2425
fern::Dispatch::new()

0 commit comments

Comments
 (0)