sick_safetyscanners package from sick_safetyscanners reposick_safetyscanners |
|
Package Summary
Tags | No category tags. |
Version | 1.0.9 |
License | ALv2 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SICKAG/sick_safetyscanners.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-06-19 |
Dev Status | DEVELOPED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Lennart Puck
Authors
- Lennart Puck
Sick_Safetyscanners ROS Driver
A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.
The ROS2 Driver can be found here: https://github.com/SICKAG/sick_safetyscanners2
Table of contents
Supported Hardware
Supported are all microScan3, nanoScan3 and outdoorScan3 variants with Ethernet connection.
Getting started
The ROS driver will be released as a debian package, and therefore can be installed from binaries or from source.
Prerequisites
- Linux
- Working ROS-Distro
- Correctly setup SICK Safety Scanner
- Connected SICK Safety Scanner and a correctly setup ethernet network. Both the host and the sensor have to be in the same network.
Installation
In the following instructions, replace <rosdistro>
with the name of your ROS distro (e.g., kinetic
).
From Binaries
The driver is released at longer intervals as a binary package.
sudo apt-get install ros-<rosdistro>-sick-safetyscanners
From Source
source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/catkin_ws/src/
cd ~/catkin_ws/src/
git clone https://github.com/SICKAG/sick_safetyscanners.git
cd ..
catkin_make install
source ~/catkin_ws/install/setup.bash
Starting
To start the driver the launch file has to be started. For the driver to work correctly, the sensor ip and host ip have to be defined. These parameters can be passed to the sensor as arguments via launch file.
roslaunch sick_safetyscanners sick_safetyscanners.launch sensor_ip:=192.168.1.10 host_ip:=192.168.1.9
This will start the driver and the dynamic reconfigure node. In this you can set different parameters on runtime, especially the angles and the data the sensor should publish. If these parameters should be set on startup they can be loaded to the parameter server beforehand.
To visualize the data start rviz and subscribe to the ~/laser_scan topic.
rosrun rviz rviz
Troubleshooting
- Check if the sensor has power and is connected to the host.
- Check if both sensor and host are in the same subnet e.g. 192.168.1
- Check if the launch file is called with the correct parameters for IP-addresses and ports.
ROS API
Advertised ROS Topics
` ~/laser_scan (type: sensor_msgs/LaserScan) `
Publishes a scan from the laserscanner
` ~/extended_laser_scan (type: sick_safetyscanners/ExtendedLaserScanMsg) `
Extends the basic laser scan message by reflector data and intrusion data.
` ~/output_paths (type: sick_safetyscanners/OutputPathMsg) `
Gives feedback of the current status of the output paths.
` ~/raw_data (type: sick_safetyscanners/RawMicroScanDataMsg) `
Publishes the raw data from the sensor as a ROS message.
` ~/diagnostics (type: diagnostic_msgs/DiagnosticArray) `
Frequency and timestamp diagnostics information.
Advertised ROS Services
` ~/field_data `
Returns all configured protective and warning fields for the sensor
` ~/config_metadata `
Returns the meta data of the current configuration of the sensor
` ~/status_overview `
Returns the status overview of the sensor
ROS parameters
All Parameters can be passed as commandline argument to the launch file. | Parameter Name | Type | Default | Required on startup | Information | | ————- | —— | ——- | ———— | ————- | | sensor_ip | String | 192.168.1.11 | ✔ | IP address of the sensor. | | host_ip | String | 192.168.1.9 | ✔ | IP address of the receiving host/target computer. | | interface_ip | String | 0.0.0.0 | | Interface IP address of the receiving host computer, this needs to be set if the host IP is in the multicast IP range. The default is an undefined IP address and will return an error when multicast is used without a correct interface | | host_udp_port | Integer | 0 | | Host UDP Port. Zero allows system chosen port. | | frame_id | String | scan | | The frame name of the sensor message | | skip | Integer | 0 | | The number of scans to skip between each measured scan. For a 25Hz laser, setting ‘skip’ to 0 makes it publish at 25Hz, ‘skip’ to 1 makes it publish at 12.5Hz. | | angle_start | Double | 0.0 | | Start angle of scan in radians, if both start and end angle are equal, all angels are regarded. 0° is at the front of the scanner. | | angle_end | Double | 0.0 | | End angle of scan in radians, if both start and end angle are equal, all angels are regarded. 0° is at the front of the scanner. | | min_intensities | Double | 0.0 | | If this parameter is set, all points below the one set in the parameter are set to infinity | | channel | Integer | 0 | | Which channel should be configured, default is channel 0. | | channel_enabled | Boolean | true | | If the channel should be enabled | | general_system_state | Boolean | true | | If the general system state should be published | | derived_settings | Boolean | true | | If the derived settings should be published | | measurement_data | Boolean | true | | If the measurement data should be published | | intrusion_data | Boolean | true | | If the intrusion data should be published | | application_io_data | Boolean | true | | If the application IO data should be published | | use_persistent_config | Boolean | false | | If this flag is set, the configured angles from the sensor are loaded and used and the ROS parameters angle_start and angle_end are disregarded | | expected_frequency | Double | 24.0 | | Expected scanner frequency for diagnostics | | frequency_tolerance | Double | 0.1 | | Diagnostics tolerance on expected frequency | | timestamp_min_acceptable | Double | -1 | | Earliest acceptable timestamp delay for diagnostics | | timestamp_max_acceptable | Double | 1 | | Latest acceptable timestamp delay for diagnostics |
Creators
Lennart Puck
FZI Forschungszentrum Informatik
on behalf of SICK AG
Changelog for package sick_safetyscanners
1.0.9 (2023-06-01)
- added StatusOverview service
- added ConfigMetadata service
- add application and contamination errors to diagnostics
- add checksums to diagnostics
- add firmware version to diagnostics
- Add missing map include.
- adjusted readme for multicast and interface IP
- adjusted launch file for interface IP
- allowing to define multicast IPs from ROS
- added .hpp to install directive in CMakeList
- Contributors: Christian Wurm, Ivor Wanders, Lennart Puck, Rein Appeldoorn, Tom de Winter, Yannick de Hoop
1.0.8 (2021-02-02)
- changed to constant values for the field data
- changed uint to int for current config data
- Contributors: Lennart Puck
1.0.7 (2020-11-11)
- fixed parsing error in current config data
- added intensity filter
- fix for out of range while creating output path message
- Contributors: Heiko, Lennart Puck
1.0.6 (2020-09-21)
- checking if number beams is correct
- checking if if all data is present after parsing the header
- fix for seg fault in measurementdata
- Remove rqt_reconfigure dep
- Contributors: Lennart Puck, Rein Appeldoorn
1.0.5 (2020-06-15)
- fixing correct offset in field geometries
- Fixed error in reading chars for device name and project name
- feat(diagnostics): Sensor state diagnostics Exposes sensor hardware information and sensor state.
- Filter out max range values to INF according to REP 117
- Correct first initialization of m_time_offset
- boost::asio API changes in 1.70+
- Catch exceptions by const ref.
- Fix error_code comparison to int.
- Contributors: Chad Rockey, Jad Haj Mustafa, Lennart Puck, Mike Purvis, Rein Appeldoorn
1.0.4 (2019-12-16)
- Fixed Bug with enum for interface type
- Eoved enums in class Enums are not in the class scope where they are used. Prevents redefinitions and pollution of namespace.
- Correctet variable index for username command
- Typecode read and parsed from variable
- Used static casts instead of implicit conversion
- Contributors: Lennart Puck
1.0.3 (2019-07-15)
- erasing completed frames from map.
- Fixed error on startup that no scan was visualised The fix should prevent the node from starting without publishing any data. The error appears to be related to minor rounding errors, thus setting the resolution smaller then the lowest resolution. But not equal start and end angles. This should fix issue #11 and #12
- added initialisation of use_pers_config
- Merge Pull Request #9 Removing the possibilities to use the angles from the sensor it self. Since dynamic reconfigure can only be set up for one frame.
- removed tcp port from configuration since it can not be configured in the sensor
- added parameter to use persistent config
- Added methods to request persistent data from sensor
- added all parameters to launch file
- updated persistent and current config command and parser to use config data instead of field data
- removed unused end angle from field data
- added datastructure for configs
- Fix issue with m_angle_offset. Remove use_sick_angles
- Use C++ STL to reduce risk of memory corruption
- Change ReadWriteHelper to namespace functions instead of a stateless class
- Contributors: Chad Rockey, Jonathan Meyer, Lennart Puck, NicolasLoeffler
1.0.2 (2019-01-15)
- Read the start angle of the field data from the persistent config instead of the current config
- Changed to 0 angle being at the front of the scan
- Allow system to choose the host udp port from the ephemeral range. Resolve typo -> IPAdress to IPAddress
- Changed default frame_id name to scan
- Change publish_frequency parameter to be skip parameter.
- Add time_offset parameter to adjust scan system timestamps
- Added median reflector bit in message and code
- Added active case number to the service call
- Field data is returned as a vector for all fields
- Added publisher und service server for field data and output paths
- Added Start angle and beam resolution to field data
1.0.1 (2018-10-31)
- Initial Release
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
catkin | |
message_runtime | |
diagnostic_updater | |
roscpp | |
sensor_msgs | |
std_msgs | |
dynamic_reconfigure |
System Dependencies
Dependant Packages
Launch files
- launch/sick_safetyscanners.launch
-
- sensor_ip [default: 192.168.1.11]
- host_ip [default: 192.168.1.9]
- interface_ip [default: 0.0.0.0]
- host_udp_port [default: 0]
- frame_id [default: scan]
- skip [default: 0]
- angle_start [default: 0]
- angle_end [default: 0]
- time_offset [default: 0.0]
- min_intensities [default: 0.0] — minimal intensity for a laserscan point
- channel [default: 0]
- channel_enabled [default: True]
- general_system_state [default: True]
- derived_settings [default: True]
- measurement_data [default: True]
- intrusion_data [default: True]
- application_io_data [default: True]
- use_persistent_config [default: False]
Messages
- msg/ScanPointMsg.msg
- msg/IntrusionDataMsg.msg
- msg/MonitoringCaseMsg.msg
- msg/OutputPathsMsg.msg
- msg/RawMicroScanDataMsg.msg
- msg/ApplicationInputsMsg.msg
- msg/DerivedValuesMsg.msg
- msg/IntrusionDatumMsg.msg
- msg/GeneralSystemStateMsg.msg
- msg/FieldMsg.msg
- msg/ApplicationDataMsg.msg
- msg/ApplicationOutputsMsg.msg
- msg/ExtendedLaserScanMsg.msg
- msg/MeasurementDataMsg.msg
- msg/DataHeaderMsg.msg
Plugins
Recent questions tagged sick_safetyscanners at Robotics Stack Exchange
sick_safetyscanners package from sick_safetyscanners reposick_safetyscanners |
|
Package Summary
Tags | No category tags. |
Version | 1.0.9 |
License | ALv2 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/SICKAG/sick_safetyscanners.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2024-06-19 |
Dev Status | DEVELOPED |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Lennart Puck
Authors
- Lennart Puck
Sick_Safetyscanners ROS Driver
A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.
The ROS2 Driver can be found here: https://github.com/SICKAG/sick_safetyscanners2
Table of contents
Supported Hardware
Supported are all microScan3, nanoScan3 and outdoorScan3 variants with Ethernet connection.
Getting started
The ROS driver will be released as a debian package, and therefore can be installed from binaries or from source.
Prerequisites
- Linux
- Working ROS-Distro
- Correctly setup SICK Safety Scanner
- Connected SICK Safety Scanner and a correctly setup ethernet network. Both the host and the sensor have to be in the same network.
Installation
In the following instructions, replace <rosdistro>
with the name of your ROS distro (e.g., kinetic
).
From Binaries
The driver is released at longer intervals as a binary package.
sudo apt-get install ros-<rosdistro>-sick-safetyscanners
From Source
source /opt/ros/<rosdistro>/setup.bash
mkdir -p ~/catkin_ws/src/
cd ~/catkin_ws/src/
git clone https://github.com/SICKAG/sick_safetyscanners.git
cd ..
catkin_make install
source ~/catkin_ws/install/setup.bash
Starting
To start the driver the launch file has to be started. For the driver to work correctly, the sensor ip and host ip have to be defined. These parameters can be passed to the sensor as arguments via launch file.
roslaunch sick_safetyscanners sick_safetyscanners.launch sensor_ip:=192.168.1.10 host_ip:=192.168.1.9
This will start the driver and the dynamic reconfigure node. In this you can set different parameters on runtime, especially the angles and the data the sensor should publish. If these parameters should be set on startup they can be loaded to the parameter server beforehand.
To visualize the data start rviz and subscribe to the ~/laser_scan topic.
rosrun rviz rviz
Troubleshooting
- Check if the sensor has power and is connected to the host.
- Check if both sensor and host are in the same subnet e.g. 192.168.1
- Check if the launch file is called with the correct parameters for IP-addresses and ports.
ROS API
Advertised ROS Topics
` ~/laser_scan (type: sensor_msgs/LaserScan) `
Publishes a scan from the laserscanner
` ~/extended_laser_scan (type: sick_safetyscanners/ExtendedLaserScanMsg) `
Extends the basic laser scan message by reflector data and intrusion data.
` ~/output_paths (type: sick_safetyscanners/OutputPathMsg) `
Gives feedback of the current status of the output paths.
` ~/raw_data (type: sick_safetyscanners/RawMicroScanDataMsg) `
Publishes the raw data from the sensor as a ROS message.
` ~/diagnostics (type: diagnostic_msgs/DiagnosticArray) `
Frequency and timestamp diagnostics information.
Advertised ROS Services
` ~/field_data `
Returns all configured protective and warning fields for the sensor
` ~/config_metadata `
Returns the meta data of the current configuration of the sensor
` ~/status_overview `
Returns the status overview of the sensor
ROS parameters
All Parameters can be passed as commandline argument to the launch file. | Parameter Name | Type | Default | Required on startup | Information | | ————- | —— | ——- | ———— | ————- | | sensor_ip | String | 192.168.1.11 | ✔ | IP address of the sensor. | | host_ip | String | 192.168.1.9 | ✔ | IP address of the receiving host/target computer. | | interface_ip | String | 0.0.0.0 | | Interface IP address of the receiving host computer, this needs to be set if the host IP is in the multicast IP range. The default is an undefined IP address and will return an error when multicast is used without a correct interface | | host_udp_port | Integer | 0 | | Host UDP Port. Zero allows system chosen port. | | frame_id | String | scan | | The frame name of the sensor message | | skip | Integer | 0 | | The number of scans to skip between each measured scan. For a 25Hz laser, setting ‘skip’ to 0 makes it publish at 25Hz, ‘skip’ to 1 makes it publish at 12.5Hz. | | angle_start | Double | 0.0 | | Start angle of scan in radians, if both start and end angle are equal, all angels are regarded. 0° is at the front of the scanner. | | angle_end | Double | 0.0 | | End angle of scan in radians, if both start and end angle are equal, all angels are regarded. 0° is at the front of the scanner. | | min_intensities | Double | 0.0 | | If this parameter is set, all points below the one set in the parameter are set to infinity | | channel | Integer | 0 | | Which channel should be configured, default is channel 0. | | channel_enabled | Boolean | true | | If the channel should be enabled | | general_system_state | Boolean | true | | If the general system state should be published | | derived_settings | Boolean | true | | If the derived settings should be published | | measurement_data | Boolean | true | | If the measurement data should be published | | intrusion_data | Boolean | true | | If the intrusion data should be published | | application_io_data | Boolean | true | | If the application IO data should be published | | use_persistent_config | Boolean | false | | If this flag is set, the configured angles from the sensor are loaded and used and the ROS parameters angle_start and angle_end are disregarded | | expected_frequency | Double | 24.0 | | Expected scanner frequency for diagnostics | | frequency_tolerance | Double | 0.1 | | Diagnostics tolerance on expected frequency | | timestamp_min_acceptable | Double | -1 | | Earliest acceptable timestamp delay for diagnostics | | timestamp_max_acceptable | Double | 1 | | Latest acceptable timestamp delay for diagnostics |
Creators
Lennart Puck
FZI Forschungszentrum Informatik
on behalf of SICK AG
Changelog for package sick_safetyscanners
1.0.9 (2023-06-01)
- added StatusOverview service
- added ConfigMetadata service
- add application and contamination errors to diagnostics
- add checksums to diagnostics
- add firmware version to diagnostics
- Add missing map include.
- adjusted readme for multicast and interface IP
- adjusted launch file for interface IP
- allowing to define multicast IPs from ROS
- added .hpp to install directive in CMakeList
- Contributors: Christian Wurm, Ivor Wanders, Lennart Puck, Rein Appeldoorn, Tom de Winter, Yannick de Hoop
1.0.8 (2021-02-02)
- changed to constant values for the field data
- changed uint to int for current config data
- Contributors: Lennart Puck
1.0.7 (2020-11-11)
- fixed parsing error in current config data
- added intensity filter
- fix for out of range while creating output path message
- Contributors: Heiko, Lennart Puck
1.0.6 (2020-09-21)
- checking if number beams is correct
- checking if if all data is present after parsing the header
- fix for seg fault in measurementdata
- Remove rqt_reconfigure dep
- Contributors: Lennart Puck, Rein Appeldoorn
1.0.5 (2020-06-15)
- fixing correct offset in field geometries
- Fixed error in reading chars for device name and project name
- feat(diagnostics): Sensor state diagnostics Exposes sensor hardware information and sensor state.
- Filter out max range values to INF according to REP 117
- Correct first initialization of m_time_offset
- boost::asio API changes in 1.70+
- Catch exceptions by const ref.
- Fix error_code comparison to int.
- Contributors: Chad Rockey, Jad Haj Mustafa, Lennart Puck, Mike Purvis, Rein Appeldoorn
1.0.4 (2019-12-16)
- Fixed Bug with enum for interface type
- Eoved enums in class Enums are not in the class scope where they are used. Prevents redefinitions and pollution of namespace.
- Correctet variable index for username command
- Typecode read and parsed from variable
- Used static casts instead of implicit conversion
- Contributors: Lennart Puck
1.0.3 (2019-07-15)
- erasing completed frames from map.
- Fixed error on startup that no scan was visualised The fix should prevent the node from starting without publishing any data. The error appears to be related to minor rounding errors, thus setting the resolution smaller then the lowest resolution. But not equal start and end angles. This should fix issue #11 and #12
- added initialisation of use_pers_config
- Merge Pull Request #9 Removing the possibilities to use the angles from the sensor it self. Since dynamic reconfigure can only be set up for one frame.
- removed tcp port from configuration since it can not be configured in the sensor
- added parameter to use persistent config
- Added methods to request persistent data from sensor
- added all parameters to launch file
- updated persistent and current config command and parser to use config data instead of field data
- removed unused end angle from field data
- added datastructure for configs
- Fix issue with m_angle_offset. Remove use_sick_angles
- Use C++ STL to reduce risk of memory corruption
- Change ReadWriteHelper to namespace functions instead of a stateless class
- Contributors: Chad Rockey, Jonathan Meyer, Lennart Puck, NicolasLoeffler
1.0.2 (2019-01-15)
- Read the start angle of the field data from the persistent config instead of the current config
- Changed to 0 angle being at the front of the scan
- Allow system to choose the host udp port from the ephemeral range. Resolve typo -> IPAdress to IPAddress
- Changed default frame_id name to scan
- Change publish_frequency parameter to be skip parameter.
- Add time_offset parameter to adjust scan system timestamps
- Added median reflector bit in message and code
- Added active case number to the service call
- Field data is returned as a vector for all fields
- Added publisher und service server for field data and output paths
- Added Start angle and beam resolution to field data
1.0.1 (2018-10-31)
- Initial Release
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
catkin | |
message_runtime | |
diagnostic_updater | |
roscpp | |
sensor_msgs | |
std_msgs | |
dynamic_reconfigure |
System Dependencies
Dependant Packages
Launch files
- launch/sick_safetyscanners.launch
-
- sensor_ip [default: 192.168.1.11]
- host_ip [default: 192.168.1.9]
- interface_ip [default: 0.0.0.0]
- host_udp_port [default: 0]
- frame_id [default: scan]
- skip [default: 0]
- angle_start [default: 0]
- angle_end [default: 0]
- time_offset [default: 0.0]
- min_intensities [default: 0.0] — minimal intensity for a laserscan point
- channel [default: 0]
- channel_enabled [default: True]
- general_system_state [default: True]
- derived_settings [default: True]
- measurement_data [default: True]
- intrusion_data [default: True]
- application_io_data [default: True]
- use_persistent_config [default: False]
Messages
- msg/ScanPointMsg.msg
- msg/IntrusionDataMsg.msg
- msg/MonitoringCaseMsg.msg
- msg/OutputPathsMsg.msg
- msg/RawMicroScanDataMsg.msg
- msg/ApplicationInputsMsg.msg
- msg/DerivedValuesMsg.msg
- msg/IntrusionDatumMsg.msg
- msg/GeneralSystemStateMsg.msg
- msg/FieldMsg.msg
- msg/ApplicationDataMsg.msg
- msg/ApplicationOutputsMsg.msg
- msg/ExtendedLaserScanMsg.msg
- msg/MeasurementDataMsg.msg
- msg/DataHeaderMsg.msg