- hdl_graph_slam
程序编译可以通过,但是一执行到图优化部分程序就崩溃
failed to find transform between base_link and velodyne
*** Error in `/opt/ros/kinetic/lib/nodelet/nodelet': malloc(): memory corruption: 0x00007f508046a560 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7f50d70ff7f5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8215e)[0x7f50d710a15e]
/lib/x86_64-linux-gnu/libc.so.6(__libc_malloc+0x54)[0x7f50d710c1d4]
/usr/lib/x86_64-linux-gnu/libpcl_common.so.1.7(_ZN5Eigen8internal14aligned_mallocEm+0x9)[0x7f50c4349c49]
/home/sundong/exploring/hdl_localization/install_isolated/lib//libhdl_graph_slam_nodelet.so(_ZN14hdl_graph_slam9GraphSLAM18add_se3_plane_edgeEPN3g2o9VertexSE3EPNS1_11VertexPlaneERKN5Eigen6MatrixIdLi4ELi1ELi0ELi4ELi1EEERKNS7_IdLin1ELin1ELi0ELin1ELin1EEE+0x3f)[0x7f50ac93b9ef]
/home/sundong/exploring/hdl_localization/install_isolated/lib//libhdl_graph_slam_nodelet.so(_ZN14hdl_graph_slam19HdlGraphSlamNodelet17flush_floor_queueEv+0x362)[0x7f50ac900182]
/home/sundong/exploring/hdl_localization/install_isolated/lib//libhdl_graph_slam_nodelet.so(_ZN14hdl_graph_slam19HdlGraphSlamNodelet27optimization_timer_callbackERKN3ros14WallTimerEventE+0x145)[0x7f50ac9379a5]
/opt/ros/kinetic/lib/libroscpp.so(_ZN3ros12TimerManagerINS_8WallTimeENS_12WallDurationENS_14WallTimerEventEE18TimerQueueCallback4callEv+0x15d)[0x7f50d858414d]
/opt/ros/kinetic/lib/libroscpp.so(_ZN3ros13CallbackQueue9callOneCBEPNS0_3TLSE+0x4b0)[0x7f50d85b69e0]
/opt/ros/kinetic/lib/libroscpp.so(_ZN3ros13CallbackQueue7callOneENS_12WallDurationE+0x2e4)[0x7f50d85b7214]
/opt/ros/kinetic/lib/libnodeletlib.so(_ZN7nodelet6detail13CallbackQueue7callOneEv+0x78)[0x7f50d8ce51b8]
/opt/ros/kinetic/lib/libnodeletlib.so(_ZN7nodelet6detail20CallbackQueueManager12workerThreadEPNS1_10ThreadInfoE+0x197)[0x7f50d8ce6e57]
/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.58.0(+0x115d5)[0x7f50d66125d5]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f50d63eb6ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f50d718f4dd]
======= Memory map: ========
00400000-0040e000 r-xp 00000000 103:08 2101798 /opt/ros/kinetic/lib/nodelet/nodelet
0060d000-0060e000 r--p 0000d000 103:08 2101798 /opt/ros/kinetic/lib/nodelet/nodelet
分析了一下原因,可能是g2o装的有问题,因为我是源码编译安装的,所以可能版本不适配,于是删掉g2o
sudo rm -r /usr/local/include/g2o
sudo rm -r /usr/local/lib/libg2o*
sudo rm -r /usr/local/bin/g2o*
用ubuntu的命令行安装
sudo apt-get install ros-kinetic-geodesy ros-kinetic-pcl-ros ros-kinetic-nmea-msgs ros-kinetic-libg2o
问题解决