Coder Social home page Coder Social logo

Comments (8)

bexcite avatar bexcite commented on July 20, 2024 1

I think I figured out the problem and the solution. In both cases the voxel_size apparently was too big if one was assuming the max_range to be from the sensor spec, let's say 150m or even more, which caused the big voxel size and much worse registration in situation where lot's of feature are nearby. so decreasing the max_range for Case 1 to 50m and for Case 2 to 10m (because it was a room), made things significantly better.

So its probably makes sense to not just use the sensor spec but take into an account the data distribution, which can be done easily outside of kiss odometry by estimating the range distribution on some 10-100 scans to get an idea of what max_range parameter to set.

Again, super happy with the results! Great job!

from kiss-icp.

nachovizzo avatar nachovizzo commented on July 20, 2024 1

@bexcite great analysis. Actually for all the test runs we did for indoors we've setup a max range of 10m. We once had 2 config files, one for outdoor and other for indoor. But after removing almost all componentes of the pipeline we realized that the only difference was the max range, and therefore exposed it also through the CLI.

Once we release the full thing I plan to write some documentations on how to use, adapt and tune the system for non out-of-the-bxo working datasets.

I'll review your whole issue once I'm back at the office, I'm now away from my main pc.

Thanks for the patience

from kiss-icp.

bexcite avatar bexcite commented on July 20, 2024 1

Yeah, I've need to add it on some branch and probably open an MR since now the code is public and we can do it. I'll try to make it next week.

from kiss-icp.

bexcite avatar bexcite commented on July 20, 2024

Updated initial post with pictures.

from kiss-icp.

nachovizzo avatar nachovizzo commented on July 20, 2024

@bexcite Should I close this for now, or do you need further assistance? I guess that until the real thing is released there is not much we can do, please let me know if you need additional help.

from kiss-icp.

bexcite avatar bexcite commented on July 20, 2024

Yes, we can consider it's done, because selecting a proper min/max range did a trick. Thanks!

from kiss-icp.

Rotoslider avatar Rotoslider commented on July 20, 2024

I've been playing with kiss-icp package and testing it with some real-world data that people may have. And it performed well in most cases which is just amazing to see and kudos to the team to make such a great ICP. Two cases that I observe are not doing well during my tests.

NOTE1: I fully understand that paper is done, so if it's smth out of scope and not needed to be adressed it's ok.

NOTE2: I've made a custom data loader to read data from pcap for a specific sensor, and there maybe some errors there. However I see the great performance on majority of other cases, including the correct deskew results of a point clouds, so it gives me the clue that custom Dataloader maybe fine after all.

Case 1: Long pauses before the first non-zero movement.

Consider a vehicle with a sensor mounted on top (360 spinner, 64 beams) , and driver is preparing for a ride without any movement for a first 2 minutes, than a small movement like 10m forward, and then no movement for like another 3 minutes, and when the car finally started the movement it just completely lost for a while, until some time. (I may guess it's smth with an accumulated tau distance distributions, but maybe smth else...) After another 1-3 minutes of movement odometry kicks off more or less and then everything is fine.

Before movement: 20221018_150618_case1_before_move

Move about 10meters after a long pause: 20221018_150731_case1_move_10m

Long paus 20221018_151038_case1_after_long_pause e continues:

Movement after the long pause and recovery in 2-3 minutes: 20221018_151340_case1_recovery

Case 2: Constant velocity rotation (in a room or construction site)

It's not a single case and was also observed on other non-room cases.

Simple room with almost plain walls but multiple corners and indentation in a wall visible (180 degree, spinner, 20hz, 32 beams) and a sensor rotating very smoothly around Z axis (like on a turntable) (with some pauses without rotation for 10-30 seconds, so it's case1 here as well probably). Result is a jerky trajectory that if drawn smeared a lot of that room.

Before the move: 20221018_152755_case2_before

After some movements: 20221018_152830_case2_after

Tried things:

I tried to tune some params, but no luck, seems that min_motion_th should have had some impact, but don't see any improvements.

Will be happy to test the fully released version and contribute the data loader for running kiss-icp on real world pcap data easily for one of the sensors.

Cheers!

@bexcite In Note 2 you mention a custom data loader. Is this available somewhere? I have a SLAM rig that uses a Ouster or Velodyne puck to capture data and would love to run some of it through Kiss ICP. I don't typically record in Rosbags.

from kiss-icp.

bexcite avatar bexcite commented on July 20, 2024

@Rotoslider here is an MR with an Ouster dataloader, if you could give it a try (from the MR, because I don't know how it will fly with the repo maintainers yet) it will help me to test it better. (it's not a big one, very simple actually, but do the job)

from kiss-icp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.