MultiDOFJointState

Struct MultiDOFJointState 

Source
#[repr(C)]
pub struct MultiDOFJointState { pub header: Header, pub joint_names: Vec<String>, pub transforms: Vec<Transform>, pub twist: Vec<Twist>, pub wrench: Vec<Wrench>, }
Expand description

Representation of state for joints with multiple degrees of freedom, following the structure of JointState which can only represent a single degree of freedom.

It is assumed that a joint in a system corresponds to a transform that gets applied along the kinematic chain. For example, a planar joint (as in URDF) is 3DOF (x, y, yaw) and those 3DOF can be expressed as a transformation matrix, and that transformation matrix can be converted back to (x, y, yaw)

Each joint is uniquely identified by its name The header specifies the time at which the joint states were recorded. All the joint states in one message have to be recorded at the same time.

This message consists of a multiple arrays, one for each part of the joint state. The goal is to make each of the fields optional. When e.g. your joints have no wrench associated with them, you can leave the wrench array empty.

All arrays in this message should have the same size, or be empty. This is the only way to uniquely associate the joint name with the correct states.

Fields§

§header: Header§joint_names: Vec<String>§transforms: Vec<Transform>§twist: Vec<Twist>§wrench: Vec<Wrench>

Implementations§

Source§

impl MultiDOFJointState

Source

pub fn create_topic_with_name( participant: &DdsParticipant, name: &str, maybe_qos: Option<DdsQos>, maybe_listener: Option<DdsListener>, ) -> Result<DdsTopic<Self>, DDSError>

Create a topic using of this Type specifying the topic name

§Arguments
  • participant - The participant handle onto which this topic should be created
  • name - The name of the topic
  • maybe_qos - A QoS structure for this topic. The Qos is optional
  • maybe_listener - A listener to use on this topic. The listener is optional
Source

pub fn create_topic( participant: &DdsParticipant, maybe_topic_prefix: Option<&str>, maybe_qos: Option<DdsQos>, maybe_listener: Option<DdsListener>, ) -> Result<DdsTopic<Self>, DDSError>

Create a topic of this Type using the default topic name. The default topic name is provided by the Self::topic_name function.

§Arguments
  • participant - The participant handle onto which this topic should be created
  • maybe_topic_prefix - An additional prefix to be added to the topic name. This can be None
  • maybe_qos - A QoS structure for this topic. The Qos is optional
  • maybe_listener - A listener to use on this topic. The listener is optional
Source

pub fn create_sample_buffer(len: usize) -> SampleBuffer<MultiDOFJointState>

Create a sample buffer for storing an array of samples You can pass the sample buffer into a read to read multiple samples. Multiple samples are useful when you have one or more keys in your topic structure. Each value of the key will result in the storage of another sample.

Trait Implementations§

Source§

impl<'de> Deserialize<'de> for MultiDOFJointState

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for MultiDOFJointState

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TopicType for MultiDOFJointState

Source§

fn key_cdr(&self) -> Vec<u8>

return the cdr encoding for the key. The encoded string includes the four byte encapsulation string.

Source§

fn is_fixed_size() -> bool

Source§

fn has_key() -> bool

Source§

fn force_md5_keyhash() -> bool

Source§

fn hash(&self, basehash: u32) -> u32

Source§

fn typename() -> CString

The type name for this topic
Source§

fn topic_name(maybe_prefix: Option<&str>) -> String

The default topic_name to use when creating a topic of this type. The default implementation uses ‘/’ instead of ‘::’ to form a unix like path. A prefix can optionally be added

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,