furio1999 / 2D_SLAM

Project for Probabilistic Robotics course at Sapienza University of Rome

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2D_SLAM

Project for the course in Probabilistic Robotics at Sapienza University of Rome

Background

How do we navigate an autonomous robot in an indoor scenario? One of the main techniques is to fill the environment with known landmarks, estimating the robot position by simple heuristics, such as latemax. But this naive approach leads to the common phenomenon of "dead recking", which is the generation of a trajectory which diverges from the actual one. In this work we will show how to handle this scenario using a Least Square Approach to optimize the trajectory, closing the trajectory loop.

Material

  • Dataset (in .g2o format) composed of : 2D range measurements, landmarks positions (only ground-truth), edge transitions, Robot Poses
  • Wheeled Mobile Robot to provide the data

Approach

choose whether to use absolute positions or pose-pose relative displacements

# in main.m
data="poses" # compute initial trajectory using absolute poses
data="edges" # compute initial trajectory using transition measurements
method="poses" # Do Least Squares on range measurements only
method="edges" # Do least Squares using both range and odometry measurements

Launch the main file

octave main.m

Range-Only

Landmark Map

Firstly, we generate a map of the real and estimated landmark positions Datasets_naive_map_plot

Trajectories

Then, we plot the initial guess and the optimzed trajectory. Datasets_naive_traj_plot

As we see, it's better to apply a lest squares approach to generate a more accurate trajectory. In particular, given the state (x,y,θ) ∈ SE(2), we used a Least Squares approach equipped with a BoxPlus operator to update the optimal solution respecting the manifold gemometry relations. In the next paragraph, we show more clearly the difference between the optimized and naive trajectories.

Trajectories with Calibrated Odometry

From the previous graph, it seems that the computed optimized trajectory follows the ground-truth, except for a rototranslation. Given the hypothesis of calibrated odometry, I provide a transformation vector to map the computed trajecories into their original pose. Datasets_naive_cal_traj_plot

Range and Odometry

Here I show the results using odometry measurements too

Landmark Map

Datasets_latemax_map_plot

Trajectories

Datasets_latemax_traj_plot

About

Project for Probabilistic Robotics course at Sapienza University of Rome


Languages

Language:MATLAB 94.2%Language:M 5.3%Language:C++ 0.5%