Using diff_drive, problem with our hw_interface
Scenario: We (me and @pitosalas) have built a robot (basic diff_drive configuration) and are in the process of implementing our own hw_interface by looking at a variety of sources, particularly My Mobile Robot (https://github.com/eborghi10/my_ROS_m...) [MMR] and Boilerplate (https://github.com/PickNikRobotics/ro...). Here is our source the hw_interface (in case that's useful): https://gist.github.com/NateDimick/bd...
The reason we abandoned the boilerplate is it wasn't clear how to complete the needed methods of boilerplate whereas MMR seemed easier to understand.
Now we are stuck because our code is failing on a link error that we don't understand. Maybe someone will see what we're missing?
Here's the log of our session: https://gist.github.com/NateDimick/a0...
I know its a lot, but we are stuck so maybe you can give a pointer. These are the key lines with the error:
CMakeFiles/hw_interface_node.dir/src/hw_interface.cpp.o: In function `main':
hw_interface.cpp:(.text+0xc7): undefined reference to `controller_manager::ControllerManager::ControllerManager(hardware_interface::RobotHW*, ros::NodeHandle const&)'
hw_interface.cpp:(.text+0x22a): undefined reference to `controller_manager::ControllerManager::update(ros::Time const&, ros::Duration const&, bool)'
hw_interface.cpp:(.text+0x2e1): undefined reference to `controller_manager::ControllerManager::~ControllerManager()'
collect2: error: ld returned 1 exit status
Thanks for any help!