glim icon indicating copy to clipboard operation
glim copied to clipboard

Symbol Lookup Error When Running `glim_rosnode` on Jetson Nano (libglim.so: undefined symbol)

Open mahmood-ul-hasan opened this issue 8 months ago • 1 comments

I'm installing GLIM on a Jetson Nano (Orin) following the official guides:

In particular, I’m using the GLIM site to install the required dependencies, including GTSAM and gtsam_points. The dependencies built successfully without any errors.

However, when I attempt to run the ROS 2 node, I encounter the following runtime error:

Command

ros2 run glim_ros glim_rosnode --ros-args -p config_path:=$(realpath ~/config)

Error Output

[2025-06-19 15:09:28.756] [glim] [info] config_path: /home/nano/config  
[2025-06-19 15:09:28.757] [glim] [info] load libodometry_estimation_gpu.so  
/opt/ros/humble/lib/glim_ros/glim_rosnode: symbol lookup error: /opt/ros/humble/lib/libglim.so: undefined symbol: _ZN5gtsam21TangentPreintegrationC2ERKN5boost10shared_ptrINS_20PreintegrationParamsEEERKNS_7imuBias12ConstantBiasE  
[ros2run]: Process exited with failure 127

System Info

  • Platform: Jetson Nano (Orin)
  • ROS 2 Version: Humble
  • OS: Ubuntu 22.04 (JetPack version if applicable)
  • GLIM commit/version: [please fill in]
  • GTSAM installation: [via apt / from source] If from source, please specify the version/commit: [please fill in]

Troubleshooting Done

  • Confirmed libgtsam.so is present and linked via ldd /opt/ros/humble/lib/libglim.so
  • Rebuilt gtsam_points, glim, and glim_ros from source
  • Ensured LD_LIBRARY_PATH includes the correct GTSAM library directory

Request Could you please confirm:

  1. The expected GTSAM version or commit hash to use with GLIM
  2. Any special linking flags or steps required when building gtsam_points or glim

Thanks in advance for your help and for maintaining this great package!

mahmood-ul-hasan avatar Jun 19 '25 06:06 mahmood-ul-hasan

I guess it is caused by mismatch of library versions. Combining binaries built yourself and installed via PPA may cause inconsistencies. If you installed GLIM from PPA, please avoid using self-built binaries.

  1. The commit (GLIM : 1591f04, gtsam_points : 4d7589d) and earlier use GTSAM 4.2a9, and commits after that use GTSAM 4.3a0. (Note that PPA binaries have not been updated yet, and they still use GTSAM 4.2a9)
  2. No, usually only the CUDA flag is required to be set.

koide3 avatar Jun 21 '25 01:06 koide3