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

Ғылым және технология

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
    @prandtlmayer2 жыл бұрын

    Brian, this is possibly the best introductory video to pose graph I have seen so far

  • @adnanfahad6526
    @adnanfahad65262 жыл бұрын

    I can see how much effort has been put into this video. Great explanation!!! Thanks a lot.

  • @alfascanerllc3786
    @alfascanerllc37863 жыл бұрын

    Very useful stuff, really academic and easy to comprehend at the same time. Thanks.

  • @orhirshfeld
    @orhirshfeld22 күн бұрын

    Always love to learn from you, you make it easy to learn

  • @bluecpp2059
    @bluecpp20594 жыл бұрын

    Thank you for these great introductory videos to the topic. 👍

  • @snackbite5360
    @snackbite53602 жыл бұрын

    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

  • @talhayousuf4599
    @talhayousuf45992 жыл бұрын

    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

  • @xephyr417
    @xephyr4173 жыл бұрын

    I love you, Brian Douglas. You have been teaching me for so many years.

  • @androclassic
    @androclassic3 жыл бұрын

    Thanks, best visualisation of PGO I have seen so far ! 👍👍

  • @vaneesh03
    @vaneesh032 жыл бұрын

    These Tech Talks are GOLD!

  • @ibadrather
    @ibadrather Жыл бұрын

    I did udacity Robotics Software Engineering Nanodegree. and studied a lot about SLAM. BUt this explanation beats everything. wow.

  • @apppurchaser2268
    @apppurchaser2268 Жыл бұрын

    Amazing man thank you so much for clean and concise explanations

  • @r.h.9043
    @r.h.90433 жыл бұрын

    excellently explained and visualized!

  • @gennarofarina94
    @gennarofarina942 жыл бұрын

    Great intro to the process, thank you!

  • @jiayonglau
    @jiayonglau10 ай бұрын

    Thank you for your effort! Very underrated video!!

  • @user-ei6my1of8g
    @user-ei6my1of8g Жыл бұрын

    Great work to explain SLAM. Thanks!

  • @killlalabas
    @killlalabas4 жыл бұрын

    Great youtube class!! Thanks!!

  • @nasiry2460
    @nasiry24603 жыл бұрын

    So wonderful, Thank you so much.

  • @amaurypalacios9079
    @amaurypalacios90793 жыл бұрын

    Great video, excelent explanation, thanks.

  • @ma-xz5of
    @ma-xz5of2 жыл бұрын

    Amazing - thx for the very clear explanation

  • @mikeharville7203
    @mikeharville72032 жыл бұрын

    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.

  • @mutalipkurban
    @mutalipkurban3 жыл бұрын

    thank you so much! great job!

  • @jehanjayawardana863
    @jehanjayawardana8632 жыл бұрын

    Thanks a lot! Nicely explained

  • @rubelahmed6805
    @rubelahmed68053 жыл бұрын

    thanks a lot for your explanation.

  • @aniktahabilder2518
    @aniktahabilder25183 жыл бұрын

    Excellent Explanation

  • @kimagurerobo
    @kimagurerobo4 жыл бұрын

    Great class👍

  • @parthd714
    @parthd7143 жыл бұрын

    who dared to dislike?

  • @MonkeyBarsEveryday
    @MonkeyBarsEveryday Жыл бұрын

    very well put together thank you

  • @haoyangwang998
    @haoyangwang9983 жыл бұрын

    Thanks so much, you teach me a lot.

  • @user-kf8ey7oh6j
    @user-kf8ey7oh6j4 ай бұрын

    真的听懂了,感谢。

  • @pianodavid9676
    @pianodavid96764 ай бұрын

    Excellent explanation, thank you :)

  • @alhdlakhfdqw
    @alhdlakhfdqw Жыл бұрын

    thank you so much for your perfect video!

  • @MATLAB

    @MATLAB

    Жыл бұрын

    Glad it was helpful!

  • @anlklc2449
    @anlklc24492 жыл бұрын

    brilliant work

  • @vishvraval4079
    @vishvraval40797 ай бұрын

    Great explanation

  • @BrianBDouglas

    @BrianBDouglas

    7 ай бұрын

    Thanks! This was one of my favorites to make :)

  • @MEETPATEL-ut3qg
    @MEETPATEL-ut3qg Жыл бұрын

    Invested a great effort to make an easygoing presentation.

  • @weiwang9462
    @weiwang94623 жыл бұрын

    Thank you

  • @mohankrishnan2022
    @mohankrishnan20225 ай бұрын

    Perfect!

  • @dzhang1215
    @dzhang12154 ай бұрын

    Incredible explanation!

  • @BrianBDouglas

    @BrianBDouglas

    4 ай бұрын

    Great to hear! Thanks for the comment.

  • @nuuuuta22
    @nuuuuta223 жыл бұрын

    very cool

  • @ayushpatel535
    @ayushpatel5352 жыл бұрын

    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?

  • @hossamalzomor3311
    @hossamalzomor33113 жыл бұрын

    what if the you detect the closer pose mistakenly because the same pattern it detected is repeated in the map?

  • @murtazabugti8305
    @murtazabugti83054 жыл бұрын

    Very nice I love Matlab I

  • @lion87563
    @lion875639 ай бұрын

    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?

  • @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?

  • @trexx3298
    @trexx32983 жыл бұрын

    Using a spring instead of rubber-bar would be a better analogy :)

  • @dkaka6687
    @dkaka66874 жыл бұрын

    Amazing presentation! Can you tell us what software you used for making the animation slides? Especially the rubber band at 8:31

  • @BrianBDouglas

    @BrianBDouglas

    4 жыл бұрын

    I did everything in Matlab and coded the elasticity of the rubber bar directly. The code is pretty ugly otherwise I’d share it.

  • @ArghyaChatterjeeJony
    @ArghyaChatterjeeJony4 жыл бұрын

    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.

  • @nickbeaumont2601
    @nickbeaumont26012 жыл бұрын

    How does this work in things like self driving cars where you cant close loops because your never in the same place?

  • @melihaslan9509
    @melihaslan95092 жыл бұрын

    Mathworks should increase those tutorials

  • @DurgaPrasad-zi8mo
    @DurgaPrasad-zi8mo3 жыл бұрын

    Hi can u Recomend any IMU for SLAM

  • @BMEPRAKULSHARMA
    @BMEPRAKULSHARMA2 жыл бұрын

    which software used for animation part

  • @Craftinges
    @Craftinges4 жыл бұрын

    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

    4 жыл бұрын

    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.

  • @linvincent840
    @linvincent8403 жыл бұрын

    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

  • @theonecallednick
    @theonecallednick3 жыл бұрын

    So is this how the missile know where it is? I'm genuinely curious.

  • @oldcowbb
    @oldcowbb4 жыл бұрын

    this is a couple month late for my class lol

  • @yerr234

    @yerr234

    3 жыл бұрын

    this is just in time for my senior project

  • @User-lp7on
    @User-lp7on2 жыл бұрын

    I was searching slams for mma

  • @user-ig9mp1wu1o
    @user-ig9mp1wu1o3 жыл бұрын

    比国内付费视频还良心

  • @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

  • @bestcakesdesign
    @bestcakesdesign3 жыл бұрын

    Is matlab free

  • @xcbz9176
    @xcbz9176 Жыл бұрын

    The missile knows where it is, because it knows where it isn’t,

Келесі