QoS not member of rclcpp and qmock comparison warning
Environment
- Turtlebot3 Waffle
- Intel NUC
- ubuntu 18.04
- ROS2 Crystal
Problem
I ran into trouble with the ROS2 Turtlebot3 install Robotis eManula Section 15. In particular see Section 15.1.1.3 "Install Turtlebot3 ROS2 Packages".
I get a QoS not member of rclcpp error and qmock comparison warning during the tb3 build. See detailed build log at question end.
I suspect that my crystal repositories don't match the turtlebot3.repos configuration file I downloaded.
Reference
Compilation Error on latest version of RCLCPP
Maintaining a Source Checkout of ROS 2
Question
Am I on the right track? I am hoping I can fix this by downloading the crystal version of tutlebot3.repos but I don't understand how to do that. I was hoping I could replace 'ros2' with 'crystal' in the following wget but that doesn't work.
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos
I suspect another possibility is to update or upgrade crystal or Ubuntu but I need to know whether that is appropriate. I have destroyed build environments that I could not recover from by doing inappropriate updates/upgrades.
Build Detail
$ colcon build --symlink-install
Starting >>> nav2_common
Starting >>> nav_2d_msgs
Starting >>> angles
Starting >>> behaviortree_cpp
Finished <<< nav2_common [1.54s]
Starting >>> nav2_msgs
Finished <<< angles [3.46s]
Starting >>> nav2_voxel_grid
[Processing: behaviortree_cpp, nav2_msgs, nav2_voxel_grid, nav_2d_msgs]
Finished <<< nav2_voxel_grid [43.8s]
Starting >>> cv_bridge
[Processing: behaviortree_cpp, cv_bridge, nav2_msgs, nav_2d_msgs]
Finished <<< nav_2d_msgs [1min 31s]
Starting >>> dwb_msgs
Finished <<< cv_bridge [1min 1s]
Starting >>> camera_calibration_parsers
Finished <<< behaviortree_cpp [1min 54s]
Starting >>> cartographer
Finished <<< camera_calibration_parsers [29.7s]
Starting >>> cartographer_ros_msgs
[Processing: cartographer, cartographer_ros_msgs, dwb_msgs, nav2_msgs]
[Processing: cartographer, cartographer_ros_msgs, dwb_msgs, nav2_msgs]
[Processing: cartographer, cartographer_ros_msgs, dwb_msgs, nav2_msgs]
[Processing: cartographer, cartographer_ros_msgs, dwb_msgs, nav2_msgs]
[Processing: cartographer, cartographer_ros_msgs, dwb_msgs, nav2_msgs]
Finished <<< dwb_msgs [3min 42s]
Starting >>> gazebo_dev
Finished <<< gazebo_dev [3.56s]
Starting >>> gazebo_msgs
[Processing: cartographer, cartographer_ros_msgs, gazebo_msgs, nav2_msgs]
[Processing: cartographer, cartographer_ros_msgs, gazebo_msgs, nav2_msgs]
Finished <<< cartographer_ros_msgs [4min 14s]
Starting >>> image_transport
--- stderr: image_transport
/home/eepp/turtlebot3_ws/src/gazebo/camera_info_manager/image_transport/src/camera_publisher.cpp: In constructor ‘image_transport::CameraPublisher::CameraPublisher(rclcpp::Node*, const string&, rmw_qos_profile_t)’:
/home/eepp/turtlebot3_ws/src/gazebo/camera_info_manager/image_transport/src/camera_publisher.cpp:93:22: error: ‘QoS’ is not a member of ‘rclcpp’
auto qos = rclcpp::QoS(rclcpp::QoSInitialization::from_rmw(custom_qos));
^~~
/home/eepp/turtlebot3_ws/src/gazebo/camera_info_manager/image_transport/src/camera_publisher.cpp:93:34: error: ‘rclcpp::QoSInitialization’ has not been declared
auto qos = rclcpp::QoS(rclcpp::QoSInitialization::from_rmw(custom_qos));
^09:58, 15 July 2019 (PDT)09:58, 15 July 2019 (PDT)09:58, 15 July 2019 (PDT)~
make[2]: *** [CMakeFiles/image_transport.dir/src/camera_publisher.cpp.o] Error 1
make[1]: *** [CMakeFiles/image_transport.dir/all] Error 2
make: *** [all] Error 2
---
Failed <<< image_transport [ Exited with code 2 ]
Aborted <<< nav2_msgs
Aborted <<< gazebo_msgs
--- stderr: cartographer
In file included from /usr/src/googletest/googlemock/include/gmock/gmock-spec-builders.h:75:0,
from /usr/src/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
from /usr/src/googletest/googlemock/include/gmock/gmock.h:61,
from /home/eepp/turtlebot3_ws ...