Software Roadmap
A roadmap for robotics software development
Week 1: “Hello World!” — How to Talk to Robots
Objective: Get comfy with C++ and Python, learn to tame the electrons, and impress robots enough to make them obey your commands.
Resources
-
C++
- Learn C++ (It’s not just for wizards)
- Recommended Reading: Start with Chapter 1 (Basics). Stop at Chapter 3 once you've mastered making loops dance.
-
Python:
- Python Crash Course by Eric Matthes
- Suggested Reading: Skim through Chapters 1–3 and get cosy with variables, loops, and indentation.
- W3Schools Python Tutorial
-
Introduction to Electronics:
- Brush up on voltage, current, and resistance—the holy trinity of electronic sorcery. Try SparkFun’s Handy Tutorials for an easy-to-digest start.
Assignments
-
C++:
- Write a program that performs basic arithmetic (addition, subtraction, multiplication, division).
- Implement a “Guess the Number” game: the computer picks a random number, and you guess it.
-
Python:
- Build a script that calculates the factorial of a number using recursion.
- Solve Level 1 questions from the Python Challenging Programming Exercises Repo.
Week 2: Git, GitHub, and Terminal
Objective: Master the essentials of version control with Git and GitHub, and become comfortable navigating through the Linux terminal.
Resources
-
Introduction to Git and GitHub:
-
Basic Terminal Commands:
- Master common commands:
cd,ls,pwd,mkdir,rm,cp,mv,nano. - Linux Terminal Basics Guide
- Master common commands:
-
Git Basics:
-
Linux Fundamentals:
Assignments
- Linux Challenge: Complete the OverTheWire Bandit game up to Level 15 to master the CLI.
Week 3: Robot Operating System (ROS 2) Fundamentals
Objective: Setting up and working with ROS 2 Humble Hawksbill.
Resources
- ROS Tutorials: Official ROS Wiki
- Installation: Setup Guide for Ubuntu
- Video Tutorials:
URDF (Unified Robot Description Format):
Gazebo Simulation:
Navigation and SLAM:
TurtleBot3 Simulation (The Gold Standard):
