You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I know you seem to have fixed your issue with newer packages. But I think this is not the real solution.
I encountered the same issue on an up-to-date humble installation and found the following. I am just mentioning this here, since some of your branches mention in the README that the problem was fixed by upgrading packages, but there are actually still other steps involved. I hope this helps others who encounter the same issue.
Missing dependency on hardware_interface_testing
First, I got:
C++ exception with description "According to the loaded plugin descriptions the class test_actuator with base class type hardware_interface::ActuatorInterface does not exist. Declared types are test_hardware_components/TestSingleJointActuator" thrown in the test body.
So a sudo apt install ros-humble-hardware-interface-testing fixed that issue, but it should still be added to the package.xml as <test_depend>hardware_interface_testing</test_depend>.
Macro PLUGINLIB_EXPORT_CLASS called inside dz_minimal_controller namespace
The next issue was a symbol lookup issue.
[...]/build/dz_minimal_controller/test_load_dz_minimal_controller: symbol lookup error: [...]/install/dz_minimal_controller/lib/libdz_minimal_controller.so: undefined symbol: _ZN21dz_minimal_controller12class_loader4impl30getCurrentlyLoadingLibraryNameB5cxx11Ev
_ZN21dz_minimal_controller12class_loader4impl30getCurrentlyLoadingLibraryNameB5cxx11Ev demangles to:
It's a bit weird that the class_loader should be in the dz_minimal_controller namespace and indeed on the main branch the PLUGINLIB_EXPORT_CLASS macro is called inside the dz_minimal_controller namespace:
I know you seem to have fixed your issue with newer packages. But I think this is not the real solution.
I encountered the same issue on an up-to-date humble installation and found the following. I am just mentioning this here, since some of your branches mention in the README that the problem was fixed by upgrading packages, but there are actually still other steps involved. I hope this helps others who encounter the same issue.
Missing dependency on
hardware_interface_testing
First, I got:
The
test_actuator
is defined inhardware_interface_testing
:https://github.com/ros-controls/ros2_control/blob/1d67297e5472ca868bd16f6441ab52bedde66e80/hardware_interface_testing/test/test_components/test_components.xml#L3-L7
So a
sudo apt install ros-humble-hardware-interface-testing
fixed that issue, but it should still be added to thepackage.xml
as<test_depend>hardware_interface_testing</test_depend>
.Macro
PLUGINLIB_EXPORT_CLASS
called insidedz_minimal_controller
namespaceThe next issue was a symbol lookup issue.
_ZN21dz_minimal_controller12class_loader4impl30getCurrentlyLoadingLibraryNameB5cxx11Ev
demangles to:It's a bit weird that the
class_loader
should be in thedz_minimal_controller
namespace and indeed on themain
branch thePLUGINLIB_EXPORT_CLASS
macro is called inside thedz_minimal_controller
namespace:dz_minimal_controller/src/dz_minimal_controller.cpp
Lines 119 to 128 in 572716e
and moving it out of the namespace, like on the
dz/cargo-cult-admittance-cmake
branch:dz_minimal_controller/src/dz_minimal_controller.cpp
Lines 122 to 127 in cd5dfc2
eventually fixes the issue.
I can then call
colcon test --event-handlers=console_direct+
and finally get
The text was updated successfully, but these errors were encountered: