ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Using text "Programming Robots with ROS" advice

I am about to use the text by Quigley et al. Programming Robots with ROS to teach a course using ROS. I’m looking for general advice, and specifically advice about whether to use the legacy versions of Ubuntu, ROS, etc. used in the text, or if I should try instead to use the newest versions and update the code listings, where needed.

Thanks for any guidance!

1 Like

Please definitely use ROS Melodic / ROS 2.

3 Likes

@maxymczech Can you elaborate a bit for me? What challenges might you anticipate encountering with the textbook in this case? Thanks!

I’d also suggest using ROS Melodic. That is the current version of ROS 1.

ROS Melodic can be installed on the current LTS version of Ubuntu (18.04). If you have a relatively new computer, especially a laptop, more of the computer’s hardware will work “out of the box” if you use Ubuntu 18.04 LTS, compared to the older version described in the book, and everything is generally nicer and more fancy.

The underlying “big picture” principles of ROS 1 apply to ROS Melodic equally well as to the legacy ROS version described in the book. The API of ROS 1 has been fairly stable for many years. The big changes have been happening in ROS 2, which is not covered by the book. The goal has been for ROS 1 to remain stable during the ROS 2 construction process :construction:.

4 Likes

how do we progress to ROS 2 for this kind of education? Could everyone use Foxy this summer? We successfully used only ROS 2 in 2019 ROS Summer School Taiwan for a few hundred students.


4 Likes

I would recommend Melodic:

  • Other than TF -> TF2 transition, it’ll be compatible. TF still exists in Melodic but everything has moved over to TF2. It wouldn’t be bad to teach your students the design philosophy as a side-tangent of TF2 so I think that actually brings up a good topic for discussion.
  • Its more beginning-programmer friendly than ROS2. If you’re dealing with a room of software engineers, then maybe consider ROS2.
  • Its newer than Kinetic / Indigo. From the front-end API side, very little has changed so you shouldn’t run into any real trouble. Also if you actually find issues in packages, maintainers are more willing to fix issues in Melodic than in the other 2 LTS since their old.
3 Likes

ROS Melodic and ROS foxy(will be releasing soon).

1 Like

I agree to your viewpoint and suggestion.I just have a simple question that is
it is possible that the voip will work with the HughesNet?Suggest us regarding the garmin map updates free download 2019 for the perfect resolution.

From personal experience I would say that ROS 2 is perfectly functional for education purposes, mainly thanks to the Turtlebot3 project.

The only quirk that really threw us off is the necessity of adjusting QoS settings for subscribing to sensor topics that was not documented, and in general the documentation is still at its early stages. But any basic document that you would have to write anyways for your course will easily fix that.

If I was to teach ROS in a course, and it might very well be the case in the near future, I would definitely go with ROS 2. At the same time, this course would be for masters students at a school fully focused on software engineering and that teaches solely through practice and projects, so the level of programming is already strong in the audience. But, also at the same time, beside the docs I don’t really see what is making the entry level so different between ROS 1 and ROS 2.

Seen the industrial impact of the set of features present in ROS 2, the traction that it currently has in the industry and its current maturity, I would say that the (very near) future is definitely there and ROS 1 is soon to be a relic of the past, like, within a year.

EDIT: During the “personal experience” that I am talking about we stayed in the simulator and did not deploy to an actual robot, although I have seen from the linked docs, another project on Github and a Discourse announcement that it is currently functional on live robots.

1 Like