You are viewing content from a past/completed QCon

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: Wednesday

Level: Intermediate

Persona: Backend Developer, Developer, General Software

Share this on:

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

Proposed Tracks

  • Practices of DevOps & Lean Thinking

    Practical approaches using DevOps and a lean approach to delivering software.

  • Operationalizing Microservices: Design, Deliver, Operate

    What's the last mile for deploying your service? Learn techniques from the world's most innovative shops on managing and operating Microservices at scale.

  • Developer Experience: Level up your Engineering Effectiveness

    Improving the end to end developer experience - design, dev, test, deploy and operate/understand.

  • Architectures You've Always Wondered About

    Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, & more

  • Machine Learning without a PhD

    AI/ML is more approachable than ever. Discover how deep learning and ML is being used in practice. Topics include: TensorFlow, TPUs, Keras, PyTorch & more. No PhD required.

  • Production Readiness: Building Resilient Systems

    Making systems resilient involves people and tech. Learn about strategies being used from chaos testing to distributed systems clustering.

  • Building Predictive Data Pipelines

    From personalized news feeds to engaging experiences that forecast demand: learn how innovators are building predictive systems in modern application development.

  • Modern Languages: The Right Language for the Job

    We're polyglot developers. Learn languages that excel at very specific tasks and remove undifferentiated heavy lifting at the language level.

  • Delivering on the Promise of Containers

    Runtime containers, libraries and services that power microservices.

  • Evolving Java & the JVM

    6 month cadence, cloud-native deployments, scale, Graal, Kotlin, and beyond. Learn how the role of Java and the JVM is evolving.

  • Trust, Safety & Security

    Privacy, confidentiality, safety and security: learning from the frontlines.

  • Beyond the Web: What’s Next for JavaScript

    JavaScript is the language of the web. Latest practices for JavaScript development in and out of the browser topics: react, serverless, npm, performance, & less traditional interfaces.

  • Modern Operating Systems

    Applied, practical & real-world deep-dive into industry adoption of OS, containers and virtualization, including Linux on.

  • Optimizing You: Human Skills for Individuals

    Better teams start with a better self. Learn practical skills for IC.

  • Modern CS in the Real World

    Thoughts pushing software forward, including consensus, CRDT's, formal methods & probabilistic programming.

  • Human Systems: Hacking the Org

    Power of leadership, Engineering Metrics and strategies for shaping the org for velocity.

  • Building High-Performing Teams

    Building, maintaining, and growing a team balanced for skills and aptitudes. Constraint theory, systems thinking, lean, hiring/firing and performance improvement

  • Software Defined Infrastructure: Kubernetes, Service Meshes & Beyond

    Deploying, scaling and managing your services is undifferentiated heavy lifting. Hear stories, learn techniques and dive deep into what it means to code your infrastructure.