Skip to content

MikeS96/robotics_software_nd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robotics Software Engineer Nanodegree Projects

This repository is intended to be used as a start-point for future robotics-based projects. All the content is based in the Nanodegree program provided by Udacity.

Description

The content of this repository is divided in different sub-folders where each one contains a specific topic. The following description will describe the content of each folder.

  • Gazebo Basics: This folder contains the basic steps to start working with Gazebo, how to use the model and building editor, plugins in Gazebo and more.
    • myrobot: Custom package to understand the workflow of Gazebo.
    • project1: Gazebo package with a world created using the building editor.
  • ROS essentials: Essential elements of robotics, Introduction to ROS, subscribers, publishers, services, among others.
    • simple_arm: Interacting with a robotic arm and creating nodes with publisher, subscribers and services to operate based on the current image obtained.
    • chase_it: ROS package with a wheeled robot in a custom Gazebo world that chases a white ball, modifying the wheels' speed.
  • Localization: The Kalman Filter (KF), Extended Kalman Filter (EKF) and robot pose relative to a known map with Monte Carlo Localization (MCL).
    • kalman_filters: Step-by-step implementation of a Kalman Filter in C++ from the motion update to measurement update in 1d and multiple dimensions.
    • kf_lab: Used the robot pose EKF ROS package to fuse IMU and Odometry data. The output of this package is the pose of the robot.
    • mcl: Monte Carlo localization with particle filters and computation of belief in C++.
    • mcl_lab: Implementation of the MCL algorithm in a 2d world using C++.
    • where_am_i: Used the Adaptative Monte Carlo Localization to drive a wheeled robot in a previously maped world.
  • Mapping and SLAM: Ocuppancy grid algorithm and different variants of the SLAM algorithm.
    • occupancy_grid_mapping: Implemented the Ocuppancy grid mapping algorithm in C++ and a simple way to fuse maps from multiple sensor sources.
    • gridbased_fastslam: Used the gmapping ROS package to map a simple environment. This package is based on the Grid-based FastSLAM algorithm.
    • map_my_world: Usage of RTAB-Map SLAM (Graph SLAM) to map a custom world.
  • Path planning and Navigation: Implementation of the A* algorithm, classical oath planning techniques and sample-based methods.
    • classic_path_planning: Minkowski sum implementation in C++ with triangular shapes.
    • path_planning_lab: Implementation of the A* algorithm in a real-world environment.

Note: Some of the folders were directly taken from the Udacity's repository.