Error Element.hh 336
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)
-
-
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 -
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
-
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
-
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 withsudo apt-get update && sudo apt-get upgrade
? -
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
-
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 thensudo 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:- Run
rosrun osrf_gear gear.py --verbose
- 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) - Post the output of
locate libConveyorBeltPlugin.so
- Post the output of
ldd /opt/ros/indigo/lib/libConveyorBeltPlugin.so | grep SideContactPlugin
(it should be empty)
- Run
-
reporter - attached gear.world
-
reporter - attached performance.log
-
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:~$
-
- changed milestone to Qual 3 Submission
-
reporter Can you tell me how to change the milestone? If I changed, will I solve the issue?
-
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 fromapt
). 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 removesource ~/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 theosrf_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. -
(the milestone post was an automatic post from the bitbucket issue tracker, you can ignore it)
-
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? -
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 theosrf_gear
directory and then re-build the workspace. -
@Tingshen were you able to run the software without the exception after removing/updating the ARIAC source installation?
-
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.
-
- changed status to resolved
Glad to hear it worked, thanks for the update
-
- changed milestone to Qual 1 Submission
- Log in to comment
@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.