Skip to content

Issue with multi_robot simulation  #49

@moutalibbadr

Description

@moutalibbadr

I've been working on Launching multiple create3 robots in simulation with ignition edifice and ROS2. This feature is not supported out of the box with the create3_sim package and so I had to do some modifications to enable it. However I ran into a segfault error

[INFO] [1650890806.787380428] [create3_0.controller_manager]: Loading controller 'joint_state_broadcaster'
Stack trace (most recent call last):
#31   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af66adaa, in 
#30   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af65e025, in 
#29   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af5bc1be, in 
#28   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af4fc5d2, in rb_protect
#27   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af6759f0, in rb_yield
#26   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af66886f, in rb_vm_exec
#25   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af662130, in 
#24   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af651405, in 
#23   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af66adaa, in 
#22   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af65e025, in 
#21   Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x7f93ab4fe714, in 
#20   Object "/lib/x86_64-linux-gnu/libruby-2.7.so.2.7", at 0x7f93af62f6d9, in rb_nogvl
#19   Object "/usr/lib/x86_64-linux-gnu/ruby/2.7.0/fiddle.so", at 0x7f93ab4fe8fb, in 
#18   Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x7f93ab4ad409, in 
#17   Object "/lib/x86_64-linux-gnu/libffi.so.7", at 0x7f93ab4adff4, in 
#16   Object "/usr/lib/x86_64-linux-gnu/libignition-gazebo5-ign.so.5.4.0", at 0x7f93aaa4a74e, in runServer
#15   Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5d041b, in ignition::gazebo::v5::Server::Run(bool, unsigned long, bool)
#14   Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5da793, in 
#13   Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e815a, in ignition::gazebo::v5::SimulationRunner::Run(unsigned long)
#12   Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e794a, in ignition::gazebo::v5::SimulationRunner::Step(ignition::gazebo::v5::UpdateInfo const&)
#11   Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e0561, in ignition::gazebo::v5::SimulationRunner::UpdateSystems()
#10   Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-user-commands-system.so", at 0x7f9385749178, in ignition::gazebo::v5::systems::UserCommands::PreUpdate(ignition::gazebo::v5::UpdateInfo const&, ignition::gazebo::v5::EntityComponentManager&)
#9    Object "/usr/lib/x86_64-linux-gnu/ign-gazebo-5/plugins/libignition-gazebo-user-commands-system.so", at 0x7f938574b7bd, in ignition::gazebo::v5::systems::CreateCommand::Execute()
#8    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa59bc90, in ignition::gazebo::v5::SdfEntityCreator::CreateEntities(sdf::v11::Model const*)
#7    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5c5fb6, in void ignition::gazebo::v5::EventManager::Emit<ignition::common::EventT<void (unsigned long, std::shared_ptr<sdf::v11::Element>), ignition::gazebo::v5::events::LoadPluginsTag>, unsigned long const&, std::shared_ptr<sdf::v11::Element> const&>(unsigned long const&, std::shared_ptr<sdf::v11::Element> const&)
#6    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e3b86, in ignition::gazebo::v5::SimulationRunner::LoadPlugins(unsigned long, std::shared_ptr<sdf::v11::Element> const&)
#5    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e36b4, in ignition::gazebo::v5::SimulationRunner::LoadPlugin(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<sdf::v11::Element> const&)
#4    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e1038, in ignition::gazebo::v5::SimulationRunner::AddSystem(ignition::plugin::TemplatePluginPtr<ignition::plugin::SpecializedPlugin<ignition::gazebo::v5::System, ignition::gazebo::v5::ISystemConfigure, ignition::gazebo::v5::ISystemPreUpdate, ignition::gazebo::v5::ISystemUpdate, ignition::gazebo::v5::ISystemPostUpdate> > const&, std::optional<unsigned long>, std::optional<std::shared_ptr<sdf::v11::Element const> >)
#3    Object "/lib/x86_64-linux-gnu/libignition-gazebo5.so.5", at 0x7f93aa5e0c1a, in ignition::gazebo::v5::SimulationRunner::AddSystemImpl(ignition::gazebo::v5::SystemInternal, std::optional<unsigned long>, std::optional<std::shared_ptr<sdf::v11::Element const> >)
#2    Object "/home/Workspace/shroom/simulation_ws/install/ign_ros2_control/lib/libign_ros2_control-system.so", at 0x7f9384ce3cfb, in ign_ros2_control::IgnitionROS2ControlPlugin::Configure(unsigned long const&, std::shared_ptr<sdf::v11::Element const> const&, ignition::gazebo::v5::EntityComponentManager&, ignition::gazebo::v5::EventManager&)
#1    Object "/opt/ros/galactic/lib/librclcpp.so", at 0x7f938496b247, in rclcpp::Executor::add_node(std::shared_ptr<rclcpp::Node>, bool)
#0    Object "/opt/ros/galactic/lib/librclcpp.so", at 0x7f93849920e4, in rclcpp::Node::get_node_base_interface()

This error seems to be related to ign_ros2_control_plugin.cpp.
It does not appear when spawning one robot.

To recreate this error run this after building this repo :

ros2 launch irobot_create_ignition_bringup create3_multi.launch.py

Any help or lead will be much appreciated.
Thank you!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions