ROS Actions

Master ROS Actions and Create More Complex Robotics Applications
ROS Actions
File Size :
3.59 GB
Total length :
6h 42m



Edouard Renard


Last update

Last updated 1/2022



ROS Actions

What you’ll learn

Master ROS actions
Use the SimpleActionServer, SimpleActionClient, ActionServer and ActionClient classes
Create more complex robotics applications
Get more practice on ROS with Object Oriented Programming
Unleash the potential of ROS communication
And even more ROS best practices

ROS Actions


ROS basics (at least nodes, topics, services)
Some programming knowledge in Python or C++
You are familiar with Linux and how to use a terminal


Learning ROS is hard… But you’ve made it. You have some good basics about ROS nodes, topics, services, … This is a pretty good start. And you want to take your skills to the next level.Or you’re already in the process of learning ROS actions, but you have some real trouble finding documentation and tutorials online.A great ROS developer must know about ROS actions, and must be able to use them efficiently when required. Topics, Services and Actions are the 3 communication tools that will allow you to create any complex robotic application.Warning !!! Before continuing, I want to be sure you understand that this course is not a course for total ROS beginners. You have to get some ROS basics first if you want to be able to follow the pace of this course.Also, this course targets the first version of ROS, or ROS1. This is not a ROS2 course.→ Why this course ?When I first started with ROS actions, my progress was really, really slow. I didn’t find any structured resource or tutorial to go beyond the very basic stuff. It took me a very long time (several months) to finally have a clear understanding.This course is the course that I wish I had when I started. Practical and to the point. Showing you directly how things work, how you can quickly start and build more more complex applications.→  Now, why should you choose my course ?In the past I have developed a complete ROS software for an entire 6 axis robotic arm. I’m telling you that, because by developing this robot, I learned (the hard way) what I really needed to know to build things that actually work.My experience with Robot Operating System is not only about university work or a weekend hobby : I actually co-founded a business with a robot powered by ROS. By doing so, I had to focus on going to the point, finding what is useful, and what is not.So today, with the practical vision that I’ve developed, I know exactly what you need to learn at the beginning if you want to get serious about building more complex robotic applications.And getting serious means mastering ROS actions. One day or another, you’ll need to use them or else you’ll be stuck.→ What is this course aboutThis course is a complete course about ROS actions. I’ll show you each part of the process, step by step, and explain all the code that I write.In the first part of the course, you’ll start using ROS actions with the SimpleActionServer and SimpleActionClient classes. Those parts will let you understand the key concepts behind ROS actions.The second part is focused on using ActionServer and ActionClient classes. Those are more difficult to understand but allow you to create far more complex applications. You will learn how to handle multiple goals, how to change the server goal policy, how to put goals in a queue, etc.During the course, you will practice through activities and challenges. Practicing is the key if you want to learn efficiently.I will mostly use Object Oriented Programming. That’s a great opportunity for you to improve your OOP skills, which is really working well with ROS. Also, all the code will be written in both Python and C++ ! So… Don’t wait too much and enroll in this course to go to the next level of ROS!During the course I will also give you all the best practices that I know when developing with the Robot Operating System. So that’s another opportunity to get some practical insights that will help you develop better and more complex robotics applications.


Section 1: Introduction

Lecture 1 Welcome!

Lecture 2 Why ROS Actions ?

Lecture 3 What are ROS Actions ?

Lecture 4 Setup your Environment for this Course

Lecture 5 Check this if you are using ROS Noetic (instead of Melodic)

Lecture 6 How to get the most out of this course

Section 2: Discover Actions With SimpleActionClient/SimpleActionServer

Lecture 7 Intro

Lecture 8 Create an Action Definition and Generate the Action Messages

Lecture 9 Create a Server with the SimpleActionServer

Lecture 10 Create a Client with the SimpleActionClient

Lecture 11 Make your Client Asynchronous

Lecture 12 Send Feedback from the Server to the Client

Lecture 13 Set a Goal as Succeeded or Aborted

Lecture 14 Understand Goal Status

Lecture 15 Cancel a Goal

Lecture 16 Debug ROS Topics used in ROS Actions

Lecture 17 Use rqt_graph to Get More Info about ROS Topics

Lecture 18 C++ – Create a Server with the SimpleActionServer

Lecture 19 C++ – Create a Client with the SimpleActionClient

Lecture 20 Documentation Reference For SimpleActionClient and SimpleActionServer

Lecture 21 Section Conclusion

Section 3: Activity: Experiment on SimpleActionClient/SimpleActionServer

Lecture 22 Intro

Lecture 23 Create the Action Definition

Lecture 24 Create the Server

Lecture 25 Create the Client

Lecture 26 Cancel the Goal with Another Subscriber

Lecture 27 Use rqt_graph to Debug Your ROS Graph

Lecture 28 C++ – Create the Server

Lecture 29 C++ – Create the Client

Lecture 30 Section Conclusion

Section 4: Go To The Next Step: ActionClient and ActionServer Explained

Lecture 31 Intro

Lecture 32 What Are the SimpleActions Main Limitations ?

Lecture 33 When SimpleActions Are Just What You Need

Lecture 34 What is an ActionServer

Lecture 35 What is an ActionClient

Lecture 36 A Few Documentation Links Before You Start

Section 5: Activity: Create a Complete ActionClient and ActionServer

Lecture 37 Intro

Lecture 38 Create a Server With the ActionServer

Lecture 39 Create a Client With the ActionClient

Lecture 40 Send and Handle Multiple Goals

Lecture 41 Change the Goal Policy

Lecture 42 Place Goals in a Queue and Execute Them One by One

Lecture 43 C++ – Create a Server With the ActionServer

Lecture 44 C++ – Create a Client With the ActionClient

Lecture 45 Section Conclusion

Section 6: Conclusion

Lecture 46 What You’ve Learned

Section 7: Bonus

Lecture 47 A Few Examples of Existing Actions

Lecture 48 Bonus Lecture

Students who have learned ROS basics and want to go further,ROS developers who want to take their skill to the next level,And anyone desperately searching for documentation on ROS actions without finding something useful

Course Information:

Udemy | English | 6h 42m | 3.59 GB
Created by: Edouard Renard

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top