Public Member Functions | Private Member Functions | Private Attributes | List of all members
sick::SickSafetyscannersRos Class Reference

The SickSafetyscannersRos class. More...

#include <SickSafetyscannersRos.h>

Public Member Functions

 SickSafetyscannersRos ()
 Constructor of the SickSafetyscannersRos. More...
 
virtual ~SickSafetyscannersRos ()
 ~SickSafetyscannersRos Destructor if the SickSafetyscanners ROS More...
 

Private Member Functions

sick_safetyscanners::ApplicationDataMsg createApplicationDataMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::ApplicationInputsMsg createApplicationInputsMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::ApplicationOutputsMsg createApplicationOutputsMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::DataHeaderMsg createDataHeaderMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::DerivedValuesMsg createDerivedValuesMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::ExtendedLaserScanMsg createExtendedLaserScanMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::GeneralSystemStateMsg createGeneralSystemStateMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::IntrusionDataMsg createIntrusionDataMessage (const sick::datastructure::Data &data)
 
std::vector< sick_safetyscanners::IntrusionDatumMsg > createIntrusionDatumMessageVector (const sick::datastructure::Data &data)
 
sensor_msgs::LaserScan createLaserScanMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::MeasurementDataMsg createMeasurementDataMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::OutputPathsMsg createOutputPathsMessage (const sick::datastructure::Data &data)
 
sick_safetyscanners::RawMicroScanDataMsg createRawDataMessage (const sick::datastructure::Data &data)
 
std::vector< sick_safetyscanners::ScanPointMsg > createScanPointMessageVector (const sick::datastructure::Data &data)
 
std::string getCheckSumString (uint32_t checksum)
 getCheckSumString converts the uint32 value received as checksum such that the hexadecimal representation matches the value in the SafetyDesigner. To do this, we must invert the order of the bytes More...
 
bool getConfigMetadata (sick_safetyscanners::ConfigMetadata::Request &req, sick_safetyscanners::ConfigMetadata::Response &res)
 
std::string getDateString (uint32_t days_since_1972, uint32_t milli_seconds)
 getDateString converts the date representation received as days since 1972-01-01 and milliseconds since the start of that day to the form as given in the Cola2 documentation More...
 
bool getFieldData (sick_safetyscanners::FieldData::Request &req, sick_safetyscanners::FieldData::Response &res)
 
std::vector< bool > getMedianReflectors (const std::vector< sick::datastructure::ScanPoint > scan_points)
 
bool getStatusOverview (sick_safetyscanners::StatusOverview::Request &req, sick_safetyscanners::StatusOverview::Response &res)
 
bool isInitialised ()
 
bool readParameters ()
 Reads and verifies the ROS parameters. More...
 
void readPersistentConfig ()
 
void readTypeCodeSettings ()
 
void receivedUDPPacket (const datastructure::Data &data)
 Function which is called when a new complete UDP Packet is received. More...
 
void reconfigureCallback (const sick_safetyscanners::SickSafetyscannersConfigurationConfig &config, const uint32_t &level)
 Function which is triggered when a dynamic reconfiguration is performed. More...
 
void sensorDiagnostics (diagnostic_updater::DiagnosticStatusWrapper &diagnostic_status)
 

Private Attributes

sick::datastructure::ConfigMetadata config_meta_data
 
sick::datastructure::FirmwareVersion firmware_version
 
float m_angle_offset
 
sick::datastructure::CommSettings m_communication_settings
 
ros::ServiceServer m_config_metadata_server
 
std::shared_ptr< sick::SickSafetyscannersm_device
 
std::shared_ptr< DiagnosedLaserScanPublisherm_diagnosed_laser_scan_publisher
 
diagnostic_updater::Updater m_diagnostic_updater
 
dynamic_reconfigure::Server< sick_safetyscanners::SickSafetyscannersConfigurationConfig > m_dynamic_reconfiguration_server
 
double m_expected_frequency = 20.0
 
ros::Publisher m_extended_laser_scan_publisher
 
ros::ServiceServer m_field_service_server
 
std::string m_frame_id
 
double m_frequency_tolerance = 0.1
 
bool m_initialised
 
boost::asio::ip::address_v4 m_interface_ip
 
ros::Publisher m_laser_scan_publisher
 ROS topic publisher. More...
 
sick_safetyscanners::RawMicroScanDataMsg m_last_raw_data
 
double m_min_intensities = 0.0
 
ros::NodeHandle m_nh
 ROS node handle. More...
 
ros::Publisher m_output_path_publisher
 
ros::NodeHandle m_private_nh
 ROS private node handle. More...
 
double m_range_max
 
double m_range_min
 
ros::Publisher m_raw_data_publisher
 
ros::ServiceServer m_status_overview_server
 
double m_time_offset
 
double m_timestamp_max_acceptable = 1.0
 
double m_timestamp_min_acceptable = -1.0
 
bool m_use_pers_conf
 
bool m_use_sick_angles
 

Detailed Description

The SickSafetyscannersRos class.

Main class for the node to handle the ROS interfacing.

Definition at line 107 of file SickSafetyscannersRos.h.

Constructor & Destructor Documentation

◆ SickSafetyscannersRos()

sick::SickSafetyscannersRos::SickSafetyscannersRos ( )

Constructor of the SickSafetyscannersRos.

Constructor of the SickSafetyscannersRos, loads all parameters from the parameter server, initialises the dynamic reconfiguration server. Furthermore initialises the ROS Publishers for the different laserscan outputs.

Definition at line 41 of file SickSafetyscannersRos.cpp.

◆ ~SickSafetyscannersRos()

sick::SickSafetyscannersRos::~SickSafetyscannersRos ( )
virtual

~SickSafetyscannersRos Destructor if the SickSafetyscanners ROS

Definition at line 165 of file SickSafetyscannersRos.cpp.

Member Function Documentation

◆ createApplicationDataMessage()

sick_safetyscanners::ApplicationDataMsg sick::SickSafetyscannersRos::createApplicationDataMessage ( const sick::datastructure::Data data)
private

Definition at line 698 of file SickSafetyscannersRos.cpp.

◆ createApplicationInputsMessage()

sick_safetyscanners::ApplicationInputsMsg sick::SickSafetyscannersRos::createApplicationInputsMessage ( const sick::datastructure::Data data)
private

Definition at line 711 of file SickSafetyscannersRos.cpp.

◆ createApplicationOutputsMessage()

sick_safetyscanners::ApplicationOutputsMsg sick::SickSafetyscannersRos::createApplicationOutputsMessage ( const sick::datastructure::Data data)
private

Definition at line 744 of file SickSafetyscannersRos.cpp.

◆ createDataHeaderMessage()

sick_safetyscanners::DataHeaderMsg sick::SickSafetyscannersRos::createDataHeaderMessage ( const sick::datastructure::Data data)
private

Definition at line 522 of file SickSafetyscannersRos.cpp.

◆ createDerivedValuesMessage()

sick_safetyscanners::DerivedValuesMsg sick::SickSafetyscannersRos::createDerivedValuesMessage ( const sick::datastructure::Data data)
private

Definition at line 550 of file SickSafetyscannersRos.cpp.

◆ createExtendedLaserScanMessage()

sick_safetyscanners::ExtendedLaserScanMsg sick::SickSafetyscannersRos::createExtendedLaserScanMessage ( const sick::datastructure::Data data)
private

Definition at line 367 of file SickSafetyscannersRos.cpp.

◆ createGeneralSystemStateMessage()

sick_safetyscanners::GeneralSystemStateMsg sick::SickSafetyscannersRos::createGeneralSystemStateMessage ( const sick::datastructure::Data data)
private

Definition at line 569 of file SickSafetyscannersRos.cpp.

◆ createIntrusionDataMessage()

sick_safetyscanners::IntrusionDataMsg sick::SickSafetyscannersRos::createIntrusionDataMessage ( const sick::datastructure::Data data)
private

Definition at line 662 of file SickSafetyscannersRos.cpp.

◆ createIntrusionDatumMessageVector()

std::vector< sick_safetyscanners::IntrusionDatumMsg > sick::SickSafetyscannersRos::createIntrusionDatumMessageVector ( const sick::datastructure::Data data)
private

Definition at line 674 of file SickSafetyscannersRos.cpp.

◆ createLaserScanMessage()

sensor_msgs::LaserScan sick::SickSafetyscannersRos::createLaserScanMessage ( const sick::datastructure::Data data)
private

Definition at line 418 of file SickSafetyscannersRos.cpp.

◆ createMeasurementDataMessage()

sick_safetyscanners::MeasurementDataMsg sick::SickSafetyscannersRos::createMeasurementDataMessage ( const sick::datastructure::Data data)
private

Definition at line 620 of file SickSafetyscannersRos.cpp.

◆ createOutputPathsMessage()

sick_safetyscanners::OutputPathsMsg sick::SickSafetyscannersRos::createOutputPathsMessage ( const sick::datastructure::Data data)
private

Definition at line 473 of file SickSafetyscannersRos.cpp.

◆ createRawDataMessage()

sick_safetyscanners::RawMicroScanDataMsg sick::SickSafetyscannersRos::createRawDataMessage ( const sick::datastructure::Data data)
private

Definition at line 507 of file SickSafetyscannersRos.cpp.

◆ createScanPointMessageVector()

std::vector< sick_safetyscanners::ScanPointMsg > sick::SickSafetyscannersRos::createScanPointMessageVector ( const sick::datastructure::Data data)
private

Definition at line 633 of file SickSafetyscannersRos.cpp.

◆ getCheckSumString()

std::string sick::SickSafetyscannersRos::getCheckSumString ( uint32_t  checksum)
private

getCheckSumString converts the uint32 value received as checksum such that the hexadecimal representation matches the value in the SafetyDesigner. To do this, we must invert the order of the bytes

Parameters
checksumas returned from API
Returns
hex string representing uint32 from reverted byte order

Definition at line 913 of file SickSafetyscannersRos.cpp.

◆ getConfigMetadata()

bool sick::SickSafetyscannersRos::getConfigMetadata ( sick_safetyscanners::ConfigMetadata::Request &  req,
sick_safetyscanners::ConfigMetadata::Response &  res 
)
private

Definition at line 853 of file SickSafetyscannersRos.cpp.

◆ getDateString()

std::string sick::SickSafetyscannersRos::getDateString ( uint32_t  days_since_1972,
uint32_t  milli_seconds 
)
private

getDateString converts the date representation received as days since 1972-01-01 and milliseconds since the start of that day to the form as given in the Cola2 documentation

Parameters
days_since_1972days from Jan 1, 1972 until day of transfer/modification
milli_secondsmilliseconds since 0:00 on that day of transfer/modification
Returns
date string in the format YYYY-mm-DD HH:MM:SS

Definition at line 921 of file SickSafetyscannersRos.cpp.

◆ getFieldData()

bool sick::SickSafetyscannersRos::getFieldData ( sick_safetyscanners::FieldData::Request &  req,
sick_safetyscanners::FieldData::Response &  res 
)
private

Definition at line 802 of file SickSafetyscannersRos.cpp.

◆ getMedianReflectors()

std::vector< bool > sick::SickSafetyscannersRos::getMedianReflectors ( const std::vector< sick::datastructure::ScanPoint scan_points)
private

Definition at line 392 of file SickSafetyscannersRos.cpp.

◆ getStatusOverview()

bool sick::SickSafetyscannersRos::getStatusOverview ( sick_safetyscanners::StatusOverview::Request &  req,
sick_safetyscanners::StatusOverview::Response &  res 
)
private

Definition at line 882 of file SickSafetyscannersRos.cpp.

◆ isInitialised()

bool sick::SickSafetyscannersRos::isInitialised ( )
private

Definition at line 159 of file SickSafetyscannersRos.cpp.

◆ readParameters()

bool sick::SickSafetyscannersRos::readParameters ( )
private

Reads and verifies the ROS parameters.

Returns
True if successful.

Definition at line 167 of file SickSafetyscannersRos.cpp.

◆ readPersistentConfig()

void sick::SickSafetyscannersRos::readPersistentConfig ( )
private

Definition at line 116 of file SickSafetyscannersRos.cpp.

◆ readTypeCodeSettings()

void sick::SickSafetyscannersRos::readTypeCodeSettings ( )
private

Definition at line 106 of file SickSafetyscannersRos.cpp.

◆ receivedUDPPacket()

void sick::SickSafetyscannersRos::receivedUDPPacket ( const datastructure::Data data)
private

Function which is called when a new complete UDP Packet is received.

Parameters
data,theassortment of all data from the sensor

Definition at line 267 of file SickSafetyscannersRos.cpp.

◆ reconfigureCallback()

void sick::SickSafetyscannersRos::reconfigureCallback ( const sick_safetyscanners::SickSafetyscannersConfigurationConfig &  config,
const uint32_t &  level 
)
private

Function which is triggered when a dynamic reconfiguration is performed.

Parameters
configThe new configuration to set
levelLevel of the new configuration

Definition at line 125 of file SickSafetyscannersRos.cpp.

◆ sensorDiagnostics()

void sick::SickSafetyscannersRos::sensorDiagnostics ( diagnostic_updater::DiagnosticStatusWrapper diagnostic_status)
private

Definition at line 298 of file SickSafetyscannersRos.cpp.

Member Data Documentation

◆ config_meta_data

sick::datastructure::ConfigMetadata sick::SickSafetyscannersRos::config_meta_data
private

Definition at line 142 of file SickSafetyscannersRos.h.

◆ firmware_version

sick::datastructure::FirmwareVersion sick::SickSafetyscannersRos::firmware_version
private

Definition at line 143 of file SickSafetyscannersRos.h.

◆ m_angle_offset

float sick::SickSafetyscannersRos::m_angle_offset
private

Definition at line 171 of file SickSafetyscannersRos.h.

◆ m_communication_settings

sick::datastructure::CommSettings sick::SickSafetyscannersRos::m_communication_settings
private

Definition at line 154 of file SickSafetyscannersRos.h.

◆ m_config_metadata_server

ros::ServiceServer sick::SickSafetyscannersRos::m_config_metadata_server
private

Definition at line 147 of file SickSafetyscannersRos.h.

◆ m_device

std::shared_ptr<sick::SickSafetyscanners> sick::SickSafetyscannersRos::m_device
private

Definition at line 152 of file SickSafetyscannersRos.h.

◆ m_diagnosed_laser_scan_publisher

std::shared_ptr<DiagnosedLaserScanPublisher> sick::SickSafetyscannersRos::m_diagnosed_laser_scan_publisher
private

Definition at line 140 of file SickSafetyscannersRos.h.

◆ m_diagnostic_updater

diagnostic_updater::Updater sick::SickSafetyscannersRos::m_diagnostic_updater
private

Definition at line 139 of file SickSafetyscannersRos.h.

◆ m_dynamic_reconfiguration_server

dynamic_reconfigure::Server<sick_safetyscanners::SickSafetyscannersConfigurationConfig> sick::SickSafetyscannersRos::m_dynamic_reconfiguration_server
private

Definition at line 158 of file SickSafetyscannersRos.h.

◆ m_expected_frequency

double sick::SickSafetyscannersRos::m_expected_frequency = 20.0
private

Definition at line 165 of file SickSafetyscannersRos.h.

◆ m_extended_laser_scan_publisher

ros::Publisher sick::SickSafetyscannersRos::m_extended_laser_scan_publisher
private

Definition at line 134 of file SickSafetyscannersRos.h.

◆ m_field_service_server

ros::ServiceServer sick::SickSafetyscannersRos::m_field_service_server
private

Definition at line 146 of file SickSafetyscannersRos.h.

◆ m_frame_id

std::string sick::SickSafetyscannersRos::m_frame_id
private

Definition at line 160 of file SickSafetyscannersRos.h.

◆ m_frequency_tolerance

double sick::SickSafetyscannersRos::m_frequency_tolerance = 0.1
private

Definition at line 164 of file SickSafetyscannersRos.h.

◆ m_initialised

bool sick::SickSafetyscannersRos::m_initialised
private

Definition at line 150 of file SickSafetyscannersRos.h.

◆ m_interface_ip

boost::asio::ip::address_v4 sick::SickSafetyscannersRos::m_interface_ip
private

Definition at line 155 of file SickSafetyscannersRos.h.

◆ m_laser_scan_publisher

ros::Publisher sick::SickSafetyscannersRos::m_laser_scan_publisher
private

ROS topic publisher.

Definition at line 133 of file SickSafetyscannersRos.h.

◆ m_last_raw_data

sick_safetyscanners::RawMicroScanDataMsg sick::SickSafetyscannersRos::m_last_raw_data
private

Definition at line 141 of file SickSafetyscannersRos.h.

◆ m_min_intensities

double sick::SickSafetyscannersRos::m_min_intensities = 0.0
private

min intensities for laser points

Definition at line 168 of file SickSafetyscannersRos.h.

◆ m_nh

ros::NodeHandle sick::SickSafetyscannersRos::m_nh
private

ROS node handle.

Definition at line 127 of file SickSafetyscannersRos.h.

◆ m_output_path_publisher

ros::Publisher sick::SickSafetyscannersRos::m_output_path_publisher
private

Definition at line 136 of file SickSafetyscannersRos.h.

◆ m_private_nh

ros::NodeHandle sick::SickSafetyscannersRos::m_private_nh
private

ROS private node handle.

Definition at line 130 of file SickSafetyscannersRos.h.

◆ m_range_max

double sick::SickSafetyscannersRos::m_range_max
private

Definition at line 163 of file SickSafetyscannersRos.h.

◆ m_range_min

double sick::SickSafetyscannersRos::m_range_min
private

Definition at line 162 of file SickSafetyscannersRos.h.

◆ m_raw_data_publisher

ros::Publisher sick::SickSafetyscannersRos::m_raw_data_publisher
private

Definition at line 135 of file SickSafetyscannersRos.h.

◆ m_status_overview_server

ros::ServiceServer sick::SickSafetyscannersRos::m_status_overview_server
private

Definition at line 148 of file SickSafetyscannersRos.h.

◆ m_time_offset

double sick::SickSafetyscannersRos::m_time_offset
private

Definition at line 161 of file SickSafetyscannersRos.h.

◆ m_timestamp_max_acceptable

double sick::SickSafetyscannersRos::m_timestamp_max_acceptable = 1.0
private

Definition at line 167 of file SickSafetyscannersRos.h.

◆ m_timestamp_min_acceptable

double sick::SickSafetyscannersRos::m_timestamp_min_acceptable = -1.0
private

Definition at line 166 of file SickSafetyscannersRos.h.

◆ m_use_pers_conf

bool sick::SickSafetyscannersRos::m_use_pers_conf
private

Definition at line 172 of file SickSafetyscannersRos.h.

◆ m_use_sick_angles

bool sick::SickSafetyscannersRos::m_use_sick_angles
private

Definition at line 170 of file SickSafetyscannersRos.h.


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


sick_safetyscanners
Author(s): Lennart Puck
autogenerated on Fri Jun 21 2024 02:40:51