ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

Lecture notes specifically for "Programming Robots with ROS"

For better or for worse I’ve concluded that the best “textbook” for teaching ROS to Python developers is “Programming Robots With Ros” by Quigley, Gerkey and Smart. It is a few years old and uses Indigo. Many of the code and other instructions don’t work exactly as written. But the sequence of explanation and examples is really excellent.

My question: have any of you developed course notes, powerpoints or similar to go with that particular book that you’d be willing to share? I am starting to write some myself to see how it goes and thought I would reach out.

If you see this book, you may change your mind

I’ve looked very closely at that book and its quite good. However it uses only C++ while I think for teaching purposes python is much better suited.

For teaching students they should be well versed in both C++ and Python, and perhaps any other language tricks of the trade. It would be doing them a disservice as with ROS in my experience I actively use both, all the time, sometimes both in the same day to achieve a goal.

I have been teaching ROS with C++ at least two times at Universities, and it was clear that students struggled more with C++ syntax and build requirements that with ROS concepts.
Last ROS courses I used Python with student with zero background on Python and it was much more easier for them to grasp faster ROS concepts.
So, I think, unless you have students with good background in C++, it will be painful for them.
It seems with new C++ 11 supported in ROS2, programming in C++ with ROS will be less tedious.

@Anis_Koubaa I totally agree and have reached the same conclusion. Our students know Java and Python (and many know additional languages. But C++ is a rare bird.) I do agree that to get a “job” in the ROS world you probably are going to need to know C++ but for teaching Python is the way to go.

(Anyway I have no desire or intention to start a debate on this. Everyone has their own experiences.)

@pitosalas did you end up developing those notes?

If so, would you mind sharing or collaborating? I’m using this text, too, and I’m starting to develop my own notes.

Perhaps most importantly, did you use the old versions of Ubuntu, ROS, etc, or did you use updated versions?

@ricopicone yes, I did. They have been tested with melodic. They assume and refer to the Turtlebot 3 robot. And I also have copies of all the scripts in the book updated for those versions of software and hardware. They are all open source:

I would be thrilled to share them and also would accept pull requests.

All the best, and I hope you and everyone who reads this is ok during this unprecedented time.

1 Like

Thanks @pitosalas! What a great resource.

I didn’t see the git remote repo – would you mind sending that url?


Sure, I thought I had…

My mistake,


Pito Salas
Brandeis Computer Science
Volen 134

1 Like

Great. I’ll fork it and send pull requests if we change anything worth sharing. Thanks, again, for this wonderful resource!

1 Like