|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.4.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-09-07 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
By default this launches the package’s own scan_filter node (see below). To use
laser_filters instead, uncomment the laser_filter_node block in
scan_with_filter.launch.py (and use it instead of
filter_node in the event handler) together with the matching commented-out scan_filter
configuration in params/default.yaml.
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.4.0 (07-09-2026)
- Add a unit test suite for the parser, scanner and scan filter.
- Move serial acquisition to a dedicated thread behind an injectable
ISerialIOtransport interface. - Give the serial read a real wall-clock timeout and make the communication timeout report an error.
- Consolidate diagnostics behind
diagnostic_updater. - Guard against degenerate scans and keep
angle_min/angle_max,angle_incrementandscan_timeconsistent. - Fix the receive buffer compaction in
getScan. - Replace unaligned
reinterpret_castreads in the parser withmemcpy. - Remove static state shared between scanner instances.
- Remove the inert scan timestamp synchronization, dead members, stubs and commented-out code.
- Extract
declare_parameter_if_not_declaredto a shared header. - Rename Hungarian-notation identifiers to
snake_caseand name magic numbers. - Pass vectors and strings by const reference.
- Deprecate the
scan_filternode in favor of thelaser_filterspackage and remove the old laser filter. - Declare
lower_angle_/upper_angle_asdoubleinscan_filter. - Rename package to
sicks300_ros2and update publisher QoS. - Update the CI workflow.
1.3.3 (06-02-2025)
- First jazzy release.
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| diagnostic_updater | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| rcutils | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.4.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
By default this launches the package’s own scan_filter node (see below). To use
laser_filters instead, uncomment the laser_filter_node block in
scan_with_filter.launch.py (and use it instead of
filter_node in the event handler) together with the matching commented-out scan_filter
configuration in params/default.yaml.
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.4.0 (07-09-2026)
- Add a unit test suite for the parser, scanner and scan filter.
- Move serial acquisition to a dedicated thread behind an injectable
ISerialIOtransport interface. - Give the serial read a real wall-clock timeout and make the communication timeout report an error.
- Consolidate diagnostics behind
diagnostic_updater. - Guard against degenerate scans and keep
angle_min/angle_max,angle_incrementandscan_timeconsistent. - Fix the receive buffer compaction in
getScan. - Replace unaligned
reinterpret_castreads in the parser withmemcpy. - Remove static state shared between scanner instances.
- Remove the inert scan timestamp synchronization, dead members, stubs and commented-out code.
- Extract
declare_parameter_if_not_declaredto a shared header. - Rename Hungarian-notation identifiers to
snake_caseand name magic numbers. - Pass vectors and strings by const reference.
- Deprecate the
scan_filternode in favor of thelaser_filterspackage and remove the old laser filter. - Declare
lower_angle_/upper_angle_asdoubleinscan_filter. - Rename package to
sicks300_ros2and update publisher QoS. - Update the CI workflow.
1.3.3 (06-02-2025)
- First jazzy release.
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| diagnostic_updater | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| rcutils | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.4.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-09-07 |
| Dev Status | MAINTAINED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Jazzy on [Ubuntu] 24.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
By default this launches the package’s own scan_filter node (see below). To use
laser_filters instead, uncomment the laser_filter_node block in
scan_with_filter.launch.py (and use it instead of
filter_node in the event handler) together with the matching commented-out scan_filter
configuration in params/default.yaml.
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.4.0 (07-09-2026)
- Add a unit test suite for the parser, scanner and scan filter.
- Move serial acquisition to a dedicated thread behind an injectable
ISerialIOtransport interface. - Give the serial read a real wall-clock timeout and make the communication timeout report an error.
- Consolidate diagnostics behind
diagnostic_updater. - Guard against degenerate scans and keep
angle_min/angle_max,angle_incrementandscan_timeconsistent. - Fix the receive buffer compaction in
getScan. - Replace unaligned
reinterpret_castreads in the parser withmemcpy. - Remove static state shared between scanner instances.
- Remove the inert scan timestamp synchronization, dead members, stubs and commented-out code.
- Extract
declare_parameter_if_not_declaredto a shared header. - Rename Hungarian-notation identifiers to
snake_caseand name magic numbers. - Pass vectors and strings by const reference.
- Deprecate the
scan_filternode in favor of thelaser_filterspackage and remove the old laser filter. - Declare
lower_angle_/upper_angle_asdoubleinscan_filter. - Rename package to
sicks300_ros2and update publisher QoS. - Update the CI workflow.
1.3.3 (06-02-2025)
- First jazzy release.
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| diagnostic_updater | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| rcutils | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.4.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | rolling |
| Last Updated | 2026-09-07 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Rolling on [Ubuntu] 24.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro jazzy -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
By default this launches the package’s own scan_filter node (see below). To use
laser_filters instead, uncomment the laser_filter_node block in
scan_with_filter.launch.py (and use it instead of
filter_node in the event handler) together with the matching commented-out scan_filter
configuration in params/default.yaml.
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.4.0 (07-09-2026)
- Add a unit test suite for the parser, scanner and scan filter.
- Move serial acquisition to a dedicated thread behind an injectable
ISerialIOtransport interface. - Give the serial read a real wall-clock timeout and make the communication timeout report an error.
- Consolidate diagnostics behind
diagnostic_updater. - Guard against degenerate scans and keep
angle_min/angle_max,angle_incrementandscan_timeconsistent. - Fix the receive buffer compaction in
getScan. - Replace unaligned
reinterpret_castreads in the parser withmemcpy. - Remove static state shared between scanner instances.
- Remove the inert scan timestamp synchronization, dead members, stubs and commented-out code.
- Extract
declare_parameter_if_not_declaredto a shared header. - Rename Hungarian-notation identifiers to
snake_caseand name magic numbers. - Pass vectors and strings by const reference.
- Deprecate the
scan_filternode in favor of thelaser_filterspackage and remove the old laser filter. - Declare
lower_angle_/upper_angle_asdoubleinscan_filter. - Rename package to
sicks300_ros2and update publisher QoS. - Update the CI workflow.
1.3.3 (06-02-2025)
- First jazzy release.
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| diagnostic_updater | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| rcutils | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged sicks300_ros2 at Robotics Stack Exchange
|
sicks300_ros2 package from sicks300_ros2 reposicks300_ros2 |
ROS Distro
|
Package Summary
| Version | 1.3.2 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/ajtudela/sicks300_ros2.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-02-13 |
| Dev Status | MAINTAINED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Alberto Tudela
Authors
- Alberto Tudela
sicks300_ros2
Overview
This package implements a driver for the Sick S300 Safety laser scanners with an interface for ROS 2 using a lifecycle node. It provides an implementation for both, the old (1.40) and the new (2.10) protocol. Thus, the old Sick S300 Professional CMS as well as the new Sick S300 Expert are supported.
However, it does not cover the full functionality of the protocol:
- It only handles distance measurements properly
- It only handles no or only one configured measurement range field properly
- It does not handle I/O-data or reflector data (though it reads the reflector marker field in the distance measurements)
Keywords: ROS2, laser, driver, sick s300, lifecycle
The sicks300_ros2 package has been tested under [ROS2] Humble on [Ubuntu] 22.04. but ported to ROS2. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
S300 Configuration
Here are a few notes about how to best configure the S300:
- Configure the RS422 output to 500kBaud (otherwise, the scanner only provides a lower frequency)
- Configure the scanner to Continuous Data Output
- Send data via one telegram
- Only configure distances, no I/O or reflector data (otherwise, the scanner only provides a lower frequency).
- Configuration of the measurement ranges
- For protocol 1.40: only configure one measurement range field with the full range (-45° to 225°) with all values.
- For protocol 2.10: do not configure a measurement range field (otherwise, the scanner only provides a lower frequency).
- If you want to only use certain measurement ranges, do this on the ROS side using e.g. the
laser_filterspackage.
Installation
Building from Source
Dependencies
- Robot Operating System (ROS) 2 (middleware for robotics),
Building
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/sicks300_ros2.git
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build
Usage
Add the user to the dialout group to access the USB port:
sudo usermod -a -G dialout $USER
Run the sicks300_ros2 node with:
ros2 run sicks300_ros2 sicks300_ros2
Optionally, you can launch this node with an angulor bound filter:
ros2 launch sicks300_ros2 scan_with_filter.launch.py
Nodes
sicks300_ros2
Driver for the Sick S300 Safety laser scanners.
Published Topics
-
scan([sensor_msgs/LaserScan])The laserscan data.
-
scan/standby([std_msgs/Bool])True if the scanner is in standby mode, false otherwise.
-
/diagnostics([diagnostic_msgs/DiagnosticArray])Diagnostic about the laser scan.
Parameters
-
port(string, default: “/dev/ttyUSB0”)USB port of the scanner.
-
baud(int, default: 500000)Baudrate to communicate with the laser scanner.
File truncated at 100 lines see the full file
Changelog for package sicks300_ros2
1.3.2 (20-12-2024)
- Improve formating and linting.
- Remove nav2_util dependency.
- CMakelists.txt use modern idioms.
- Add more restricted compiled options.
1.3.0 (20-06-2023)
- Added scan_filter node.
- Added logging info in launch file.
- Added scan delay parameter.
1.2.3 (02-05-2023)
- Update on_activate and on_deactivate methods of the publishers: https://docs.ros.org/en/humble/Releases/Release-Humble-Hawksbill.html#rclcpp-lifecycle
1.2.2 (28-11-2022)
- Add LICENSE file.
1.2.1 (24-11-2022)
- Replace diagnostic messages with enums.
- Replace declare_parameter_if_not_declared with the one inside nav2_util.
1.2.0 (27-10-2022)
- Update find_minimums script with QoS.
- Remove boost dependencies.
1.1.1 (26-10-2022)
- Update launch file with arguments.
- Rename folder from config to params.
- Update publishers QoS.
1.1.0 (11-10-2022)
- Update parameters declarations.
- Check if parameters have been declared.
- Fix timer when transition from states.
- Rename dummy_launch.py to scan_with_filter.py.
- Remove undeclare the parameters.
1.0.0 (25-07-2022)
- From cob_driver version 0.7.12.
- Convert to ROS2.
- Add github workflow.
- Added QoS.
- Convert node into a lifecycle node.
- Added laser_filters.
- Added script to find minimum. Thanks to Manolo Fernandez Carmona.
- Contributors: Alberto Tudela.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| laser_filters | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| diagnostic_msgs | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| sensor_msgs |