Understanding SLAM Using Pose Graph Optimization | Autonomous Navigation, Part 3

  Рет қаралды 183,669

MATLAB

MATLAB

Күн бұрын

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.

Пікірлер: 72
@prandtlmayer
@prandtlmayer 2 жыл бұрын
Brian, this is possibly the best introductory video to pose graph I have seen so far
@adnanfahad6526
@adnanfahad6526 2 жыл бұрын
I can see how much effort has been put into this video. Great explanation!!! Thanks a lot.
@orhirshfeld
@orhirshfeld Күн бұрын
Always love to learn from you, you make it easy to learn
@alfascanerllc3786
@alfascanerllc3786 3 жыл бұрын
Very useful stuff, really academic and easy to comprehend at the same time. Thanks.
@bluecpp2059
@bluecpp2059 3 жыл бұрын
Thank you for these great introductory videos to the topic. 👍
@xephyr417
@xephyr417 3 жыл бұрын
I love you, Brian Douglas. You have been teaching me for so many years.
@vaneesh03
@vaneesh03 2 жыл бұрын
These Tech Talks are GOLD!
@androclassic
@androclassic 3 жыл бұрын
Thanks, best visualisation of PGO I have seen so far ! 👍👍
@snackbite5360
@snackbite5360 2 жыл бұрын
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
@ibadrather
@ibadrather Жыл бұрын
I did udacity Robotics Software Engineering Nanodegree. and studied a lot about SLAM. BUt this explanation beats everything. wow.
@talhayousuf4599
@talhayousuf4599 2 жыл бұрын
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
@apppurchaser2268
@apppurchaser2268 Жыл бұрын
Amazing man thank you so much for clean and concise explanations
@r.h.9043
@r.h.9043 3 жыл бұрын
excellently explained and visualized!
@jiayonglau
@jiayonglau 9 ай бұрын
Thank you for your effort! Very underrated video!!
@gennarofarina94
@gennarofarina94 2 жыл бұрын
Great intro to the process, thank you!
@mikeharville7203
@mikeharville7203 2 жыл бұрын
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.
@user-ei6my1of8g
@user-ei6my1of8g Жыл бұрын
Great work to explain SLAM. Thanks!
@killlalabas
@killlalabas 3 жыл бұрын
Great youtube class!! Thanks!!
@nasiry2460
@nasiry2460 3 жыл бұрын
So wonderful, Thank you so much.
@amaurypalacios9079
@amaurypalacios9079 3 жыл бұрын
Great video, excelent explanation, thanks.
@ma-xz5of
@ma-xz5of 2 жыл бұрын
Amazing - thx for the very clear explanation
@parthd714
@parthd714 3 жыл бұрын
who dared to dislike?
@aniktahabilder2518
@aniktahabilder2518 3 жыл бұрын
Excellent Explanation
@alhdlakhfdqw
@alhdlakhfdqw Жыл бұрын
thank you so much for your perfect video!
@MATLAB
@MATLAB Жыл бұрын
Glad it was helpful!
@rubelahmed6805
@rubelahmed6805 3 жыл бұрын
thanks a lot for your explanation.
@mutalipkurban
@mutalipkurban 3 жыл бұрын
thank you so much! great job!
@kimagurerobo
@kimagurerobo 3 жыл бұрын
Great class👍
@haoyangwang998
@haoyangwang998 2 жыл бұрын
Thanks so much, you teach me a lot.
@MonkeyBarsEveryday
@MonkeyBarsEveryday Жыл бұрын
very well put together thank you
@MEETPATEL-ut3qg
@MEETPATEL-ut3qg Жыл бұрын
Invested a great effort to make an easygoing presentation.
@jehanjayawardana863
@jehanjayawardana863 2 жыл бұрын
Thanks a lot! Nicely explained
@user-kf8ey7oh6j
@user-kf8ey7oh6j 3 ай бұрын
真的听懂了,感谢。
@pianodavid9676
@pianodavid9676 3 ай бұрын
Excellent explanation, thank you :)
@anlklc2449
@anlklc2449 2 жыл бұрын
brilliant work
@weiwang9462
@weiwang9462 3 жыл бұрын
Thank you
@dzhang1215
@dzhang1215 4 ай бұрын
Incredible explanation!
@BrianBDouglas
@BrianBDouglas 4 ай бұрын
Great to hear! Thanks for the comment.
@vishvraval4079
@vishvraval4079 7 ай бұрын
Great explanation
@BrianBDouglas
@BrianBDouglas 6 ай бұрын
Thanks! This was one of my favorites to make :)
@mohankrishnan2022
@mohankrishnan2022 5 ай бұрын
Perfect!
@ayushpatel535
@ayushpatel535 2 жыл бұрын
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?
@nuuuuta22
@nuuuuta22 3 жыл бұрын
very cool
@hossamalzomor3311
@hossamalzomor3311 3 жыл бұрын
what if the you detect the closer pose mistakenly because the same pattern it detected is repeated in the map?
@murtazabugti8305
@murtazabugti8305 3 жыл бұрын
Very nice I love Matlab I
@MarcusVinicius-lq3fe
@MarcusVinicius-lq3fe Жыл бұрын
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?
@dkaka6687
@dkaka6687 3 жыл бұрын
Amazing presentation! Can you tell us what software you used for making the animation slides? Especially the rubber band at 8:31
@BrianBDouglas
@BrianBDouglas 3 жыл бұрын
I did everything in Matlab and coded the elasticity of the rubber bar directly. The code is pretty ugly otherwise I’d share it.
@lion87563
@lion87563 8 ай бұрын
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?
@ArghyaChatterjeeJony
@ArghyaChatterjeeJony 3 жыл бұрын
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!!
@BrianBDouglas
@BrianBDouglas 3 жыл бұрын
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.
@ArghyaChatterjeeJony
@ArghyaChatterjeeJony 3 жыл бұрын
Thanks for clearing. It was really helpful.
@trexx3298
@trexx3298 2 жыл бұрын
Using a spring instead of rubber-bar would be a better analogy :)
@nickbeaumont2601
@nickbeaumont2601 2 жыл бұрын
How does this work in things like self driving cars where you cant close loops because your never in the same place?
@DurgaPrasad-zi8mo
@DurgaPrasad-zi8mo 3 жыл бұрын
Hi can u Recomend any IMU for SLAM
@Craftinges
@Craftinges 3 жыл бұрын
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?
@BrianBDouglas
@BrianBDouglas 3 жыл бұрын
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.
@BMEPRAKULSHARMA
@BMEPRAKULSHARMA 2 жыл бұрын
which software used for animation part
@linvincent840
@linvincent840 3 жыл бұрын
Does anyone know how we detect loop closures? i.e. How do we know the robot is observing the same feature?
@clickle23
@clickle23 3 жыл бұрын
search "Scan context" and "loop closure by NDT" in google you will like them :P
@melihaslan9509
@melihaslan9509 2 жыл бұрын
Mathworks should increase those tutorials
@theonecallednick
@theonecallednick 3 жыл бұрын
So is this how the missile know where it is? I'm genuinely curious.
@User-lp7on
@User-lp7on 2 жыл бұрын
I was searching slams for mma
@oldcowbb
@oldcowbb 3 жыл бұрын
this is a couple month late for my class lol
@yerr234
@yerr234 3 жыл бұрын
this is just in time for my senior project
@user-ig9mp1wu1o
@user-ig9mp1wu1o 3 жыл бұрын
比国内付费视频还良心
@bestcakesdesign
@bestcakesdesign 3 жыл бұрын
Is matlab free
@xcbz9176
@xcbz9176 Жыл бұрын
The missile knows where it is, because it knows where it isn’t,
@nilsbruhner1983
@nilsbruhner1983 Жыл бұрын
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.
@nilsbruhner1983
@nilsbruhner1983 Жыл бұрын
The benefit of that would be not to have to calculate the offset-rubberband-spring or whatever...
@nilsbruhner1983
@nilsbruhner1983 Жыл бұрын
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.
@EyesUpFPV
@EyesUpFPV Жыл бұрын
@@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
Introduction to SLAM (Cyrill Stachniss)
37:06
Cyrill Stachniss
Рет қаралды 35 М.
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 118 МЛН
NO NO NO YES! (50 MLN SUBSCRIBERS CHALLENGE!) #shorts
00:26
PANDA BOI
Рет қаралды 102 МЛН
어른의 힘으로만 할 수 있는 버블티 마시는법
00:15
진영민yeongmin
Рет қаралды 12 МЛН
Can you map a room with LIDAR and Arduino?
11:52
Nikodem Bartnik
Рет қаралды 323 М.
Everything You Need to Know About Control Theory
16:08
MATLAB
Рет қаралды 505 М.
Top 6 Tools to Turn Code into Beautiful Diagrams
3:24
ByteByteGo
Рет қаралды 546 М.
Graph-based SLAM using Pose Graphs (Cyrill Stachniss)
1:11:55
Cyrill Stachniss
Рет қаралды 52 М.
SLAM Robot Mapping - Computerphile
11:35
Computerphile
Рет қаралды 122 М.
Building a ROS Robot for Mapping and Navigation #1
19:53
James Bruton
Рет қаралды 212 М.
How To Unlock Your iphone With Your Voice
0:34
요루퐁 yorupong
Рет қаралды 17 МЛН
Power up all cell phones.
0:17
JL FUNNY SHORTS
Рет қаралды 50 МЛН
Will the battery emit smoke if it rotates rapidly?
0:11
Meaningful Cartoons 183
Рет қаралды 2,8 МЛН