Mirko Bordignon (Fraunhofer IPA) and Shaun Edwards (SwRI): Bringing ROS to the Factory Floor

The ROS Industrial Consortium was established four years ago as a partnership between Yaskawa Motoman Robotics, Southwest Research Institute (SwRI), Willow Garage, and Fraunhofer IPA. The idea was to provide a ROS-based open-source framework for robotics applications, designed to make it easy (or at least possible) to leverage advanced ROS capabilities (like perception and planning) in industrial environments. Basically, ROS-I adds models, libraries, drivers, and packages to ROS that are specifically designed for manufacturing automation, with a focus on code quality and end user reliability.

Mirko Bordignon from Fraunhofer IPA opened the final ROSCon 2016 keynote by pointing out that ROS is still heavily focused on research and service robotics. This isn’t a bad thing, but with a little help, there’s an enormous opportunity for ROS to transform industrial robotics as well. Over the past few years. The ROS Industrial Consortium has grown into two international consortia (one in America and one in Europe), comprising over thirty members that provide financial and managerial support to the ROS-I community.

To help companies get more comfortable with the idea of using ROS in their robots, ROS-I holds frequent training sessions and other outreach events. “People out there are realizing that at least they can’t ignore ROS, and that they actually might benefit from it,” Bordignon says. And companies are benefiting from it, with ROS starting to show up in a variety of different industries in the form of factory floor deployments as well as products.

Bordignon highlights a few of the most interesting projects that the ROS-I community is working on at the moment, including a CAD to ROS workbench, getting ROS to work on PLCs, and integrating the OPC data protocol, which is common to many industrial systems.

Before going into deeper detail on ROS-I’s projects, Shaun Edwards from SwRI talks about how the fundamental idea for a ROS-I consortium goes back to one of their first demos. The demo was of a PR2 using 3D perception and intelligent path planning to pick up objects off of a table. “[Companies were] impressed by what they saw at Willow Garage, but they didn’t make the connection: that they could leverage that work,” Edwards explains. SwRI then partnered with Yaskawa to get the same software running on an industrial arm, “and this alone really sold industry on ROS being something to pay attention to,” says Edwards.

Since 2014, ROS-I has been refining a general purpose Calibration Toolbox for industrial robots. The goal is to streamline an otherwise time-consuming (and annoying) calibration process. This toolbox covers robot-to-camera calibration (with both stationary and mobile cameras), as well as camera-to-camera calibration. Over the next few months, ROS-I will be releasing templates for common calibration use cases to make it as easy as possible.

Path planning is another ongoing ROS-I project, as is ROS support for CANOpen devices (to enable IoT-type networking), and integrated motion planning for mobile manipulators. ROS-I actually paid the developers of the ROS mobile manipulation stack to help with this. “Leveraging the community this way, and even paying the community, is a really good thing, and I’d like to see more of it,” Edwards says.

To close things out, Edwards briefly touches on the future of ROS-I, including the seamless fusion of 3D scanning, intelligent planning, and dynamic manipulation, which is already being sponsored by Boeing and Caterpillar. If you’d like to get involved in ROS-I, they’d love for you to join them, and even if you’re not directly interested in industrial robotics, there are still plenty of opportunities to be part of a more inclusive and collaborative ROS ecosystem.

Next up: Kai von Szadkowski (University of Bremen)
Check out last week’s post: MoveIt! Strengths, Weaknesses, and Developer Insight

Dave Coleman (University of Colorado Boulder): MoveIt! Strengths, Weaknesses, and Developer Insight

Dave Coleman has worked in (almost) every robotics lab there is: Willow Garage, JSK Humanoids Lab in Tokyo, Google, UC Boulder, and (of course) OSRF. He’s also the owner of PickNik, a ROS consultancy that specializes in training robots to destructively put packages of Oreo cookies on shelves. Dave has been working on MoveIt! since before it was first released, and to kick off the second day of ROSCon, he gave a keynote to share everything he knows about motion planning in ROS.

MoveIt! is a flexible and robot agnostic motion planning framework that integrates manipulation, 3D perception, kinematics, control, and navigation. It’s a collaboration between lots of people across many different organizations, and is the third most popular ROS package with a fast-growing community of contributors. It’s simple to set up and use, and for beginners, a plugin lets you easily move your robot around in Rviz.

As a MoveIt! pro, Dave offers a series of pro tips on how to get the most out of your motion planner. For example, he suggests that researchers try using C++ classes individually to avoid getting buried in a bunch of layered services and actions. This makes it easier to figure out why your code doesn’t work. Dave also describes his experience in the Amazon Picking Challenge, held last year at ICRA in Seattle.

MoveIt! is great, but there’s still a lot of potential for improvement. Dave discusses some of the things that he’d like to see, including better reliability (and more communicative failures), grasping support, and, as always, more documentation and better tutorials. A recent MoveIt! community meeting resulted in a future roadmap that focuses on better humanoid kinematic support and support for other types of planners, as well as integrated visual servoing and easy access to calibration packages.

Dave ends with a reminder that progress is important, even if it’s often at odds with stability. Breaking changes are sometimes necessary in order to add valuable features to the code. As with much of ROS, MoveIt! depends on the ROS community to keep it capable and relevant. If you’re an expert in one of the components that makes MoveIt! so useful, you should definitely consider contributing back with a plug-in from which others can take advantage.

Next up: Mirko Bordignon (Fraunhofer IPA), Shaun Edwards (SwRI), Clay Flannigan (SwRI), et al.
Check out last week’s post: Real-time Performance in ROS 2

Jackie Kay (OSRF): Real-time Performance in ROS 2

Jackie Kay was upgraded from OSRF intern to full-time software engineer in 2014. Her background includes robotics education and path planning for autonomous lunar rovers. More recently, she’s been working on bringing real-time computing to ROS 2.

Real-time computing isn’t about computing at a certain speed— it’s about computing on schedule. It means that your system can return data reliably and on time, in situations where responding late is usually bad thing; and sometimes a really bad thing. Hard real-time computing is important in safety critical applications (like nuclear reactors, spacecraft, and autonomous vehicles), when taking too long thinking about something could result in a figurative or literal crash — or both. Soft real-time computing is a bit more forgiving, in that things running behind have a cost, but the data are still usable, as with packets arriving out of order while streaming video. And in between there’s firm real-time computing, where missing deadlines is definitely bad but nothing explodes (or things only explode a little bit), like on a robotic assembly line.

Making a system that’s adaptable and reliable, especially in the context of commercialization, often requires real-time computing, and this is why integrating real-time compatibility is one of the primary goals of ROS 2. Jackie’s keynote addresses many of the technical details underlying the ROS 2 real-time approach, including scheduling, memory management, node design, and communications strategies. To illustrate the improvements that ROS 2 has over ROS, Jackie shares benchmarking results of a ROS 2 demo running in real-time, showing that even under stress, implementing a high performance soft real-time system in ROS 2 looks promising.

To try real-time computing in ROS 2 for yourself, you can download an Alpha release and play around with a demo here: https://github.com/ros2/ros2/wiki/Real-Time-Programming

ROSCon 2015 Hamburg: Day 1 – Jackie Kay: Real-time Performance in ROS 2 from OSRF on Vimeo.

Next up: Dave Coleman (University of Colorado Boulder)
Check out last week’s post: State of ROS 2

Dirk Thomas, Esteve Fernandez, and William Woodall (OSRF): State of ROS 2

ROS has been an enormously important resource for the robotics community. It turned eight years old at the end of 2015, and is currently on its ninth official release. As ROS adoption has skyrocketed (especially over the past several years), OSRF, together with the community, have identified many specific areas of the operating system that need major overhauls in order to keep pace with maturing user demand. Dirk Thomas, Esteve Fernandez, and William Woodall from OSRF gave a preview at ROSCon 2015 of what to expect in ROS 2, including multi-robot systems, commercial deployments, microprocessor compatibility, real time control, and additional platform support.

The OSRF team shows off many of the exciting new ROS 2 features in this demo-heavy talk, including distributed message passing through DDS (no ROS master required), performance boosts for communications within nodes, quality of service improvements, and ways of bridging ROS 1 and ROS 2 so that you don’t have to make the leap all at once. If you’d like to make the leap all at once anyway, the Alpha 1 release of ROS 2 has been available since last September, and Thomas ends the talk with a brief overview of the roadmap leading up to ROS 2’s Alpha 2 release. As of April 2016, ROS 2 is on release Alpha 5 (“Epoxy”), and you can keep up-to-date on the roadmap and release schedule here.

ROSCon 2015 Hamburg: Day 1 – Dirk Thomas: State of ROS 2 – demos and the technology behind from OSRF on Vimeo.

Next up: Jackie Kay (OSRF) & Adolfo Rodríguez Tsouroukdissian (PAL Robotics)
Check out last week’s post: Lightning Talk highlights

The Robotics Revolution is Open Source

OSRF Software Engineer Louise Poubel was recently asked to write an article about her upcoming presentation at the IEEE Women in Engineering International Leadership Conference on open source robotics for Scientific Computing magazine. Check out the excerpt, below.

These are exciting times for robotics. In the past few years, we’ve started seeing robotic products make their way into our daily lives. We’re buying robotic vacuum cleaners and toy quadcopters. If you’re lucky enough, you’ve seen a robot dancing at a presentation, had a robot give you information at a store, or received a robot delivery at a hotel. Things that seemed like science fiction just a few years ago are looking like they could become reality in our lifetimes. We can more clearly see a future with package delivery drones and self-driving cars.

The complete post is here.

ROSCon 2016 location announced!

From ros.org:

Today may be April 1st, but this is no April Fools’ Joke: ROSCon 2016 will take place in Seoul, South Korea between October 8th and 9th! We’re very excited to get the ROS community together again to share all of the exciting work that has happened over the last year. ROSCon will directly precede IROS, which is in nearby Daejeon, Korea this year. If you’re already planning to attend IROS, just tack on a couple extra days and join us in Seoul!

Stay tuned to the ROSCon 2016 website for updates and submission deadlines. We look forward to seeing you in Seoul later this year!

ROSCon: Lightning Talk Highlights

The growing popularity of ROSCon means that it’s not always possible to schedule presentations for everyone that wants to give one. In addition, many people have projects that they’d like to share, but don’t need a full twenty minutes to present. That’s why forty minutes of each day at ROSCon are set aside for any attendee to present anything they want; all in a heartlessly rigid three-minutes-or-less format. Here are a few highlights:

Talk 1 (00:05 — 02:15) Víctor Mayoral Vilches, Erle Robotics

Victor is the CTO and co-founder of Erle Robotics. The Erle-Brain 2 is an open source, open hardware controller for robots based on the Raspberry Pi 2. It runs ROS, will support ROS 2, and can be used as the brain for all kinds of different robots, including the Erle Spider, a slightly misnamed hexapod that you can buy for €599.

Talk 3 (06:55 — 10:00): Andreas Bihlmaier, KIT

Andreas works on robot-assisted surgery using ROS at Karlsruhe Institute of Technology. KIT has a futuristic operating room full of robots and sensors designed to help human doctors and nurses through positional tracking, augmented reality, and direct robotic assistance. Andreas is also interested in collaborating with people on ROS Medical, which doesn’t exist yet but has a really cool logo anyway.

Talk 10 (29:20 — 31:30) Jochen Sprickerhof, Universitat Osnabrück

Through the efforts of Jochen Sprickerhof and Leopold Avellaneda, there are now ROS packages available upstream in Debian unstable and Ubuntu Xenial that can be installed from the main Debian and Ubuntu repositories. The original ROS packages have been modified to follow Debian guidelines, which includes splitting packages into multiple pieces, changing names in some cases, installing to /usr according to FHS guidelines, and using soversions on shared libraries.

ROSCon 2015 Hamburg: Day 1 – Lightning Talks from OSRF on Vimeo.

Next up: Dirk Thomas, William Woodall (OSRF) & Esteve Fernandez
Check out last week’s post: Ralph Seulin of CNRS

Ralph Seulin (CNRS, France): ROS for Education and Applied Research: Practical Experiences

The first step in doing something new, useful, and exciting with ROS is — without exception — learning how to use ROS. Ralph Seulin is part of CNRS in France, which, along with universities in Spain and Scotland, collaboratively offer a masters course in robotics and computer vision that includes a focus on ROS. Over four semesters, between 30 and 40 students go through the program. In this talk, Seulin discusses how ROS is taught to these students, as well as what kinds of research they leverage that knowledge into.

Before Seulin’s group could effectively teach ROS to students, they had to learn ROS for themselves. This was a little bit more difficult way back in 2013 than it is now, but they took advantage of the ROS Wiki , read all the books on ROS they could get ahold of, and of course made sure to attend ROSCon. From there, Seulin developed a series of tutorials for his students, starting with simulations and ending up with practical programming in ROS on the TurtleBot 2. Ultimately, students spend 250 hours on a custom robotics project that integrates motion control, navigation and localization, and computer vision tasks.

Seulin also makes use of ROS in application development. One of those applications is in precision vineyard agriculture because, as Seulin explains, “we come from Burgundy.” Using lasers mounted on a tractor to collect and classify 3D data, a prototype robot tractor can be used to analyze vineyard canopies and estimate leaf density. With this information, vineyards can dynamically adjust the application of agricultural chemicals, using just the right amount and only where necessary. Better for plants, better for humans, thanks to ROS.

ROSCon 2015 Hamburg: Day 1 – Ralph Seulin: ROS for education and applied research: practical experiences from OSRF on Vimeo.

Next up: Dirk Thomas, William Woodall (OSRF) & Esteve Fernandez
Check out last week’s post: Daniel Di Marco of Bosch

Daniel Di Marco (Bosch): Docker-Based Buildfarm for ROS

Daniel Di Marco is part of Deepfield Robotics, a 20 person agricultural robotics startup within Bosch. Deepfield makes robots that can, among other things, visually locate and then brutally destroy weeds by pounding them into the dirt. In order to deliver software to their customers, Deepfield decided to create its own build farm, and Di Marco’s ROSCon presentation explains why managing a build farm internally is a good idea for a startup.

A build farm is a system that can automatically create Debian packages for you, while running integrated unit tests and generating documentation. OSRF already supports all of ROS with its own build farm, so why would anyone want to set up a build farm for themselves instead? Simple, says Di Marco: it’s something you should do if you actually want to make money with your robots.

If ROS is a part of your thriving robotics business, running a build farm allows you to do several important things. First, since you’re hosting your code on your own servers, you can maintain control over it, protecting your intellectual property and any proprietary components that you may be using. Second, you can use your build farm to distribute your packages directly to your customers, who are (presumably) paying you, and not to just anybody who swings by and wants to snag them. And lastly, you can decide what versions of different packages you want to keep using, rather than being subjected to upgrades that may not work as well.

Di Marco concludes by discussing why Docker is an easy and reliable foundation for a build farm, and how to get it set up. Most of the process has been scripted, thanks to some hard work at OSRF, and Di Marco walks us through an initial deployment to help you get your own build farm up and running.

ROSCon 2015 Hamburg: Day 1 – Daniel Di Marco: Docker-based ROS Build Farm from OSRF on Vimeo.

Next up: Ralph Seulin, Raphael Duverne, and Olivier Morel (CNRS – Univ. Bourgogne Franche-Comte)
Check out last week’s post: Ruffin White of Georgia Tech

Improving the TurtleBot learning experience using simulation

During her Outreachy internship at Open Source Robotics Foundation, Nadya Ampilogova worked on a TurtleBot User Experience project.

The goal was to extend learn.turtlebot.com with lessons taking advantage of the simulation environment available in Gazebo. The use of robot simulation instead of a physical robot makes the tutorials accessible to a larger audience. All examples are with TurtleBot because it is a common way to start learning robotics. Many universities use the TurtleBot when teaching introductory robotics courses. In creating the lessons, Nadya focused on making the content engaging and accessible by integrating images and videos. The topics include how to install software, setup tools, write your first program to control a TurtleBot and lots more. Upon completion of this tutorial you will be able to create a TurtleBot application and test it in simulation.

The result of the project is twenty lessons about TurtleBot in simulation. They cover not only basic features but also give a brief overview of more complicated subjects. This tutorial makes studying robotics easier for people who may not have access to a real robot all of the time but who have a computer that can run the simulator.

You can find the tutorial on learn.turtlebot.com. This internship was a part of the Outreachy Program. You can read more about Nadya’s internship on her blog.