From this resource,
https://gitlab.kitware.com/keu-computervision/slam/-/blob/master/paraview_wrapping/Plugin/doc/How_to_SLAM_with_LidarView.md?ref_type=heads#external-sensors-use
and this resource
https://www.kitware.com/loop-closure-is-ready-to-use-in-lidarview/#:~:text=To%20use%20the%20loop%20closure,logged%20trajectory%20will%20be%20updated.
it’s telling me that if I want to enable loop closure I need to enable the Use pose graph parameter in general parameters. but I don’t see that parameter anywhere in the settings,
It should be right below the number of threads parameter and when I search for it using the settings search bar I still don’t get it. I’m using LidarView 4.3.0 windows AMD64, in the tutorials I’ve looked at it looks like it should be right there what am I doing wrong?
Hi @Shane_Holmes,
The loop closure fonctionality was introduced in SLAM version 2.0, which has been integrated in LidarView version 4.4.0, so it is not present in LidarView 4.3.0.
And you to view this option, make sure to toggle the advanced properties of the SLAM filter in LidarView. Here a screenshot from version 4.4.0.
For reference, here is the list of releases of SLAM :
https://gitlab.kitware.com/keu-computervision/slam/-/releases
And the list of releases of LidarView
https://gitlab.kitware.com/LidarView/lidarview/-/releases
Note: Version 2.1 of SLAM (which includes in particular pose graph with external poses) has not yet been integrated in a LidarView release, and LidarView would need to be rebuilt from source branch to access it ( I would advise master branch to get the latest developments)
Hello, thanks for your advice from before, I got the new lidarview 4.4.0 I’ve enabled the advanced features, but I still don’t see the use pose graph in the general settings. You mentioned I need to toggle the advance properties of the SLAM filter, in lidar view but idk how to do that. Is that different than the advanced features parameter I toggled in help? If it isn’t then I’m stuck because I already did that and I still don’t see it. Or is there a different setting I need to toggle exclusively for the SLAM system, if so where is it? I didn’t see it when I was searching in the SLAM properties menu?
I’m still looking but It this time I still don’t see it.
Thank you for your responses, Shane
Apologies, my answer may have not been clear enough. The advanced properties of the SLAM filter ( as with any filter in ParaView / LidarView ) are visible by clicking on the cogwheel next to the search bar.
See below :
I hope this helps.
Gatien
Ok I see it now, it was just a little unintuitive.
If I have any other questions I’ll ask
you’ve been very helpful
Ok so I can see the settings and I’m trying to play around with them to get the loop closer to happen but it’s just not working?
The start and the end of the trajectory should be in the same position. Now I will note while watching this happen that portions of the point field get deleted after a while, I’m guessing to conserve memory or something but I think this is having an effect where the first several frames are like deleted and thus the last few frames have nothing to reference to.
what’s your opinion and how can I fix this?
also through all the resources I’ve read they are not super detailed on what all the settings mean, take this resource
https://www.kitware.com/lidar-slam-spotlight-on-kitwares-open-source-library/
and this resource
https://gitlab.kitware.com/keu-computervision/slam/-/blob/master/paraview_wrapping/Plugin/doc/How_to_SLAM_with_LidarView.md?ref_type=heads#using-loop-closure-in-lidarview
Neither of them tell me what like query map end range mean or what subsample revisited maps mean?
Hello,
it is hard to tell what is wrong without seeing any data nor knowing your exact issue.
1) Version
Documentation for slam 2.0 as you have in your current LidarView is here.
However, I suggest you use the last LidarView version (Windows, Linux) which corresponds to the documentation version you referred to in your previous message.
A tutorial video is available for this new version.
2) About the deleted points
The map is limited in space and in time (check Map parameters : Rolling grid dimension and Decaying threshold). This must be why you see points disappear. However, this is not directly linked with the loop closure behavior.
The trajectory is stored in the time window defined by Logging timeout (one of the first parameters in the Properties panel). So, by default, points older than half an hour will be completely forgotten and the loop closure must happen during this time to be usable.
3) Loop closure parameters
If you see clearly the loop closure, I suggest you use the manual/external mode to specify approximately the indices of the frames that define the start and the end of the loop.
If the SLAM has drifted a lot since the start of the loop, you can check the box : Add offset in the loop closure advanced settings before optimizing the graph to help the registration perform well.
Note that if you need to have more information about the parameters of any ParaView filter, you can let your mouse on the parameter field in the UI and some extra doc will appear.
If you need more help, don’t hesitate to have a look at our support contracts.
I hope this helps.
This is very helpful I’ll look at this and report back on what I found.
I cannot access the windows link for the newest lidarview version, the current version I have is 4.4.0 which I believe is the newest version?
Thank you especially for the new video I watched it and it looks like it’s much more descriptive than the other ones, I’ve seen. Is there a repository of new videos for other features as well. Like incorporating IMU and GNSS data?
Here’s a link to the dataset that I’m using …
let me know if you can see it.
The last LidarView release is quite old now. New ones will come in few days. However, the last LidarView master with SLAM master is always available on this page in the artifacts of the last pipeline (this is where I took the binaries I sent to you).
About the documentation, we don’t do free development meaning each feature we have included in the repository has been asked by a customer. If you need more documentation we would be very happy to be able to create it in the context of a contract.
Ok so I’ve been playing around with the settings and following the tutorial but it’s just not working, the procedure I’m following is as follows
- upload the pcap dataset that I have
- apply the SLAM (online filter)
- toggle use pose graph
- set verbosity level to “3) 2 + Sub-problems processing duration”
- set rolling grid dimension to 100
- apply and then launch the SLAM operation.
Some thing’s to note is that I’m getting like a lot of inconsistancy with the trajectory when I repeat this process over and over again like the trajectory is just way off see picture below.
(Fig. 1)Above image of the completed SLAM scan
(Fig. 2)Isolated trajectory from the above image for clarity
You can make out the difference between the trajectory in the above image to the trajectory in the earlier image I submitted to the thread.
So I continue with the procedure
- select the tooltop selection tool
- select a point from one of the first frames to a point in one of the last frames, (That’s what I’m gathering I need to do from the video)
- create a new csv file with the following content
queryIdx,revisitedIdx
10526, 9303
- toggle loop closure contraint
- select External for the loop closure detector
- load the csv file
- click apply
- then click Optimize Graph
When I do this I wait for a couple minutes, and this is what I get…
(Fig. 3)Result from optimizing the graph
There’s … no difference like it doesn’t seem to have done anything? Normally when I perform a process like for example adding a temporal transform applier filter the only indication I get that the software is processing is that the program freezes. But when I click Optimize graph there is no freeze there’s no log, there’s no indication that it did anything. I repeated the steps several times and everytime I did I sampled new point ID values and clicked the optimization button and nothing has happened. The only difference between these trials is like the SLAMed trajectory changes like you see in fig.2.
So I’m not sure what to do from here, because I’m not getting any kind of error or log. I’m going to try to find the dataset that they used in the video and see if I can repeat what they did and like work my way backwards.
Let me know what your thoughts are or if you need me to provide any more detail.
Also I just shared the pcap file I didn’t realize you wouldn’t have automatic access
I’ve tried several things now and I’m still not getting any changes, I’ve also noticed that the exploding seems to just be a random thing that happens sometimes, and happens more often if I increase the rolling grid dimension to 100, I just kept trying different things and I’m just still not getting any results. I’ve contacted kitware to try and schedule a discussion with someone but I haven’t heard anything back them.
I also can’t find any datasets used in any of the videos as a reference.
could someone help me with this?
Hello, I sent you a private message in the chat. I guess you didn’t see it.
The loop closure (of any kind) can never solve a SLAM failure (regardless of the algorithm behind) as you seem to get. It can just reduce the drift correcting accumulated little errors.
Following the video and preventing the map doubling with the decay threshold, this is the resulting map I get after loop closure. This is the relative corrected trajectory. I didn’t modify the default parameters.
Note that, in the shared pcap, there are about 5000 frames so the indices 10526 and 9303 you took do not exist. Don’t hesitate to launch LidarView from a terminal to get the logs from the library.
FYI, I have updated the link to LidarView to the new SLAM master with a minor fix (not related to your issue).
The data we used in the demo could be shared in a support/training context.
This is great information I really appreciate your response and patience. I’m sorry I didn’t see your DM earlier I’ve just responded to it now. I did try to schedule a training session over email to kitware using this email, “kitware@kitware.fr”, but I didn’t get a response. I’ll see if I can replicate your results on my end.
Your request has been taken into account. Someone will reach you in a few hours.
Hi @Shane_Holmes,
I had the same problem of no action when we choose optimize graph. I am wondering what could be the problem.
@Julia_Sanchez I’ve emailed one of my .pcap files from a Hesai XT32.
@Gatien_Ferret @Timothee_Couble I am wondering if you could help with this inquiry. Much appreciated. Also, we did some changes to external poses files but still having the issue of LiDARView not reading it. I will email the new one.
More details have been given by mail specifically for this data, but for documentation purposes in case other readers encounter this. Main points to check are :
- Time synchronization between the points and the IMU data
- Frequency of the IMU data should be higher than LiDAR data for meaningful results
- Calibration matrix shall be provided ( Assuming identity is usually not correct)
- Whether the gravity acceleration is present in the IMU acceleration should be checked, and this information shall be entered in the Gravity property of the SLAM filter. Beware that some devices already remove that component, some normalize the gravity vector to 1 and some send it raw, so this may require a preprocess step of the data. If assuming Z upwards at first frame with non normalized gravity, the following shall be entered
1 Like