This is a guest post. The views expressed here are solely those of the author and do not represent positions of IEEE Spectrum or the IEEE.
Last year we celebrated nine years old of ROS, the Robot Operating System! Through these 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. 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 six years we’ve been generating metrics reports. These reports can give a sense of aggregate 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 six 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 2,477 authors
- And 181,509 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 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 nine years!
For those of you curious about the breakdown by language lines of code, it is as follows:
- cpp: 2,608,592 (63.98%)
- python: 553,332 (13.57%)
- ansic: 297,629 (7.30%)
- xml: 280,615 (6.88%)
- lisp: 149,439 (3.67%)
- java: 135,343 (3.32%)
- ruby: 26,484 (0.65%)
- sh: 21,120 (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 planning 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.
The Open Source Robotics Foundation (OSRF), which maintains ROS, 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.
This article originally appeared on ROS.org’s blog.