December 2012 Archives

ROS Groovy Galapagos Released

| No Comments | No TrackBacks

ellingson_groovygalapagos.jpg

Hello ROS Community, 


As we close out 2012 we're happy to announce the release of ROS Groovy Galapagos.  The theme of this release has been building infrastructure to support the growing ROS development community.

Using the new rosdistro repository on GitHub as a microcosm, you can get a sense of scale for the Groovy development  There are 118 public forks of the project publicly available with 73 people having contributed commits to the repository.  Running a script over the history of just the releases/groovy.yaml file in the repository finds that during the groovy development cycle there have been over 1100 commits changing the revisions of packages. And counting each changed version number there have been more than 3500 releases submitted to be built on the build farm.   This means that there have been more than 10 releases every day for the last 9 months on average.  

These statistics only count the packages which have been converted to use the new build and release system which currently stands as about half the released repositories.  One of the goals going forward in Hydro development will be convert the majority of the unconverted packages. 

All these releases have been submitted to our upgraded build farm infrastructure.  The over 450 packages are built into binary packages on 6 different architectures.  The binary builds for packages take between 3 and 90 minutes each, and if run on a single computer would take more than 2 weeks to complete running continuously.  The automatic documentation jobs likewise would take several days to run if run on a single computer.  

The Groovy release cycle ran longer than originally planned however giving it the extra development time has allowed us to produce a much more polished release which will support us better as we start considering how ROS should progress forward.  Going forward the Hydro cycle is expected to be shortened to bring the releases back into sync with the Ubuntu releases with a target of Hydro Medusa for April 2013.  

In the near future we will begin the Hydro planning cycle and kick off a new round of SIGs.  If you have been thinking about something you would like to see in ROS the SIGs will be a great opportunities to find others interested in collaborating to make those thoughts reality.  

Below are the Release Notes.  They have been filled in for the core packages and anyone who sent me information has been integrated. If you have updates stacks or packages, please add your information to the version on the wiki to make it as complete as possible.  

In the final release there have been 82 packages patched since Beta 3.  Most of the focus in the run-up to the release has been on documentation and tutorials.  

Happy New Year!

Your ROS Groovy Release Team

ROS Groovy Galapagos

ROS Groovy Galapagos will be the sixth ROS distribution release and was released December 31st 2012. In this release we have focused on the core infrastructure of ROS to make it easier to use, more modular, more scalable, work across a larger number of operating systems/hardware architectures/robots and most importantly to further involve the ROS community.

Platforms

ROS Groovy Galapagos will be primarily targeted at the Ubuntu 12.04 (Precise) release, though compatibility with other Linux systems as well as Mac OS X, Android, and Windows is anticipated. For more information on compatibility, please see REP 3: Target Platforms.

Installation

Please see the installation instructions. There are binary packages available for Ubuntu distributions, Oneiric, Precise, and Quantal for both 32 and 64 bit architectures. There is also improved infrastructure for building from source, most heavily tested on OSX. And experimental instructions for other platforms.

Ubuntu Users: Please make sure to use the Python tools from apt and not pip. The pip based installs tend to go out of date and not get updated with the rest of the system.

Major Updates

Mass migration of code to GitHub

Traditionally, ROS code has been scattered across numerous version control systems (git, svn, hg, etc) across different hosting services throughout the world. Though the ROS wiki has acted as a central point of documentation, issue/ticket tracking has been just as disparate as the usage of VCS tools.

With ROS Groovy, an effort has been made to move core packages to GitHub along with all issue tracking. This has brought several benefits including making ROS more available to the wider open source community and providing VCS consistency for ROS packages. Most importantly, utilizing GitHub has involved the ROS community more and given it more ownership of the codebase. GitHub's pull requests have made it much easier for the core ROS development team to apply patches from the community as well as respond to design feedback more rapidly. In the last development cycle there have been 71 people who have contributed to the rosdistro file, using 239 pull requests and there exist 115 public forks of the rosdistro project on GitHub. The ease of forking and submitting pull requests has made this higher level of community engagement possible. GitHub additionally provides excellent tools for navigating code, managing issues/milestones, and increasing developer communication. All ROS package developers are highly encouraged, but not required, to utilize GitHub for their own repositories so as to further unify both the ROS codebase and community.

On GitHub, ROS repositories are spread across several GitHub "organizations" to group related repositories in an intuitive manner:

New Build System - catkin

The most striking and significant change in Groovy is the introduction of a new build system called catkin which will eventually fully replace the original rosbuild build system. catkin was developed to address several drawbacks inrosbuild so that ROS can continue to grow and scale. As opposed to rosbuild catkin promotes Filesystem Hierarchy Standard (FHS) compliance, making it much easier to distribute ROS packages on other operating systems and architectures.

Though a prototype version was already introduced in fuerte for a only few packages, catkin is now the official build system of ROS. rosbuild will continue to be supported for the forseeable future, but in time will be deprecated. catkin has been designed to be backwards compatible with existing rosbuild packages and stacks that have not yet migrated. Most of the core packages have already been migrated and new packages should utilize catkin.

The workflow of catkin is somewhat different from rosbuild, but great care has been taken to make the transition as smooth as possible. Here are some resources for getting started with catkin:

Removal of Stacks

With the new version of catkin in Groovy, the concept of Stacks has been removed. One of the main reasons for this was that there was a duplication of dependency tracking between packages and stacks. Previously packages only depend on packages, and stacks only depend on stacks, so the stack which contains a package must depend on all of the stacks which contain the dependencies of that package. Additionally, by removing stacks the code base has become more modular because you can install any package and its dependencies, where as in the past a package would often unnecessarily pull in its stack and other unused dependencies.

To preserve some of the benefits of stack, the concept of "metapackages" replaces the concept of stacks. A metapackage is not a container of packages like rosbuild stacks were, but a named set of references to packages. It can be used to preserve some structure using a catkin metapackage replacing an old rosbuild stacks (this helps with for backwards compatibility of documentation with rosbuild, e.g. in wikis). A metapackage can depend on packages which don't necessarily reside in the same folder or source repository. This allows for more flexibility of development workflows, allowing to have separate repositories for packages that belonged to a single stack.

This is captured more formally in REP 127

New Package Release System - bloom

With catkin also comes a new package release system known as bloombloom not only simplifies your workflow when releasing ROS packages to the world, but also provides features to make it easier to maintain released packages, version them, and patch/backport changes.

bloom takes your catkin packages and releases them to a "release repository". All of the ROS release repositories are hosted in the ros-gbp organization on https://github.comhttps://github.com/ros-gbp. The release repository contains snapshots of your source repository (the repository you develop on) and provides tags to the snapshots. Additionally it creates a "release" branch for each package in your upstream repository on which you can make patches and it provides tags for each released version of your packages. Finally, bloom can generate files for building Debian .debs on the ROS build farm. Because we host our release repositories on https://github.com, there are known urls for each release of each package. This makes the release repositories a good source for building released ros packages from source.

bloom allows a source code repository to contain any number of packages, related or not. The only caveat to having multiple packages in a single repository is that they must be released with a common version number, i.e. one release version number per repository.

New GUI Tools - rqt

In Groovy, core ROS GUI tools (rxconsole, rxgraph, etc) have been significantly refined. These tools have been replaced by a single new tool called rqt. rqt is a software framework that implements the various GUI tools in the form of plugins. One can run all the existing GUI tools as dockable windows within rqt -- even rviz! The tools can still run in a traditional standalone method, but rqt makes it easier to manage all the various windows on the screen at one moment.

Users can create their own plugins for rqt with either Python or C++. Over 20 plugins have already been created and more are slated for development.

rviz

rviz has been significantly redesigned with a cleaner user interface and and a new plugin API covering all major functions. RViz is now "on its own" and so can be installed directly (on Ubuntu for example) as ros-groovy-rviz. It no longer depends on visualization_common, instead depends directly on standard OS installations of OGRE, easing compilation from source. Python support has been greatly expanded, so rviz windows, displays, viewpoints, and tools can all be manipulated from Python now.

The "save" file format has also changed: it now saves into "*.rviz" files which are in YAML format, easing manual editing, comparison, and automatic generation.

pluginlib and class_loader

pluginlib, the library for creating plugins in C++ code, has been almost completely rewritten while retaining 100% backwards compatibility. New features include thread-safety, simplified API, and true library class introspection. pluginlibis now built on top of a new ROS-independent package called class_loader which can be used to work with plugins in software that does not utilize the ROS build system.

Gazebo

The Gazebo simulator project, the simulation engine used within the simulator_gazebo ros stack, has recently undergone major improvements and re-factoring as it went from version 1.0 to 1.3The Groovy release of Gazebo has been updated to run with gazebo 1.2.x with pending updates to upgrade to gazebo 1.3.x in the near future.

All changes in the underlying simulator can be found on gazebosim.org, as well as commonly asked questions and answers for gazebo via gazebo answers page.

Other New Packages:

Tutorials

The significant overhaul of core ROS infrastructure has meant a significant change in fundamental ROS documentation, primarily in the tutorials. It is recommended to review them again, even if you are a ROS veteran, at http://www.ros.org/wiki/ROS/Tutorials. All the Tutorials beyond Creating A Package have been converted to support the new and old build system.

Automatic Documentation Jobs

One of the valuable services provided to the ROS community is the public indexing of packages and automatic documentation generation onto ros.org. The entire system has been overhauled to parallelize and isolate failures of individual repositories from stopping other repositories from being documented. The new infrastructure now also provides properly versioned documentation for each ROS distro. For more information on how to be indexed in the new system see the Get Involved page.

Migrating

As with any release there have been some areas which will require updating. In this cycle most of the changes have been adding APIs while maintaining backwards compatibility for the old APIs.

Moving From rosbuild To catkin

The biggest change is the switch from rosbuild to catkin. This switch has been done while providing backwards compatibility, such that legacy packages can depend on converted packages without being changed. However catkin based packages cannot depend on rosbuild based packages. This leads to what has been called the rising tide where the conversion to catkin must propogate up the dependency tree. Wet packages, catkin based, are always below the dry packages, rosbuild based, as the tide rises.

A detailed guide to converting packages can be found in the catkin documentation. catkin/migrating_from_rosbuild

Change from Wx to Qt

One significant change is the transition from Wx to Qt. If you have been using Wx graphical toolkits it is recommended to switch. Most of our primary visualization tools have been ported to Qt. And there are many plugins for them. There are tutorials on the [[rqt] page on how to write new Qt based plugins.

laser_drivers REP 117 Deprecation Completed

If you have been using the laser_drivers the changes made by REP 117 have now become the default option. For more information see REP 117

Change Lists of Note

Plans and Special Interest Groups

The planning for the Groovy release was coordinated on the planning page.

Sigs

A significant amount of the Groovy development was coordinated by Special Interest Groups. These groups are summarized at the bottom of the planning page.

ROS Enhancement Proposals (REP)

Four REPs have been finalized during the Groovy development cycle:

ROS Groovy Beta 3 Available

| No Comments | No TrackBacks
We are converging on the ROS Groovy release.  ROS Groovy Beta 3 is available now from the public apt repositories.  For installations see: http://www.ros.org/wiki/groovy/Installation

This brings us to over 450 packages building on all 6 supported Ubuntu distro arch combinations.  

There are also new source based installation instructions: http://www.ros.org/wiki/groovy/Installation/Source  These have been tested on Ubuntu and OSX.  It would be great to get more testing on other platforms.  The most common issue expected to be encountered on other platforms will be missing rosdep definitions.  Documentation for how to contribute rules can be found at: http://ros.org/doc/api/rosdep2/html/contributing_rules.html

We are waiting on a couple of packages to be patched and are working hard on documentation. Our milestone for the release can be seen at: https://github.com/ros/rosdistro/issues?milestone=2&state=open

Draft release notes are available at: http://www.ros.org/wiki/groovy

Your ROS Release Team

Robots Using ROS: BIRD MURI

| No Comments | No TrackBacks
Getting Small UAVs to Imitate Human Pilots Flying through Dense Forests
bird_muri.png

The Robotics Institute at CMU has been developing systems to learn from humans. Using a Machine Learning class of techniques called Imitation Learning the group has developed AI software for a small commercially available off-the-shelf ARdrone to autonomously fly through the dense trees for over 3.4 km in experimental runs. They are also developing methods to do longer range planning with such purely vision-guided UAVs. Such technology has a lot of potential impact for surveillance, search and rescue and allowing UAVs to safely share airspace with manned airspace.
Watch the flight in unstructured environments below.

ROS Groovy Beta 2 Available

| No Comments | No TrackBacks

Hi Everyone,

We're pleased to announce ROS Groovy Beta 2 has been released.

Since Beta 1 there have been over 150 packages released including approximately 40 new packages. Bringing our total to over 380 packages building into debian releases on both oneiric and precise.

Please give it a try and give your feedback. On ubuntu if you installed Beta 1 from debian packages you can just "sudo apt-get update && sudo apt-get dist-upgrade" to get the new release.

We have a new build status page available at http://www.ros.org/debbuild/groovy.html Please be patient, it's a lot of data to download at once but it gives a good sense of what the status of the builds are.

ROS: Five Years

| No Comments | No TrackBacks

ROS turned five years old in November, so it's time for our sort-of-annual State of ROS.  If you recall, we took a deep dive into the growth of ROS in our third-year anniversarypost.  We won't be as prolific this time around, but suffice it to say that the past two years have built on the excitement, growth, and adoption of ROS.

Numbers don't tell the entire story, but it's a good place to start.

·      There are 175 organizations or individuals who have publicly release ROS software in our indexed repositories, up from 50 in 2009 (through October)

ros_repositories_5_year.png

·      Not counting the approximately 40 PR2s all over the world, there are many hundreds of robots running ROS.  We are aware of more than 90 types of robots that are running ROS, up from 50.  With 28 robots with supported installation instructions.  



robots_5_year.png


·      We had 3699 public ROS packages as of April, compared to 1600 three years ago

·      ROS continues to have a strong impact in the worldwide academic community, with 439 citations on Google Scholar for the paper: ROS: an open-source Robot Operating System

·      There are now people working on ROS on every continent.  Africa, South America, and Antarctica are new to the community this time around.  Yes, Antarctica.

 ROSAntarctica.jpg

·      You can now buy a book on ROS

·      One, and counting.  This is the number of industry conferences dedicated to ROS.  More than 200 individuals attended the ROSCon 2012 debut last year in St. Paul, MN.  ROSCon 2013 heads to Stuttgart, Germany next year.

·      People often ask how many users are there of ROS.  Due to the open source nature of ROS, we simply don't know how many ROS users there are in the world. What we can tell you is that the ros.org wiki has had over 55,000 unique visitors in the last month.  This doesn't include traffic to our many worldwide mirrors.  

The latest version of ROS, Groovy Galapagos, is currently in Beta 1 Release.  Groovy will be the sixth full release of ROS.  This release is laying the foundations for enabling ROS to continue to grow the number of platforms supported.   

Inspired by The Mozilla FoundationThe Apache Software Foundation, and The GNOME Foundation, our three-year anniversary blog post discussed the possibility of a ROS Foundation.  In May of this year, Willow Garage announced the debut of the Open Source Robotics Foundation, Inc. OSRF is an independent non-profit organization founded by members of the global robotics community whose mission is to support the development, distribution, and adoption of open source software for use in robotics research, education, and product development.

Because of the BSD license for ROS, we often have no idea who is using ROS in their commercial deployments.  We suspect there are a few we are missing, but two major new products were announced this year that are built using ROS.  First is Baxter from Rethink Robotics.  Baxter was announced just a few months ago and the company has set their sites on manufacturing industries.  Check out IEEE Spectrum's article on Rethink here.  Also built on ROS is Toyota's Human Support Robot (HSR), which is designed to help those with limited mobility within the home.  ROS has even made inroads within the industrial robot world of late, specifically through the ROS-Industrial Consortium.

We can't discuss commercial deployments of ROS without mentioning TurtleBot, originally released in April 2011.  Recognizing that not everyone can afford, or even needs, a $280,000 PR2 robot, TurtleBot was brought to market for the express purpose of letting as many people as possible get their hands on ROS.  TurtleBot 2.0 was recently featured on Engadget and is now available for pre-order at www.turtlebot.com

At Willow Garage, we often refer to ourselves as a software company disguised as a robot company, and we can point to the ongoing growth of ROS as proof of that assertion.   We have also been stating for some time that we need a LAMP stack for robotics.  With the latest developments in commercial robots built on ROS, it feels like we are in the beginning stages of that process.  We can't predict what ROS will look like in five year, or twenty-five, but if we continue to see the adoption, innovation, and excitement from the ROS community that we have seen in the first five years, then things are certainly looking Rosey.


rosie_cbs.png

Find this blog and more at planet.ros.org.


Monthly Archives

About this Archive

This page is an archive of entries from December 2012 listed from newest to oldest.

November 2012 is the previous archive.

January 2013 is the next archive.

Find recent content on the main index or look in the archives to find all content.