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

Very incorrect ranges from lidar #1001

Closed
jisa opened this issue Aug 20, 2021 · 9 comments
Closed

Very incorrect ranges from lidar #1001

jisa opened this issue Aug 20, 2021 · 9 comments

Comments

@jisa
Copy link

jisa commented Aug 20, 2021

CORO_PAM_SENSOR_CONFIG_1, about 2.5 meters above ground (see pictures below), repeatedly, i.e. not just due to noise, reports distance to ground over 10 meters. Up to this moment of complete failure, it has also been overestimating the distance by about 20 % in comparison to estimates based on other sensors.

# rostopic echo /robot/bottom_scan
header:
  seq: 2325
  stamp:
    secs: 46
    nsecs: 540000000
  frame_id: "robot/base_link/bottom_laser"
angle_min: 3.14159274101
angle_max: 3.14159274101
angle_increment: nan
time_increment: 0.0
scan_time: 0.0
range_min: 0.0500000007451
range_max: 40.0
ranges: [10.705933570861816]
intensities: [0.0]
---
header: 
  seq: 2326
  stamp: 
    secs: 46
    nsecs: 560000000
  frame_id: "robot/base_link/bottom_laser"
angle_min: 3.14159274101
angle_max: 3.14159274101
angle_increment: nan
time_increment: 0.0
scan_time: 0.0
range_min: 0.0500000007451
range_max: 40.0
ranges: [10.632636070251465]
intensities: [0.0]
---
header: 
  seq: 2327
  stamp: 
    secs: 46
    nsecs: 580000000
  frame_id: "robot/base_link/bottom_laser"
angle_min: 3.14159274101
angle_max: 3.14159274101
angle_increment: nan
time_increment: 0.0
scan_time: 0.0
range_min: 0.0500000007451
range_max: 40.0
ranges: [10.578147888183594]
intensities: [0.0]
---
header: 
  seq: 2328
  stamp: 
    secs: 46
    nsecs: 600000000
  frame_id: "robot/base_link/bottom_laser"
angle_min: 3.14159274101
angle_max: 3.14159274101
angle_increment: nan
time_increment: 0.0
scan_time: 0.0
range_min: 0.0500000007451
range_max: 40.0
ranges: [10.461398124694824]
intensities: [0.0]

drone-lidar
drone-lidar2

@jisa
Copy link
Author

jisa commented Aug 21, 2021

After that, when it gets over the shaft, it underestimates distance to the bottom.

# rostopic echo /robot/bottom_scan
header: 
  seq: 2596
  stamp: 
    secs: 51
    nsecs: 960000000
  frame_id: "robot/base_link/bottom_laser"
angle_min: 3.14159274101
angle_max: 3.14159274101
angle_increment: nan
time_increment: 0.0
scan_time: 0.0
range_min: 0.0500000007451
range_max: 40.0
ranges: [5.705638408660889]
intensities: [0.0]
---

At that point, the drone is sufficiently horizontal not to be pointing the lidar to a wall:

# rostopic echo /robot/imu/data
header:
  seq: 12747
  stamp:
    secs: 51
    nsecs: 948000000
  frame_id: "robot/base_link/imu_sensor"
orientation:
  x: -0.0141953380262
  y: -0.0169637710734
  z: 0.600932680144
  w: 0.798993514858
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
  x: 0.00325
  y: 0.0285
  z: 0.87225
angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration:
  x: 0.015
  y: 0.06
  z: 9.675
linear_acceleration_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---

drone-lidar3
drone-lidar4
drone-lidar5

@jisa
Copy link
Author

jisa commented Aug 21, 2021

I see the same effects also with SSCI_X4_SENSOR_CONFIG_2. This issues are not specific to one type of drone.

@jisa
Copy link
Author

jisa commented Aug 23, 2021

Thanks for discovering the root cause, @iche033!

Is there going to be some one last release with the fix before the competition, or will it only become available later?

@iche033
Copy link
Contributor

iche033 commented Aug 23, 2021

Is there going to be some one last release with the fix before the competition, or will it only become available later?

I don't know if there will be another release before the competition actually. That's mainly up to the organizers.

As a workaround when running locally without the fix, you can tweak the min/max angle params in the sdf, e.g. by editing the model.sdf file in your fuel cache: ~/.ignition/fuel/fuel.ignitionrobotics.org/openrobotics/models/coro_pam_sensor_config_1/1/model.sdf

                            <min_angle>3.141492654</min_angle>
                            <max_angle>3.141592654</max_angle>

@jisa
Copy link
Author

jisa commented Aug 24, 2021

I can confirm that if I increase max_angle in the model.sdf file in a local docker image, catkin_make install and run the simulator with localModel:=1, the bottom lidar starts providing meaningful values. It stops overestimating (the 20 % issue) and it reports reasonable values both before and after entering the shaft.

@angelacmaio
Copy link
Contributor

Thanks for discovering the root cause, @iche033!

Is there going to be some one last release with the fix before the competition, or will it only become available later?

This will not be released for the Prize Round due to code freeze

@jisa
Copy link
Author

jisa commented Aug 29, 2021

Thanks for confirming.

@m3d
Copy link
Contributor

m3d commented Sep 27, 2021

I guess that the "drones graveyard" is the consequence (just a wild guess)
drones-graveyard
https://youtu.be/EAPSm7udG3Q?t=4510

@nkoenig
Copy link
Contributor

nkoenig commented Oct 11, 2021

The rendering fix has been merged and released.

@nkoenig nkoenig closed this as completed Oct 11, 2021
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

5 participants