Incorrect libprotobuf.so version for isaac_mapping_ros on Jetson

I have installed ros-humble-isaac-mapping-ros inside of my isaac_ros-dev container on a Nvidia Jetson AGX Orin using the following command: sudo apt-get install -y ros-humble-isaac-mapping-ros. But when I go to run the map generator using ros2 run isaac_mapping_ros create_map_offline.py and passing in the sensor data and output folder, I am greeted with an error.

The error says: error while loading shared libraries: libprotobuf.so.26.0.0: cannot open shared object. By running ldconfig -p | grep libprotobuf inside my docker container and outside, I get the following output: libprotobuf.so.23 (libc6,AArch64) => /usr/lib/aarch64-linux-gnu/libprotobuf.so.23.

Is there a step I missed in the setup instructions to install libprotobuf.so.26.0.0? I feel like there’s something I’m missing here because the libprotobuf version that ships on the Jetson OS is different from the required version for isaac_mapping_ros, which is built to run on Jetson AGX Orins. Any help would be much appreciated!

In case anyone else runs into this issue, here was my solution. I was installing the release version of Protocol Buffers v26.0 from GitHub and following the provided installation instructions.
https://github.com/protocolbuffers/protobuf/blob/main/src/README.md

My problem was that I was using their suggest command bazel build :protoc :protobuf, and I didn’t add libprotobuf to the build command. I assume it would build the library if you added that in. But I ended up using CMake to build libprotobuf and protoc. It’s a very simple solution in retrospect, but hopefully it helps anybody else if they come across this problem. It’s also worth noting that their binaries do not include libprotobuf, and only include protoc. So you need to build from source to install libprotobuf on the Jetson as far as I can tell.

1 Like

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