More hands-on learning

Whats a good way to get more hands-on experience with ros and real robots?

I’m currently doing a single-semester program in school (about to end)where we made and programmed a 3-wheeled car (FreeNove 3-wheel, RPi 3, smart car shield) to perform tasks.

After programming the basic nodes for cmd_vel and echolocation etc, I’ve now made actions, and services, using stuff I’ve learned from theconstruct… The most “advanced” thing ive implemented is a line-following program that runs on an action client-server… the car only has a straight echosensor and a weak webcamera.

Where should I go from here? rasp pi 4? nvidia Jetson? Turtlebot? Nanosaur? I’m really not sure…
Going forward I’ll be learning Robotics mostly on my own, so i need to find some project for myself as to keep learning and improving… I feel like I have some understanding of the basics of ROS now, as I’ve completed “Code foundation for ROS” and “ROS For Beginners” learning paths, and the related rosject with the real robot…

Should I just keep going with the courses for now? get a physical robot on the side?
Any tips greatly appreciated <3


Well, it all depends on your interests.
Are you interested in autonomous driving? AI? Control? Manipulation? Basic Perception?

I would first think about what are you interested in the most and then create a very small project with a very precise objective in mind. This will force you to learn in a more grounded and practical way.
For example, I’m interested in helping people with their shopping, then maybe design a small robot that can carry things around and follow people. That will trigger a lot of needs and skills that you will have to acquire.

As for basic knowledge, I would say that you start moving to ROS2. Its going to be the standard in a few years and it gives you more opportunities to work in a lot of robotics companies. For that the ROS2 basics courses are great, Also the navigation for ROS2 course.

I would also encourage you to do a perception course, maybe the Perception in 5 days.

As for the project, start very simple and in simulation. Staring in simulation lowers the costs of the project until you know that everything is working. Then I would recommend you to buy a robot based on the needs you say in the simulated experiments.

Hope this helps :wink:

This definitely helps, thank you.

One concern i have with working in the simulation and in the webcourse is that i feel like im taking pre-made things for granted, like how the robot knows and publish odometry, subcribes to cmd_vel, and other things that are magically already available in some of the courses. Should I just tackle this later?

I’m just a little concerned of diving deep into the “high-level” (if that makes sense) programming like making something drive autonomously or learning computer vision and stuff, and foregoing the hardware/electronics/foundational code side, like what actually happens when i publish into cmd_vel and the robot starts moving, or how im magically seeing the robots position in a room and odometry in the web-course.

I really am interested in image processing and autonomous driving.

Is it a bad idea to keep going in this direction without having a “deep” understanding of the lower level stuff like what gets sent to the chip, how the motors run, in general just the mechanics and electronics of the actual robot?

I guess i just tend to get concerned when i dont understand a system 100%, from the ground up, despite being able to do “intelligent stuff” with the simulations and tasks im given on theconstruct. Maybe this is actually nothing to be concerned of, i dont know.

If you think its reasonable to just keep going with autonomous driving/mapping/imaging for now then i will do that !! because it seems the most interesting. I hope to one day work in the robotics industry

sorry for the lengthy post!


Totally agree and understand. Knowing 100% how the system works would be ideal, but nowadays it’s just not possible if you want to get things done. Systems are hypercomplex and optimized and knowing how the hardware software and everything works from a practical point of view is not important.

The best way to work is:

  1. Get a robust and simple robot that has hardware solved, especially if ROS is already integrated for basic operation. Having a robot that doesn’t work because of the hardware is a nightmare, especially when wanting to get things done.

  2. Concentrate on ina very simple tasks. and by simple I mean VERY simple. That way you will ocncentrate in solving all the minor issues fast and start developing meaningful apps for the robot.

  3. Concentrating on developing interesting stuff is the way to go because at the end hardware by paying just works, but no one will give you all the software to get the robot to do something interesting.

Hope this helps :wink:

Thank you this is really really helpful

This topic was automatically closed after 46 hours. New replies are no longer allowed.