Skip to content

Commit

Permalink
Initial Jazzy implementation (#80)
Browse files Browse the repository at this point in the history
* Begin renaming ignition -> gz, updating dependencies for Jazzy

* Update gazebo macros, include paths

* More include paths

* Namespace replacements

* Include messages in the header

* Update dependencies

* create_ignition -> create_gz

* Rename more launch files

* Revert launch argument change

* More ignition renames

* Remove depcreated condition checks

* Fix imports

* IfCondition wrappers

* Rename gazebo -> sim/gz, fix resource path envar

* Fix permissions

* Update the GUI configurations

* Update the simulation launch file

* ign -> gz for plugin logging, cover up the "UNKNOWN %0" text for now

* Replace the Table model with CoffeeTable; Table doesn't appear to be supported anymore

* Replace the sitting person so they're in a chair instead of on the ground

* Hmi -> HMI in titlebars

* Ignition -> Harmonic transition, minor updates to the warehouse world

* Fix gz-gui8 rosdep

* Launch Rviz in the naviation profile if it's being started as part of the simulation launch

* Update CI for Jazzy

* Change the gz_gui_vendor dependency to depend (from buildtool_depend)

* Update github issue template

* Enable OSRF testing packages for CI

* Linting & formatting fixes
  • Loading branch information
civerachb-cpr authored Sep 3, 2024
1 parent 730264c commit 7786143
Show file tree
Hide file tree
Showing 41 changed files with 348 additions and 292 deletions.
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ body:
- Select One
- Galactic
- Humble
- Jazzy
validations:
required: true
- type: dropdown
Expand All @@ -52,6 +53,7 @@ body:
- Select One
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- Other Linux
- Windows / MAC
validations:
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,21 @@ name: turtlebot4_simulator_ci
on: [push, pull_request]

jobs:
turtlebot4_humble_ci:
name: Humble
runs-on: ubuntu-22.04
turtlebot4_jazzy_ci:
name: Jazzy
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v2.3.4
- uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: humble
required-ros-distributions: jazzy
use-ros2-testing: true
- uses: ros-tooling/action-ros-ci@v0.3
id: action_ros_ci_step
with:
target-ros2-distro: humble
target-ros2-distro: jazzy
import-token: ${{ secrets.GITHUB_TOKEN }}
package-name:
turtlebot4_ignition_bringup
turtlebot4_ignition_gui_plugins
turtlebot4_ignition_toolbox
turtlebot4_gz_bringup
turtlebot4_gz_gui_plugins
turtlebot4_gz_toolbox
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Turtlebot4 Simulator

Turtlebot4 Simulation using Ignition Gazebo.
Turtlebot4 Simulation using Harmonic Gazebo for ROS 2 Jazzy.

Visit the [TurtleBot 4 User Manual](https://turtlebot.github.io/turtlebot4-user-manual/software/turtlebot4_simulator.html) for details.

Expand All @@ -10,5 +10,5 @@ sudo apt-get update && sudo apt-get install wget
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ignition-fortress ros-humble-turtlebot4-simulator
sudo apt-get install gz-harmonic ros-jazzy-turtlebot4-simulator
```
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package turtlebot4_ignition_bringup
Changelog for package turtlebot4_gz_bringup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.0.2 (2024-04-15)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.8)
project(turtlebot4_ignition_bringup)
project(turtlebot4_gz_bringup)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
Expand All @@ -8,7 +8,7 @@ endif()
# find dependencies
find_package(ament_cmake REQUIRED)

find_package(ros_ign_interfaces REQUIRED)
find_package(ros_gz_interfaces REQUIRED)

install(
DIRECTORY config gui launch worlds
Expand Down
1 change: 1 addition & 0 deletions turtlebot4_gz_bringup/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# turtlebot4_gz_bringup
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
<?xml version="1.0" ?>

<!-- 3D scene -->
<plugin filename="GzScene3D" name="3D View">
<ignition-gui>
<title>3D View</title>
<property type="bool" key="showTitleBar">false</property>
<property type="string" key="state">docked</property>
</ignition-gui>

<engine>ogre2</engine>
<scene>scene</scene>
<camera_pose>-0.0176 -0.737 0.017 0 -0.135 1.64</camera_pose>
<plugin filename="MinimalScene" name="3D View">
<gz-gui>
<title>3D View</title>
<property key="state" type="string">docked</property>
<property key="showTitleBar" type="bool">false</property>
</gz-gui>
<engine>ogre2</engine>
<scene>scene</scene>
<ambient_light>0.4 0.4 0.4</ambient_light>
<background_color>0.8 0.8 0.8</background_color>
<camera_pose>-6 0 6 0 0.5 0</camera_pose>
</plugin>
<plugin filename="GzSceneManager" name="Scene Manager">
<gz-gui>
<property key="visible" type="bool">false</property>
<property key="state" type="string">floating</property>
</gz-gui>
</plugin>
<plugin filename="InteractiveViewControl" name="Interactive view control">
<gz-gui>
<property key="visible" type="bool">false</property>
<property key="state" type="string">floating</property>
</gz-gui>
</plugin>

<!-- Play / pause / step -->
<plugin filename="WorldControl" name="World control">
<ignition-gui>
<gz-gui>
<title>World control</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
<property type="double" key="height">72</property>
<property type="double" key="width">121</property>
<property type="double" key="z">1</property>

<property type="string" key="state">floating</property>
<anchors target="3D View">
<line own="left" target="left"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>
</gz-gui>

<play_pause>true</play_pause>
<step>true</step>
Expand All @@ -37,7 +49,7 @@

<!-- Time / RTF -->
<plugin filename="WorldStats" name="World stats">
<ignition-gui>
<gz-gui>
<title>World stats</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
Expand All @@ -50,7 +62,7 @@
<line own="right" target="right"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>
</gz-gui>

<sim_time>true</sim_time>
<real_time>true</real_time>
Expand All @@ -60,7 +72,7 @@

<!-- Translate / rotate -->
<plugin filename="TransformControl" name="Transform control">
<ignition-gui>
<gz-gui>
<title>Transform control</title>
<anchors target="3D View">
<line own="left" target="left"/>
Expand All @@ -72,12 +84,12 @@
<property key="state" type="string">floating</property>
<property key="showTitleBar" type="bool">false</property>
<property key="cardBackground" type="string">#03a9f4</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- Insert simple shapes -->
<plugin filename="Shapes" name="Shapes">
<ignition-gui>
<gz-gui>
<anchors target="Transform control">
<line own="left" target="right"/>
<line own="top" target="top"/>
Expand All @@ -88,25 +100,25 @@
<property key="state" type="string">floating</property>
<property key="showTitleBar" type="bool">false</property>
<property key="cardBackground" type="string">#03a9f4</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- HMI -->
<plugin filename="Turtlebot4Hmi" name="Turtlebot4Hmi">
<ignition-gui>
<plugin filename="Create3Hmi" name="Create3 HMI">
<gz-gui>
<property type="bool" key="showTitleBar">true</property>
<property type="string" key="state">docked</property>
<property type="double" key="height">200</property>
<property key="resizable" type="bool">true</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- Teleop -->
<plugin filename="Teleop">
<topic>/cmd_vel</topic>
<ignition-gui>
<gz-gui>
<property type="bool" key="showTitleBar">true</property>
<property type="string" key="state">docked</property>
<property key="resizable" type="bool">true</property>
</ignition-gui>
</gz-gui>
</plugin>
Original file line number Diff line number Diff line change
@@ -1,34 +1,46 @@
<?xml version="1.0" ?>

<!-- 3D scene -->
<plugin filename="GzScene3D" name="3D View">
<ignition-gui>
<title>3D View</title>
<property type="bool" key="showTitleBar">false</property>
<property type="string" key="state">docked</property>
</ignition-gui>

<engine>ogre2</engine>
<scene>scene</scene>
<camera_pose>-0.0176 -0.737 0.017 0 -0.135 1.64</camera_pose>
<plugin filename="MinimalScene" name="3D View">
<gz-gui>
<title>3D View</title>
<property key="state" type="string">docked</property>
<property key="showTitleBar" type="bool">false</property>
</gz-gui>
<engine>ogre2</engine>
<scene>scene</scene>
<ambient_light>0.4 0.4 0.4</ambient_light>
<background_color>0.8 0.8 0.8</background_color>
<camera_pose>-6 0 6 0 0.5 0</camera_pose>
</plugin>
<plugin filename="GzSceneManager" name="Scene Manager">
<gz-gui>
<property key="visible" type="bool">false</property>
<property key="state" type="string">floating</property>
</gz-gui>
</plugin>
<plugin filename="InteractiveViewControl" name="Interactive view control">
<gz-gui>
<property key="visible" type="bool">false</property>
<property key="state" type="string">floating</property>
</gz-gui>
</plugin>

<!-- Play / pause / step -->
<plugin filename="WorldControl" name="World control">
<ignition-gui>
<gz-gui>
<title>World control</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
<property type="double" key="height">72</property>
<property type="double" key="width">121</property>
<property type="double" key="z">1</property>

<property type="string" key="state">floating</property>
<anchors target="3D View">
<line own="left" target="left"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>
</gz-gui>

<play_pause>true</play_pause>
<step>true</step>
Expand All @@ -37,7 +49,7 @@

<!-- Time / RTF -->
<plugin filename="WorldStats" name="World stats">
<ignition-gui>
<gz-gui>
<title>World stats</title>
<property type="bool" key="showTitleBar">false</property>
<property type="bool" key="resizable">false</property>
Expand All @@ -50,7 +62,7 @@
<line own="right" target="right"/>
<line own="bottom" target="bottom"/>
</anchors>
</ignition-gui>
</gz-gui>

<sim_time>true</sim_time>
<real_time>true</real_time>
Expand All @@ -60,7 +72,7 @@

<!-- Translate / rotate -->
<plugin filename="TransformControl" name="Transform control">
<ignition-gui>
<gz-gui>
<title>Transform control</title>
<anchors target="3D View">
<line own="left" target="left"/>
Expand All @@ -72,12 +84,12 @@
<property key="state" type="string">floating</property>
<property key="showTitleBar" type="bool">false</property>
<property key="cardBackground" type="string">#03a9f4</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- Insert simple shapes -->
<plugin filename="Shapes" name="Shapes">
<ignition-gui>
<gz-gui>
<anchors target="Transform control">
<line own="left" target="right"/>
<line own="top" target="top"/>
Expand All @@ -88,25 +100,25 @@
<property key="state" type="string">floating</property>
<property key="showTitleBar" type="bool">false</property>
<property key="cardBackground" type="string">#03a9f4</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- HMI -->
<plugin filename="Create3Hmi" name="Create3Hmi">
<ignition-gui>
<plugin filename="Turtlebot4Hmi" name="Turtlebot4 HMI">
<gz-gui>
<property type="bool" key="showTitleBar">true</property>
<property type="string" key="state">docked</property>
<property type="double" key="height">200</property>
<property key="resizable" type="bool">true</property>
</ignition-gui>
</gz-gui>
</plugin>

<!-- Teleop -->
<plugin filename="Teleop">
<topic>/cmd_vel</topic>
<ignition-gui>
<gz-gui>
<property type="bool" key="showTitleBar">true</property>
<property type="string" key="state">docked</property>
<property key="resizable" type="bool">true</property>
</ignition-gui>
</gz-gui>
</plugin>
Loading

0 comments on commit 7786143

Please sign in to comment.