Advanced

SLAM for Small Robots

How a robot builds a map and finds itself in it

  1. 01 Where am I? Odometry, and why it always driftsA robot can count its wheel turns to know where it is. This chapter shows how, why the error only ever grows, and why that is the problem SLAM solves. Za darmo, 45 min
  2. 02 How robots move: motion models for differential and mecanum driveTurn wheel speeds into robot motion for two-wheeled and mecanum robots, integrate it accurately, and add the right kind of noise so the robot knows how unsure it is. W ramach kursu, 45 min
  3. 03 Probability for robots: Bayes' rule, Gaussians and noiseThe few ideas from probability that every SLAM method is built on: beliefs, Gaussian noise, Bayes' rule, and a complete 1D localisation filter in 30 lines. W ramach kursu, 50 min
  4. 04 Seeing the world: range sensors and the occupancy gridHow ultrasonic, time-of-flight and small lidar sensors measure distance, and how to turn their noisy readings into a map of free and occupied cells. W ramach kursu, 50 min
  5. 05 Many guesses at once: the particle filterLocalising in a known map by keeping thousands of guesses, moving them with the motion model, letting the sensor readings vote, and resampling the winners. W ramach kursu, 50 min
  6. 06 One smart guess: the Kalman filter and landmarksDescribe the robot's belief with one Gaussian, update it with the Kalman filter, extend it to 2D with the EKF and range-bearing landmarks, and see how landmark-based SLAM differs from grid-based SLAM. W ramach kursu, 50 min
  7. 07 Matching what you see with what you sawAlign two range scans to measure how the robot moved, more accurately than its wheels can: ICP with the closed-form 2D fit, its failure cases, and correlative matching on a grid as a robust alternative. W ramach kursu, 50 min
  8. 08 Building a map with a small robot and a laptopA complete pipeline: the Mecanum Omni robot measures odometry and sonar distances and streams them over Wi-Fi as JSON lines; a Python program on the laptop builds the occupancy grid with numpy and shows it live with matplotlib. W ramach kursu, 50 min
  9. 09 Coming home: loop closureRecognising a place you have been before, checking that the match is real, and spreading the accumulated error back along the whole loop with a simple pose graph. W ramach kursu, 45 min
  10. 10 Fixing the whole path: pose-graph optimisationPoses with headings, edges as relative motions with an uncertainty, and Gauss-Newton to bend the whole path into the best fit. Plus robust kernels, so one false loop closure cannot wreck the map. W ramach kursu, 50 min
  11. 11 Using the map: planning a path and driving itTurn the occupancy grid into a map the robot can drive on: decide which cells are safe, grow the walls by the robot's size, find the cheapest route with A*, straighten it, and follow it with the localiser's pose instead of drifting odometry. W ramach kursu, 50 min
  12. 12 Exploring on its own: frontier-based explorationLet the robot decide where to go next: find the frontiers between known free space and unknown space, pick the one worth driving to, plan there with A*, look, and repeat until the map is complete. Plus the frontiers that never go away, and how to give up on them. W ramach kursu, 50 min
  13. 13 Real SLAM: ROS 2, slam_toolbox and a small lidarHow a professional 2D SLAM system puts the pieces of this course together, how to feed it from your own robot with a small lidar, what GMapping, Cartographer and ORB-SLAM do differently, and a recap of the whole course. W ramach kursu, 50 min