turtlebot / turtlebot4_simulator

TurtleBot 4 Simulator packages
Apache License 2.0
67 stars 39 forks source link

Turtlebot4 model not showing in gazebo simulation after update #76

Closed alexdo105 closed 3 months ago

alexdo105 commented 4 months ago

Robot Model

Turtlebot4 Standard

ROS distro

Humble

Networking Configuration

Discovery Server

OS

Ubuntu 22.04

Built from source or installed?

Installed

Package version

1.0.2-1jammy.20240415.175517

Expected behaviour

I expect the turtlebot4 model to launch, it launched before when the problem was fixed, but now after another update it does not work

Actual behaviour

Turtlebot4 does not show up in the simulation

Error messages

[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:104:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:99:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:94:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/TransformControl/TransformControl.qml:89:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/Create3Hmi/Create3Hmi.qml:49:7: Unable to assign [undefined] to QString
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] QObject::connect: No such signal ignition::gui::Create3Hmi::AddMsg(QString)
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Application.cc:797] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Ogre2Camera.cc:390] Ogre2Camera::SetVisibilityMask: Mask bits c0000000 are set but will be ignored as they conflict with the reserved bits used internally by the ogre2 backend.
[ruby $(which ign) gazebo-1] [Wrn] [Model.hh:69] Skipping serialization / deserialization for models with //pose/@relative_to attribute.
[ruby $(which ign) gazebo-1] [Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf3v125WorldE], which doesn't have `operator<<`. Component will not be serialized.
[ruby $(which ign) gazebo-1] [Wrn] [Model.hh:69] Skipping serialization / deserialization for models with //pose/@relative_to attribute.
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Component.hh:189] Trying to deserialize component with data type [N3sdf3v125WorldE], which doesn't have `operator>>`. Component will not be deserialized.
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model
[ruby $(which ign) gazebo-1] [GUI] [Wrn] [Model.hh:98] Unable to deserialize sdf::Model

To Reproduce

ros2 launch turtlebot4_ignition_bringup ignition.launch.py

Other notes

I also changed my computer from simple discovery to discovery server, but I do not see why this would affect

hilary-luo commented 4 months ago

Switching your computer to discovery server would definitely impact the simulation. Your networking settings that you choose will impact any ROS node that is launched including the nodes that are used for the simulation. These are not Turtlebot4 specific settings but rather ROS 2 DDS settings. We do our best with Turtlebot4 to manage the settings in a digestible way that is easy to set up but they will still impact any node that is launched. Selecting discovery server or simple discovery indicates how node discovery will work for all nodes that are launched. Therefore, with discovery server all of your simulator nodes are trying to connect with the indicated server in order to find each other and connect the topics / services etc as necessary. It so happens within the context of Turtlebot4 that whenever you have a discovery server it is generally hosted on the robot but the core concept of a discovery server has no such restriction. It is a valid configuration for someone to run a simulation using a discovery server for node discovery although we do not see any reason to do that in this case.

I will also mention that when I talk about having selected DDS settings I am referring to the environment variables that are set in any given terminal or script. We generally instruct for you to use the .bashrc to set your environment variables such that they will be set the same on every terminal that you open. This generally looks like either sourcing /etc/turtlebot4/setup.bash or /etc/turtlebot4_discovery/setup.bash in your .bashrc.

You can choose to modify the .bashrc before you run the simulation so that you are sourcing the settings for simple discovery in those terminals (just make sure to open your terminal after .bashrc is updated) or you can manually change the environment variables in any terminal that you are going to use for simulation.

hilary-luo commented 3 months ago

This issue is being closed due to inactivity. If you are still experiencing the issue, feel free to reopen this ticket when you are ready to continue the troubleshooting process.