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

Sdílet
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

Komentáře • 72

  • @adnanfahad6526
    @adnanfahad6526 Před 2 lety +58

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

  • @prandtlmayer
    @prandtlmayer Před 2 lety +41

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

  • @xephyr417
    @xephyr417 Před 3 lety +14

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

  • @orhirshfeld
    @orhirshfeld Před 26 dny +1

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

  • @vaneesh03
    @vaneesh03 Před 2 lety +2

    These Tech Talks are GOLD!

  • @alfascanerllc3786
    @alfascanerllc3786 Před 3 lety +13

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

  • @bluecpp2059
    @bluecpp2059 Před 4 lety +8

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

  • @ibadrather
    @ibadrather Před rokem +3

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

  • @snackbite5360
    @snackbite5360 Před 2 lety

    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

  • @androclassic
    @androclassic Před 3 lety

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

  • @r.h.9043
    @r.h.9043 Před 3 lety +4

    excellently explained and visualized!

  • @apppurchaser2268
    @apppurchaser2268 Před rokem +1

    Amazing man thank you so much for clean and concise explanations

  • @talhayousuf4599
    @talhayousuf4599 Před 2 lety +1

    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

  • @jiayonglau
    @jiayonglau Před 10 měsíci +1

    Thank you for your effort! Very underrated video!!

  • @gennarofarina94
    @gennarofarina94 Před 2 lety

    Great intro to the process, thank you!

  • @user-ei6my1of8g
    @user-ei6my1of8g Před rokem

    Great work to explain SLAM. Thanks!

  • @killlalabas
    @killlalabas Před 4 lety +2

    Great youtube class!! Thanks!!

  • @amaurypalacios9079
    @amaurypalacios9079 Před 3 lety +1

    Great video, excelent explanation, thanks.

  • @nasiry2460
    @nasiry2460 Před 3 lety +1

    So wonderful, Thank you so much.

  • @ma-xz5of
    @ma-xz5of Před 2 lety

    Amazing - thx for the very clear explanation

  • @aniktahabilder2518
    @aniktahabilder2518 Před 3 lety +1

    Excellent Explanation

  • @vishvraval4079
    @vishvraval4079 Před 7 měsíci +1

    Great explanation

    • @BrianBDouglas
      @BrianBDouglas Před 7 měsíci

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

  • @kimagurerobo
    @kimagurerobo Před 4 lety +3

    Great class👍

  • @mutalipkurban
    @mutalipkurban Před 3 lety +1

    thank you so much! great job!

  • @parthd714
    @parthd714 Před 3 lety +45

    who dared to dislike?

  • @jehanjayawardana863
    @jehanjayawardana863 Před 2 lety

    Thanks a lot! Nicely explained

  • @mikeharville7203
    @mikeharville7203 Před 2 lety +8

    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.

  • @rubelahmed6805
    @rubelahmed6805 Před 3 lety +1

    thanks a lot for your explanation.

  • @alhdlakhfdqw
    @alhdlakhfdqw Před rokem +2

    thank you so much for your perfect video!

    • @MATLAB
      @MATLAB  Před rokem +1

      Glad it was helpful!

  • @MonkeyBarsEveryday
    @MonkeyBarsEveryday Před rokem

    very well put together thank you

  • @haoyangwang998
    @haoyangwang998 Před 3 lety

    Thanks so much, you teach me a lot.

  • @pianodavid9676
    @pianodavid9676 Před 4 měsíci

    Excellent explanation, thank you :)

  • @anlklc2449
    @anlklc2449 Před 2 lety +1

    brilliant work

  • @user-kf8ey7oh6j
    @user-kf8ey7oh6j Před 4 měsíci

    真的听懂了,感谢。

  • @MEETPATEL-ut3qg
    @MEETPATEL-ut3qg Před rokem

    Invested a great effort to make an easygoing presentation.

  • @weiwang9462
    @weiwang9462 Před 3 lety +1

    Thank you

  • @dzhang1215
    @dzhang1215 Před 4 měsíci

    Incredible explanation!

    • @BrianBDouglas
      @BrianBDouglas Před 4 měsíci

      Great to hear! Thanks for the comment.

  • @mohankrishnan2022
    @mohankrishnan2022 Před 5 měsíci

    Perfect!

  • @nuuuuta22
    @nuuuuta22 Před 3 lety +1

    very cool

  • @murtazabugti8305
    @murtazabugti8305 Před 4 lety +2

    Very nice I love Matlab
    I

  • @ayushpatel535
    @ayushpatel535 Před 2 lety +1

    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?

  • @melihaslan9509
    @melihaslan9509 Před 2 lety +1

    Mathworks should increase those tutorials

  • @hossamalzomor3311
    @hossamalzomor3311 Před 3 lety

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

  • @trexx3298
    @trexx3298 Před 3 lety

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

  • @lion87563
    @lion87563 Před 9 měsíci

    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 Před 4 lety +1

    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 Před 3 lety +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 Před 3 lety

      Thanks for clearing. It was really helpful.

  • @nickbeaumont2601
    @nickbeaumont2601 Před 2 lety

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

  • @MarcusVinicius-lq3fe
    @MarcusVinicius-lq3fe Před rokem

    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 Před 4 lety +1

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

    • @BrianBDouglas
      @BrianBDouglas Před 4 lety

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

  • @Craftinges
    @Craftinges Před 4 lety

    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 Před 4 lety +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.

  • @DurgaPrasad-zi8mo
    @DurgaPrasad-zi8mo Před 3 lety

    Hi can u Recomend any IMU for SLAM

  • @theonecallednick
    @theonecallednick Před 3 lety +1

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

  • @linvincent840
    @linvincent840 Před 3 lety

    Does anyone know how we detect loop closures? i.e. How do we know the robot is observing the same feature?

    • @clickle23
      @clickle23 Před 3 lety

      search "Scan context" and "loop closure by NDT" in google you will like them :P

  • @BMEPRAKULSHARMA
    @BMEPRAKULSHARMA Před 2 lety

    which software used for animation part

  • @oldcowbb
    @oldcowbb Před 4 lety +7

    this is a couple month late for my class lol

    • @yerr234
      @yerr234 Před 3 lety +1

      this is just in time for my senior project

  • @User-lp7on
    @User-lp7on Před 2 lety

    I was searching slams for mma

  • @user-ig9mp1wu1o
    @user-ig9mp1wu1o Před 3 lety +1

    比国内付费视频还良心

  • @xcbz9176
    @xcbz9176 Před 2 lety

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

  • @nilsbruhner1983
    @nilsbruhner1983 Před rokem

    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 Před rokem

      The benefit of that would be not to have to calculate the offset-rubberband-spring or whatever...

    • @nilsbruhner1983
      @nilsbruhner1983 Před rokem

      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 Před rokem

      @@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
    @bestcakesdesign Před 3 lety

    Is matlab free