Cannot build ros_deep_learning package on Jetson Nano

Hello everyone

I have a Jetson Nano running Ubuntu 18.04 with L4T 32.7.1. I have a Docker container running (from this ros2 foxy image ) ros2 foxy and I’ve gotten turtlesim to work along with my own package. However, I want to build the ros_deep_learning package and it does not want to build.

This is how I did:

cd ~/ros2_ws/src
git clone https://github.com/dusty-nv/ros_deep_learning
cd ~/ros2_ws
colcon build

But then it fails, this is a snippet:

--- stderr: camera_info_manager
/root/ros2_ws/src/ros-perception/image_common/camera_info_manager/src/camera_info_manager.cpp:46:10: fatal error: rcpputils/env.hpp: No such file or directory
 #include "rcpputils/env.hpp"
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/camera_info_manager.dir/src/camera_info_manager.cpp.o] Error 1
make[1]: *** [CMakeFiles/camera_info_manager.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< camera_info_manager [5.25s, exited with code 2]
Aborted  <<< rqt_py_common [2.20s]
Aborted  <<< rqt_gui [10.4s]
Aborted  <<< image_transport [23.9s]
Summary: 7 packages finished [28.4s]
  1 package failed: camera_info_manager
  3 packages aborted: image_transport rqt_gui rqt_py_common
  2 packages had stderr output: camera_info_manager image_transport
  22 packages not processed

It didn’t even try ros_deep_learning so I tried this:

colcon build --packages-select ros_deep_learning --symlink-install --event-handlers console_direct+

~/ros2_ws# colcon build --packages-select ros_deep_learning --symlink-install --event-handlers console_direct+
[2.722s] WARNING:colcon.colcon_core.verb:Some selected packages are already built in one or more underlay workspaces:
	'ros_deep_learning' is in: /root/ros2_ws/install/ros_deep_learning
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding ros_deep_learning

This may be promoted to an error in a future release of colcon-core.
Starting >>> ros_deep_learning
detected ROS_DISTRO=ROS_FOXY                          
-- Using PYTHON_EXECUTABLE: /usr/bin/python3          
-- Override CMake install command with custom implementation using symlinks instead of copying resources
detected ROS2 (ament_cmake)
-- Found rclcpp: 2.4.1 (/opt/ros/foxy/install/share/rclcpp/cmake)
-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c
-- Found rosidl_adapter: 1.2.1 (/opt/ros/foxy/install/share/rosidl_adapter/cmake)
-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp
-- Found rmw_implementation_cmake: 1.0.3 (/opt/ros/foxy/install/share/rmw_implementation_cmake/cmake)
-- Using RMW implementation 'rmw_cyclonedds_cpp' as default
-- Found sensor_msgs: 2.0.5 (/opt/ros/foxy/install/share/sensor_msgs/cmake)
-- Found vision_msgs: 2.0.0 (/opt/ros/foxy/install/share/vision_msgs/cmake)
-- Configuring done                                   
-- Generating done                                    
-- Build files have been written to: /root/ros2_ws/build/ros_deep_learning
Consolidate compiler generated dependencies of target video_source
Consolidate compiler generated dependencies of target imagenet
Consolidate compiler generated dependencies of target detectnet
[  5%] Building CXX object CMakeFiles/imagenet.dir/src/node_imagenet.cpp.o
[ 10%] Building CXX object CMakeFiles/segnet.dir/src/node_segnet.cpp.o
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'video_source'.  Stop.
CMakeFiles/Makefile2:222: recipe for target 'CMakeFiles/video_source.dir/all' failed
make[1]: *** [CMakeFiles/video_source.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 15%] Building CXX object CMakeFiles/segnet.dir/src/image_converter.cpp.o
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'detectnet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[ 20%] Building CXX object CMakeFiles/detectnet.dir/src/node_detectnet.cpp.o
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 
                                                            
                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
      const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                     ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;

            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 

                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                        ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;
                                                            
            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetNumClasses() const’:
/usr/local/include/jetson-inference/segNet.h:301:54: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetNumClasses() const      { return DIMS_C(mOutputs[0].dims); }
                                                            
                                                      ^
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetGridWidth() const’:
/usr/local/include/jetson-inference/segNet.h:333:53: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetGridWidth() const      { return DIMS_W(mOutputs[0].dims); }

                                                     ^
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetGridHeight() const’:
/usr/local/include/jetson-inference/segNet.h:339:54: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetGridHeight() const      { return DIMS_H(mOutputs[0].dims); }

                                                      ^
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 

                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                        ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;

            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
In file included from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:0:
/usr/local/include/jetson-inference/detectNet.h: At global scope:
/usr/local/include/jetson-inference/detectNet.h:288:33: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input, const Dims3& inputDims, 

                                 ^~~~~
                                 dim3
/root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp: In function ‘int main(int, char**)’:
/root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:236:23: error: ‘SSD_MOBILENET_V2’ is not a member of ‘detectNet’
    model = detectNet::SSD_MOBILENET_V2;
                       ^~~~~~~~~~~~~~~~
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'segnet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[ 25%] Building CXX object CMakeFiles/segnet.dir/src/ros_compat.cpp.o
[Processing: ros_deep_learning]p_learning:build 25% - 30.1s]
CMakeFiles/segnet.dir/build.make:75: recipe for target 'CMakeFiles/segnet.dir/src/node_segnet.cpp.o' failed
make[2]: *** [CMakeFiles/segnet.dir/src/node_segnet.cpp.o] Error 1
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'imagenet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/imagenet.dir/build.make:75: recipe for target 'CMakeFiles/imagenet.dir/src/node_imagenet.cpp.o' failed
make[2]: *** [CMakeFiles/imagenet.dir/src/node_imagenet.cpp.o] Error 1
CMakeFiles/Makefile2:144: recipe for target 'CMakeFiles/imagenet.dir/all' failed
make[1]: *** [CMakeFiles/imagenet.dir/all] Error 2
CMakeFiles/detectnet.dir/build.make:75: recipe for target 'CMakeFiles/detectnet.dir/src/node_detectnet.cpp.o' failed
make[2]: *** [CMakeFiles/detectnet.dir/src/node_detectnet.cpp.o] Error 1
make[1]: *** [CMakeFiles/detectnet.dir/all] Error 2
CMakeFiles/Makefile2:170: recipe for target 'CMakeFiles/detectnet.dir/all' failed
CMakeFiles/Makefile2:196: recipe for target 'CMakeFiles/segnet.dir/all' failed
make[1]: *** [CMakeFiles/segnet.dir/all] Error 2
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
--- stderr: ros_deep_learning                               
detected ROS_DISTRO=ROS_FOXY
detected ROS2 (ament_cmake)
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'video_source'.  Stop.
make[1]: *** [CMakeFiles/video_source.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'detectnet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 

                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
      const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                     ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;

            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/imageNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_imagenet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 

                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                        ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;

            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
In file included from /usr/local/include/jetson-inference/segNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_segnet.cpp:26:
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetNumClasses() const’:
/usr/local/include/jetson-inference/segNet.h:301:54: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetNumClasses() const      { return DIMS_C(mOutputs[0].dims); }

                                                      ^
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetGridWidth() const’:
/usr/local/include/jetson-inference/segNet.h:333:53: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetGridWidth() const      { return DIMS_W(mOutputs[0].dims); }

                                                     ^
/usr/local/include/jetson-inference/segNet.h: In member function ‘uint32_t segNet::GetGridHeight() const’:
/usr/local/include/jetson-inference/segNet.h:339:54: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetGridHeight() const      { return DIMS_H(mOutputs[0].dims); }

                                                      ^
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:58:19: error: ‘Dims3’ in namespace ‘nvinfer1’ does not name a type
 typedef nvinfer1::Dims3 Dims3; 

                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:277:38: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input_blob, const Dims3& input_dims, 

                                      ^~~~~
                                      dim3
/usr/local/include/jetson-inference/tensorNet.h:296:26: error: ‘Dims3’ was not declared in this scope
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:296:26: note: suggested alternative: ‘dim3’
        const std::vector<Dims3>& input_dims, 

                          ^~~~~
                          dim3
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 1 is invalid
        const std::vector<Dims3>& input_dims, 

                               ^
/usr/local/include/jetson-inference/tensorNet.h:296:31: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:312:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:326:17: error: ‘nvinfer1::IPluginFactory’ has not been declared
       nvinfer1::IPluginFactory* pluginFactory=NULL,

                 ^~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:337:29: error: ‘nvinfer1::ICudaEngine’ has not been declared
  bool LoadEngine( nvinfer1::ICudaEngine* engine,

                             ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:451:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetInputDims( uint32_t layer=0 ) const  { return mInputs[layer].dims; }

         ^~~~~
         dim3
/usr/local/include/jetson-inference/tensorNet.h:471:9: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
  inline Dims3 GetOutputDims( uint32_t layer=0 ) const  { return mOutputs[layer].dims; }

         ^~~~~
         dim3
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h:566:67: error: ‘Dims3’ was not declared in this scope
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
/usr/local/include/jetson-inference/tensorNet.h:566:67: note: suggested alternative: ‘dim3’
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                   ^~~~~
                                                                   dim3
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 1 is invalid
         const std::vector<std::string>& inputs, const std::vector<Dims3>& inputDims,

                                                                        ^
/usr/local/include/jetson-inference/tensorNet.h:566:72: error: template argument 2 is invalid
/usr/local/include/jetson-inference/tensorNet.h:580:35: error: ‘nvinfer1::IBuilder’ has not been declared
  bool ConfigureBuilder( nvinfer1::IBuilder* builder, uint32_t maxBatchSize, 

                                   ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:590:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:592:13: error: ‘Severity’ has not been declared
   void log( Severity severity, const char* msg ) NOEXCEPT override

             ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:592:8: error: ‘void tensorNet::Logger::log(int, const char*)’ marked ‘override’, but does not override
   void log( Severity severity, const char* msg ) NOEXCEPT override

        ^~~
/usr/local/include/jetson-inference/tensorNet.h:619:2: error: expected class-name before ‘{’ token
  {

  ^
/usr/local/include/jetson-inference/tensorNet.h:726:12: error: ‘IRuntime’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IRuntime* mInfer;

            ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:727:12: error: ‘ICudaEngine’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::ICudaEngine* mEngine;

            ^~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:728:12: error: ‘IExecutionContext’ in namespace ‘nvinfer1’ does not name a type
  nvinfer1::IExecutionContext* mContext;

            ^~~~~~~~~~~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:743:3: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
   Dims3 dims;

   ^~~~~
   dim3
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:456:67: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputWidth( uint32_t layer=0 ) const { return DIMS_W(mInputs[layer].dims); }

                                                                   ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetInputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:461:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetInputHeight( uint32_t layer=0 ) const { return DIMS_H(mInputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputWidth(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:476:68: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputWidth( uint32_t layer=0 ) const { return DIMS_W(mOutputs[layer].dims); }

                                                                    ^
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘uint32_t tensorNet::GetOutputHeight(uint32_t) const’:
/usr/local/include/jetson-inference/tensorNet.h:481:69: error: ‘const value_type {aka const struct tensorNet::layerInfo}’ has no member named ‘dims’
  inline uint32_t GetOutputHeight( uint32_t layer=0 ) const { return DIMS_H(mOutputs[layer].dims); }

                                                                     ^
In file included from /usr/local/include/jetson-inference/detectNet.h:27:0,
                 from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:
/usr/local/include/jetson-inference/tensorNet.h: In member function ‘void tensorNet::Logger::log(int, const char*)’:
/usr/local/include/jetson-inference/tensorNet.h:594:20: error: ‘Severity’ has not been declared
    if( severity == Severity::kWARNING )

                    ^~~~~~~~
/usr/local/include/jetson-inference/tensorNet.h:598:25: error: ‘Severity’ has not been declared
    else if( severity == Severity::kINFO )

                         ^~~~~~~~
In file included from /root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:26:0:
/usr/local/include/jetson-inference/detectNet.h: At global scope:
/usr/local/include/jetson-inference/detectNet.h:288:33: error: ‘Dims3’ does not name a type; did you mean ‘dim3’?
        const char* input, const Dims3& inputDims, 

                                 ^~~~~
                                 dim3
/root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp: In function ‘int main(int, char**)’:
/root/ros2_ws/src/ros_deep_learning/src/node_detectnet.cpp:236:23: error: ‘SSD_MOBILENET_V2’ is not a member of ‘detectNet’
    model = detectNet::SSD_MOBILENET_V2;
                       ^~~~~~~~~~~~~~~~
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'segnet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/segnet.dir/src/node_segnet.cpp.o] Error 1
make[2]: *** No rule to make target '/usr/local/cuda/lib64/libnppicc.so', needed by 'imagenet'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/imagenet.dir/src/node_imagenet.cpp.o] Error 1
make[1]: *** [CMakeFiles/imagenet.dir/all] Error 2
make[2]: *** [CMakeFiles/detectnet.dir/src/node_detectnet.cpp.o] Error 1
make[1]: *** [CMakeFiles/detectnet.dir/all] Error 2
make[1]: *** [CMakeFiles/segnet.dir/all] Error 2
make: *** [all] Error 2
---
Failed   <<< ros_deep_learning [33.8s, exited with code 2]
                                 
Summary: 0 packages finished [35.2s]
  1 package failed: ros_deep_learning
  1 package had stderr output: ros_deep_learning

There seems to be some sort of issue with jetson-inference? It was already installed in the image but is still causing problems. I tried to update Jetpack to see if it was that but it didn’t fix anything.

Grateful for any help!

Hi @gustav.a, did you start your container with --runtime nvidia or is your default docker runtime set to nvidia? https://github.com/dusty-nv/jetson-containers#docker-default-runtime

Due to the missing TensorRT structs that you are getting errors on, I think those files aren’t being mounted into the container (which the nvidia runtime normally takes care of automatically).

It’s also possible that when you upgraded JetPack-L4T, it is messing with these being mounted into the container correctly. What’s your current version of L4T (you can check this with cat /etc/nv_tegra_release)? Does your L4T version match the version tag of the container you are running?

Hi @dusty_nv ! I took a new SD-card and flashed a L4T 32.6.1 Jetpack 4.6 image to it (drivers for the camera only went up to Jp4.6). I’ve now edited daemon.json with the extra line (I am unsure when in the process I did that on the other SD-card (32.7.2)), pulled foxy-pytorch-l4t-r32.6.1 but now I’m unsure about the docker run options. I am think about this right now:

docker run -it --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --name ros2_container_4.6 -it dustynv/ros:foxy-pytorch-l4t-r32.6.1 /bin/bash

Anything that should be added/removed?

Thanks in advance!

Although you are missing --runtime nvidia from that command line, it sounds like you have already set it as the default in your daemon.json. I would try either using the docker_run.sh script from jetson-containers, or using the docker run command that it does:

https://github.com/dusty-nv/jetson-containers/blob/be0dca3d19b30e64d129c92e93425c9ede40d65f/scripts/docker_run.sh#L113

I think by you specifying the container to run /bin/bash, it will override the ros_entrypoint.sh from the dockerfile (which sets the ROS environment)

Yes, I added “default-runtime”: “nvidia” in daemon.json before running :).

Alright, is it too late to not specify /bin/bash when doing docker exec <...>? I’ve always used it. Do I need to remove the container and run a new one from the same image, or is it enough to not do it in docker exec ?

Also, I’m a bit confused regarding the difference between jetson-containers and the docker hub . I pulled an image from dustynv/ros at dockerhub, what would be the difference to git clone https://github.com/dusty-nv/jetson-containers (except for the fact that the docker images have specific installations)? You linked the docker_run.sh file from the github page, so I assume that’s something thats the same for both of them?

Edit: I looked in the file you sent and ran

sudo docker run -it --rm --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix -v /tmp/.docker.xauth:/tmp/.docker.xauth -e XAUTHORITY=/tmp/.docker.xauth dustynv/ros:foxy-pytorch-l4t-r32.6.1

There were no complaints and the container started. However, I want to open a new terminal in the container with docker exec -u root -it <name_of_container> <something else than /bin/bash> but I don’t know what to put instead of /bin/bash. It says “docker exec requires at least 2 arguments”.

Edit#2: doing docker exec -u root -it <container_name> /ros_entrypoint.sh gives

sourcing      /opt/ros/foxy/install/setup.bash
ROS_ROOT  /opt/ros/foxy
ROS_DISTRO foxy

but then the terminal just returns to the host terminal and doesn’t enter the container…

I then did how I usually do with /bin/bash and tried video_viewer. The errors can be seen here:

~/ros2_ws# ros2 launch ros_deep_learning video_viewer.ros2.launch input :=csi//0 output:=display://0
malformed launch argument 'input', expected format '<name>:=<value>'
root@nanodev-desktop:~/ros2_ws# ros2 launch ros_deep_learning video_viewer.ros2.launch input:=csi//0 output:=display://0
[INFO] [launch]: All log files can be found below /root/.ros/log/2022-07-01-08-36-26-735946-nanodev-desktop-786
[INFO] [launch]: Default logging verbosity is set to INFO
Task exception was never retrieved
future: <Task finished coro=<LaunchService._process_one_event() done, defined at /opt/ros/foxy/install/lib/python3.6/site-packages/launch/launch_service.py:226> exception=SubstitutionFailure("launch configuration 'input_latency' does not exist",)>
Traceback (most recent call last):
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/launch_service.py", line 228, in _process_one_event
    await self.__process_event(next_event)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/launch_service.py", line 248, in __process_event
    visit_all_entities_and_collect_futures(entity, self.__context))
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
    futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
  [Previous line repeated 3 more times]
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
    sub_entities = entity.visit(context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/action.py", line 108, in visit
    return self.execute(context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch_ros/actions/node.py", line 444, in execute
    self._perform_substitutions(context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch_ros/actions/node.py", line 399, in _perform_substitutions
    evaluated_parameters = evaluate_parameters(context, self.__parameters)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch_ros/utilities/evaluate_parameters.py", line 160, in evaluate_parameters
    output_params.append(evaluate_parameter_dict(context, param))
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch_ros/utilities/evaluate_parameters.py", line 128, in evaluate_parameter_dict
    evaluated_value = value.evaluate(context)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch_ros/parameter_descriptions.py", line 84, in evaluate
    context, self.value, self.value_type)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/type_utils.py", line 548, in perform_typed_substitution
    perform_substitutions(context, cast(List[Substitution], value)),
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions
    return ''.join([context.perform_substitution(sub) for sub in subs])
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in <listcomp>
    return ''.join([context.perform_substitution(sub) for sub in subs])
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/launch_context.py", line 197, in perform_substitution
    return substitution.perform(self)
  File "/opt/ros/foxy/install/lib/python3.6/site-packages/launch/substitutions/launch_configuration.py", line 99, in perform
    "launch configuration '{}' does not exist".format(expanded_variable_name))
launch.substitutions.substitution_failure.SubstitutionFailure: launch configuration 'input_latency' does not exist

I believe you can just do /bin/bash and manually run /ros_entrypoint.sh to source the ROS environment. Or if you did docker run without specifying a start-up command, I think it will have already been run (but not sure that will carry over to a new terminal session started with docker exec)

The jetson-containers github is the source dockerfiles, build scripts, and run scripts that was used to create the container images that are hosted on DockerHub. You can use the run script with images from DockerHub without having to rebuilt them. If desired, you can make changes to the Dockerfiles and rebuild the containers locally if you want.

OK, there appears to have been a missing argument definition in one of the launch file includes, sorry about that. I have patched it in ros_deep_learning master in commit a58d69. Can you pull the latest repo and try again?

sorry about that.

No need to apologize! You’re being incredibly helpful!

Thanks! Your commit enabled ros_deep_learning to build without 1 package had stderr output: ros_deep_learning appearing, and I managed to run video_viewer. However, it got stuck in other errors:

root@nanodev-desktop:~/ros2_workspace# ros2 launch ros_deep_learning video_viewer.ros2.launch input:=csi://0 output:=display://0
[INFO] [launch]: All log files can be found below /root/.ros/log/2022-07-04-07-13-59-863428-nanodev-desktop-402
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [video_source-1]: process started with pid [405]
[INFO] [video_output-2]: process started with pid [406]
[video_output-2] 1656918840.635116 [0] video_outp: using network interface eth0 (udp/192.168.15.193) selected arbitrarily from: eth0, docker0
[video_source-1] 1656918840.644344 [0] video_sour: using network interface eth0 (udp/192.168.15.193) selected arbitrarily from: eth0, docker0
[video_output-2] [INFO] [1656918840.654659861] [video_output]: opening video output: display://0
[video_source-1] [INFO] [1656918840.659807759] [video_source]: opening video source: csi://0
[video_source-1] (Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
[video_source-1] (Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
[video_source-1] Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:720 Failed to create CameraProvider
[video_output-2] [INFO] [1656918840.808817828] [video_output]: video_output node initialized, waiting for messages
[video_source-1] [ERROR] [1656918841.895394365] [video_source]: failed to capture next frame
[video_source-1] [ERROR] [1656918842.900678718] [video_source]: failed to capture next frame
[video_source-1] [ERROR] [1656918843.904219726] [video_source]: failed to capture next frame
[video_source-1] [ERROR] [1656918844.907966997] [video_source]: failed to capture next frame
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[video_source-1] [INFO] [1656918845.235199048] [rclcpp]: signal_handler(signal_value=2)
[video_output-2] [INFO] [1656918845.235304837] [rclcpp]: signal_handler(signal_value=2)
[video_output-2] [OpenGL] glDisplay -- X screen 0 resolution:  1920x1080
[video_output-2] [OpenGL] glDisplay -- X window resolution:    1920x1080
[video_output-2] [OpenGL] glDisplay -- display device initialized (1920x1080)
[video_output-2] [video]  created glDisplay from display://0
[video_output-2] ------------------------------------------------
[video_output-2] glDisplay video options:
[video_output-2] ------------------------------------------------
[video_output-2]   -- URI: display://0
[video_output-2]      - protocol:  display
[video_output-2]      - location:  0
[video_output-2]   -- deviceType: display
[video_output-2]   -- ioType:     input
[video_output-2]   -- codec:      raw
[video_output-2]   -- width:      1920
[video_output-2]   -- height:     1080
[video_output-2]   -- frameRate:  0.000000
[video_output-2]   -- bitRate:    0
[video_output-2]   -- numBuffers: 4
[video_output-2]   -- zeroCopy:   true
[video_output-2]   -- flipMethod: none
[video_output-2]   -- loop:       0
[video_output-2]   -- rtspLatency 2000
[video_output-2] ------------------------------------------------
[INFO] [video_output-2]: process has finished cleanly [pid 406]
[video_source-1] [ERROR] [1656918845.911536653] [video_source]: failed to capture next frame
[video_source-1] Not all nodes were finished before finishing the context
[video_source-1] .Ensure `rcl_node_fini` is called for all nodes before `rcl_context_fini`,to avoid leaking.
[video_source-1] terminate called without an active exception
[ERROR] [video_source-1]: process has died [pid 405, exit code -6, cmd '/root/ros2_workspace/install/ros_deep_learning/lib/ros_deep_learning/video_source --ros-args --params-file /tmp/launch_params_guxfpus9 --params-file /tmp/launch_params_f62oqnt6 --params-file /tmp/launch_params_cbe7teej --params-file /tmp/launch_params_xe70fd8i --params-file /tmp/launch_params_btuk2rtw'].
root@nanodev-desktop:~/ros2_workspace#

This is where we get to the problem I have with my CSI Camera. It’s an e-CAM30_CUNANO from e-con Systems and after installing the provided drivers for L4T32.6.1 (natively on the Nano), it still does not appear as /dev/video*, there are no such files in either the native files or in the container. The camera itself works, since I’ve tried it on a different Nano (not developer version, and with a different setup, version etc) and it does indeed show a /dev/video0 when the camera is plugged in.

This problem has been active all last week and I’m in contact with the support regarding this issue. I believe that the containers running your images as well as the ros_deep_learning repo are now working as they should, it’s just that the camera itself won’t work with any program. I can’t even run nvgstcapture-1.0 outside of the container without it complaining that no camera is detected.

If you can see any possible fix from the errors that video_viewer returned, that would be amazing but as mentioned, I don’t think it’s your work that is causing the problem. Thanks so much for the help, I will get back with new information as it comes up.

Edit#1: Ran xhost +local:docker, reran the command and replaced the error messages with what it put out. Before it had problems with [OpenGL] failed to open X11 server connection., which is now gone.

Hi @gustav.a, glad that you got the packages building - yes, you are correct that since nvgstcapture-1.0 is unable to find your camera, then neither will video-viewer node. Perhaps it is some camera driver issue on that version of JetPack-L4T that you are running on that Nano.

Indeed. I contacted the manufacturers of the carrier board and they said that the current driver only supports cameras using IMX219, which my camera does not. I’m awaiting a response but currently the thing limiting me is the camera driver. I think we can close this now. Thanks for the help!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.