osrf/icra2023_ros2_gz_tutorial

Suggestion and general opinion on the actual needs

jrutgeer opened this issue · 3 comments

Suggestion:

1. Show the existence of ROS 2 [tutorials](https://docs.ros.org/en/humble/Tutorials.html) (2 mins)

The tutorials are nice, but show only a very limited subset of the functionality. So I suggest to also mention the demos and examples repositories.


On a more general note:

What I think is really really missing, both for ROS 2 as well as gazebo, is a general overview of the code base:
in depth descriptions of how the code is structured, which concepts are used, why, how, etc.
I.e. basic info that helps you understand the code.

This is an excellent example: WaitSet Presentation at RTWG. It provides all the info you need to understand and use the code, yet it is concise and to the point. (Note that this video can only be found through this github issue; afaik it is not part of, nor referenced by any official documentation, although it is very valuable.)

Same goes for gazebo. An example: as a layman try to debug why the conveyor demo is not working. So far, I tracked it down to the contact plugin missing in the sdf, but then also this entitycast failing. So now I have to try and understand the reason for that. Without any background info on what an entityWorldMap is, how it is populated, etc., this utterly utterly time consuming. Most people just give up and file an issue instead.


So even though this is probably (imo. falsely) considered out of scope for the icra tutorial, I think it would be far more valuable to the community, than yet another getting started session.

My two cents...

So far, I tracked it down to the contact plugin missing in the sdf, but then also this entitycast failing.

Turns out the contact plugin is not needed after all.
The simulation features are defined here and here.
So the conclusion is clear: it simply needs a more recent version of libdart.

But apart from that: I still don't understand how exactly above feature definitions relate to the entitycast. Though I am sure that it's no rocket science...

If ROS 2 / gazebo wants to welcome more user contributions for core functionality, then it is essential that this kind of information is better explained.

The tutorials are nice, but show only a very limited subset of the functionality. So I suggest to also mention the demos and examples repositories.

Yes, that is a great idea. We won't add it to the outline that is here, but we'll make sure to add it to the slides.

What I think is really really missing, both for ROS 2 as well as gazebo, is a general overview of the code base:
in depth descriptions of how the code is structured, which concepts are used, why, how, etc.
I.e. basic info that helps you understand the code.

Yes, we agree that would be valuable. However, the target audience for this tutorial isn't people who are working deeply in the core, but rather people who want to use ROS 2 (and are coming from ROS 1), or Gazebo (and are coming from Gazebo Classic). So while we will include e.g. a plugin walkthrough in Gazebo (which will cover the essential concepts), we will not be going into depth on these topics.

Closing as no new activity for a month