ToB企服应用市场:ToB评测及商务社交产业平台

标题: 3D slam之liosam应用(1) [打印本页]

作者: 愛在花開的季節    时间: 2024-7-15 22:02
标题: 3D slam之liosam应用(1)
一、算法开始前的准备

第一次使用,先用的是数据包。
数据包使用的设备是:
使用的体系:
参考这里的教程。
在运行
  1. sudo apt-get install libdw-dev
复制代码
出现了在处理时有错误发生:grub-efi-amd64-signed 问题.
是虚拟机问题。

背面换成了暗影精灵9了
一。【代码准备】

  1. mkdir -p ~/liosam_ws/srccd ~/liosam_ws/srcsudo apt-get install -y ros-noetic-robot-localizationsudo apt-get install -y ros-noetic-robot-state-publishersudo add-apt-repository ppa:borglab/gtsam-release-4.0sudo apt install libgtsam-dev libgtsam-unstable-devsudo apt-get install ros-noetic-fake-localizationgit clone https://mirror.ghproxy.com/https://github.com/TixiaoShan/LIO-SAM.git\\imu标定\\https://blog.csdn.net/u012132666/article/details/123235930sudo apt-get install libdw-dev
  2. git clone https://mirror.ghproxy.com/https://github.com/gaowenliang/code_utils.gitgit clone  https://mirror.ghproxy.com/https://github.com/gaowenliang/imu_utils.git
复制代码
【传感器驱动准备】

  1. git clone https://mirror.ghproxy.com/https://github.com/HViktorTsoi/rs_to_velodyne.git
复制代码
二。【编译前修改】

1. code_utils肯定要在 imu_utils之前编译

1.1、修改 imu_utils 包的CMakeLists.txt的32行

  1. catkin_package(CATKIN_DEPENDS code_utils)
复制代码
1.2、修改 imu_utils 包的package.xml的53行

  1. <build_depend>code_utils</build_depend>
  2. <exec_depend>code_utils</exec_depend>
复制代码
1.3、修改 ~/liosam_ws/src/code_utils-master/src/sumpixel_test.cpp 文件的第2行

  1. #include "code_utils/backward.hpp"
复制代码
1.4、安装ceres

(1)、下载ceres源码,不建议下载最新版本,本文下载1.14.0(点击右侧的Releases查看汗青版本)
  1. https://github.com/ceres-solver/ceres-solver
复制代码
(2)、解压压缩包,在终端进入该目次,然后新建build文件夹,并进入build中
  1. tar -zxvf ceres-solver-1.14.0.tar.gz
  2. cd ceres-solver-1.14.0/
  3. mkdir build
  4. cd build/
复制代码
(3)、安装ceres依赖
  1. sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
复制代码
(4)、编译安装
  1. cmake ..
  2. make
  3. sudo make install
复制代码
1.5 code_utils编译出现问题

参考 https://zhuanlan.zhihu.com/p/694439388.
You need to change this in mat_io_test.cpp and sumpixel_test.cpp

1.6 编译rs_to_velodyne-master报错

参考https://blog.csdn.net/abanchao/article/details/123751176
编译rs_to_velodyne-master时,出现以下错误:
  1. /usr/include/pcl-1.10/pcl/point_types.h:574:1: error: ‘plus’ is not a member of ‘pcl::traits’
  2.   574 | POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::CPPFSignature,
  3. /usr/include/pcl-1.10/pcl/point_types.h:588:1: error: ‘plusscalar’ is not a member of ‘pcl::traits’
  4.   588 | POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFRGBSignature,
  5. /usr/include/pcl-1.10/pcl/point_types.h:588:1: error: ‘type’ is not a member of ‘pcl::traits::datatype<pcl::PPFRGBSignature, pcl::fields::f4>::decomposed’ {aka ‘pcl::traits::decomposeArray<float>’}
  6. /usr/include/pcl-1.10/pcl/point_types.h:588:1: error: ‘plusscalar’ is not a member of ‘pcl::traits’
  7.   588 | POINT_CLOUD_REGISTER_POINT_STRUCT (pcl::PPFRGBSignature,
复制代码
在对应程序包的CMakeLists.txt中参加一行代码即可顺利编译。
  1. set(CMAKE_CXX_STANDARD 14)
复制代码
1.7 在编译过程中liosam出现了问题

办理办法,修改文件
第一处:
~/catkin_ws/src/LIO-SAM/include/ 文件夹下的 utility.h 文件,替换此中的 #include <opencv/cv.h> 这一行,改为:
  1. #include <opencv2/imgproc.hpp>
复制代码
第二处:
~/catkin_ws/src/LIO-SAM/ 文件夹下的 CMakeList.txt 文件,替换此中的 set(CMAKE_CXX_FLAGS “-std=c++11”) 这一行,改为:set(CMAKE_CXX_FLAGS “-std=c++14”),而且添加
  1. find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
复制代码
到这里编译应该没有问题了。
【额外的地方】

  1. git clone https://mirror.ghproxy.com/https://github.com/Hinson-A/pcd2pgm_package.git
复制代码
  1. sudo apt-get install ros-noetic-octomap-ros
  2. sudo apt-get install ros-noetic-octomap-server
  3. sudo apt-get install ros-noetic-octomap-rviz-plugins
复制代码
一个可参考的launch文件
  1. <launch>
  2.   <!--启动的节点-->
  3.   <node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
  4.      <!--栅格分辨率-->
  5.     <param name="resolution" value="0.05" />
  6.    
  7.     <!--世界坐标系话题,一般为map-->
  8.     <param name="frame_id" type="string" value="/map" />
  9.     <param name="sensor_model/max_range" value="1000.0" />
  10.     <param name="latch" value="true" />
  11.      <!--截取的三维点云范围-->
  12.     <param name="pointcloud_max_z" value="1.2" />
  13.     <param name="pointcloud_min_z" value="-0.5" />
  14.     <param name="graound_filter_angle" value="3.14" />
  15.    
  16.      <!--订阅的点云消息名称 PointClout2,即上一步发布出来的点云topic-->
  17.      <!-- cloud_in是octomap默认的输入话题,做一下映射-->
  18.     <remap from="/cloud_in" to="/lio_sam/mapping/cloud_registered" />
  19.   </node>
  20.   
  21. </launch>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4