Comments (6)
ign gazebo
can be made to work on macOS (gazebosim/gz-gui#145 (comment)) but there are some caveats and a bit of work will be required to support it fully.
I've been working through the list of examples worlds in ign-gazebo/examples/worlds
. Many work well on macOS but others fail and the reasons fall into a few general patterns.
-
Running a combined server and gui session does not work on macOS (and probably won't on windows either)
This is because
cmdgazebo.rb
usesProcess.fork
which has been disabled on macOS and doesn't work on windows.
An alternative that will work on all platforms is to useProcess.spawn
but this will involve some work. -
Issues with using the
ogre2
render engine (when set in thegui.config
and world sdf files)To get
ign gazebo
running on macOS the QSurfaceFormat needs to be set to use OpenGL 4.1. In Scene3D there is a
conditional check for ogre2 that attempts to reset the surface format and this will conflict with the global default which
needs to be set in the main application (before any windows are created). If the ogre render engine is selected, but is not
available then the gui will work because the code resetting the surface format is not called and the fall back to ogre2
happens after this. A solution is to remove the conditional check if the global default is set. -
Issues with camera sensors and so on:
These are arising because the camera sensors and other plugins that require another renderer to be created (RTT etc) are
requesting a new render window on a non-main thread. This causes a hard crash on macOS. The solution is to ensure all
such calls are run from the main thread. It will take further investigation to understand how much work will be involved to
implement this.
from gz-sim.
Here's some more info with macOS 10.14 (mojave) and blueprint:
# use brew ruby instead of disabling SIP
$ export PATH=/usr/local/opt/ruby/bin:$PATH
$ ign gazebo -s -v
[Msg] Ignition Gazebo Server v2.25.0
[Msg] Loading default world.
[Msg] Create service on [/world/default/create]
[Msg] Remove service on [/world/default/remove]
[Msg] Pose service on [/world/default/set_pose]
[Msg] Loaded level [3]
[Msg] Serving world controls on [/world/default/control] and [/world/default/playback/control]
[Msg] Serving GUI information on [/world/default/gui/info]
[Msg] World [default] initialized with [default_physics] physics profile.
[Msg] Serving world SDF generation service on [/world/default/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path interfaces on [/gazebo/resource_paths/add], [/gazebo/resource_paths/get], and [/gazebo/resource_paths].
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Msg] Serving scene information on [/world/default/scene/info]
[Msg] Serving graph information on [/world/default/scene/graph]
[Msg] Serving full state on [/world/default/state]
[Msg] Publishing scene information on [/world/default/scene/info]
[Msg] Publishing entity deletions on [/world/default/scene/deletion]
[Msg] Publishing state changes on [/world/default/state]
[Msg] Publishing pose messages on [/world/default/pose/info]
[Msg] Publishing dynamic pose messages on [/world/default/dynamic_pose/info]
[Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf2v85WorldE], which doesn't have `operator<<`. Component will not be serialized.
in a separate terminal:
# use brew ruby instead of disabling SIP
$ export PATH=/usr/local/opt/ruby/bin:$PATH
$ ign gazebo -g -v
[Msg] Ignition Gazebo GUI v2.25.0
[GUI] [Wrn] [Application.cc:649] [QT] Populating font family aliases took 916 ms. Replace uses of missing font family "Roboto" with one that exists to avoid this cost.
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] qrc:/qml/StyleDialog.qml:112:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] qrc:/qml/StyleDialog.qml:105:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] qrc:/qml/StyleDialog.qml:98:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] qrc:qml/Main.qml:75:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] qrc:/qml/PluginMenu.qml:23:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Wrn] [Application.cc:649] [QT] file::/Gazebo/GazeboDrawer.qml:237:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Msg] Loading config [/Users/scpeters/.ignition/gazebo/gui.config]
[GUI] [Wrn] [Application.cc:649] [QT] file::/GzScene3D/GzScene3D.qml:58:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Msg] Transform mode service on [/gui/transform_mode]
[GUI] [Msg] Record video service on [/gui/record_video]
[GUI] [Msg] Move to service on [/gui/move_to]
[GUI] [Msg] Follow service on [/gui/follow]
[GUI] [Msg] View angle service on [/gui/view_angle]
[GUI] [Msg] Added plugin [3D View] to main window
[GUI] [Msg] Loaded plugin [GzScene3D] from path [/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ign-gazebo-2/plugins/gui/libGzScene3D.dylib]
[GUI] [Wrn] [Application.cc:649] [QT] file::/WorldControl/WorldControl.qml:30:3: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
[GUI] [Wrn] [Application.cc:649] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[GUI] [Msg] Using world control service [/world/default/control]
[GUI] [Msg] Listening to stats on [/world/default/stats]
[GUI] [Msg] Added plugin [World control] to main window
[GUI] [Msg] Loaded plugin [WorldControl] from path [/usr/local/Cellar/ignition-gui2/2.3.3_1/lib/ign-gui-2/plugins/libWorldControl.dylib]
[GUI] [Msg] Listening to stats on [/world/default/stats]
[GUI] [Msg] Added plugin [World stats] to main window
[GUI] [Msg] Loaded plugin [WorldStats] from path [/usr/local/Cellar/ignition-gui2/2.3.3_1/lib/ign-gui-2/plugins/libWorldStats.dylib]
[GUI] [Wrn] [Application.cc:649] [QT] file::/TransformControl/TransformControl.qml:26:1: QML TransformControl (parent or ancestor of Material): Binding loop detected for property "foreground"
[GUI] [Wrn] [Application.cc:649] [QT] file::/TransformControl/TransformControl.qml:26:1: QML TransformControl (parent or ancestor of Material): Binding loop detected for property "foreground"
[GUI] [Msg] Added plugin [Transform control] to main window
[GUI] [Msg] Loaded plugin [TransformControl] from path [/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ign-gazebo-2/plugins/gui/libTransformControl.dylib]
[GUI] [Wrn] [Application.cc:649] [QT] file::/Shapes/Shapes.qml:25:1: QML Shapes (parent or ancestor of Material): Binding loop detected for property "foreground"
[GUI] [Wrn] [Application.cc:649] [QT] file::/Shapes/Shapes.qml:25:1: QML Shapes (parent or ancestor of Material): Binding loop detected for property "foreground"
[GUI] [Msg] Added plugin [Shapes] to main window
[GUI] [Msg] Loaded plugin [Shapes] from path [/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ign-gazebo-2/plugins/gui/libShapes.dylib]
[GUI] [Msg] Added plugin [Component inspector] to main window
[GUI] [Msg] Loaded plugin [ComponentInspector] from path [/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ign-gazebo-2/plugins/gui/libComponentInspector.dylib]
[GUI] [Wrn] [Application.cc:649] [QT] file:///usr/local/Cellar/qt/5.15.1/qml/QtQuick/Controls/TableViewColumn.qml:66:1: QML TableViewColumn: Accessible must be attached to an Item
[GUI] [Msg] Added plugin [Entity tree] to main window
[GUI] [Msg] Loaded plugin [EntityTree] from path [/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ign-gazebo-2/plugins/gui/libEntityTree.dylib]
[GUI] [Wrn] [Application.cc:649] [QT] file::/ComponentInspector/Vector3d.qml:93:9: QML Image: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[GUI] [Wrn] [Application.cc:649] [QT] file::/WorldStats/WorldStats.qml:53:3: QML RowLayout: Binding loop detected for property "x"
[GUI] [Wrn] [Application.cc:649] [QT] file::/WorldControl/WorldControl.qml:88:3: QML RoundButton: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
[GUI] [Wrn] [Application.cc:649] [QT] Could not create NSOpenGLContext with shared context, falling back to unshared context.
/usr/local/Cellar/ignition-gazebo2/2.25.0/lib/ruby/ignition/cmdgazebo2.rb:388: [BUG] Segmentation fault at 0x0000000000000000
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
I've copied a portion of the Crash Report to the following gist:
from gz-sim.
I think the key line is:
[GUI] [Wrn] [Application.cc:649] [QT] Could not create NSOpenGLContext with shared context, falling back to unshared context.
from gz-sim.
I'm proposing to disable ign gazebo
and ign gazebo -g
on macOS in #477, so that only ign gazebo -s
would be allowed, since the other commands are broken.
from gz-sim.
from gz-sim.
the gz sim
error message was updated in #1225 to indicate that the server and gui can only be run from separate processes
from gz-sim.
Related Issues (20)
- Port wheel plowing model from gz-sim HOT 1
- [Bug] surface_vehicles.md workspace wget command not working HOT 4
- JointControllers tutorial is not visible
- Mismatch about default collision detector between SDFormat specification and Gazebo Sim documentaion HOT 1
- gz-sim should not print an error if a model contains a gazebo-classic plugin
- Unable to run test worlds for underwater simulation HOT 6
- Odometry Publisher Angular Velocity Singularity in 3D
- Boundingbox on Link API HOT 1
- Crash on opening world with Plasma Wayland session HOT 1
- Inconsistency between custom sensor system example and internal sensor systems
- Make child model and link configurable in DetachableJoint System
- ../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available. HOT 3
- Gazebo Fortress - Loading Models Problem with Ogre2.2 HOT 11
- Wrong URI for Worlds in StartupGUI HOT 3
- RFC: Sensor Systems: Vulnerability testing, advanced noise models, raw sensor data callbacks, decoupling transport HOT 2
- Cannot Read Actors World Positions from the gz Topics
- :farmer: Integation NetworkHandshake and ServerBroadcasterTest failing consistently in gz-sim-main HOT 2
- DiffDrive publish_odom_tf parameter HOT 2
- gz sim specific.sdf - run random world if present more than 1 HOT 4
- Calling service for getting Actor poses HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gz-sim.