This course will introduce students to programming autonomous mobile robots using ROS with a special emphasis on designing a robotic system that can locate and navigate independently in an unknown environment. A 3D dynamic simulator, i.e. Gazebo, will be used throughout this course. The assessment is based on the development and implementation of path planning algorithms which allows a robot to autonomously navigate in an unknown environment. The topics to be covered include: simulating robot models in ROS, making an autonomous robot in ROS, path planning, obstacle detection and mapping, ROS programming with Python.