Skip to content

Conversation

GyuH13
Copy link
Member

@GyuH13 GyuH13 commented Jul 10, 2025

  • Fixed an issue in the Gazebo simulation where loading times were excessively long and models were not being loaded properly.

GyuH13 added 2 commits July 10, 2025 18:43
Signed-off-by: Hyungyu Kim <kimhg@robotis.com>
Signed-off-by: Hyungyu Kim <kimhg@robotis.com>
@Copilot Copilot AI review requested due to automatic review settings July 10, 2025 09:52
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR resolves loading issues in the TurtleBot3 manipulation Gazebo simulations by bumping package versions, updating export paths, installing mesh assets, and normalizing spawn arguments.

  • Bumped package versions to 2.3.8 and added corresponding CHANGELOG entries
  • Added <gazebo_ros> export for model paths and included meshes in install targets
  • Changed spawn_entity pose arguments from integer to float strings and cleaned up whitespace

Reviewed Changes

Copilot reviewed 11 out of 22 changed files in this pull request and generated no comments.

Show a summary per file
File Description
turtlebot3_simulations/package.xml Version bump to 2.3.8
turtlebot3_simulations/CHANGELOG.rst Added 2.3.8 changelog entry
turtlebot3_manipulation_gazebo/package.xml Version bump; added <gazebo_ros> export for model path
turtlebot3_manipulation_gazebo/CMakeLists.txt Included meshes directory in install
turtlebot3_manipulation_gazebo/launch/turtlebot3_home... Changed -x/-y/-z/-R/-P/-Y arguments to float strings
turtlebot3_manipulation_gazebo/launch/gazebo.launch.py Removed extra blank line
turtlebot3_manipulation_gazebo/CHANGELOG.rst Added 2.3.8 changelog entry
turtlebot3_gazebo/package.xml Version bump to 2.3.8
turtlebot3_gazebo/CHANGELOG.rst Added 2.3.8 changelog entry (no functional changes)
turtlebot3_fake_node/package.xml Version bump to 2.3.8
turtlebot3_fake_node/CHANGELOG.rst Added 2.3.8 changelog entry (no functional changes)

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @GyuH13, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical issue preventing the tb3_manipulation simulation models from loading correctly in Gazebo. The changes primarily involve updating package configurations to ensure Gazebo can properly discover and load the necessary robot and environment assets, alongside general version updates across several related TurtleBot3 simulation packages.

Highlights

  • Resolved Gazebo Model Loading Issue: The primary goal of this PR was to fix an issue where tb3_manipulation simulation models were not loading correctly in Gazebo, as indicated by the PR title and the CHANGELOG.rst entries.
  • Enhanced Gazebo Model Discovery: The turtlebot3_manipulation_gazebo/package.xml has been updated to explicitly export the gazebo_model_path. This crucial change directs Gazebo to the correct locations for finding and loading simulation models, addressing a common cause of model loading failures.
  • Included Mesh Installation: The CMakeLists.txt for turtlebot3_manipulation_gazebo was modified to ensure that the meshes directory is properly installed. Meshes are often essential visual and collision assets for 3D models in simulation, and their absence can prevent models from rendering or behaving correctly.
  • Version Bumps Across Packages: All affected turtlebot3 simulation packages, including turtlebot3_fake_node, turtlebot3_gazebo, turtlebot3_manipulation_gazebo, and turtlebot3_simulations, have had their versions incremented from 2.3.6 to 2.3.8.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request addresses an issue with loading TurtleBot3 manipulation simulation models by updating package configurations. The changes include version bumps, changelog updates, installing necessary mesh files, and adjusting Gazebo model paths.

My review highlights a significant maintainability concern with the proposed Gazebo model path configuration, which is overly broad and could cause issues in the future. I've suggested a more robust, standard approach. Additionally, I've provided feedback to improve the clarity of changelog entries for better release tracking. The other changes appear correct and contribute to fixing the reported issue.

<exec_depend>xacro</exec_depend>
<export>
<build_type>ament_cmake</build_type>
<gazebo_ros gazebo_model_path="${prefix}/..:${prefix}/models"/>

Choose a reason for hiding this comment

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

high

Using ${prefix}/.. to add the parent install directory to GAZEBO_MODEL_PATH is very broad and can have unintended side effects. It makes Gazebo search the entire install space for models, which can lead to slow startup times and model name collisions if other packages are installed.

A more robust and maintainable approach, following ROS best practices, is for each package that provides Gazebo models to export its own model path. For example, if this package depends on models from turtlebot3_gazebo, then turtlebot3_gazebo/package.xml should contain:

<export>
  <gazebo_ros gazebo_model_path="${prefix}/models"/>
</export>

This would correctly add the specific model path to the environment.

The current change is a workaround that hides a missing export in a dependency. I recommend removing the overly broad path to encourage fixing the root cause in the dependency package.

    <gazebo_ros gazebo_model_path="${prefix}/models"/>


2.3.8 (2025-07-10)
------------------
* None

Choose a reason for hiding this comment

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

medium

The changelog entry * None is uninformative. Since the package version was bumped, there was a change. A changelog should briefly describe the changes in a new version to help users and maintainers track the evolution of the package. A more descriptive entry would be more helpful.

* Maintenance release.


2.3.8 (2025-07-10)
------------------
* None

Choose a reason for hiding this comment

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

medium

The changelog entry * None is uninformative. Since the package version was bumped, there was a change. A changelog should briefly describe the changes in a new version to help users and maintainers track the evolution of the package. A more descriptive entry would be more helpful.

* Maintenance release.

@GyuH13 GyuH13 self-assigned this Jul 10, 2025
@GyuH13 GyuH13 added the enhancement New feature or request label Jul 10, 2025
@GyuH13 GyuH13 requested a review from yun-goon July 10, 2025 22:02
Copy link
Member

@yun-goon yun-goon left a comment

Choose a reason for hiding this comment

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

Good!

@yun-goon yun-goon moved this to 📝 Pull Request in Platform Jul 11, 2025
@GyuH13 GyuH13 requested a review from robotpilot July 11, 2025 01:57
Copy link
Member

@robotpilot robotpilot left a comment

Choose a reason for hiding this comment

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

LGTM

@robotpilot robotpilot merged commit a35a56c into humble Jul 11, 2025
9 checks passed
@robotpilot robotpilot deleted the feature-tb3-manipulation-error-fix branch July 11, 2025 03:17
@github-project-automation github-project-automation bot moved this from 📝 Pull Request to 🚩Done in Platform Jul 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants