Robotics StackExchange | Archived questions

libLedPlugin.so throws undefined symbol error [ndefined symbol: _ZN6gazebo16FlashLightPlugin4LoadEN5boost10shared_ptrINS_7physics5ModelEEESt10shared_ptrIN3sdf7ElementEE]

Hello Community, Im trying to use the libLedPlugin in an simulation for an underwater docking scenario using the uuv simulator. After running into this Plugin in the gazebo tutorials i searched it on my local system but could find it on my local system. There was no libLedPlugin.so or .hh/.cc file on my system. Same with FlashLightPlugin. I indeed have several working plugins installed, BlinkVisualPlugin for example.

I couldnt find the olugins anywhere so I decided to compile them myself with the code from (https://github.com/osrf/gazebo/tree/gazebo9) and by following this tutorial (http://gazebosim.org/tutorials/?tut=plugins_hello_world).

Which worked great for the FashLightPlugin for example, but even though libLedPlugin.so is also compiled, it throws following error when starting a simulation using the plugin: [Err] [Plugin.hh:180] Failed to load plugin /home/lukas/catkin_ws/src/gazebo_models/deepleng/plugins/libLedPlugin.so: /home/lukas/catkin_ws/src/gazebo_models/deepleng/plugins/libLedPlugin.so: undefined symbol: _ZN6gazebo16FlashLightPlugin4LoadEN5boost10shared_ptrINS_7physics5ModelEEESt10shared_ptrIN3sdf7ElementEE

Im using ubuntu 18.04, ros melodic and gazebo 9. gazebo 9 was installed with ros automatically i think. When compiling the code i always used the gazebo9 branch from the repository.

I would be very thankful if someone could tell me how to get the plugin working in some way! Thanks in advance!

<?xml version="1.0" ?>

0.01 1 100 quick 50 1.2 0.01 0.01 0.01 1.0 12 1

<!--
  Origin close to the Trondheim Biological Station, in Trondheim, Norway
-->
<spherical_coordinates>
  <latitude_deg>63.435952</latitude_deg>
  <longitude_deg>10.357983</longitude_deg>
</spherical_coordinates>

<!-- Global light source -->
<light type="directional" name="sun1">
  <pose>50 0 150 0 0 0</pose>
  <diffuse>1 1 1 1</diffuse>
  <specular>.1 .1 .1 1</specular>
  <direction>0.3 0.3 -1</direction>
  <cast_shadows>false</cast_shadows>
</light>

<!-- Global light source -->
<light type="directional" name="sun_diffuse">
  <pose>-50 0 -150 0 0 0</pose>
  <diffuse>0.6 0.6 0.6 1</diffuse>
  <specular>0 0 0 1</specular>
  <direction>-0.3 -0.3 -1</direction>
  <cast_shadows>false</cast_shadows>
</light>

<model name="markergreen">
  <pose>1 1 -9 0 0 0</pose>
  <static>true</static>
  <link name="marker">
<visual name="led">
  <transparency>1</transparency>
  <geometry>
    <sphere>
      <radius>0.015</radius>
    </sphere>
    <!--<box>
      <size>1 1 1</size>
    </box>-->
  </geometry>   
  <!--<material>
    <emissive>0 1 0 1</emissive>
    <specular>0 1 0 1</specular>
    <diffuse>0 1 0 1</diffuse>
  </material>-->
  <plugin name="blink" filename="libBlinkVisualPlugin.so">

  <!-- First RGBA color, each number from 0 to 1. Defaults to red. -->
    <color_a>0 1 0 1</color_a>

  <!-- Second RGBA color. Defaults to black. -->
    <color_b>0 1 0 1</color_b>

  <!-- Period in seconds. Defaults to 1 s. -->
    <period>1</period>

  <!-- True to use wall time, false to use sim time.
       Defaults to false. -->
    <use_wall_time>false</use_wall_time>

  </plugin>
</visual>
<light name="under" type="spot">
  <pose>0 0 -1 0 3.14 0</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>

<light name="over" type="spot">
  <pose>0 0 1 0 0 0</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>

<light name="left" type="spot">
  <pose>0 -1 0 0 1.57 4.71</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>

<light name="right" type="spot">
  <pose>0 1 0 0 1.57 1.57</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>

<light name="front" type="spot">
  <pose>1 0 0 0 1.57 0</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>

<light name="back" type="spot">
  <pose>-1 0 0 0 1.57 3.14</pose>
  <specular>1 1 1 1</specular>
  <diffuse>1 1 1 1</diffuse>
  <attenuation>
    <range>1.5</range>
    <constant>1</constant>
  </attenuation>
  <spot>
    <inner_angle>
      0.015
    </inner_angle>
  </spot>
    </light>
  </link>
  <plugin name='light_control' filename='libLedPlugin.so'>
<enable>true</enable>
<light>
  <id>marker/under</id>
      <duration>0.5</duration>
      <interval>0.5</interval>
    </light>
  </plugin>
</model>

<!-- Bounding box with sea surface -->
<include>
  <uri>model://sea_bottom</uri>
  <pose>0 0 -80 0 0 0</pose>
</include>

<include>
  <uri>model://sea_surface</uri>
  <pose>0 0 0 0 0 0</pose>
</include>

<plugin name="underwater_current_plugin" filename="libuuv_underwater_current_ros_plugin.so">
  <namespace>hydrodynamics</namespace>
  <constant_current>
    <topic>current_velocity</topic>
    <velocity>
      <mean>0</mean>
      <min>0</min>
      <max>5</max>
      <mu>0.0</mu>
      <noiseAmp>0.0</noiseAmp>
    </velocity>

    <horizontal_angle>
      <mean>0</mean>
      <min>-3.141592653589793238</min>
      <max>3.141592653589793238</max>
      <mu>0.0</mu>
      <noiseAmp>0.0</noiseAmp>
    </horizontal_angle>

    <vertical_angle>
      <mean>0</mean>
      <min>-3.141592653589793238</min>
      <max>3.141592653589793238</max>
      <mu>0.0</mu>
      <noiseAmp>0.0</noiseAmp>
    </vertical_angle>
  </constant_current>
</plugin>

<plugin name="sc_interface" filename="libuuv_sc_ros_interface_plugin.so"/>

<gui fullscreen='0'>
  <camera name='user_camera'>
    <pose frame=''>34.6042 32.2383 -20.6633 0 0.528384 1.41245</pose>
    <view_controller>orbit</view_controller>
    <projection_type>perspective</projection_type>
  </camera>
</gui>

Asked by Gwaihir on 2020-07-06 05:12:36 UTC

Comments

Answers