Giter VIP home page Giter VIP logo

sick_scan2's Introduction

IMPORTANT: This repository will not be maintained further. The sources have been completely transferred to the repository https://github.com/SICKAG/sick_scan_xd. The repository will be deleted after 12/31/2022 in 2023 without further notice.

sick_scan2

This stack provides a ROS2 driver for the SICK lidar sensors mentioned in the following list.

Remark

During the last years we have developed different repositories within the driver development with the projects sick_scan, sick_scan2 and sick_scan_base, with which many lidars and radars of our company can be used under ROS1, ROS2 and generically under C++. For harmonization, due to customer requests and to increase clarity, we decided to combine these developments in the future. As a result of this work, at the end of 2021 we have created the repository sick_scan_xd, where we will continue future developments. We recommend using this new repository for development so that you can continue to benefit from our improvements and additions to our drivers.

Table of contents

This stack provides a ROS2 driver for the SICK laser scanners mentioned in the following list.

Supported Hardware

This driver should work with all of the following products.

ROS Device Driver for SICK lidar sensors - supported scanner types:

device name part no. description tested?
TiM240 1104981 1 layer max. range: 10 m, ang. resol. 1.00 [deg], 240 [deg] ✔ [prototype]
Scan-Rate: 14.5 Hz
TiM551 1060445 1 layer max. range: 10 m, ang. resol. 1.00[deg] ✔ [stable]
Scan-Rate: 15 Hz
TiM561 1071419 1 layer max. range: 10 m, ang. resol. 0.33 [deg] ✔ [stable]
Scan-Rate: 15 Hz
TiM571 1079742 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
Scan-Rate: 15 Hz
TiM781 1096807 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
Scan-Rate: 15 Hz
TiM781S 1096363 1 layer max. range: 25 m, ang. resol. 0.33 [deg] ✔ [stable]
Scan-Rate: 15 Hz
LMS511-10100 PRO e.g. 1046135 1 layer max. range: 80 m, ang. resol. 0.167 [deg] ✔ [stable]
Scan-Rate: 100 Hz
LMS1xx-Family e.g. 1041114 1 layer max. range: 28 m, ang. resol. 0.25 [deg] ✔ [stable]
Scan-Rate: 15 Hz
MRS1104 1081208 4 layer max. range: 64 m, ang. resol. 0.25 [deg] hor., 2.50 [deg] ver. ✔ [development]
Scan-Rate: 50 Hz, 4x12.5 Hz
LMS1104 1092445 1 layer max. range: 64 m, ang. resol. 0.25 [deg] ✔ [stable]
Scan-Rate: 150 Hz, 4x37.5 Hz
LDMRS 4 or 8 layer, max. range: 50/320 m, ang. resol. 0.025°/.../0.25 [deg] ✔ [development]
Scan-Rate: 12.5-50 Hz
LRS4000 1 layer, max. range: 130 m, ang. resol. 0.125/0.25/0.5 [deg] ✔ [development]
Scan-Rate: 12.5-25 Hz

Requirements

sick_scan2 has been developed and tested using Linux ROS-2 Foxy. It should be compatible with other ROS-2 versions (but not fully tested).

Start Node

See quick start for further hints.

Sopas Mode

This driver supports both COLA-B (binary) and COLA-A (ASCII) communication with the laser scanner. Binary mode is activated by default. Since this mode generates less network traffic. If the communication mode set in the scanner memory is different from that used by the driver, the scanner's communication mode is changed. This requires a restart of the TCP-IP connection, which can extend the start time by up to 30 seconds. There are two ways to prevent this:

  1. [Recommended] Set the communication mode with the SOPAS ET software to binary and save this setting in the scanner's EEPROM.
  2. Use the parameter "use_binary_protocol" to overwrite the default settings of the driver.
  3. Setting "use_binary_protocol" to "False" activates COLA-A and disables COLA-B (default)

Known issue

If the scanner has not been set to binary Sopas in the EEPROM, the automatic restart of the TCP-IP connection does not work after the protocol change. The driver stops in this state: Wrong SOPAS Mode

Workaround

restart the driver node.

Bugs and feature requests

  • Stability issues: Driver is experimental and brand new
  • Sopas protocol mapping: -- All scanners: COLA-B (Binary)
  • Software should be further tested, documented and beautified

Troubleshooting

  1. Check Scanner IP by using fping or SOPAS ET under Windows
  2. Check Ethernet connection to scanner with netcat e.g. nc -z -v -w5 $SCANNERIPADDRESS 2112. For further details about setting up the correct ip settings see IP configuration
  3. View node startup output wether the IP connection could be established
  4. Check the scanner status using the LEDs on the device. The LED codes are described in the above mentioned operation manuals.
  5. Further testing and troubleshooting informations can found in the file test/readme_testplan.txt
  6. If you stop the scanner in your debugging IDE or by other hard interruption (like Ctrl-C), you must wait until 60 sec. before the scanner is up and running again. During this time the MRS6124 reconnects twice. If you do not wait this waiting time you could see one of the following messages:
    • TCP connection error
    • Error-Message 0x0d
  7. Amplitude values in rviz: If you see only one color in rviz try the following: Set the min/max-Range of intensity display in the range [0...200] and switch on the intensity flag in the lauch file
  8. In case of network problems check your own ip address and the ip address of your laser scanner (by using SOPAS ET).
    • List of own IP-addresses: ifconfig|grep "inet addr"
    • Try to ping scanner ip address (used in launch file)
  9. If the driver stops during init phase please stop the driver with ctrl-c and restart (could be caused due to protocol ASCII/Binary cola-dialect).

Support

  • In case of technical support please open a new issue. For optimal support, add the following information to your request:
  1. Scanner model name,
  2. Ros node startup log,
  3. Sopas file of your scanner configuration. The instructions at http://sickusablog.com/create-and-download-a-sopas-file/ show how to create the Sopas file.
  • In case of application support please use https://supportportal.sick.com .
  • Issue Handling: Issues, for which no reply was received from the questioner for more than 7 days, are closed by us because we assume that the user has solved the problem.

Installation

In the following instructions, replace <rosdistro> with the name of your ROS distro (e.g., dashing).

From source

source /opt/ros/$ROS_DISTRO/setup.bash
mkdir -p ~/sick_scan_ws/src/
cd ~/sick_scan_ws/src/
git clone https://github.com/SICKAG/sick_scan2.git
cd ..
colcon build
source ~/sick_scan_ws/install/setup.bash

To build the sick_scan2 ros driver with LDMRS support, libsick_ldmrs is required and flag BUILD_WITH_LDMRS_SUPPORT must be set:

source /opt/ros/$ROS_DISTRO/setup.bash
mkdir -p ~/sick_scan_ws/src/
cd ~/sick_scan_ws/src/
sudo apt-get install ros-$ROS_DISTRO-diagnostic-updater
git clone https://github.com/SICKAG/libsick_ldmrs.git
git clone https://github.com/SICKAG/sick_scan2.git
cd ..
export BUILD_WITH_LDMRS_SUPPORT=True
colcon build --cmake-args " -DBUILD_WITH_LDMRS_SUPPORT=$BUILD_WITH_LDMRS_SUPPORT"
source ~/sick_scan_ws/install/setup.bash

The LDMRS driver is originally taken from sick_lmrs_laser, migrated to ROS2 and integrated into sick_scan2. Please see https://github.com/SICKAG/sick_ldmrs_laser and https://github.com/SICKAG/libsick_ldmrs for further details.

Quick Start

cd ~/sick_scan_ws
source ./install/setup.bash

Attention: Replace the ip address for "__hostname" with your scanner ip address. Default ip address of scanner is 192.168.0.1. In this example we use the ip address 192.168.0.71

Via the program argument __frame_id the frame of the laserscan messages can be changed. Default is "cloud".

For TiM240:

ros2 launch sick_scan2 sick_tim_240.launch.py

For TiM5xx:

ros2 launch sick_scan2 sick_tim_5xx.launch.py

For LMS511:

ros2 launch sick_scan2 sick_lms_5xx.launch.py

For TiM781:

ros2 launch sick_scan2 sick_tim_7xx.launch.py

For TiM781S:

ros2 launch sick_scan2 sick_tim_7xxS.launch.py

For LMS111:

ros2 launch sick_scan2 sick_lms_5xx.launch.py

For MRS1104:

ros2 launch sick_scan2 sick_mrs_1xxx.launch.py

For LMS1104:

ros2 launch sick_scan2 sick_lms_1xxx.launch.py

For LDMRS:

ros2 launch sick_scan2 sick_ldmrs.launch.py

For LRS4000:

ros2 launch sick_scan2 sick_lrs4000.launch.py

Start a second terminal window

cd ~/sick_scan_ws
source ./install/setup.bash
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 world cloud

Start a third terminal window

cd ~/sick_scan_ws
source ./install/setup.bash
rviz2 ./install/sick_scan2/share/sick_scan2/launch/rviz/tim_5xx.rviz

The result shoud look like this: rviz2_scan

Unit tests

For a quick unit test after installation without the sensor hardware, a test server is provided to simulate a scanner. The test server generates scan data examples and responds to command requests. Please note, that this test server does not emulate a Lidar sensor. It just sends some simple scan data and response messages to a tcp client. It can be used for a quick unit test after build and install.

For a unit test, run the following commands in different terminals:

For LDMRS unit test:

cd ~/sick_scan_ws
source ./install/setup.bash
ros2 run sick_scan2 test_server --ros-args --params-file src/sick_scan2/tools/test_server/config/test_server_ldmrs.yaml
ros2 run sick_scan2 sick_generic_caller --ros-args --params-file src/sick_scan2/config/sick_ldmrs_flexres.yaml -p "hostname:=127.0.0.1"
ros2 run rviz2 rviz2 -d ./src/sick_scan2/launch/rviz/sick_ldmrs.rviz

For other scanners supported by sick_scan2, replace $yaml_file by sick_tim_240.yaml, sick_tim_5xx.yaml, sick_tim_7xx.yaml, sick_tim_7xxS.yaml, sick_lms_1xx.yaml, sick_lms_5xx.yaml or sick_mrs_1xxx.yaml, and run the following commands:

cd ~/sick_scan_ws
source ./install/setup.bash
ros2 run sick_scan2 test_server --ros-args --params-file src/sick_scan2/tools/test_server/config/test_server_cola.yaml
ros2 run sick_scan2 sick_generic_caller --ros-args --params-file src/sick_scan2/config/$yaml_file -p "hostname:=127.0.0.1" -p "port:=2112" -p "sw_pll_only_publish:=false"
ros2 run rviz2 rviz2 -d ./src/sick_scan2/launch/rviz/sick_cola.rviz

For a quick build, install and run test, some bash scripts are provided in folder src/sick_scan2/tools/scripts. Run the following commands:

cd ~/sick_scan_ws/src/sick_scan2/tools/scripts
./makeall.bash
./run_simu.bash

Developing with CLion IDE

  • Change to workspace directory, e.g.:
cd ~/sick_scan_ws
source ./install/setup.bash
~/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/201.8743.17/bin/clion.sh ./src/sick_scan2

Comment: Please modify the path to your local installation.

  • If the build step generates a message like Could NOT find FastRTPS (missing: FastRTPS_INCLUDE_DIR FastRTPS_LIBRARIES), export addition path infos by the following command:
export CMAKE_PREFIX_PATH=$AMENT_PREFIX_PATH:$CMAKE_PREFIX_PATH

(see https://answers.ros.org/question/334581/could-not-find-fastrtps-missing-fastrtps_include_dir-fastrtps_libraries/). Or try to set the path manualy

set(FastRTPS_INCLUDE_DIR /opt/ros/foxy/include)
set(FastRTPS_LIBRARY_RELEASE /opt/ros/foxy/lib/libfastrtps.so)

Developing with Visual Studio Code

Download the debian package code_1.47.3-1595520028_amd64.deb (or any later version) from https://code.visualstudio.com and install Visual Studio Code by

sudo apt install ./code_1.47.3-1595520028_amd64.deb

Open Visual Studio Code by running code in the console, select Customize, Tools and languages and install Python, C/C++, ROS, Colcon Tasks and Markdown (and any other usefull extensions you might need).

Open folder sick_scan_ws via File menu and save a new workspace with Save Workspace As.... Open file c_cpp_properties.json in the Visual Studio Code Editor and insert compiler settings:

"includePath": [ "~/sick_scan_ws/src/sick_scan2/include/**", "~/sick_scan_ws/src/sick_scan2/tools/test_server/include/**", "~/sick_scan_ws/src/sick_ldmrs_laser/sick_ldmrs_driver/include/**", "~/sick_scan_ws/src/sick_ldmrs_laser/sick_ldmrs_msgs/include/**", "~/sick_scan_ws/build/**", "~/sick_scan_ws/install/**", "/opt/ros/eloquent/include", "/usr/include/**" ],
"defines": [ "LDMRS_SUPPORT=1" ],

Keywords

ROS LiDAR SICK LiDAR SICK Laser SICK Laserscanner TiM5xx TiM551 TiM561 TiM571 TiM781 TiM781S LMS111 LMS511 MRS1104 LMS1104 MRS1xxx LMS1xxx LDMRS LRS4000

Creators

Michael Lehning

on behalf of SICK AG


Lehning Logo

sick_scan2's People

Contributors

clalancette avatar ksuszka avatar michael1309 avatar moritzwillmann avatar p0wdrdotcom avatar rostest avatar skylerpan avatar timple avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sick_scan2's Issues

sick_scan2 packages building

Hi,

I have a MRS1104 and I have some problems to install sick_scan2 packages in spite following the instructions correctly.

While I'm trying to build with colcon I get these issues (1):
sickscan2_install_issue_1

So I edited the CMakelists.txt and I tried to comment the line 56:
find_package(PCL REQUIRED) # workaround https://github.com/ros2/rosidl/issues/402 : Do find_package(PCL) after calling rosidl_generate_interfaces in your CMakeLists.txt

And I get this error (2):
sickscan2_install_issue_2

And if I comment the line concerned I get some other issues, that's logical.
Do you have a solution in order to solve this problem ?

Thanks !

My configuration :
I've installed ROS2 Foxy Fiztroy into a VM with Ubuntu 20.04.3.
Lidar is connected to my laptop with its ethernet wire.

My CMakeLists.txt :

`###########################################################

ROS2 CMakeLists.txt for SICK-Scanner-Support

Project: sick_scan2

URL: https://github.com/SICKAG/sick_scan2

###########################################################

cmake_minimum_required(VERSION 3.5)

project(sick_scan2)

Default to C++14

if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()

TODO: Remove compiler warning from the code - currently suppressed

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wno-sign-compare )

add_compile_options(-Wall -Wextra -Wpedantic)

endif()

#uncomment this lines and change path accordingly
set(FastRTPS_INCLUDE_DIR /opt/ros/foxy/include)
set(FastRTPS_LIBRARY_RELEASE /opt/ros/foxy/lib/libfastrtps.so)
#to fix
#CMake Error at /snap/clion/126/bin/cmake/linux/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):

Could NOT find FastRTPS (missing: FastRTPS_INCLUDE_DIR FastRTPS_LIBRARIES)

find_package(Boost REQUIRED COMPONENTS system thread)

find_package(ament_cmake REQUIRED)

find_package(diagnostic_updater REQUIRED)

find_package(rclcpp REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(std_msgs REQUIRED)
find_package(tf2 REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(diagnostic_msgs REQUIRED)
find_package(tf2_ros REQUIRED)

add_definitions(-DUSE_DYN_RECONFIG=0)

if(BUILD_WITH_LDMRS_SUPPORT OR BUILD_WITH_LDMRS_SUPPORT MATCHES "true")
message(STATUS "Building sick_scan2 with LDMRS support")
add_definitions(-DLDMRS_SUPPORT=1)
find_package(rosidl_default_generators REQUIRED)
find_package(SickLDMRS REQUIRED)
rosidl_generate_interfaces(${PROJECT_NAME}
"msg/ldmrs/SickLdmrsObject.msg"
"msg/ldmrs/SickLdmrsObjectArray.msg"
DEPENDENCIES builtin_interfaces std_msgs geometry_msgs sensor_msgs
)
# find_package(PCL REQUIRED) # workaround https://github.com/ros2/rosidl/issues/402 : Do find_package(PCL) after calling rosidl_generate_interfaces in your CMakeLists.txt
set(LDMRS_INCLUDES ${SICK_LDMRS_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
set(LDMRS_SOURCES driver/src/ldmrs/sick_ldmrs_config.cpp driver/src/ldmrs/sick_ldmrs_driver.cpp driver/src/ldmrs/sick_ldmrs_node.cpp)
set(LDMRS_TARGET_DEPENDENCIES SickLDMRS)
message(STATUS "LDMRS_INCLUDES: ${LDMRS_INCLUDES}")
message(STATUS "LDMRS_SOURCES: ${LDMRS_SOURCES}")
message(STATUS "LDMRS_TARGET_DEPENDENCIES: ${LDMRS_TARGET_DEPENDENCIES}")
endif()

find_package(Boost REQUIRED COMPONENTS system thread) # rosidl_generate_interfaces overwrites ${Boost_LIBRARIES}. Workaround: Do find_package(Boost ) after calling rosidl_generate_interfaces in CMakeLists.txt

if(BUILD_WITH_TEST_SERVER OR BUILD_WITH_TEST_SERVER MATCHES "true")
message(STATUS "Building sick_scan2 with test server support")
set(TEST_SERVER_INCLUDES tools/test_server/include)
endif()

include_directories(include ${Boost_INCLUDE_DIR} ${LDMRS_INCLUDES} ${TEST_SERVER_INCLUDES})

add_library(sick_scan2_lib
driver/src/sick_generic_laser.cpp
driver/src/sick_generic_parser.cpp
driver/src/sick_scan_common_tcp.cpp
driver/src/sick_scan_common.cpp
driver/src/tcp/tcp.cpp
driver/src/tcp/Mutex.cpp
driver/src/tcp/SickThread.cpp
driver/src/tcp/errorhandler.cpp
driver/src/tcp/toolbox.cpp
driver/src/tcp/Time.cpp
driver/src/tcp/colaa.cpp
driver/src/tcp/colab.cpp
driver/src/binPrintf.cpp
driver/src/binScanf.cpp
driver/src/sick_scan_common_nw.cpp
driver/src/sick_generic_imu.cpp
driver/src/softwarePLL.cpp
${LDMRS_SOURCES}
)

ament_target_dependencies(
sick_scan2_lib
"Boost"
"rclcpp"
"sensor_msgs"
"std_msgs"
"geometry_msgs"
"diagnostic_msgs"
"tf2_ros"
${LDMRS_TARGET_DEPENDENCIES}
)

add_executable(sick_generic_caller
driver/src/sick_generic_caller.cpp
)

ament_target_dependencies(
sick_generic_caller
"Boost"
# "diagnostic_updater"
"rclcpp"
"sensor_msgs"
"std_msgs"
"geometry_msgs"
"diagnostic_msgs"
"tf2_ros"
${LDMRS_TARGET_DEPENDENCIES}
)

#add_executable(quat_test

tools/quat_test/quat_test.cpp

include/sick_scan/sick_generic_imu.h

include/sick_scan/softwarePLL.h)

#ament_target_dependencies(quat_test

"rclcpp"

"tf2"

)

if(BUILD_WITH_LDMRS_SUPPORT OR BUILD_WITH_LDMRS_SUPPORT MATCHES "true")
rosidl_target_interfaces(sick_scan2_lib ${PROJECT_NAME} "rosidl_typesupport_cpp")
rosidl_target_interfaces(sick_generic_caller ${PROJECT_NAME} "rosidl_typesupport_cpp")
target_link_libraries(sick_generic_caller sick_scan2_lib ${SICK_LDMRS_LIBRARIES} ${Boost_LIBRARIES})
else()
target_link_libraries(sick_generic_caller sick_scan2_lib)
endif()

if(BUILD_WITH_TEST_SERVER OR BUILD_WITH_TEST_SERVER MATCHES "true")
add_executable(test_server
tools/test_server/src/test_server.cpp
tools/test_server/src/test_server_cola_msg.cpp
tools/test_server/src/test_server_ldmrs_msg.cpp
tools/test_server/src/test_server_thread.cpp)
target_link_libraries(test_server sick_scan2_lib ${SICK_LDMRS_LIBRARIES} ${Boost_LIBRARIES})
ament_target_dependencies(test_server "rclcpp")
install(TARGETS
test_server
DESTINATION lib/${PROJECT_NAME})
install(DIRECTORY
tools/test_server/config
tools/test_server/launch
DESTINATION share/${PROJECT_NAME})
endif()

install(TARGETS
sick_generic_caller
DESTINATION lib/${PROJECT_NAME})

install(TARGETS
sick_scan2_lib
DESTINATION lib)

Install launch files.

install(DIRECTORY
launch
config
DESTINATION share/${PROJECT_NAME})

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()`

Scanner Connection Error Code: 1

The ROS 2 Driver connection

I am using the MRS1000 on ROS2, the sick_scan2 connection is not working when I launch sick_mrs_1xxx.launch.py for the first time. Relaunching it I am able to connect, I need to relauch twice at least to establish a connection.

Sensor Model: MRS1000
Version: 2.2.1
Serial Number: 21050060

root@xxx-proto:~# ros2 launch sick_scan2 sick_mrs_1xxx.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2021-10-08-09-35-10-742875-xxx-proto-7313
[INFO] [launch]: Default logging verbosity is set to INFO
/home/xxx/sick_scan_ws/install/sick_scan2/share/sick_scan2/launch/sick_mrs_1xxx.launch.py:13: 
UserWarning: The parameter 'node_executable' is deprecated, use 'executable' instead node=Node(
[INFO] [sick_generic_caller-1]: process started with pid [7315]
[sick_generic_caller-1] [INFO] [1633685710.879919007] [sick_scan2]: sick_generic_caller V. 001.009.000
[sick_generic_caller-1] [INFO] [1633685710.880115497] [sick_scan2]: Program arguments: /home/xxx/sick_scan_ws/install/sick_scan2/lib/sick_scan2/sick_generic_caller
[sick_generic_caller-1] [INFO] [1633685710.880157387] [sick_scan2]: Program arguments: --ros-args
[sick_generic_caller-1] [INFO] [1633685710.880193421] [sick_scan2]: Program arguments: -r
[sick_generic_caller-1] [INFO] [1633685710.880225582] [sick_scan2]: Program arguments: __node:=sick_scan2
[sick_generic_caller-1] [INFO] [1633685710.880255632] [sick_scan2]: Program arguments: --params-file
[sick_generic_caller-1] [INFO] [1633685710.880285969] [sick_scan2]: Program arguments: /home/xxx/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_mrs_1xxx.yaml
[sick_generic_caller-1] [INFO] [1633685710.880315795] [sick_scan2]: sick_generic_caller: scanner_name: sick_mrs_1xxx, hostname: 192.168.11.33, port: 2112
[sick_generic_caller-1] [INFO] [1633685710.880464762] [sick_scan2]: Start initialising scanner ...
[sick_generic_caller-1] [INFO] [1633685710.880509500] [sick_scan2]: hostname: 192.168.11.33
[sick_generic_caller-1] [INFO] [1633685710.880540574] [sick_scan2]: Port    : 2112
[sick_generic_caller-1] [INFO] [1633685710.885994992] [sick_scan2]: Parameter setting for <active_echo: 0>
[sick_generic_caller-1] [INFO] [1633685710.886108470] [sick_scan2]: Command: <STX>sMN SetAccessMode 3 F4724744<ETX>
[sick_generic_caller-1] [INFO] [1633685710.886229340] [sick_scan2]: Sending  : sMN SetAccessMode \x03\xf4\x72\x47\x44
[sick_generic_caller-1] [INFO] [1633685710.907107860] [sick_scan2]: Receiving: <STX>sAN SetAccessMode \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685710.907273564] [sick_scan2]: Command: <STX>sWN EIHstCola 1<ETX>
[sick_generic_caller-1] [INFO] [1633685710.907363841] [sick_scan2]: Sending  : sWN EIHstCola \x01
[sick_generic_caller-1] [INFO] [1633685710.927647675] [sick_scan2]: Receiving: <STX>sWA EIHstCola <ETX>
[sick_generic_caller-1] [INFO] [1633685710.927815620] [sick_scan2]: Command: <STX>sMN LMCstopmeas<ETX>
[sick_generic_caller-1] [INFO] [1633685710.927907208] [sick_scan2]: Sending  : sMN LMCstopmeas
[sick_generic_caller-1] [INFO] [1633685710.938160939] [sick_scan2]: Receiving: <STX>sAN LMCstopmeas \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685710.938323091] [sick_scan2]: Command: <STX>sWN SetActiveApplications 1 FEVL 0<ETX>
[sick_generic_caller-1] [INFO] [1633685710.938430329] [sick_scan2]: Sending  : sWN SetActiveApplications \x00\x01\x46\x45\x56\x4c\x00
[sick_generic_caller-1] [INFO] [1633685710.949949051] [sick_scan2]: Receiving: <STX>sWA SetActiveApplications <ETX>
[sick_generic_caller-1] [INFO] [1633685710.950110339] [sick_scan2]: Command: <STX>sWN SetActiveApplications 1 RANG 1<ETX>
[sick_generic_caller-1] [INFO] [1633685710.950216457] [sick_scan2]: Sending  : sWN SetActiveApplications \x00\x01\x52\x41\x4e\x47\x01
[sick_generic_caller-1] [INFO] [1633685710.960449674] [sick_scan2]: Receiving: <STX>sWA SetActiveApplications <ETX>
[sick_generic_caller-1] [INFO] [1633685710.960660661] [sick_scan2]: Command: <STX>sRN DeviceIdent<ETX>
[sick_generic_caller-1] [INFO] [1633685710.960805180] [sick_scan2]: Sending  : sRN DeviceIdent
[sick_generic_caller-1] [INFO] [1633685710.971243944] [sick_scan2]: Receiving: <STX>sRA DeviceIdent \x00\x08\x4d\x52\x53\x31\x78\x78\x78\x43\x00\x08\x32\x2e\x32\x2e\x31\x2e\x30\x52<ETX>
[sick_generic_caller-1] [INFO] [1633685710.971498485] [sick_scan2]: Command: <STX>sRN SerialNumber<ETX>
[sick_generic_caller-1] [INFO] [1633685710.971596410] [sick_scan2]: Sending  : sRN SerialNumber
[sick_generic_caller-1] [INFO] [1633685710.981962403] [sick_scan2]: Receiving: <STX>sRA SerialNumber \x00\x08\x32\x31\x31\x38\x30\x30\x33\x34<ETX>
[sick_generic_caller-1] [INFO] [1633685710.982283379] [sick_scan2]: Command: <STX>sRN FirmwareVersion<ETX>
[sick_generic_caller-1] [INFO] [1633685710.982398520] [sick_scan2]: Sending  : sRN FirmwareVersion
[sick_generic_caller-1] [INFO] [1633685710.992683453] [sick_scan2]: Receiving: <STX>sRA FirmwareVersion \x00\x09\x56\x20\x32\x2e\x32\x2e\x31\x2e\x30<ETX>
[sick_generic_caller-1] [INFO] [1633685710.992891783] [sick_scan2]: Command: <STX>sRN SCdevicestate<ETX>
[sick_generic_caller-1] [INFO] [1633685710.992985580] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685711.003191181] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685711.003405527] [sick_scan2]: Laser is busy
[sick_generic_caller-1] [INFO] [1633685711.003462938] [sick_scan2]: Command: <STX>sRN ODoprh<ETX>
[sick_generic_caller-1] [INFO] [1633685711.003551199] [sick_scan2]: Sending  : sRN ODoprh
[sick_generic_caller-1] [INFO] [1633685711.013814466] [sick_scan2]: Receiving: <STX>sRA ODoprh \x00\x00\x05\xab<ETX>
[sick_generic_caller-1] [INFO] [1633685711.014071343] [sick_scan2]: Command: <STX>sRN ODpwrc<ETX>
[sick_generic_caller-1] [INFO] [1633685711.014162963] [sick_scan2]: Sending  : sRN ODpwrc
[sick_generic_caller-1] [INFO] [1633685711.024478393] [sick_scan2]: Receiving: <STX>sRA ODpwrc \x00\x00\x00\x07<ETX>
[sick_generic_caller-1] [INFO] [1633685711.024784617] [sick_scan2]: Command: <STX>sRN LocationName<ETX>
[sick_generic_caller-1] [INFO] [1633685711.025012852] [sick_scan2]: Sending  : sRN LocationName
[sick_generic_caller-1] [INFO] [1633685711.035259606] [sick_scan2]: Receiving: <STX>sRA LocationName \x00\x0b\x53\x4e\x20\x32\x31\x31\x38\x30\x30\x33\x34<ETX>
[sick_generic_caller-1] [INFO] [1633685711.035540933] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1633685711.045867115] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xf8\xc0\x88\x00\x22\xb6\xb8<ETX>
[sick_generic_caller-1] [INFO] [1633685711.046092342] [sick_scan2]: Angle resolution of scanner is 0.25000 [deg]  (in 1/10000th deg: 0x9C4)
[sick_generic_caller-1] [INFO] [1633685711.046179707] [sick_scan2]: MIN_ANG:   -2.356 [rad] -135.000 [deg]
[sick_generic_caller-1] [INFO] [1633685711.046228893] [sick_scan2]: MAX_ANG:    2.356 [rad]  135.000 [deg]
[sick_generic_caller-1] [INFO] [1633685711.046375652] [sick_scan2]: Sending  : sWN LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xeb\x66\x91\x00\x14\x99\x70
[sick_generic_caller-1] [INFO] [1633685711.056837138] [sick_scan2]: Receiving: <STX>sFA\x00\x04<ETX>
[sick_generic_caller-1] [INFO] [1633685711.057101855] [sick_scan2]: Error Sopas answer mismatch Error unexpected Sopas Answer for request <STX><STX><STX><STX>!sWN LMPoutputRange ���f��p�Answer= >>>sFA\x00\x04<<<
[sick_generic_caller-1]
[sick_generic_caller-1] [INFO] [1633685711.057263271] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1633685711.067568268] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xf8\xc0\x88\x00\x22\xb6\xb8<ETX>
[sick_generic_caller-1] [INFO] [1633685711.067754230] [sick_scan2]: Angle resolution of scanner is 0.25000 [deg]  (in 1/10000th deg: 0x9C4)
[sick_generic_caller-1] [INFO] [1633685711.067814425] [sick_scan2]: MIN_ANG (after command verification in device reference frame):   -0.829 [rad]  -47.500 [deg]
[sick_generic_caller-1] [INFO] [1633685711.067873276] [sick_scan2]: MAX_ANG (after command verification in device reference frame):    3.971 [rad]  227.500 [deg]
[sick_generic_caller-1] [INFO] [1633685711.067924126] [sick_scan2]: MRS 1xxx detected overwriting resolution flag (only 8 bit supported)
[sick_generic_caller-1] [INFO] [1633685711.068042820] [sick_scan2]: Sending  : sWN LMDscandatacfg \x07\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01
[sick_generic_caller-1] [INFO] [1633685711.078399660] [sick_scan2]: Receiving: <STX>sWA LMDscandatacfg <ETX>
[sick_generic_caller-1] [INFO] [1633685711.078748350] [sick_scan2]: Sending  : sRN LMDscandatacfg
[sick_generic_caller-1] [INFO] [1633685711.089597534] [sick_scan2]: Receiving: <STX>sRA LMDscandatacfg \x07\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01<ETX>
[sick_generic_caller-1] [INFO] [1633685711.089833610] [sick_scan2]: Sending  : sWN FREchoFilter \x00
[sick_generic_caller-1] [INFO] [1633685711.100131663] [sick_scan2]: Receiving: <STX>sWA FREchoFilter <ETX>
[sick_generic_caller-1] [INFO] [1633685711.100307960] [sick_scan2]: Command: <STX>sMN LMCstartmeas<ETX>
[sick_generic_caller-1] [INFO] [1633685711.100390012] [sick_scan2]: Sending  : sMN LMCstartmeas
[sick_generic_caller-1] [INFO] [1633685711.110636255] [sick_scan2]: Receiving: <STX>sAN LMCstartmeas \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685711.110811911] [sick_scan2]: Command: <STX>sMN Run<ETX>
[sick_generic_caller-1] [INFO] [1633685711.110886091] [sick_scan2]: Sending  : sMN Run
[sick_generic_caller-1] [INFO] [1633685711.121358201] [sick_scan2]: Receiving: <STX>sAN Run \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685711.121641191] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685711.131956749] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685711.132239387] [sick_scan2]: Waiting for scanner ready state since 0 secs
[sick_generic_caller-1] [INFO] [1633685712.132591110] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685712.143175001] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685712.143507945] [sick_scan2]: Waiting for scanner ready state since 1 secs
[sick_generic_caller-1] [INFO] [1633685713.143914029] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685713.154455806] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685713.154762797] [sick_scan2]: Waiting for scanner ready state since 2 secs
[sick_generic_caller-1] [INFO] [1633685714.155236234] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685714.165780891] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685714.166102667] [sick_scan2]: Waiting for scanner ready state since 3 secs
[sick_generic_caller-1] [INFO] [1633685715.166443479] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685715.176900515] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685715.177229204] [sick_scan2]: Waiting for scanner ready state since 4 secs
[sick_generic_caller-1] [INFO] [1633685716.177930312] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685716.189489451] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685716.189688533] [sick_scan2]: Waiting for scanner ready state since 5 secs
[sick_generic_caller-1] [INFO] [1633685717.190032365] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685717.200371956] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685717.201861119] [sick_scan2]: Waiting for scanner ready state since 6 secs
[sick_generic_caller-1] [INFO] [1633685718.202681797] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685718.213218741] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685718.213751824] [sick_scan2]: Waiting for scanner ready state since 7 secs
[sick_generic_caller-1] [INFO] [1633685719.214785239] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685719.225471470] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685719.225684505] [sick_scan2]: Waiting for scanner ready state since 8 secs
[sick_generic_caller-1] [INFO] [1633685720.225932942] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685720.236362585] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685720.236645095] [sick_scan2]: Waiting for scanner ready state since 9 secs
[sick_generic_caller-1] [INFO] [1633685721.237108190] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685721.247862041] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685721.248231851] [sick_scan2]: Waiting for scanner ready state since 10 secs
[sick_generic_caller-1] [INFO] [1633685722.248761211] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685722.259311404] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685722.259506901] [sick_scan2]: Waiting for scanner ready state since 11 secs
[sick_generic_caller-1] [INFO] [1633685723.259788399] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685723.270313342] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685723.270860346] [sick_scan2]: Waiting for scanner ready state since 12 secs
[sick_generic_caller-1] [INFO] [1633685724.271493787] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685724.282082509] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685724.282386685] [sick_scan2]: Waiting for scanner ready state since 13 secs
[sick_generic_caller-1] [INFO] [1633685725.282764679] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685725.293977785] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685725.294152322] [sick_scan2]: Waiting for scanner ready state since 14 secs
[sick_generic_caller-1] [INFO] [1633685726.294415869] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685726.304756995] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685726.304938732] [sick_scan2]: Waiting for scanner ready state since 15 secs
[sick_generic_caller-1] [INFO] [1633685727.305154203] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685727.315514882] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685727.315822993] [sick_scan2]: Waiting for scanner ready state since 16 secs
[sick_generic_caller-1] [INFO] [1633685728.316078072] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685728.326470528] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685728.326676747] [sick_scan2]: Waiting for scanner ready state since 17 secs
[sick_generic_caller-1] [INFO] [1633685729.326958570] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685729.337989362] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685729.338242430] [sick_scan2]: Waiting for scanner ready state since 18 secs
[sick_generic_caller-1] [INFO] [1633685730.338725470] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685730.349344177] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685730.349903533] [sick_scan2]: Waiting for scanner ready state since 19 secs
[sick_generic_caller-1] [INFO] [1633685731.350430885] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685731.362135790] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685731.362482144] [sick_scan2]: Waiting for scanner ready state since 20 secs
[sick_generic_caller-1] [INFO] [1633685732.362904777] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685732.373355571] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685732.373687492] [sick_scan2]: Waiting for scanner ready state since 21 secs
[sick_generic_caller-1] [INFO] [1633685733.374118372] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685733.384686676] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685733.384871198] [sick_scan2]: Waiting for scanner ready state since 22 secs
[sick_generic_caller-1] [INFO] [1633685734.385152044] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685734.395474992] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685734.395675290] [sick_scan2]: Waiting for scanner ready state since 23 secs
[sick_generic_caller-1] [INFO] [1633685735.395913181] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685735.407184657] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685735.407375450] [sick_scan2]: Waiting for scanner ready state since 24 secs
[sick_generic_caller-1] [INFO] [1633685736.407667990] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685736.418675036] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685736.419071120] [sick_scan2]: Waiting for scanner ready state since 25 secs
[sick_generic_caller-1] [INFO] [1633685737.419658897] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685737.430356744] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685737.430754556] [sick_scan2]: Waiting for scanner ready state since 26 secs
[sick_generic_caller-1] [INFO] [1633685738.431135753] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685738.442292502] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685738.442477760] [sick_scan2]: Waiting for scanner ready state since 27 secs
[sick_generic_caller-1] [INFO] [1633685739.442757438] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685739.453227881] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685739.454304735] [sick_scan2]: Waiting for scanner ready state since 28 secs
[sick_generic_caller-1] [INFO] [1633685740.454947334] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685740.465340877] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685740.465779715] [sick_scan2]: Waiting for scanner ready state since 29 secs
[sick_generic_caller-1] [INFO] [1633685741.466439426] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685741.477064821] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685741.477405189] [sick_scan2]: Waiting for scanner ready state since 30 secs
[sick_generic_caller-1] [INFO] [1633685742.480147011] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685742.490673136] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685742.490891323] [sick_scan2]: Waiting for scanner ready state since 31 secs
[sick_generic_caller-1] [INFO] [1633685743.491136018] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685743.501612637] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685743.501890315] [sick_scan2]: Waiting for scanner ready state since 32 secs
[sick_generic_caller-1] [INFO] [1633685744.502168090] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685744.512597891] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685744.512927603] [sick_scan2]: Waiting for scanner ready state since 33 secs
[sick_generic_caller-1] [INFO] [1633685745.513393602] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685745.523985715] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685745.524154651] [sick_scan2]: Waiting for scanner ready state since 34 secs
[sick_generic_caller-1] [INFO] [1633685746.524414807] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685746.534823134] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685746.535136814] [sick_scan2]: Waiting for scanner ready state since 35 secs
[sick_generic_caller-1] [INFO] [1633685747.535616107] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685747.546118070] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685747.546292991] [sick_scan2]: Waiting for scanner ready state since 36 secs
[sick_generic_caller-1] [INFO] [1633685748.546672270] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685748.557529131] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685748.558063302] [sick_scan2]: Waiting for scanner ready state since 37 secs
[sick_generic_caller-1] [INFO] [1633685749.558648758] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685749.569335083] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685749.569790337] [sick_scan2]: Waiting for scanner ready state since 38 secs
[sick_generic_caller-1] [INFO] [1633685750.570251522] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685750.580774510] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685750.580987449] [sick_scan2]: Waiting for scanner ready state since 39 secs
[sick_generic_caller-1] [INFO] [1633685751.581393773] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685751.592860392] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685751.593045201] [sick_scan2]: Waiting for scanner ready state since 40 secs
[sick_generic_caller-1] [INFO] [1633685752.593285332] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685752.604229429] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685752.604423391] [sick_scan2]: Waiting for scanner ready state since 41 secs
[sick_generic_caller-1] [INFO] [1633685753.604883299] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685753.616600651] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685753.617271180] [sick_scan2]: Waiting for scanner ready state since 42 secs
[sick_generic_caller-1] [INFO] [1633685754.617803147] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685754.628348248] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685754.628595589] [sick_scan2]: Waiting for scanner ready state since 43 secs
[sick_generic_caller-1] [INFO] [1633685755.628889742] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685755.639394105] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685755.639752139] [sick_scan2]: Waiting for scanner ready state since 44 secs
[sick_generic_caller-1] [INFO] [1633685756.639993321] [sick_scan2]: TIMEOUT WHILE STARTING SCANNER
[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[sick_generic_caller-1] Deviceinfo MRS1xxxC V2.2.1.0R found and supported by this driver.Device ??? V-1.-1 found and maybe unsupported by this driver.Full SOPAS answer: Command or Error message not definedFailed to init scanner Error Code: 1
[sick_generic_caller-1] Waiting for timeout...
[sick_generic_caller-1] If the communication mode set in the scanner memory is different from that used by the driver, the scanner's communication mode is changed.
[sick_generic_caller-1] This requires a restart of the TCP-IP connection, which can extend the start time by up to 30 seconds. There are two ways to prevent this:
[sick_generic_caller-1] 1. [Recommended] Set the communication mode with the SOPAS ET software to binary and save this setting in the scanner's EEPROM.
[sick_generic_caller-1] 2. Use the parameter "use_binary_protocol" to overwrite the default settings of the driver.
[sick_generic_caller-1] Receive signum: 2
[ERROR] [sick_generic_caller-1]: process[sick_generic_caller-1] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [sick_generic_caller-1]: sending signal 'SIGTERM' to process[sick_generic_caller-1]
[ERROR] [sick_generic_caller-1]: process has died [pid 7315, exit code -15, cmd '/home/xxx/sick_scan_ws/install/sick_scan2/lib/sick_scan2/sick_generic_caller --ros-args -r __node:=sick_scan2 --params-file /home/xxx/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_mrs_1xxx.yaml'].
root@xxx-proto:~# ros2 launch sick_scan2 sick_mrs_1xxx.launch.py
[INFO] [launch]: All log files can be found below /root/.ros/log/2021-10-08-09-36-06-720432-xxx-proto-7542
[INFO] [launch]: Default logging verbosity is set to INFO
/home/xxx/sick_scan_ws/install/sick_scan2/share/sick_scan2/launch/sick_mrs_1xxx.launch.py:13: UserWarning: The parameter 'node_executable' is deprecated, use 'executable' instead
  node=Node(
[INFO] [sick_generic_caller-1]: process started with pid [7545]
[sick_generic_caller-1] [INFO] [1633685766.858293641] [sick_scan2]: sick_generic_caller V. 001.009.000
[sick_generic_caller-1] [INFO] [1633685766.858507348] [sick_scan2]: Program arguments: /home/xxx/sick_scan_ws/install/sick_scan2/lib/sick_scan2/sick_generic_caller
[sick_generic_caller-1] [INFO] [1633685766.858552214] [sick_scan2]: Program arguments: --ros-args
[sick_generic_caller-1] [INFO] [1633685766.858588824] [sick_scan2]: Program arguments: -r
[sick_generic_caller-1] [INFO] [1633685766.858621210] [sick_scan2]: Program arguments: __node:=sick_scan2
[sick_generic_caller-1] [INFO] [1633685766.858652763] [sick_scan2]: Program arguments: --params-file
[sick_generic_caller-1] [INFO] [1633685766.858683165] [sick_scan2]: Program arguments: /home/xxx/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_mrs_1xxx.yaml
[sick_generic_caller-1] [INFO] [1633685766.858713278] [sick_scan2]: sick_generic_caller: scanner_name: sick_mrs_1xxx, hostname: 192.168.11.33, port: 2112
[sick_generic_caller-1] [INFO] [1633685766.858823236] [sick_scan2]: Start initialising scanner ...
[sick_generic_caller-1] [INFO] [1633685766.858861478] [sick_scan2]: hostname: 192.168.11.33
[sick_generic_caller-1] [INFO] [1633685766.858893479] [sick_scan2]: Port    : 2112
[sick_generic_caller-1] [INFO] [1633685766.862441335] [sick_scan2]: Parameter setting for <active_echo: 0>
[sick_generic_caller-1] [INFO] [1633685766.863452362] [sick_scan2]: Command: <STX>sMN SetAccessMode 3 F4724744<ETX>
[sick_generic_caller-1] [INFO] [1633685766.863605425] [sick_scan2]: Sending  : sMN SetAccessMode \x03\xf4\x72\x47\x44
[sick_generic_caller-1] [INFO] [1633685766.884924052] [sick_scan2]: Receiving: <STX>sAN SetAccessMode \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685766.886974586] [sick_scan2]: Command: <STX>sWN EIHstCola 1<ETX>
[sick_generic_caller-1] [INFO] [1633685766.888378144] [sick_scan2]: Sending  : sWN EIHstCola \x01
[sick_generic_caller-1] [INFO] [1633685766.900607840] [sick_scan2]: Receiving: <STX>sWA EIHstCola <ETX>
[sick_generic_caller-1] [INFO] [1633685766.903126813] [sick_scan2]: Command: <STX>sMN LMCstopmeas<ETX>
[sick_generic_caller-1] [INFO] [1633685766.908256060] [sick_scan2]: Sending  : sMN LMCstopmeas
[sick_generic_caller-1] [INFO] [1633685766.920099144] [sick_scan2]: Receiving: <STX>sAN LMCstopmeas \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685766.920271185] [sick_scan2]: Command: <STX>sWN SetActiveApplications 1 FEVL 0<ETX>
[sick_generic_caller-1] [INFO] [1633685766.920384758] [sick_scan2]: Sending  : sWN SetActiveApplications \x00\x01\x46\x45\x56\x4c\x00
[sick_generic_caller-1] [INFO] [1633685766.931879185] [sick_scan2]: Receiving: <STX>sWA SetActiveApplications <ETX>
[sick_generic_caller-1] [INFO] [1633685766.932059322] [sick_scan2]: Command: <STX>sWN SetActiveApplications 1 RANG 1<ETX>
[sick_generic_caller-1] [INFO] [1633685766.932170592] [sick_scan2]: Sending  : sWN SetActiveApplications \x00\x01\x52\x41\x4e\x47\x01
[sick_generic_caller-1] [INFO] [1633685766.942423997] [sick_scan2]: Receiving: <STX>sWA SetActiveApplications <ETX>
[sick_generic_caller-1] [INFO] [1633685766.942591590] [sick_scan2]: Command: <STX>sRN DeviceIdent<ETX>
[sick_generic_caller-1] [INFO] [1633685766.942872244] [sick_scan2]: Sending  : sRN DeviceIdent
[sick_generic_caller-1] [INFO] [1633685766.953186996] [sick_scan2]: Receiving: <STX>sRA DeviceIdent \x00\x08\x4d\x52\x53\x31\x78\x78\x78\x43\x00\x08\x32\x2e\x32\x2e\x31\x2e\x30\x52<ETX>
[sick_generic_caller-1] [INFO] [1633685766.953541094] [sick_scan2]: Command: <STX>sRN SerialNumber<ETX>
[sick_generic_caller-1] [INFO] [1633685766.953845717] [sick_scan2]: Sending  : sRN SerialNumber
[sick_generic_caller-1] [INFO] [1633685766.964183414] [sick_scan2]: Receiving: <STX>sRA SerialNumber \x00\x08\x32\x31\x31\x38\x30\x30\x33\x34<ETX>
[sick_generic_caller-1] [INFO] [1633685766.964462884] [sick_scan2]: Command: <STX>sRN FirmwareVersion<ETX>
[sick_generic_caller-1] [INFO] [1633685766.964602539] [sick_scan2]: Sending  : sRN FirmwareVersion
[sick_generic_caller-1] [INFO] [1633685766.974886890] [sick_scan2]: Receiving: <STX>sRA FirmwareVersion \x00\x09\x56\x20\x32\x2e\x32\x2e\x31\x2e\x30<ETX>
[sick_generic_caller-1] [INFO] [1633685766.975094068] [sick_scan2]: Command: <STX>sRN SCdevicestate<ETX>
[sick_generic_caller-1] [INFO] [1633685766.975258685] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685766.985699875] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685766.985898093] [sick_scan2]: Laser is busy
[sick_generic_caller-1] [INFO] [1633685766.985945680] [sick_scan2]: Command: <STX>sRN ODoprh<ETX>
[sick_generic_caller-1] [INFO] [1633685766.986022355] [sick_scan2]: Sending  : sRN ODoprh
[sick_generic_caller-1] [INFO] [1633685766.996284049] [sick_scan2]: Receiving: <STX>sRA ODoprh \x00\x00\x05\xab<ETX>
[sick_generic_caller-1] [INFO] [1633685766.996487611] [sick_scan2]: Command: <STX>sRN ODpwrc<ETX>
[sick_generic_caller-1] [INFO] [1633685766.996581952] [sick_scan2]: Sending  : sRN ODpwrc
[sick_generic_caller-1] [INFO] [1633685767.006865567] [sick_scan2]: Receiving: <STX>sRA ODpwrc \x00\x00\x00\x07<ETX>
[sick_generic_caller-1] [INFO] [1633685767.007049928] [sick_scan2]: Command: <STX>sRN LocationName<ETX>
[sick_generic_caller-1] [INFO] [1633685767.007244786] [sick_scan2]: Sending  : sRN LocationName
[sick_generic_caller-1] [INFO] [1633685767.017561490] [sick_scan2]: Receiving: <STX>sRA LocationName \x00\x0b\x53\x4e\x20\x32\x31\x31\x38\x30\x30\x33\x34<ETX>
[sick_generic_caller-1] [INFO] [1633685767.017801758] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1633685767.029429632] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xf8\xc0\x88\x00\x22\xb6\xb8<ETX>
[sick_generic_caller-1] [INFO] [1633685767.029760560] [sick_scan2]: Angle resolution of scanner is 0.25000 [deg]  (in 1/10000th deg: 0x9C4)
[sick_generic_caller-1] [INFO] [1633685767.029818579] [sick_scan2]: MIN_ANG:   -2.356 [rad] -135.000 [deg]
[sick_generic_caller-1] [INFO] [1633685767.029915864] [sick_scan2]: MAX_ANG:    2.356 [rad]  135.000 [deg]
[sick_generic_caller-1] [INFO] [1633685767.031374849] [sick_scan2]: Sending  : sWN LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xeb\x66\x91\x00\x14\x99\x70
[sick_generic_caller-1] [INFO] [1633685767.041631294] [sick_scan2]: Receiving: <STX>sFA\x00\x04<ETX>
[sick_generic_caller-1] [INFO] [1633685767.041802087] [sick_scan2]: Error Sopas answer mismatch Error unexpected Sopas Answer for request <STX><STX><STX><STX>!sWN LMPoutputRange ���f��p�Answer= >>>sFA\x00\x04<<<
[sick_generic_caller-1]
[sick_generic_caller-1] [INFO] [1633685767.041930221] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1633685767.052184874] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x09\xc4\xff\xf8\xc0\x88\x00\x22\xb6\xb8<ETX>
[sick_generic_caller-1] [INFO] [1633685767.052365651] [sick_scan2]: Angle resolution of scanner is 0.25000 [deg]  (in 1/10000th deg: 0x9C4)
[sick_generic_caller-1] [INFO] [1633685767.052423926] [sick_scan2]: MIN_ANG (after command verification in device reference frame):   -0.829 [rad]  -47.500 [deg]
[sick_generic_caller-1] [INFO] [1633685767.052466840] [sick_scan2]: MAX_ANG (after command verification in device reference frame):    3.971 [rad]  227.500 [deg]
[sick_generic_caller-1] [INFO] [1633685767.052509978] [sick_scan2]: MRS 1xxx detected overwriting resolution flag (only 8 bit supported)
[sick_generic_caller-1] [INFO] [1633685767.052683235] [sick_scan2]: Sending  : sWN LMDscandatacfg \x07\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01
[sick_generic_caller-1] [INFO] [1633685767.062971298] [sick_scan2]: Receiving: <STX>sWA LMDscandatacfg <ETX>
[sick_generic_caller-1] [INFO] [1633685767.063345205] [sick_scan2]: Sending  : sRN LMDscandatacfg
[sick_generic_caller-1] [INFO] [1633685767.073680246] [sick_scan2]: Receiving: <STX>sRA LMDscandatacfg \x07\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01<ETX>
[sick_generic_caller-1] [INFO] [1633685767.074011655] [sick_scan2]: Sending  : sWN FREchoFilter \x00
[sick_generic_caller-1] [INFO] [1633685767.084311878] [sick_scan2]: Receiving: <STX>sWA FREchoFilter <ETX>
[sick_generic_caller-1] [INFO] [1633685767.084525777] [sick_scan2]: Command: <STX>sMN LMCstartmeas<ETX>
[sick_generic_caller-1] [INFO] [1633685767.084616245] [sick_scan2]: Sending  : sMN LMCstartmeas
[sick_generic_caller-1] [INFO] [1633685767.105015563] [sick_scan2]: Receiving: <STX>sAN LMCstartmeas \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685767.105234454] [sick_scan2]: Command: <STX>sMN Run<ETX>
[sick_generic_caller-1] [INFO] [1633685767.105749615] [sick_scan2]: Sending  : sMN Run
[sick_generic_caller-1] [INFO] [1633685767.116218647] [sick_scan2]: Receiving: <STX>sAN Run \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685767.116554472] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685767.126794245] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685767.127012847] [sick_scan2]: Waiting for scanner ready state since 0 secs
[sick_generic_caller-1] [INFO] [1633685768.127290952] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685768.138500789] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685768.138894600] [sick_scan2]: Waiting for scanner ready state since 1 secs
[sick_generic_caller-1] [INFO] [1633685769.139471238] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685769.150171866] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685769.150634385] [sick_scan2]: Waiting for scanner ready state since 2 secs
[sick_generic_caller-1] [INFO] [1633685770.151273225] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685770.162822662] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685770.163199545] [sick_scan2]: Waiting for scanner ready state since 3 secs
[sick_generic_caller-1] [INFO] [1633685771.163987952] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685771.174782184] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685771.175154554] [sick_scan2]: Waiting for scanner ready state since 4 secs
[sick_generic_caller-1] [INFO] [1633685772.175819970] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685772.186492468] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685772.187212504] [sick_scan2]: Waiting for scanner ready state since 5 secs
[sick_generic_caller-1] [INFO] [1633685773.187479779] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685773.197834980] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685773.198033518] [sick_scan2]: Waiting for scanner ready state since 6 secs
[sick_generic_caller-1] [INFO] [1633685774.198292688] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685774.208630865] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685774.209012516] [sick_scan2]: Waiting for scanner ready state since 7 secs
[sick_generic_caller-1] [INFO] [1633685775.209300478] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685775.220226684] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685775.220490729] [sick_scan2]: Waiting for scanner ready state since 8 secs
[sick_generic_caller-1] [INFO] [1633685776.220704599] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685776.231158974] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685776.231603156] [sick_scan2]: Waiting for scanner ready state since 9 secs
[sick_generic_caller-1] [INFO] [1633685777.231960096] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685777.243131530] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685777.243648067] [sick_scan2]: Waiting for scanner ready state since 10 secs
[sick_generic_caller-1] [INFO] [1633685778.244220177] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685778.254875681] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685778.255143407] [sick_scan2]: Waiting for scanner ready state since 11 secs
[sick_generic_caller-1] [INFO] [1633685779.255539339] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685779.266134424] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685779.266399397] [sick_scan2]: Waiting for scanner ready state since 12 secs
[sick_generic_caller-1] [INFO] [1633685780.266844667] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685780.277773753] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685780.278211535] [sick_scan2]: Waiting for scanner ready state since 13 secs
[sick_generic_caller-1] [INFO] [1633685781.278730720] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685781.289292491] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685781.289555640] [sick_scan2]: Waiting for scanner ready state since 14 secs
[sick_generic_caller-1] [INFO] [1633685782.289933689] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685782.300421025] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1633685782.300868279] [sick_scan2]: Waiting for scanner ready state since 15 secs
[sick_generic_caller-1] [INFO] [1633685783.301194061] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1633685783.311921344] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685783.312109705] [sick_scan2]: Scanner ready for measurement after 16 [sec]
[sick_generic_caller-1] [INFO] [1633685783.312179981] [sick_scan2]: Command: <STX>sEN LMDscandata 1<ETX>
[sick_generic_caller-1] [INFO] [1633685783.312270705] [sick_scan2]: Sending  : sEN LMDscandata \x01
[sick_generic_caller-1] [INFO] [1633685783.322704022] [sick_scan2]: Receiving: <STX>sEA LMDscandata \x01<ETX>
[sick_generic_caller-1] [INFO] [1633685783.322941634] [sick_scan2]: Starting scan data ....
[sick_generic_caller-1]
[sick_generic_caller-1] [INFO] [1633685783.323494173] [sick_scan2]: 1 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.341364979] [sick_scan2]: 2 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.361506456] [sick_scan2]: 3 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.383262030] [sick_scan2]: 4 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.401293195] [sick_scan2]: 5 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.421738080] [sick_scan2]: 6 / 6 Packet dropped Software PLL not yet locked.
[sick_generic_caller-1] [INFO] [1633685783.421895912] [sick_scan2]: Software PLL is expected to be ready now!

I worked on a workaround solution to loop 5 times to start a communication, but it is not the best solution:

int SickScanCommon::init()
	{
	int result = init_device();
	if (result != 0)
	{
	  printf("Failed to init device: %d", result);
	  return result;
	}
	int maxWaitForDeviceStateReady = 20; // 20 seconds
	int maxDeviceStateReadyAttempt = 5; // 5 attempts      
	for (int i = 1; i < maxDeviceStateReadyAttempt; i++)
	{
		printf("%d th attempt to start the scanner communication.  \n \n", i);
		result = init_scanner();
		int elapsedTime = i*maxWaitForDeviceStateReady;
		printf("Time elapsed for the scanner initalisation: %d \n \n", elapsedTime);
		if (result == 0)
		{
			break;
		}
	}    
	if (result != 0)
	{
	  printf("Failed to init scanner Error Code: %d\nWaiting for timeout...\n"
			 "If the communication mode set in the scanner memory is different from that used by the driver, the scanner's communication mode is changed.\n"
			 "This requires a restart of the TCP-IP connection, which can extend the start time by up to 30 seconds. There are two ways to prevent this:\n"
			 "1. [Recommended] Set the communication mode with the SOPAS ET software to binary and save this setting in the scanner's EEPROM.\n"
			 "2. Use the parameter \"use_binary_protocol\" to overwrite the default settings of the driver.\n", result);
	}
	return result;
}

I think there is a problem around the LMCstartmeas procedure.

Sick_scan on W10

Hi,
does the driver can works on W10 ??
ROS2 is officialy supported by ubuntu 20.04 and W10 but is it the same for the driver ?
Thank you for the reply.

ROS node dying on startup

I have this issue when trying to startup the ROS 2 driver with my SICK mrs-1000, Basically I launch this command:
ros2 launch sick_scan2 sick_mrs_1xxx.launch.py
And I have this log:

[sick_generic_caller-1]
[sick_generic_caller-1] [INFO] [1656595978.772872531] [sick_scan2]: Sending  : sMN SetAccessMode 3 F4724744
[sick_generic_caller-1] [INFO] [1656595978.783116056] [sick_scan2]: Receiving: <STX>sAN SetAccessMode 1<ETX>
[sick_generic_caller-1] [INFO] [1656595978.783264993] [sick_scan2]: Command: <STX>sWN EIHstCola 1<ETX>
[sick_generic_caller-1] [INFO] [1656595978.783348966] [sick_scan2]: Sending  : sWN EIHstCola 1
[sick_generic_caller-1] [INFO] [1656595978.793544232] [sick_scan2]: Receiving: <STX>sWA EIHstCola<ETX>
[sick_generic_caller-1] [ERROR] [1656595978.793760853] [sick_scan2]: init failed: 1. shutting down
[sick_generic_caller-1] Not all nodes were finished before finishing the context
[sick_generic_caller-1] .Ensure `rcl_node_fini` is called for all nodes before `rcl_context_fini`,to avoid leaking.
[sick_generic_caller-1] terminate called without an active exception
[ERROR] [sick_generic_caller-1]: process has died [pid 27031, exit code -6, cmd '/opt/ros/foxy/lib/sick_scan2/sick_generic_caller --ros-args -r __node:=sick_scan2 --params-file /opt/ros/foxy/share/sick_scan2/config/sick_mrs_1xxx.yaml'].

For the environment in which this is happening it is an arm64 controller with Docker images with Ros foxy.

And normally the LiDAR is configured correctly with (COLA-B), so what could be the reason for the node to not initiate and dye directly like this?

Is it possible to set all parameters via ros, which can be set in sopas?

There are some parameters I can not find how to set them via ros e.g. the echo filter or the particle filter, the mean filter, the fog filter and the multiecho handling. There are also others. Does ros only expose a subset of the options of the sensor? And if I change them in sopas will the change be reflected when running the sensor using the ros drivers or will the drivers overwrite these parameters with some defaults? I checked the sick_generic_caller.cpp file and didn't find all parameters, so I assume the driver won't overwrite the set config on the sensor?

Support USB-Connection

Hi, we have 2 Sick Tim 571 and we would like to connect them via USB to the main computer. The simple reason is, that we have multiple free USB slots, but only one Network connection slot and we don't want to add an Network HUB as well.

The sick-tim package supports USB connection, but this package is not available in ROS2. Since the source code of this package is very similar, it shouldn't be too hard to port this functionality. Are the currently any plans to do so and would you be interested in a pull-request if we decide to port it by our self?

Currently, we run the sick-tim driver on ROS Noetic and use the ROS1 bridge only for the scan topics.

C++17 compatibility

Not a troublemaker for now, but it might by worthy to keep in mind, there are several occurences in sick_scan2/driver/src/binPrintf.cpp (compiler warning, gcc version 11.2.0):
warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]

sick_scan2 (ROS2 Driver) changes the factory default configs and makes it no longer runable with ROS1

Hi all,
Recently, we have started our migration to ROS2 and we are using the sick_scan2 driver under Foxy version.
It turns out sick_scan2 driver somehow changes some default configs in the laser built-in software driver and makes it no longer runnable with the sick_scan1 (ROS1) driver.
After using sick_scan2, one must reset the laser config in order to make it runnable with sick_scan2.
We are using sick_tim_571 laser scanner in our robot.
Any instructions will be appreciated. Thanks!
Errors are attached!
Selection_437
Selection_437
Selection_436
Selection_434

bloom-release into ROS Eloquent

We've found this repository quite helpful, but have migrated to ROS Eloquent. Could you bloom-release this package into rosdistro eloquent? Thanks!

ERROR: LuxBase::cmd_getParameter: LD-MRS ERROR: Failed to receive GetParameter reply.

I have a LD-MRS400001 and running the sick_ldmrs.launch.py launcher with the default config, except the ip is changed, results in following errors:

username@username-HP-Z2-Tower-G4-Workstation:~/ros2_foxy$ ros2 launch sick_scan2 sick_ldmrs.launch.py
[INFO] [launch]: All log files can be found below /home/username/.ros/log/2021-01-13-16-22-14-289375-username-HP-Z2-Tower-G4-Workstation-4702
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [sick_generic_caller-1]: process started with pid [4704]
[sick_generic_caller-1] [INFO] [1610551334.353802950] [sick_scan2]: sick_generic_caller V. 001.009.000
[sick_generic_caller-1] [INFO] [1610551334.353867987] [sick_scan2]: Program arguments: /home/username/ros2_foxy/install/sick_scan2/lib/sick_scan2/sick_generic_caller
[sick_generic_caller-1] [INFO] [1610551334.353877194] [sick_scan2]: Program arguments: --ros-args
[sick_generic_caller-1] [INFO] [1610551334.353882362] [sick_scan2]: Program arguments: -r
[sick_generic_caller-1] [INFO] [1610551334.353886767] [sick_scan2]: Program arguments: __node:=sick_scan2
[sick_generic_caller-1] [INFO] [1610551334.353891137] [sick_scan2]: Program arguments: --params-file
[sick_generic_caller-1] [INFO] [1610551334.353895403] [sick_scan2]: Program arguments: /home/username/ros2_foxy/install/sick_scan2/share/sick_scan2/config/sick_ldmrs.yaml
[sick_generic_caller-1] [INFO] [1610551334.353900074] [sick_scan2]: sick_generic_caller: scanner_name: sick_ldmrs, hostname: 192.168.0.10, port: 2112
[sick_generic_caller-1] [INFO] [1610551334.353939572] [sick_scan2]: Initializing LDMRS...
[sick_generic_caller-1] [INFO] [1610551334.354730580] [sick_ldmrs_driver]: Creating the manager.
[sick_generic_caller-1] [INFO] [1610551334.354762149] [sick_ldmrs_driver]: Adding the application SickLDMRS.
[sick_generic_caller-1] [INFO] [1610551334.354792040] [sick_ldmrs_driver]: ROS::param(sick_scan2,frame_id,ldmrs): frame_id=cloud
[sick_generic_caller-1] [INFO] [1610551334.354861993] [sick_ldmrs_driver]: ROS::param(sick_scan2,start_angle,0.872664): start_angle=0.872664
[sick_generic_caller-1] [INFO] [1610551334.354921136] [sick_ldmrs_driver]: ROS::param(sick_scan2,end_angle,-1.0472): end_angle=-1.0472
[sick_generic_caller-1] [INFO] [1610551334.354980900] [sick_ldmrs_driver]: ROS::param(sick_scan2,scan_frequency,0): scan_frequency=0
[sick_generic_caller-1] [INFO] [1610551334.355040958] [sick_ldmrs_driver]: ROS::param(sick_scan2,sync_angle_offset,0): sync_angle_offset=0
[sick_generic_caller-1] [INFO] [1610551334.355097969] [sick_ldmrs_driver]: ROS::param(sick_scan2,angular_resolution_type,1): angular_resolution_type=1
[sick_generic_caller-1] [INFO] [1610551334.355155184] [sick_ldmrs_driver]: ROS::param(sick_scan2,layer_range_reduction,0): layer_range_reduction=0
[sick_generic_caller-1] [INFO] [1610551334.355215291] [sick_ldmrs_driver]: ROS::param(sick_scan2,ignore_near_range,0): ignore_near_range=0
[sick_generic_caller-1] [INFO] [1610551334.355271584] [sick_ldmrs_driver]: ROS::param(sick_scan2,sensitivity_control,0): sensitivity_control=0
[sick_generic_caller-1] [INFO] [1610551334.355372226] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle1,0.872664): flexres_start_angle1=0.872664
[sick_generic_caller-1] [INFO] [1610551334.355432510] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle2,0.610865): flexres_start_angle2=0.610865
[sick_generic_caller-1] [INFO] [1610551334.355492182] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle3,0.523598): flexres_start_angle3=0.523598
[sick_generic_caller-1] [INFO] [1610551334.355551596] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle4,0.349065): flexres_start_angle4=0.349065
[sick_generic_caller-1] [INFO] [1610551334.355611835] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle5,0): flexres_start_angle5=0
[sick_generic_caller-1] [INFO] [1610551334.355676677] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle6,-0.349065): flexres_start_angle6=-0.349065
[sick_generic_caller-1] [INFO] [1610551334.355737243] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle7,-0.523598): flexres_start_angle7=-0.523598
[sick_generic_caller-1] [INFO] [1610551334.355796622] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_start_angle8,-0.698131): flexres_start_angle8=-0.698131
[sick_generic_caller-1] [INFO] [1610551334.355857807] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution1,32): flexres_resolution1=32
[sick_generic_caller-1] [INFO] [1610551334.355915427] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution2,16): flexres_resolution2=16
[sick_generic_caller-1] [INFO] [1610551334.355973153] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution3,8): flexres_resolution3=8
[sick_generic_caller-1] [INFO] [1610551334.356030412] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution4,4): flexres_resolution4=4
[sick_generic_caller-1] [INFO] [1610551334.356088330] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution5,8): flexres_resolution5=8
[sick_generic_caller-1] [INFO] [1610551334.356146019] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution6,16): flexres_resolution6=16
[sick_generic_caller-1] [INFO] [1610551334.356203498] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution7,32): flexres_resolution7=32
[sick_generic_caller-1] [INFO] [1610551334.356263876] [sick_ldmrs_driver]: ROS::param(sick_scan2,flexres_resolution8,16): flexres_resolution8=16
[sick_generic_caller-1] [INFO] [1610551334.356321760] [sick_ldmrs_driver]: ROS::param(sick_scan2,contour_point_density,2): contour_point_density=2
[sick_generic_caller-1] [INFO] [1610551334.356398833] [sick_ldmrs_driver]: ROS::param(sick_scan2,min_object_age,0): min_object_age=0
[sick_generic_caller-1] [INFO] [1610551334.356456558] [sick_ldmrs_driver]: ROS::param(sick_scan2,max_prediction_age,0): max_prediction_age=0
[sick_generic_caller-1] [INFO] [1610551334.357591245] [sick_ldmrs_driver]: Application is running.
[sick_generic_caller-1] [INFO] [1610551334.357604224] [sick_ldmrs_driver]: Adding the LDMRS device.
[sick_generic_caller-1] [INFO] [1610551334.357629346] [sick_ldmrs_driver]: ROS::param(sick_scan2,hostname,192.168.0.1): hostname=192.168.0.10
[sick_generic_caller-1] [INFO] [1610551334.357635742] [sick_ldmrs_driver]: Set IP address to 192.168.0.10
[sick_generic_caller-1] 1610551334.3577 Info: Manager::addAndRunDevice: Created Device of type 3 with Name LDMRS-1 under the ID 1. Now initializing the device.
[sick_generic_caller-1] 1610551334.3675 Info: LuxBase::readBeamTilt: LD-MRS Beam tilt read. Angle is 0.0 degrees.
[sick_generic_caller-1] 1610551334.3740 Warning: LuxBase::receiveMrsReply: LD-MRS Received that an error occurred.
[sick_generic_caller-1] 1610551334.3740 ERROR: LuxBase::cmd_getParameter: LD-MRS ERROR: Failed to receive GetParameter reply.
[sick_generic_caller-1] 1610551334.3740 Info: LuxBase::readUpsideDown: LD-MRS UpsideDown not supported by firmware.
[sick_generic_caller-1] 1610551334.3741 Info: LuxBase::cmd_setNtpTimestamp: seconds: 3819540134; fractional: 0
[sick_generic_caller-1] 1610551334.3784 Info: Manager::addAndRunDevice: Device is initialized.
[sick_generic_caller-1] 1610551334.5062 Info: Manager::addAndRunDevice: Device is running.
[sick_generic_caller-1] 1610551334.5063 Info: Manager::addAndRunDevice: Added device, now running source thread.
[sick_generic_caller-1] 1610551334.5064 Info: Manager::addAndRunDevice: All done, leaving.
[sick_generic_caller-1] [INFO] [1610551334.506822759] [sick_ldmrs_driver]: LD-MRS Firmware version is 3.02.5 2014-06-11 09:02
[sick_generic_caller-1] 1610551334.5137 Warning: LuxBase::receiveMrsReply: LD-MRS Received that an error occurred.
[sick_generic_caller-1] 1610551334.5138 ERROR: LuxBase::cmd_getParameter: LD-MRS ERROR: Failed to receive GetParameter reply.
[sick_generic_caller-1] [ERROR] [1610551334.513821390] [sick_ldmrs_driver]: Error: upside down mode is active, please disable!
[sick_generic_caller-1] [INFO] [1610551334.513915251] [sick_ldmrs_driver]: Updating config...
[sick_generic_caller-1] 1610551334.6400 Warning: LuxBase::receiveMrsReply: LD-MRS Received that an error occurred.
[sick_generic_caller-1] 1610551334.6401 ERROR: LuxBase::cmd_setParameter: LD-MRS ERROR: Failed to receive SetParameter reply.
[sick_generic_caller-1] [WARN] [1610551334.640084440] [sick_ldmrs_driver]: Sending param not successful: RangeReduction
[sick_generic_caller-1] 1610551334.6469 Warning: LuxBase::receiveMrsReply: LD-MRS Received that an error occurred.
[sick_generic_caller-1] 1610551334.6469 ERROR: LuxBase::cmd_setParameter: LD-MRS ERROR: Failed to receive SetParameter reply.
[sick_generic_caller-1] [WARN] [1610551334.646941885] [sick_ldmrs_driver]: Sending param not successful: IgnoreNearRange
[sick_generic_caller-1] 1610551334.6535 Warning: LuxBase::receiveMrsReply: LD-MRS Received that an error occurred.
[sick_generic_caller-1] 1610551334.6536 ERROR: LuxBase::cmd_setParameter: LD-MRS ERROR: Failed to receive SetParameter reply.
[sick_generic_caller-1] [WARN] [1610551334.653587598] [sick_ldmrs_driver]: Sending param not successful: SensitivityControl
[sick_generic_caller-1] [INFO] [1610551334.681687205] [sick_ldmrs_driver]: ... done updating config.
[sick_generic_caller-1] [INFO] [1610551334.681761224] [sick_ldmrs_driver]: sick_ldmrs_driver is initialized.
[sick_generic_caller-1] [INFO] [1610551334.681768816] [sick_scan2]: LDMRS initialized.

I can see the data in rviz2 and work with it, but probably I can't change any parameters in case I would want to do that.

Merge this repository back with sick_scan?

I'd like to discuss merging the code in this repository back into https://github.com/SICKAG/sick_scan . What it looks like happened here was that the code in the original sick_scan was copied to a new repository, then changes were made to port it to ROS 2. While this works, this is problematic for a couple of reasons:

  1. This way of doing forks doesn't create any specific link between the original code and this one. Thus, it is hard to know that they are related.
  2. Having it in a separate repository means that any updates to the ROS 1 driver will most likely not make it to the ROS 2 port either.

What I'd propose is to instead is to deprecate this repository and have a separate "ros2" branch on https://github.com/SICKAG/sick_scan. We can merge the code that has already been ported here onto that branch, and then continue doing the port incrementally as it makes sense. This fixes the first problem above, and at least makes it slightly more likely that any changes are propagated to both ROS 1 and ROS 2. This is also the workflow that we are recommending for porting ROS 2 packages in general.

Thoughts on this proposal?

adjustments user manual

Hi,

The sensor I use is the TIM571 and I was following the manual to get the device working. I came across some details, for the package didn't work straight out of the box for me.

'Default is "laser"' should be "cloud" according to me. The sensor TIM571 doesn't show anything in RVIZ with 'ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 world laser'. Should be 'ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 world cloud' I think.

Another thing: the "For a quick build, install and run test" comments work indeed. Very handy such ./makeall.bash and ./makeall.bash files. But for the demo above I had to add
-p "sw_pll_only_publisch:=False"
at 'ros2 run sick_scan2 sick_generic_caller --ros-args --params-file src/sick_scan2/config/sick_tim_5xx.yaml -p "hostname:=127.0.0.1" -p "port:=2112"'

MRS6000 Support

Is there a timeline to add support for the MRS6000 lidar?

It seems to be supported in the source code but is lacking a launch file.

Launchfile isnt working with TiM 781S

Hi,
I am using a TiM781S and the launch file isnt working.
I tried it on: Ubuntu 20.04 with foxy.
I changed the hostname port and frame_id for the launchfile. The exact error is attached at the bottom.

Also the ros2 run command I used before isn't working anymore:
ros2 run sick_scan2 sick_generic_caller __hostname:=192.168.1.24 __port:=2113 __name:=sick_tim_7xxS __frame_id:=base_scan

Thanks in advance!
If you need more information just tell me and I'll provide it.

Here is my whole terminal print when I try the launch file:
[INFO] [launch]: All log files can be found below /root/.ros/log/2020-08-13-11-42-14-786077-AGV-Research-Rudi-128
[INFO] [launch]: Default logging verbosity is set to INFO
[WARNING] [launch_ros.actions.node]: Parameter file path is not a file: /home/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_tim_7xxS.yaml
[INFO] [sick_generic_caller-1]: process started with pid [130]
[sick_generic_caller-1] [ERROR] [1597318934.961745895] [rcl]: Failed to parse global arguments [sick_generic_caller-1]
[sick_generic_caller-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[sick_generic_caller-1] This error state is being overwritten:
[sick_generic_caller-1]
[sick_generic_caller-1] 'Couldn't parse params file: '--params-file /home/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_tim_7xxS.yaml'. Error: Error opening YAML file, at /tmp/binarydeb/ros-foxy-rcl-yaml-param-parser-1.1.6/src/parser.c:1782, at /tmp/binarydeb/ros-foxy-rcl-1.1.6/src/rcl/arguments.c:391'
[sick_generic_caller-1]
[sick_generic_caller-1] with this new error message:
[sick_generic_caller-1]
[sick_generic_caller-1] 'context is zero-initialized, at /tmp/binarydeb/ros-foxy-rcl-1.1.6/src/rcl/context.c:51' [sick_generic_caller-1]
[sick_generic_caller-1] rcutils_reset_error() should be called after error handling to avoid this.
[sick_generic_caller-1] <<<
[sick_generic_caller-1] [ERROR] [1597318934.961879152] [rclcpp]: failed to finalize context: context is zero-initialized, at /tmp/binarydeb/ros-foxy-rcl-1.1.6/src/rcl/context.c:51
[sick_generic_caller-1] terminate called after throwing an instance of 'rclcpp::exceptions::RCLInvalidROSArgsError' [sick_generic_caller-1] what(): failed to initialize rcl: error not set
[ERROR] [sick_generic_caller-1]: process has died [pid 130, exit code -6, cmd '/home/sick_scan_ws/install/sick_scan2/lib/sick_scan2/sick_generic_caller --ros-args -r __node:=sick_scan2_tim_7xxS --params-file /home/sick_scan_ws/install/sick_scan2/share/sick_scan2/config/sick_tim_7xxS.yaml'].

Error when trying ros2 run...:
[WARN] [1597319344.805574338] [rcl]: Found remap rule '__name:=sick_tim_7xxS'. This syntax is deprecated. Use '--ros-args --remap __name:=sick_tim_7xxS' instead.
[INFO] [1597319344.842864412] [sick_tim_7xxS]: sick_generic_caller V. 002.000.000
[INFO] [1597319344.843244763] [sick_tim_7xxS]: Program arguments: /home/sick_scan_ws/install/sick_scan2/lib/sick_scan2/sick_generic_caller [INFO] [1597319344.843388440] [sick_tim_7xxS]: Program arguments: __hostname:=192.168.1.24
[INFO] [1597319344.843421084] [sick_tim_7xxS]: Program arguments: __port:=2113
[INFO] [1597319344.843473150] [sick_tim_7xxS]: Program arguments: __name:=sick_tim_7xxS
[INFO] [1597319344.843558944] [sick_tim_7xxS]: Program arguments: __frame_id:=base_scan
Scanner not supported.
terminate called after throwing an instance of 'std::__cxx11::basic_string<char, std::char_traits, std::allocator >*'

Setting IP Address of node at launch

How can I set the IP address of my Tim5 when I launch the ROS node?

ros2 launch sick_scan2 sick_tim_5xx.launch.py hostname:="192.168.1.1" does not seem to work.

The config yml file can be edited, but this limits the ability to use more than one scanner. How can I launch multiple nodes with different IP addresses?

Which ROS 2 driver package to use and develop

Hi @michael1309 and @puck-fzi,

I'm trying to get a better understanding of the driver packages hosted by SICKAG. There are some features like ROS 2 Composition, dynamic parameter reconfiguration ,etc that I would like to implement but unclear which package to target.

Based on the discussion here, the goal was to move the pure C++ library to sick_scan_base and merge this repo back into sick_scan. But it looks like sick_scan_base still has some ROS 1 dependencies and the merge has not happened.

I started using using this package but ran into some memory leak issues that seem to be addressed back in sick_scan_base but not here.

But from this latest comment, I learnt that the actively maintained driver package is now sick_scan_xd. So I tried building sick_scan_xd with the command colcon build --packages-select sick_scan --cmake-args " -DROS_VERSION=2" " -DLDMRS=0" --event-handlers console_direct+ as specified inthe README, but I run into the error below.

/home/yadu/ws_sick/src/sick_scan_xd/driver/src/sick_scan_common.cpp: In member function ‘virtual int sick_scan::SickScanCommon::init_scanner(rosNodePtr)’:
/home/yadu/ws_sick/src/sick_scan_xd/driver/src/sick_scan_common.cpp:2971:17: error: ‘ROS_INFO’ was not declared in this scope
 2971 |                 ROS_INFO("Prepare mLMPsetscancfg: Start Angle in 10000th deg in lidar notation: %10d", start_angle_in_10000th);

It looks like both the ROS 1 and ROS 2 library include the sick_scan_common.cpp translation unit (referring to the CMakeLists.txt file) but this logging implementation includes ROS 1 functions. Hence the compiler error above. It is also unclear if the memory leak issue is resolved in this package.

Lastly I came across the sick_safetyscanners2 package which has a much cleaner implementation of a ROS 2 node along with Lifecycle support. But it has its own sick_safescanners2_base package and does not not support the TIM range or laser scanners?

So I would like to know which package should I be using and developing off of?

It seems like it would be ideal if there is a pure C++ only "base" package and a second package for ROS drivers with ROS 1 and ROS 2 branches offering support for both TIM and other types of laser scanners. This way everyone can benefit from performance improvements and new features?

I'm looking forward to hearing from you. Thanks in advance.

min_ang and max_ang params - Not respected by the package!

Hi team,
We are using sick_tim_571 2D laser scanner under ROS foxy for our robots.
In our application, we need to change the min_ang and max_ang parameters to cover s specific angle for our scanning.
We change the parameters in sick_tim_5xx.yaml.
No matter what we enter for max and min angle, these parameters are not respected and laser scanner angle coverage is not changed.
After each modification, we build the package.
Please let us know if you have any solution to this issue.

This is our param file:
sick_scan2: # configuration for sick_scan2_tim_5xx: For compatibility with ros versions previous to foxy, node and parameter name changed to sick_scan2 for all supported scanner. The type of scanner is configured by scanner_name only.
ros__parameters:
hostname : ""
frame_id : "cloud"
scanner_name : "sick_tim_5xx"
port : 2112
min_ang : -1.0
max_ang : 1.0

Scanner Connection

The ROS 2 Driver connection

My issue is very similar to this one #28. So now I can connect by using the modified code with the (for loop) and actually the total time of connection could be systematically around 26 seconds, so it is not a problem of readiness for the scanner. Furthermore the configuration file (config/sick_mrs_1xxx.yaml) is edited as per adviced.

The only thing we can think of is that in the loop SickScanCommon::init_scanner() there is some initialization that doesn't take effect unless we pass it twice at least.

We are running the launch command in a docker image, we can provide the image and the logs if necessary to debug this, but we really would like that the nodes worked directly for us without any modifications.

Thanks in advance for your feedback

RADAR support

Is there a timeline for RMS300 with ROS2 support?

sick_scan2 update & release for dashing

Upon building sick_scan2 node in ROS Dashing, there are several deprecation warnings. It would be great to have this node then released into the ROS Debian buildfarm.

Warnings:

/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp: In function ‘int mainGenericLaser(int, char**, std::__cxx11::string)’:
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:182:58: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
           node->set_parameter_if_not_set(paramArr[i], val);

                                                          ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common_tcp.h:45,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_generic_laser.h:8,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:73:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:225:52: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
   node->set_parameter_if_not_set("name",scannerName);

                                                    ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common_tcp.h:45,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_generic_laser.h:8,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:73:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:226:53: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
   node->set_parameter_if_not_set("hostname",hostname);

                                                     ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common_tcp.h:45,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_generic_laser.h:8,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:73:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:227:45: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = std::__cxx11::basic_string<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
   node->set_parameter_if_not_set("port",port);

                                             ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common_tcp.h:45,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_generic_laser.h:8,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_laser.cpp:73:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp: In constructor ‘sick_scan::SickScanCommon::SickScanCommon(sick_scan::SickGenericParser*)’:
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:231:59: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = double; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
    node->set_parameter_if_not_set(PARAM_MIN_ANG, min_angle);
                                                           ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:59:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:232:59: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = double; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
    node->set_parameter_if_not_set(PARAM_MAX_ANG, max_angle);
                                                           ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:59:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:264:83: warning: ‘std::shared_ptr<PublisherT> rclcpp::Node::create_publisher(const string&, const rmw_qos_profile_t&, std::shared_ptr<_Up>) [with MessageT = sensor_msgs::msg::LaserScan_<std::allocator<void> >; AllocatorT = std::allocator<void>; PublisherT = rclcpp::Publisher<sensor_msgs::msg::LaserScan_<std::allocator<void> > >; std::__cxx11::string = std::__cxx11::basic_string<char>; rmw_qos_profile_t = rmw_qos_profile_t]’ is deprecated: use create_publisher(const std::string &, const rclcpp::QoS &, ...) instead [-Wdeprecated-declarations]
         pub_ = getMainNode()->create_publisher<sensor_msgs::msg::LaserScan>("scan");
                                                                                   ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_scan_common.cpp:59:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:96:1: note: declared here
 Node::create_publisher(
 ^~~~
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_caller.cpp: In function ‘int main(int, char**)’:
/home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_caller.cpp:173:46: warning: ‘void rclcpp::Node::set_parameter_if_not_set(const string&, const ParameterT&) [with ParameterT = int; std::__cxx11::string = std::__cxx11::basic_string<char>]’ is deprecated: use declare_parameter() instead [-Wdeprecated-declarations]
     node->set_parameter_if_not_set("ABC",1000);

                                              ^
In file included from /opt/ros/dashing/include/rclcpp/node.hpp:1206:0,
                 from /opt/ros/dashing/include/rclcpp/executors/single_threaded_executor.hpp:28,
                 from /opt/ros/dashing/include/rclcpp/executors.hpp:22,
                 from /opt/ros/dashing/include/rclcpp/rclcpp.hpp:144,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common.h:51,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_scan_common_tcp.h:45,
                 from /home/robo/ros2_ws/src/sick_scan2/include/sick_scan/sick_generic_laser.h:8,
                 from /home/robo/ros2_ws/src/sick_scan2/driver/src/sick_generic_caller.cpp:75:
/opt/ros/dashing/include/rclcpp/node_impl.hpp:306:1: note: declared here
 Node::set_parameter_if_not_set(
 ^~~~

Warning printout when running lidar

Report

  • Model: sick_tim_7xxS
  • ros2 foxy
  • commit hash: cdb099fcc944d3dc598b83c9368d935d9610b1c4

When running the sick lidar driver, I will occasionally receive these warning printouts. It seems that I might be using up the network bandwidth of my current setup. Hoping for some guidances to solve this. Thanks

TIM551 USB

Hello,
I am wondering if there is a way to use the Scanner TIM551 not through Ethernet connection, but instead trough USB in ROS2.

In ROS1 I could choose to use the TCP connection or the USB protocol for data transfer, as described in the following launch file by commenting out the lines concerning the TCP configuration.
Launchfile ROS1 (melodic) TIM551

I would be very happy if someone could help me.
Kind regards and thanks in advance,
Simon

Software gets stuck if run before the scanner is ready

I have an LMS511 connected to a pc which at boot automatically starts the drivers for the LMS. Now when drivers are started and the LMS is not available the program will crash and I can automatically relaunch it with a small wait time. I decided to make the wait conditional if I can ping the LMS, but the problem is the ping is available before the LMS software has started and can react to the requests of the Host pc drivers requests. The Driver then just gets stuck with following line:
Starting scan data ....

Here the complete log:

[sick_generic_caller-1] [INFO] [1634735866.008778732] [sick_scan2]: sick_generic_caller V. 001.009.000
[sick_generic_caller-1] [INFO] [1634735866.008885733] [sick_scan2]: Program arguments: /home/username/ros2_rolling/install/sick_scan2/lib/sick_scan2/sick_generic_caller
[sick_generic_caller-1] [INFO] [1634735866.008904234] [sick_scan2]: Program arguments: --ros-args
[sick_generic_caller-1] [INFO] [1634735866.008914425] [sick_scan2]: Program arguments: --params-file
[sick_generic_caller-1] [INFO] [1634735866.008923213] [sick_scan2]: Program arguments: /home/username/ros2_rolling/install/project/share/project/config/sensor/lms.yaml
[sick_generic_caller-1] [INFO] [1634735866.008931746] [sick_scan2]: sick_generic_caller: scanner_name: sick_lms_5xx, hostname: 192.168.254.26, port: 2112
[sick_generic_caller-1] [INFO] [1634735866.009088580] [sick_scan2]: Start initialising scanner ...
[sick_generic_caller-1] [INFO] [1634735866.009110512] [sick_scan2]: hostname: 192.168.254.26
[sick_generic_caller-1] [INFO] [1634735866.009120125] [sick_scan2]: Port    : 2112
[sick_generic_caller-1] [INFO] [1634735866.011899163] [sick_scan2]: Parameter setting for <active_echo: 0>
[sick_generic_caller-1] [INFO] [1634735866.011965556] [sick_scan2]: Command: <STX>sMN SetAccessMode 3 F4724744<ETX>
[sick_generic_caller-1] [INFO] [1634735866.012116664] [sick_scan2]: Sending  : sMN SetAccessMode \x03\xf4\x72\x47\x44
[sick_generic_caller-1] [INFO] [1634735866.022266965] [sick_scan2]: Receiving: <STX>sAN SetAccessMode \x01<ETX>
[sick_generic_caller-1] [INFO] [1634735866.022330002] [sick_scan2]: Command: <STX>sWN EIHstCola 1<ETX>
[sick_generic_caller-1] [INFO] [1634735866.022375754] [sick_scan2]: Sending  : sWN EIHstCola \x01
[sick_generic_caller-1] [INFO] [1634735866.032480084] [sick_scan2]: Receiving: <STX>sWA EIHstCola <ETX>
[sick_generic_caller-1] [INFO] [1634735866.032526548] [sick_scan2]: Command: <STX>sRN FirmwareVersion<ETX>
[sick_generic_caller-1] [INFO] [1634735866.032564412] [sick_scan2]: Sending  : sRN FirmwareVersion
[sick_generic_caller-1] [INFO] [1634735866.042629718] [sick_scan2]: Receiving: <STX>sRA FirmwareVersion \x00\x09\x53\x20\x31\x2e\x36\x30\x20\x20\x20<ETX>
[sick_generic_caller-1] [INFO] [1634735866.042678223] [sick_scan2]: Command: <STX>sRN SCdevicestate<ETX>
[sick_generic_caller-1] [INFO] [1634735866.042714334] [sick_scan2]: Sending  : sRN SCdevicestate
[sick_generic_caller-1] [INFO] [1634735866.052779890] [sick_scan2]: Receiving: <STX>sRA SCdevicestate \x00<ETX>
[sick_generic_caller-1] [INFO] [1634735866.052832321] [sick_scan2]: Laser is busy
[sick_generic_caller-1] [INFO] [1634735866.052850464] [sick_scan2]: Command: <STX>sRN ODoprh<ETX>
[sick_generic_caller-1] [INFO] [1634735866.052881343] [sick_scan2]: Sending  : sRN ODoprh
[sick_generic_caller-1] [INFO] [1634735866.062932892] [sick_scan2]: Receiving: <STX>sRA ODoprh \x00\x01\x80\x23<ETX>
[sick_generic_caller-1] [INFO] [1634735866.062979743] [sick_scan2]: Command: <STX>sRN ODpwrc<ETX>
[sick_generic_caller-1] [INFO] [1634735866.063015875] [sick_scan2]: Sending  : sRN ODpwrc
[sick_generic_caller-1] [INFO] [1634735866.073115359] [sick_scan2]: Receiving: <STX>sRA ODpwrc \x00\x00\x00\xb4<ETX>
[sick_generic_caller-1] [INFO] [1634735866.073172069] [sick_scan2]: Command: <STX>sRN LocationName<ETX>
[sick_generic_caller-1] [INFO] [1634735866.073212667] [sick_scan2]: Sending  : sRN LocationName
[sick_generic_caller-1] [INFO] [1634735866.083316595] [sick_scan2]: Receiving: <STX>sRA LocationName \x00\x0b\x6e\x6f\x74\x20\x64\x65\x66\x69\x6e\x65\x64<ETX>
[sick_generic_caller-1] [INFO] [1634735866.083397161] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1634735866.093501477] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x13\x88\x00\x00\x00\x00\x00\x1b\x77\x40<ETX>
[sick_generic_caller-1] [INFO] [1634735866.093546414] [sick_scan2]: Angle resolution of scanner is 0.50000 [deg]  (in 1/10000th deg: 0x1388)
[sick_generic_caller-1] [INFO] [1634735866.093564815] [sick_scan2]: MIN_ANG:   -1.658 [rad]  -95.000 [deg]
[sick_generic_caller-1] [INFO] [1634735866.093577960] [sick_scan2]: MAX_ANG:    1.658 [rad]   95.000 [deg]
[sick_generic_caller-1] [INFO] [1634735866.093628276] [sick_scan2]: Sending  : sWN LMPoutputRange \x00\x01\x00\x00\x13\x88\xff\xf1\x81\x11\x00\x0e\x7e\xf0
[sick_generic_caller-1] [INFO] [1634735866.103727849] [sick_scan2]: Receiving: <STX>sFA\x00\x04<ETX>
[sick_generic_caller-1] [INFO] [1634735866.103770502] [sick_scan2]: Error Sopas answer mismatch Error unexpected Sopas Answer for request <STX><STX><STX><STX>!sWN LMPoutputRange ~Answer= >>>sFA\x00\x04<<<
[sick_generic_caller-1] 
[sick_generic_caller-1] [INFO] [1634735866.103808226] [sick_scan2]: Sending  : sRN LMPoutputRange
[sick_generic_caller-1] [INFO] [1634735866.113909582] [sick_scan2]: Receiving: <STX>sRA LMPoutputRange \x00\x01\x00\x00\x13\x88\x00\x00\x00\x00\x00\x1b\x77\x40<ETX>
[sick_generic_caller-1] [INFO] [1634735866.113954275] [sick_scan2]: Angle resolution of scanner is 0.50000 [deg]  (in 1/10000th deg: 0x1388)
[sick_generic_caller-1] [INFO] [1634735866.113971923] [sick_scan2]: MIN_ANG (after command verification in device reference frame):    0.000 [rad]    0.000 [deg]
[sick_generic_caller-1] [INFO] [1634735866.114003303] [sick_scan2]: MAX_ANG (after command verification in device reference frame):    3.142 [rad]  180.000 [deg]
[sick_generic_caller-1] [INFO] [1634735866.114024522] [sick_scan2]: LMS 5xx detected overwriting output channel flag ID
[sick_generic_caller-1] [INFO] [1634735866.114034373] [sick_scan2]: LMS 5xx detected overwriting resolution flag (only 8 bit supported)
[sick_generic_caller-1] [INFO] [1634735866.114077855] [sick_scan2]: Sending  : sWN LMDscandatacfg \x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01
[sick_generic_caller-1] [INFO] [1634735866.124176559] [sick_scan2]: Receiving: <STX>sWA LMDscandatacfg <ETX>
[sick_generic_caller-1] [INFO] [1634735866.124236482] [sick_scan2]: Sending  : sRN LMDscandatacfg
[sick_generic_caller-1] [INFO] [1634735866.134338170] [sick_scan2]: Receiving: <STX>sRA LMDscandatacfg \x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01<ETX>
[sick_generic_caller-1] [INFO] [1634735866.134398635] [sick_scan2]: Command: <STX>sMN LMCstartmeas<ETX>
[sick_generic_caller-1] [INFO] [1634735866.134434521] [sick_scan2]: Sending  : sMN LMCstartmeas
[sick_generic_caller-1] [INFO] [1634735866.144536092] [sick_scan2]: Receiving: <STX>sAN LMCstartmeas \x00<ETX>
[sick_generic_caller-1] [INFO] [1634735866.144584526] [sick_scan2]: Command: <STX>sMN Run<ETX>
[sick_generic_caller-1] [INFO] [1634735866.144622750] [sick_scan2]: Sending  : sMN Run
[sick_generic_caller-1] [INFO] [1634735866.154719084] [sick_scan2]: Receiving: <STX>sAN Run \x01<ETX>
[sick_generic_caller-1] [INFO] [1634735866.154767174] [sick_scan2]: Command: <STX>sEN LMDscandata 1<ETX>
[sick_generic_caller-1] [INFO] [1634735866.154802417] [sick_scan2]: Sending  : sEN LMDscandata \x01
[sick_generic_caller-1] [INFO] [1634735866.164896397] [sick_scan2]: Receiving: <STX>sEA LMDscandata \x01<ETX>
[sick_generic_caller-1] [INFO] [1634735866.164934567] [sick_scan2]: Starting scan data ....
[sick_generic_caller-1] 

Is there a way to a) either prevent the driver from getting stuck there or b) only start the driver when the LMS is ready? I thought waiting for the ping would achieve b) but that seems to not be the case, is there another programmatic way to check when the LMS is ready?

sick_scan2 packages

Hello,
I have some issues to install sick_scan2 packages while following the steps writen in the github : https://github.com/SICKAG/sick_scan2.
These are the steps :
image

After all the previous instructions, when I arrive to this following instruction :
colcon build --cmake-args " -DBUILD_WITH_LDMRS_SUPPORT=$BUILD_WITH_LDMRS_SUPPORT"

I have this error :
image

What is needed to correct this issue ? Do I need to install some specific packages ?

Configuration :
I’m actually on ROS2 Foxy Fiztroy on ubuntu 20.04.

Thank you for your time !

Parameter to configure sensor frame in scan message

The frame laser is quite common onboard a robot with multiple lidars. It would be very appreciated if the code supported grabbing a scan frame parameter, so that the Transforms could be reprojected into a specific lidar's frame ( allowing the use of multiple TIM's :). This could be done in a very similar manner to the min_angle and max_angle parameters:
https://github.com/SICKAG/sick_scan2/blob/master/driver/src/sick_scan_common.cpp#L246-L251

	double min_angle = node->declare_parameter(PARAM_MIN_ANG, -2.35619449);
	double max_angle = node->declare_parameter(PARAM_MAX_ANG, +2.35619449);

	cfg.min_ang = min_angle;
	cfg.max_ang = max_angle;
	cfg.frame_id = "laser";    // <---- requesting to make this configurable

Thank you for your effort on this repo!

is it possible to run the code in ros2 dashing?

Hi,

Currently I have compliled this repository in ros2 dashing, I use sick LMS151, and when I run the launch file "sick_lms_1xx.launch.py", I just got the following output:

[INFO] [launch]: All log files can be found below /home/phymin/.ros/log/2020-10-13-16-59-19-014711-phymin-XPS-15-9550-13027
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [sick_generic_caller-1]: process started with pid [13037]

and nothing more information.

So I am wondering if the code is compatible with ros2 dashing, or should I change something? Hope someone could give me some clue, Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.