关于PCL和Ceres Solver的安装

众所周知最近在和工友搞slam,好家伙工友m1版的mac+虚拟机跑ros(其实一开始在英伟达的xavier上面跑来着,无奈空间不够,寄了),总之就是大概一周内都在调试(断断续续的那种),今天是工作日,我也实在看不下去了,也投入到了这个令人头秃的工作中,事实证明这个东西是真的熬人。
    一开始跑的fast-lio,是雷达+imu的slam框架,在最后一步的雷达和imu的配准的时候有一些超过了我和工友能力范围的步骤(搞不几米了),虽然这样,但是忙了这么久了,有点难过,后来找了找有没有不用imu的框架,然后就有了这篇文章,但是我有个疑惑的地方,我个人感觉mid-40雷达自己是带有imu的,因为在驱动里面我找到了这样的开关,以及在建图的过程中下面车辆微小的动作也可以在图中有体现,我觉得应该是有imu的。
emmmm,没有imu,无妨我们有外置的,有空加一个上去
这篇文章主要是展示使用,安装过程中的一些坑也会说明。
先看看结果:
loam-livox是用于livox 激光雷达的稳健、低漂移和实时里程计和测绘软件包,是专为大规模工业用途而设计的低成本和高性能激光雷达。
该loam 算法仅使用一个 livox mid-40 单元,没有融合其他传感器如 imu、gps 或摄像头。通过运动补偿机制进行连续扫描匹配,从而实现 lidar位姿的实时解算(即测距)。有了lidar位姿, 所有lidar测量的点云就可以投影到同一个全局坐标系中, 得到环境的三维地图。为提升算法性能和可靠性,一系列核心问题得以解决,包括有限视场下的特征提取和筛选、杂点剔除、移动物体过滤以及帧内运动补偿。该算法的测距和建图部分均可以同时在macbook上以 20 hz 的频率实时运行(工友的本子没有跑起来)。
官方测试的是ubuntu16,18的版本(64bit),我这里使用的是20.04.
记得安装的时候替换里面的xxx,第二个是我的安装命令。
sudo apt-get install ros-xxx-cv-bridge ros-xxx-tf ros-xxx-message-filters ros-xxx-image-transportsudo apt-get install ros-noetic-cv-bridge ros-noetic-tf ros-noetic-message-filters ros-noetic-image-transport  
关于pcl和ceres solver的安装,你可以看下篇文章,注意pcl需要安装1.9的版本。
如果你使用的是mid-100的高端货,需要在ros的驱动包里面设置这个参数
cd ~/xxxx/src git clone https://github.com/hku-mars/loam_livox.git cd ../ catkin_make source ~/xxxx/devel/setup.bash  
xxxx是你自己的目录,按部就班的执行就好
那么我敢打包票,你会遇到一个opencv的报错问题,无妨~我们已经解决了。
有的人说要把这里的opencv版本号改了,其实不用
在源码的文件夹里面修改这个文件为
#include  
其实就是opencvapi的变动
cap.set(cv::cap_prop_settings, 1); // opens camera properties dialog cap.set(cv::cap_prop_frame_width, 320); cap.set(cv::cap_prop_frame_height, 240);
这个里面修改三个文件,此时保存编译
至少里面的这些东西都不报错,就是都安装ok
当然下面给的是安装opencv的命令:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-devsudo apt-get install libgtk2.0-devsudo apt-get install pkg-configsudo apt install build-essential cmake git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-devmkdir ~/opencv_build && cd ~/opencv_buildgit clone https://github.com/opencv/opencv.gitgit clone https://github.com/opencv/opencv_contrib.gitcd ~/opencv_build/opencvmkdir -p build && cd buildcmake -d cmake_build_type=release -d cmake_install_prefix=/usr/local -d install_c_examples=on -d install_python_examples=on -d opencv_generate_pkgconfig=on -d opencv_extra_modules_path=~/opencv_build/opencv_contrib/modules -d build_examples=on ..make -j8sudo make install  
安装
pkg-config --modversion opencv4  
验证
roslaunch loam_livox livox.launchroslaunch livox_ros_driver livox_lidar.launch  
先运行第一个节点,启动接收和建图的线程,然后第一个,雷达开始启动。
建图的时候,室内还是算了,雷达一扫百米,室内实在是憋屈啊。在室外测试,因为雷达本身的范围就很大了,这里也不就建议不停的旋转雷达,可以多绕一圈来补充特征点,以及就是要匀速走直线,拐弯也要平缓,不能速度突变。


目前在目标识别领域的主流算法分析
AD8302幅相测量芯片的功能特点及典型应用介绍
受惠晶片,三星电子Q3业绩创新高,计划明年继续扩产DRAM
海尔卡奥斯在“人单合一”模式下孕育新物种
E4405B频谱分析仪自校准失败,本振失锁维修
关于PCL和Ceres Solver的安装
关于丝印的资料
自动驾驶技术对连接器提出了更高的要求
新方法可像拼插积木一样制造机器人
谷歌公开歌自研Fuchsia系统的源代码
国内首创!商汤科技携手赛诺菲打造实体器官移植术后风险预测系统
RT-Thread BK7252麻雀一号开发板
【番外篇】WSL2下的usb设备使用
医疗机器人降低医护人员感染风险
飞毛腿电池和品胜电池哪个质量好
交流电机是有刷还是无刷 交流电机的优缺点及保养周期
网络故障使用Ping命令的注意问题分析
瞬变抑制二极管 SMDJ6.0A 单向 6V
MBK热成像CMOS工艺测温传感器创新真空工艺技术
微软放弃智能手表是怎样的选择?