berndpfrommer / tagslam_root

root repository for complete tagslam setup
Apache License 2.0
109 stars 42 forks source link

Run quick test and process has died #22

Closed nanzexiaoming closed 7 months ago

nanzexiaoming commented 7 months ago

When I was running a quick test, it seems like the program threw an error before even running the constructor. Here are the logs: a@a-desktop:~/catkin_ws$ roslaunch tagslam tagslam.launch bag:=rospack find tagslam/example/example.bag ... logging to /home/a/.ros/log/f9e29c2c-f105-11ee-8508-b48c9d34eb0d/roslaunch-a-desktop-148735.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.

CLEAR PARAMETERS

PARAMETERS

NODES / tagslam (tagslam/tagslam_node)

auto-starting new master process[master]: started with pid [148750] ROS_MASTER_URI=http://localhost:11311

setting /run_id to f9e29c2c-f105-11ee-8508-b48c9d34eb0d process[rosout-1]: started with pid [148767] started core service [/rosout] process[tagslam-2]: started with pid [148775] [tagslam-2] process has died [pid 148775, exit code -11, cmd /home/a/catkin_ws/devel/lib/tagslam/tagslam_node name:=tagslam log:=/home/a/.ros/log/f9e29c2c-f105-11ee-8508-b48c9d34eb0d/tagslam-2.log]. log file: /home/a/.ros/log/f9e29c2c-f105-11ee-8508-b48c9d34eb0d/tagslam-2*.log ^C[rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done

These are the dependencies, and I haven’t found any obvious errors within the dependencies. a@a-desktop:~/catkin_ws/devel/lib/tagslam$ ldd tagslam_node linux-vdso.so.1 (0x0000ffff80e85000) libtagslam.so => /home/a/catkin_ws/devel/lib/libtagslam.so (0x0000ffff80c2b000) libroscpp.so => /opt/ros/noetic/lib/libroscpp.so (0x0000ffff80a82000) librosconsole.so => /opt/ros/noetic/lib/librosconsole.so (0x0000ffff80a12000) libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff807e6000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff807c2000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff8064f000) /lib/ld-linux-aarch64.so.1 (0x0000ffff80e55000) librosbag_storage.so => /opt/ros/noetic/lib/librosbag_storage.so (0x0000ffff805c3000) libcv_bridge.so => /opt/ros/noetic/lib/libcv_bridge.so (0x0000ffff8058d000) libopencv_calib3d.so.4.2 => /lib/aarch64-linux-gnu/libopencv_calib3d.so.4.2 (0x0000ffff80431000) libopencv_core.so.4.2 => /lib/aarch64-linux-gnu/libopencv_core.so.4.2 (0x0000ffff80184000) libtf.so => /opt/ros/noetic/lib/libtf.so (0x0000ffff8014a000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff80119000) libboost_chrono.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0 (0x0000ffff800fd000) libxmlrpcpp.so => /opt/ros/noetic/lib/libxmlrpcpp.so (0x0000ffff800cc000) libroscpp_serialization.so => /opt/ros/noetic/lib/libroscpp_serialization.so (0x0000ffff800b9000) librostime.so => /opt/ros/noetic/lib/librostime.so (0x0000ffff80085000) libcpp_common.so => /opt/ros/noetic/lib/libcpp_common.so (0x0000ffff80069000) libconsole_bridge.so.0.4 => /lib/aarch64-linux-gnu/libconsole_bridge.so.0.4 (0x0000ffff80054000) libgtsam.so.4 => /lib/aarch64-linux-gnu/libgtsam.so.4 (0x0000ffff7fb7b000) libboost_serialization.so.1.77.0 => /usr/local/lib/libboost_serialization.so.1.77.0 (0x0000ffff7fb29000) libboost_filesystem.so.1.77.0 => /usr/local/lib/libboost_filesystem.so.1.77.0 (0x0000ffff7fafa000) libboost_thread.so.1.77.0 => /usr/local/lib/libboost_thread.so.1.77.0 (0x0000ffff7fad0000) libboost_timer.so.1.77.0 => /usr/local/lib/libboost_timer.so.1.77.0 (0x0000ffff7fab8000) libtbb.so.2 => /lib/aarch64-linux-gnu/libtbb.so.2 (0x0000ffff7fa78000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff7f9cd000) libgomp.so.1 => /lib/aarch64-linux-gnu/libgomp.so.1 (0x0000ffff7f97f000) libboost_thread.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_thread.so.1.71.0 (0x0000ffff7f944000) libboost_filesystem.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0 (0x0000ffff7f91a000) librosconsole_log4cxx.so => /opt/ros/noetic/lib/librosconsole_log4cxx.so (0x0000ffff7f8ec000) librosconsole_backend_interface.so => /opt/ros/noetic/lib/librosconsole_backend_interface.so (0x0000ffff7f8da000) liblog4cxx.so.10 => /lib/aarch64-linux-gnu/liblog4cxx.so.10 (0x0000ffff7f6f4000) libboost_regex.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_regex.so.1.71.0 (0x0000ffff7f5fd000) libclass_loader.so => /opt/ros/noetic/lib/libclass_loader.so (0x0000ffff7f5c2000) libroslib.so => /opt/ros/noetic/lib/libroslib.so (0x0000ffff7f597000) libtinyxml2.so.6 => /lib/aarch64-linux-gnu/libtinyxml2.so.6 (0x0000ffff7f573000) libroslz4.so => /opt/ros/noetic/lib/libroslz4.so (0x0000ffff7f55e000) libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000ffff7f53d000) libopencv_imgcodecs.so.4.2 => /lib/aarch64-linux-gnu/libopencv_imgcodecs.so.4.2 (0x0000ffff7f4e3000) libopencv_imgproc.so.4.2 => /lib/aarch64-linux-gnu/libopencv_imgproc.so.4.2 (0x0000ffff7f14f000) libopencv_features2d.so.4.2 => /lib/aarch64-linux-gnu/libopencv_features2d.so.4.2 (0x0000ffff7f0a2000) libopencv_flann.so.4.2 => /lib/aarch64-linux-gnu/libopencv_flann.so.4.2 (0x0000ffff7f03f000) libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff7f02b000) libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000ffff7f001000) libtf2_ros.so => /opt/ros/noetic/lib/libtf2_ros.so (0x0000ffff7ef40000) libtf2.so => /opt/ros/noetic/lib/libtf2.so (0x0000ffff7eef8000) libboost_serialization.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_serialization.so.1.71.0 (0x0000ffff7eea7000) libboost_timer.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_timer.so.1.71.0 (0x0000ffff7ee8f000) libtbbmalloc.so.2 => /lib/aarch64-linux-gnu/libtbbmalloc.so.2 (0x0000ffff7ee50000) libmetis.so.5 => /lib/aarch64-linux-gnu/libmetis.so.5 (0x0000ffff7ede1000) libboost_chrono.so.1.77.0 => /usr/local/lib/libboost_chrono.so.1.77.0 (0x0000ffff7edc8000) libapr-1.so.0 => /lib/aarch64-linux-gnu/libapr-1.so.0 (0x0000ffff7ed83000) libaprutil-1.so.0 => /lib/aarch64-linux-gnu/libaprutil-1.so.0 (0x0000ffff7ed47000) libicui18n.so.66 => /lib/aarch64-linux-gnu/libicui18n.so.66 (0x0000ffff7ea57000) libicuuc.so.66 => /lib/aarch64-linux-gnu/libicuuc.so.66 (0x0000ffff7e868000) libPocoFoundation.so.62 => /lib/aarch64-linux-gnu/libPocoFoundation.so.62 (0x0000ffff7e6b1000) librospack.so => /opt/ros/noetic/lib/librospack.so (0x0000ffff7e65c000) liblz4.so.1 => /lib/aarch64-linux-gnu/liblz4.so.1 (0x0000ffff7e62e000) libjpeg.so.8 => /lib/aarch64-linux-gnu/libjpeg.so.8 (0x0000ffff7e5de000) libwebp.so.6 => /lib/aarch64-linux-gnu/libwebp.so.6 (0x0000ffff7e57b000) libpng16.so.16 => /lib/aarch64-linux-gnu/libpng16.so.16 (0x0000ffff7e537000) libgdcmMSFF.so.3.0 => /lib/aarch64-linux-gnu/libgdcmMSFF.so.3.0 (0x0000ffff7e2dd000) libtiff.so.5 => /lib/aarch64-linux-gnu/libtiff.so.5 (0x0000ffff7e253000) libIlmImf-2_3.so.24 => /lib/aarch64-linux-gnu/libIlmImf-2_3.so.24 (0x0000ffff7df88000) libgdal.so.26 => /lib/libgdal.so.26 (0x0000ffff7cda2000) libgdcmDSED.so.3.0 => /lib/aarch64-linux-gnu/libgdcmDSED.so.3.0 (0x0000ffff7cc7c000) libactionlib.so => /opt/ros/noetic/lib/libactionlib.so (0x0000ffff7cc4e000) libuuid.so.1 => /lib/aarch64-linux-gnu/libuuid.so.1 (0x0000ffff7cc37000) libcrypt.so.1 => /lib/aarch64-linux-gnu/libcrypt.so.1 (0x0000ffff7cbee000) libexpat.so.1 => /lib/aarch64-linux-gnu/libexpat.so.1 (0x0000ffff7cbb5000) libicudata.so.66 => /lib/aarch64-linux-gnu/libicudata.so.66 (0x0000ffff7b0e6000) librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff7b0ce000) libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000ffff7b05c000) libboost_program_options.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_program_options.so.1.71.0 (0x0000ffff7afc8000) libpython3.8.so.1.0 => /lib/aarch64-linux-gnu/libpython3.8.so.1.0 (0x0000ffff7aa71000) libgdcmDICT.so.3.0 => /lib/aarch64-linux-gnu/libgdcmDICT.so.3.0 (0x0000ffff7a7a7000) libgdcmjpeg8.so.3.0 => /lib/aarch64-linux-gnu/libgdcmjpeg8.so.3.0 (0x0000ffff7a770000) libgdcmjpeg12.so.3.0 => /lib/aarch64-linux-gnu/libgdcmjpeg12.so.3.0 (0x0000ffff7a739000) libgdcmjpeg16.so.3.0 => /lib/aarch64-linux-gnu/libgdcmjpeg16.so.3.0 (0x0000ffff7a702000) libopenjp2.so.7 => /lib/aarch64-linux-gnu/libopenjp2.so.7 (0x0000ffff7a6a0000) libCharLS.so.2 => /lib/aarch64-linux-gnu/libCharLS.so.2 (0x0000ffff7a649000) libjson-c.so.4 => /lib/aarch64-linux-gnu/libjson-c.so.4 (0x0000ffff7a629000) libgdcmIOD.so.3.0 => /lib/aarch64-linux-gnu/libgdcmIOD.so.3.0 (0x0000ffff7a604000) libgdcmCommon.so.3.0 => /lib/aarch64-linux-gnu/libgdcmCommon.so.3.0 (0x0000ffff7a5d1000) libzstd.so.1 => /lib/aarch64-linux-gnu/libzstd.so.1 (0x0000ffff7a52e000) liblzma.so.5 => /lib/aarch64-linux-gnu/liblzma.so.5 (0x0000ffff7a4fa000) libjbig.so.0 => /lib/aarch64-linux-gnu/libjbig.so.0 (0x0000ffff7a4dd000) libHalf.so.24 => /lib/aarch64-linux-gnu/libHalf.so.24 (0x0000ffff7a48a000) libIex-2_3.so.24 => /lib/aarch64-linux-gnu/libIex-2_3.so.24 (0x0000ffff7a45a000) libIlmThread-2_3.so.24 => /lib/aarch64-linux-gnu/libIlmThread-2_3.so.24 (0x0000ffff7a442000) libarmadillo.so.9 => /lib/libarmadillo.so.9 (0x0000ffff7a421000) libpoppler.so.97 => /lib/aarch64-linux-gnu/libpoppler.so.97 (0x0000ffff7a0f0000) libfreexl.so.1 => /lib/aarch64-linux-gnu/libfreexl.so.1 (0x0000ffff7a0d7000) libqhull.so.7 => /lib/aarch64-linux-gnu/libqhull.so.7 (0x0000ffff7a079000) libgeos_c.so.1 => /lib/aarch64-linux-gnu/libgeos_c.so.1 (0x0000ffff7a02b000) libepsilon.so.1 => /lib/aarch64-linux-gnu/libepsilon.so.1 (0x0000ffff7a002000) libodbc.so.2 => /lib/aarch64-linux-gnu/libodbc.so.2 (0x0000ffff79f89000) libodbcinst.so.2 => /lib/aarch64-linux-gnu/libodbcinst.so.2 (0x0000ffff79f62000) libkmlbase.so.1 => /lib/aarch64-linux-gnu/libkmlbase.so.1 (0x0000ffff79f38000) libkmldom.so.1 => /lib/aarch64-linux-gnu/libkmldom.so.1 (0x0000ffff79e97000) libkmlengine.so.1 => /lib/aarch64-linux-gnu/libkmlengine.so.1 (0x0000ffff79e54000) libxerces-c-3.2.so => /lib/aarch64-linux-gnu/libxerces-c-3.2.so (0x0000ffff79ade000) libnetcdf.so.15 => /lib/aarch64-linux-gnu/libnetcdf.so.15 (0x0000ffff799ad000) libhdf5_serial.so.103 => /lib/aarch64-linux-gnu/libhdf5_serial.so.103 (0x0000ffff79601000) libmfhdfalt.so.0 => /lib/libmfhdfalt.so.0 (0x0000ffff795c9000) libdfalt.so.0 => /lib/libdfalt.so.0 (0x0000ffff79511000) libogdi.so.4.1 => /lib/libogdi.so.4.1 (0x0000ffff794e7000) libgif.so.7 => /lib/aarch64-linux-gnu/libgif.so.7 (0x0000ffff794ce000) libgeotiff.so.5 => /lib/aarch64-linux-gnu/libgeotiff.so.5 (0x0000ffff79489000) libcfitsio.so.8 => /lib/aarch64-linux-gnu/libcfitsio.so.8 (0x0000ffff791a1000) libpq.so.5 => /lib/aarch64-linux-gnu/libpq.so.5 (0x0000ffff79144000) libproj.so.15 => /lib/aarch64-linux-gnu/libproj.so.15 (0x0000ffff78e80000) libdapclient.so.6 => /lib/aarch64-linux-gnu/libdapclient.so.6 (0x0000ffff78e32000) libdap.so.25 => /lib/aarch64-linux-gnu/libdap.so.25 (0x0000ffff78ca7000) libspatialite.so.7 => /lib/aarch64-linux-gnu/libspatialite.so.7 (0x0000ffff7876e000) libcurl-gnutls.so.4 => /lib/aarch64-linux-gnu/libcurl-gnutls.so.4 (0x0000ffff786db000) libfyba.so.0 => /lib/aarch64-linux-gnu/libfyba.so.0 (0x0000ffff78677000) libxml2.so.2 => /lib/aarch64-linux-gnu/libxml2.so.2 (0x0000ffff784c1000) libmysqlclient.so.21 => /lib/aarch64-linux-gnu/libmysqlclient.so.21 (0x0000ffff77dad000) libcrypto.so.1.1 => /lib/aarch64-linux-gnu/libcrypto.so.1.1 (0x0000ffff77b1a000) libutil.so.1 => /lib/aarch64-linux-gnu/libutil.so.1 (0x0000ffff77b04000) libblas.so.3 => /lib/aarch64-linux-gnu/libblas.so.3 (0x0000ffff7785a000) liblapack.so.3 => /lib/aarch64-linux-gnu/liblapack.so.3 (0x0000ffff772f9000) libarpack.so.2 => /lib/aarch64-linux-gnu/libarpack.so.2 (0x0000ffff772ac000) libsuperlu.so.5 => /lib/aarch64-linux-gnu/libsuperlu.so.5 (0x0000ffff7723d000) libfreetype.so.6 => /lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000ffff7717e000) libfontconfig.so.1 => /lib/aarch64-linux-gnu/libfontconfig.so.1 (0x0000ffff77129000) liblcms2.so.2 => /lib/aarch64-linux-gnu/liblcms2.so.2 (0x0000ffff770c2000) libnss3.so => /lib/aarch64-linux-gnu/libnss3.so (0x0000ffff76f82000) libsmime3.so => /lib/aarch64-linux-gnu/libsmime3.so (0x0000ffff76f43000) libnspr4.so => /lib/aarch64-linux-gnu/libnspr4.so (0x0000ffff76ef4000) libgeos-3.8.0.so => /lib/aarch64-linux-gnu/libgeos-3.8.0.so (0x0000ffff76d3f000) libltdl.so.7 => /lib/aarch64-linux-gnu/libltdl.so.7 (0x0000ffff76d25000) libminizip.so.1 => /lib/aarch64-linux-gnu/libminizip.so.1 (0x0000ffff76d0b000) liburiparser.so.1 => /lib/aarch64-linux-gnu/liburiparser.so.1 (0x0000ffff76ce0000) libhdf5_serial_hl.so.100 => /lib/aarch64-linux-gnu/libhdf5_serial_hl.so.100 (0x0000ffff76cad000) libsz.so.2 => /lib/aarch64-linux-gnu/libsz.so.2 (0x0000ffff76c9a000) libssl.so.1.1 => /lib/aarch64-linux-gnu/libssl.so.1.1 (0x0000ffff76c00000) libgssapi_krb5.so.2 => /lib/aarch64-linux-gnu/libgssapi_krb5.so.2 (0x0000ffff76ba8000) libldap_r-2.4.so.2 => /lib/aarch64-linux-gnu/libldap_r-2.4.so.2 (0x0000ffff76b44000) libsqlite3.so.0 => /lib/aarch64-linux-gnu/libsqlite3.so.0 (0x0000ffff76a11000) libnghttp2.so.14 => /lib/aarch64-linux-gnu/libnghttp2.so.14 (0x0000ffff769da000) libidn2.so.0 => /lib/aarch64-linux-gnu/libidn2.so.0 (0x0000ffff769ac000) librtmp.so.1 => /lib/aarch64-linux-gnu/librtmp.so.1 (0x0000ffff76980000) libssh.so.4 => /lib/aarch64-linux-gnu/libssh.so.4 (0x0000ffff76904000) libpsl.so.5 => /lib/aarch64-linux-gnu/libpsl.so.5 (0x0000ffff768e3000) libnettle.so.7 => /lib/aarch64-linux-gnu/libnettle.so.7 (0x0000ffff7689d000) libgnutls.so.30 => /lib/aarch64-linux-gnu/libgnutls.so.30 (0x0000ffff766b2000) liblber-2.4.so.2 => /lib/aarch64-linux-gnu/liblber-2.4.so.2 (0x0000ffff76693000) libbrotlidec.so.1 => /lib/aarch64-linux-gnu/libbrotlidec.so.1 (0x0000ffff76678000) libfyut.so.0 => /lib/aarch64-linux-gnu/libfyut.so.0 (0x0000ffff7665c000) libfygm.so.0 => /lib/aarch64-linux-gnu/libfygm.so.0 (0x0000ffff76646000) libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000ffff76620000) libgfortran.so.5 => /lib/aarch64-linux-gnu/libgfortran.so.5 (0x0000ffff764a5000) libnssutil3.so => /lib/aarch64-linux-gnu/libnssutil3.so (0x0000ffff76463000) libplc4.so => /lib/aarch64-linux-gnu/libplc4.so (0x0000ffff7644e000) libplds4.so => /lib/aarch64-linux-gnu/libplds4.so (0x0000ffff7643a000) libaec.so.0 => /lib/aarch64-linux-gnu/libaec.so.0 (0x0000ffff76423000) libkrb5.so.3 => /lib/aarch64-linux-gnu/libkrb5.so.3 (0x0000ffff7633d000) libk5crypto.so.3 => /lib/aarch64-linux-gnu/libk5crypto.so.3 (0x0000ffff762fe000) libcom_err.so.2 => /lib/aarch64-linux-gnu/libcom_err.so.2 (0x0000ffff762ea000) libkrb5support.so.0 => /lib/aarch64-linux-gnu/libkrb5support.so.0 (0x0000ffff762cd000) libsasl2.so.2 => /lib/aarch64-linux-gnu/libsasl2.so.2 (0x0000ffff762a2000) libgssapi.so.3 => /lib/aarch64-linux-gnu/libgssapi.so.3 (0x0000ffff76253000) libunistring.so.2 => /lib/aarch64-linux-gnu/libunistring.so.2 (0x0000ffff760c8000) libhogweed.so.5 => /lib/aarch64-linux-gnu/libhogweed.so.5 (0x0000ffff76082000) libgmp.so.10 => /lib/aarch64-linux-gnu/libgmp.so.10 (0x0000ffff75ffa000) libp11-kit.so.0 => /lib/aarch64-linux-gnu/libp11-kit.so.0 (0x0000ffff75eae000) libtasn1.so.6 => /lib/aarch64-linux-gnu/libtasn1.so.6 (0x0000ffff75e8b000) libbrotlicommon.so.1 => /lib/aarch64-linux-gnu/libbrotlicommon.so.1 (0x0000ffff75e58000) libkeyutils.so.1 => /lib/aarch64-linux-gnu/libkeyutils.so.1 (0x0000ffff75e43000) libheimntlm.so.0 => /lib/aarch64-linux-gnu/libheimntlm.so.0 (0x0000ffff75e29000) libkrb5.so.26 => /lib/aarch64-linux-gnu/libkrb5.so.26 (0x0000ffff75d8d000) libasn1.so.8 => /lib/aarch64-linux-gnu/libasn1.so.8 (0x0000ffff75ce8000) libhcrypto.so.4 => /lib/aarch64-linux-gnu/libhcrypto.so.4 (0x0000ffff75c9f000) libroken.so.18 => /lib/aarch64-linux-gnu/libroken.so.18 (0x0000ffff75c79000) libffi.so.7 => /lib/aarch64-linux-gnu/libffi.so.7 (0x0000ffff75c60000) libwind.so.0 => /lib/aarch64-linux-gnu/libwind.so.0 (0x0000ffff75c27000) libheimbase.so.1 => /lib/aarch64-linux-gnu/libheimbase.so.1 (0x0000ffff75c08000) libhx509.so.5 => /lib/aarch64-linux-gnu/libhx509.so.5 (0x0000ffff75bac000) Please tell me how to modify it so that the program can run on my computer? I’m using Ubuntu 20.04 on ARM with ROS Noetic.Thank you very much

berndpfrommer commented 7 months ago

That's not an easy one. I doubt it's an outright bug in the code, so most likely an environment issue. Can you get a stack trace with gdb? What hardware is that? Jetson? When I get segfaults it's often related to compiling with/without optimization flag -march. Eigen does weird things there. I believe you cannot compile with -march because gtsam is compiled without -march. Check when you compile (--verbose) that there is no -march flag specified. Did you install gtsam from my ppa repo or is that from somewhere else?

nanzexiaoming commented 7 months ago

I followed your tutorial to download and install GTSAM. The GTSAM version should be correct. I have checked the CMakeLists and the compilation output, and I did not find the -march option added. image

I used GDB for debugging and found that the program seems to crash as soon as it starts. This is the output from GDB: GBD

My hardware is the Jetson AGX ORIN.

berndpfrommer commented 7 months ago

Well, not too much to go by. But one thing I didn't catch the first time: you are linking against libboost from /usr/local. That could definitely screw up things because ROS uses boost all over the place, and may be compiled against different header files. On my machine, here is where boost comes from:

 ldd devel/lib/libtagslam.so  | grep -i boost
    libboost_chrono.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_chrono.so.1.71.0 (0x0000713823aee000)
    libboost_filesystem.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 (0x000071382253e000)
    libboost_regex.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 (0x0000713822414000)
    libboost_thread.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 (0x0000713821b9a000)
    libboost_serialization.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_serialization.so.1.71.0 (0x0000713821951000)
    libboost_timer.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_timer.so.1.71.0 (0x0000713821947000)
    libboost_program_options.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_program_options.so.1.71.0 (0x000071381f208000)
nanzexiaoming commented 7 months ago

Yes, I found that my compiled tagslam is linked with both Boost 1.71 and 1.77, which might be the cause of the program crashing. However, I added the following in the CMakeLists of aprilta_ros and tagslam:

set(Boost_INCLUDE_DIR /usr/include)
set(Boost_LIBRARY_DIR /lib/aarch64-linux-gnu)
find_package(Boost 1.71 REQUIRED)

But some Boost libraries still link to 1.77.The quick test still crashes. Here are the modified ldd results:

    libboost_chrono.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0 (0x0000ffff83010000)
    libxmlrpcpp.so => /opt/ros/noetic/lib/libxmlrpcpp.so (0x0000ffff82fdf000)
    libroscpp_serialization.so => /opt/ros/noetic/lib/libroscpp_serialization.so (0x0000ffff82fcc000)
    librostime.so => /opt/ros/noetic/lib/librostime.so (0x0000ffff82f98000)
    libcpp_common.so => /opt/ros/noetic/lib/libcpp_common.so (0x0000ffff82f7c000)
    libconsole_bridge.so.0.4 => /lib/aarch64-linux-gnu/libconsole_bridge.so.0.4 (0x0000ffff82f67000)
    libgtsam.so.4 => /lib/aarch64-linux-gnu/libgtsam.so.4 (0x0000ffff82a8e000)
    libboost_serialization.so.1.77.0 => /usr/local/lib/libboost_serialization.so.1.77.0 (0x0000ffff82a3c000)
    libboost_filesystem.so.1.77.0 => /usr/local/lib/libboost_filesystem.so.1.77.0 (0x0000ffff82a0d000)
    libboost_thread.so.1.77.0 => /usr/local/lib/libboost_thread.so.1.77.0 (0x0000ffff829e3000)
    libboost_timer.so.1.77.0 => /usr/local/lib/libboost_timer.so.1.77.0 (0x0000ffff829cb000)
    libtbb.so.2 => /lib/aarch64-linux-gnu/libtbb.so.2 (0x0000ffff8298b000)
    libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff828e0000)
    libgomp.so.1 => /lib/aarch64-linux-gnu/libgomp.so.1 (0x0000ffff82892000)
    libclass_loader.so => /opt/ros/noetic/lib/libclass_loader.so (0x0000ffff82857000)
    libroslib.so => /opt/ros/noetic/lib/libroslib.so (0x0000ffff8282e000)
    libboost_filesystem.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0 (0x0000ffff82804000)
berndpfrommer commented 7 months ago

Why do you have the modified lib boost under /usr/local?

On Thu, Apr 4, 2024, 12:55 AM nanzexiaoming @.***> wrote:

Yes, I found that my compiled tagslam is linked with both Boost 1.71 and 1.77, which might be the cause of the program crashing. However, I added the following in the CMakeLists of aprilta_ros and tagslam:

set(Boost_INCLUDE_DIR /usr/include) set(Boost_LIBRARY_DIR /lib/aarch64-linux-gnu) find_package(Boost 1.71 REQUIRED)

But some Boost libraries still link to 1.77.The quick test still crashes. Here are the modified ldd results:

libboost_chrono.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0 (0x0000ffff83010000) libxmlrpcpp.so => /opt/ros/noetic/lib/libxmlrpcpp.so (0x0000ffff82fdf000) libroscpp_serialization.so => /opt/ros/noetic/lib/libroscpp_serialization.so (0x0000ffff82fcc000) librostime.so => /opt/ros/noetic/lib/librostime.so (0x0000ffff82f98000) libcpp_common.so => /opt/ros/noetic/lib/libcpp_common.so (0x0000ffff82f7c000) libconsole_bridge.so.0.4 => /lib/aarch64-linux-gnu/libconsole_bridge.so.0.4 (0x0000ffff82f67000) libgtsam.so.4 => /lib/aarch64-linux-gnu/libgtsam.so.4 (0x0000ffff82a8e000) libboost_serialization.so.1.77.0 => /usr/local/lib/libboost_serialization.so.1.77.0 (0x0000ffff82a3c000) libboost_filesystem.so.1.77.0 => /usr/local/lib/libboost_filesystem.so.1.77.0 (0x0000ffff82a0d000) libboost_thread.so.1.77.0 => /usr/local/lib/libboost_thread.so.1.77.0 (0x0000ffff829e3000) libboost_timer.so.1.77.0 => /usr/local/lib/libboost_timer.so.1.77.0 (0x0000ffff829cb000) libtbb.so.2 => /lib/aarch64-linux-gnu/libtbb.so.2 (0x0000ffff8298b000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff828e0000) libgomp.so.1 => /lib/aarch64-linux-gnu/libgomp.so.1 (0x0000ffff82892000) libclass_loader.so => /opt/ros/noetic/lib/libclass_loader.so (0x0000ffff82857000) libroslib.so => /opt/ros/noetic/lib/libroslib.so (0x0000ffff8282e000) libboost_filesystem.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0 (0x0000ffff82804000)

— Reply to this email directly, view it on GitHub https://github.com/berndpfrommer/tagslam_root/issues/22#issuecomment-2036189795, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPLK2TIG4KO4ILOVNSN4DDY3TML7AVCNFSM6AAAAABFTUXKXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZWGE4DSNZZGU . You are receiving this because you commented.Message ID: @.***>

nanzexiaoming commented 7 months ago

I configured an environment with Boost 1.77 in order to install ORBslam3

Why do you have the modified lib boost under /usr/local? On Thu, Apr 4, 2024, 12:55 AM nanzexiaoming @.> wrote: Yes, I found that my compiled tagslam is linked with both Boost 1.71 and 1.77, which might be the cause of the program crashing. However, I added the following in the CMakeLists of aprilta_ros and tagslam: set(Boost_INCLUDE_DIR /usr/include) set(Boost_LIBRARY_DIR /lib/aarch64-linux-gnu) find_package(Boost 1.71 REQUIRED) But some Boost libraries still link to 1.77.The quick test still crashes. Here are the modified ldd results: libboost_chrono.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0 (0x0000ffff83010000) libxmlrpcpp.so => /opt/ros/noetic/lib/libxmlrpcpp.so (0x0000ffff82fdf000) libroscpp_serialization.so => /opt/ros/noetic/lib/libroscpp_serialization.so (0x0000ffff82fcc000) librostime.so => /opt/ros/noetic/lib/librostime.so (0x0000ffff82f98000) libcpp_common.so => /opt/ros/noetic/lib/libcpp_common.so (0x0000ffff82f7c000) libconsole_bridge.so.0.4 => /lib/aarch64-linux-gnu/libconsole_bridge.so.0.4 (0x0000ffff82f67000) libgtsam.so.4 => /lib/aarch64-linux-gnu/libgtsam.so.4 (0x0000ffff82a8e000) libboost_serialization.so.1.77.0 => /usr/local/lib/libboost_serialization.so.1.77.0 (0x0000ffff82a3c000) libboost_filesystem.so.1.77.0 => /usr/local/lib/libboost_filesystem.so.1.77.0 (0x0000ffff82a0d000) libboost_thread.so.1.77.0 => /usr/local/lib/libboost_thread.so.1.77.0 (0x0000ffff829e3000) libboost_timer.so.1.77.0 => /usr/local/lib/libboost_timer.so.1.77.0 (0x0000ffff829cb000) libtbb.so.2 => /lib/aarch64-linux-gnu/libtbb.so.2 (0x0000ffff8298b000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff828e0000) libgomp.so.1 => /lib/aarch64-linux-gnu/libgomp.so.1 (0x0000ffff82892000) libclass_loader.so => /opt/ros/noetic/lib/libclass_loader.so (0x0000ffff82857000) libroslib.so => /opt/ros/noetic/lib/libroslib.so (0x0000ffff8282e000) libboost_filesystem.so.1.71.0 => /lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0 (0x0000ffff82804000) — Reply to this email directly, view it on GitHub <#22 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPLK2TIG4KO4ILOVNSN4DDY3TML7AVCNFSM6AAAAABFTUXKXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZWGE4DSNZZGU . You are receiving this because you commented.Message ID: @.>

berndpfrommer commented 7 months ago

Well, can you try first to uninstall (or temporarily move out of the way) the boost library under /usr/local so at least we know tagslam works with the standard boost library? If you then build tagslam, it should only link against the standard libboost. Then install your boost library under /usr/local (without recompiling tagslam). Does "ldd" still show tagslam then linking against /usr/local ? Can you play with LD_LIBRARY_PATH to get it to not link against libboost in /usr/local/? I feel this is not really a tagslam specific problem, and I'm not really an expert in cmake and library conflict issues.

nanzexiaoming commented 7 months ago

Well, can you try first to uninstall (or temporarily move out of the way) the boost library under /usr/local so at least we know tagslam works with the standard boost library? If you then build tagslam, it should only link against the standard libboost. Then install your boost library under /usr/local (without recompiling tagslam). Does "ldd" still show tagslam then linking against /usr/local ? Can you play with LD_LIBRARY_PATH to get it to not link against libboost in /usr/local/? I feel this is not really a tagslam specific problem, and I'm not really an expert in cmake and library conflict issues.

Thank you very much! After completely removing all Boost libraries and re-downloading the appropriate version via apt-get, the program is now running smoothly