staubli_driver_ros2 main
ROS2 control driver for Staubli robots
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
staubli_robot_driver::RobotStateMessage Class Reference

Robot state message. More...

#include <messages.hpp>

Inheritance diagram for staubli_robot_driver::RobotStateMessage:
[legend]
Collaboration diagram for staubli_robot_driver::RobotStateMessage:
[legend]

Public Member Functions

 RobotStateMessage ()
 
 ~RobotStateMessage ()=default
 
bool serialize (uint8_t *buffer, size_t buffer_size) const override
 Serialize message to bytes.
 
bool deserialize (uint8_t *buffer, size_t buffer_size) override
 Deserialize bytes to message.
 
size_t get_serialized_size () const override
 Size of the entire message in bytes.
 
virtual bool serialize (uint8_t *buffer, size_t buffer_size) const=0
 Serialize message to bytes.
 
bool serialize (std::vector< uint8_t > &data) const
 Serialize message to vector.
 
virtual bool deserialize (uint8_t *buffer, size_t buffer_size)=0
 Deserialize bytes to message.
 
bool deserialize (std::vector< uint8_t > &data)
 Deserialize message from vector.
 
- Public Member Functions inherited from staubli_robot_driver::Message
 Message ()=default
 
virtual ~Message ()=default
 
bool serialize (std::vector< uint8_t > &data) const
 Serialize message to vector.
 
bool deserialize (std::vector< uint8_t > &data)
 Deserialize message from vector.
 

Static Public Member Functions

static size_t message_size ()
 Get the size of the message, static version.
 

Public Attributes

uint16_t sequence_delay = 0
 
OperationMode operation_mode = OperationMode::UNKNOWN
 
uint8_t operation_mode_status = 100
 
CommandType control_state = CommandType::INVALID
 
SafetyStatus safety_status = SafetyStatus::NO_SAFETY_STOP
 
bool power_on = false
 
bool brakes_released = false
 
bool motion_possible = false
 
bool in_motion = false
 
bool error_state = false
 
bool estop_pressed = false
 
bool has_joint_positions = false
 
bool has_joint_velocities = false
 
bool has_joint_torques = false
 
bool has_ft_sensor = false
 
bool has_digital_inputs = false
 
bool has_analog_inputs = false
 
std::array< double, 6 > joint_positions
 
std::array< double, 6 > joint_velocities
 
std::array< double, 6 > joint_torques
 
std::array< double, 6 > ft_sensor
 
std::array< bool, 16 > digital_inputs
 
std::array< double, 4 > analog_inputs
 
- Public Attributes inherited from staubli_robot_driver::Message
FrameHeader header
 Message header.
 
rclcpp::Time reception_timestamp = rclcpp::Time(0)
 Timestamp of the message reception (local clock)
 

Detailed Description

Robot state message.

This message contains the current state of the robot. It is sent periodically by the robot controller.

Payload format:

Note
Array sizes are fixed for Staubli robots with 6 axes.
Arrays are serialized to the frame in order. For example, joint positions are serialized as [J1, J2, J3, J4, J5, J6]. The only exception is the digital inputs, which are serialized as a 16-bit integer with each bit
Joint positions, velocities, torque, and F/T sensor readings are only included if the corresponding valid field flag is set. Otherwise, they are filled with zeros. The same applies to digital and analog inputs. However, if the robot does not have these inputs, they are also filled with zeros.

Constructor & Destructor Documentation

◆ RobotStateMessage()

staubli_robot_driver::RobotStateMessage::RobotStateMessage ( )

◆ ~RobotStateMessage()

staubli_robot_driver::RobotStateMessage::~RobotStateMessage ( )
default

Member Function Documentation

◆ serialize() [1/3]

bool staubli_robot_driver::RobotStateMessage::serialize ( uint8_t buffer,
size_t  buffer_size 
) const
overridevirtual

Serialize message to bytes.

Implements staubli_robot_driver::Message.

◆ deserialize() [1/3]

bool staubli_robot_driver::RobotStateMessage::deserialize ( uint8_t buffer,
size_t  buffer_size 
)
overridevirtual

Deserialize bytes to message.

Implements staubli_robot_driver::Message.

◆ message_size()

static size_t staubli_robot_driver::RobotStateMessage::message_size ( )
static

Get the size of the message, static version.

◆ get_serialized_size()

size_t staubli_robot_driver::RobotStateMessage::get_serialized_size ( ) const
inlineoverridevirtual

Size of the entire message in bytes.

Implements staubli_robot_driver::Message.

◆ serialize() [2/3]

virtual bool staubli_robot_driver::Message::serialize ( uint8_t buffer,
size_t  buffer_size 
) const
virtual

Serialize message to bytes.

Implements staubli_robot_driver::Message.

◆ serialize() [3/3]

bool staubli_robot_driver::Message::serialize ( std::vector< uint8_t > &  data) const

Serialize message to vector.

Warning
This method modifies the input vector by resizing it to the size of the message.
Parameters
dataOutput data buffer. Capacity must be at least message.get_serialized_size().
Returns
true if serialization was successful, false otherwise

◆ deserialize() [2/3]

virtual bool staubli_robot_driver::Message::deserialize ( uint8_t buffer,
size_t  buffer_size 
)
virtual

Deserialize bytes to message.

Implements staubli_robot_driver::Message.

◆ deserialize() [3/3]

bool staubli_robot_driver::Message::deserialize ( std::vector< uint8_t > &  data)

Deserialize message from vector.

Warning
The input vector must be at least the size of the message.
Parameters
dataInput data buffer
Returns
true if deserialization was successful, false otherwise

Member Data Documentation

◆ sequence_delay

uint16_t staubli_robot_driver::RobotStateMessage::sequence_delay = 0

◆ operation_mode

OperationMode staubli_robot_driver::RobotStateMessage::operation_mode = OperationMode::UNKNOWN

◆ operation_mode_status

uint8_t staubli_robot_driver::RobotStateMessage::operation_mode_status = 100

◆ control_state

CommandType staubli_robot_driver::RobotStateMessage::control_state = CommandType::INVALID

◆ safety_status

SafetyStatus staubli_robot_driver::RobotStateMessage::safety_status = SafetyStatus::NO_SAFETY_STOP

◆ power_on

bool staubli_robot_driver::RobotStateMessage::power_on = false

◆ brakes_released

bool staubli_robot_driver::RobotStateMessage::brakes_released = false

◆ motion_possible

bool staubli_robot_driver::RobotStateMessage::motion_possible = false

◆ in_motion

bool staubli_robot_driver::RobotStateMessage::in_motion = false

◆ error_state

bool staubli_robot_driver::RobotStateMessage::error_state = false

◆ estop_pressed

bool staubli_robot_driver::RobotStateMessage::estop_pressed = false

◆ has_joint_positions

bool staubli_robot_driver::RobotStateMessage::has_joint_positions = false

◆ has_joint_velocities

bool staubli_robot_driver::RobotStateMessage::has_joint_velocities = false

◆ has_joint_torques

bool staubli_robot_driver::RobotStateMessage::has_joint_torques = false

◆ has_ft_sensor

bool staubli_robot_driver::RobotStateMessage::has_ft_sensor = false

◆ has_digital_inputs

bool staubli_robot_driver::RobotStateMessage::has_digital_inputs = false

◆ has_analog_inputs

bool staubli_robot_driver::RobotStateMessage::has_analog_inputs = false

◆ joint_positions

std::array<double, 6> staubli_robot_driver::RobotStateMessage::joint_positions

◆ joint_velocities

std::array<double, 6> staubli_robot_driver::RobotStateMessage::joint_velocities

◆ joint_torques

std::array<double, 6> staubli_robot_driver::RobotStateMessage::joint_torques

◆ ft_sensor

std::array<double, 6> staubli_robot_driver::RobotStateMessage::ft_sensor

◆ digital_inputs

std::array<bool, 16> staubli_robot_driver::RobotStateMessage::digital_inputs

◆ analog_inputs

std::array<double, 4> staubli_robot_driver::RobotStateMessage::analog_inputs

The documentation for this class was generated from the following file: