ROBO 202 Software Development for Robotics (Fall 2025)
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: Linux OS I: Introduction; Basic Linux commands |
Lecture1 Lecture2 |
Python Revision: Unit 1-4 |
| Week 2 (1 – 5 Sep) |
Lecture 3: Linux OS II: Linux File System. Lecture 4: Linux OS III: Bash Scripting. |
Lecture3 Lecture4 |
Additional Linux material |
| Week 3 (8 – 12 Sep) |
Lecture 5: Python Essentials I; Brief Python 3 Revision; Running Python scripts in Linux; Python Exception (Error) Handling. Lecture 6: Python Essentials II: Creating custom packages; Python Libraries: Numpy. |
Lecture5 Lecture6 |
|
| Week 4 (15 – 19 Sep) |
Lecture 7: Python Essentials III; Python packages: Matplotlib; Python User Interface: Tkinter. Lecture 8: Python Object Oriented Programming I; Python class, methods, contractor. |
Lecture7 Lecture8 |
|
| Week 5 (22 – 26 Sep) |
Lecture 9: Python Object Oriented Programming II; Inheritance, Composition, Polymorphism, Abstraction. Lecture 10: Computer Networking I; network protocols and standards; |
Lecture9 Lecutre10 |
Design Patterns (videos) Git - Videos |
| Week 6 (29 Sep – 3 Oct) |
Quiz 1 – Tuesday 30 Sep. Lecture 11: Computer Networking II; understanding IPs and Ports; Linux networking commands. |
- Lecture11 |
|
| Week 7 (6 – 10 Oct) |
Lecture 12: Computer Networking III; Basics of socket programming in Python; ROS 2 (part 1): Introduction to Robot Operating System (ROS). ROS Publishers and Subscribers, Writing ROS Nodes in Python (and C++); Navigating ROS file system, Creating a ROS package, Understanding Topics. Lecture 13: ROS 2 (part 2); Minimalistic ROS nodes; ROS over network; Creating Launch files; Recording and playing back data. |
Lecture12 Lecture13 |
|
| Week 8 (13 – 17 Oct) *17 Oct - Mid Grade Due |
Lecture 14: ROS 2 (part 3); Data Visualization in RVis2; Sensor Visualization; Unified Robot Description Format (URDF) files Lecture 15: ROS 2 (part 4); Creating a custom interactive visualization UI with Tkinter |
Lecture14 Lecture15 |
By Syed and Abdel Moamen By Hamdy |
| Week 9 (20 – 24 Oct) |
(Midterm Exam - Tuesday 21 Oct). Lecture 16: ROS 2 (part 5); Introduction to Gazebo simulation, ROS TF and ROS URDF. |
Midterm Content: W1 - W7 By Abdel Moamen |
|
| Week 10 (27 – 31 Oct) *31 Oct Last day to drop w/”W” |
Lecture 17: ROS 2 (part 6) Building new environments in Gazebo and deploy assets, RViz visualization. Lecture 18: ROS 2 (part 7); Services and Actions; ; ROS QoS |
||
| Week 11 (3 – 7 Nov) |
Lecture 19: ROS 2 (part 8); Defining custom messages and services. (Quiz 2 – Thursday 6 Nov). |
||
| Week 12 (10 – 14 Nov) *Abu Dhabi Autonomous Week 10-15 Nov |
Lecture 20: ROS 2 (part 9); ROS Control using Gazebo. Lecture 21: ROS 2 (part 10); ROS Navigation Stack in Gazebo. (Assignment Issue – Thursday, 11 Nov). |
||
| Week 13 (17 – 21 Nov) |
Lecture 22: Cloud Robotics I; Introduction; basics of web technologies: HTTP, HTML (Quiz 3 – Tuesday 18 Nov). |
||
| Week 14 (21 – 25 Nov) |
Lecture 23: Cloud Robotics II; Cloud Computing; visualizing and controlling robots via REST API; Python Flask Library. Lecture 24: Cloud Robotics III; Robot Control and Visualization via WebAPI. Best practices for remote robotics command and control. (Assignment Deadline: Friday 25 Nov 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 |