Skip to content

Crashed after adding a model to the world containing gz-physics-bullet-featherstone-plugin #2858

@liyitao-code

Description

@liyitao-code

Environment

  • OS Version: Ubuntu 24.04
  • Source or binary build?
    Source build, use gz-sim9 version:d83d135
    Built with gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)
    Build options: -DCMAKE_BUILD_TYPE=Coverage

Description

  • Expected behavior: Gazebo doesn't crash
  • Actual behavior: Gazebo crashes

Steps to reproduce

  1. gz sim a.txt -r
  2. Add a mode with multiple parent joints
gz service --timeout 500 -s /world/default/create --reptype gz.msgs.Boolean --reqtype gz.msgs.EntityFactory --req 'sdf: "<sdf version=\"1.12\">\n  <model name=\"model\">\n    <static>false</static>\n    <self_collide>true</self_collide>\n    <allow_auto_disable>true</allow_auto_disable>\n    <enable_wind>true</enable_wind>\n    <pose>-4.5284367978079061 1.2272649373371429 6.0376167323104033 0 0 0</pose>\n    <link name=\"link_0\">\n      <pose>6.32622343574781 -0.92170416608774985 4.8770434422139441 0 0 0</pose>\n      <inertial>\n        <pose>0 0 0 0 0 0</pose>\n        <mass>1</mass>\n        <inertia>\n          <ixx>1</ixx>\n          <ixy>0</ixy>\n          <ixz>0</ixz>\n          <iyy>1</iyy>\n          <iyz>0</iyz>\n          <izz>1</izz>\n        </inertia>\n      </inertial>\n      <enable_wind>false</enable_wind>\n      <kinematic>false</kinematic>\n      <collision name=\"collision_1788\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <sphere>\n            <radius>2.5678293479732961</radius>\n          </sphere>\n        </geometry>\n        <surface>\n          <contact>\n            <collide_bitmask>255</collide_bitmask>\n          </contact>\n          <friction>\n            <ode>\n              <mu>1</mu>\n              <mu2>1</mu2>\n              <slip1>0</slip1>\n              <slip2>0</slip2>\n              <fdir1>0 0 0</fdir1>\n            </ode>\n          </friction>\n        </surface>\n      </collision>\n      <visual name=\"visual_1788\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <sphere>\n            <radius>2.5678293479732961</radius>\n          </sphere>\n        </geometry>\n        <cast_shadows>true</cast_shadows>\n        <laser_retro>0</laser_retro>\n        <transparency>0</transparency>\n        <visibility_flags>4294967295</visibility_flags>\n        <material>\n          <ambient>0.270804822 0.255401403 0.726366997 1</ambient>\n          <diffuse>0.270804822 0.255401403 0.726366997 1</diffuse>\n          <specular>0 0 0 1</specular>\n          <emissive>0 0 0 1</emissive>\n          <render_order>0</render_order>\n          <lighting>true</lighting>\n          <double_sided>false</double_sided>\n          <shader type=\"pixel\"/>\n        </material>\n      </visual>\n    </link>\n    <link name=\"link_1\">\n      <pose>1.5532953976013193 5.8670316568209824 4.8311039706803705 0 0 0</pose>\n      <inertial>\n        <pose>0 0 0 0 0 0</pose>\n        <mass>1</mass>\n        <inertia>\n          <ixx>1</ixx>\n          <ixy>0</ixy>\n          <ixz>0</ixz>\n          <iyy>1</iyy>\n          <iyz>0</iyz>\n          <izz>1</izz>\n        </inertia>\n      </inertial>\n      <enable_wind>false</enable_wind>\n      <kinematic>false</kinematic>\n      <collision name=\"collision_1789\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <box>\n            <size>1.2800754078721055 1.4635878504947142 1.586193587353169</size>\n          </box>\n        </geometry>\n        <surface>\n          <contact>\n            <collide_bitmask>255</collide_bitmask>\n          </contact>\n          <friction>\n            <ode>\n              <mu>1</mu>\n              <mu2>1</mu2>\n              <slip1>0</slip1>\n              <slip2>0</slip2>\n              <fdir1>0 0 0</fdir1>\n            </ode>\n          </friction>\n        </surface>\n      </collision>\n      <visual name=\"visual_1789\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <box>\n            <size>1.2800754078721055 1.4635878504947142 1.586193587353169</size>\n          </box>\n        </geometry>\n        <cast_shadows>true</cast_shadows>\n        <laser_retro>0</laser_retro>\n        <transparency>0</transparency>\n        <visibility_flags>4294967295</visibility_flags>\n        <material>\n          <ambient>0.67097795 0.780041337 0.595283628 1</ambient>\n          <diffuse>0.67097795 0.780041337 0.595283628 1</diffuse>\n          <specular>0 0 0 1</specular>\n          <emissive>0 0 0 1</emissive>\n          <render_order>0</render_order>\n          <lighting>true</lighting>\n          <double_sided>false</double_sided>\n          <shader type=\"pixel\"/>\n        </material>\n      </visual>\n    </link>\n    <link name=\"link_2\">\n      <pose>-6.3285174009574323 0.014671518618596835 9.3205354842106338 0 0 0</pose>\n      <inertial>\n        <pose>0 0 0 0 0 0</pose>\n        <mass>1</mass>\n        <inertia>\n          <ixx>1</ixx>\n          <ixy>0</ixy>\n          <ixz>0</ixz>\n          <iyy>1</iyy>\n          <iyz>0</iyz>\n          <izz>1</izz>\n        </inertia>\n      </inertial>\n      <enable_wind>false</enable_wind>\n      <kinematic>false</kinematic>\n      <collision name=\"collision_1790\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <cylinder>\n            <radius>2.0740996525074173</radius>\n            <length>1.5444108674346804</length>\n          </cylinder>\n        </geometry>\n        <surface>\n          <contact>\n            <collide_bitmask>255</collide_bitmask>\n          </contact>\n          <friction>\n            <ode>\n              <mu>1</mu>\n              <mu2>1</mu2>\n              <slip1>0</slip1>\n              <slip2>0</slip2>\n              <fdir1>0 0 0</fdir1>\n            </ode>\n          </friction>\n        </surface>\n      </collision>\n      <visual name=\"visual_1790\">\n        <pose>0 0 0 0 0 0</pose>\n        <geometry>\n          <cylinder>\n            <radius>2.0740996525074173</radius>\n            <length>1.5444108674346804</length>\n          </cylinder>\n        </geometry>\n        <cast_shadows>true</cast_shadows>\n        <laser_retro>0</laser_retro>\n        <transparency>0</transparency>\n        <visibility_flags>4294967295</visibility_flags>\n        <material>\n          <ambient>0.626946747 0.00245066662 0.408773422 1</ambient>\n          <diffuse>0.626946747 0.00245066662 0.408773422 1</diffuse>\n          <specular>0 0 0 1</specular>\n          <emissive>0 0 0 1</emissive>\n          <render_order>0</render_order>\n          <lighting>true</lighting>\n          <double_sided>false</double_sided>\n          <shader type=\"pixel\"/>\n        </material>\n      </visual>\n    </link>\n    <joint name=\"joint_0\" type=\"revolute\">\n      <pose>0 0 0 0 0 0</pose>\n      <parent>link_1</parent>\n      <child>link_2</child>\n      <axis>\n        <xyz>0.3624632547262136 0.60164136593013973 0.71179214365922561</xyz>\n        <limit>\n          <lower>-inf</lower>\n          <upper>inf</upper>\n          <effort>inf</effort>\n          <velocity>1.6536791841434617</velocity>\n          <stiffness>100000000</stiffness>\n          <dissipation>1</dissipation>\n        </limit>\n        <dynamics>\n          <spring_reference>0</spring_reference>\n          <spring_stiffness>0</spring_stiffness>\n          <damping>0</damping>\n          <friction>0</friction>\n        </dynamics>\n      </axis>\n      <axis2>\n        <xyz>0.50461308235324165 0.77114846747182253 0.38819541243273337</xyz>\n        <limit>\n          <lower>-inf</lower>\n          <upper>inf</upper>\n          <effort>inf</effort>\n          <velocity>4.7555826456435177</velocity>\n          <stiffness>100000000</stiffness>\n          <dissipation>1</dissipation>\n        </limit>\n        <dynamics>\n          <spring_reference>0</spring_reference>\n          <spring_stiffness>0</spring_stiffness>\n          <damping>0</damping>\n          <friction>0</friction>\n        </dynamics>\n      </axis2>\n    </joint>\n    <joint name=\"joint_1\" type=\"fixed\">\n      <pose>0 0 0 0 0 0</pose>\n      <parent>link_0</parent>\n      <child>link_2</child>\n      <axis>\n        <xyz>0.75204876835463841 0.57942281208711643 0.31415259803052675</xyz>\n        <limit>\n          <lower>-inf</lower>\n          <upper>inf</upper>\n          <effort>inf</effort>\n          <velocity>7.1591029785458096</velocity>\n          <stiffness>100000000</stiffness>\n          <dissipation>1</dissipation>\n        </limit>\n        <dynamics>\n          <spring_reference>0</spring_reference>\n          <spring_stiffness>0</spring_stiffness>\n          <damping>0</damping>\n          <friction>0</friction>\n        </dynamics>\n      </axis>\n      <axis2>\n        <xyz>0.9206254455468561 0.29573458109850242 0.25493106235636737</xyz>\n        <limit>\n          <lower>-inf</lower>\n          <upper>inf</upper>\n          <effort>inf</effort>\n          <velocity>3.2312986158913004</velocity>\n          <stiffness>100000000</stiffness>\n          <dissipation>1</dissipation>\n        </limit>\n        <dynamics>\n          <spring_reference>0</spring_reference>\n          <spring_stiffness>0</spring_stiffness>\n          <damping>0</damping>\n          <friction>0</friction>\n        </dynamics>\n      </axis2>\n    </joint>\n  </model>\n</sdf>\n"
pose {
  position {
    x: 4.1495665664821875
    y: -6.503081610098116
    z: 8.351135613506441
  }
}
name: "model"
allow_renaming: true
'

Output

(2025-04-15 17:35:15.176) [error] [SDFFeatures.cc:290] The Link [link_2] in Model [model_2] has multiple parent joints. That is not supported by the gz-physics-bullet-featherstone plugin.
(2025-04-15 17:35:15.176) [error] [SDFFeatures.cc:486] Multiple sub-trees / floating links detected in a model. This is not supported in bullet-featherstone implementation yet.
terminate called after throwing an instance of 'std::out_of_range'
  what():  unordered_map::at
Stack trace (most recent call last):
#31   Object "/lib/x86_64-linux-gnu/libffi.so.8", at 0x723ea0a4bb15, in 
#30   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9-gz.so.9.0.0", at 0x723e9b0aed03, in runServer
#29   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9.so.9", at 0x723e99b28a64, in gz::sim::v9::Server::Run(bool, unsigned long, bool)
#28   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9.so.9", at 0x723e99b921da, in 
#27   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9.so.9", at 0x723e99bc2987, in gz::sim::v9::SimulationRunner::Run(unsigned long)
#26   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9.so.9", at 0x723e99bc3908, in gz::sim::v9::SimulationRunner::Step(gz::sim::v9::UpdateInfo const&)
#25   Object "/home/liyitao/workspace/gz_lastest/install/lib/libgz-sim9.so.9", at 0x723e99bbff44, in gz::sim::v9::SimulationRunner::UpdateSystems()
#24   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60ef372d, in 
#23   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60ef3e5c, in 
#22   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60ef7d64, in 
#21   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60faca66, in void gz::sim::v9::EntityComponentManager::EachNew<gz::sim::v9::components::Component<std::add_lvalue_reference<void>, gz::sim::v9::components::ModelTag, gz::sim::v9::serializers::DefaultSerializer<std::add_lvalue_reference<void> > >, gz::sim::v9::components::Component<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gz::sim::v9::components::NameTag, gz::sim::v9::serializers::StringSerializer>, gz::sim::v9::components::Component<gz::math::v8::Pose3<double>, gz::sim::v9::components::PoseTag, gz::sim::v9::serializers::DefaultSerializer<gz::math::v8::Pose3<double> > >, gz::sim::v9::components::Component<unsigned long, gz::sim::v9::components::ParentEntityTag, gz::sim::v9::serializers::DefaultSerializer<unsigned long> > >(gz::sim::v9::EntityComponentManager::identity<std::function<bool (unsigned long const&, gz::sim::v9::components::Component<std::add_lvalue_reference<void>, gz::sim::v9::components::ModelTag, gz::sim::v9::serializers::DefaultSerializer<std::add_lvalue_reference<void> > > const*, gz::sim::v9::components::Component<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, gz::sim::v9::components::NameTag, gz::sim::v9::serializers::StringSerializer> const*, gz::sim::v9::components::Component<gz::math::v8::Pose3<double>, gz::sim::v9::components::PoseTag, gz::sim::v9::serializers::DefaultSerializer<gz::math::v8::Pose3<double> > > const*, gz::sim::v9::components::Component<unsigned long, gz::sim::v9::components::ParentEntityTag, gz::sim::v9::serializers::DefaultSerializer<unsigned long> > const*)> >::type) const
#20   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60fe998d, in 
#19   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e6105d78e, in 
#18   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e610c0adf, in 
#17   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60f2620c, in 
#16   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60f3152d, in 
#15   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60f3efd7, in 
#14   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60ef68e8, in 
#13   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x723e60fabd43, in 
#12   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-physics-8/engine-plugins/libgz-physics-bullet-featherstone-plugin.so", at 0x723e5b139701, in 
#11   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-physics-8/engine-plugins/libgz-physics-bullet-featherstone-plugin.so", at 0x723e5b12e6d5, in 
#10   Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-physics-8/engine-plugins/libgz-physics-bullet-featherstone-plugin.so", at 0x723e5b127777, in 
#9    Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-physics-8/engine-plugins/libgz-physics-bullet-featherstone-plugin.so", at 0x723e5b14afa4, in std::unordered_map<sdf::v15::Link const*, gz::physics::Identity, std::hash<sdf::v15::Link const*>, std::equal_to<sdf::v15::Link const*>, std::allocator<std::pair<sdf::v15::Link const* const, gz::physics::Identity> > >::at(sdf::v15::Link const* const&)
#8    Object "/home/liyitao/workspace/gz_lastest/install/lib/gz-physics-8/engine-plugins/libgz-physics-bullet-featherstone-plugin.so", at 0x723e5b1560e1, in std::__detail::_Map_base<sdf::v15::Link const*, std::pair<sdf::v15::Link const* const, gz::physics::Identity>, std::allocator<std::pair<sdf::v15::Link const* const, gz::physics::Identity> >, std::__detail::_Select1st, std::equal_to<sdf::v15::Link const*>, std::hash<sdf::v15::Link const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::at(sdf::v15::Link const* const&)
#7    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x723e9bca932c, in std::__throw_out_of_range(char const*)
#6    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x723e9bcbb390, in __cxa_throw
#5    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x723e9bca5a54, in std::terminate()
#4    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x723e9bcbb0d9, in 
#3    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x723e9bca5ff4, in 
#2    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x723ea0c288fe, in abort
#1    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x723ea0c4527d, in gsignal
#0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x723ea0c9eb2c, in pthread_kill
Aborted (Signal sent by tkill() 3652897 1000)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions