0
$\begingroup$

Rosanswers logo

Currently working on an autonomous vehicle project where the majority of software is written in ROS and I am using the ibeo LUX lidar for object detection along with the sick_ldmrs lidar driver code (as a part of the csiro-asl-ros-pkg). I recently came across some strange exceptions and was wondering if anyone recognized them, or had any inkling as to their origin and (hopefully) how to fix them. Both errors were exceptions caught by sickldmrs.py on line 394

   rospy.logwarn('Caught unknown exception: %s...restarting transport.' % e) 

The first said "index out of bounds" and was most likely triggered within dataproc.py around lines 153-155

if any(["scan" in topic and num_subs > 0 for topic, num_subs in subscribers.iteritems()]):
  self.make_scans()
  self.publish_scans()

The second error said "offset must be non-negative and smaller than buffer lenth (44)", and I do not have any idea where it was triggered.

On a related note, I noticed that there was a large pool of water near the sensor when these errors were triggered. Has anyone ever experienced issues with water and the sick_ldmrs driver? Thanks for any help. I would appreciate even a rough guess of the origin for either error.

For reference I am using Diamondback with Ubuntu 11.04


Originally posted by nonnoc on ROS Answers with karma: 11 on 2011-12-07

Post score: 1


Original comments

Comment by DimitriProsser on 2011-12-08:
I also have problems with that driver. I receive the same exception as you, as well as others at random times. I receive "Contact manufacturer" warnings and more. I had some luck by modifying the publish rate within the sensor itself, but barely.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I've noticed that this driver does not do well with various settings on the scanner. I feel like if your settings are not exactly the same as those on the scanner for which this driver was written, you're going to encounter errors.

The main thing I've noticed about this driver is that it does not handle all of the errors and warnings that the scanner produces. I figured this out because warning_register_2_masks (ldmrsmsgs.py line 130) does not account for all 11 possible warning messages. If a warning is received that is not handled, it throws an unknown exception. This could be what you're seeing. I didn't check the other warning and error registers, but I feel as if those could also have a problem.


Originally posted by DimitriProsser with karma: 11163 on 2012-02-23

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.