Hi, this will be a long post!
I’m a late ROS 1 → 2 transitioner with a research and teaching background. I learned ROS long ago by myself and was also taught it at under and grad level. However, when I arrived at ROS 2, I had a hard time adapting, even though I had plenty of experience with ROS. After a year, I have thought deeply about the reasons and arrived at two main reasons:
- The tutorials and onboarding experience.
- There is a lack of established practices.
The second is getting better every day, and I think that it’s a matter of convergence for the community. However, the first is more concerning, in my opinion. Over the last months, I have gathered a series of points that could be improved and I would like to share it with all of you, get your feedback, and possibly your help for improving the tutorials and general docs. The aim of this post is to work towards a general tutorial upgrade to ease the entry-level experience for users.
Why? ROS tutorials are the entry point for both newcomers and transitioners. From our teaching experience, if the complexity gets overwhelming, students will simply avoid ROS at all costs. I have discussed this issue with people from different backgrounds and experiences and agree that, currently, it’s difficult to approach ROS 2 unless you have been an early developer.
Why now? ROS (1) EOL has arrived, and a lot of transitioners will use the tutorials to look for differences between the two major versions. Any undergraduate and graduate education that didn’t transition will do it before the next semester starts.
How? So far, I have gathered in this document (EDIT: Please, even if you leave a comment in the GDocs, write also a comment on this post to keep it alive) a list of improvement points with a clear action that could be turned into a GitHub issue in the docs repo. However, before flooding the repo, I would like to have some initial feedback from the community, hence this post. I think that some organization such as a work group could also be interesting.
Next steps So far, I would appreciate some feedback on the general idea and the specific ideas in the document linked above (it has commenter permissions). I would also appreciate any other ideas in this post. Finally, ideas on how to organize the workload and a possible work group are also appreciated. After that, we could move on to the actual work!
Just as a disclaimer, this post is not a complaint. I understand that the whole community puts a lot of effort into gradually improving all the content. My objective is to give it a push so everyone can have an easy approach to using and contributing to this community.