Transcript for:
Robot Mapping Course Notes

let's simply start welcome to the course on robot mapping so today I would like to give first very very short introduction on what we are going to do here in that course so which topics do we cover and then give short and rather informal introduction into road mapping so some of you have attended the robotics one-chord last term so some of the concepts you see here will look familiar although we dive much more into the details and also cover an additional paradigm which hasn't been addressed in the robotics 1 course last year and we actually will spend most of the time this new topics but some of the things you will see here may sound familiar but as I said we got most of the details and my plan is also to do more hands-on work so there's more programming homework from programming assignments for you to really develop in the end state-of-the-art systems forward mapping so roughly the topics we are going to cover here and the courses first asset introduction to simultaneous localization and mapping and then we will revisit the Kalman filter and all his friends not all his friends but a large number of his friends so that's the extended Kalman filter the unscented Kalman filter and then we also look into information filters which is basically Kalman filtering in information space so we kind of using the inverse form of the Gaussian distribution which we used in the common filter but we will start all that from the basics on so even if you have not attended the robotics one course there is more material here then in the introduction to mobile robotics course and we will go bit more to the details but we will start everything from scratch so there's no background knowledge that you need to have but it may help you've seen things or the basic concepts already before then we look into particle filtering and but focus here especially on the aspects of particle filters for robot mapping for slam and these are mainly the raw black last particle filter which we go to the details and then we start with error minimization approach and there is something I guess most of you haven't heard before or don't know anything about and these are the let's say most frequently used techniques if we look to robot systems today or talks at conferences that address robot mapping they most of them actually rely on these least square error minimization principle for building accurate maps of the environment and we look we look in two different flavors of these slam systems these are hierarchical approaches these are techniques which deal with error in the input data so the input data is imperfect as all data as if it is collected with sensors and has let's say very very large errors then we look into what's called a slam front-end so how do robots actually interpret the sensor data how does a rack see a landmark how do they rear eken and mark in order to make data Association so to say what I see what I see now is something what I've seen whatever an hour ago and in order to make that Association of their observations and if there is enough time so these last three aspects here depend on time we will also look into appearance based approaches and I will probably also are they wanted to go a little bit more into the special aspects of connect based slam which is something which came up over the past few years since the Kinect sensor is available that most of you know which is a camera and at the same time a quite nice depth sensor so you have visual information and depth information available at the same time and this allows to build quite accurate high resolution models and at the same time this sensor comes at a very very low price as it is mainly used for techniques in for for gaming so the sensors typically cost 100 120 euro and so you can can actually buy this sensor at a very cheap price and use it for doing slam so what's what do I want to do with this core so what's my host my kind of intention behind that I would like to give you an introduction to robot mapping and slam and the idea is that after you have attended that course you kind of know all the key milestones that happened over the past whatever 20 years in robot mapping so that you of course you will not know every single technique that's and the course would be much longer but at least you should know the key milestones understand the key concepts of robot techniques so if you go to a conference and your tender old mapping talk is at least have an idea what the person you see there is talking about you should be able to understand not fully understand but it is get the key idea what's kind of the novelty they are presenting and why is that what you see they are probably cool and so that's kind of my main focus too for that course and I would also like to have or to give you some hands-on experience hands-on experience it means that you actually implement systems on your own and that may be a bit challenging therefore we typically provide frameworks here where let's say some of the boring functionality is already provided and that you can focus kind of on the key aspects of the core method the core algorithm and because whenever you implement those algorithms yourself you typically see that there is often the potential mismatch between what's written the textbook and what you really need to implement because they are some implementation details which turn out to be pretty important and if you understand that you also typically get a deeper understanding of the algorithm itself what the problem of this algorithm does it suffer from numerical issues and all these things that's something you typically learn and actually building a system yourself and that's why we at least for the graph based approaches and for the common filter based approaches really would love you to implement the stuff on your own also for the particle filter we will have some hands-on work so that you really implement such systems yourself and be able to understand them and get a deeper understanding of that material so when there are any questions just interrupt me so more interactive discourses to be the nicer so what do I expect from you in order to do that so you should have some basic math skills that includes some basic linear algebra so you should know how to manipulate a vector how to multiply a matrix with the vector and you so you should have at least some knowledge of linear algebra it doesn't mean that you're an expert in linear algebra and have attended whatever a one-year course in linear algebra that's not what I expect and what we are going to need but should be familiar with the concept of vectors different products how to multiply matrices what's the Jacobian so these are aspect that I expect you to know in some of those situations let's say for the jacobian novel kind of reintroduce them explain it quickly what it is but if you think you have let's say you miss some capabilities in the context of in algebra it may be good to revisit them and the second thing we look into a probabilistic concept so most of the slam techniques that we are going to discuss here are probabilistic techniques what are probabilistic techniques prolific techniques or techniques which use probabilities and that typically means that we have an explicit representation of the uncertainty and that's one of the key advantages for those mapping techniques as all senders are affected by noise whenever the sensor which observe some aspect of the world this data is typically noisy or and our algorithms which make this decision on this data also is not free of errors and therefore these explicitly introducing the notation of uncertainty in two approaches helps us to the more robot system and make better decisions and that's a reason by probabilistic concepts will be used in this course so things like what's the probability distribution what is Bayes rule so some of the very basic things you should actually know and if this is not the case you should actually revisit them so take whatever there's an introduction lecture in the robot mapping core in a sorry a robot mapping course introduction mobile robotics which is probably two or three hour course checked on four or five five probably where there's kind of you start from the axioms of probability theory derive the basic rules that's what you need don't need more but this is something I expect you to know you should have basic programming skills this is just nothing you actually need in the lecture here to understand the lecture but that's something you need or to be able to complete the homework assignments these homework assignments are free so you don't have to do them you can participate in the exam without ever having seen one of the exercise sheets or homework assignments that's an offer that we give to you that you can do the homework assignments we're going to grate them actually an accumulator and puppets and energy so two guys sitting there in the back they will take care of the exercises so they will make the homework assignments that will actually correct your home work assignments and give you feedback on what's wrong what you should improve in your assignments and I give this an offer to you because it's a specialized course I'm not going to force you to do these homework assignments feel free to do them I encourage you to do them people who do them at typically bettering the exam but it's absolutely free so there's no force so no one forces you to actually do the homework assignments but so that they highly recommend it program programming will be done in octave which is a free version of MATLAB at least the basic functionality there that's what we need if you say I really hate that I want a program whatever in Java feel free to do so the corrections may be suboptimal in this case because we have or we designed this course to work with octave and the stuff the own work we give stupidly easily done or not too complicated to be done with octave if you do it another programming language you may need some external libraries or if you want to implement the whole map frame break yourself that's challenging so we encourage you to use octave but you can use anything else if you want to because it's kind of it's it's your choice what you want to do how you want to learn that course as I said it may be useful or is useful to have attended the introduction to mobile robotics course but this is not an all-in requirement so whenever I use something from that course I will give you the pointer to the explicit course material I will make a short repetition on whatever this is a sensor model and things our models are used for doing this or that and if you need more information about that please do that course the first material but I try to make it a self-contained course so even if you have not attended introduction to mobile robotics you will be able to understand the course and perform very well so there's no we don't build up on a lot of material question or okay perfect exam will be an oral exam so at the number of students here is not too huge we typically do oral exams one by one and then ask you questions about the material we have done here the most important thing for me is that people do not whatever it is would say stupidly learn but they should understand the material of course it's helpful to have basic concepts at hand and learn so whenever they ask whatever the basic equation of what a base filter is that's something you need to know by heart in order to be able to do the course well so some of the things actually it's helpful if you have learned them and you know them but for me the most important things that people can actually use their knowledge to solve new problems to transfer to new situations or when I asked you what happens if you have such a system and you actually change this component to a completely new component you have never seen before can actually make the transfer of saying what needs to be changed in this system in order to to build a working robot mapping system so it's much more important for me that you understood the material and therefore the homework assignments are mainly programming because I believe that through programming things you actually get a wide deep understanding of what you're doing and they are less theoretically theoretical homework assignments and yeah that's kind of the style in which we are going to do that the exam will be in the explanation period so the in the in the next term typically will be one or two days where all the exams will take place yes please German or English so I can't speak anything else in German English you can or at least at a level where I can actually great what you understand what you say and great you so therefore you can choose if you want to do that in English one driven if you want to do it in German let me know beforehand because depends on the person who is joining the exams of the second person around I just need to make sure this person speaks German as well for the protocol that's the only constraint that we have so who have you actually have a tenet of introduction to robotics last term or interim to three or four people okay that's fine so it actually means that I will spend probably a little bit more time on the concept that we actually use from production to mobile robotics to give you kind of a good start so lecture takes place one day so you all made it here 10 to 12 exercises Wednesdays 2 to 4 whereas this Wednesday we will actually have a short lecture in the beginning and a short exercise and for this exercise it's useful if you bring your own notebook where octave installed so that you can do some hands-on work in the course if you have problems you can directly ask kind of a bridge here to to help and so that's pretty useful if you have a notebook bring your own bring this notebook and make sure you have octave installed so you can actually within the course worker within the the tutorial already work on that and that you are also able to kind of follow the introduction to octave which actually will be given on Wednesday okay there's also a question-and-answer forum which I just set up a Google Groups you'll find under this URL this URL is also available on the course home page where you can actually post questions and we are trying to answer these questions or if you see a question that someone else has posted feel feel feel free to reply to that as well but we don't wanted to have here as kind of solutions to exercise the speakers actually everyone should be encouraged to do it himself so don't post solutions but you have any questions in there feel free to ask that question leaves a dumb question so this allows us to actually first see what people haven't fully understood and it may be more convenient to do for you to ask it via email so that we can answer that and instead of coming to office but again you're invited come to my office if you have any questions visit a Brazil or eine if you have any questions you want to know any details or something you haven't understood that's what we are here for so users make this an interactive course ask us questions and feel free to do that outside the course as well so visit us send us email or preferably through that through the forum beakers and other people who actually contribute from the answer as well the only thing if you post there please make sure you have a very precise question so if you have something when you can also say I haven't understood anything could you please repeat this and this in this concept that's also fine but if you have a concrete question try to formulate that answer a bit question as concrete as possible that's something we experienced over the last years the time times you have very very foggy questions page on the person will know a B C or D and it's then kind of feel bored to answer all all four questions and so make sure your question is actually pretty precise it actually helps us to answer and also to answer quickly the course is mainly based on one book that is pro basic robotics as some of you may have seen so at least the first part of the course is taken from that book and also all the notation we use in the course is in line with that book you find a book in the library there should be at least 12 copies available here in the library up there and so there should be enough material for the course pretty good textbook I really recommend it it explained concepts very well and so so I like I like it a lot and therefore a large fraction of the course material is based on that book the second part on the in that course when it goes to motor graph based approaches we rely not that much on that book anymore and but there will be other resources available so everything else in the book is available as PDF files on the website the course websites for all papers all tutorials on certain aspects are available there you can download them the only thing is which we couldn't put online is actually PDF of the book so you can either buy it or it's available in the in the library and one thing if you find something in the book which you think that's really really weird this is website progressive robotics or org and there's an errata list for that book so depending on the Edition that you have there may be some errors in there even the third edition which is the current one has still some errors and you find an detailed error list there so whenever you have something which you say I really don't understand that it must be wrong before you spend too much time look up the website look up the errata page and that actually may simplify your life a lot again if you have any feedback about the course just talk to me talk to right now dr. Fabrizio send us email whatever you prefer the more interactively scores gets and the more feedback we get from your site the easier we can change things so last year was a quite a direct of course when I taught it the first time and I like to have the kind of interactive style of you asking questions something you haven't understand interrupt me I will try to answer that or if you if you want have anything change to say whatever you speak too fast or your style of teaching sucks let me know let me know what you would like to have changed I will try to take that into account obviously won't do it for every comment but most of the comments have some truth in there and I try to actually take that into account into to improve what I'm doing here so whenever you have some some things that you dislike here let me know if you don't tell it to me and nothing will change because I won't know it if you let me know what you dislike you I'll try to change that are there any questions from your side