Trying to Teach Freshmen Robotics 1

Edit: Rephrasing

Week 1: introduction and getting your hands dirty on software

I recently undertook the task of introducing a bunch of freshmen to robotics. I’ll keep updating this as they progress.

Here’s the first email that I had sent to a mentee (with some bits removed).


A short introduction - I’m Vineeth, a UG4 CSE Honours student under Prof. Madhava Krishna. I’ve worked on Visual Place Recognition, Video Object Detection, Object Identification and Localization, and am currently focused on building a navigation stack (lots of robotics terms - you’ll learn them as you go).

Considering that you probably won’t be doing courses such as DASS and ISS (some introductory courses for CS majors at IIIT on software) that give you a glance into Software Engineering, and since it is vital part of running any experiment successfully, I would like to get you started off with reading the following (skim, don’t go much in-depth):

  1. An Introduction to Abstraction (link)
  2. Writing Modular Code (link)
  3. Python for Research (link, please skim this - see the headings and figure out whether you know the general information in it)

I expect this to take 2-3 days at most, and will then give you resources for:

  1. ROS (Please dual boot with Ubuntu 20 for this; If you use some other Linux Distro, check compatibility)
  2. Basic Optimization Theory (Brush up on your linear algebra for this)
  3. Neural Networks and DL (Basics of ML)
  4. Post this, I would like to introduce you to some concepts in computer vision (such as camera matrices, key-point descriptors, multi-view geometry, etc.), take you into larger networks such as CNNs & Transformers, and SLAM.

Installing ROS

  1. Set up dual boot with Ubuntu 20.04 (make sure the version matches).
  2. Install ROS following the instructions for Noetic.
    • If you’re adventurous, try Zorin OS. Its installation is similar to Ubuntu.
  3. For a modern approach, consider Docker. While dual booting is recommended for ROS, Docker is a valuable and intriguing tool worth exploring.

Week 2: getting started with ROS

A very, very gentle introduction

Check this out. Find the “ROS Basics in 5 Days” course (choose either C++ or Python) - this course isn’t entirely free, but the parts that are very nicely explain the fundamental uses (and quirks) of ROS.

Reading the docs

Familiarize yourself with the official ROS Noetic documentation. Read

While doing this, you should be putting a particular emphasis on topics, services and visualization tools.

Week 2: The next bits - Gazebo

  1. Install and read about Gazebo from the Guided B Tutorials.
  2. From the Getting Started page, explore:
    • Quick Start
    • Gazebo Components
    • Gazebo Architecture
  3. Build a robot model (Tutorial)
  4. Add a sensor to the robot (Tutorial)
  5. Attempt this project: YouTube Tutorial
    • Use LLMs (e.g., Perplexity) to convert ROS2 commands to ROS-compatible ones.
    • Download project files from the video description.

Weeks 3 and 4: MLLLLL

Essential Reading

  1. A Short Introduction to Machine Learning
    • I highly recommend this, given my affinity for LessWrong’s content.
  2. Mathematics for Machine Learning
    • Quickly review the linear algebra sections before diving into the rest of the book.
    • Linear algebra is incredibly cool—not just for ML, but also for robotics! Concepts like transformations, projections, and matrix factorizations are the backbone of everything from optimizing neural networks to understanding camera geometry in robotics. A strong foundation in linear algebra, optimization, and related math ensures you’re well-equipped to tackle complex problems in both fields.

How much time should it take you?

  • Brief review: 2-3 days
  • In-depth study: 2 weeks (2 hours daily)

Next Steps

Once you’ve completed this, reach out to begin with PyTorch. This book forms the foundation for understanding ML, so take it seriously.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • A project on the GFS