This course offers a comprehensive introduction to robotics software development. Students learn how to employ widely adopted programming tools in robotics, including the Robotics Operating System (ROS), enabling students to apply techniques related to the physical embodiment of robots.

  • Lecture TA: Abdalla Eslam (100066889@ku.ac.ae)
  • Lab TAs: Suma Rao, Abdelmoamen Ali, Mohamed Ali

Lecture Progress

Week Topic Slides Comments
Week 1
(25
- 29 Aug)
Lecture 1: Introduction to robotics, computer systems and software development with an emphasis on sustainable criteria such as execution time and effective use of computing resources.
Lecture 2: Introduction to Linux; Basic Linux commands
Lecture1
Lecture2
Python Revision: Unit 1-4
Week 2
(1 – 5 Sep)
Lecture 3: Linux File System.
Lecture 4: Bash Scripting.
Lecture3
Lecture4
Additional Linux material
Week 3
(8 – 12 Sep)
Lecture 5: Running Python scripts in Linux; Brief Python 3 Revision; Python Exception (Error) Handling.
Lecture 6: Creating custom packages; Python Libraries: Numpy.
Lecture5
Lecture6
 
Week 4
(15 – 19 Sep)
Lecture 7: Python packages: Matplotlib; Python User Interface: Tkinter.
Lecture 8: Object Oriented Programming I
Lecture7
Lecture8
 
Week 5
(22 – 26 Sep)
Lecture 9: Object Oriented Programming II: Inheritance, Composition, Polymorphism, Abstraction
Lecture 10: Introduction to Computer Networks.
Lecture9
Lecutre10
Design Patterns
(videos)
Git - Videos
Week 6
(29 Sep – 3 Oct)
Quiz 1 – Tuesday 30 Sep.

Lecture 11: Computer networks in Linux; Introduction to Robot Operating System (ROS); Navigating ROS file system, Creating a ROS package, Understanding Topics.
   
Week 7
(6 – 10 Oct)
Lecture 12: ROS Publishers and Subscribers, Writing ROS Nodes in Python (and C++).

Lecture 13: Creating Launch files; ROS QoS; Recording and playing back data.
   
Week 8
(13 – 17 Oct)

*17 Oct - Mid Grade Due
Lecture 14: Data Visualization in RVis2; Sensor Visualization; Unified Robot Description Format (URDF) files

Lecture 15: Creating a custom interactive visualization UI with Tkinter
  By Syed




By Hamdy
Week 9
(20 – 24 Oct)
(Midterm Exam - Tuesday 21 Oct).

Lecture 16: Introduction to Gazebo simulation, ROS TF and ROS URDF.
  Midterm


By Syed
Week 10
(27 – 31 Oct)

*31 Oct Last day to drop w/”W”
Lecture 17: Building new environments in Gazebo and deploy assets, RViz visualization.

Lecture 18: Introduction to ROS Services and Actions.
   
Week 11
(3
– 7 Nov)
Lecture 19: Defining custom messages and services.

(Quiz 2 – Thursday 6 Nov).
   
Week 12
(10 – 14 Nov)
*Abu Dhabi Autonomous Week 10-15 Nov
Lecture 20: Introduction to Cloud Robotics: basics of web technologies: HTTP, HTML

Lecture 21: Cloud Computing: visualizing and controlling robots via REST API; Python Flask Library.
(Assignment Issue – Thursday, 11 Nov).
   
Week 13
(17 – 21 Nov)
Lecture 22: ROS Control using Gazebo.
(Quiz 3 – Tuesday 18 Nov).
   
Week 14
(21 – 25 Nov)
Lecture 23: ROS Navigation Stack in Gazebo.

Lecture 24: Robot Control and Visualization via WebAPI. Best practices for remote robotics command and control.
(Assignment Deadline: Friday 25 Dec at 11:59 PM).
   
Week 15
(1 – 5 Dec)

5 Dec - Last Day of Classes

* 18 Dec - Final Grades Publish
Lecture 25: Robotics System integration under sustainability criteria and resource constraints (low-cost robotic devices).

continuous integration (CI) and continuous delivery (CD)

Lecture 26: Vim champoins day
   

Lab Progress

Week Topic Comments
Week 1 No Lab  
Week 2 Safety instructions and Lab Rules. Downloading Linux: dual boot  
Week 3 Intro to Linux and bash scripting  
Week 4 Python Packages: Numpy, tkinter, Matplotlib  
Week 5 OOP in Python  
Week 6 GIT tool, VS code, code refactor  
Week 7 ROS2 - Workspace organization, Writing Publisher/Subscriber nodes, Launch file.  
Week 8 No Lab  
Week 9 Visualizing URDF files in RViz2  
Week 10 Simulating URDF model on Gazebo  
Week 11 Obstacle avoidance in URDF robot  
Week 12 Understanding ROS Services  
Week 13 Project implementation  
Week 14 Final Project Demonstration  
Week 15 No Lab