Closed hoopp closed 1 year ago
Thanks for your message. You can use SOPAS command sRA GetContaminationResult
to read the contamination status.
Use ros service "ColaMsg" to send the SOPAS command:
# ROS-1:
rosservice call /sick_lms_5xx/ColaMsg "{request: 'sMN SetAccessMode 3 F4724744'}" # switch to authorized client
rosservice call /sick_lms_5xx/ColaMsg "{request: 'sRA GetContaminationResult'}" # read contamination status
# ROS-2:
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sMN SetAccessMode 3 F4724744'}" # switch to authorized client
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sRA GetContaminationResult'}" # read contamination status
An additional service to get the contamination status will be added in the next release.
Thanks for your message. You can use SOPAS command
sRA GetContaminationResult
to read the contamination status.Use ros service "ColaMsg" to send the SOPAS command:
# ROS-1: rosservice call /sick_lms_5xx/ColaMsg "{request: 'sMN SetAccessMode 3 F4724744'}" # switch to authorized client rosservice call /sick_lms_5xx/ColaMsg "{request: 'sRA GetContaminationResult'}" # read contamination status # ROS-2: ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sMN SetAccessMode 3 F4724744'}" # switch to authorized client ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sRA GetContaminationResult'}" # read contamination status
An additional service to get the contamination status will be added in the next release.
use SOPAS command sRA GetContaminationResult to read the contamination status, I tried several times, when SetAccessMode , the connection will be lost,and Calling the GetContinuationResult command will block.
Partial related logs:
[sick_generic_caller-1] [INFO] [1693971162.409436719] [sick_scan]: SickScanServices: Sending request "sMN SetAccessMode 3 F4724744"
[sick_generic_caller-1] [INFO] [1693971162.409504501] [sick_scan]: Sending :
Thanks for reporting this. Sorry, my fault - the SOPAS command is sRN ContaminationResult
, not sRA GetContaminationResult
.
Please try again with
rosservice call /sick_mrs_1xxx/ColaMsg "{request: 'sRN ContaminationResult'}" # ROS-1
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sRA GetContaminationResult'}" # ROS-2
Note that this command is only supported by MRS-1000, LMS-1000, multiScan, picoScan.
Does this command (sRN ContaminationResult) not support LMS5xx? If not supported, how can I obtain the dirty status of the lms5xx device?
For LMS-1xx and LMS-5xx the SOPAS command "sRN LCMstate" can be used to query the contamination status:
rosservice call /sick_mrs_1xxx/ColaMsg "{request: 'sRN LCMstate'}" # ROS-1
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sRN LCMstate'}" # ROS-2
See the telegram listing https://cdn.sick.com/media/docs/7/27/927/telegram_listing_telegram_listing_ranging_sensors_lms1xx_lms5xx_tim2xx_tim5xx_tim7xx_lms1000_mrs1000_mrs6000_nav310_ld_oem15xx_ld_lrs36xx_lms4000_lrs4000_multiscan100_en_im0045927.pdf for details.
This command works, thank you very much!
Thanks for your friendly feedback!
Does this command (sRN LCMstate) not support sick_tim_7xx? If not supported, how can I obtain the dirty status of the sick_tim_7xx device?
@mustafaktaas Thanks for your feedback. Tim7xx devices do not support command sRN LCMstate
resp. a contamination status according to the telegram listing:
Sopas: devicestatus 35 Device contaminated,warning threshold reached-Please clean front screen Sending : sRN SCdevicestate Receiving:sRA SCdevicestate 0 or sRA SCdevicestate 1
I tried, but the returned status is not the desired dirty state. How to obtain the status of a LiDAR (LMS511)sensor when it fails due to dust contamination?