uneven sdf model updates cuase compatabilty issues, leading up to crash

Create issue
Issue #760 closed
Former user created an issue

Some of the latest sdf models are version 1.4 while others remain at 1.3 and 1.2. This cuases conflict when trying to run a simluation environment that uses different model versions.

exmaple: roslaunch atlas_utils atlas_drc_vehicle_fire_hose.launch 

Warning [parser.cc:361] Converting a deprecated SDF source[/usr/share/drcsim-2.6/gazebo_models/environments/vrc_firehose_long/model.sdf].
Warning [Converter.cc:58]   Version[1.3] to Version[1.4]
  Please use the gzsdf tool to update your SDF files.
    $ gzsdf convert [sdf_file]
Warning [parser.cc:361] Converting a deprecated SDF source[/usr/share/drcsim-2.6/gazebo_models/environments/vrc_standpipe/model.sdf].
Warning [Converter.cc:58]   Version[1.3] to Version[1.4]
  Please use the gzsdf tool to update your SDF files.
    $ gzsdf convert [sdf_file]
Warning [parser.cc:361] Converting a deprecated SDF source[/usr/share/drcsim-2.6/gazebo_models/environments/vrc_valve/model.sdf].
Warning [Converter.cc:58]   Version[1.3] to Version[1.4]
  Please use the gzsdf tool to update your SDF files.
    $ gzsdf convert [sdf_file]
Warning [gazebo_main.cc:62] escalating to SIGKILL on client

The drc_vehicle is a sdf 1.4 envrionment model, and for some reason cannot work with older model versions asgazebo continues to crash each time it tries to open.

Comments (22)

  1. David Jeang

    I'm afraid I don't know how to do that. To be more specific, I know the existence of the gdb app and what it does, but I've never used it before and don't know what specific instructions to type in the terminal to get the bracktrace for this particular problem.

  2. Nate Koenig

    Here is what you can do for standalone gazebo

    gdb gzserver <insert_your_world_here>

    (gdb) run

    wait for segfault

    (gdb) bt

    Post the output.

    For ROS, assuming you have installed DRCSim

    roslaunch drcsim vrc_task1.launch gzname:=gzserver_gdb

    Follow the steps from above.

  3. David Jeang

    I installed gdb, then entered the command:

    roslaunch atlas_utils atlas_drc_vehicle_fire_hose.launch gzname:=gzserver_gdb

    All I got after the warnings though were repeated messages of [tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]

    gazebo doesn't even luanch now.

    Did I do something wrong?

  4. Nate Koenig

    In general, those warning message you see about SDF will not cause a crash. The segfault you are experiencing is most likely something else.

    Are you able to run gazebo outside of ROS?

    The above roslaunch command will only start gzserver, you'll have to also run gzclient to see the GUI.

  5. Ian Chen

    Follow up on the comment on gazebo answers about getting backtrace. Execute the following:

    ulimit -c unlimited

    roslaunch atlas_utils atlas_drc_vehicle_fire_hose.launch

    wait for crash

    gdb gzserver ~/.ros/core

    then type

    bt

  6. David Jeang

    Here's what I got:

    #0 0x00007fe60b0f6774 in Ogre::Technique::getPass(unsigned short) () from /usr/lib/x86_64-linux-gnu/libOgreMain.so.1.7.4 #1 0x00007fe60ff9b47f in gazebo::rendering::GpuLaser::UpdateRenderTarget(Ogre::RenderTarget, Ogre::Material, Ogre::Camera*, bool) () from /usr/lib/libgazebo_rendering.so.1 #2 0x00007fe60ff9ba44 in gazebo::rendering::GpuLaser::RenderImpl() () from /usr/lib/libgazebo_rendering.so.1 #3 0x00007fe60ff761d9 in gazebo::rendering::Camera::Render() () from /usr/lib/libgazebo_rendering.so.1 #4 0x00007fe614050f79 in gazebo::sensors::GpuRaySensor::UpdateImpl(bool) () from /usr/lib/libgazebo_sensors.so.1 #5 0x00007fe614063997 in gazebo::sensors::Sensor::Update(bool) () from /usr/lib/libgazebo_sensors.so.1 #6 0x00007fe6140686f3 in gazebo::sensors::SensorManager::SensorContainer::Update(bool) () from /usr/lib/libgazebo_sensors.so.1 #7 0x00007fe6140688e2 in gazebo::sensors::SensorManager::ImageSensorContainer::Update(bool) () from /usr/lib/libgazebo_sensors.so.1 #8 0x00007fe61406add4 in gazebo::sensors::SensorManager::Update(bool) () from /usr/lib/libgazebo_sensors.so.1 #9 0x0000000000424d5a in gazebo::Server::Run() () #10 0x00000000004212c3 in main ()

    Just to inform, I have to manually kill the process after gazebo crashes before I can launch the gdb server, that doesn't affect anything does it?

  7. David Jeang

    Not sure, the link kinda confused me, what instructions do I follow to check what graphics card I have?

  8. David Jeang

    Had to install glxinfo first, but afterwards I got this: direct rendering: Yes OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile GL_NV_conditional_render, GL_ARB_ES2_compatibility

    Looks like it is an intel, what should I do? Cause I can't really follow the previous link nor am I sure that's exactly the same problem.

  9. Ian Chen

    I would try running the vrc worlds with the cpu laser version and see if things work better.

    e.g.

    roslaunch atlas_utils vrc_task_1_cpu_lidar.launch

  10. David Jeang

    huh, it works. But how do I get it to open the fire hose and later on qual_task_1? My project is centered around those launch files.

  11. Ian Chen

    you can go to where the world files are stored, e.g. /usr/share/drcsim-2.6/worlds if you install drcsim using the debs , and modify the world file to use cpu ray sensor.

    For example,

    edit /usr/share/drcsim-2.6/worlds/atlas_drc_vehicle_fire_hose.world,

    find model://atlas_sandia_hands and replace it with

    model://atlas_sandia_hands_cpu_lidar

    hope that works for you

  12. David Jeang

    I'm afraid I find that last suggestion ambiguous. Do you mean I use gedit to open the world file, and look for the line that has model and add _cpu_lidar to it?

    Is that all?

  13. Log in to comment