-
Notifications
You must be signed in to change notification settings - Fork 512
Resolved an issue where tb3_manipulation simulation models were not loading #246
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
Conversation
Signed-off-by: Hyungyu Kim <kimhg@robotis.com>
There was a problem hiding this 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 includedmeshes
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) |
There was a problem hiding this 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 theCHANGELOG.rst
entries. - Enhanced Gazebo Model Discovery: The
turtlebot3_manipulation_gazebo/package.xml
has been updated to explicitly export thegazebo_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
forturtlebot3_manipulation_gazebo
was modified to ensure that themeshes
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, includingturtlebot3_fake_node
,turtlebot3_gazebo
,turtlebot3_manipulation_gazebo
, andturtlebot3_simulations
, have had their versions incremented from2.3.6
to2.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
-
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. ↩
There was a problem hiding this 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"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Uh oh!
There was an error while loading. Please reload this page.