ROS Contributor Spotlight: Ian McMahon

As part of our 10-year anniversary, we've selected a few key early contributors and asked them about their experiences with ROS.

Name: Ian McMahon

Company: Rethink Robotics

Favorite Fictional Robot: Probably C-3PO. Despite the fact that he is a worrywart, he always tells the main characters their exact odds of failure.

How did you get into robotics?

I have wanted to work in robotics for nearly as long as I can remember. I found myself intrigued about robotics after watching the Star Wars trilogy on loop for the entire winter holiday when I was about 8 years old. I remember being thoroughly surprised to find out that complex robots like C-3P0 didn't exist (yet) in the real world. Over the years, this interest was fed with the Lego Mindstorms Robotics Invention System with the RCX programmable brick. Then in high school, robotics turned into a full-blown passion of mine through FIRST Robotics. My dad (who is not an engineer) and I started the FIRST Team 1143 Cruzin' Comets in 2002 with the help of the community and three Lockheed Martin engineers who donated their time. After finishing my undergraduate degree in engineering, I came back as the electrical & programming mentor to the team in 2010. Now in its fifteenth year, Team 1143 is still going strong!

What is your current area of ROS development?

I am currently developing the ROS and Gazebo simulator interfaces for Rethink Robotics' Sawyer. These interfaces are used both by Rethink's developers to build Sawyer's Manufacturing software stack, as well as for end-users to program the robot in Research and Education mode. ROS runs down to the core of Rethink's robots: after receiving the state of the robot from the joint control boards, a ROS process then serves as our communication medium with the higher level motion planning framework and behavior tree. Our team wrote a new ROS Client Library for this purpose, which we recently open sourced: rosnodejs. Rethink's behavior tree and user interfaces are based on web technology with JavaScript and Node.js, so we built a new client library to facilitate integrating that technology into our ROS framework. The engineer who leads this development, Chris Smith, actually gave a talk on rosnodejs at ROSCon 2017.


How did you first hear about ROS?

I first heard about ROS from a May 2010 IEEE article outlining the institutions that were selected for the PR2 Beta program. Immediately intrigued by the humanoid PR2 robot, I was also a bit shocked that it was programmed with the completely open source software framework, ROS. As a budding roboticist and open source enthusiast, I was thrilled that both complex robotics and open source code could exist in the same platform. This article came at a critical moment for me as in May 2010 I was in the middle of deciding between schools for my masters degree. I made my grad school choice after seeing that one of the schools on my list, the University of Pennsylvania, was selected for the PR2 Beta program. While at Penn, I focused on visual and haptic perception research with the PR2.

How long have you been working with ROS?

Just about seven and a half years now. After reading about ROS in 2010, I downloaded Box Turtle on my Mac, discovered it was non-trivial to install on anything other than Linux, and installed Ubuntu on my computer for the first time. Discovering that I loved Linux was just a happy side effect of using ROS. Since then, I've used ROS with several platforms over the years, including the PR2, Lego NXT & EV3, Atlas, Baxter and Sawyer robots.

What's your favorite thing about ROS? Least favorite?

Far and away my favorite thing about ROS is the community's ethos of working together rather than against each other on hard robot problems. For far too long, robot software has been developed in isolation, with each new generation of roboticists needing to reinvent the wheel with a monolithic program that does everything. While no individual piece of ROS will give you a fully functional robot software stack, taken together, and massaged a bit, a roboticist can "apt-get install" their way to a viable robotics software architecture, and then spend more time focusing on building their own robot applications. My least favorite aspect of ROS is its lack of support at the embedded layer. Larger robots typically usually use embedded hardware for commanding actuators and reading sensor values before communicating back with a more powerful host computer. Although ROS is fine if you're running on an embedded computer as powerful as a Raspberry Pi, it is not as useful for smaller (16 or 32-bit) microcontrollers. With smaller microcontrollers, ROS' memory and CPU footprint are too large to run properly, which is further compounded by ROS' lack of ability to communicate with the rest of the system in real time. At Rethink we built our own communications protocol to interface with the distributed Joint Control Boards (JCB's) of Baxter and Sawyer. The robot's ROS communication begins only after the JCB data reaches the robot's computer. It would be wonderful to have a lightweight and real time compatible implementation of ROS. I believe this is one of the goals for FastRTPS in ROS 2, to provide system-level ROS communication while running on things as small as 16-bit microcontrollers.

What do you do differently because of ROS? Or How would you do things differently if you didn't have ROS?

ROS and the ROS community touch several aspects of my day-to-day work, so this is actually a tough question. If I didn't have access to ROS, maintaining a complete and fully-featured researcher's interface to the Baxter and Sawyer robots would be significantly more difficult. As it is currently written, I am able to expose some of the same interfaces on Baxter and Sawyer for researchers that the manufacturing software stack uses to control the robot, without modifying much of the robot's source code. This means I can focus my development resources on the open source framework that surrounds and interfaces with the robot (which we call the Intera SDK). I also count on the community resources and tutorials on the ROS Wiki and ROS Answers to explain the underlying mechanisms of communication to users of the Rethink Robots. All too often, I find myself visiting these resources for my own development work.

What has been your favorite ROS-based project you've worked on and why?

My favorite ROS project is MoveIt!. I have worked with the MoveIt! team for the last three years in supporting Baxter and Sawyer. MoveIt! is a motion planning framework that enables complex robot arms to effectively plan arm motion paths in space while avoiding obstacles using sensor data. This framework is generic enough to function on most robot arms and yet complex enough to allow robots to complete tasks akin to the Amazon Picking Challenge. The MoveIt! project is used both in research and in industry through ROS-Industrial. Through its plugin framework, one can swap in different Inverse Kinematics Solvers and Motion Planners, and use a variety of vision sensors. This gives users giant amounts of flexibility to integrate MoveIt! with a new robot. All of this brings robot manipulators closer to being useful in arbitrary real-world scenarios, which every roboticist knows is a tall order.

This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

ROS Contributor Spotlight: Vladimir Ermakov

As part of our 10-year anniversary, we've selected a few key early contributors and asked them about their experiences with ROS.

Name: Vladimir Ermakov

Company: Co-Founder and CEO, GlobeIn

Favorite Fictional Robot: R. Daneel Olivaw; Robert from His name was Robert; Electronic from The adventures of Electronica

How did you get into robotics?

Firstly I was interested by electronics at school, later I was interested in programming, and hobby robotics is the area where both of these interests crossed. Also, science fiction books.

How did you first hear about ROS?

Somewhere on the Internet I'd heard about systems like the Player/Stage Project, and later I learned about ROS when Willow Garage presented the PR2.

What is your current area of ROS development?

Mavros, which is an extendable communication node that allows a ROS system to command hobbyist flying drones. It now also includes ground rovers and underwater robots.


What has been your favorite ROS-based project you've worked on?

I started a hobby project of a flying plane that should have been able to do dynamic path planning. That project didn't succeed, but as a side project, I made a comm node that was later accepted by the ROS community. It's incredible what people have done using my node.


This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

ROS Contributor Spotlight: Kaijen Hsiao

The success of ROS depends upon the contributions of thousands of individuals. In honor of our 10-year anniversary, we've decided to shine a light on a few of them.


Name: Kaijen Hsiao

Company: Co-Founder and CTO, Mayfield Robotics

Favorite Fictional Robot: Tachikomas from Ghost in the Shell. "I love how even though they are these kick-ass, spider-like combat robots, they have adorable, playful personalities and childlike voices that make them really endearing."


How did you get into robotics?

I got into robotics in college. There were all these interesting robots being developed at MIT that I was fascinated by-- in particular, the social robot Kismet and the hopping robots from the Leg Lab. And I thought it would be really cool to make robotic pets someday, and to some extent that's what I'm finally doing now.

How long have you been working with ROS?

Since 2008, even before the first official ROS release (Box Turtle).

What is your current area of ROS development?

We use ROS on-board Kuri, Mayfield's home robot.

What are your favorite and least favorite things about ROS?

My favorite thing about ROS is that so many of the difficult basics of getting a robot up and running are just done for you-- especially things like visualization, message passing, and build systems. Also, that there are a ton of open-source libraries that are ROS-compatible, that allow you to quickly prototype something and get a demo running.

My least favorite thing about ROS is how difficult it is to make a ROS-based system completely stable and robust, especially in the face of things like system time changes, high CPU utilization, or flaky networks.

What has been your favorite ROS-based project you've worked on?

Kuri has been my favorite ROS-based project so far. She is the culmination of a long-held dream of mine, to make personality-filled, adorable pet robots.


This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

ROS Contributor Spotlight: Gijs van der Hoorn

As part of our 10-year anniversary, we've selected a few key early contributors and asked them about their experiences with ROS.

Name: Gijs van der Hoorn

Company: Cognitive Robotics lab, Delft University of Technology

Favorite Fictional Robot: Johnny 5 from Short Circuit. "Unfortunately, working with robots all the time has made me somewhat dislike robots as they are portrayed in popular films and shows these days. Suspense-of-disbelief is completely impossible when you notice tenths of things that are completely unrealistic or not even remotely possible. However, I didn't have that problem when I was younger."

What is your current area of ROS development? On which robot? The Delft University of Technology is a large contributor to ROS-Industrial, and we also host the scientific advisor to the European ROS-Industrial Consortium. Since January 2017, my colleagues and I are leading the "ROS-Industrial Quality-Assured Robot Software Components" or ROSIN project, part of the EU's H2020 research program. In that project we have about 3.5 million EUR available for grants with which we can financially support a wide variety of tasks that aim to improve the current state of the art in ROS-Industrial and ROS (think development of components, standardisation work, security and licensing audits, writing documentation, etc). Personally I (try to) take care of the day-to-day maintenance of the public ROS-Industrial packages as much as they fall under my responsibility. As such I'm not really working on a single robot, but try to make sure other people can work with the robots we support through our drivers and other packages. And as a ROS-Industrial tech co-lead (together with Levi Armstrong from SwRI) I try to make sure ROS-Industrial stays useful in industrial contexts by helping out with new integration efforts with factory automation technology, designing and realising new functionality and supporting the project managers of all three ROS-I consortia with advice. I am also a ROS Answers moderator where I keep an eye on day-to-day 'operations': make sure newcomers follow 'the rules', avoid duplicate questions as much as possible (our collective memory as ROS users is rather fragmentary it seems) and answering questions if I know the answer.

ROSCon 2017 Vancouver Day 1: How ROS cares for Quality from OSRF.

How did you get into robotics?

I was interested in technology from a young age. At first it was all Legos, but I also started playing with computers. Bringing those together was not easy in those days (not like today, with products like NXT and EV3), but I'd quickly realised that combining them would be when the really interesting things could be done. While studying for my CS degree I got invited by an engineering professor to participate in their RoboCup Humanoid League team. With other team members taking care of the hardware, I could focus on the software and it was a very rewarding experience. To realise that you could use software-- a very intangible and, sadly, mostly invisible thing-- to directly control such a complex but very tangible machine and get some meaningful behaviour out of it was (and still is) fantastic.

How did you first hear about ROS?

While researching frameworks that supported component based software engineering in the context of experimental robotics, I read a large number of papers describing just about all of them at the time. Some papers kept mentioning something called 'ROS'. As it was relatively new, clearly well maintained, and still actively developed, I added it to my list of candidates to take a better look at.

What are your favorite and least favorite things about ROS?

My favorite thing is how ROS made widespread reuse of functional software components for experimental robotics feasible in such a relatively short amount of time. ROS was definitely not the only framework that set out to do this, but it caught on and has really changed the way software engineering for robotics is done in academia. And we're starting to see it in industry now, too. Although there are a great number of things that ROS could've done better, I believe it (or the people behind it) chose to be pragmatic. They designed something that works and can be improved upon, rather than trying to design the ultimate robot software framework that no one ever gets to see or use.

My least favorite thing is a perceived gradual decline of sense of community. Even though software is still shared, it's rare to find a common sense of purpose, or the willingness to invest in something that doesn't directly benefit the person who needs it right then. Questions on ROS Answers are left in limbo, discussions in issues go silent and PRs become stale as those who opened them have since moved on or have decided to keep patching their local fork instead of contributing upstream and improve the situation for the entire community.

How would you have do things differently if you didn't have ROS?

Buying hardware and designing software. Re-use of standardised components really does make it possible to almost instantly start working on your own research or application, provided you use hardware and electronics that are already compatible with ROS. The separation of concerns allowed for (and high locality of changes supported by) the component based approach of ROS really allows us to design and implement components in isolation, reducing the mental workload for researchers significantly: instead of having to consider the entirety of a robotic application, they can focus on the specifics of the component they are working on. It has also made testing and simulation easier, and not having to share your hardware platform with your colleagues (because you can simulate it) is a huge advantage as well.


This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

ROS Contributor Spotlight: Tom Moore

The success of ROS depends upon the contributions of thousands of individuals. In honor of our 10-year anniversary, we've decided to shine a light on a few of them.

Name: Tom Moore

Company: Senior Roboticist, Locus Robotics

Favorite Fictional Robot: WALL-E. "I love the bit where he has a cup full of spoons and a cup full of forks, and he's trying to classify a spork as one or the other, and ends up just placing it between the two cups. He also repairs himself using spare parts."

How did you get into robotics?

I was introduced to artificial intelligence, artificial life, and robotics as an undergraduate student. The thing that really got me with robotics was the idea of embodied AI, and the fact that this autonomous agent was moving around in the same world as I was, perceiving and affecting it in the same way (or, in many cases, just running into things). I spent a lot of time with the university's Pioneer 2, watching it drive around our computer science lab and try to generate rudimentary maps using its sonar sensors. When I decided to go to grad school, it was an easy decision as to what my focus would be.

What is your current area of ROS development? On which robot?

In the wider ROS ecosystem, I tend to focus on state estimation, though I like to chip in with occasional PRs to some of the ROS tools. I also am trying to get involved in ROS 2 development. Within Locus, I work within a lot of areas, from state estimation to navigation to the odd bit of ROS build farm maintenance. Our primary platform at Locus is known as the LocusBot, and pretty much all of my time is spent working with it.


What are your favorite and least favorite things about ROS?

If I had to choose just one thing, I think ROS bags are fantastic. The ability to replay live data is absolutely critical for development, especially in scenarios where you are having trouble replicating a bug. As soon as you manage to replicate it while recording, you can rapidly diagnose and fix the problem. My least favorite thing about ROS is that supporting a large number of robots in a multi-robot scenario is a challenge, but that's going to be addressed in ROS 2!

What would you like to change about ROS?

My answer will be a little hypocritical, as it's something of which I am definitely guilty. As ROS has matured and its user base has shifted from academia to industry, I find that most packages are slow to implement significant code changes or accept pull requests, especially those that might cause incompatibilities with older versions. I'm assuming that, as is the case for me, most package maintainers are too busy with their jobs to spend a significant portion of time maintaining packages. This is a good thing, in a way, because it means that those package authors and maintainers are too busy making a living using ROS to devote time to their packages. It can lead to a sense of things getting a bit stale, though. I think more of us need to take the time to bring in new developers and maintainers for our packages.

How would you have do things differently if you didn't have ROS?

Where do I start? When I started working in robotics, every grad student or company seemed to be reinventing the wheel for everything. Worse, this problem would even persist across projects within the same organization. I used to write a lot of monolithic processes whose classes were analogous to ROS nodes. Want to visualize your data? Hack something together quickly using a language with a simple drawing library. Want to replay the data? Too bad! You have to recreate that bug using a live robot and hope that you trigger it this time, and then sift through your insane debugging logs to figure out what's wrong. This wasn't the case everywhere (I worked for one company that had independently developed their own very ROS-like inter-process comms), but I think it was pretty common.

With ROS, I can fire up a powerful visualization tool and instantly see what's happening with the robot, or give it a command to drive somewhere. I can record and replay data to my heart's content. I can distribute my processes and give them very specific roles, and then easily swap out that component for another one as the software matures. It moves the starting line for any serious robotics project ahead by years.


This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

10th Anniversary Coverage

Looks like we weren't the only ones that remembered the ROS anniversary yesterday. Below are a few of our favorite (admittedly self-serving) quotes from some recent press coverage:

Wizards of ROS: Willow Garage and the Making of the Robot Operating System
IEEE Spectrum, by Evan Ackerman and Erico Guizzo

Evan Ackerman interviewed eight of the people involved in the early days of ROS for an amazing oral history of how ROS came to be.

"Could we actually create something that would enable people to build on each other's results rather than continuing this cycle of 90 percent duplicating what someone else has already done, with a little bit at the end of something new, if you're lucky." -- Keenan Wyrobek

"That's one of the things that helped the design of ROS, I think: From Day 1, more than one robot was running on the code." -- Morgan Quigley

"We were going to build both state-of-the-art hardware and software, with the goal of being a LAMP stack for robotics: You'd be able to take its open-source software, put your business model on top, and you'd have a startup" -- Tully Foote

"Across the board, the early adopters were adopting it without us even telling them that they should--they just saw it out there, thought it was cool, and picked it up." -- Brian Gerkey

"It's crazy that Willow Garage agreed to let us just put all our code out in the open. Not only did we do open source, we did it for real--a lot of companies will develop their stuff internally, and occasionally put out releases. But one of the things that this anniversary celebrates is that we committed to every commit that we did being in the open, on a publicly available server. I think it's an amazing thing for a company to decide to do. We basically gave away millions worth of work product, and that's a big deal." -- Ken Conley

Happy birthday ROS: A decade of open-source robotics
ZDNet, by Greg Nichols

"You can point to a lot of seminal moments in robotics history, but this is a top contender for the year modern robotics was born."

The Origin Story of ROS, the Linux of Robotics
IEEE Spectrum Guest Post, by Keenan Wyrobek

"In this post I want to share some untold parts of the early story of the Robot Operating System, or ROS, to hopefully inspire those of you currently pursuing your 'crazy' ideas."

Powering the world's robots--10 years of ROS
Science Robotics, by Lin Zhang, Robert Merrifield, Anton Deguet and Guang-Zhong Yang

"...the success of ROS also relies on contributions from a vibrant and highly productive community that has gathered critical momentum."

science.png

10 Memorable ROS-based Robots
Robotics Trends

Robotics Trends took a look at 10 memorable ROS-based robots throughout the years.

ROS Turns 10!

We're happy to be celebrating the 10th anniversary of ROS today!

On this date in 2007 the first commit was made to the ROS project on SourceForge.

Since then, ROS has grown from that first public commit to over 200000 commits made by more than 2800 individuals from around the world. These contributions have built up to over 4.5 million significant lines of code which - following standard development effort estimators - would take 169 full time developers 8.5 years.



As an open source community it's sometimes very hard to quantify the involvement in the project. To help measure what we can, we started putting together an annual Metrics report. Using these snapshots the progress of ROS is quite striking.

Charting the information over time can be seen in this post. Showing things like Monthly Unique IPs or Total Downloads year over year.

unique_ips.png

total_downloads.png

This year being a large anniversary we're happy to see that there are many others who are recognizing this historic milestone. There is already coverage in Science Robotics, , ZDNet and IEEE Spectrum

To help highlight the greater ROS community we've running a series of blog posts about some of the ROS Contributors who have helped grow the community.

Another way that we're celebrating is by making anniversary edition t-shirts available for CTurtle, Indigo, and Kinetic. You can order from the:

CTurtle was our first release with a full logo. And Indigo and Kinetic are our new current Long Term Support Releases. Get your anniversary shirt to support the ROS community by showing how many of us there are. This is a limited campaign and will end on November 21.

Of course if you'd rather have stickers, they are available from Sticker Mule.

For those of us involved in ROS since its inception, these last 10 years have gone by in the blink of an eye. We've gone from a first commit to an industry standard. The enthusiasm of this community, the creativity of the work already accomplished, and the plans to come all combine to paint a very bright picture of the future of ROS. All of us at Open Robotics and very much looking forward to the next 10 years, and beyond.

ROS Contributor Spotlight: Allison Thackston

The success of ROS depends upon the contributions of thousands of individuals. In honor of our 10-year anniversary, we've decided to shine a light on a few of them.


Name: Allison Thackston

Company: Principal Research Scientist, Toyota Research Institute

Favorite Fictional Robot: R2-D2. "He was always looking out for Luke and seemed to always have the right tool."

How did you get into robotics?

I've always enjoyed the idea of robots helping people. I have fond memories of programming Logo when I was a kid, and of watching movies with robots in them.

How did you first hear about ROS?

I first heard about ROS when I began working at NASA on the Robonaut project. When Robonaut was given the opportunity to receive an upgrade, the team took advantage and upgraded the entire software stack. Now, a ROS-enabled robot is orbiting the earth in the International Space Station.

What is your current area of ROS development?

I currently work across many ROS packages. Toyota's Human Support Robot (HSR) is currently built on top of ROS. It's also the standard platform for the RoboCup@Home tournament and available for universities to participate


What are your favorite and least favorite things about ROS?

My favorite thing about ROS is how easy it is to collaborate using it, especially with the research community. A lot of the things I would change are being addressed in ROS 2: more reliable communications, and better control of messaging.

How would you have do things differently if you didn't have ROS?

With ROS I'm able to easily get a robot up and running. If I didn't have it I would have to either recreate my own version, or create a custom stack for each robot.


This is part of an ongoing series: ROS Contributor Spotlight

Have your own ROS story to tell? Let us know at comm@openrobotics.org. And be sure to check back when we celebrate the 25th, 50th, and 100-year anniversaries of ROS.

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


Please submit content to be reviewed by emailing ros-news@googlegroups.com.

Monthly Archives

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