Skip to content

oubrejames/ekf_slam_from_scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ME495 Sensing, Navigation and Machine Learning For Robotics

  • James Oubre
  • Winter 2023

Package List

This repository consists of several ROS packages

  • nuturtle_description - contains robot description for Turtlebot and launch files to show in Rviz
  • turtlelib - C++ library containing 2D transformation functions, the differential drive robot class, and important EKF SLAM functions
  • nusim - package to simulate environment and Turtlebot SLAM
  • nuturtle_control - contains nodes to control the diff drive robot, keep track of its odometry, and move the robot in predefined patterns
  • nuslam - package that handles EKF SLAM for the Turtlebot

Demonstration

EKF SLAM Simulation

Everything in red represents the ground truth of the robot. The red walls and obstacles represent the "real" obstacles. The red robot is the "real" robot.

Everything in green is a product of the SLAM algorithm. As obstacles get detected, they are added to the map in green.

The blue robot represents the vehicle's position based on its odometry.

The yellow obstacles represent the sensor output of detected obstacles.

good_slam.webm

EKF SLAM Simulation with Obstacle Collison and Significant Correction

slam_with_correction.webm

Video of robot moving in real world through turtle_control node and the corresponding odometry in RViz

turtle_and_odom.webm

In the format (x, y, theta) the original odometry position was (0, 0, 0). After driving the TurtleBot in a circle, changing the direction twice, stopping it, and then teleoperating the robot back to the starting position the ending odometry reading was (0.15, 0.04, -0.0001818).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published