Issue with Setting up ROS package | Missing librclcpp.so

OS: Ubuntu 22.04
ROS2: Humble
RTMaps : v4.12.0

We are having an issue with the following error:

register <</opt/rtmaps/packages/rtmaps_ros2_humble/rtmaps_ros2_humble.pck>>
Error: Unable to load package /opt/rtmaps/packages/rtmaps_ros2_humble/rtmaps_ros2_humble.pck: third party dependencies may be missing (.dll/.so/.dylib files). librclcpp.so: cannot open shared object file: No such file or directory
$ ldd -r /opt/rtmaps/packages/rtmaps_ros2_humble/rtmaps_ros2_humble.pck | grep librclcpp
	librclcpp.so => not found

We tried using the article Trouble registering the RTMaps/ROS bridge
but were still unable to find the cause issue. We believe our installation of our ROS is correct (option 1)following this website: Ubuntu (deb packages) — ROS 2 Documentation: Humble documentation

We are unclear of the approach on option 2
We do not have this package installed but unsure where to get ros-humble-can-msgs

Any guidance would be appreciated. Thank you!

Hello,

In order to find the ROS library you have to run “source /opt/ros/humble/setup.bash” in a terminal an start rtmaps from this terminal. Or you could add this line in “~/.bashrc”.

And it is necessary to do “sudo apt install ros-humble-can-msgs” in order to use the component.

Hi,

Thank you for the insight!

We tried it out, however we get the same error within the RTMaps diagram once we run sudo rtmaps:

We even tried with local_setup and the error still persisted.

$ sudo apt install ros-humble-can-msgs
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ros-humble-can-msgs is already the newest version (2.0.0-4jammy.20241128.005638).
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
minino@minino-HP-ZBook-15-G6:~$ source /opt/ros/humble/setup.bash
minino@minino-HP-ZBook-15-G6:~$ sudo rtmaps
minino@minino-HP-ZBook-15-G6:~$ cat /opt/ros/humble/setup.bash
# copied from ament_package/template/prefix_level/setup.bash
AMENT_SHELL=bash
# source setup.sh from same directory as this file
AMENT_CURRENT_PREFIX=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" && pwd)
# trace output
if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
  echo "# . \"$AMENT_CURRENT_PREFIX/setup.sh\""
fi
. "$AMENT_CURRENT_PREFIX/setup.sh"
minino@minino-HP-ZBook-15-G6:~$ cat /opt/ros/humble/local_setup.bash
# copied from ament_package/template/prefix_level/local_setup.bash
AMENT_SHELL=bash
# source local_setup.sh from same directory as this file
AMENT_CURRENT_PREFIX=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" && pwd)
# trace output
if [ -n "$AMENT_TRACE_SETUP_FILES" ]; then
  echo "# . \"$AMENT_CURRENT_PREFIX/local_setup.sh\""
fi
. "$AMENT_CURRENT_PREFIX/local_setup.sh"
minino@minino-HP-ZBook-15-G6:~$ source /opt/ros/humble/local_setup.bash
minino@minino-HP-ZBook-15-G6:~$ sudo rtmaps

Could you try without “sudo” to run rtmaps? Because if you use sudo the environment variables will not be the same.

That seemed to do the trick! Thank you again!