Understanding SLAM Using Pose Graph Optimization | Autonomous Navigation, Part 3
Vložit
- čas přidán 28. 06. 2024
- This video provides some intuition around Pose Graph Optimization-a popular framework for solving the simultaneous localization and mapping (SLAM) problem in autonomous navigation.
We’ll cover why uncertainty in a vehicle’s sensors and state estimation makes building a map of the environment difficult and how pose graph optimization can deal with it. We’ll also briefly cover occupancy grid maps as one way to represent the environment model.
Additional Resources:
- Implement Simultaneous Localization and Mapping (SLAM) with MATLAB: bit.ly/2Yk9agi
- Download ebook: Sensor Fusion and Tracking for Autonomous Systems: An Overview: bit.ly/2YZxvXA
- Download white paper: Sensor Fusion and Tracking for Autonomous Systems - bit.ly/3dsf2bA
- SLAM Course - 15 - Least Squares SLAM - Cyrill Stachniss video: • SLAM Course - 15 - Lea...
- Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age. Paper by Cesar Cadena, Luca Carlone, Henry Carrillo, Yasir Latif, Davide Scaramuzza, Jose ́ Neira, Ian Reid, John J. Leonard. - arxiv.org/abs/1606.05830
- Simultaneous Localisation and Mapping (SLAM): Part I. Paper by H. F. Durrant-Whyte and T. Bailey. IEEE Robotics and Automation Magazine, 13(2):99-110, 2006. - ieeexplore.ieee.org/document/...
- Simultaneous Localisation and Mapping (SLAM): Part II. Paper by T. Bailey and H. F. Durrant-Whyte. Robotics and Autonomous Systems (RAS), 13(3):108-117, 2006. - ieeexplore.ieee.org/document/...
Watch the other videos in this series:
What Is Autonomous Navigation?: • What Is Autonomous Nav...
Understanding the Particle Filter: • Understanding the Part...
--------------------------------------------------------------------------------------------------------
Get a free product trial: goo.gl/ZHFb5u
Learn more about MATLAB: goo.gl/8QV7ZZ
Learn more about Simulink: goo.gl/nqnbLe
See what's new in MATLAB and Simulink: goo.gl/pgGtod
© 2020 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc.
See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. - Věda a technologie
I can see how much effort has been put into this video. Great explanation!!! Thanks a lot.
Brian, this is possibly the best introductory video to pose graph I have seen so far
I love you, Brian Douglas. You have been teaching me for so many years.
Always love to learn from you, you make it easy to learn
These Tech Talks are GOLD!
Very useful stuff, really academic and easy to comprehend at the same time. Thanks.
Thank you for these great introductory videos to the topic. 👍
I did udacity Robotics Software Engineering Nanodegree. and studied a lot about SLAM. BUt this explanation beats everything. wow.
dude im very grateful for the resourceful explanation. thank you so much, this is what future of education will look like. bless you all who reads this xoxo
Thanks, best visualisation of PGO I have seen so far ! 👍👍
excellently explained and visualized!
Amazing man thank you so much for clean and concise explanations
Ah! Brian Douglas! I learnt all control systems concepts from you, by your videos I was able to integrate equations with real world, you are wonderful at teaching. Allah bless you
Thank you for your effort! Very underrated video!!
Great intro to the process, thank you!
Great work to explain SLAM. Thanks!
Great youtube class!! Thanks!!
Great video, excelent explanation, thanks.
So wonderful, Thank you so much.
Amazing - thx for the very clear explanation
Excellent Explanation
Great explanation
Thanks! This was one of my favorites to make :)
Great class👍
thank you so much! great job!
who dared to dislike?
Thanks a lot! Nicely explained
Awesome video, with excellent visual illustrations! However: It seems to imply that you create a loop closure link when you somehow know (from external means) that the robot is in the exact same place as before. My understanding is that what people actually do is identify matching features (or sets of features) between measurements at two _different_ but similar robot locations, estimate a relative pose between those that would satisfy the observed changes (e.g. image locations for visual features, or angles and distances for lidar features) in the matched features in the two measurements, and then add that relative pose as the new link in the graph. It would be good (maybe in a followup video) to go into that more, and also into how one actually optimizes the pose graph, which again would involve some matching/alignment between features or other measurements at linked poses.
thanks a lot for your explanation.
thank you so much for your perfect video!
Glad it was helpful!
very well put together thank you
Thanks so much, you teach me a lot.
Excellent explanation, thank you :)
brilliant work
真的听懂了,感谢。
Invested a great effort to make an easygoing presentation.
Thank you
Incredible explanation!
Great to hear! Thanks for the comment.
Perfect!
very cool
Very nice I love Matlab
I
I had a doubt, without loop closure, will there not be error? Does this error remain in the system or is it rectified by other any means if the robot does not come back to its initial pose? In this case, will the error propogate?
Mathworks should increase those tutorials
what if the you detect the closer pose mistakenly because the same pattern it detected is repeated in the map?
Using a spring instead of rubber-bar would be a better analogy :)
In code, loop closure would be just checking two nodes laser data and finding some transformation with ICP. But for which two nodes are we checking whether there is loop closure? Is it only between some node A, and all other nodes that are close to that node A (based on position of node)? That would mean that also besides this "intuitive" check in video, loop closure would be checked also between two consecutive poses (because they are close), which is not neccessary. How to avoid this?
Hi, your works are wonderful. Thanks for all these. I was having some problem with understanding some terms but the video made it clear. How ever, I had a question left. At the end, you told that there is a working example in matlab where the robot gets it's pose from lidar only. Are you talking about a 2D lidar/3D lidar? To my knowledge, a 2D lidar doesn't publish any odometry let alone pose. Correct me if I am wrong!!
Google that example I show at 15:38 and it’ll walk you through it. I though the link was in the description but I might have missed it. In the example the robot connects the poses in the graph only using lidar. It does that with feature matching only and not odometry. I hope that helps.
Thanks for clearing. It was really helpful.
How does this work in things like self driving cars where you cant close loops because your never in the same place?
And for off-road applications (agriculture, rally race-cars, ASV water robots, etc), in which there is no possibility to "close the loop". I mean the area the robot will navigate will not be displayed to its laser beams again, walls and physical structures won't be available too.. Is SLAM possible to be used by some GPS-approach (I guess Lidar won't participate in this SLAM-method right?). Do you have some video for that?
Amazing presentation! Can you tell us what software you used for making the animation slides? Especially the rubber band at 8:31
I did everything in Matlab and coded the elasticity of the rubber bar directly. The code is pretty ugly otherwise I’d share it.
Yeah the part I dont understand is the 10:53. How do you correct the previous stages? you divide the error in rotation, x, y between the last and first stage to 6 (number of total steps) and add it to all stages like averaging? or pecentage wise weighted averaging. Because if robot didnt move in x only moved in y direction in that step, error should be less or 0 in x direction? Also error is less in early stages. It increases as it goes if we assume its gaussian and constant so if we give credibiltiy to each stage then error weight should be increase like 1-2-3-4-5-6 so kind of 1/21 of error will be added to first, 2/21 of the error will be added to 2nd stage and so on?
For the first part of your question, the optimization is solving a least squares problem where it's minimizing the square errors (in each axis) across the entire graph. And you are right in that if the error is only in the y direction then the optimization would only impact the y axis. Check out Least Squares SLAM by Cyrill Stachniss that I linked to in the description for a much better explanation of what's happening during optimization. For the second part of your question, the uncertainty (the graph edge) is defined from the previous node to the current node. And so if the uncertainty in your dead reckoning process is the same over time, then each edge would have the same uncertainty associated with it (not increasing) since you have the same amount of uncertainty between, say, nodes 1-2 as you do nodes 4-5. However, the uncertainty between nodes further apart does grow, like there is greater uncertainty between nodes 1-4 as there is between 1-2. Using the rubber bar analogy from the video, imagine this: if you connect 4 nodes in a line using 3 rubber bars of the exact same length and strength and hold the first node fixed on a table, then it will be much easier for you to move the 4th node around than it will be to move the 2nd node. So, this is sort of an analogy of how the uncertainty increases over time even though the uncertainty between any two node could be the same. Yikes! I just reread this and it was pretty confusing. I'm not sure if I can explain it adequately in text. Hopefully, Cyrill's video clears up any confusion.
Hi can u Recomend any IMU for SLAM
So is this how the missile know where it is? I'm genuinely curious.
Does anyone know how we detect loop closures? i.e. How do we know the robot is observing the same feature?
search "Scan context" and "loop closure by NDT" in google you will like them :P
which software used for animation part
this is a couple month late for my class lol
this is just in time for my senior project
I was searching slams for mma
比国内付费视频还良心
The missile knows where it is, because it knows where it isn’t,
Im Not an expert. But if the robot would turn 360 while standing still at time 0 it would get the environment as is.
Supposing compass/gyro it can go around corners and again do a 360....and so on..?
Just a thought not knowing ANYTHING about the subject, im just a carpenter.
The benefit of that would be not to have to calculate the offset-rubberband-spring or whatever...
The cool thing... som people actually work wit this, and i just brake my back all days carryi ng plaster-boards.. haha.. GO TO SCHOOL...!!!!. Just love the intellect that goes into this...Coding, systems, GPS, Positioning, Lidar, robot, Maps, ...etc. Cool.
@@nilsbruhner1983 ahahah! There are disadvantages and advantages to both jobs..
I believe that doing a rotation the scan may not be accurate due to the distance of some obstacles (see how sparse measurements made with lidar become when pointing at distant obstacles at 3:02), in addition to the fact that they could be covered by other objects from certain angles
Is matlab free