lidar_align激光雷达IMU标定编译

  • Post author:
  • Post category:其他

看了好几篇文章,按其他文章做的还是有报错,继续搜报错才完全解决问题,在此先将流程写一下。

sudo apt-get install libnlopt-dev

mkdir -p lidar_align_ws/src
cd lidar_align_ws/src
git clone https://github.com/ethz-asl/lidar_align
cd ..
catkin_make

报错,将 lidar_align 文件夹下的 NLOPTConfig.cmake 复制到 ROS工作空间lidar_align_ws/src路径下面,再次编译

报错,输入以下命令

//依次运行以下指令
sudo mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak

sudo mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak

sudo ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h

 sudo ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h

 catkin_make

成功编译

应该还要改接口,但是我暂时没有改。

在此描述一下编译经历。

ubuntu16.04 lidar_align实现三维激光雷达和Imu联合标定_berry丶的博客-CSDN博客

首先查看的该链接教程,结果他完成下面一步就成功了

解决办法:
将 lidar_align 文件夹下的 NLOPTConfig.cmake 复制到 ROS工作空间lidar_align_ws/src路径下面,再次编译

编译完成

然后我的有报错

[ 16%] Building CXX object lidar_align/CMakeFiles/lidar_align.dir/src/loader.cpp.o
In file included from /usr/include/flann/util/serialization.h:9:0,
                 from /usr/include/flann/util/matrix.h:35,
                 from /usr/include/flann/flann.hpp:41,
                 from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
                 from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
                 from /home/cyp/lidar_align_ws/src/lidar_align/include/lidar_align/sensors.h:8,
                 from /home/cyp/lidar_align_ws/src/lidar_align/include/lidar_align/loader.h:7,
                 from /home/cyp/lidar_align_ws/src/lidar_align/src/loader.cpp:5:
/usr/include/flann/ext/lz4.h:196:57: error: conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’
 typedef struct { long long table[LZ4_STREAMSIZE_U64]; } LZ4_stream_t;
                                                         ^~~~~~~~~~~~
In file included from /opt/ros/melodic/include/roslz4/lz4s.h:38:0,
                 from /opt/ros/melodic/include/rosbag/stream.h:46,
                 from /opt/ros/melodic/include/rosbag/chunked_file.h:46,
                 from /opt/ros/melodic/include/rosbag/bag.h:41,
                 from /home/cyp/lidar_align_ws/src/lidar_align/src/loader.cpp:2:
/usr/include/lz4.h:196:57: note: previous declaration as ‘typedef struct LZ4_stream_t LZ4_stream_t’
 typedef struct { long long table[LZ4_STREAMSIZE_U64]; } LZ4_stream_t;
                                                         ^~~~~~~~~~~~
In file included from /usr/include/flann/util/serialization.h:9:0,
                 from /usr/include/flann/util/matrix.h:35,
                 from /usr/include/flann/flann.hpp:41,
                 from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
                 from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
                 from /home/cyp/lidar_align_ws/src/lidar_align/include/lidar_align/sensors.h:8,
                 from /home/cyp/lidar_align_ws/src/lidar_align/include/lidar_align/loader.h:7,
                 from /home/cyp/lidar_align_ws/src/lidar_align/src/loader.cpp:5:
/usr/include/flann/ext/lz4.h:249:72: error: conflicting declaration ‘typedef struct LZ4_streamDecode_t LZ4_streamDecode_t’
 edef struct { unsigned long long table[LZ4_STREAMDECODESIZE_U64]; } LZ4_streamDecode_t;
                                                                     ^~~~~~~~~~~~~~~~~~
In file included from /opt/ros/melodic/include/roslz4/lz4s.h:38:0,
                 from /opt/ros/melodic/include/rosbag/stream.h:46,
                 from /opt/ros/melodic/include/rosbag/chunked_file.h:46,
                 from /opt/ros/melodic/include/rosbag/bag.h:41,
                 from /home/cyp/lidar_align_ws/src/lidar_align/src/loader.cpp:2:
/usr/include/lz4.h:249:72: note: previous declaration as ‘typedef struct LZ4_streamDecode_t LZ4_streamDecode_t’
 edef struct { unsigned long long table[LZ4_STREAMDECODESIZE_U64]; } LZ4_streamDecode_t;
                                                                     ^~~~~~~~~~~~~~~~~~
lidar_align/CMakeFiles/lidar_align.dir/build.make:110: recipe for target ‘lidar_align/CMakeFiles/lidar_align.dir/src/loader.cpp.o’ failed
make[2]: *** [lidar_align/CMakeFiles/lidar_align.dir/src/loader.cpp.o] Error 1
CMakeFiles/Makefile2:510: recipe for target ‘lidar_align/CMakeFiles/lidar_align.dir/all’ failed
make[1]: *** [lidar_align/CMakeFiles/lidar_align.dir/all] Error 2
Makefile:140: recipe for target ‘all’ failed
make: *** [all] Error 2
Invoking “make -j12 -l12” failed

然后参考https://blog.csdn.net/weixin_42141088/article/details/118000544解决问题。


版权声明:本文为m0_57791050原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。