This repository contains Project done for Nanodegree in Robotics Software Engineer by Udacity
Course Link: Robotics Software Engineer
Credentials URL: Link
There are a total of 5 projects.
Design a Gazebo World environment including multiple models and use it as a base for the rest of my projects.
- Launching a Gazebo Environment
- Designing in Gazebo
Design and build a mobile robot, and house it in a world. Next, program the robot with nodes and services using C++ in ROS to chase a white colored ball.
- Building Catkin Workspaces
- ROS node creation
- ROS node communication
- Using additional ROS packages
- Gazebo world integration
- RViz integration
- rqt_graph for debugging
Interface the mobile robot with the Adaptive Monte Carlo Localization (AMCL) algorithm in ROS to estimatethe robot's position as it travels through a predefined set of waypoints, and tune different parameters to increase the localization efficiency of the robot.
- Implementation of Adaptive Monte Carlo Localization in ROS
- How to generate a map using pgm_map_creator
- Using move_base node package
- Understanding of tuning of parameters
An application of rtabmap-ros package for simultaneous localization and mapping (SLAM) of a mobile robot. This project assumes known robot pose to map an environment. The robot uses camera data to recognize previously visited regions in the map using a graph-based SLAM approach known as Real-Time Appearance Based (RTAB) mapping (under the hood, bag-of-words is used for detecting loop closures). More information on this can be found here.
- Implementation of SLAM in ROS
- How to use rtabmap_ros package to generate database
- To view a database file using
rtabmap-databaseViewer
Use a SLAM package to autonomously map an environment and interface robot with a path planning and navigation ROS package to move objects within an environment.
- Advanced ROS and Gazebo Integration
- ROS Navigation stack 7
- Path Planning
- Shell Scripting
- SLAM algorithms