Monday, May 23, 2011

The Fedora 15 Robotics Suite

With Fedora 15's release imminent, I'd like to take the time to talk about the Fedora Robotics Suite.  As some of you may have noticed, the Fedora Robotics Suite is a new feature for Fedora 15 and it is already showing up as a bullet point in many reviews of the Fedora 15 alpha and beta releases.  In an effort to elevate this feature past 'neat-sounding bullet point,' I'll do my best to explain the motivations behind the feature and give a preview of what's in store for future Fedora releases.

What is it?
The Fedora 15 release notes have this to say about the Robotics Suite:
Fedora 15 now includes the Robotics Suite, a collection of packages that provides a usable out-of-the-box robotics development and simulation environment. This ever-growing suite features up-to-date robotics frameworks, simulation environments, utility libraries, and device support, and consolidates them into an easy-to-install package group. Visit http://fedoraproject.org/wiki/Robotics for more details.
In a nutshell, the Fedora Robotics SIG has been working hard over the past few releases to create a fast and easy way to dive into robotics development, for newbies and seasoned developers alike.  The first visible result of this effort is the Fedora Robotics Suite, a package group that brings together many different robotics related libraries to make it as easy as possible for developers to use Fedora in their robotics projects.

Why is the suite needed?
The open-source robotics scene is diverse, consisting of vast amounts of independent libraries and frameworks that can be used for all kinds of robotics tasks.  Unfortunately, the robotics develpment community is small enough that even some of the largest and most well-known software packages are still "niche" packages in the scope of a large Linux distribution, often with only a handful of developers upstream. These factors add up to several problems that the Robotics Suite aims to alleviate:
  • Software is difficult to configure and install.  This is mostly a problem for users who aren't familiar with Linux development and are diving in headfirst.  A short visit to many small projects' mailing lists can tell you: if the configuration and installation process for a software component is complex, or the process isn't well documented, new users can be put off by the hurdle of getting their software environment set up, long before any development can take place.  Our goal is to streamline the process by doing the hard work for you in the context of robotics-related software.
  • Software has too many dependencies.  Many robotics-related programs have critical dependencies on small or fledgling libraries that otherwise have little use to the Linux community in general.  For example, the Point Cloud Library (currently under review) depends on the cminpack, flann, and eigen3 libraries.  We want to make sure all of these are available with Fedora to spare the users the time-consuming process of finding, building, troubleshooting, and installing all of these small dependencies.
  • Software doesn't build properly with Fedora's system libraries.  Fedora leads the way in software versions with the latest and greatest packages from upstream.  Often, developers of smaller libraries are only testing their packages against the set of libraries on their own machine, and may be oblivious to build errors resulting from newer system libraries.  The Robotics SIG encounters these errors during packaging and updates and works with upstream to correct the issues.
Basically we want to extend the benefits of pre-packaged software to the robotics community, and in the process make Fedora the distribution of choice for robotics developers.
    What's in the suite?
    As noted at http://fedoraproject.org/wiki/Robotics, the Robotics Suite currently includes several large-scale robotics frameworks and simulators, including Fawkes, Player, Stage, and the RoboCup Soccer Simulator.  The Robotics Suite also consists of many specialized libraries like libphidget and libkni that interact with sensors and actuators, libraries like mrpt and openni that implement specialized algorithms for things like motion planning and image processing, and IDEs like Eclipse and Arduino to make code development easier.


    What's next?
    The Robotics Suite is a big milestone for the Robotics SIG, but we've got plenty of grand plans for future Fedora releases.  We'd like to create an official Robotics Spin for future releases to make it even easier to sample and use the Robotics Suite, in the home or the classroom, without having to go through the whole install process.  We are also sponsoring a Google Summer of Code student to create educational robotics software for new users that takes advantage of the packages available in the Robotics Suite.  Finally, we're always hard at work packaging new and interesting robotics-related software for the Fedora community.

    4 comments:

    1. Any plans to integrate ROS (www.ros.org)? It would be really nice if Fedora would come with ready to use ROS packages.

      ReplyDelete
    2. Not any time soon. The way ROS is built makes it almost impossible to package in accordance with Fedora's packaging guidelines.

      ReplyDelete
    3. Thats right my dear friend @rich , Maybe someday fedora will be redy for been use as ros package.

      ReplyDelete