opencv-4.2.0 source-based installation is not used to compile rtabmap_ros

asked 2021-11-25 07:46:37 -0500

Spartan_007 gravatar image

updated 2021-11-28 22:28:01 -0500

Scenario: I am trying to install rtabmap_ros-0.20.7-noetic in ubuntu 20.04. By default it installs opencv-4.2.0. To install opencv extra modules I installed opencv from sources. I followed this guideline. Later, when I go on to compiling rtabmap_ros-0.20.9 noetic, I find the following warnings.

    runtime library [libopencv_freetype.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_fuzzy.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_hdf.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_hfs.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_img_hash.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_line_descriptor.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_optflow.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_phase_unwrapping.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_plot.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_quality.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_reg.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_rgbd.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_saliency.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_shape.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_stereo.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_structured_light.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_superres.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_surface_matching.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_text.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_tracking.so.4.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
  /usr/local/opencv-4.2.0-opt/lib
runtime library [libopencv_videostab.so.4.2] in /usr/lib/x86_64-linux-gnu ...
(more)
edit retag flag offensive close merge delete

Comments

The cleanest way would be to remove opencv system binaries (sudo apt remove libopencv*). This will remove cv_bridge and all ros packages depending on it, so you would have to rebuild cv_bridge and all packages you need depending on it from source (clone them in your catkin workspace). Then make sure to rebuild/install rtabmap library so that it is linking on your opencv version

matlabbe gravatar image matlabbe  ( 2021-11-25 16:56:53 -0500 )edit

Hi Matheu,

Now, those warnings are not coming anymore after removing the cv_bridge and other packages having prebuilt opencv dependencies. However, when I launch rtabmap.launch file, the following errors show up.

double free or corruption (out)
double free or corruption (out)
[rtabmap/rgbd_odometry-2] process has died [pid 181087, exit code -6, cmd /home/anindya/novus_ws/devel/lib/rtabmap_ros/rgbd_odometry rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/depth_registered/image_raw rgb/camera_info:=/camera/rgb/camera_info rgbd_image:=rgbd_image_relay odom:=odom imu:=/imu/data __name:=rgbd_odometry __log:=/home/anindya/.ros/log/ad13b0f2-4e87-11ec-823b-f74e6b2e168b/rtabmap-rgbd_odometry-2.log].
log file: /home/anindya/.ros/log/ad13b0f2-4e87-11ec-823b-f74e6b2e168b/rtabmap-rgbd_odometry-2*.log
[rtabmap/rtabmap-3] process has died [pid 181088, exit code -6, cmd /home/anindya/novus_ws/devel/lib/rtabmap_ros/rtabmap rgb/image:=/camera/rgb/image_rect_color depth/image:=/camera/
Spartan_007 gravatar image Spartan_007  ( 2021-11-26 01:16:33 -0500 )edit

In case important, Currently, I compiled rtabmap_ros-0.20.7-noetic (edited in the first post too). I am using ubuntu-20.04, gcc-10.3.0. System specs: CPU-i7-11375H. The above-mentioned error did not arise earlier for rtabmap-0.20.7-melodic version.

Spartan_007 gravatar image Spartan_007  ( 2021-11-26 01:19:42 -0500 )edit

See step A from this issue to debug "process has died" errors, make sure to copy/paste here the full "backtrace" from gdb.

matlabbe gravatar image matlabbe  ( 2021-11-26 08:24:25 -0500 )edit

Following is the output when I launch only rtabmap node.

It is given in two separate comments.

    Reading symbols from /home/anindya/novus_ws/devel/lib/rtabmap_ros/rtabmap...
(No debugging symbols found in /home/anindya/novus_ws/devel/lib/rtabmap_ros/rtabmap)
Starting program: /home/anindya/novus_ws/devel/lib/rtabmap_ros/rtabmap -d scan_cloud:=/velodyne_points initialpose:=/initialpose grid_map:=/map __name:=rtabmap __log:=/home/anindya/.ros/log/715fc328-4f38-11ec-823b-f74e6b2e168b/rtabmap-rtabmap-1.log
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffd2158700 (LWP 237667)]
[New Thread 0x7fffd1957700 (LWP 237668)]
[New Thread 0x7fffcf156700 (LWP 237669)]
[New Thread 0x7fffca955700 (LWP 237670)]
[New Thread 0x7fffc8154700 (LWP 237671)]
[New Thread 0x7fffc5953700 (LWP 237672)]
[New Thread 0x7fffc3152700 (LWP 237673)]
double free or corruption (out)
Spartan_007 gravatar image Spartan_007  ( 2021-11-27 02:09:55 -0500 )edit

next part

Thread 1 "rtabmap" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50  ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff6193859 in __GI_abort () at abort.c:79
#2  0x00007ffff61fe3ee in __libc_message
    (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff6328285 "%s\n")
    at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007ffff620647c in malloc_printerr
    (str=str@entry=0x7ffff632a670 "double free or corruption (out)") at malloc.c:5347
#4  0x00007ffff6208120 in _int_free
    (av=0x7ffff6359b80 <main_arena>, p=0x55555562d950, have_lock=<optimized out>) at malloc.c:4314
#5  0x00007ffff0e05f61 in g2o::EdgeSE2PointXYCalib::~EdgeSE2PointXYCalib() ()
Spartan_007 gravatar image Spartan_007  ( 2021-11-27 02:12:04 -0500 )edit

last part:

    at /usr/local/lib/libg2o_types_slam2d.so
#6  0x00007ffff0dfab8e in __static_initialization_and_destruction_0(int, int) [clone .constprop.0] ()
    at /usr/local/lib/libg2o_types_slam2d.so
#7  0x00007ffff7fe0b8a in  () at /lib64/ld-linux-x86-64.so.2
#8  0x00007ffff7fe0c91 in  () at /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff7fd013a in  () at /lib64/ld-linux-x86-64.so.2
#10 0x0000000000000007 in  ()
#11 0x00007fffffffcfc4 in  ()
#12 0x00007fffffffcff9 in  ()
#13 0x00007fffffffcffc in  ()
#14 0x00007fffffffd019 in  ()
#15 0x00007fffffffd033 in  ()
#16 0x00007fffffffd042 in  ()
#17 0x00007fffffffd052 in  ()
#18 0x0000000000000000 in  ()
Spartan_007 gravatar image Spartan_007  ( 2021-11-27 02:12:29 -0500 )edit

Hi, I saw the post you had referred to. Then, I reinstalled g2o-20201223_git tag (g2o master branch throws an error as it does not contain a member variable VertexSBAPointXYZ), and gtsam-4.0.3 in debug mode. Then, I installed rtabmap-0.20.7-noetic. Subsequently, I tried to run rtabmap-console with gdb. The outcome is provided here. Following that, I also tried running it with Valgrind. The corresponding output is divided into two consecutive links. (link1, link2)

Please look into it.

Spartan_007 gravatar image Spartan_007  ( 2021-11-28 22:45:25 -0500 )edit