From 4bfec28d349ae70f771d71d1253039407d3aaa7d Mon Sep 17 00:00:00 2001 From: Aarav Gupta <134804732+Amronos@users.noreply.github.com> Date: Tue, 17 Sep 2024 12:08:17 +0000 Subject: [PATCH 1/3] Switch to Jazzy Signed-off-by: Aarav Gupta <134804732+Amronos@users.noreply.github.com> --- harmonic/ros2_integration.md | 14 +++++++------- harmonic/ros2_interop.md | 4 ++-- harmonic/ros2_launch_gazebo.md | 6 +++--- harmonic/ros2_overview.md | 5 +---- harmonic/ros2_spawn_model.md | 3 +-- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/harmonic/ros2_integration.md b/harmonic/ros2_integration.md index bcf12814ad..8b7fb079c9 100644 --- a/harmonic/ros2_integration.md +++ b/harmonic/ros2_integration.md @@ -7,7 +7,7 @@ simulatenously simulated by a Gazebo world. ## ros_gz_bridge -[`ros_gz_bridge`](https://github.com/gazebosim/ros_gz) provides a network bridge which enables the exchange of messages between ROS 2 and [Gazebo Transport](https://github.com/gazebosim/gz-transport). Its support is limited to only certain message types. Please, check this [README](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_bridge/README.md) to verify if your message type is supported by the bridge. +[`ros_gz_bridge`](https://github.com/gazebosim/ros_gz) provides a network bridge which enables the exchange of messages between ROS 2 and [Gazebo Transport](https://github.com/gazebosim/gz-transport). Its support is limited to only certain message types. Please, check this [README](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_bridge/README.md) to verify if your message type is supported by the bridge. Example uses of the bridge can be found in [`ros_gz_sim_demos`](https://github.com/gazebosim/ros_gz/tree/ros2/ros_gz_sim_demos), including demo launch files with bridging of all major actuation and sensor types. @@ -29,7 +29,7 @@ The ROS message type is followed by an `@`, `[`, or `]` symbol where: * `[` is a bridge from Gazebo to ROS. * `]` is a bridge from ROS to Gazebo. -Have a look at these [examples]( https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_bridge/README.md#example-1a-gazebo-transport-talker-and-ros-2-listener) +Have a look at these [examples]( https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_bridge/README.md#example-1a-gazebo-transport-talker-and-ros-2-listener) explaining how to make communication connections from ROS to Gazebo and vice versa. It is also possible to use ROS Launch with the `ros_gz_bridge` and represent the topics in yaml format to be given to the bridge at launch time. @@ -58,7 +58,7 @@ speedup performance. * `direction`: It's possible to specify `GZ_TO_ROS`, `ROS_TO_GZ` and `BIDIRECTIONAL`. -See [this example](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_bridge/test/config/full.yaml) +See [this example](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_bridge/test/config/full.yaml) for a valid configuration file. ## Launching the bridge using the launch files included in `ros_gz_bridge` package. @@ -78,7 +78,7 @@ And now, the container will load your bridge with: ros2 launch ros_gz_bridge ros_gz_bridge.launch.py bridge_name:=ros_gz_bridge config_file:= ``` -Check [this block](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_bridge/launch/ros_gz_bridge.launch.py#L27-L33) +Check [this block](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_bridge/launch/ros_gz_bridge.launch.py#L27-L33) from the source code to know all the different parameters accepted by this launch file. @@ -203,10 +203,10 @@ A video walk-through of this tutorial is available from our YouTube channel: [Ga ## Visualize in RViz -Take a step further and try out demos from [`ros_gz_sim_demos`](https://github.com/gazebosim/ros_gz/tree/ros2/ros_gz_sim_demos). +Take a step further and try out demos from [`ros_gz_sim_demos`](https://github.com/gazebosim/ros_gz/tree/jazzy/ros_gz_sim_demos). -For the `sdf_parser` demo, install [`ros_gz`](https://github.com/gazebosim/ros_gz/tree/ros2) and the parser plugin `sdformat_urdf` from source in a colcon workspace. -Read more about `sdformat_urdf` [here](https://github.com/ros/sdformat_urdf/blob/ros2/sdformat_urdf/README.md). +For the `sdf_parser` demo, install [`ros_gz`](https://github.com/gazebosim/ros_gz/tree/jazzy) and the parser plugin `sdformat_urdf` from source in a colcon workspace. +Read more about `sdformat_urdf` [here](https://github.com/ros/sdformat_urdf/blob/jazzy/sdformat_urdf/README.md). Run the demo launch file with the rviz launch argument set: diff --git a/harmonic/ros2_interop.md b/harmonic/ros2_interop.md index 0774809940..2ec477b2b2 100644 --- a/harmonic/ros2_interop.md +++ b/harmonic/ros2_interop.md @@ -54,7 +54,7 @@ For publishing and controlling the robot pose, we need joint states of the robot ![jsp_gui](tutorials/ros2_integration/jsp_gui.png) - See [documentation](http://docs.ros.org/en/rolling/p/joint_state_publisher_gui/) for node API. + See [documentation](http://docs.ros.org/en/jazzy/p/joint_state_publisher_gui/) for node API. This functionality is useful during initial development of the model. At this point we have achieved the first aim defined in [Setup](#setup). @@ -95,7 +95,7 @@ Learn more about the bridge from [ROS 2 Integration](ros2_integration). The main pain point of using existing simulation assets with ROS 2 tools was updating URDF files into a Gazebo-readable format. This is no longer required. If you are maintaining a URDF and an SDF file in a project, you can now drop the URDF and just use the SDF for both ROS and Gazebo. This is made possible by `sdformat_urdf`, a parser plugin library that converts an SDF file to URDF C++ DOM structures, making it understandle by the ROS 2 ecosystem. -Although, there are some limitations of the plugin, like not all SDFormat tags are compatible. For example, if you have any sensors attached to a joint, it won't be parsed. More details [here](https://github.com/ros/sdformat_urdf/tree/ros2/sdformat_urdf). +Although, there are some limitations of the plugin, like not all SDFormat tags are compatible. For example, if you have any sensors attached to a joint, it won't be parsed. More details [here](https://github.com/ros/sdformat_urdf/tree/jazzy/sdformat_urdf). To embed this functionality, we simply need to print the SDFormat file to the `/robot_description` ROS topic, and internally ROS will find a suitable parser, `sdformat_urdf` in this case, to read the file. This is already done while configuring the `robot_state_publisher` earlier. diff --git a/harmonic/ros2_launch_gazebo.md b/harmonic/ros2_launch_gazebo.md index a87c90a0e6..260f53e993 100644 --- a/harmonic/ros2_launch_gazebo.md +++ b/harmonic/ros2_launch_gazebo.md @@ -3,7 +3,7 @@ Gazebo can be launched from a ROS 2 launch system in multiple ways: ## Using the launch files included in -[ros_gz_sim](https://github.com/gazebosim/ros_gz/tree/ros2/ros_gz_sim). +[ros_gz_sim](https://github.com/gazebosim/ros_gz/tree/jazzy/ros_gz_sim). The package `ros_gz_sim` contains two launch files named `gz_server.launch.py` and `gz_sim.launch.py`. You can use them to start Gazebo server or Gazebo (server and GUI) @@ -20,8 +20,8 @@ ros2 launch ros_gz_sim gz_server.launch.py world_sdf_file:=empty.sdf ``` Consult the argument block of each launch file -[here](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_sim/launch/gz_sim.launch.py.in#L75-L96) -and [here](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_sim/launch/gz_server.launch.py#L27-L38) +[here](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_sim/launch/gz_sim.launch.py.in#L75-L96) +and [here](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_sim/launch/gz_server.launch.py#L27-L38) to learn about the different parameters that are accepted by each launch file. ## Using a custom launch file. diff --git a/harmonic/ros2_overview.md b/harmonic/ros2_overview.md index d9891b82b5..d856c05841 100644 --- a/harmonic/ros2_overview.md +++ b/harmonic/ros2_overview.md @@ -5,7 +5,7 @@ different types of integrations that you can achieve between Gazebo and ROS. * Use ROS to launch Gazebo: ROS prescribes a specific way to launch all the pieces needed in your system. There's a dedicated -[launch mechanism](https://docs.ros.org/en/rolling/Tutorials/Intermediate/Launch/Creating-Launch-Files.html) +[launch mechanism](https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Launch/Creating-Launch-Files.html) to orchestrate the launch of all your components and many tooling around it. Gazebo can be launched in this way. @@ -26,9 +26,6 @@ Please follow the [Install Gazebo and ROS document](ros_installation) before starting this tutorial. A working installation of ROS 2 and Gazebo is required to go further. -Important: Most of this functionality is only available in ROS 2 Rolling. -We'll backport it to ROS 2 Jazzy soon. - ## Composition If you inspect the parameters of the launch files mentioned in the next diff --git a/harmonic/ros2_spawn_model.md b/harmonic/ros2_spawn_model.md index 056f14fd23..8bbe888944 100644 --- a/harmonic/ros2_spawn_model.md +++ b/harmonic/ros2_spawn_model.md @@ -5,7 +5,6 @@ Additionally, it's possible to spawn new models at any time. To do so using ROS we have provided the following mechanisms: ## Spawn a model using the launch file included in `ros_gz_sim`. -*Currently only available in Rolling.* The package `ros_gz_sim` contains a launch file named `ros_gz_spawn_model.launch.py`. You can use it to spawn a new model into an @@ -15,7 +14,7 @@ existing simulation. Here's an example: ros2 launch ros_gz_sim ros_gz_spawn_model.launch.py world:=empty file:=$(ros2 pkg prefix --share ros_gz_sim_demos)/models/vehicle/model.sdf entity_name:=my_vehicle x:=5.0 y:=5.0 z:=0.5 ``` -Check [this block](https://github.com/gazebosim/ros_gz/blob/ros2/ros_gz_sim/launch/ros_gz_spawn_model.launch.py#L26-L45) +Check [this block](https://github.com/gazebosim/ros_gz/blob/jazzy/ros_gz_sim/launch/ros_gz_spawn_model.launch.py#L26-L45) from the source code to know all the different parameters accepted by this launch file. From 5033598d3131270036f16d789be7b57ed2d0b8e1 Mon Sep 17 00:00:00 2001 From: Aarav Gupta <134804732+Amronos@users.noreply.github.com> Date: Fri, 20 Sep 2024 11:06:30 +0000 Subject: [PATCH 2/3] Update some files Signed-off-by: Aarav Gupta <134804732+Amronos@users.noreply.github.com> --- harmonic/comparison.md | 8 ++------ harmonic/install.md | 7 +------ harmonic/sensors.md | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/harmonic/comparison.md b/harmonic/comparison.md index 2d8cefe859..c8493519a3 100644 --- a/harmonic/comparison.md +++ b/harmonic/comparison.md @@ -284,14 +284,10 @@ ROS integration through the Supported versions: -* ROS 2 Iron (from source) / Rolling (from source) - -Note: binaries for ROS2 might be available sometime after the Harmonic release. +* ROS 2 Jazzy (from binary) / Rolling (from source) For **ROS 2 Rolling**, the Rolling distribution moves with the next future release -of ROS 2 defined in [REP-2000](https://www.ros.org/reps/rep-2000.html). For the Gz -Harmonic release this means that it will be adopted when ROS 2 Jazzy goes into the -[REP-2000](https://www.ros.org/reps/rep-2000.html). +of ROS 2 defined in [REP-2000](https://www.ros.org/reps/rep-2000.html). ## Platforms diff --git a/harmonic/install.md b/harmonic/install.md index c0f2c30e90..12d7eee681 100644 --- a/harmonic/install.md +++ b/harmonic/install.md @@ -1,8 +1,6 @@ # Gazebo Harmonic -Up to Harmonic's release date, the collection should be considered unstable. - -Gazebo Harmonic will be the 8th major release of Gazebo. It will be a +Gazebo Harmonic is the 8th major release of Gazebo. It is a long-term release. ## Binary installation instructions @@ -49,9 +47,6 @@ This list of library versions may change up to the release date. ## Supported platforms -Harmonic is planned to be [supported](releases) on the platforms below. -This list may change up to the release date. - These are the **officially** supported platforms: * Ubuntu Jammy on amd64 diff --git a/harmonic/sensors.md b/harmonic/sensors.md index 97e1622478..cbdb35082b 100644 --- a/harmonic/sensors.md +++ b/harmonic/sensors.md @@ -11,7 +11,7 @@ learn how to launch multiple tasks with just one file using `gz launch`. You can find the final world of this tutorial showing all these plugins in use [here](https://github.com/gazebosim/docs/blob/master/harmonic/tutorials/sensors/sensor_tutorial.sdf). You may also find an extensive set of world examples with many possible sensors and actuation capabilities in [`gz-sim/examples/worlds`](https://github.com/gazebosim/gz-sim/tree/gz-sim8/examples/worlds) for individual examples. The full set of sensors can be found in the [`gz-sensors` library](https://github.com/gazebosim/gz-sensors). -If using ROS, you can see demo launches and bridging configuration for these examples [here](https://github.com/gazebosim/ros_gz/tree/ros2/ros_gz_sim_demos/launch). +If using ROS, you can see demo launches and bridging configuration for these examples [here](https://github.com/gazebosim/ros_gz/tree/jazzy/ros_gz_sim_demos/launch). ## Preliminaries From 0dcd5df40f6e46c684130b1a16293f399bae3f7d Mon Sep 17 00:00:00 2001 From: Aarav Gupta <134804732+Amronos@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:26:29 +0000 Subject: [PATCH 3/3] Make Requested Changes Signed-off-by: Aarav Gupta <134804732+Amronos@users.noreply.github.com> --- harmonic/ros2_overview.md | 3 +++ harmonic/ros2_spawn_model.md | 1 + 2 files changed, 4 insertions(+) diff --git a/harmonic/ros2_overview.md b/harmonic/ros2_overview.md index d856c05841..97a2f9ccdb 100644 --- a/harmonic/ros2_overview.md +++ b/harmonic/ros2_overview.md @@ -26,6 +26,9 @@ Please follow the [Install Gazebo and ROS document](ros_installation) before starting this tutorial. A working installation of ROS 2 and Gazebo is required to go further. +Important: Most of this functionality is only available in ROS 2 Rolling. +We'll backport it to ROS 2 Jazzy soon. + ## Composition If you inspect the parameters of the launch files mentioned in the next diff --git a/harmonic/ros2_spawn_model.md b/harmonic/ros2_spawn_model.md index 8bbe888944..f1beeec914 100644 --- a/harmonic/ros2_spawn_model.md +++ b/harmonic/ros2_spawn_model.md @@ -5,6 +5,7 @@ Additionally, it's possible to spawn new models at any time. To do so using ROS we have provided the following mechanisms: ## Spawn a model using the launch file included in `ros_gz_sim`. +*Currently only available in Rolling.* The package `ros_gz_sim` contains a launch file named `ros_gz_spawn_model.launch.py`. You can use it to spawn a new model into an