Ask HN: How to get started with robotics as a hobbyist?
132 points - last Sunday at 2:44 PM
I wanted to find new hobbies for myself, something that involves more physical stuff compared to only code. How did you started on your journey with robotics, what's handy to learn in the first place? I know only basics about embedded programming and I'd need to brush up of my physics skills. I don't have a set goal in my mind, only exploring for the time being.
Comments
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.
- 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'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...
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!
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.
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.
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.
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.
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.)
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.
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.
It is very important that you just do it. There is no way of learning to play the guitar without actually playing the guitar.
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.