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

LiDAR issues with the Multirotor vehicle #61

Open
bucknercsamuel opened this issue Dec 5, 2024 · 4 comments
Open

LiDAR issues with the Multirotor vehicle #61

bucknercsamuel opened this issue Dec 5, 2024 · 4 comments
Labels
question Further information is requested

Comments

@bucknercsamuel
Copy link

bucknercsamuel commented Dec 5, 2024

I wanted to report/get help on multiple issues I am experiencing when using the LiDAR functionalities with a multirotor vehicle.

(1) When I attempt to use GPULiDAR, I get an error saying this is incompatable with the multirotor model. Is this a bug, or a missing feature currently?

(2) I have a need to obtain a detailed pointcloud, and with this LiDAR design, this amounts to ~33k points for one full scan, which takes a non-negligible amount of time, and I also have my vehicle flying at a non-negligble speed. Consequently, the data from the scan does not appear to be position-adjusted for different sub-scans, so when flying the vehicle, I end up with a staggered pointcloud even when flying straight down and scanning a perpendicular plane. Is there any way to adjust for this without having to resort to hacky heuristics?

Note: this is the settings.json configuration I am currently using:

{
  "SimMode": "Multirotor",
  "RecordUIVisible": true,
  "MoveWorldOrigin": false,
  "LogMessagesVisible": true,
  "ShowLosDebugLines": false,
  "Vehicles": {
    "my_quad": {
      "VehicleType": "SimpleFlight",
      "AutoCreate": true,
      "Sensors": {
        "LiDAR": {
          "SensorType": 6,
          "Enabled" : true,
          "Range" : 500,
          "NumberOfChannels": 64,
          "RotationsPerSecond": 1,
          "MeasurementsPerCycle": 512,
          "X": 0, "Y": 0, "Z": 0,
          "Roll": 0, "Pitch": 0, "Yaw" : 0,
          "VerticalFOVUpper": -60,
          "VerticalFOVLower": -90,
          "DrawDebugPoints": true,
          "GenerateNoise": true
        }
      } 
    }
  }
}
@WouterJansen
Copy link
Contributor

the GPULiDAR indeed does not work in its current implementation due to crashes related to the synchronization between game and render threads. An issue that has not been fixed or heavily investigated. Would likely require a rewrite to how the GPULiDAR works.

As for the scanning, not entirely understanding the question. 33k points should be doable in real-time on most systems, but with the rotation speed of 1Hz it will have the realistic outcome of having subscans taken at different positions as the lidar rotates around during the motion. Is this what you mean?

@WouterJansen WouterJansen added the question Further information is requested label Dec 5, 2024
@bucknercsamuel
Copy link
Author

bucknercsamuel commented Dec 5, 2024

Hey Wouter, thank you for the quick response. Regarding the second question, the scan rate for those 33k points, in terms of time it takes to to call client.getLidarData, is ~0.5 hz on my current computing hardware (aside: is this reasonable to expect from a modern gaming laptop?) -- this manifests as a large error in my resulting map construction due to the speed my vehicle is traveling at. I have also tested higher rotation/second values, however the scan rate still saturates in terms of performance at the aforementioned value of 0.5 hz, and the vertically-staggered pointcloud artifact is still observed. If there is still any confusion, let me know and I can try to clarify further.

@bucknercsamuel
Copy link
Author

Apologies, mistakenly closed the issue, it has been re-opened.

@WouterJansen
Copy link
Contributor

0.5 hz seems rather slow.

I am still not sure I fully grap the problem. You have set the RotationsPerSecond parameter to 1hz, so if you are traveling rather fast it will end up being indeed a staggered pointcloud as the simulation model realistically rotates the lidar around during that 1s period before the pointcloud gets updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Development

No branches or pull requests

2 participants