Trying to compile the package with ROS Kinetic I had the next error:
In file included from /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:1:0: /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/include/epos_hardware/epos_hardware.h:32:10: error: ‘scoped_ptr’ in namespace ‘boost’ does not name a template type boost::scoped_ptr<transmission_interface::TransmissionInterfaceLoader> transmission_loader; ^ /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp: In constructor ‘epos_hardware::EposHardware::EposHardware(ros::NodeHandle&, ros::NodeHandle&, const std::vector<std::__cxx11::basic_string<char> >&)’: /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:13:5: error: ‘transmission_loader’ was not declared in this scope transmission_loader.reset(new transmission_interface::TransmissionInterfaceLoader(this, &robot_transmissio ^ /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:66:12: error: ‘transmission_loader’ was not declared in this scope if (!transmission_loader->load(info)) { ^ epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/build.make:62: recipe for target 'epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/src/util/epos_hardware.cpp.o' failed make[2]: *** [epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/src/util/epos_hardware.cpp.o] Error 1 CMakeFiles/Makefile2:534: recipe for target 'epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/all' failed make[1]: *** [epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j4 -l4" failed
Trying to compile the package with ROS Kinetic I had the next error:
In file included from /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:1:0: /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/include/epos_hardware/epos_hardware.h:32:10: error: ‘scoped_ptr’ in namespace ‘boost’ does not name a template type boost::scoped_ptr<transmission_interface::TransmissionInterfaceLoader> transmission_loader; ^ /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp: In constructor ‘epos_hardware::EposHardware::EposHardware(ros::NodeHandle&, ros::NodeHandle&, const std::vector<std::__cxx11::basic_string<char> >&)’: /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:13:5: error: ‘transmission_loader’ was not declared in this scope transmission_loader.reset(new transmission_interface::TransmissionInterfaceLoader(this, &robot_transmissio ^ /home/jorge/catkin_ws/src/epos_hardware/epos_hardware/src/util/epos_hardware.cpp:66:12: error: ‘transmission_loader’ was not declared in this scope if (!transmission_loader->load(info)) { ^ epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/build.make:62: recipe for target 'epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/src/util/epos_hardware.cpp.o' failed make[2]: *** [epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/src/util/epos_hardware.cpp.o] Error 1 CMakeFiles/Makefile2:534: recipe for target 'epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/all' failed make[1]: *** [epos_hardware/epos_hardware/CMakeFiles/epos_hardware.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j4 -l4" failed
I could solve it with this issue Build problem w/ 'scoped_ptr'/boost.
So, I open epos_hardware.h (~/catkin_ws/src/epos_hardware/epos_hardware/include/epos_hardware.h) and add these two lines:
#include <boost/scoped_array.hpp>
#include <boost/scoped_ptr.hpp>