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 failed on Ubuntu 22.04 (x86) #11

Closed Ankur-singh closed 1 year ago

Ankur-singh commented 1 year ago

I tried building this package inside NVIDIA ISAAC ROS, but I am getting the following error.

Starting >>> isaac_ros_nitros
--- stderr: isaac_ros_nitros                               
/usr/bin/ld:/workspaces/isaac_ros-dev/src/isaac_ros_nitros/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so: file format not recognized; treating as linker script
/usr/bin/ld:/workspaces/isaac_ros-dev/src/isaac_ros_nitros/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so:1: syntax error
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/isaac_ros_nitros.dir/build.make:311: libisaac_ros_nitros.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/isaac_ros_nitros.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
---
Failed   <<< isaac_ros_nitros [16.3s, exited with code 2]

Summary: 0 packages finished [16.5s]
  1 package failed: isaac_ros_nitros
  1 package had stderr output: isaac_ros_nitros

Am I missing something?

Here are my system details:

x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"

and here are my CUDA details:

NVIDIA-SMI=525.60.13
Driver Version = 525.60.13
CUDA Version = 12.0

One thing that I notices is that the host CUDA version is different from the one that nitros node want. Can this be the reason for the above error?

Ankur-singh commented 1 year ago

I even tried running it with cuda 11.7 but still the same error.

nvcc --version

// output
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0
MarvinChung commented 1 year ago

Hi @Ankur-singh, I have also encountered your problem when I was building isaac_ros_nitros by following the README in issac_ros_visual_slam.

Therefore, I open the /workspaces/isaac_ros-dev/src/isaac_ros_nitros/isaac_ros_nitros/gxf/lib/gxf_x86_64_cuda_11_7/core/libgxf_core.so file and check what is happening by

vim libgxf_core.so 

and I found that the content of libgxf_core.so becomes text as follows (All the .so files have the same situations):

version https://git-lfs.github.com/spec/v1
oid sha256:dd8486bfe23beb76a16ebe76212aaa30e34357c10f7a1c8411524c3aab024872
size 1556200

It seems that something went wrong with my git-lfs. I then re-clone the isaac_ros_nitros and build it again. This time it works correctly. I hope that you have the same problem and it can be solved by making sure the .so files are in the correct format.

By the way, I use the docker container in issac_ros_visual_slam to make sure the system is same as the provider. You can also try it if you need it.

Ankur-singh commented 1 year ago

Hi @MarvinChung, I also tried looking at the libgxf_core.so file its content looked similar to what you posted here. I deleted and clones the repo again and it worked as expected. Thank you so much.