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.)