LORD-MicroStrain / microstrain_inertial

ROS driver for all of MicroStrain's current G and C series products. To learn more visit
https://www.microstrain.com/inertial
97 stars 72 forks source link

microstrain_inertial_driver failing to build on Rolling build farm #179

Closed nuclearsandwich closed 1 year ago

nuclearsandwich commented 2 years ago

Compilation fails during Rolling binary package build. Here is an excerpt from the most recent build log:

00:05:44.557 [ 70%] Building CXX object CMakeFiles/microstrain_inertial_driver.dir/src/microstrain_inertial_driver.cpp.o
00:06:02.847 /usr/lib/ccache/c++ -DDEFAULT_RMW_IMPLEMENTATION=rmw_fastrtps_cpp -DMICROSTRAIN_ROLLING=1 -DMICROSTRAIN_ROS_VERSION=2 -DRCUTILS_ENABLE_FAULT_INJECTION -I/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/include -I/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include -I/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/obj-x86_64-linux-gnu/c++-mscl_64/usr/share/c++-mscl/source -I/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/obj-x86_64-linux-gnu/c++-mscl_64/usr/share/c++-mscl/Boost/include -isystem /opt/ros/rolling/include/rclcpp -isystem /opt/ros/rolling/include/rclcpp_lifecycle -isystem /opt/ros/rolling/include/std_msgs -isystem /opt/ros/rolling/include/std_srvs -isystem /opt/ros/rolling/include/lifecycle_msgs -isystem /opt/ros/rolling/include/sensor_msgs -isystem /opt/ros/rolling/include/geometry_msgs -isystem /opt/ros/rolling/include/nav_msgs -isystem /opt/ros/rolling/include/nmea_msgs -isystem /opt/ros/rolling/include/mavros_msgs -isystem /opt/ros/rolling/include/tf2 -isystem /opt/ros/rolling/include/tf2_ros -isystem /opt/ros/rolling/include/tf2_geometry_msgs -isystem /opt/ros/rolling/include/microstrain_inertial_msgs -isystem /opt/ros/rolling/include/ament_index_cpp -isystem /opt/ros/rolling/include/libstatistics_collector -isystem /opt/ros/rolling/include/rcl -isystem /opt/ros/rolling/include/rcl_interfaces -isystem /opt/ros/rolling/include/builtin_interfaces -isystem /opt/ros/rolling/include/rosidl_runtime_c -isystem /opt/ros/rolling/include/rcutils -isystem /opt/ros/rolling/include/rosidl_typesupport_interface -isystem /opt/ros/rolling/include/fastcdr -isystem /opt/ros/rolling/include/rosidl_runtime_cpp -isystem /opt/ros/rolling/include/rosidl_typesupport_fastrtps_cpp -isystem /opt/ros/rolling/include/rmw -isystem /opt/ros/rolling/include/rosidl_typesupport_fastrtps_c -isystem /opt/ros/rolling/include/rosidl_typesupport_introspection_c -isystem /opt/ros/rolling/include/rosidl_typesupport_introspection_cpp -isystem /opt/ros/rolling/include/rcl_logging_interface -isystem /opt/ros/rolling/include/rcl_yaml_param_parser -isystem /opt/ros/rolling/include/libyaml_vendor -isystem /opt/ros/rolling/include/tracetools -isystem /opt/ros/rolling/include/rcpputils -isystem /opt/ros/rolling/include/statistics_msgs -isystem /opt/ros/rolling/include/rosgraph_msgs -isystem /opt/ros/rolling/include/rosidl_typesupport_cpp -isystem /opt/ros/rolling/include/rosidl_typesupport_c -isystem /opt/ros/rolling/include/rcl_lifecycle -isystem /opt/ros/rolling/include/geographic_msgs -isystem /opt/ros/rolling/include/unique_identifier_msgs -isystem /opt/ros/rolling/include/message_filters -isystem /opt/ros/rolling/include/rclcpp_action -isystem /opt/ros/rolling/include/action_msgs -isystem /opt/ros/rolling/include/rcl_action -isystem /opt/ros/rolling/include/tf2_msgs -isystem /usr/include/eigen3 -g -O2 -ffile-prefix-map=/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -fno-builtin-memcpy -MD -MT CMakeFiles/microstrain_inertial_driver.dir/src/microstrain_inertial_driver.cpp.o -MF CMakeFiles/microstrain_inertial_driver.dir/src/microstrain_inertial_driver.cpp.o.d -o CMakeFiles/microstrain_inertial_driver.dir/src/microstrain_inertial_driver.cpp.o -c /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp
00:06:02.849 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp: In member function ‘bool microstrain::Microstrain::activate_node()’:
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:174:50: error: no matching function for call to ‘microstrain::Microstrain::create_timer<microstrain::Microstrain>(microstrain::RosNodeType*&, double&, void (microstrain::Microstrain::*)(), microstrain::Microstrain*)’
00:06:15.773   174 |   main_parsing_timer_ = create_timer<Microstrain>(node_, timer_update_rate_hz_,
00:06:15.773       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773   175 |       &Microstrain::parse_and_publish_main_wrapper, this);
00:06:15.773       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773 In file included from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_defs.h:137,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_config.h:23,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_node_base.h:20,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/include/microstrain_inertial_driver/microstrain_inertial_driver.h:28,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:27:
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note: candidate: ‘template<class DurationRepT, class DurationT, class CallbackT> typename rclcpp::GenericTimer<CallbackT>::SharedPtr rclcpp_lifecycle::LifecycleNode::create_timer(std::chrono::duration<_Rep1, _Period1>, CallbackT, rclcpp::CallbackGroup::SharedPtr)’
00:06:15.773   266 |   create_timer(
00:06:15.773       |   ^~~~~~~~~~~~
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note:   template argument deduction/substitution failed:
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:174:50: note:   mismatched types ‘std::chrono::duration<microstrain::Microstrain, _Period1>’ and ‘microstrain::RosNodeType*’ {aka ‘rclcpp_lifecycle::LifecycleNode*’}
00:06:15.773   174 |   main_parsing_timer_ = create_timer<Microstrain>(node_, timer_update_rate_hz_,
00:06:15.773       |                         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773   175 |       &Microstrain::parse_and_publish_main_wrapper, this);
00:06:15.773       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:176:51: error: no matching function for call to ‘microstrain::Microstrain::create_timer<microstrain::Microstrain>(microstrain::RosNodeType*&, double, void (microstrain::Microstrain::*)(), microstrain::Microstrain*)’
00:06:15.773   176 |   device_status_timer_ = create_timer<Microstrain>(node_, 1.0,
00:06:15.773       |                          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
00:06:15.773   177 |       &Microstrain::device_status_wrapper, this);
00:06:15.773       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
00:06:15.773 In file included from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_defs.h:137,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_config.h:23,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_node_base.h:20,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/include/microstrain_inertial_driver/microstrain_inertial_driver.h:28,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:27:
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note: candidate: ‘template<class DurationRepT, class DurationT, class CallbackT> typename rclcpp::GenericTimer<CallbackT>::SharedPtr rclcpp_lifecycle::LifecycleNode::create_timer(std::chrono::duration<_Rep1, _Period1>, CallbackT, rclcpp::CallbackGroup::SharedPtr)’
00:06:15.773   266 |   create_timer(
00:06:15.773       |   ^~~~~~~~~~~~
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note:   template argument deduction/substitution failed:
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:176:51: note:   mismatched types ‘std::chrono::duration<microstrain::Microstrain, _Period1>’ and ‘microstrain::RosNodeType*’ {aka ‘rclcpp_lifecycle::LifecycleNode*’}
00:06:15.773   176 |   device_status_timer_ = create_timer<Microstrain>(node_, 1.0,
00:06:15.773       |                          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
00:06:15.773   177 |       &Microstrain::device_status_wrapper, this);
00:06:15.773       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:183:51: error: no matching function for call to ‘microstrain::Microstrain::create_timer<microstrain::Microstrain>(microstrain::RosNodeType*&, double, void (microstrain::Microstrain::*)(), microstrain::Microstrain*)’
00:06:15.773   183 |     aux_parsing_timer_ = create_timer<Microstrain>(node_, 2.0,
00:06:15.773       |                          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
00:06:15.773   184 |         &Microstrain::parse_and_publish_aux_wrapper, this);
00:06:15.773       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773 In file included from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_defs.h:137,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_config.h:23,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/microstrain_inertial_driver_common/include/microstrain_inertial_driver_common/microstrain_node_base.h:20,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/include/microstrain_inertial_driver/microstrain_inertial_driver.h:28,
00:06:15.773                  from /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:27:
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note: candidate: ‘template<class DurationRepT, class DurationT, class CallbackT> typename rclcpp::GenericTimer<CallbackT>::SharedPtr rclcpp_lifecycle::LifecycleNode::create_timer(std::chrono::duration<_Rep1, _Period1>, CallbackT, rclcpp::CallbackGroup::SharedPtr)’
00:06:15.773   266 |   create_timer(
00:06:15.773       |   ^~~~~~~~~~~~
00:06:15.773 /opt/ros/rolling/include/rclcpp_lifecycle/rclcpp_lifecycle/lifecycle_node.hpp:266:3: note:   template argument deduction/substitution failed:
00:06:15.773 /tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/src/microstrain_inertial_driver.cpp:183:51: note:   mismatched types ‘std::chrono::duration<microstrain::Microstrain, _Period1>’ and ‘microstrain::RosNodeType*’ {aka ‘rclcpp_lifecycle::LifecycleNode*’}
00:06:15.773   183 |     aux_parsing_timer_ = create_timer<Microstrain>(node_, 2.0,
00:06:15.773       |                          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
00:06:15.773   184 |         &Microstrain::parse_and_publish_aux_wrapper, this);
00:06:15.773       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00:06:15.773 make[4]: *** [CMakeFiles/microstrain_inertial_driver.dir/build.make:163: CMakeFiles/microstrain_inertial_driver.dir/src/microstrain_inertial_driver.cpp.o] Error 1
00:06:15.775 make[4]: Leaving directory '/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/obj-x86_64-linux-gnu'
00:06:15.776 make[3]: *** [CMakeFiles/Makefile2:142: CMakeFiles/microstrain_inertial_driver.dir/all] Error 2
00:06:15.777 make[3]: Leaving directory '/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/obj-x86_64-linux-gnu'
00:06:15.777 make[2]: *** [Makefile:149: all] Error 2
00:06:15.777 make[2]: Leaving directory '/tmp/binarydeb/ros-rolling-microstrain-inertial-driver-2.6.0/obj-x86_64-linux-gnu'
00:06:15.778 dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j1 VERBOSE=1 returned exit code 2

It seems possibly related to changes in the recent release of rclcpp_lifecycle 17.0.0

Environment:

robbiefish commented 1 year ago

This should be resolved now