I pulled the dustynv/ros:humble-pytorch-l4t-r32.7.1 docker image and installed Zed SDK and Python API. However, I’m having several build issues with the zed-ros2-wrapper pkg. Mainly issues are coming with dependencies diagnostics and robot_localization.
I’m looking for a docker container that has ROS2 humble as well as all 3 Zed components (SDK with tools, Python API, zed-ros2-wrapper).
Issues during docker build :-
$<BUILD_INTERFACE:/sar_ws/src/diagnostics/self_test/include>
-- Configured cppcheck exclude dirs and/or files:
-- Added test 'cpplint' to check C / C++ code against the Google style
-- Configured cpplint exclude dirs and/or files:
-- Added test 'lint_cmake' to check CMake code style
-- Added test 'uncrustify' to check C / C++ code style
-- Configured uncrustify additional arguments:
-- Added test 'xmllint' to check XML markup files
-- Configuring done (20.0s)
-- Generating done (0.4s)
-- Build files have been written to: /sar_ws/build/self_test
[ 6%] Building CXX object CMakeFiles/run_selftest.dir/src/run_selftest.cpp.o
[ 30%] Building CXX object CMakeFiles/diagnostic_aggregator.dir/src/analyzer_group.cpp.o
[Processing: diagnostic_aggregator, geographic_msgs, self_test]
In file included from /opt/ros/humble/install/include/rclcpp/rclcpp/callback_group.hpp:24:0,
from /opt/ros/humble/install/include/rclcpp/rclcpp/any_executable.hpp:20,
from /opt/ros/humble/install/include/rclcpp/rclcpp/memory_strategy.hpp:25,
from /opt/ros/humble/install/include/rclcpp/rclcpp/memory_strategies.hpp:18,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executor_options.hpp:20,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executor.hpp:37,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executors.hpp:21,
from /opt/ros/humble/install/include/rclcpp/rclcpp/rclcpp.hpp:155,
from /sar_ws/src/diagnostics/self_test/src/run_selftest.cpp:41:
/opt/ros/humble/install/include/rclcpp/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 = diagnostic_msgs::srv::SelfTest; typename ServiceT::Response::SharedPtr = std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/humble/install/include/rclcpp/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 = diagnostic_msgs::srv::SelfTest]’
/sar_ws/src/diagnostics/self_test/src/run_selftest.cpp:114:1: required from here
/opt/ros/humble/install/include/rclcpp/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >)>, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >)>, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > > > > >’
return value;
^~~~~
CMakeFiles/run_selftest.dir/build.make:75: recipe for target 'CMakeFiles/run_selftest.dir/src/run_selftest.cpp.o' failed
CMakeFiles/Makefile2:179: recipe for target 'CMakeFiles/run_selftest.dir/all' failed
Makefile:145: recipe for target 'all' failed
make[2]: *** [CMakeFiles/run_selftest.dir/src/run_selftest.cpp.o] Error 1
make[1]: *** [CMakeFiles/run_selftest.dir/all] Error 2
make: *** [all] Error 2
--- stderr: self_test
In file included from /opt/ros/humble/install/include/rclcpp/rclcpp/callback_group.hpp:24:0,
from /opt/ros/humble/install/include/rclcpp/rclcpp/any_executable.hpp:20,
from /opt/ros/humble/install/include/rclcpp/rclcpp/memory_strategy.hpp:25,
from /opt/ros/humble/install/include/rclcpp/rclcpp/memory_strategies.hpp:18,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executor_options.hpp:20,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executor.hpp:37,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executors/multi_threaded_executor.hpp:25,
from /opt/ros/humble/install/include/rclcpp/rclcpp/executors.hpp:21,
from /opt/ros/humble/install/include/rclcpp/rclcpp/rclcpp.hpp:155,
from /sar_ws/src/diagnostics/self_test/src/run_selftest.cpp:41:
/opt/ros/humble/install/include/rclcpp/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 = diagnostic_msgs::srv::SelfTest; typename ServiceT::Response::SharedPtr = std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > >; typename ServiceT::Request::SharedPtr = std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >; int64_t = long int]’:
/opt/ros/humble/install/include/rclcpp/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 = diagnostic_msgs::srv::SelfTest]’
/sar_ws/src/diagnostics/self_test/src/run_selftest.cpp:114:1: required from here
/opt/ros/humble/install/include/rclcpp/rclcpp/client.hpp:821:12: error: could not convert ‘value’ from ‘std::variant<std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >)>, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > > > >’ to ‘std::optional<std::variant<std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::tuple<std::function<void(std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >)>, std::shared_future<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > >, std::promise<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::tuple<std::function<void(std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >)>, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_future<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > >, std::promise<std::pair<std::shared_ptr<diagnostic_msgs::srv::SelfTest_Request_<std::allocator<void> > >, std::shared_ptr<diagnostic_msgs::srv::SelfTest_Response_<std::allocator<void> > > > > > > >’
return value;
^~~~~
make[2]: *** [CMakeFiles/run_selftest.dir/src/run_selftest.cpp.o] Error 1
make[1]: *** [CMakeFiles/run_selftest.dir/all] Error 2
make: *** [all] Error 2
---
Failed <<< self_test [40.6s, exited with code 2]
[ 85%] Built target geographic_msgs__py
[ 85%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_bounding_box_s.c.o
[ 86%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geo_path_s.c.o
[ 87%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geo_point_s.c.o
[ 87%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geo_point_stamped_s.c.o
[ 88%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geo_pose_s.c.o
[ 88%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geo_pose_stamped_s.c.o
[ 89%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_key_value_s.c.o
[ 90%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_map_feature_s.c.o
[ 90%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_route_network_s.c.o
[ 91%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_route_path_s.c.o
[ 91%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_route_segment_s.c.o
[ 92%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_way_point_s.c.o
[ 93%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/srv/_get_geographic_map_s.c.o
[ 93%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/srv/_get_geo_path_s.c.o
[ 94%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/srv/_get_route_plan_s.c.o
[ 94%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/srv/_update_geographic_map_s.c.o
[ 94%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geographic_map_s.c.o
[ 95%] Building C object CMakeFiles/geographic_msgs__rosidl_generator_py.dir/rosidl_generator_py/geographic_msgs/msg/_geographic_map_changes_s.c.o
[ 96%] Linking C shared library rosidl_generator_py/geographic_msgs/libgeographic_msgs__rosidl_generator_py.so
[ 96%] Built target geographic_msgs__rosidl_generator_py
[ 97%] Building C object CMakeFiles/geographic_msgs__rosidl_typesupport_fastrtps_c__pyext.dir/rosidl_generator_py/geographic_msgs/_geographic_msgs_s.ep.rosidl_typesupport_fastrtps_c.c.o
[ 97%] Linking C shared library rosidl_generator_py/geographic_msgs/geographic_msgs_s__rosidl_typesupport_fastrtps_c.cpython-36m-aarch64-linux-gnu.so
[ 97%] Built target geographic_msgs__rosidl_typesupport_fastrtps_c__pyext
[ 98%] Building C object CMakeFiles/geographic_msgs__rosidl_typesupport_c__pyext.dir/rosidl_generator_py/geographic_msgs/_geographic_msgs_s.ep.rosidl_typesupport_c.c.o
[ 98%] Linking C shared library rosidl_generator_py/geographic_msgs/geographic_msgs_s__rosidl_typesupport_c.cpython-36m-aarch64-linux-gnu.so
[ 98%] Built target geographic_msgs__rosidl_typesupport_c__pyext
[ 99%] Building C object CMakeFiles/geographic_msgs__rosidl_typesupport_introspection_c__pyext.dir/rosidl_generator_py/geographic_msgs/_geographic_msgs_s.ep.rosidl_typesupport_introspection_c.c.o
[100%] Linking C shared library rosidl_generator_py/geographic_msgs/geographic_msgs_s__rosidl_typesupport_introspection_c.cpython-36m-aarch64-linux-gnu.so
[100%] Built target geographic_msgs__rosidl_typesupport_introspection_c__pyext
Aborted <<< geographic_msgs [7min 3s]
[ 40%] Linking CXX shared library libdiagnostic_aggregator.so
[ 40%] Built target diagnostic_aggregator
[ 40%] Built target ament_cmake_python_symlink_diagnostic_aggregator
[ 50%] Building CXX object CMakeFiles/aggregator_node.dir/src/aggregator_node.cpp.o
[ 60%] Linking CXX executable aggregator_node
[ 60%] Built target aggregator_node
running egg_info
creating diagnostic_aggregator.egg-info
writing diagnostic_aggregator.egg-info/PKG-INFO
writing dependency_links to diagnostic_aggregator.egg-info/dependency_links.txt
writing top-level names to diagnostic_aggregator.egg-info/top_level.txt
writing manifest file 'diagnostic_aggregator.egg-info/SOURCES.txt'
reading manifest file 'diagnostic_aggregator.egg-info/SOURCES.txt'
writing manifest file 'diagnostic_aggregator.egg-info/SOURCES.txt'
[ 60%] Built target ament_cmake_python_build_diagnostic_aggregator_egg
[ 70%] Building CXX object CMakeFiles/diagnostic_aggregator_analyzers.dir/src/generic_analyzer.cpp.o
[ 90%] Building CXX object CMakeFiles/diagnostic_aggregator_analyzers.dir/src/ignore_analyzer.cpp.o
[ 90%] Building CXX object CMakeFiles/diagnostic_aggregator_analyzers.dir/src/discard_analyzer.cpp.o
[100%] Linking CXX shared library libdiagnostic_aggregator_analyzers.so
[100%] Built target diagnostic_aggregator_analyzers
Aborted <<< diagnostic_aggregator [3min 43s]
Summary: 35 packages finished [8min 50s]
1 package failed: self_test
2 packages aborted: diagnostic_aggregator geographic_msgs
17 packages had stderr output: ament_clang_format ament_clang_tidy ament_copyright ament_cppcheck ament_cpplint ament_flake8 ament_lint ament_lint_cmake ament_mypy ament_pclint ament_pep257 ament_pycodestyle ament_pyflakes ament_uncrustify ament_xmllint self_test xacro
1 package not processed
The command '/bin/bash -c source /opt/ros/$ROS_DISTRO/install/setup.bash && colcon build --parallel-workers $(nproc) --symlink-install --event-handlers console_direct+ --base-paths src --cmake-args ' -DCMAKE_BUILD_TYPE=Release' ' -DCMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs' ' -DCMAKE_CXX_FLAGS="-Wl,--allow-shlib-undefined"' ' --no-warn-unused-cli'' returned a non-zero code: 2