Open osrf-migration opened 7 years ago
Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).
Good catch. I have moved objects once before while paused, but I hadn't noticed the problem when manipulating them twice.
Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).
The PhysicsMsgs MoveTool test tests the interface used for manipulating objects from the GUI. Do you think you could add a testcase that reproduces this test failure?
Original comment by Peter Horak (Bitbucket: pchorak).
The problem appears to be triggered by Gazebo's user command manager, which enables undo and redo. The exception occurs when it queries the state of Simbody's integrator. A backtrace:
#0 0x00007ffff65b7428 in __GI_raise (sig=sig@entry=6)
at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007ffff65b902a in __GI_abort () at abort.c:89
#2 0x00007ffff6efa84d in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6ef86b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6ef8701 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6ef8919 in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007fffed26edc4 in SimTK::StateImpl::getCacheEntry(SimTK::SubsystemIndex, SimTK::CacheEntryIndex) const ()
from /usr/lib/x86_64-linux-gnu/libSimTKsimbody.so.3.5
#7 0x00007fffed4d5474 in SimTK::MobilizedBody::getBodyVelocity(SimTK::State const&) const () from /usr/lib/x86_64-linux-gnu/libSimTKsimbody.so.3.5
#8 0x00007ffff5a29295 in SimTK::MobilizedBody::getBodyAngularVelocity (
this=0x17cce38, state=...)
at /usr/include/simbody/simbody/internal/MobilizedBody.h:354
#9 0x00007ffff5a264bd in gazebo::physics::SimbodyLink::GetWorldAngularVel (
this=0x17cc910)
at /home/osrf/gazebo7/src/gazebo/gazebo/physics/simbody/SimbodyLink.cc:444
#10 0x00007ffff5b13ba8 in gazebo::physics::LinkState::LinkState (
this=0x7fffcd06a190, _link=..., _realTime=..., _simTime=...,
_iterations=80754)
at /home/osrf/gazebo7/src/gazebo/gazebo/physics/LinkState.cc:44
#11 0x00007ffff5b3bf0e in gazebo::physics::ModelState::ModelState (
this=0x7fffcd06a760, _model=..., _realTime=..., _simTime=...,
_iterations=80754)
at /home/osrf/gazebo7/src/gazebo/gazebo/physics/ModelState.cc:45
#12 0x00007ffff5bc7616 in gazebo::physics::WorldState::WorldState (
this=0x7fffcd06aab0, _world=...)
at /home/osrf/gazebo7/src/gazebo/gazebo/physics/WorldState.cc:61
#13 0x00007ffff5b80162 in gazebo::physics::UserCmd::UserCmd (
this=0x7fff80003940, _id=1, _world=...,
_description="Translate [unit_box]",
_type=@0x7fffcd06abfc: gazebo::msgs::UserCmd_Type_MOVING)
at /home/osrf/gazebo7/src/gazebo/gazebo/physics/UserCmdManager.cc:51
So, tests that translate the object through the "~/model/modify" topic directly do not detect the exception.
Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).
Original report (archived issue) by Peter Horak (Bitbucket: pchorak).
Gazebo crashes while manipulating (translating or rotating) objects while the simulation is paused when using Simbody as the physics engine. Manipulating objects while the simulation is playing appears to be ok though.
The exception message:
To reproduce the exception, try the following:
Launch Gazebo:
gazebo -u -e simbody
Add a unit box to the simulation
Click the button to enter translation mode
Click the box and translate it up (+z) and then right (+y)
I am using libsimbody3.5v5 (3.5.3+dfsg-1ubuntu1)