Let me preface this by saying I think people expect a lot from us and then get frustrated when we don’t live up to their expectations. Some people expect ROS to be one small step up from a kit they buy at a toy store. The reality is that professional robotics and robotics research is hard and hard things are often hard to learn. Our job is to try and make it EASIER. Making robotics EASY would require that we sandbox all of our users to just one or two narrowly scoped domains.
What would really help is a curated set of fleshed out example projects that demonstrate exactly how things are done according to best practices. For example, a full (including everything, launch files, urdfs, etc) example for an ackermann drive with gazebo simulation and ros2_control integration, would do wonders. In general, people might find it easier to learn from reading through a working codebase than piecing together sparse documentation.
by looking at good curated examples of projects that work end-to-end is the best way to learn the architecture of the system and its the fastest way to start building stuff.
You are aware that we have multiple reference platforms for the project right? Unfortunately we can’t cover all the possible permutations out there (flying robots, wheeled robots, legged robots, tracked robots, etc, etc).
One major gap I’ve noticed is the lack of structured, easy-to-follow video tutorials. While guides are helpful, video content often makes it easier to grasp concepts that might be missed in text. Unfortunately, most existing tutorials require heavy setup and aren’t beginner-friendly, making it tough to prepare and program robots efficiently. A well-structured video series with minimal setup and hands-on examples would make ROS 2 much more accessible for students and transitioners.
I am going to be up front here and say this won’t happen any time soon. Videos are not searchable. You can’t copy / search the code. They are a HUGE lift in terms of production time and resources and we would have to redo all of them every time we make a release. Don’t take this the wrong way, but a lot of us learned ROS through reading and it is still an important skill for professional software engineers.
Yes THERE IS A REASON! Version whiplash and the fact that deprecated / non-working 3rd party tutorials and videos live forever in search engine results.
I think it is great that people are producing videos, but I really wish more of them would send us a docs pull request instead. Unfortunately you don’t get any “influencer clout" from sending our documentation a PR. We also seem to be held accountable every time someone on the internet says something that is factually untrue, misleading, or omits details.
I realized yesterday (I get to use the word ‘flabbergasted’ now) that ROS2 distribution are not backwards compatible with packages made for previous releases.
This seems like an assumption on your part. You can’t mix C++ 17 and C++ 11 or Python 2 and 3 code together, similarly you can’t use two different releases of a database system without a migration. Why would you assume you can use two different ROS releases in the same project? It is certainly something that could be possible, but it is a really really heavy lift, and the project is slowly moving in that direction. Distribution changes are the time when it is possible to break compatibility, and we don’t guarantee that things are compatible to give maintainers an opportunity to make changes. Any individual package will depend on their own changes and those of their dependencies. We do hold core packages to a tick-tock cycle to not have changes be too fast.