gz-sim icon indicating copy to clipboard operation
gz-sim copied to clipboard

[Garden] Download models in the background

Open ahcorde opened this issue 3 years ago • 11 comments

🎉 New feature

  • Closes https://github.com/gazebosim/gz-sim/issues/1260

Summary

it requires https://github.com/gazebosim/sdformat/pull/1027

I was trying to add this functionality to Citadel, but we need to load a simple world when we are downloading the models, this simple world will add a name to the Scene which in most of the cases is not going to match with the desired world name.

This will generate that SceneBroadcaster will create some topics with undesired names. Using the reset API I can create the desired topics but, the old topics are still there.

Example:

/clock
/gazebo/resource_paths
/gui/camera/pose
/stats
/world/empty_world/clock
/world/empty_world/dynamic_pose/info
/world/empty_world/pose/info
/world/empty_world/scene/deletion
/world/empty_world/scene/info
/world/empty_world/state
/world/empty_world/stats
/world/shapes/dynamic_pose/info
/world/shapes/pose/info
/world/shapes/scene/deletion
/world/shapes/scene/info
/world/shapes/state

Another issue happens in the Physics thread, sometimes some links are not added. Myabe a race condition ?

It builds on top of https://github.com/gazebosim/gz-sim/pull/1327

Checklist

  • [ ] Signed all commits for DCO
  • [ ] Added tests
  • [ ] Added example and/or tutorial
  • [ ] Updated documentation (as needed)
  • [ ] Updated migration guide (as needed)
  • [ ] Consider updating Python bindings (if the library has them)
  • [ ] codecheck passed (See contributing)
  • [ ] All tests passed (See test coverage)
  • [ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

ahcorde avatar May 13 '22 16:05 ahcorde

This PR is required https://github.com/gazebosim/sdformat/pull/1027

This PR will read the world name, this will allow to setup the topic and services with the right names

ahcorde avatar May 23 '22 15:05 ahcorde

hi @ahcorde , I have experiment this PR and encounter some issues. at first, it runs fine with shapes.sdf, until I have trying with ardupilot_gazebo, please see this issue ,

then I have add many igndbg trace statements around those methods, I found some concurrency problem.

for shapes.sdf, maybe it's structure is too simple, everything is fine. it only create one postupdate worker thread.

server side log
slim:ardupilot_gazebo-1 xlla$ lldb ruby -- /usr/local/bin/ign gazebo -s -v 4 -r shapes.sdf
error: module importing failed: invalid pathname
(lldb) target create "ruby"
Current executable set to 'ruby' (x86_64).
(lldb) settings set -- target.run-args  "/usr/local/bin/ign" "gazebo" "-s" "-v" "4" "-r" "shapes.sdf"
(lldb) r
Process 71222 launched: '/usr/local/opt/ruby/bin/ruby' (x86_64)
[Msg] Ignition Gazebo Server v7.0.0~pre1
this->dataPtr->config.Source() 2
[Msg] Loading default world.
[Msg] Loading SDF world file[/usr/local/Cellar/ignition-gazebo7/6.999.999~0~20220412/share/ignition/ignition-gazebo7/worlds/shapes.sdf].
[Msg] Loaded level [3]
[Msg] No systems loaded from SDF, loading defaults
[Dbg] [ServerConfig.cc:1004] Loaded (3) plugins from file [/Users/xlla/.ignition/gazebo/7/server.config]
[Dbg] [Physics.cc:824] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/local/Cellar/ignition-physics6/5.999.999~0~20220414/lib/ign-physics-6/engine-plugins/libignition-physics-dartsim-plugin.dylib]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::Physics] for entity [1]
[Msg] Create service on [/world/shapes/create]
[Msg] Remove service on [/world/shapes/remove]
[Msg] Pose service on [/world/shapes/set_pose]
[Msg] Pose service on [/world/shapes/set_pose_vector]
[Msg] Light configuration service on [/world/shapes/light_config]
[Msg] Physics service on [/world/shapes/set_physics]
[Msg] SphericalCoordinates service on [/world/shapes/set_spherical_coordinates]
[Msg] Enable collision service on [/world/shapes/enable_collision]
[Msg] Disable collision service on [/world/shapes/disable_collision]
[Msg] Material service on [/world/shapes/visual_config]
[Msg] Material service on [/world/shapes/wheel_slip]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::UserCommands] for entity [1]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::SceneBroadcaster] for entity [1]
[Msg] Serving world controls on [/world/shapes/control], [/world/shapes/control/state] and [/world/shapes/playback/control]
[Msg] Serving GUI information on [/world/shapes/gui/info]
[Msg] World [shapes] initialized with [default_physics] physics profile.
[Msg] Serving world SDF generation service on [/world/shapes/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[Msg] Download models in parallel has finished. Now you can start the simulation
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Dbg] [SimulationRunner.cc:494] Creating PostUpdate worker threads: 2
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (0)
[Msg] Serving scene information on [/world/shapes/scene/info]
[Msg] Serving graph information on [/world/shapes/scene/graph]
[Msg] Serving full state on [/world/shapes/state]
[Msg] Serving full state (async) on [/world/shapes/state_async]
[Msg] Publishing scene information on [/world/shapes/scene/info]
[Msg] Publishing entity deletions on [/world/shapes/scene/deletion]
[Msg] Publishing state changes on [/world/shapes/state]
[Msg] Publishing pose messages on [/world/shapes/pose/info]
[Msg] Publishing dynamic pose messages on [/world/shapes/dynamic_pose/info]
[Dbg] [SimulationRunner.cc:259] Rewinding simulation back to time zero.
[Dbg] [SceneBroadcaster.cc:349] publish just periodic change components 
[Dbg] [EntityComponentManager.cc:1617] Updated state thread iterators: 8 numEntities: 28 threads processing around 4 entities each.
[Dbg] [EntityComponentManager.cc:1676] after calculate state thread load 
[Dbg] [EntityComponentManager.cc:1701] total workers: 7
[Dbg] [EntityComponentManager.cc:1705] spawn worker 0
[Dbg] [EntityComponentManager.cc:1705] spawn worker 1
[Dbg] [EntityComponentManager.cc:1705] spawn worker 2
[Dbg] [EntityComponentManager.cc:1705] spawn worker 3
[Dbg] [EntityComponentManager.cc:1705] spawn worker 4
[Dbg] [EntityComponentManager.cc:1705] spawn worker 5
[Dbg] [EntityComponentManager.cc:1705] spawn worker 6
[Dbg] [EntityComponentManager.cc:1711] wait workers finish 
[Dbg] [EntityComponentManager.cc:1717] all workers finished 
[Dbg] [SceneBroadcaster.cc:336] publish full state 
[Dbg] [EntityComponentManager.cc:1676] after calculate state thread load 
[Dbg] [EntityComponentManager.cc:1701] total workers: 7
[Dbg] [EntityComponentManager.cc:1705] spawn worker 0
[Wrn] [Component.hh:144] [Dbg] [EntityComponentManager.cc:1705] spawn worker 1
Trying to serialize component with data type [N3sdf3v135WorldE], which doesn't have `operator

for iris_arducopter_runway.world, it create five postupdate worker thread, the trace log get fuzzy, it seems SceneBroadcaster.cc Line 349 got launched after Line 346 launched immediately, then EntityComponentManagerPrivate::CalculateStateThreadLoad invoked concurrently.

around Line 336

    else if (!_info.paused)
    {
      IGN_PROFILE("SceneBroadcast::PostUpdate UpdateState");
      auto periodicComponents = _manager.ComponentTypesWithPeriodicChanges();
      igndbg << "publish just periodic change components "  << std::endl;
      _manager.State(*this->dataPtr->stepMsg.mutable_state(),
          {}, periodicComponents);
    }

around Line 349

    if (this->dataPtr->stateServiceRequest)
    {
        igndbg << "publish full state "  << std::endl;
      _manager.State(*this->dataPtr->stepMsg.mutable_state(), {}, {}, true);
    }
server side log
slim:ardupilot_gazebo-1 xlla$ lldb ruby -- /usr/local/bin/ign gazebo -s -v 4 -r iris_arducopter_runway.world
error: module importing failed: invalid pathname
(lldb) target create "ruby"
Current executable set to 'ruby' (x86_64).
(lldb) settings set -- target.run-args  "/usr/local/bin/ign" "gazebo" "-s" "-v" "4" "-r" "iris_arducopter_runway.world"
(lldb) r
Process 69775 launched: '/usr/local/opt/ruby/bin/ruby' (x86_64)
[Msg] Ignition Gazebo Server v7.0.0~pre1
this->dataPtr->config.Source() 2
[Msg] Loading default world.
[Msg] Loading SDF world file[/Users/xlla/git/ardupilot_gazebo-1/worlds/iris_arducopter_runway.world].
[Msg] Loaded level [3]
[Msg] No systems loaded from SDF, loading defaults
[Dbg] [ServerConfig.cc:1004] Loaded (3) plugins from file [/Users/xlla/.ignition/gazebo/7/server.config]
[Dbg] [Physics.cc:824] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/local/Cellar/ignition-physics6/5.999.999~0~20220414/lib/ign-physics-6/engine-plugins/libignition-physics-dartsim-plugin.dylib]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::Physics] for entity [1]
[Msg] Create service on [/world/iris_arducopter_runway/create]
[Msg] Remove service on [/world/iris_arducopter_runway/remove]
[Msg] Pose service on [/world/iris_arducopter_runway/set_pose]
[Msg] Pose service on [/world/iris_arducopter_runway/set_pose_vector]
[Msg] Light configuration service on [/world/iris_arducopter_runway/light_config]
[Msg] Physics service on [/world/iris_arducopter_runway/set_physics]
[Msg] SphericalCoordinates service on [/world/iris_arducopter_runway/set_spherical_coordinates]
[Msg] Enable collision service on [/world/iris_arducopter_runway/enable_collision]
[Msg] Disable collision service on [/world/iris_arducopter_runway/disable_collision]
[Msg] Material service on [/world/iris_arducopter_runway/visual_config]
[Msg] Material service on [/world/iris_arducopter_runway/wheel_slip]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::UserCommands] for entity [1]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::SceneBroadcaster] for entity [1]
[Msg] Serving world controls on [/world/iris_arducopter_runway/control], [/world/iris_arducopter_runway/control/state] and [/world/iris_arducopter_runway/playback/control]
[Msg] Serving GUI information on [/world/iris_arducopter_runway/gui/info]
[Msg] World [iris_arducopter_runway] initialized with [default_physics] physics profile.
[Msg] Serving world SDF generation service on [/world/iris_arducopter_runway/generate_world_sdf]
[Msg] Serving world names on [/gazebo/worlds]
[Msg] Resource path add service on [/gazebo/resource_paths/add].
[Msg] Resource path get service on [/gazebo/resource_paths/get].
[Msg] Resource paths published on [/gazebo/resource_paths].
[Msg] Server control service on [/server_control].
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::JointStatePublisher] for entity [9]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::LiftDrag] for entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::LiftDrag] is already loaded in this entity [9]
[Msg] ApplyJointForce subscribing to Double messages on [/model/iris/joint/rotor_0_joint/cmd_force]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::ApplyJointForce] for entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::ApplyJointForce] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::ApplyJointForce] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:61] This system Plugin [ignition::gazebo::systems::ApplyJointForce] is already loaded in this entity [9]
[Dbg] [SystemManager.cc:89] Loaded system [ArduPilotPlugin] for entity [9]
[Dbg] [Physics.cc:824] Loaded [ignition::physics::dartsim::Plugin] from library [/usr/local/Cellar/ignition-physics6/5.999.999~0~20220414/lib/ign-physics-6/engine-plugins/libignition-physics-dartsim-plugin.dylib]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::Physics] for entity [1]
[Msg] Create service on [/world/iris_arducopter_runway/create]
[Msg] Remove service on [/world/iris_arducopter_runway/remove]
[Msg] Pose service on [/world/iris_arducopter_runway/set_pose]
[Msg] Pose service on [/world/iris_arducopter_runway/set_pose_vector]
[Msg] Light configuration service on [/world/iris_arducopter_runway/light_config]
[Msg] Physics service on [/world/iris_arducopter_runway/set_physics]
[Msg] SphericalCoordinates service on [/world/iris_arducopter_runway/set_spherical_coordinates]
[Msg] Enable collision service on [/world/iris_arducopter_runway/enable_collision]
[Msg] Disable collision service on [/world/iris_arducopter_runway/disable_collision]
[Msg] Material service on [/world/iris_arducopter_runway/visual_config]
[Msg] Material service on [/world/iris_arducopter_runway/wheel_slip]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::UserCommands] for entity [1]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::SceneBroadcaster] for entity [1]
[Dbg] [SystemManager.cc:89] Loaded system [ignition::gazebo::systems::Imu] for entity [1]
[Msg] Download models in parallel has finished. Now you can start the simulation
[Msg] Found no publishers on /stats, adding root stats topic
[Msg] Found no publishers on /clock, adding root clock topic
[Dbg] [SimulationRunner.cc:494] Creating PostUpdate worker threads: 6
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (0)
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (1)
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (2)
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (3)
[Dbg] [SimulationRunner.cc:505] Creating postupdate worker thread (4)
[Dbg] [ArduPilotPlugin.cc:821] Computed IMU topic to be: world/iris_arducopter_runway/model/iris/link/imu_link/sensor/imu_sensor/imu
[Msg] Using [ode] collision detector
[Msg] Using [DantzigBoxedLcpSolver] solver.
[Msg] Serving scene information on [/world/iris_arducopter_runway[Dbg] [ImuSensor.cc:148] IMU data for [iris::imu_link::imu_sensor/world/iris_arducopter_runway] advertised on [world/iris_arducopter_runway/model/iris/link/imu_link/sensor/imu_sensor/imu]
[Msg] Serving scene information on []/world/iris_arducopter_runway
/scene/info]
[Msg] Serving graph information on [/world/iris_arducopter_runway/scene/graph]

Serving graph information on [/world/iris_arducopter_runway/scene/graph] [Msg] Serving full state on [/world/iris_arducopter_runway/state/][Msg] ][Msg] Serving full state on [/world/iris_arducopter_runway/world/iris_arducopter_runway/state] [Msg] Serving full state (async) on [Serving full state (async) on [[Msg] /Serving full state (async) on [state_asyncServing full state (async) on [state_async/world/iris_arducopter_runway]/world/iris_arducopter_runway] / /state_async] [Msg] Publishing scene information on [/world/iris_arducopter_runway/scene/info]

Publishing scene information on [/world/iris_arducopter_runway/scene/info] [Msg] [Msg] [Msg] /world/iris_arducopter_runway/scene/deletionPublishing entity deletions on []/world/iris_arducopter_runway/scene/deletion [Msg] Publishing state changes on [Publishing state changes on [/world/iris_arducopter_runway/state/world/iris_arducopter_runway/state]]

[Msg] Publishing pose messages on [Publishing pose messages on [/world/iris_arducopter_runway/world/iris_arducopter_runway//pose/infopose/info]]

[Msg] Publishing dynamic pose messages on [Publishing dynamic pose messages on [/world/iris_arducopter_runway//dynamic_pose/infodynamic_pose/info]]

[Dbg] [SimulationRunner.cc:259] Rewinding simulation back to time zero. [Dbg] [SceneBroadcaster.cc:336] [Dbg] [SceneBroadcaster.cc:336] [Dbg] [SceneBroadcaster.cc:349] publish full state publish just periodic change components publish full state publish just periodic change components

[Dbg] [EntityComponentManager.cc:1617] [Dbg] [EntityComponentManager.cc:1617] [Dbg] [EntityComponentManager.cc:1676] Updated state thread iterators: after calculate state thread load Updated state thread iterators: after calculate state thread load numEntities: numEntities: 38 threads processing around threads processing around [Dbg] [EntityComponentManager.cc:1701] 5total workers: entities each.

[Dbg] [EntityComponentManager.cc:1705] spawn worker spawn worker [Dbg] [EntityComponentManager.cc:1676] 0 after calculate state thread load after calculate state thread load

[Dbg] [EntityComponentManager.cc:1701] [Dbg] [EntityComponentManager.cc:1701] [Dbg] [EntityComponentManager.cc:1705] total workers: spawn worker 81

[Dbg] [EntityComponentManager.cc:1705] spawn worker spawn worker [Dbg] [EntityComponentManager.cc:1705] 0spawn worker 0spawn worker 2

[Wrn] [Component.hh:144] Trying to serialize component with data type [N3sdf3v135WorldE], which doesn't have operator<<. Component will not be serialized. [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] spawn worker spawn worker 3131

[Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] 42

[Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] spawn worker spawn worker 53

[Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] spawn worker 46

[Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] spawn worker 57

[Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] [Dbg] [EntityComponentManager.cc:1705] spawn worker spawn worker 68

Process 69775 stopped

  • thread #32, stop reason = EXC_BAD_ACCESS (code=1, address=0x10) frame #0: 0x0000000108734148 libignition-gazebo7.7.dylibvoid* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ignition::gazebo::v7::EntityComponentManager::State(ignition::msgs::SerializedStateMap&, std::__1::unordered_set<unsigned long long, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<unsigned long long> > const&, std::__1::unordered_set<unsigned long long, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<unsigned long long> > const&, bool) const::$_0, std::__1::__hash_map_iterator<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, unsigned long, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long> > > >, void*>*> >, std::__1::__hash_map_iterator<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, unsigned long, std::__1::hash<unsigned long long>, std::__1::equal_to<unsigned long long>, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long> > > >, void*>*> > > >(void*) + 168 libignition-gazebo7.7.dylibstd::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, ignition::gazebo::v7::EntityComponentManager::State(ignition::msgs::SerializedStateMap&, std::__1::unordered_set<unsigned long long, std::__1::hash, std::__1::equal_to, std::__1::allocator > const&, std::__1::unordered_set<unsigned long long, std::__1::hash, std::__1::equal_to, std::__1::allocator > const&, bool) const::$_0, std::__1::__hash_map_iterator<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, unsigned long, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long> > > >, void*>> >, std::__1::__hash_map_iterator<std::__1::__hash_iterator<std::__1::__hash_node<std::__1::__hash_value_type<unsigned long long, std::__1::unordered_map<unsigned long long, unsigned long, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<unsigned long long const, unsigned long> > > >, void>*> > > >: -> 0x108734148 <+168>: movq 0x10(%rbx), %r9 0x10873414c <+172>: movq 0x8(%r12), %rdi 0x108734151 <+177>: cmpq $0x0, 0x18(%rdi) 0x108734156 <+182>: je 0x108734120 ; <+128>

after revert this PR, iris_arducopter_runway.world runs fine.

xlla avatar May 31 '22 19:05 xlla

Some issues I've found:

  • Same as comment https://github.com/gazebosim/gz-sim/pull/1464#issuecomment-1138946824
  • When using the resource spawner, the sim freezes while the item is being loaded and am not able to interact with the scene

Peek 2022-06-02 10-28

  • When using the create service call, I'm able to interact with the scene but the entities in the scene are frozen

Peek 2022-06-02 11-21

here's the service command I used:

ign service -s /world/shapes/create \
--reqtype ignition.msgs.EntityFactory \
--reptype ignition.msgs.Boolean \
--timeout 300 \
--req 'sdf: '\
'"<?xml version=\"1.0\" ?>'\
'<sdf version=\"1.8\">'\
'<include>'\
'<uri>'\
'https://fuel.ignitionrobotics.org/1.0/OpenRobotics/models/dynamo_x4_sensor_config_1'\
'</uri>'\
'</include>'\
'</sdf>" '\
'pose: {position: {z: 5}} '\
'name: "copter" '

jennuine avatar Jun 02 '22 18:06 jennuine

Hi @xlla,

I created this PR https://github.com/ArduPilot/ardupilot_gazebo/pull/27 to fix all the issues that might have. I didn't try to fly the drone, but it's not crashing. Can you try it ?

@jennuine thank you for pointing me these two uses cases, I didn't work on them, I included some code to fix them, now the simulation should not be blocked during the download, maybe you can feel some issues when the model is loaded in rendering but it's something which is not targeting this PR.

This PR depends on this branch other PR https://github.com/gazebosim/gz-sim/pull/1355

ahcorde avatar Jun 28 '22 19:06 ahcorde

maybe you can feel some issues when the model is loaded in rendering but it's something which is not targeting this PR.

Can you please clarify?

jennuine avatar Jun 28 '22 20:06 jennuine

I think that the merge is okay. It may be cleaner to rebase on main at this point, though?

mjcarroll avatar Jun 30 '22 12:06 mjcarroll

This seems odd, did it come in from the merge from main?

/github/workspace/src/Server.cc: In member function 'void gz::sim::v7::Server::Init()':
  /github/workspace/src/Server.cc:207:43: error: 'class sdf::v13::Root' has no member named 'WorldNameFromFile'
    207 |     auto errors2 = this->dataPtr->sdfRoot.WorldNameFromFile(

mjcarroll avatar Jul 08 '22 15:07 mjcarroll

This seems odd, did it come in from the merge from main?

/github/workspace/src/Server.cc: In member function 'void gz::sim::v7::Server::Init()':
  /github/workspace/src/Server.cc:207:43: error: 'class sdf::v13::Root' has no member named 'WorldNameFromFile'
    207 |     auto errors2 = this->dataPtr->sdfRoot.WorldNameFromFile(

@mjcarroll This is not merged yet https://github.com/gazebosim/sdformat/pull/1027

ahcorde avatar Jul 08 '22 15:07 ahcorde

@mjcarroll This is not merged yet https://github.com/gazebosim/sdformat/pull/1027

Ah, sorry didn't catch that. Looks like it has an approval, do you want to merge/release or wait for @chapulina ?

mjcarroll avatar Jul 08 '22 15:07 mjcarroll

do you want to merge/release or wait for @chapulina ?

Don't wait for me on the SDF PR 🚢

chapulina avatar Jul 08 '22 15:07 chapulina

@ahcorde see #1669 as an alternative that doesn't need the restart feature.

nkoenig avatar Aug 26 '22 21:08 nkoenig

Closing in favor of https://github.com/gazebosim/gz-sim/pull/1669

azeey avatar Aug 18 '23 18:08 azeey