Presentation: Open Source Robotics: Hands on with Gazebo and ROS 2

Track: Future of Human Computer Interaction

Location: Seacliff ABC

Duration: 2:55pm - 3:45pm

Day of week:

Slides: Download Slides

Level: Intermediate

Persona: Backend Developer, Developer, General Software

This presentation is now available to view on InfoQ.com

Watch video with transcript

What You’ll Learn

  1. Find out what is Gazebo and ROS, tools from Open Robotics to set up and run robots.

  2. Learn how to use some of the existing robotics tools.

  3. Watch a demo on how to prototype a robot.

Abstract

In large part, the recent advancements in robotics have been made possible by open source tools. Open Robotics, a nonprofit organization dedicated to the development, distribution, and adoption of open source software in robotics, supports two main projects — ROS (Robot Operating System) and Gazebo, a multirobot simulator — both of which are widely used by the global robotics community, including industry, academia, and hobbyists. 

ROS is a framework that lets you quickly set up the various parts of a robot and get them all to work together as a meaningful application. ROS does this by setting a common transport layer for all the software inside the robot, from sensors and actuators to decision making. Around the common transport layer, there are several tools built to help developers introspect and diagnose their robots with ease. Gazebo is a simulator that calculates rigid-body dynamics, generates all kinds of sensor data, and allows user interaction through both a programming API and a powerful graphical interface. Some of the uses for Gazebo include robotics competitions, continuous integration, prototyping, machine learning and education. 

In this talk, Louise will give an overview of ROS and Gazebo, the problems they've been solving so far and what's in the roadmap for the future. In the second half of the talk, a hands-on demo will walk through the creation of a robot in simulation and controlling and inspecting it using ROS 2, the next generation ROS.

Question: 

Tell us about the work that you do today.

Answer: 

I've been working at Open Robotics for almost four years now. Since the beginning, I was a contributor to the software. I started as an intern remotely. Since I joined I have been in the Gazebo team, which is the simulator team. That's where the big chunk of my work is, both on the simulator itself which is in C++ (I’ve worked on a lot of graphical tools for the simulator), and also a lot of web. We have a web client that runs on mobile or on desktop, which is in JavaScript and I was very involved with it. Most recently I started joining the ROS team effort as well. We have two big projects, Gazebo and ROS. On the ROS side, we are focused mostly on ROS 2 right now, which is the next generation that is bringing a lot of updated features to ROS. One of the most recent projects I’ve been involved with was integrating Gazebo with ROS 2, so you can simulate ROS 2 robots easily.

Question: 

What's this talk about?

Answer: 

The idea was to do a general overview of Gazebo and ROS, where they came from, who is using them, what you can do with them. Very high level, not so focused on the technical details. Then, in the second half of the talk, jumping into a live demo, how we go about constructing a robot in simulation, and then showing some of the tools that you can use in ROS to control them, using the command line, or some of the visualization tools to take data from the simulation and visualize that as if it was data from the real robot. I’ll talk about how you can share the same tools that you would use in simulation with the real robot. And also if we have time, look a little bit into the C++ code to see how to integrate custom controllers.

Question: 

What are some of the use cases that people are using ROS today?

Answer: 

ROS can be used for all sorts of robots. They're using it with quadcopters, self-driving cars, with warehouse robots, agricultural robots, home robots. It's not tied to one specific shape of a robot, or one specific application. It's more general purpose than that. Yeah, people are using it all over the place.

Question: 

Is ROS written with C++, and what is the code used against ROS?

Answer: 

There's ROS 1, which is the code most common right now, and there's ROS 2, this next generation that is under active development. The original code was both in C++ and Python, having the same API, and besides that, the community would implement other languages like Java, JavaScript, Lisp... If there is a community interested in that language people would write wrappers for that language. For ROS 2 we are using C to make the client libraries for different languages as thin as possible, so they all share the underlying C implementation. We are moving the C++ and Python libraries on top of that, and there are members of the community already writing wrappers for Java, Rust, C# and others.

Question: 

What is the persona you are targeting with this presentation?

Answer: 

It's a bit technical, so I'm going to say it's someone who's a developer, probably not very familiar with the robotics space and wants to know what's going on, what are people doing, how people in robotics approach problems, what kind of tools they are using, and the kind of problems they are dealing with. There are a lot of problems in robotics which are different from other types of software development since we have these real-world components to deal with. That's where the simulation comes in. It's a very powerful tool that’s being used for CI of robots for example, because you can't easily have CI running on real robots. Or when training machine learning algorithms; you need thousands of iterations of your robot, you are not going to run that in real time in a physical robot, you're going to do it in a simulation, so you can speed up and run thousands of iterations.

Question: 

What do you want this developer to walk away with?

Answer: 

I want people to get a good idea of what developers are using in robotics. I hope they get a good idea of how to start if they want to start. It would be cool if they got excited with some of the problems robot developers are facing right now. If you're doing mobile and you watch this robotics talk maybe you bring a different point of view to that, you can combine your previous view with the robotics view. It would be nice if people would see themselves programming robots in the near future.

Question: 

When you say 'get started' what do you mean? Tools or design constructs?

Answer: 

A little bit of both. I'll start with some pointers on languages and tools, I'll give links where to start. Then I'll jump into more specific robotics stuff. If you want to develop a mobile robot, it’s useful to know how to prototype it very quickly in simulation to start running something, and then how would you tie that into ROS. Gazebo is a separate application, so you need to make that bridge. Once you’re in ROS land, how do you get the data you need to train your machine learning algorithms, or how do you control your robot?

Speaker: Louise Poubel

Software Engineer @OpenRoboticsOrg

Louise Poubel is a software engineer at Open Robotics working on free and open source tools for robotics, like the robot simulator Gazebo and the Robot Operating System (ROS). Louise first got involved with Open Robotics through GNOME’s Outreach Program for Women. Louise grew up in Brazil and went to college in Japan, where she received her BS in electromechanical engineering from Chiba University. She also holds a joint MEng in advanced robotics from École Centrale de Nantes and Warsaw University of Technology, where her research focused on real-time, whole-body human motion imitation by humanoid robots.

Find Louise Poubel at

Similar Talks

Evolution of Edge @Netflix

Qcon

Engineering Leader @Netflix

Vasily Vlasov

Mistakes and Discoveries While Cultivating Ownership

Qcon

Engineering Manager @Netflix in Cloud Infrastructure

Aaron Blohowiak

Monitoring and Tracing @Netflix Streaming Data Infrastructure

Qcon

Architect & Engineer in Real Time Data Infrastructure Team @Netflix

Allen Wang

Future of Data Engineering

Qcon

Distinguished Engineer @WePay

Chris Riccomini

Coding without Complexity

Qcon

CEO/Cofounder @darklang

Ellen Chisa

Holistic EdTech & Diversity

Qcon

Holistic Tech Coach @unlockacademy

Antoine Patton