gz-physics dartsim assertion failed during px4 simulation
Hello! When starting a simulation through px4 like shown below, gazebo stops and prints a stacktrace to the console. There seems to be an assertion error - not sure why? Is this a bug in the gz-physics software or more like an issue with my setup? I'm running gazebo garden (7.4.0) on ArchLinux.
[Dbg] [SystemManager.cc:74] Loaded system [gz::sim::systems::MulticopterMotorModel] for entity [10]
[Dbg] [UserCommands.cc:1263] Created entity [10] named [x500_0]
/usr/include/c++/12.2.1/bits/stl_vector.h:1123: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = dart::dynamics::Skeleton::DataCache; _Alloc = Eigen::aligned_allocator<dart::dynamics::Skeleton::DataCache>; reference = dart::dynamics::Skeleton::DataCache&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Stack trace (most recent call last):
#31 Object "/usr/lib/libruby.so.3.0", at 0x7f631584760e, in
#30 Object "/usr/lib/libruby.so.3.0", at 0x7f6315844829, in
#29 Object "/usr/lib/libruby.so.3.0", at 0x7f631583b57c, in
#28 Object "/usr/lib/ruby/3.0.0/x86_64-linux/fiddle.so", at 0x7f6315b96acc, in
#27 Object "/usr/lib/libruby.so.3.0", at 0x7f631580e0f5, in rb_nogvl
#26 Object "/usr/lib/ruby/3.0.0/x86_64-linux/fiddle.so", at 0x7f6315b963bc, in
#25 Object "/usr/lib/libffi.so.8", at 0x7f631537cb72, in ffi_call
#24 Object "/usr/lib/libffi.so.8", at 0x7f6315379f5d, in
#23 Object "/usr/lib/libffi.so.8", at 0x7f631537d4f5, in
#22 Object "/usr/lib/libgz-sim7-gz.so.7.4.0", at 0x7f6311a70940, in runServer
#21 Object "/usr/lib/libgz-sim7.so.7", at 0x7f63109f09c2, in
#20 Object "/usr/lib/libgz-sim7.so.7", at 0x7f6310a0438b, in gz::sim::v7::SimulationRunner::Run(unsigned long)
#19 Object "/usr/lib/libgz-sim7.so.7", at 0x7f6310a03a28, in gz::sim::v7::SimulationRunner::Step(gz::sim::v7::UpdateInfo const&)
#18 Object "/usr/lib/libgz-sim7.so.7", at 0x7f63109f8d91, in gz::sim::v7::SimulationRunner::UpdateSystems()
#17 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc520a6b, in gz::sim::v7::systems::Physics::Update(gz::sim::v7::UpdateInfo const&, gz::sim::v7::EntityComponentManager&)
#16 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc50cce6, in gz::sim::v7::systems::PhysicsPrivate::CreatePhysicsEntities(gz::sim::v7::EntityComponentManager const&, bool)
#15 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc50bd0e, in gz::sim::v7::systems::PhysicsPrivate::CreateModelEntities(gz::sim::v7::EntityComponentManager const&, bool)
#14 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc597f10, in void gz::sim::v7::EntityComponentManager::EachNew<gz::sim::v7::components::Component<std::add_lvalue_reference<void>, gz::sim::v7::components::ModelTag, gz::sim::v7::serializers::DefaultSerializer<std::add_lvalue_reference<void> > >, gz::sim::v7::components::Component<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gz::sim::v7::components::NameTag, gz::sim::v7::serializers::StringSerializer>, gz::sim::v7::components::Component<gz::math::v7::Pose3<double>, gz::sim::v7::components::PoseTag, gz::sim::v7::serializers::DefaultSerializer<gz::math::v7::Pose3<double> > >, gz::sim::v7::components::Component<unsigned long, gz::sim::v7::components::ParentEntityTag, gz::sim::v7::serializers::DefaultSerializer<unsigned long> > >(gz::sim::v7::EntityComponentManager::identity<std::function<bool (unsigned long const&, gz::sim::v7::components::Component<std::add_lvalue_reference<void>, gz::sim::v7::components::ModelTag, gz::sim::v7::serializers::DefaultSerializer<std::add_lvalue_reference<void> > > const*, gz::sim::v7::components::Component<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gz::sim::v7::components::NameTag, gz::sim::v7::serializers::StringSerializer> const*, gz::sim::v7::components::Component<gz::math::v7::Pose3<double>, gz::sim::v7::components::PoseTag, gz::sim::v7::serializers::DefaultSerializer<gz::math::v7::Pose3<double> > > const*, gz::sim::v7::components::Component<unsigned long, gz::sim::v7::components::ParentEntityTag, gz::sim::v7::serializers::DefaultSerializer<unsigned long> > const*)> >::type) const
#13 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc514315, in
#12 Object "/usr/lib/gz-sim-7/plugins/libgz-sim-physics-system.so", at 0x7f62fc54a7d5, in gz::physics::sdf::ConstructSdfModel::World<gz::physics::FeaturePolicy<double, 3ul>, gz::sim::v7::systems::PhysicsPrivate::MinimumFeatureList>::ConstructModel(sdf::v13::Model const&)
#11 Object "/usr/lib/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7f62ea57fbb4, in virtual thunk to gz::physics::dartsim::SDFFeatures::ConstructSdfModel(gz::physics::Identity const&, sdf::v13::Model const&)
#10 Object "/usr/lib/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7f62ea57e2b3, in gz::physics::dartsim::SDFFeatures::ConstructSdfModelImpl(unsigned long, sdf::v13::Model const&)
#9 Object "/usr/lib/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7f62ea57d1c3, in gz::physics::dartsim::SDFFeatures::ConstructSdfJoint(gz::physics::dartsim::ModelInfo const&, sdf::v13::Joint const&, dart::dynamics::BodyNode*, dart::dynamics::BodyNode*)
#8 Object "/usr/lib/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7f62ea571279, in dart::dynamics::RevoluteJoint* dart::dynamics::BodyNode::moveTo<dart::dynamics::RevoluteJoint>(dart::dynamics::BodyNode*, dart::dynamics::RevoluteJoint::Properties const&)
#7 Object "/usr/lib/gz-physics-6/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7f62ea5710fc, in dart::dynamics::RevoluteJoint* dart::dynamics::Skeleton::moveBodyNodeTree<dart::dynamics::RevoluteJoint>(dart::dynamics::BodyNode*, std::shared_ptr<dart::dynamics::Skeleton> const&, dart::dynamics::BodyNode*, dart::dynamics::RevoluteJoint::Properties const&)
#6 Object "/usr/lib/libdart.so.6.12", at 0x7f62ea081ef6, in dart::dynamics::Skeleton::moveBodyNodeTree(dart::dynamics::Joint*, dart::dynamics::BodyNode*, std::shared_ptr<dart::dynamics::Skeleton>, dart::dynamics::BodyNode*)
#5 Object "/usr/lib/libdart.so.6.12", at 0x7f62e9f3794d, in dart::dynamics::Entity::changeParentFrame(dart::dynamics::Frame*)
#4 Object "/usr/lib/libdart.so.6.12", at 0x7f62e9f08f0f, in dart::dynamics::BodyNode::dirtyTransform()
#3 Object "/usr/lib/libstdc++.so.6", at 0x7f63118d30e1, in std::__glibcxx_assert_fail(char const*, int, char const*, char const*)
#2 Object "/usr/lib/libc.so.6", at 0x7f631543b53c, in abort
#1 Object "/usr/lib/libc.so.6", at 0x7f6315451ea7, in gsignal
#0 Object "/usr/lib/libc.so.6", at 0x7f63154a08ec, in
Aborted (Signal sent by tkill() 23169 1000)
ERROR [gz_bridge] timed out waiting for clock message
ERROR [gz_bridge] Task start failed (-1)
ERROR [init] gz_bridge failed to start
ERROR [px4] Startup script returned with return value: 256
The command I used to to start the px4 simulation is make px4sitl gzx500
Under the hood this launches gazebo and loads a world and a drone model. According to the stacktrace, the problem has something to do with the joints, how can I identify the issue?
Asked by sandro on 2023-03-23 07:55:56 UTC
Comments