the two things aren't mutually exclusive.
if an AI tells you "solder A to B" you're going to learn some technique whether you want to or not. Extrapolated entirely into a robotics project.. there's a lot to gain just through sheer osmosis of instruction.
I am one of those people, and I can't count how many textbooks I own, of which I've read the first few chapters, and lost interest because I wasn't doing anything, only reading.
When I can instead start doing something, as GP emphasized, I can learn the applicable concepts as they're applied, which works well for me. AI helps me do that, because it is like a textbook that follows along with me, rather than asking me to follow it. Also I ask a lot of questions.
Seconding all the people who said avoid ROS - it's not worth the effort for hobby-level stuff. It's barely worth the effort for "professional" robotics.
Also don't worry about physics too much - build your physical intuition by playing with working systems of increasing complexity.
If you were in robotics prior to 2010, you probably would have used something called Player/Stage (by some of the same people who developed ROS). Believe it or not, another big motivation for ROS was solving the (many) problems that popped up as people tried to get Player/Stage running with robots like the Pioneer 3-DX.
* robotic software projects are often abandoned, and only ROS keeps the driver packages working
* Yes it is terrible, but the alternatives are even worse
Almost all modern reasonably good platforms will already offer a tested ROS configuration. Even the UR5 had simulation and control options out of the box.
People can't avoid standards.. even the awful ones.. =3
I've seen people get sucked into ROS + simulation who end up never touching real robots. Which is fine if that's what you want to play with, but it's debatable if "ROS + sim" alone is even "robotics."
Also not a fan of simulators for simple platforms, as a lot of stuff breaks when the environment is chaotic. =3
The next person gets up and gives a talk about all the advancements in generating point clouds from optical cameras.
By far the best part is how tied to specific versions of Ubuntu each ROS release is, just getting all the packages installed and running requires sacrificing a cat while chanting Hail Mary backwards in Latin.
100% this. I had a very, very miserable time setting up two systems and trying to get them running a version that was supported. The worst part is SBCs that stop getting OS updates and become permanently locked in to a specific version. Which also forces the rest of your hardware to use the same version. Using a Jetson Nano with Ubuntu 18.04 in 2022 was lots of fun...
Last year I met a couple of university students working on a robot and out of curiosity I asked what they were using as a microcontroller and the software stack. They were running ROS. When they said they still hadn't upgraded to ROS 2 yet, I could feel their pain...
Reinventing the build chain every other year is miserable too.
Monocular feature extraction has been around for decades, but is only reliable for people that never go outside in the sun/dust/rain. =3
I'd say start playing with 3D printing and motors to make mechanisms that move (pendulums, simple walkers, ...). +1 to tinkering with the 3D printer itself (that someone mentioned) as you can learn a lot about how the machine works and figure out ways to improve it.
You've mentioned the physical aspect, but simulation could also be a good starting point. You can now very easily train RL agents in sim to say, walk, and transfer to real hardware afterwards.
Finally, if you like flying stuff, there's drones you can buy that are controlled programmatically (e.g. Crazyflie). I haven't played a lot with these, but I've seen them used to teach control and they seem like a nice, inexpensive platform to experiment with.
[1]: https://github.com/rkourdis/trajopt?tab=readme-ov-file#backf...
- Learn about micro controllers and embedded programming.
- Learn about motors.
- Learn about gears, pulleys, torque - some physics things - enough to think about how you could potentially build something.
- Build something small. Maybe a robot sunflower that follows the sun with a built in solar panel that keeps its battery charged... I dunno, I just came up with that. Or an automatic blinds opener / closer for your blinds / home curtains.
- Learn, build, rinse, repeat..
I started robotics at a young age and began with small builds with LEGO motors and sensors, getting a feel of how each one works and how to interact with them with code. Then I got to much more advanced programs with LEGO Mindstorms EV3, learned about things like PID controllers practically and even started taking part in some competitions. Next, I went to writing actual code (as opposed to block-based programming) on microcontrollers like the micro:bit (and a few years later the Raspberry Pi Pico). I deepened my knowledge of how electronics work and learned how circuits work. I eventually got into a team with a few friends and we built a human-size robot combining 3D printing, a bunch of circuitry, ROS, 2 SBCs, Arduinos, a LIDAR and OpenCV for face/object recognition. This took years of learning step-by-step to achieve.
This is obviously not the path you'd take, robotics was what brought me into programming and you're probably going for the opposite.
You're not going to build a perfect robot or electronic device from the start and you shouldn't try to either. Get a microcontroller that's newcomer-friendly and play around with it. A micro:bit mostly emphasizes on the end result, with a built-in display and sensors and many plug-and-play modules to get you going. A Raspberry Pi Pico is much more flexible, but also requires you to learn about wiring and doing more things yourself. If you prefer coding in C, go for an Arduino. An ESP32 is also a good choice. It's a good idea to get a 3D printer and learn CAD in parallel, as it's a great way for a hobbyist to create actual tools that are more than a bunch of wires.
Once you get enough experience and confidence in your skills, you'll want to get into more advanced projects. Use your knowledge to plan them out, research and learn the technologies you're going to use (you can't learn everything beforehand and each piece of hardware is something different) and enjoy the journey from prototype to finished project.
And by the way (you didn't mention it but other comments here are so I'll give you an opinion on that), ROS is nearly always overkill for hobbyist robotics projects :D
I hope that helps you start your journey!
Worth to check also https://www.printables.com/ for small cute 3d printed robot projects that you can build using stm32 or esp32 boards. You shall check Adafruit/Sparkfun like websites for dev boards, they even support micro python for quick prototypes.
https://www.hackster.io/shahizat/running-lerobot-so-101-arm-...
I think it’s solid introduction, learning by doing.
There are three reasons why "real" robotics is harder. First, to navigate unconstrained environments by means other than wheels, you need to learn a fair amount of kinematics and control theory. Second, your robot will need to build a map of the operating environment, which often requires complex sensing (lidars, cameras) and a lot of compute power. Even something as basic as a Roomba is no small feat, and these things get stuck a lot. Third, it's just hard to come up with practical applications for simple robots outside of industrial production lines.
Once you have that figured out, decide how much you want to learn. Do you want to do it the hard way, which would mean moving more slowly and working your way up from first principles and probably 3D printing or machining your own parts... or do you want to get results as soon as possible, in which case, you probably buy a Linux single-board computer and put it on top of an existing robot kit? The trade-off with the first approach is that it will take you months or years to get where you want to be. The downside of the second is that you're limited to premade kits and software components, and once you exhaust the possibilities there, you kinda hit a wall.
Our robots needed only to complete a simple task of finding the "reactor" (array of IR LEDs) on a 1x1m fenced board, but Lego more than delivered on the hardware front, because we had an IR sensor, an ultrasound proximity sensor and few other ones that we didn't even use.
Really helped to bridge the gap between theory and practice because it's one thing to program a servo motor and a completely different one to see your dead reckoning algorithm be off by a mile. Also sensors do a lof of things you don't expect.
Its succesor is named Lego Spike Prime, but I never used it, so can't comment.
A step above that I would say some kind of wheeled robot with more complex motors that have encoders, and ROS if you want to mess around with autonomy. If you have the budget for it, a stereo camera or $400 time-of-flight RGBD camera can get you pretty much full autonomy (if you configure all the ros nodes for it).
If you are into robot arms, LeRobot has a desktop robot arm kit that uses neural networks to control a robot arm with a camera for seeing the world.
If you want to learn the theory, I really like Probabilistic Robotics by Sebastian Thrun, and Modern Robotics by Lynch and Park. Those cover pretty much all of the foundational concepts for autonomous robots.
The most fun thing I think currently are drones. I have been designing and building a fixed-wing drone with autonomy and FPV capabilities. Started from zero information and just learned as I went. Plus flying drones is more fun than driving robots IMO.
I'm going to maybe diverge from some advice and say try and start with hardware connected to your laptop. That's how I started way back (during the original IBM-PC era and a Data Acquisition Card from IBM). Learn how sensors, motors and actuators work. If you were near me I'd lend you a kit I have sitting around that I got for my kids but I'm sure there are options to hook up some basic I/O (Analog and digital) to your laptop.
I would decouple the embedded aspect from this for now and really many embedded systems are running "real" large computer systems. You can build a lot on your desk and having a "real" computer will take away some of the additional hassle of dealing with various embedded platforms. Once you gain a better understanding of the components you can always move to some embedded setup.
The Art of Electronics is one book I will recommend. I would say though start with a kit and use AI or Google search to get some basic circuits going.
A modern PC as a platform is in no way helpful to learning how sensors and actuators work. You’d be spending hundreds more for unnecessary frustration.
The Art of Electronics is not a good choice for a beginner. It’s aimed at good university educated EE’s.
But ideally you would have a goal in mind. what do you want your robot to do? (pass butter?) Once you have a goal then you will be able to focus on just what you need to learn to achieve that goal.
Here's my build blog: https://crawforc3.github.io/blog/rover
Feel free to reach out if you just want to chat.
Learn about how to battery-power projects, starting with a microcontroller board and your servo.
Learn power distribution circuitry - wire gauges for given loads, etc.
Learn some useful control/animation bits, e.g. play around with an IK library.
This is more or less what led to my own first robots (a simple walker, then a more ambitious hexapod, etc.)
Second: Pick a project with modest but not trivial goal. Something that exists within the state of the art on at least most axes. e.g. make a quadcopter, make a 3d printer, or make an automated cat food dispenser. The project can be special on an axis, e.g. I want the break the drone speed record, or make the best battle bot for a weight class - but stacking too many novelties into a project compounds the difficulty.
Three: Break down the project into manageable sub tasks, starting simple then working towards integration. E.g. step 1, make a drone motor spin. Step 2, make a drone motor spin at exactly 2503rpm. Step 3, design a housing to fit four drone motors/control board/battery, etc. It's perfectly natural/common/fun to play this by ear, many projects will go back and forth between biting off more than you can chew and isolating model systems for testing.
Four: Integrate the subsystems, test, debug and most importantly repeat.
[0] The Bambu a1 mini is a perfectly competent entry-level product. And Fusion360 is a solid CAD for design side.
Building RC cars, RC quads, 3D FDM printers, and LinuxCNC/EMC 3-axis mill retrofits.
>what's handy to learn in the first place?
Depends on your learning goals, and desired platform budget.
1. Some sort of basic EE topics in a school, or Ham technician license
2. Basic project book on Arduino: blink LED, move RC servo, spin motor, and make speaker beeps etc.
3. Build cheap Arduino turtle bot kit, racing drone, and or a RC car kit
4. Build a 3D printer kit like LDOmotors voron, or join a local space to get CAD/printing skills
5. ROS tutorial to connect Arduino turtle bot kit to simulated environment
6. Courses on Forward Kinematics, Inverse Kinematics, OpenCV Machine Vision, POMDP, NN, Kalman filter, and PID motor control.
7. Build a small 7-axis robot arm path planner in ROS simulator
8. Build a Autonomous mobile Robot with your SLAM of choice, and bolt arm to turtle/tracked platform
9. Gain the wisdom of the tribe around guidance and navigation problems
10. Build some sort of walker: Heaxapod (easy), quad (challenging), and biped (hard)
11. Remember to test everything outside in sun, wind, and rain. There is a lot of expensive garbage products that only sort-of work in ideal circumstances.
Again, the path may be greatly simplified if your goal is only to use robotic platforms... rather than build something expensive. For example, the Yarbo core platform looks like a fun mid-sized project to retrofit, and defunct units are under $1.5k off auction sites.
Have fun =3
I wrote a bit about how I got Gemini to drive my rover here, it might give you some ideas of what the software side looks like: https://martin.drashkov.com/2026/02/letting-gemini-drive-my-...
https://simplefoc.com/ Is my type of rewarding nerdy topic. You might be more attracted to other control strategies.
Mastering robotics as a DIY thing is usually more about the mechanical (particular linkages and kinematics) as well as electrical (particularly motor control). The programming part of it generally can be lower quality and more hacked together, but still can be an area of deep exploration if that’s your passion.
https://youtu.be/pJj6uGcMco4?si=J0ui8LzYxEBXePZ0 ‘Engineer Bo’ is a small YT channel with a few great videos about stepper motor control. This video is about protecting the motor driver chip from large surges of electricity when the motor tries to wuickly “brake”. There’s a second video where he iterates on this solution.
If you don't find the mechanical and electrical parts something you want to invest enough time in to learn, and want to just dive into the programming side, then you could focus on simulation entirely. In that case, look into MuJoCo or OpenAI Gym (ported and maintained by community as ‘Gymnasium’).
Don’t be afraid to ask LLMs to help you learn. They might lie to you or occasionally send you down a non-optimal path, but they’ll be helpful first exposing you to so many of your current blind spots and helping understand the scope of any endeavor you might be interested in.
If you do decide to really invest in learning the electrical and mechanical sides, it can be worthwhile to truly learn them. This would involve following something like MIT’s open courseware (or similar) for electrical and mechanical engineering. You can get away without formally teaching yourself these, but it would unlock “real” engineering. Multivariate calculus is possibly enough for the mechanical side, but for electrical you’d also want to understand how to utilize differential equations. So in total, somewhere between the equivalent of 2-4 semesters of calculus. Linear algebra can help as well, but plenty of people without these math skills make really cool stuff in robotics.
You wouldn’t necessarily need to do the calculus and differential equations by hand like we did in University - as long as you can set up, manipulate, and solve the problems using computer software (numerically, maybe some symbolic manipulation) that would be enough for the hobby.
For enjoying robotics “as a consumer” (rather than as a do-er) there are some fun YT channels, which could either inspire you or scratch the itch passively just enough to rob you of the initiative to actually do it yourself:
Stuff Made Here
Mike Shake
Allen Pan
Michael Reeves
I did a thing
CodeBullet (towards the pure simulation side. this channel helps me when I’m feeling like a poorly educated useless engineer because it shows me that even the absolute lowest effort, dumbest approaches and worst execution can produce something both fun and rewarding. That can help me get out of ruts sometimes)
AlphaPhoenix (absolutely next-level explainers and demos of fundamental electromagnetic concepts and phenomena. The 3B1B of EM physics.)
There is no wrong way to do a hobby. Good luck.