Celebrating 9 Years of ROS
This year marks the occasion of ROS turning 9 years old! Over the years, ROS has grown into a strong world-wide community. It’s a community with a large variety of interests: from academic researchers to robotic product developers, as well as the many robot users. Academic use of ROS continues to grow. Citations of the first ROS paper “ROS: An Open-Source Robot Operating System” has grown to 2,871.
To get a better sense of what’s happening in the ROS community, if you have not already done so, I highly recommend reviewing the ROSCon 2016 program. You can also find all the video recordings in this gallery. ROSCon 2016 was another great event bringing ROS community members together to share how they’re using ROS to solve their challenges. As the goal of ROSCon is to share information between the entire community, we record the talks and make them available online. We’ve sold out our venues the last two years and are looking forward to another ROSCon next fall!
Part of understanding our growing community is to try to measure it. For the last 6 years we’ve been generating metrics reports. These reports can give a sense of aggregate concerning what’s happening in the ROS community. Our most recent report is from July 2016. David Lu has put together plots of several of the metrics across the last 6 years which can be quite informative.
This year we wanted to dig a little deeper into the code metrics, so we downloaded the source of all of packages listed in the Indigo Igloo rosdistro and ran some analysis.
- The total line count is over 14 million lines of code
- There have been 2477 authors
- And 181509 commits
- Averaging 73.3 commits per author
You can see the commits as a function of month in this graph.
Our committers are active around the world as evidenced by the commits coming in at all hours of the day.
And the git commits record 24 different time zones (out of 39 possible).
Analyzing the repository for significant lines of code using [SLOCCount](http://www.dwheeler.com/sloccount/) shows:
- 4,077,199 significant lines of code.
- This represents an estimated 1,236 person-years of development.
- For a sense of scale, that is an average of 137 developers contributing full time over the last 9 years!
For those of you curious about the breakdown by language lines of code, it is as follows:
- cpp: 2608592 (63.98%)
- python: 553332 (13.57%)
- ansic: 297629 (7.30%)
- xml: 280615 (6.88%)
- lisp: 149439 (3.67%)
- java: 135343 (3.32%)
- ruby: 26484 (0.65%)
- sh: 21120 (0.52%)
This only represents the packages publicly released into the Indigo rosdistro index.
Note that the tools only worked on Git repos, so code from other source control systems was excluded. There are also a few projects which predate ROS but have ported to use ROS and their history is included.
We’re looking forward to continuing growth through 2017 leading up to the 10-year anniversary of ROS. With the Beta 1 version of ROS 2.0 out, there will be space for new development. We’re looking forward to our next release, Lunar Loggerhead, to coincide with Ubuntu’s next release, Zesty Zapus. With both of these, the ROS community can continue to rely on the many libraries, tools, and capabilities they have come to know and enjoy, as well as begin to experiment with the new features in ROS 2.0
Another exciting project to watch is the upcoming TurtleBot 3! The TurtleBot and TurtleBot 2 have been great platforms for learning and prototyping. However by packing that same capability into a smaller platform with more punch, we look forward to it providing another avenue to grow the ROS community.
We write these anniversary posts to help give you a sense of how ROS has been doing over the past year, but we’d certainly encourage you to find out for yourself. Get involved. Write or edit a wiki page. Answer a question on ROS Answers. Come to ROSCon. And, when you’re ready, think about helping to maintain ROS itself, or even contributing a brand new ROS package.
OSRF is doing great, but the long-term success of ROS depends on every member of the incredibly awesome ROS community. If you’re already an active part of the ROS community, we can’t thank you enough; and if you’re not, think about how you can help ROS grow and thrive for the next nine years, and beyond.
If you enjoyed this article, you may also also enjoy:
- Introducing H-ROS: the Hardware Robot Operating System
- #IROS2016 in pictures
- A practical look at latency in robotics: The importance of metrics and operating systems