NVIDIA-ISAAC-ROS / isaac_ros_nitros

NVIDIA Isaac Transport for ROS package for hardware-acceleration friendly movement of messages
Other
95 stars 18 forks source link

Build fails on X86_64 native installation #3

Closed PratNag closed 2 years ago

PratNag commented 2 years ago

I am trying to build isaac_ros_nitros Intel i5 8th Gen Nvidia MX130 GPU CUDA 11.7

Same issue on Intel i7 10th Gen Nvidia RTX3080 GPU CUDA 11.7

Able to build isaac_ros_common natively without docker fine. Have installed negotiated from osrf github repo.

But the isaac_ros_nitros build fails with the following error.

-- stderr: isaac_ros_nitros In file included from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/component.hpp:24, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp:20, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp:21, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/src/types/nitros_image.cpp:23: /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:109:14: error: ‘optional’ in namespace ‘std’ does not name a template type 109 | const std::optional<T>& try_get() const { return value_; } | ^~~~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:29:1: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’? 28 | #include "gxf/std/parameter_parser.hpp" +++ |+#include <optional> 29 | /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:114:8: error: ‘optional’ in namespace ‘std’ does not name a template type 114 | std::optional<T> value_; | ^~~~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:114:3: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’? 114 | std::optional<T> value_; | ^~~ In file included from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/component.hpp:24, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/std/tensor.hpp:25, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/src/types/nitros_point_cloud.cpp:24: /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:109:14: error: ‘optional’ in namespace ‘std’ does not name a template type 109 | const std::optional<T>& try_get() const { return value_; } | ^~~~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:29:1: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’? 28 | #include "gxf/std/parameter_parser.hpp" +++ |+#include <optional> 29 | /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:114:8: error: ‘optional’ in namespace ‘std’ does not name a template type 114 | std::optional<T> value_; | ^~~~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:114:3: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’? 114 | std::optional<T> value_; | ^~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp: In member function ‘bool nvidia::gxf::ParameterBackend<T>::isAvailable() const’: /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:95:46: error: ‘value_’ was not declared in this scope 95 | bool isAvailable() const override { return value_ != std::nullopt; } | ^~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp: In member function ‘bool nvidia::gxf::ParameterBackend<T>::isAvailable() const’: /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:95:46: error: ‘value_’ was not declared in this scope 95 | bool isAvailable() const override { return value_ != std::nullopt; } | ^~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:95:61: error: ‘nullopt’ is not a member of ‘std’; did you mean ‘std::experimental::fundamentals_v1::nullopt’? 95 | bool isAvailable() const override { return value_ != std::nullopt; } | ^~~~~~~ In file included from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/common/optional.hpp:19, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:24, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/component.hpp:24, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/std/allocator.hpp:20, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/multimedia/video.hpp:21, from /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/src/types/nitros_image.cpp:23: /usr/include/c++/11/experimental/optional:96:23: note: ‘std::experimental::fundamentals_v1::nullopt’ declared here 96 | constexpr nullopt_t nullopt { nullopt_t::_Construct::_Token }; | ^~~~~~~ /home/ty-asus-22/isaac_ws/src/isaac_ros_nitros/isaac_ros_nitros/gxf/include/gxf/core/parameter.hpp:95:61: error: ‘nullopt’ is not a member of ‘std’; did you mean ‘std::experimental::fundamentals_v1::nullopt’? 95 | bool isAvailable() const override { return value_ != std::nullopt; } | ^~~~~~~ This is just a part of the error message.

hemalshahNV commented 2 years ago

What version of Ubuntu are you building this on, by the way?

PratNag commented 2 years ago

Ubuntu 22.04 + ROS2 Humble

hemalshahNV commented 2 years ago

Isaac ROS DP (v0.10.1) is only supported on Ubuntu 20.04 at this time because of underlying dependencies unfortunately. The compile errors are likely coming from the newer gcc11 in Jellyfish.

isaac_ros_common Docker containers build ROS2 Humble from source for 20.04 Focal and are customizable if that's an option for you.