NVIDIA-ISAAC-ROS / isaac_ros_image_pipeline

NVIDIA-accelerated ROS2 packages for camera image processing.
https://developer.nvidia.com/isaac-ros-gems
Apache License 2.0
112 stars 19 forks source link

Native compiling error (X64) with 20.04,vpi1.1.11,cuda 11.4 as the tutorial says, but VPi asking by CUDA 10.2 #10

Closed FPSychotic closed 1 year ago

FPSychotic commented 2 years ago

igcs@igcs:~/isaac_ws$ colcon build && source install/setup.bash [0.213s] WARNING:colcon.colcon_core.verb:Some selected packages are already built in one or more underlay workspaces: 'image_geometry' is in: /opt/ros/foxy 'image_transport' is in: /opt/ros/foxy 'rcpputils' is in: /opt/ros/foxy 'camera_calibration_parsers' is in: /opt/ros/foxy 'cv_bridge' is in: /opt/ros/foxy 'camera_info_manager' is in: /opt/ros/foxy 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 camera_calibration_parsers camera_info_manager cv_bridge image_geometry image_transport rcpputils

This may be promoted to an error in a future release of colcon-core. Starting >>> rcpputils Starting >>> image_transport Starting >>> isaac_ros_test Starting >>> isaac_ros_common Starting >>> nvblox_msgs Starting >>> image_geometry Starting >>> isaac_ros_apriltag_interfaces Starting >>> isaac_ros_nvengine_interfaces Starting >>> isaac_ros_visual_slam_interfaces Starting >>> nvblox_isaac_sim Starting >>> vision_msgs Finished <<< isaac_ros_test [1.44s]
Finished <<< nvblox_isaac_sim [1.46s]
Finished <<< isaac_ros_common [8.20s]
Finished <<< isaac_ros_nvengine_interfaces [13.2s]
Starting >>> isaac_ros_nvengine Finished <<< image_geometry [13.3s]
Finished <<< rcpputils [13.4s] Starting >>> cv_bridge Starting >>> camera_calibration_parsers Finished <<< nvblox_msgs [13.8s]
Starting >>> nvblox_ros Starting >>> nvblox_nav2 Starting >>> nvblox_rviz_plugin Finished <<< isaac_ros_apriltag_interfaces [14.3s]
Finished <<< isaac_ros_visual_slam_interfaces [21.1s]
Finished <<< vision_msgs [21.7s]
Finished <<< camera_calibration_parsers [9.09s]
Starting >>> camera_info_manager Finished <<< image_transport [24.7s]
Finished <<< camera_info_manager [4.52s]
Starting >>> image_common Finished <<< image_common [0.92s]
Finished <<< isaac_ros_nvengine [15.6s]
Finished <<< cv_bridge [15.9s]
Starting >>> isaac_ros_image_proc Starting >>> isaac_ros_stereo_image_proc
Starting >>> opencv_tests Starting >>> vision_opencv Finished <<< opencv_tests [1.00s]
Finished <<< vision_opencv [1.14s]
Finished <<< nvblox_nav2 [16.8s]
Finished <<< nvblox_rviz_plugin [21.2s]
--- stderr: isaac_ros_image_proc
/usr/bin/ld: warning: libcudart.so.10.2, needed by /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11, not found (try using -rpath or -rpath-link) /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpyToArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaRegisterFunction@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to `cudaUnregisterFatBinary@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy2DAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMallocManaged@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy2DToArrayAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaCreateTextureObject@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaDestroyTextureObject@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemset2D@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaEventCreateWithFlags@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetMipmappedArrayLevel@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaGetErrorName@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetErrorString@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaCreateSurfaceObject@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaPopCallConfiguration@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to `cudaRegisterVar@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaGetDeviceProperties@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaRegisterFatBinary@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaArrayGetInfo@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpyToArrayAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaFreeHost@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaFree@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamDestroy@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetDevice@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamWaitEvent@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaEventDestroy@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaEventSynchronize@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemset@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaEventCreate@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpyFromArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaDeviceGetAttribute@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetDeviceCount@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamAttachMemAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaEventQuery@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamCreate@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaEventElapsedTime@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaEventRecord@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaFreeArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaDeviceSynchronize@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpy2D@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaDestroySurfaceObject@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetDeviceFlags@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to `cudaRegisterFatBinaryEnd@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaHostUnregister@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaLaunchKernel@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamAddCallback@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaHostGetDevicePointer@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMallocArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemset2DAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy2DFromArrayAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpyArrayToArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy2DFromArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpyFromArrayAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemsetAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaHostAlloc@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy2DArrayToArray@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMemcpyFromSymbol@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpy@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaPointerGetAttributes@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMallocPitch@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaMalloc@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaStreamSynchronize@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaHostRegister@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaCreateChannelDesc@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to__cudaPushCallConfiguration@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to cudaMemcpyAsync@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference tocudaGetLastError@libcudart.so.10.2' /usr/bin/ld: /opt/nvidia/vpi1/lib64/libnvvpi.so.1.1.11: undefined reference to `cudaMemcpy2DToArray@libcudart.so.10.2' collect2: error: ld returned 1 exit status make[2]: [CMakeFiles/isaac_ros_image_proc.dir/build.make:165: isaac_ros_image_proc] Error 1 make[1]: [CMakeFiles/Makefile2:86: CMakeFiles/isaac_ros_image_proc.dir/all] Error 2 make: *** [Makefile:141: all] Error 2

Failed <<< isaac_ros_image_proc [20.0s, exited with code 2] Aborted <<< isaac_ros_stereo_image_proc [42.1s]
Aborted <<< nvblox_ros [1min 31s]

Summary: 20 packages finished [1min 45s] 1 package failed: isaac_ros_image_proc 2 packages aborted: isaac_ros_stereo_image_proc nvblox_ros 2 packages had stderr output: isaac_ros_image_proc isaac_ros_stereo_image_proc 4 packages not processed

hemalshahNV commented 2 years ago

Do you have multiple versions of CUDA toolkit installed on your x86 machine by any chance? Is this within the Isaac ROS Docker container or directly on host? Did you obtain these vpi Debians from Isaac ROS Common or somewhere else?

FPSychotic commented 2 years ago

Hay, thanks by the help. it is in a fresh installation and in my knowledge there is only one toolkit installed. i had more recent versions but didn't work either, so I made this installation with the exact versions of the readme. It is everything native as the main target is avoid docker. I downloaded the vpi library from the nvidia downloads server. https://repo.download.nvidia.com/jetson/

What I remember, in the installation , in some step failed because it asked by a cuda 10.2 library but the readme and ubuntu 20.04 needs 11.04. I think it asked by that library because the isaac sim support, and what I did was look for that library, and copy and paste it in my system. I took it from isaac sim.