Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invalid points in LaserScan aren't handled correctly with "apply_correction" #24

Closed
kawk opened this issue Jan 6, 2025 · 2 comments
Closed

Comments

@kawk
Copy link
Contributor

kawk commented Jan 6, 2025

With R2300 4-layer and active "apply_correction", malloc() errors occur if the original LaserScan data contains NaN or Inf values. These can occur since #18 which was fixed only a few weeks before.

To Reproduce
Prepare R2300 at 10.0.10.76 and start driver with /tmp/params.yaml as below

ros_main --ros-args -r __node:=ros_main --params-file /tmp/params.yaml
ros_main:
  ros__parameters:
    transport: "udp"
    scanner_ip: "10.0.10.76"
    max_num_points_scan: 0
    frame_id: "scanner_link"
    start_angle: -450000
    packet_type: "C1"
    scan_topic: "/cloud"
    num_layers: 4
    apply_correction: true
    watchdogtimeout: 60000
    watchdog: false

Symptoms

As soon as the driver receives scan data from sensor containing invalid values, a malloc() error like this will occur:

...
[INFO] [1736171940.198833507] [ros_main]: Device state changed to Running
malloc(): corrupted top size

Experienced with ROS Humble.

@kawk
Copy link
Contributor Author

kawk commented Jan 6, 2025

The code doing the "correction" of points from LaserScan into PointCloud incorrectly does not skip points where range is NaN or Inf (see comments in #23 for details).

@kawk
Copy link
Contributor Author

kawk commented Jan 17, 2025

Fixed in #23

@kawk kawk closed this as completed Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant