Is, knowing ROS, enough to become a ROS Developer?
I was thinking about this question while I was publishing my last podcast, the one with the ROS Basics Knowledge Map. In that podcast, I provided a complete landscape of all the ROS concepts that anybody needs to master to become a ROS Developer. But… is it all about learning and understanding ROS concepts?
I don’t think so. Actually, learning the ROS concepts is just the tip of the iceberg in the path to become a ROS Developer. As it happens with learning any other programming language, becoming a ROS Developer requires experience.
You can know to the detail the whole ROS API, CLI and list of available packages, but if you are lacking experience in real usage of ROS, then you are lacking the most important part.
Most of you will already recognize how difficult it is to put a ROS system into work. Yes, I know, conceptually it is very clear that you should launch this package, publish that topic and compute that value from odometry. But when we put hands to the work, many problems arise. There it comes the ability to resolve ROS errors. To debug. And that, that skill, is what I think really differentiates a ROS Developer from a ROS learner.
You may forget how to create a topic. You may forget how to add a remap in your launch files. But if you really understand how to debug ROS programs, then, that is the moment you can call yourself a ROS Developer.
Learning to debug ROS errors only comes with practice. So start practicing now. Start a ROS project for your drone. Make a simulated robot perform a complex task in a simulated environment. Or create an example to teach ROS to your mates. Trying to do any of those projects will generate lots of errors that you will have to debug. Practice, practice, practice.
And if you don’t know which project to launch, check this series of ROS Debug Challenges we created some months ago to test your debugging skills.
Now go to practice!