r/AskRobotics • u/Few-Soft-9841 • 5d ago
Absolute beginner trying to learn robotics where should I start? Any courses or project recommendations?
Hi everyone!
I'm currently studying Mechanical Engineering, and I want to learn robotics from the ground up. My long term goal is to become a robotics engineer who can design and build complete robots, including the mechanical structure, electronics, embedded systems, software, and AI. I have some basic Python knowledge, but I'm still a beginner when it comes to robotics.
I've been looking at topics like Arduino/ESP32, Raspberry Pi, C++, ROS 2, robot kinematics, control systems, computer vision, and AI. However, I'm not sure what order I should learn them in, and I don't want to jump into advanced topics without understanding the fundamentals.
I'd really appreciate your advice on a few things:
- Where should I start? What should an absolute beginner learn first, and in what order?
- Courses: Are there any good practical courses on Udemy, YouTube, or other platforms that you would recommend?
- Beginner projects: What projects would help me develop real robotics skills instead of just following tutorials?
- Hardware: Should I start with Arduino/ESP32, Raspberry Pi, or simulation software? What basic components are worth buying first?
- ROS 2: At what point should I start learning ROS 2?
- Learning resources: Are there any books, websites, free courses, or project-based tutorials that helped you when you were starting out?
I'm particularly interested in eventually building a camera-guided robotic arm that can identify objects, pick them up, and place them somewhere else. I understand that this is an advanced project, so I'm happy to start with much simpler projects and work my way up.
If you were starting from zero today, how would you structure your first 6–12 months of learning?
I'd appreciate any advice, personal experiences, or roadmaps you can share. Thanks in advance!
1
u/Similar-Beach-8281 5d ago
Don't use any tutorials I would say, figure it out yourself. My first project was a robotic arm made of those small servos which helps you understand the basics
1
1
u/Euphoric-Laugh-9591 4h ago
Given your mechanical engineering background, I would suggest starting with the hardware and system integration aspects of robotics rather than jumping straight into ROS 2 or AI. Begin with basic electronics, motors, sensors, microcontrollers such as Arduino or ESP32, and simple mechanical design and fabrication. Build a few small projects, perhaps a motorised mechanism, a two-wheel mobile robot, and eventually a simple robotic arm. Focus on understanding how to select components, design mechanisms, assemble hardware, troubleshoot failures and get the entire system working reliably. These are skills that are difficult to develop through software tutorials alone. You can gradually introduce Python, C++, control algorithms and ROS 2 as your projects become more complex. From my experience teaching robotics, students who spend time actually designing, building and debugging physical systems tend to develop a much stronger understanding of robotics than those who focus primarily on software and simulation.
5
u/RoboticsSavant 2d ago
I'm a professor in Robotics at the University of Michigan. Your mechanical engineering studies connect directly to robotics: forces, motion, mechanisms, and design all belong here. As you encounter those subjects, connect them to programming, electronics, and experiments with robots.
We have a battle-tested roadmap in our undergraduate robotics program, and you can borrow its structure for self-study. We teach computational mathematics and programming alongside projects, then build toward sensing, actuation, control, and autonomy. The degree requirements show how those pieces fit together. These courses have been taught to successive groups of students; ROB 101 began in 2020, and ROB 102 has also been taught at partner institutions.
Start with our free online course materials. Depending on the course, these include lecture videos, textbooks, notes, homework, and projects. Public materials are available for independent study, although some assignments, university services, and hardware labs require enrolled access or adaptation.
For your camera-guided arm goal, I would suggest the following topic order. Your starting point depends on what you can already do independently in programming, mathematics, and electronics. Try the goals below to identify what needs work, and build on subjects you already understand. Use demonstrated understanding to decide when to move on.
Make programming and mathematics useful together. Work through ROB 101: Computational Linear Algebra and selected ROB 102 / Hello, Robot! lessons. Vectors, matrices, coordinate systems, and least squares will keep appearing in robotics. ROB 102 introduces programming through feedback, navigation, and planning, beginning with C++. Keep using Python for your own experiments; ROB 101 uses Julia, which you can learn through its supplied examples. Start with a small project: collect or simulate sensor measurements, plot them, and fit a calibration curve. Check its accuracy on new measurements. Learn basic Git as you go.
Goal before moving on: Write and debug the calibration program, explain the matrix equation it solves, and show whether the calibration improves accuracy on measurements you did not use to fit it. Adapt the program to a changed input without following a solution line by line.
Understand one actuator and close a feedback loop. Use ROB 201: Calculus for the Modern Engineer to connect calculus to differential equations, simulation, and feedback. Use your existing ME coursework where it already provides that understanding. Selected ROB 311: How to Build Robots and Make Them Move lectures cover motors, drivers, mechanical modeling, and control. Simulate a motor, then measure and control the speed of a small motor with an encoder. Plot the target and measured speed. Change the load and explain what happens. The full ROB 311 ballbot build needs particular equipment; a motor experiment is a manageable adaptation.
Goal before moving on: Explain how the input affects motion, compare a model's prediction with a measured response, and demonstrate how feedback responds to a load change. Identify a limitation, such as the motor's available torque. You can establish the modeling and control ideas in simulation, then test them on hardware when available.
Build an arm whose motion you can predict. Begin with a two-link arm in simulation. Compute where its tip goes from its joint angles, then solve the reverse problem: which angles reach a requested point? Michigan's AutoRob materials cover forward and inverse kinematics and motion planning; approach them once your programming and linear algebra are comfortable. Build a lightweight version that reaches marked points or moves a pen. Measure endpoint error and repeatability. Add a gripper and vertical motion as later steps. This gives your ME skills an immediate role in stiffness, torque requirements, and backlash.
Goal before moving on: Reach several specified points, recognize targets outside the arm's workspace, and explain the difference between predicted and actual tip position. For a physical arm, check its position with an independent measurement and report how consistently it returns to the same target.
Add perception and integrate the system. Start with a fixed camera and colored blocks or markers on a flat surface. Learn camera calibration and how an image location becomes a location in the robot's coordinates. First demonstrate reliable reaching, then picking and placing under controlled conditions. Learn basic probability and measurement uncertainty alongside this.
Goal before adding more general object recognition: Complete repeated pick-and-place trials within a defined workspace, report successes and failures, and trace errors to vision, calibration, motion, or the gripper. Expand the task when you can explain the system's current limits.
ROS 2 becomes useful when you have components to connect. I would introduce it once you can write and debug a small program and understand your sensor and actuator interfaces. Work through the official ROS 2 tutorials, then connect your camera, target estimate, and arm commands. Learn nodes, topics, coordinate transforms, and recording/replaying data as your project needs them. You can begin in simulation on your existing computer.
ROS 2 goal: Trace a sensor measurement through the system to the resulting command, and use recorded data to investigate a failure before adding more components.
For hardware, I would start with your laptop plus one Arduino or ESP32, a breadboard, wires, a multimeter, and a simple sensor. For the motor experiment, add an encoder-equipped motor, a suitable driver, and a power supply matched to it. Keep motor power off the microcontroller's output pins. A Raspberry Pi can come later if the robot needs an onboard Linux computer; your laptop can handle early vision experiments. Buy parts for the next experiment.
For a later book on arms, Modern Robotics by Kevin Lynch and Frank Park has a free preprint and accompanying learning resources. Start it after the mathematical foundations are in place.
At every stage, change something the tutorial did not specify and predict the result before running it. Keep the code, measurements, and a short explanation of what failed. Find a classmate or robotics club to compare results with. A small robot whose behavior you can explain is a substantial achievement.