use crate::locomotion::common::Gear;
#[derive(Debug, Clone)]
pub struct SwimmerConfig {
pub seed: u64,
pub gear: Gear<2>,
pub dt: f32,
pub frame_skip: u32,
pub reset_noise_scale: f32,
pub max_steps: usize,
pub action_clip: (f32, f32),
pub forward_reward_weight: f32,
pub ctrl_cost_weight: f32,
pub drag_coefficient: f32,
pub angular_drag_coefficient: f32,
pub segment_length: f32,
pub segment_radius: f32,
pub segment_mass: f32,
}
impl Default for SwimmerConfig {
fn default() -> Self {
Self {
seed: 0,
gear: Gear::new([5.0, 5.0]),
dt: 0.005,
frame_skip: 8,
reset_noise_scale: 0.1,
max_steps: 1000,
action_clip: (-1.0, 1.0),
forward_reward_weight: 1.0,
ctrl_cost_weight: 1e-4,
drag_coefficient: 0.1,
angular_drag_coefficient: 0.2,
segment_length: 0.1,
segment_radius: 0.05,
segment_mass: 0.947,
}
}
}