pub struct Orbita3dController {
pub kinematics: Orbita3dKinematicsModel,
/* private fields */
}
Expand description
Orbita3d Controller
Fields§
§kinematics: Orbita3dKinematicsModel
Implementations§
Source§impl Orbita3dController
impl Orbita3dController
Sourcepub fn with_config(configfile: &str) -> Result<Self>
pub fn with_config(configfile: &str) -> Result<Self>
Creates a new Orbita3dController using the given configuration file.
Source§impl Orbita3dController
impl Orbita3dController
Sourcepub fn is_torque_on(&mut self) -> Result<bool>
pub fn is_torque_on(&mut self) -> Result<bool>
Check if the torque is ON or OFF
Sourcepub fn enable_torque(&mut self, reset_target: bool) -> Result<()>
pub fn enable_torque(&mut self, reset_target: bool) -> Result<()>
Enable the torque
§Arguments
- reset_target: if true, the target position will be reset to the current position
Sourcepub fn disable_torque(&mut self) -> Result<()>
pub fn disable_torque(&mut self) -> Result<()>
Disable the torque
Sourcepub fn get_current_orientation(&mut self) -> Result<[f64; 4]>
pub fn get_current_orientation(&mut self) -> Result<[f64; 4]>
Get the current orientation (as quaternion (qx, qy, qz, qw))
Sourcepub fn get_current_rpy_orientation(&mut self) -> Result<[f64; 3]>
pub fn get_current_rpy_orientation(&mut self) -> Result<[f64; 3]>
Get the current orientation (as intrinsic rpy with multiturn)
Sourcepub fn get_current_velocity(&mut self) -> Result<[f64; 3]>
pub fn get_current_velocity(&mut self) -> Result<[f64; 3]>
Get the current velocity $\omega$ (as a velocity pseudo vector (wx, wy, wz) which defines the instantaneous axis of rotation and with the norm represents the velocity)
Sourcepub fn get_current_torque(&mut self) -> Result<[f64; 3]>
pub fn get_current_torque(&mut self) -> Result<[f64; 3]>
Get the current torque (as pseudo vector)
Sourcepub fn get_target_orientation(&mut self) -> Result<[f64; 4]>
pub fn get_target_orientation(&mut self) -> Result<[f64; 4]>
Get the target orientation (as quaternion (qx, qy, qz, qw))
Sourcepub fn get_target_rpy_orientation(&mut self) -> Result<[f64; 3]>
pub fn get_target_rpy_orientation(&mut self) -> Result<[f64; 3]>
Get the target orientation (as intrinsic rpy with multiturn)
Sourcepub fn set_target_orientation(&mut self, target: [f64; 4]) -> Result<()>
pub fn set_target_orientation(&mut self, target: [f64; 4]) -> Result<()>
Set the target orientation (as quaternion (qx, qy, qz, qw))
Sourcepub fn set_target_rpy_orientation(&mut self, target: [f64; 3]) -> Result<()>
pub fn set_target_rpy_orientation(&mut self, target: [f64; 3]) -> Result<()>
Set the target orientation fro the roll pitch yaw intrinsic angles (taking multi turn into account)
Sourcepub fn set_target_orientation_fb(
&mut self,
target: [f64; 4],
) -> Result<Orbita3dFeedback>
pub fn set_target_orientation_fb( &mut self, target: [f64; 4], ) -> Result<Orbita3dFeedback>
Set the target orientation (as quaternion (qx, qy, qz, qw)) with feedback
Sourcepub fn set_target_rpy_orientation_fb(
&mut self,
target: [f64; 3],
) -> Result<[f64; 3]>
pub fn set_target_rpy_orientation_fb( &mut self, target: [f64; 3], ) -> Result<[f64; 3]>
Set the target orientation from roll pitch yaw (accepts yaw>180°) intrinsic angles with feedback => returns feedback rpy
Sourcepub fn get_raw_motors_positions(&mut self) -> Result<[f64; 3]>
pub fn get_raw_motors_positions(&mut self) -> Result<[f64; 3]>
Get the position of each raw motor (in rad) caution: this is the raw value used by the motors used inside the actuator, not the orbita3d orientation!
Sourcepub fn get_raw_motors_velocity_limit(&mut self) -> Result<[f64; 3]>
pub fn get_raw_motors_velocity_limit(&mut self) -> Result<[f64; 3]>
Get the velocity limit of each raw motor (in rad/s) caution: this is the raw value used by the motors used inside the actuator, not a limit to orbita3d orientation!
Sourcepub fn set_raw_motors_velocity_limit(&mut self, limit: [f64; 3]) -> Result<()>
pub fn set_raw_motors_velocity_limit(&mut self, limit: [f64; 3]) -> Result<()>
Set the velocity limit of each raw motor (in rad/s) caution: this is the raw value used by the motors used inside the actuator, not a limit to orbita3d orientation!
Sourcepub fn get_raw_motors_torque_limit(&mut self) -> Result<[f64; 3]>
pub fn get_raw_motors_torque_limit(&mut self) -> Result<[f64; 3]>
Get the torque limit of each raw motor (in N.m) caution: this is the raw value used by the motors used inside the actuator, not a limit to orbita3d orientation!
Sourcepub fn set_raw_motors_torque_limit(&mut self, limit: [f64; 3]) -> Result<()>
pub fn set_raw_motors_torque_limit(&mut self, limit: [f64; 3]) -> Result<()>
Set the torque limit of each raw motor (in N.m) caution: this is the raw value used by the motors used inside the actuator, not a limit to orbita3d orientation!
Sourcepub fn get_raw_motors_pid_gains(&mut self) -> Result<[PID; 3]>
pub fn get_raw_motors_pid_gains(&mut self) -> Result<[PID; 3]>
Get the pid gains of each raw motor caution: this is the raw value used by the motors used inside the actuator, not on orbita3d orientation!
Sourcepub fn set_raw_motors_pid_gains(&mut self, gains: [PID; 3]) -> Result<()>
pub fn set_raw_motors_pid_gains(&mut self, gains: [PID; 3]) -> Result<()>
Set the pid gains of each raw motor caution: this is the raw value used by the motors used inside the actuator, not on orbita3d orientation!
Sourcepub fn get_raw_motors_velocity(&mut self) -> Result<[f64; 3]>
pub fn get_raw_motors_velocity(&mut self) -> Result<[f64; 3]>
Get the raw motors velocity in rad/s (top, middle, bottom)
Sourcepub fn get_raw_motors_current(&mut self) -> Result<[f64; 3]>
pub fn get_raw_motors_current(&mut self) -> Result<[f64; 3]>
Get the raw motors current in mA (top, middle, bottom)
Sourcepub fn get_axis_sensors(&mut self) -> Result<[f64; 3]>
pub fn get_axis_sensors(&mut self) -> Result<[f64; 3]>
Get the axis sensors values (gearbox mounted absolute magnetic encoder)
Sourcepub fn get_axis_sensor_zeros(&mut self) -> Result<[f64; 3]>
pub fn get_axis_sensor_zeros(&mut self) -> Result<[f64; 3]>
Get the axis sensor zeros values (random offset from factory)
Sourcepub fn get_error_codes(&mut self) -> Result<[i32; 3]>
pub fn get_error_codes(&mut self) -> Result<[i32; 3]>
Get the error codes from the motors
Sourcepub fn get_motor_temperatures(&mut self) -> Result<[f64; 3]>
pub fn get_motor_temperatures(&mut self) -> Result<[f64; 3]>
Get the temperature for each motor in °C from a NTC sensor in contact with the motor body (top, middle, bottom)
Sourcepub fn get_board_temperatures(&mut self) -> Result<[f64; 3]>
pub fn get_board_temperatures(&mut self) -> Result<[f64; 3]>
Get the temperature for each H-Gate in °C (top, middle, bottom)
Sourcepub fn get_board_state(&mut self) -> Result<u8>
pub fn get_board_state(&mut self) -> Result<u8>
Get the board state register
Sourcepub fn set_board_state(&mut self, state: u8) -> Result<()>
pub fn set_board_state(&mut self, state: u8) -> Result<()>
Get the board state register
Sourcepub fn get_control_mode(&mut self) -> Result<[u8; 3]>
pub fn get_control_mode(&mut self) -> Result<[u8; 3]>
Get the current mode of operation (cf. firmware_poulpe documentation)
Sourcepub fn set_control_mode(&mut self, mode: [u8; 3]) -> Result<()>
pub fn set_control_mode(&mut self, mode: [u8; 3]) -> Result<()>
Set the current mode of operation (cf. firmware_poulpe documentation). Currently valid: 0=NoMode, 1=ProfilePositionMode, 3=ProfileVelocityMode, 4=ProfileTorqueMode
Sourcepub fn emergency_stop(&mut self)
pub fn emergency_stop(&mut self)
Triggers and emergency stop
Auto Trait Implementations§
impl Freeze for Orbita3dController
impl !RefUnwindSafe for Orbita3dController
impl Send for Orbita3dController
impl !Sync for Orbita3dController
impl Unpin for Orbita3dController
impl !UnwindSafe for Orbita3dController
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.