Getting started with robotics is confusing. Robotics is an interdisciplinary field and people think of many different things when they are trying to learn about it. For example, by google searching "getting started with robotics" gives me the following top three results:
- How To Start With Robotics? - YouTube
- Robotics for Kids (and Adults) – Getting Started and How to Progress
- Getting Started in Robotics - ROBOTS: Your Guide to the World of Robotics
They talk about learning skills related to the fields of mechanical engineering, electrical engineering, and computer science. At first, it just felt overwhelming. Reading each of them slowly again, they were great tutorials especially because they all shared one great message--"learn by doing projects" (there was even a book named with a similar spirit!). I 100% agree with the message, I think people should learn robotics by doing projects. In fact, I recently shared my curated list of opensource (and other) robotics projects for those who are interested in building robots. Because I'm a programmer by training, one additional suggestion I like to add is "start by working with a simulator". Working with hardware is fun but it can be extremely time-consuming so by working with a simulator first you can feel out the robot and identify potential problems early. Projects like MuSHR and bobble-bot are great because they provide robot simulators as well as detailed instructions for building robots. PythonRobotics is another great entry point for learning about robotics algorithms. The repository contains provide tiny, simple environments for testing the algorithms which are great for learning purposes. Here is a list of ROS-based simulators that I've curated in ROS Development studio, a cloud service that allows you to work on ROS projects in browser. In a similar spirit, I encourage using a single board computer such as Raspberry Pi or NVIDIA Jetson products instead of using a microcontroller like Arduino. Programming a microcontroller can be fun and it can allow you to develop a solution that is highly tailored to your use case, but for learning purposes, it can become a rabbit hole that prevents you from completing the project you started. However, if your goal is learning mechanical or electrical engineering my advice (rather opinions) is not for you.
Finally, I believe getting involved with robotics communities is effective for learning. The below list could be good entry points for learning about software-focused robotics
- github repos with #robotics tag
- ROS discourse
- Foxglove blog
- Balena blog - they provide less robotics and more IoT-centric contents
the list below for learning about electronics-focused robotics
and the list below for learning about hardware-focused robotics
This may be a bit off topic, but since people relate "robotics" with AI/ML computer science research, it might be fun to skim robotics-related papers in open paper review and curated paper list websites:
- https://paperswithcode.com/ - one note: not all researchers are great coders/documenters.
Talking about skimming, it might be inspiring to skim the class materials from CSE 478: Autonomous Robotics. Unlike many other class materials, their class slides provide application examples of introduced concepts with an open-source autonomous mobile robot platform MUSHR.
I believe now is time to learn about robotics and I hope this blurb can be helpful to aspiring roboticists.