Course Overview

Robotics Software Engineer Nanodegree

Elements of Robotics

The process by which any robot performs any required task can be broken down into three broad steps:
* Perception
* Decision Making
* Action

Gazebo Basics

This involved hands-on practice with the Gazebo Simulator, by designing a custom differential drive mobile robot and a world environment to house it in.

ROS Essentials

Topics covered:
* Packages and Catkin workspaces
* Command-line utilities
* Nodes, Topics and Messages
* Services

Path Planning and Navigation

1. Discrete/Combinatorial Methods: Explicitly discretize the robot’s workspace into a connected graph, and apply a graph-search algorithm to calculate the best path.
* Discretization (Roadmap, Cell Decomposition, Gradient Field)
* Grid Search (Uniform Cost, A*)

References:
* Heuristics Guide
* Pathfinding Visualization
* MovingAI A* Variants
* Variants of A* - Stanford

2. Sample-based methods: Instead of discretizing every segment of the workspace, take a number of samples and use them to build a discrete representation of the workspace.
* Probabilistic Roadmap
* Rapidly Exploring Random Tree
* Path Smoothing

References:
* A Comparative Study of Probabilistic Roadmap Planners
* Path Planning for Non-Circular Micro Aerial Vehicles in Constrained Environments

3. Probablistic methods: Takes into account the uncertainty of robot motion.
* Markov Decision Processes
* Value Iteration Algorithm for finding the optimal policy to the MDP