sick_safetyscanners package from sick_safetyscanners repo

sick_safetyscanners

Package Summary

Tags No category tags.
Version 1.0.3
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 2019-08-14
Dev Status DEVELOPED
Released RELEASED

Package Description

Provides an Interface to read the sensor output of a SICK Safety Scanner

Additional Links

No additional links.

Maintainers

  • Lennart Puck

Authors

  • Lennart Puck

Sick_Safetyscanners ROS Driver

Table of contents

A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.

Supported Hardware

Product Family Product Type Description
microScan3 Core MICS3-ACAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-ACAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-ACAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-ABAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-ABAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-ABAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-ABAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-ABAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-ABAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
microScan3 Pro MICS3-CBAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-CBAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-CBAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-CBAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-CBAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-CBAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-CBAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-CBAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-CBAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
outdoorScan3 Pro MICS3-CBUZ40IZ1P01 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m

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.

Advertised ROS Services

~/field_data

Returns all configured protective and warning fields for the sensor

ROS parameters

Parameter Name Type Default Required on startup Information
sensor_ip String 192.168.1.11 Sensor IP address. Can be passed as an argument to the launch file.
host_ip String 192.168.1.9 Host IP address. Can be passed as an argument to the launch file.
host_udp_port Integer 0 Host UDP Port. Can be passed as an argument to the launch file. 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.
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

Creators

Lennart Puck

FZI Forschungszentrum Informatik

on behalf of SICK AG

CHANGELOG

Changelog for package sick_safetyscanners

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/sick_safetyscanners.launch
      • sensor_ip [default: 192.168.1.11]
      • host_ip [default: 192.168.1.9]
      • 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]
      • 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]

Plugins

No plugins found.

Recent questions tagged sick_safetyscanners at answers.ros.org

sick_safetyscanners package from sick_safetyscanners repo

sick_safetyscanners

Package Summary

Tags No category tags.
Version 1.0.3
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 2019-08-14
Dev Status DEVELOPED
Released RELEASED

Package Description

Provides an Interface to read the sensor output of a SICK Safety Scanner

Additional Links

No additional links.

Maintainers

  • Lennart Puck

Authors

  • Lennart Puck

Sick_Safetyscanners ROS Driver

Table of contents

A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.

Supported Hardware

Product Family Product Type Description
microScan3 Core MICS3-ACAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-ACAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-ACAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-ABAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-ABAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-ABAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-ABAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-ABAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-ABAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
microScan3 Pro MICS3-CBAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-CBAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-CBAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-CBAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-CBAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-CBAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-CBAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-CBAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-CBAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
outdoorScan3 Pro MICS3-CBUZ40IZ1P01 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m

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.

Advertised ROS Services

~/field_data

Returns all configured protective and warning fields for the sensor

ROS parameters

Parameter Name Type Default Required on startup Information
sensor_ip String 192.168.1.11 Sensor IP address. Can be passed as an argument to the launch file.
host_ip String 192.168.1.9 Host IP address. Can be passed as an argument to the launch file.
host_udp_port Integer 0 Host UDP Port. Can be passed as an argument to the launch file. 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.
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

Creators

Lennart Puck

FZI Forschungszentrum Informatik

on behalf of SICK AG

CHANGELOG

Changelog for package sick_safetyscanners

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/sick_safetyscanners.launch
      • sensor_ip [default: 192.168.1.11]
      • host_ip [default: 192.168.1.9]
      • 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]
      • 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]

Plugins

No plugins found.

Recent questions tagged sick_safetyscanners at answers.ros.org

sick_safetyscanners package from sick_safetyscanners repo

sick_safetyscanners

Package Summary

Tags No category tags.
Version 1.0.3
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 2019-08-14
Dev Status DEVELOPED
Released RELEASED

Package Description

Provides an Interface to read the sensor output of a SICK Safety Scanner

Additional Links

No additional links.

Maintainers

  • Lennart Puck

Authors

  • Lennart Puck

Sick_Safetyscanners ROS Driver

Table of contents

A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.

Supported Hardware

Product Family Product Type Description
microScan3 Core MICS3-ACAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-ACAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-ACAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-ABAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-ABAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-ABAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-ABAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-ABAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-ABAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
microScan3 Pro MICS3-CBAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-CBAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-CBAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-CBAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-CBAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-CBAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-CBAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-CBAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-CBAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
outdoorScan3 Pro MICS3-CBUZ40IZ1P01 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m

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.

Advertised ROS Services

~/field_data

Returns all configured protective and warning fields for the sensor

ROS parameters

Parameter Name Type Default Required on startup Information
sensor_ip String 192.168.1.11 Sensor IP address. Can be passed as an argument to the launch file.
host_ip String 192.168.1.9 Host IP address. Can be passed as an argument to the launch file.
host_udp_port Integer 0 Host UDP Port. Can be passed as an argument to the launch file. 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.
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

Creators

Lennart Puck

FZI Forschungszentrum Informatik

on behalf of SICK AG

CHANGELOG

Changelog for package sick_safetyscanners

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/sick_safetyscanners.launch
      • sensor_ip [default: 192.168.1.11]
      • host_ip [default: 192.168.1.9]
      • 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]
      • 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]

Plugins

No plugins found.

Recent questions tagged sick_safetyscanners at answers.ros.org

sick_safetyscanners package from sick_safetyscanners repo

sick_safetyscanners

Package Summary

Tags No category tags.
Version 1.0.3
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 2019-08-14
Dev Status DEVELOPED
Released RELEASED

Package Description

Provides an Interface to read the sensor output of a SICK Safety Scanner

Additional Links

No additional links.

Maintainers

  • Lennart Puck

Authors

  • Lennart Puck

Sick_Safetyscanners ROS Driver

Table of contents

A ROS Driver which reads the raw data from the SICK Safety Scanners and publishes the data as a laser_scan msg.

Supported Hardware

Product Family Product Type Description
microScan3 Core MICS3-ACAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-ACAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-ACAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-ABAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-ABAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-ABAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-ABAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-ABAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-ABAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
microScan3 Pro MICS3-CBAZ40PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 4 m
MICS3-CBAZ55PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 5.5 m
MICS3-CBAZ90PZ1 Safety Laser Scanner, PROFINET PROFIsafe, Protective Field Range: 9 m
MICS3-CBAZ40IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m
MICS3-CBAZ55IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 5.5 m
MICS3-CBAZ90IZ1 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 9 m
MICS3-CBAZ40ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 4 m
MICS3-CBAZ55ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 5.5 m
MICS3-CBAZ90ZA1 Safety Laser Scanner, EFI-pro, Protective Field Range: 9 m
outdoorScan3 Pro MICS3-CBUZ40IZ1P01 Safety Laser Scanner, EtherNet/IP CIP Safety, Protective Field Range: 4 m

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.

Advertised ROS Services

~/field_data

Returns all configured protective and warning fields for the sensor

ROS parameters

Parameter Name Type Default Required on startup Information
sensor_ip String 192.168.1.11 Sensor IP address. Can be passed as an argument to the launch file.
host_ip String 192.168.1.9 Host IP address. Can be passed as an argument to the launch file.
host_udp_port Integer 0 Host UDP Port. Can be passed as an argument to the launch file. 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.
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

Creators

Lennart Puck

FZI Forschungszentrum Informatik

on behalf of SICK AG

CHANGELOG

Changelog for package sick_safetyscanners

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

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

No known dependants.

Launch files

  • launch/sick_safetyscanners.launch
      • sensor_ip [default: 192.168.1.11]
      • host_ip [default: 192.168.1.9]
      • 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]
      • 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]

Plugins

No plugins found.

Recent questions tagged sick_safetyscanners at answers.ros.org