Error Element.hh 336

Issue #71 resolved
Tingshen created an issue

I just did the regular update to the new version of ariac, and individual update the gear.py file because add the fault_part commend lines. Then I run the qual3a.yaml file like what i did before, but this time show me the Error [Element.hh:336] Unable to find value for key[contact_sensor_name] gzserver: /usr/include/boost/smart_ptr/shared_ptr.hpp:653: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = gazebo::physics::Link; typename boost::detail::sp_member_access<T>::type = gazebo::physics::Link*]: Assertion `px != 0' failed.

Comments (20)

  1. Deanna Hood

    @Tingshen, when does this issue happen? If it is at the start of the competition, sometimes the models are still being loaded into the simulation, and if you wait a few seconds before starting the competition you should avoid this error.

  2. Tingshen reporter

    What do you mean by waiting a few seconds before starting the competition? Is running the qual3a.yaml file the start of the competition? The issue occurs when attempting to run this file using a command similar to the one in the Hello World tutorial, but with the qual3a.yaml and our own file path: rosrun osrf_gear gear.py -f catkin_find --share osrf_gear/config/comp_conf1.yaml ~/helloworld_ws/src/ariac_example/config/team_conf.yaml

  3. Deanna Hood

    thanks for the extra details, @Tingshen. By "start competition" I was referring to calling the start_competition service, but it sounds like your issue is happening when you launch the ARIAC software.

    Does it only happen with qual3a.yaml?

    Could you please tell us the output of the following commands so we can know what version of Ubuntu, ROS, Gazebo and ARIAC you're running (assuming you installed from apt)?

    $ lsb_release -a
    $ echo $ROS_DISTRO
    $ gazebo --version
    $ dpkg -s ariac | grep Version
    
  4. Tingshen reporter

    It is not only happen with qual3a.yaml, even rosrun osrf_gear gear.py can't open.

    Following is the output: ccsu@ccsu-ariac:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty ccsu@ccsu-ariac:~$ echo $ROS_DISTRO indigo ccsu@ccsu-ariac:~$ gazebo --version Gazebo multi-robot simulator, version 7.6.0 Copyright (C) 2012 Open Source Robotics Foundation. Released under the Apache 2 License. http://gazebosim.org

    Gazebo multi-robot simulator, version 7.6.0 Copyright (C) 2012 Open Source Robotics Foundation. Released under the Apache 2 License. http://gazebosim.org ccsu@ccsu-ariac:~$ dpkg -s ariac | grep Version Version: 1.1.1+git20170417r1549af242408f7caea9577172adbf07618b3641e-1~trusty

  5. Deanna Hood

    Thank you. I haven't been able to reproduce your error yet, so I will ask you some more questions. It is an sdformat error underneath: could you please let us know what dpkg -s libsdformat4 | grep Version gives? Would you please also make sure that your dependencies are up-to-date with sudo apt-get update && sudo apt-get upgrade?

  6. Tingshen reporter

    ccsu@ccsu-ariac:~$ dpkg -s libsdformat4 | grep Version Version: 4.3.1-1~trusty

    I used sudo apt-get update && sudo apt-get upgrade ariac

  7. Deanna Hood

    Thank you for the output, all of these versions look correct. I still suspect that something on your machine did not upgrade properly, as I've checked the ARIAC software on numerous machines running the same versions as you and have still not been able to reproduce this error.

    You can try uninstalling and re-installing the ARIAC software with sudo apt-get purge ariac and then sudo apt-get install ariac to see if that fixes the upgrade. Installing on a new machine should resolve the issue, but you may not have another machine available.

    I have an idea of what the problem might be. If uninstalling and re-installing doesn't fix it, can you please provide some more information we can figure out if the issue is what I suspect.

    The ARIAC simulation has various "plugins" for Gazebo. One of the plugins is looking for information (contact_sensor_name) in a configuration file, which it cannot find. Because of this I will ask you to provide information about the plugins, and the configuration files. Can you please do the following:

    1. Run rosrun osrf_gear gear.py --verbose
    2. Post the contents of /tmp/ariac/gear.world and ~/.ariac/log/performance.log (click the 'Attach' button in the top-right of this bitbucket page)
    3. Post the output of locate libConveyorBeltPlugin.so
    4. Post the output of ldd /opt/ros/indigo/lib/libConveyorBeltPlugin.so | grep SideContactPlugin (it should be empty)
  8. Tingshen reporter

    ccsu@ccsu-ariac:~$ locate libConveyorBeltPlugin.so /home/ccsu/ariac_ws/devel/lib/libConveyorBeltPlugin.so /home/ccsu/ariac_ws/install/lib/libConveyorBeltPlugin.so /opt/ros/indigo/lib/libConveyorBeltPlugin.so ccsu@ccsu-ariac:~$ ldd /opt/ros/indigo/lib/libConveyorBeltPlugin.so | grep SideContactPlugin ccsu@ccsu-ariac:~$

  9. Deanna Hood

    Thank you @Tingshen I can see that you have installed ARIAC from source into ~/ariac_ws. (You'll see that in the first output you posted, there are multiple versions of the conveyor belt plugin: from when you installed from source, and from when you installed from apt). It's possible that what's happening is that your simulation is accidentally using the old version of the plugin from ~/ariac_ws instead of the new version in /opt/ros/indigo/lib.

    You can try the following: First of all, make a backup copy of the entire ~/ariac_ws directory in case you need to undo any changes.

    Delete the plugins located at /home/ccsu/ariac_ws/devel/lib/libConveyorBeltPlugin.so and /home/ccsu/ariac_ws/install/lib/libConveyorBeltPlugin.so. If the conveyor belt plugin is the only one that is causing your system to crash, this might be enough to fix it.

    If it's still broken, you should change the way your files are setup. Is your team's code also in ~/ariac_ws, and that's why you're sourcing ~/ariac_ws/setup.bash?

    If your code is not in ~/ariac_ws, then remove source ~/ariac_ws/install/setup.bash from your ~/.bashrc, and try to run the competition again in a new terminal.

    If your team's code is in ~/ariac_ws, try to build the workspace without building ARIAC from source. Remove the ~/ariac_ws/install and ~/ariac_ws/devel directories. Next, remove the osrf_gear directory in ~/ariac_ws/src so that the ARIAC code is not going to be built. Then re-build the workspace again. This should remove the old versions of the plugin.

  10. Tingshen reporter

    I deleted that two plugins, and It works well rosrun osrf_gear gear.py and also can works with the sample.yaml, however, when I try to open the qual3a.yaml, it can't launch. terminate called after throwing an instance of 'gazebo::common::Exception' How can I fix this?

  11. Deanna Hood

    Ok, we've identified the issue then. There must be other plugins that are the wrong version. Could you try completely removing the source installation of ARIAC as I mentioned in the previous post? Alternatively, you can keep the source installation but upgrade it with git pull in the osrf_gear directory and then re-build the workspace.

  12. Deanna Hood

    @Tingshen were you able to run the software without the exception after removing/updating the ARIAC source installation?

  13. Tingshen reporter

    I solved the problem by deleting the install file and the devel file and re-building. Now I can open the ARIAC. Thanks for helping us.

  14. Log in to comment