-

sicks300_2 package from sicks300_2 repo

sicks300_2

Package Summary

Tags No category tags.
Version 1.3.2
License Apache 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ajtudela/sicks300_2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-20
Dev Status MAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

This package published a laser scan message out of a Sick S300 laser scanner.

Additional Links

No additional links.

Maintainers

  • Alberto Tudela

Authors

  • Alberto Tudela

sicks300_2

ROS2 License Build

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_2 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_filters package.

Installation

Building from Source

Dependencies

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_2.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_2 node with:

ros2 run sicks300_2 sicks300_2

Optionally, you can launch this node with an angulor bound filter:

ros2 launch sicks300_2 scan_with_filter.launch.py

Nodes

sicks300_2

Driver for the Sick S300 Safety laser scanners.

Published Topics

Parameters

  • port (string, default: “/dev/ttyUSB0”)

    USB port of the scanner.

  • baud (int, default: 500000)

    Baudrate to communicate with the laser scanner.

  • scan_id (int, default: 7)

    Identifier of the scanner.

  • inverted (bool, default: false)

    Option to invert the direction of the measurements.

  • scan_topic (string, default: “scan”)

    The topic where the laser scan will be published.

  • frame_id (string, default: “base_laser_link”)

    The frame of the scanner.

  • scan_duration (double, default: 0.025)

    Time between laser scans in seconds.

  • scan_cycle_time (double, default: 0.040)

    Cycle time of the scan in seconds. Documentation says S300 scans every 40ms.

  • scan_delay (double, default: 0.075)

    Delay between the start of the scan and the first measurement in seconds.

  • debug (bool, default: false)

    Option to toggle scanner debugging information.

  • communication_timeout (double, default: 0.2)

    Timeout to shutdown the node in seconds.

  • fields

    Range configuration of the field. Set 1 by default.

CHANGELOG

Changelog for package sicks300_2

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)

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.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged sicks300_2 at Robotics Stack Exchange