Based on the sources from attached link, you should looking for hints in error message.
Failed to load library
/home/shantengfei/catkin_ws/devel/lib//libjoint_value_monitor.so.
Make sure that you are calling the
PLUGINLIB_EXPORT_CLASS macro in the
library code, and that names are
consistent between this macro and your
XML. Error string: Could not load
library (Poco exception =
/home/shantengfei/catkin_ws/devel/lib//libjoint_value_monitor.so:
undefined symbol:
_ZN19joint_value_monitor11joint_value4loadERKN4rviz6ConfigE)
First of all, we know that we have poroblems with libjoint_value_monitor.so library which should be located in the /home/shantengfei/catkin_ws/devel/lib//libjoint_value_monitor.so path --- but, it looks good
The library code contains PLUGINLIB_EXPORT_CLASS
macro and names are consistent between this macro and XML --- Ok
Let's check the last sentence with undefined symbol: _ZN19joint_value_monitor11joint_value4loadERKN4rviz6ConfigE
, so we should check if we have implemented this function. If we can't deduce function name from _ZN19joint_value_monitor11joint_value4loadERKN4rviz6ConfigE
, we can call:
<$:~$ c++filt _ZN19joint_value_monitor11joint_value4loadERKN4rviz6ConfigE
where output will be
joint_value_monitor::joint_value::load(rviz::Config const&)
So the problem is lack of joint_value_monitor::joint_value::load(rviz::Config const&)
definition.