rclcpp icon indicating copy to clipboard operation
rclcpp copied to clipboard

Error During Colcon Build

Open SimeonOA opened this issue 3 years ago • 7 comments

Bug report

Required Info:

  • Operating System: Ubuntu 20.04
  • Installation type: Source
  • Version or commit hash: Rolling
  • DDS implementation:
  • Client library (if applicable): rclcpp

Steps to reproduce issue

Build ROS 2 from source in a Docker container on Jetson Nano

Expected behavior

I am building ROS 2 from source in a Docker container. Colcon build currently fails on rclcpp.

Actual behavior

--- stderr: rclcpp
In file included from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/callback_group.hpp:23:0,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/any_executable.hpp:20,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/memory_strategy.hpp:25,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/memory_strategies.hpp:18,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/executor_options.hpp:20,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/executor.hpp:37,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/executors/multi_threaded_executor.hpp:25,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/executors.hpp:21,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/parameter_client.hpp:36,
                 from /opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:15:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::DescribeParameters; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::DescribeParameters]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::DescribeParameters_Response_<std::allocator<void> > > > > > > >’
     return value;
            ^~~~~
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::ListParameters; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::ListParameters]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::ListParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::ListParameters_Response_<std::allocator<void> > > > > > > >’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::SetParametersAtomically; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::SetParametersAtomically]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParametersAtomically_Response_<std::allocator<void> > > > > > > >’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::SetParameters; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::SetParameters]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::SetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::SetParameters_Response_<std::allocator<void> > > > > > > >’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::GetParameterTypes; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::GetParameterTypes]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameterTypes_Response_<std::allocator<void> > > > > > > >’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp: In instantiation of ‘std::optional<std::variant<std::promise<typename ServiceT::Response::SharedPtr>, std::tuple<std::function<void(std::shared_future<typename ServiceT::Response::SharedPtr>)>, std::shared_future<typename ServiceT::Response::SharedPtr>, std::promise<typename ServiceT::Response::SharedPtr> >, std::tuple<std::function<void(std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >)>, typename ServiceT::Request::SharedPtr, std::shared_future<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> >, std::promise<std::pair<typename ServiceT::Request::SharedPtr, typename ServiceT::Response::SharedPtr> > > > > rclcpp::Client<ServiceT>::get_and_erase_pending_request(int64_t) [with ServiceT = rcl_interfaces::srv::GetParameters; typename ServiceT::Response::SharedPtr = std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:551:38:   required from ‘void rclcpp::Client<ServiceT>::handle_response(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>) [with ServiceT = rcl_interfaces::srv::GetParameters]’
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/src/rclcpp/parameter_client.cpp:545:1:   required from here
/opt/ros/rolling/src/ros2/rclcpp/rclcpp/include/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >)>, std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<rcl_interfaces::srv::GetParameters_Request_<std::allocator<void> > >, std::shared_ptr<rcl_interfaces::srv::GetParameters_Response_<std::allocator<void> > > > > > > >’
make[2]: *** [CMakeFiles/rclcpp.dir/src/rclcpp/parameter_client.cpp.o] Error 1
make[1]: *** [CMakeFiles/rclcpp.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< rclcpp [9min 57s, exited with code 2]


Additional information


SimeonOA avatar Jul 05 '22 03:07 SimeonOA

using docker container ubuntu:20.04 and ubuntu:22.04 with https://github.com/ros2/ros2/commit/28a83a843324918293ccd0d106117cf2fa4e33a6 for source build, i do not have any build problem like this.

fujitatomoya avatar Jul 05 '22 23:07 fujitatomoya

Hi @fujitatomoya

I am installing ROS2 from source following the instructions here: from Source and maintaining source checkout.

This is my section of code from the Dockerfile:

RUN mkdir -p ${ROS_ROOT}/src && \
    cd ${ROS_ROOT} && \
    wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos && \
    vcs import src < ros2.repos && \
    vcs pull src && \
    
    # Orocos-kdl
    git clone https://github.com/orocos/orocos_kinematics_dynamics && \
    cd ${ROS_ROOT}/orocos_kinematics_dynamics && \
    git submodule update --init && \
   
    
    
    # install dependencies using rosdep
    apt-get update && \
    cd ${ROS_ROOT} && \
    rosdep init && \
    rosdep update && \
    rosdep install -y \
          --ignore-src \
       --from-paths src \
	  --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers ignition-cmake2 ignition-math6 python3-pykdl" && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get clean && \
    # build it!
    colcon build \
    	--symlink-install \
        --merge-install \
        --cmake-args -DCMAKE_BUILD_TYPE=Release && \   
    # remove build files
    rm -rf ${ROS_ROOT}/src && \
    rm -rf ${ROS_ROOT}/logs && \
    rm -rf ${ROS_ROOT}/build && \

Please let me know if you need any other information.

SimeonOA avatar Jul 06 '22 00:07 SimeonOA

Hi, I had the same problem when cross-compiling ROS 2 Humble from sources for Jetson Nano (aarch64 on Ubuntu 20.04).

The "fix" was to replace that return value; with return std::move(value);

alsora avatar Jul 06 '22 07:07 alsora

Hi @alsora,

Thank you.

I will try this later today.

Were you able to successfully compile the ROS 2 Humble for Jetson Nano with 20.04? I am trying to do the exact same thing.

Thanks.

SimeonOA avatar Jul 06 '22 07:07 SimeonOA

I hit a similar issue and was able to resolve it with this PR https://github.com/ros2/rclcpp/pull/1976

smnogar avatar Jul 22 '22 23:07 smnogar

@SimeonOA could you check if https://github.com/ros2/rclcpp/pull/1976 fixes your compile error? (CC: @alsora )

fujitatomoya avatar Jul 28 '22 07:07 fujitatomoya

Hi @fujitatomoya,

@alsora's suggestion fixed the compile error for me.

I can try #1976 later and see if that works too.

SimeonOA avatar Jul 29 '22 18:07 SimeonOA

I hit a similar issue and was able to resolve it with this PR #1976

this PR works too!

rty813 avatar Aug 25 '23 09:08 rty813

closing in favor of https://github.com/ros2/rclcpp/pull/2481

fujitatomoya avatar Apr 04 '24 22:04 fujitatomoya