Skip to content

Commit

Permalink
Merge pull request #324 from SICKAG/release/3.4.0
Browse files Browse the repository at this point in the history
Release/3.4.0
  • Loading branch information
michael1309 authored May 3, 2024
2 parents 761d90c + 64f804d commit 9fbf194
Show file tree
Hide file tree
Showing 135 changed files with 2,348 additions and 580 deletions.
68 changes: 39 additions & 29 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,31 @@ features that will be removed in future versions **Removed** for deprecated feat

## Released ##

### Release 3.4.0

- **add** azimut angle table for MRS-1xxx and LMS-1xxx with firmware 2.2.0 oder newer
- **add** dockertests for MRS-1xxx, multiScan and picoScan with ROS-2
- **add** API-funktion SickScanApiSendSOPAS to send SOPAS commands (e.g. "sRN SCdevicestate" or "sRN ContaminationResult")
- **add** generation of TF messages
- **add** Option to deactivate initialization sequence for TiM-7xxS devices
- **add** Documented option "-b master" to clone the release version
- **fix** #316 API re-init nach close

### Release v3.3.0

- **add** Option for MRS1xxx azimuth correction table
- **add** Option for MRS1xxx azimuth correction table
- **add** Support for picoScan100 (single echo w/o addons)
- **add** API logging functions and verbosity (#270)
- **add** API documentation (multiple lidars not supported, #281)
- **changed** API extended (added topic in PointCloud messages, #271)
- **change** API extended (added topic in PointCloud messages, #271)

### Release v3.2.0

- **add** IMU support for multiScan and picoScan
- **add** support bloom releases for ROS-2 humble
- **add** docker tests for ROS1 noetic incl. testcases for multiScan, picoScan, MRS1xxx
- **add** PR #255, support picoScan performance profiles
- **changed** configuration time flag LMDscandatacfg switched off for the TiM240
- **change** configuration time flag LMDscandatacfg switched off for the TiM240
- **fix** #218 (API reinit)
- **fix** #220 (Fullframe Laserscan messages multi- and picoScan)
- **fix** #221 (No scandata while activated scan range filter)
Expand All @@ -33,7 +43,7 @@ features that will be removed in future versions **Removed** for deprecated feat

- **add** IMU support for multiScan
- **add** LaserScan output for picoScan
- **fix** API reinit
- **fix** API reinit
- **fix** multiScan data output with range filter activated
- **fix** adapt multiScan startup and shutdown sequence
- **fix** adaptations for MRS-1000 v2 firmware
Expand All @@ -44,11 +54,11 @@ This release has a new major version as it breaks with the previously used ROS m
For consistency, the ROS module name has been changed to "sick_scan_xd" to match the name used everywhere else.

- **add** New topics for additional data and properties
- **add** Official ARM64 support
- **add** Official ARM64 support
- **add** Service for requesting contamination detection information
- **changed** Improvements from customer tickets and documentation enhancements
- **change** Improvements from customer tickets and documentation enhancements
- **fix** ROS module name consistency

### Release v2.10.3
- **fix** avoid problems with min/max definition in the STL and preprocessor definitions

Expand All @@ -57,7 +67,7 @@ For consistency, the ROS module name has been changed to "sick_scan_xd" to match

### Release v2.10.1
- **update** make Compact format the default for picoScan and multiScan

### Release v2.10.0
- **add** picoScan support
- **add** Compact format support
Expand All @@ -83,7 +93,7 @@ For consistency, the ROS module name has been changed to "sick_scan_xd" to match
- **Update** Win64 build instructions
- **Update** API documentation, driver states diagrams and typos
- **Added** LRS-36xx configuration for upside-down mounting
- **Removed** Obsolete service commands and RMS3xx support
- **Removed** Obsolete service commands and RMS3xx support
- **Fix** LRS-36xx angle configuration
- **Fix** catkin_lint warnings
- **Fix** ROS-2 Humble build
Expand Down Expand Up @@ -133,7 +143,7 @@ For consistency, the ROS module name has been changed to "sick_scan_xd" to match
- **Update** README.md restructured
- **Update** Collected update including previous v2.8.x changes

### v2.8.2 - development branch
### v2.8.2 - development branch
- **Fixed** Update build instructions in README.md, visualization in python API-example with low frequency to reduce cpu usage.

### v2.8.1 - development branch
Expand All @@ -146,68 +156,68 @@ For consistency, the ROS module name has been changed to "sick_scan_xd" to match
- **Changed** Changed to namespace roswrap in ros wrapper classes
- **Fixed** Library linker flag #91

### v2.7.5 -
### v2.7.5 -
- **Fixed** MRS6124 pointcloud error #88

### v2.7.4 -
### v2.7.4 -
- **Fixed** ROS2 compilation error #83

### v2.7.3 -
### v2.7.3 -
- **Added** Supported for LFPmeanfilter and LFPmedianfilter (MRS1xxx, LMS1xxx, LMS4xxx, LRS4xxx)
- **Added** Supported for LMDscandatascalefactor (LRS4xxx)

### v2.7.0 -
### v2.7.0 -
- **Added** V2.7.0: Support for multiScan136 (sick_scansegment_xd)
- **Fixed** Timestamp LaserScan-message corrected (identical timestamps in LaserScan- and PointCloud2-messages, both by Software-PLL)

### v2.6.8 -
### v2.6.8 -
- **Fixed** Merge pull request #76

### v2.6.7 -
### v2.6.7 -
- **Update** LMS511 configuration #67

### v2.6.6 -
### v2.6.6 -
- **Update** NAV310 + LRS4xxx update, issues #58, #59, #60, #61

### v2.6.5 -
### v2.6.5 -
- **Fixed** LRS4xxx scan configuration #52

### v2.6.4 -
### v2.6.4 -
- **Fixed** LMS5xx echo filter settings corrected

### v2.6.3 -
### v2.6.3 -
- **Fixed** Timestamp Laserscan message corrected

### v2.6.2 -
### v2.6.2 -
- **Fixed** LDMRS spinning problem corrected

### v2.6.1 -
### v2.6.1 -
- **Added** V2.6.1: Support for RMS-1xxx binary protocol

### v2.6.0 -
### v2.6.0 -
- **Changed** V2.6.0: RMS configuration update, issue #7

### v2.5.2 -
### v2.5.2 -
- **Fixed** Fix LSR-4xxx laserscan angles #28
- **Fixed** Fix duplicated laserscan messages #28

### v2.5.1 -
### v2.5.1 -
- **Fixed** Error after SOPAS command SetAccessMode #27

### v2.5.0 -
### v2.5.0 -
- **Fixed** Issue #24 (stop scanner at exit)
- **Added** new ros service SickScanExit to stop scanner and exit

### v2.4.6 -
### v2.4.6 -
- **Fixed** Corrected angle shift parameter for LMS-4xxx
- **Changed** Typo corrected

### v2.4.5 -
### v2.4.5 -
- **Changed** bugfix #158 (driver terminates), modified SOPAS-startup sequence.

### v2.4.4 - 2022-01-25
- **Added** Support min and max angle configuration for LRS-3601
- **Changed** Mirroring for NAV-3xx
- **Changed** Mirroring for NAV-3xx

### v2.4.3 - 2022-01-18
- **Changed** Rename class sick_lidar::Util to namespace sick_lidar::util
Expand Down
21 changes: 16 additions & 5 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,42 @@
Changelog for package sick_scan_xd
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Forthcoming
3.4.0 (2024-05-03)
-----------
* Release 3.4.0
* add: azimut angle table for MRS-1xxx and LMS-1xxx with firmware 2.2.0 oder newer
* add: dockertests for MRS-1xxx, multiScan and picoScan with ROS-2
* add: API-funktion SickScanApiSendSOPAS to send SOPAS commands (e.g. "sRN SCdevicestate" or "sRN ContaminationResult")
* add: generation of TF messages
* add: Option to deactivate initialization sequence for TiM-7xxS devices
* add: Documented option "-b master" to clone the release version
* fix: #316 API re-init nach close

3.3.0 (2024-03-04)
------------------
* Release v3.3.0
* add: Option for MRS1xxx azimuth correction table
* add: Option for MRS1xxx azimuth correction table
* add: Support for picoScan100 (single echo w/o addons)
* add: API logging functions and verbosity (#270)
* add: API documentation (multiple lidars not supported, #281)
* changed: API extended (added topic in PointCloud messages, #271)

3.2.0 (2024-02-12)
------------------
* Release v3.1.0
* Release v3.2.0
* add: IMU support for multiScan and picoScan
* add: support bloom releases for ROS-2 humble
* add: docker tests for ROS1 noetic incl. testcases for multiScan, picoScan, MRS1xxx
* add: PR #255, support picoScan performance profiles
* changed: configuration time flag LMDscandatacfg switched off for the TiM240
* change: configuration time flag LMDscandatacfg switched off for the TiM240
* fix: #218 (API reinit)
* fix: #220 (Fullframe Laserscan messages multi- and picoScan)
* fix: #221 (No scandata while activated scan range filter)
* fix: #222 (rviz visualization of polar pointclouds)
* fix: #247 (Launchfile option for laserscan topic)
* fix: #256 (Clean API-exit picoScan and multiScan)
* fix: #260 (Provide API-functions to query lidar status, error codes and error messages)
* Contributors: Manuel Aiple

3.1.0 (2023-11-21)
------------------
Expand Down Expand Up @@ -358,7 +370,6 @@ Forthcoming
2.5.0 (2022-03-09)
------------------
* Merge pull request `#25 <https://github.com/SICKAG/sick_scan_xd/issues/25>`_ from SICKAG/feature/lidar_stop_exit
Fix issue `#24 <https://github.com/SICKAG/sick_scan_xd/issues/24>`_ (stop scanner at exit), new ros service SickScanExit to…
* Fix issue `#24 <https://github.com/SICKAG/sick_scan_xd/issues/24>`_ (stop scanner at exit), new ros service SickScanExit to stop scanner and exit
* Contributors: rostest

Expand Down
6 changes: 4 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ function(check_header_exists headerfilepath headerfilename packagename)
message(STATUS "If you encounter problems with missing ${headerfilename}, please checkout the following repositories:")
message(STATUS "git clone https://github.com/SICKAG/libsick_ldmrs.git")
message(STATUS "git clone https://github.com/SICKAG/msgpack11.git")
message(STATUS "git clone https://github.com/SICKAG/sick_scan_xd.git")
message(STATUS "git clone -b master https://github.com/SICKAG/sick_scan_xd.git")
message(STATUS "and rebuild. See the build instructions in INSTALL-GENERIC.md, INSTALL-ROS1.md and INSTALL-ROS2.md for further details.")
endif()
endfunction()
Expand Down Expand Up @@ -237,7 +237,7 @@ if(ROS_VERSION EQUAL 2)
find_package(ament_cmake REQUIRED)
if(NOT WIN32)
# still check if diagnostics updater is available (depends on ros distribution)
find_package(diagnostic_updater)
find_package(diagnostic_updater QUIET)
if (${diagnostic_updater_FOUND})
set(diagnostic_updater_pkg diagnostic_updater)
add_compile_options(-DROS_DIAGNOSTICS_UPDATER_AVAILABLE)
Expand Down Expand Up @@ -524,6 +524,7 @@ if(ROS_VERSION EQUAL 1)
driver/src/sick_scan_messages.cpp
driver/src/sick_scan_parse_util.cpp
driver/src/sick_scan_services.cpp
driver/src/sick_tf_publisher.cpp
driver/src/sick_scan_xd_api/api_impl.cpp
driver/src/sick_scan_xd_api/sick_scan_api_converter.cpp
driver/src/sick_nav_scandata_parser.cpp
Expand Down Expand Up @@ -625,6 +626,7 @@ else() # i.e. (ROS_VERSION EQUAL 0 OR ROS_VERSION EQUAL 2)
driver/src/sick_scan_messages.cpp
driver/src/sick_scan_parse_util.cpp
driver/src/sick_scan_services.cpp
driver/src/sick_tf_publisher.cpp
driver/src/sick_scan_xd_api/api_impl.cpp
driver/src/sick_scan_xd_api/sick_scan_api_converter.cpp
driver/src/softwarePLL.cpp
Expand Down
23 changes: 1 addition & 22 deletions FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,28 +201,7 @@ By default, filter settings are not overwritten, i.e. the filter settings stored
:question: Independent of the configuration, the LMS1xxx pointcloud always displays 0.75 [deg] angular resolution
:white_check_mark: Using higher resolutions, the LMS1xxx sends scan data interlaced. With configuration ang_res=0.75, the angular resolution of each scan is 0.75 [deg]. This means that each point cloud message also has a resolution of 0.75 [deg]. With configuration ang_res=0.375, the scan is generated interlaced: Each scan still has 0.75 [deg] resolution, but 2 consecutive scans are rotated by 0.375 [deg] against each other. I.e. 2 consecutive Pointcloud messages each have an angular resolution of 0.375 [deg] at half the frequency. Within a point cloud message the angular resolution is still 0.75 [deg].
With configuration ang_res=0.1875 the scan is generated quadruple interlaced, i.e. 4 consecutive scans are each rotated by 0.1875 [deg]. Each scan is resolved with 0.75 [deg]; 4 scans or 4 pointclouds together (accumulated) result in a resolution of 0.1875 [deg] at a quarter of the frequency.
You can see this in rviz by increasing the decay time to e.g. 4/75=0.054 or higher. The screenshot shows an example with the default setting ang_res=0.75:
![LMS1xxx_0.7500_deg.png](doc/screenshots/LMS1xxx_0.7500_deg.png)
The angular resolution is (just roughly measured) about atan(0.11/0.9) / 9 points = 0.77 [deg]. With ang_res=0.375 and decay=0.1 rviz shows twice the resolution:
![LMS1xxx_0.7500_deg.png](doc/screenshots/LMS1xxx_0.3750_deg.png)
Correspondingly, rviz shows four times the resolution with ang_res=0.1875 and decay=0.1:
![LMS1xxx_0.7500_deg.png](doc/screenshots/LMS1xxx_0.1875_deg.png)
To use the full angular resolution, the pointcloud must be accumulated by 2 resp. 4 messages.
The active configuration can be seen in the log output during scanner initialization, e.g.:
```
[ INFO] [1669294673.078608968]: sRA LMPscancfg: scan frequency = 75 Hz, angular resolution = 0.375 deg.
```
:white_check_mark: Using higher resolutions, the LMS1xxx sends scan data interlaced. See [interlacing.md](doc/interlacing.md) for details.
## "ERROR: Tcp::open: Failed to open TCP connection to 192.168.0.1, aborting."
Expand Down
4 changes: 2 additions & 2 deletions INSTALL-GENERIC.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Run the following steps to build sick_scan_xd on Linux (no ROS required):
2. Clone repositories https://github.com/SICKAG/libsick_ldmrs and https://github.com/SICKAG/sick_scan_xd:
```
git clone https://github.com/SICKAG/libsick_ldmrs.git
git clone https://github.com/SICKAG/sick_scan_xd.git
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
```

3. Build libsick_ldmrs (required only once for LDMRS sensors):
Expand Down Expand Up @@ -77,7 +77,7 @@ To install sick_scan_xd on Windows, follow the steps below:

3. Clone repository https://github.com/SICKAG/sick_scan_xd:
```
git clone https://github.com/SICKAG/sick_scan_xd.git
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
```

4. Build sick_generic_caller and sick_scan_xd_shared_lib.dll with cmake and Visual Studio 2019:
Expand Down
2 changes: 1 addition & 1 deletion INSTALL-ROS1.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Run the following steps to build sick_scan_xd on Linux with ROS 1:
mkdir ./src
pushd ./src
git clone https://github.com/SICKAG/libsick_ldmrs.git
git clone https://github.com/SICKAG/sick_scan_xd.git
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
popd
rm -rf ./build ./build_isolated/ ./devel ./devel_isolated/ ./install ./install_isolated/ ./log/ # remove any files from a previous build
```
Expand Down
4 changes: 2 additions & 2 deletions INSTALL-ROS2.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Run the following steps to build sick_scan_xd on Linux with ROS 2:
mkdir ./src
pushd ./src
git clone https://github.com/SICKAG/libsick_ldmrs.git
git clone https://github.com/SICKAG/sick_scan_xd.git
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
popd
rm -rf ./build ./build_isolated/ ./devel ./devel_isolated/ ./install ./install_isolated/ ./log/ # remove any files from a previous build
```
Expand Down Expand Up @@ -114,7 +114,7 @@ To install sick_scan_xd on Windows with ROS-2, follow the steps below:
```
mkdir .\src
pushd .\src
git clone https://github.com/SICKAG/sick_scan_xd.git
git clone -b master https://github.com/SICKAG/sick_scan_xd.git
popd
```

Expand Down
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ This project provides a driver for the SICK LiDARs and Radar sensors mentioned [
- [SLAM-Support](doc/slam.md)
- [Software Overview](#software-overview)
- [Raspberry support](doc/raspberry.md)
- [Interlacing](doc/interlacing.md)
- [FAQ](FAQ.md)
- [Further support](SUPPORT.md)
- [CREDITS](CREDITS.md)
Expand Down Expand Up @@ -65,7 +66,7 @@ git clone https://github.com/SICKAG/sick_scan_xd.git

## Build targets

sick_scan_xd can be build on Linux and Windows, with and without ROS, with and without LDMRS. The following table shows the allowed combinations and how to build.
sick_scan_xd can be build on 64-bit Linux and Windows, with and without ROS, with and without LDMRS. The following table shows the allowed combinations and how to build.

| **target** | **cmake settings** | **build script** |
|------------|--------------------|------------------|
Expand All @@ -80,9 +81,8 @@ sick_scan_xd can be build on Linux and Windows, with and without ROS, with and w

If you're using ROS, set your ROS-environment before running one of these scripts, f.e.
* `source /opt/ros/noetic/setup.bash` for ROS-1 noetic, or
* `source /opt/ros/melodic/setup.bash` for ROS-1 melodic, or
* `source /opt/ros/eloquent/setup.bash` for ROS-2 eloquent, or
* `source /opt/ros/foxy/setup.bash` for ROS-2 foxy.
* `source /opt/ros/foxy/setup.bash` for ROS-2 foxy, or
* `source /opt/ros/humble/setup.bash` for ROS-2 humble.

See the build descriptions for more details:
* [Build on Linux generic without ROS](INSTALL-GENERIC.md#build-on-linux-generic-without-ros)
Expand All @@ -91,6 +91,8 @@ See the build descriptions for more details:
* [Build on Windows](INSTALL-GENERIC.md#build-on-windows)
* [Build on Windows ROS2](INSTALL-ROS2.md#build-on-windows-ros2)

sick_scan_xd supports 64 bit Linux and Windows, 32 bit systems are not supported.

## Driver API

sick_scan_xd provides a C API, which can be used by any programming language with C-bindings, e.g. in C/C++ or python applications. See [sick_scan_api.md](doc/sick_scan_api/sick_scan_api.md) for further details.
Expand Down Expand Up @@ -167,3 +169,6 @@ LD-LRS3611
LD-OEM1500
LD-OEM1501
multiScan100
multiScan
picoScan100
picoScan
9 changes: 9 additions & 0 deletions USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,15 @@ ros2 run sick_scan_xd sick_generic_caller sick_tim_5xx.launch hostname:=192.168.

- **Coordinate transform**: An optional coordinate transform can be applied to the pointcloud. See [coordinate transforms](./doc/coordinate_transforms.md) for details.

### Lidar specific parameters

Some lidars have specific parameters and options.

- **TiM781S**: For TiM781S lidars, the initial lidar configuration can be deactivated using optional argument initialize_scanner:=0.
Note that this mode does not initialize the lidar. The mode assumes that the scanner is in an appropriate state corresponding to the properties configured in the launchfile. It is not recommended to use this option unless for specific tasks in a controlled environment.<br/>
**Do not use this mode except the lidar has been configured properly and initialized successfully and is in the same state as after initialization by the launchfile! This option is for advanced users only!**<br/>
Example: `roslaunch sick_scan_xd sick_tim_7xxS.launch hostname:=192.168.0.1 initialize_scanner:=0`

### ROS services

On ROS-1 and ROS-2, services can be used to send COLA commands to the sensor. This can be very helpful for diagnosis, e.g. by querying the device status or its id.
Expand Down
Loading

0 comments on commit 9fbf194

Please sign in to comment.