Go to the documentation of this file.
35 #ifndef SICK_SAFETYSCANNERS_SICKSAFETYSCANNERSROS_H
36 #define SICK_SAFETYSCANNERS_SICKSAFETYSCANNERSROS_H
43 #include <sensor_msgs/JointState.h>
44 #include <sensor_msgs/LaserScan.h>
51 #include <sick_safetyscanners/ConfigMetadata.h>
52 #include <sick_safetyscanners/ExtendedLaserScanMsg.h>
53 #include <sick_safetyscanners/FieldData.h>
54 #include <sick_safetyscanners/OutputPathsMsg.h>
55 #include <sick_safetyscanners/RawMicroScanDataMsg.h>
57 #include <sick_safetyscanners/SickSafetyscannersConfigurationConfig.h>
58 #include <sick_safetyscanners/StatusOverview.h>
62 #include <dynamic_reconfigure/server.h>
75 return deg * M_PI / 180.0f;
85 return rad * 180.0f / M_PI;
152 std::shared_ptr<sick::SickSafetyscanners>
m_device;
157 dynamic_reconfigure::Server<sick_safetyscanners::SickSafetyscannersConfigurationConfig>
191 void reconfigureCallback(
const sick_safetyscanners::SickSafetyscannersConfigurationConfig& config,
192 const uint32_t& level);
197 sick_safetyscanners::ExtendedLaserScanMsg
201 sick_safetyscanners::OutputPathsMsg
203 sick_safetyscanners::RawMicroScanDataMsg
206 sick_safetyscanners::DerivedValuesMsg
208 sick_safetyscanners::GeneralSystemStateMsg
210 sick_safetyscanners::MeasurementDataMsg
212 std::vector<sick_safetyscanners::ScanPointMsg>
214 sick_safetyscanners::IntrusionDataMsg
216 std::vector<sick_safetyscanners::IntrusionDatumMsg>
218 sick_safetyscanners::ApplicationDataMsg
220 sick_safetyscanners::ApplicationInputsMsg
222 sick_safetyscanners::ApplicationOutputsMsg
227 bool getFieldData(sick_safetyscanners::FieldData::Request& req,
228 sick_safetyscanners::FieldData::Response& res);
231 sick_safetyscanners::ConfigMetadata::Response& res);
234 sick_safetyscanners::StatusOverview::Response& res);
252 std::string
getDateString(uint32_t days_since_1972, uint32_t milli_seconds);
257 #endif // SICK_SAFETYSCANNERS_SICKSAFETYSCANNERSROS_H
ros::NodeHandle m_nh
ROS node handle.
The SickSafetyscannersRos class.
sick_safetyscanners::GeneralSystemStateMsg createGeneralSystemStateMessage(const sick::datastructure::Data &data)
sick_safetyscanners::MeasurementDataMsg createMeasurementDataMessage(const sick::datastructure::Data &data)
std::vector< sick_safetyscanners::ScanPointMsg > createScanPointMessageVector(const sick::datastructure::Data &data)
SickSafetyscannersRos()
Constructor of the SickSafetyscannersRos.
ros::ServiceServer m_config_metadata_server
ros::ServiceServer m_field_service_server
Containing the communication settings for the sensor which can be changed on runtime.
sick_safetyscanners::ApplicationDataMsg createApplicationDataMessage(const sick::datastructure::Data &data)
diagnostic_updater::Updater m_diagnostic_updater
sick_safetyscanners::DataHeaderMsg createDataHeaderMessage(const sick::datastructure::Data &data)
dynamic_reconfigure::Server< sick_safetyscanners::SickSafetyscannersConfigurationConfig > m_dynamic_reconfiguration_server
The data class containing all data blocks of a measurement.
void reconfigureCallback(const sick_safetyscanners::SickSafetyscannersConfigurationConfig &config, const uint32_t &level)
Function which is triggered when a dynamic reconfiguration is performed.
sick_safetyscanners::DerivedValuesMsg createDerivedValuesMessage(const sick::datastructure::Data &data)
std::vector< sick_safetyscanners::IntrusionDatumMsg > createIntrusionDatumMessageVector(const sick::datastructure::Data &data)
std::shared_ptr< DiagnosedLaserScanPublisher > m_diagnosed_laser_scan_publisher
sick::datastructure::FirmwareVersion firmware_version
uint16_t skipToPublishFrequency(int skip)
Converts a skip value into a "publish frequency" value.
sick_safetyscanners::RawMicroScanDataMsg createRawDataMessage(const sick::datastructure::Data &data)
ros::Publisher m_laser_scan_publisher
ROS topic publisher.
ros::NodeHandle m_private_nh
ROS private node handle.
bool getFieldData(sick_safetyscanners::FieldData::Request &req, sick_safetyscanners::FieldData::Response &res)
ros::Publisher m_output_path_publisher
std::vector< bool > getMedianReflectors(const std::vector< sick::datastructure::ScanPoint > scan_points)
ros::ServiceServer m_status_overview_server
double m_frequency_tolerance
void sensorDiagnostics(diagnostic_updater::DiagnosticStatusWrapper &diagnostic_status)
sick::datastructure::CommSettings m_communication_settings
sick_safetyscanners::ExtendedLaserScanMsg createExtendedLaserScanMessage(const sick::datastructure::Data &data)
float degToRad(float deg)
Converts degrees to radians.
float radToDeg(float rad)
Converts radians to degrees.
ros::Publisher m_raw_data_publisher
std::shared_ptr< sick::SickSafetyscanners > m_device
bool getConfigMetadata(sick_safetyscanners::ConfigMetadata::Request &req, sick_safetyscanners::ConfigMetadata::Response &res)
sick_safetyscanners::IntrusionDataMsg createIntrusionDataMessage(const sick::datastructure::Data &data)
void receivedUDPPacket(const datastructure::Data &data)
Function which is called when a new complete UDP Packet is received.
double m_timestamp_max_acceptable
diagnostic_updater::DiagnosedPublisher< sensor_msgs::LaserScan > DiagnosedLaserScanPublisher
sick_safetyscanners::ApplicationInputsMsg createApplicationInputsMessage(const sick::datastructure::Data &data)
sick_safetyscanners::OutputPathsMsg createOutputPathsMessage(const sick::datastructure::Data &data)
double m_expected_frequency
sensor_msgs::LaserScan createLaserScanMessage(const sick::datastructure::Data &data)
ros::Publisher m_extended_laser_scan_publisher
bool getStatusOverview(sick_safetyscanners::StatusOverview::Request &req, sick_safetyscanners::StatusOverview::Response &res)
sick::datastructure::ConfigMetadata config_meta_data
sick_safetyscanners::RawMicroScanDataMsg m_last_raw_data
void readTypeCodeSettings()
double m_timestamp_min_acceptable
boost::asio::ip::address_v4 m_interface_ip
sick_safetyscanners::ApplicationOutputsMsg createApplicationOutputsMessage(const sick::datastructure::Data &data)
virtual ~SickSafetyscannersRos()
~SickSafetyscannersRos Destructor if the SickSafetyscanners ROS
Class containing the firmware version of a laser scanner.
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 sin...
void readPersistentConfig()
std::string getCheckSumString(uint32_t checksum)
getCheckSumString converts the uint32 value received as checksum such that the hexadecimal representa...
bool readParameters()
Reads and verifies the ROS parameters.