Problem of running UWSim on ROS Kinetic

asked 2018-12-11 07:58:44 -0600

Nick_68 gravatar image

Hello! I am a new ROS user here so apologies in advance if I am asking some really obvious questions. Currently running ROS Kinetic version 1.12.14 (according to 'rosversion roscpp') on Ubuntu 16.04 LTS.

I am currently working on a research for tracking algorithms and would require an underwater simulator as proof-of-concept for the findings. I am currently trying the UWSim simulator based on the UWSim pages: http://wiki.ros.org/uwsim , as well as: http://www.irs.uji.es/uwsim/wiki/inde... . I followed the Full Source-based installation and was able to run the simulator without any problems for around 1 week.

However, this week when I tried to run the simulator again, at first it was giving me a 'Segmentation fault' error similar to the problems shown in the following thread: https://answers.ros.org/question/1884... , even though the ~/.uwsim/data/ directory already existed.

I then tried to redownload the data necessary, only to then be met with the an symbol lookup/undefined symbol error, similar in nature to the problems shown here:

Specifically, for my case the following was shown in my terminal when I tried running 'rosrun uwsim uwsim':

nick-sadjoli@NS-ntu-u16:~$ rosrun uwsim uwsim

Starting UWSim...
Loading SimulatedDevices plugin: 'DredgeTool_Factory'
Loading SimulatedDevices plugin: 'ForceSensor_Factory'
Loading SimulatedDevices plugin: 'SimDev_Echo_Factory'
. Setting localized world: 2.6e-05s
Loading URDF robot...
· robot/GIRONA500/g500_March11.osg: 1.08919s
· robot/ARM5E/ARM5E_part0.osg: 0.032455s
· : 1.7e-05s
· robot/ARM5E/ARM5E_part1.osg: 0.030447s
· robot/ARM5E/ARM5E_part2.osg: 0.04838s
· robot/ARM5E/ARM5E_part3.osg: 0.170885s
· robot/ARM5E/ARM5E_part4_base.osg: 0.156168s
· robot/ARM5E/ARM5E_part4_jaw1.osg: 0.024855s
· : 1e-06s
· robot/ARM5E/ARM5E_part4_jaw2.osg: 0.025362s
· Linking links...Robot successfully loaded. Total time: 0.010511s
1.5884s
/home/nick-sadjoli/catkin_ws_uwsim/install_isolated/lib/uwsim/uwsim_binary: symbol lookup error: /home/nick-
sadjoli/catkin_ws_uwsim/install_isolated/lib/libuwsim.so: undefined symbol:
_ZN10kdl_parser12treeFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3KDL4TreeE

I have tried the solution shown from the previous post (in my case that means making sure ros-kinetic-robot-state-publisher is updated), however rosdep already confirmed that I have installed the latest robot-state-publisher and the problem has not been resolved. I have also tried re-installing the entire ROS package with no success.

Has anyone else that has used UWSim on ROS Kinetic for underwater robotic projects ever encounter this issue as well? If so, I would appreciate any kind of help that you can give me for this simulator.

Also, any alternatives to UWSim or Gazebo for underwater environment that is easier to develop would be greatly appreciated.

Thank you and looking forward to your help and replies!

edit retag flag offensive close merge delete

Comments

If you've built uuwsim from source, I would recommend to try and clean out your workspace and building again. There is currently only a best-effort ABI compatibility check for many pkgs, so ABI breakages can happen. Rebuilding your workspace should fix those.

But it could also be a different issue.

gvdhoorn gravatar imagegvdhoorn ( 2018-12-11 14:20:32 -0600 )edit

As to alternatives: have you looked at uuvsimulator?

gvdhoorn gravatar imagegvdhoorn ( 2018-12-11 14:21:08 -0600 )edit

Hello @gvdhoorn! Thank you for the replies!

I have actually tried to rebuild the uwsim in a new catkin workspace entirely (i.e. making new catkin directory and reinstalling all .rosinstall packages). However it still was giving me the errors. What other types of issue can it be if I may know?

Nick_68 gravatar imageNick_68 ( 2018-12-11 21:14:56 -0600 )edit

I've also tried out the uuvsimulator however it seems to not able to model an underwater environment very accurately. From what I tried, the ocean environment models seem to just hollow boxes with lighting manipulation and a buoyancy script, which I think isn't ideal for simulating FLS behaviour

Nick_68 gravatar imageNick_68 ( 2018-12-11 21:21:19 -0600 )edit

To be clear, what I need is the capability of simulating controllable turbid underwater environments, as well as a working imaging sonar. I have found a paper that simulated a FLS within Gazebo but it didn't test it within uuvsimulator. Is there any features from uuvsimulator that can help?

Nick_68 gravatar imageNick_68 ( 2018-12-11 21:23:58 -0600 )edit

I am also interested in this topic. In fact, I would like to render the ocean using osgocean, while the hydrodynamics takes place on uuv_simulator.

Rômulo Cerqueira gravatar imageRômulo Cerqueira ( 2018-12-13 13:01:18 -0600 )edit

I'm not actually a user of any of this, just thought I'd suggest something that I've seen being used by others.

As to the undefined symbol problem: it could be that some bitrot has occurred and UWSim needs to be updated to use newer versions of its dependencies.

After demangling the symbol, ..

gvdhoorn gravatar imagegvdhoorn ( 2018-12-14 08:51:41 -0600 )edit

.. we see this:

kdl_parser::treeFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, KDL::Tree&)

KDL has recently seen some changes, so that may be a cause.

It could also be that UWSim is not linking correctly against KDL.

But again: I don't know.

gvdhoorn gravatar imagegvdhoorn ( 2018-12-14 08:52:16 -0600 )edit