pub struct CuControllerParams {
pub mode: CuControllerMode,
pub tracking_error_limit: f64,
pub state_timeout: Option<Time>,
pub rate_limit: Option<CuRateLimit>,
pub effort_gains: CuEffortGains,
}Expand description
Parameters of CuControllerTask; the node config: block.
config: {
"mode": "position", // position | velocity | effort
"tracking_error_limit": 0.5, // SI per joint kind (rad / m)
"state_timeout": 0.2, // s; omit to disable the watchdog
"rate_limit": {"max_speed": 1.5, "max_acceleration": 6.0},
"effort_gains": {"kp": 20.0, "kv": 0.8},
}use repose_controller::{CuControllerParams, CuControllerTask, CuRateLimit};
let params = CuControllerParams {
rate_limit: Some(CuRateLimit { max_speed: 1.5, max_acceleration: 6.0 }),
..CuControllerParams::default()
};
let task = CuControllerTask::<6>::from_params(params).unwrap();
assert_eq!(task.params().tracking_error_limit, 0.5);Fields§
§mode: CuControllerModeCommand level: position, velocity, or effort.
tracking_error_limit: f64Max allowed absolute joint error (setpoint − measured) before the controller faults and holds the measured state. Dimensionless SI magnitude compared per joint in that joint’s unit: radians for revolute, meters for prismatic joints. Positive and finite.
state_timeout: Option<Time>State watchdog: a joint state whose Tov is older than this (or in
the future, or missing a time) faults the controller. None
disables the watchdog.
rate_limit: Option<CuRateLimit>Command rate limit; requires mode: position. None disables it.
effort_gains: CuEffortGainsEffort-mode PD gains. In effort mode, hold/fault paths apply a
damping brake (-kv * measured velocity); with no measured state
the effort is zero and the bridge’s gravity compensation is all that
holds the arm.
Implementations§
Trait Implementations§
Source§impl Clone for CuControllerParams
impl Clone for CuControllerParams
Source§fn clone(&self) -> CuControllerParams
fn clone(&self) -> CuControllerParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CuControllerParams
Source§impl Debug for CuControllerParams
impl Debug for CuControllerParams
Source§impl Default for CuControllerParams
impl Default for CuControllerParams
Source§impl<'de> Deserialize<'de> for CuControllerParamswhere
CuControllerParams: Default,
impl<'de> Deserialize<'de> for CuControllerParamswhere
CuControllerParams: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CuControllerParams
impl PartialEq for CuControllerParams
Source§impl Serialize for CuControllerParams
impl Serialize for CuControllerParams
impl StructuralPartialEq for CuControllerParams
Source§impl TypePath for CuControllerParams
impl TypePath for CuControllerParams
fn type_path() -> &'static str
fn short_type_path() -> &'static str
fn type_ident() -> Option<&'static str>
fn crate_name() -> Option<&'static str>
fn module_path() -> Option<&'static str>
Auto Trait Implementations§
impl Freeze for CuControllerParams
impl RefUnwindSafe for CuControllerParams
impl Send for CuControllerParams
impl Sync for CuControllerParams
impl Unpin for CuControllerParams
impl UnsafeUnpin for CuControllerParams
impl UnwindSafe for CuControllerParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> GetTypeRegistration for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more