Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URDF Sim Tutorial #3952

Open
wants to merge 7 commits into
base: humble
Choose a base branch
from
Open

URDF Sim Tutorial #3952

wants to merge 7 commits into from

Conversation

DLu
Copy link
Contributor

@DLu DLu commented Oct 5, 2023

See the code conversion here: ros/urdf_sim_tutorial#13

Currently in the process of getting the packages on the buildfarm: ros/rosdistro#38713

This PR is for Humble, because I don't believe its compatible with Gazebo New Coke.

@@ -0,0 +1,293 @@
.. redirect-from::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a specific place for related simulation tutorials https://github.com/ros2/ros2_documentation/tree/rolling/source/Tutorials/Advanced/Simulators should we move this there?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this falls in the overlap of URDF and Simulation. Is there a good way to cross-post?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this falls in the overlap of URDF and Simulation. Is there a good way to cross-post?

No, not really.

My reading of the content below suggests it is to teach Gazebo concepts, specifically how to load a URDF into Gazebo.

But I might be wrong about that. So I pose the question: what is the main purpose of this tutorial? Is it to teach URDF concepts? Or to teach Gazebo concepts?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added this to the table of contents for the Simulators/Gazebo tutorials. Since it is primarily aimed at updating the URDF for simulation, I think it should stay in Gazebo. Additional redirect-from directives could be used to clear up the table of contents if desired.

Copy link
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is for Humble, because I don't believe its compatible with Gazebo New Coke.

As of right now, I don't believe there is a difference between Rolling and Humble in this regards. That is, they share the same underlying Ubuntu 22.04, so the same Gazebo stuff should work on both (this also goes for Iron). But I could be wrong, maybe @ahcorde can comment more on this.

@@ -0,0 +1,293 @@
.. redirect-from::
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this falls in the overlap of URDF and Simulation. Is there a good way to cross-post?

No, not really.

My reading of the content below suggests it is to teach Gazebo concepts, specifically how to load a URDF into Gazebo.

But I might be wrong about that. So I pose the question: what is the main purpose of this tutorial? Is it to teach URDF concepts? Or to teach Gazebo concepts?

Copy link
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Next review pass.

DLu and others added 2 commits July 31, 2024 16:14
Co-authored-by: Chris Lalancette <[email protected]>
Signed-off-by: David V. Lu!! <[email protected]>
@DLu DLu requested a review from clalancette August 12, 2024 15:22
Copy link
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few more minor changes, then I'm happy with this! Thanks for the continued iteration.

Exporting-an-URDF-File

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit:

Suggested change

Comment on lines +1 to +2
.. _GazeboURDF:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unnecessary, since nothing is referring to this:

Suggested change
.. _GazeboURDF:



However, it doesn't do anything, and is missing lots of key information that ROS would need to use this robot.
Previously we had been using `joint_state_publisher <https://index.ros.org/p/joint_state_publisher/github-ros-joint_state_publisher/>`_ to specify the pose of each joint.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While this tutorial is sort of a continuation of the rest of the URDF series, it isn't directly linked to from any of those. Thus, the wording here of "Previously" might be hard to understand. I might suggest:

Suggested change
Previously we had been using `joint_state_publisher <https://index.ros.org/p/joint_state_publisher/github-ros-joint_state_publisher/>`_ to specify the pose of each joint.
In :doc:`other <Building-a-Visual-Robot-Model-with-URDF-from-Scratch>` :doc:`tutorials <Building-a-Movable-Robot-Model-with-URDF>` we used `joint_state_publisher <https://index.ros.org/p/joint_state_publisher/github-ros-joint_state_publisher/>`_ to specify the pose of each joint.

However, the robot itself should provide that information in the real world or in Gazebo.
Yet without specifying that, Gazebo doesn't know to publish that information.

To get the robot to be interactive (with you and ROS), we need to specify two things: Plugins and Transmissions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This mentions Transmissions, but none of the top-level headings mention that. Should this be Controllers, or something like that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants