当前位置: 首页 > news >正文

辽阳网站设计中国建设银行的网站.

辽阳网站设计,中国建设银行的网站.,天津做网站都找津坤科技,大型网站开发前端准备一、环境准备与ROS安装 1.1 系统要求与双系统安装 首先,LeGO_LOAM肯定是基于ros进行的,所以我们要装好ubuntu系统,我这里安装的是ubuntu20.04,这是最后一个支持ros的Ubuntu发行版了,ROS Noetic Ninjemys安装的过程我…

一、环境准备与ROS安装

1.1 系统要求与双系统安装

首先,LeGO_LOAM肯定是基于ros进行的,所以我们要装好ubuntu系统,我这里安装的是ubuntu20.04,这是最后一个支持ros的Ubuntu发行版了,ROS Noetic Ninjemys安装的过程我们可以按照ros官网的教程来安装,最好安装比较全的版本。

最好可以去ros官网安装一下,可以让我们更了解ros的发展历程和版本迭代cn/ROS/Installation - ROS Wiki

视频教程推荐:当然,如果你的ubuntu系统还没有装好,我建议去b站看机器人阿杰的视频,他教的双系统安装可以说是非常非常nice,但显卡的驱动也可以不按照他说的必须安装nvidia的,也可以安装软件商店里的。

ros安装好之后,我们要从这里开始复现LeGO_LOAM了,由于各种库文件的版本迭代,会有很多报错,下面的内容,大致包含了在Noetic上的会报的所有错误了。

二、依赖环境配置

LeGO_LOAM本身是利用了一些第三方库来简化代码工作的,比如gtsam,tbb,boost等等,我们要想让代码顺利运行起来,第一步就是要安装好这些第三方库,解决好这个对第三方库的依赖问题。

2.1 基础依赖安装

要安装一些依赖库,用apt安装就可以

sudo apt-get install libboost-all-dev
sudo apt-get install cmake
sudo apt-get install libtbb-dev
sudo apt-get install libparmetis-dev

2.2 GTSAM编译安装

我们还要编译安装gtsam,这是LeGO_LOAM中用于图优化的库,这在LeGO_LOAM中发挥了很重要的作用。随便找一个文件夹,克隆一下gtsam,注意我们安装第三方库的时候,涉及到了两种方法,一种是直接应用apt来安装,另一种就是安装gstsam的方法,从github上把代码克隆下来,然后进行编译安装,但是我们最终都是安装到了系统上,所以当第三方库已经安装完成时,我们可以把刚刚这个临时文件夹删掉,不会影响已经安装的库的使用。

git clone https://github.com/borglab/gtsam.git
mkdir build
cd build
cmake ..
make check (optional, runs unit tests)
make install

然后我们可以克隆LeGO_LOAM库,首先创建一个工作空间,工作空间的名字可以随便起,但是既然是一个工作空间的话,里面一定要有src文件夹,我们在工作空间的src目录中克隆LeGO_LOAM源代码。

mkdir LeGOLAOM_ws
cd LeGOLAOM_ws
mkdir src
cd src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make

catkin_make是编译指令,并且这个编译指令需要在工作空间目录下进行的,这一点一定要注意,而且工作空间下一定要有一个src,legoloam的源代码放在src目录下,才能开始编译(编译一上来就会找src的)

三、LeGO-LOAM源码编译与排错

3.1 创建工作空间

现在我们可以克隆LeGO_LOAM库,首先创建一个工作空间,工作空间的名字可以随便起,但是既然是一个工作空间的话,里面一定要有src文件夹,我们在工作空间的src目录中克隆LeGO_LOAM源代码。

mkdir LeGOLAOM_ws
cd LeGOLAOM_ws
mkdir src
cd src
git clone https://github.com/RobustFieldAutonomyLab/LeGO-LOAM.git
cd ..
catkin_make

catkin_make是编译指令,并且这个编译指令需要在工作空间目录下进行的,这一点一定要注意,而且工作空间下一定要有一个src,legoloam的源代码放在src目录下,才能开始编译(编译一上来就会找src的)

3.2 常见编译错误解决方案

虽然源码已经准备好了,但是在这里进行编译的话,大概率还会报错,反正我是遇到了,第一个是opencv的依赖问题

错误1:OpenCV头文件缺失

现象

opencv/cv.h: No such file or directory

image-20250114171035779.png

解决方案: 我们需要改一下代码里的这一部分,把include/utility.h中的opencv改一下,

// #include <opencv/cv.h>
#include <opencv2/imgproc.hpp>

这样就能找到ubuntu20.04所带的opencv了,这其实是一个版本问题,如果我们使用的是 OpenCV 3.x 或者更高版本就很容易碰见这个问题,<opencv/cv.h> 是一个旧版本的头文件路径,已经被拆分为多个模块化头文件,并且这些头文件存放的位置也发生了变化,所以这里有所改变。

错误2:C++标准版本过低

改完opencv之后并没有完事大吉,当我再次进行编译时,我又遇到了新问题,就是这个关于PCL的报错内容

现象

#error PCL requires C++14 or above

解决方案

这个提示我们可以很明显的看到提示,这里的报错提示说PCL需要c++14或以上,但代码里只支持了C++11,这就是产生错误的原因,所以需要我们改一下,避免PCL出现异常。

# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")

把上面的改成下面的就解决了PCL库的报错问题。

错误3:Boost组件缺失

随后我又遇到了关于Boost的报错,这个意思其实也很明显,主要是说有一些boost的组件找不到,即依赖项找不到,如下图所示

现象

image-20250114200319022.png

解决方案: 找不到这几个东西,那我们就在CMakelists.txt里面改一下,添加一句

find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)

这样find_package就能找到Boost的这些组件,最后链接到代码上去。

然后再进行catkin_make,就能编译成功啦,编译成功之后应该可以在工作空间下看到一个新的devel和build文件夹,这里面有关于编译的所有内容。

image-20250114172306270.png

最后需要进行就是运行代码了,按照github上的教程来就好。

一定要记得在运行前source一下source devel/setup.bash ,当然如果我们觉得每次运行都得重新source很麻烦,可以将这个source指令写入.bashrc中,以后就不用每次都进行source了。写入方式也不难,我们直接编辑.bashrc文件就好。

vim ~/.bashrc
在文件末尾加入下面的代码
source /path/to/your/ros_workspace/devel/setup.bash

关于这个.bashrc文件,它是在每个终端打开时进行自动进行的source,所以我们以后任意打开终端,都不用再source了。如果我们想它在当前终端中立即生效的话,我们需要手动source一下,即

source ~/.bashrc

然后如图所示输入roslaunch指令roslaunch lego_loam run.launch,legolaom就运行起来了。

点击【SLAM经典算法详解】Ubuntu 20.04部署LeGO-LOAM:从环境配置到KITTI适配,解决常见编译错误查看全文

http://www.dtcms.com/a/549548.html

相关文章:

  • 2. WPF程序打包成一个单独的exe文件
  • 东软专业力考试--Java Web 开发基础
  • 8方向控制圆盘View
  • js中Map和对象{}的区别
  • 基于python构建的低温胁迫实验
  • 服装公司网站修改wordpress后台登陆
  • 2025 Avalonia 技术全景:从版本迭代到生产级落地的成熟之路
  • 做网站却不给客户源代码奥迪互动平台
  • python基础一
  • Burp Suite 代理切换插件
  • 怎么做企业网站推广网站推广方案
  • Jaccard相似度:集合相似性的经典度量
  • 十七、STM32的TIM(八)(TIM输入捕获)
  • c语言笔记 格式化输出函数的使用
  • 网络营销网站建设哪家好北京发布重磅消息
  • 网站设计说明书范文WordPress表情包插件
  • 力扣1. 两数之和
  • Trait 对象与动态分发的权衡:Rust 多态性的代价与收益
  • 基于element-ui二次封装后的组件如何在storybook中展示
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十六)集群部署模块——LVS负载均衡
  • C++面向对象与类和对象之旅(上)----C++重要基础入门知识
  • MR30系列分布式I/O在造型机产线的应用
  • 网站建设优化网站排名河北百度seo点击软件
  • 杭州做网站模板网络搭建基础教程
  • 虚拟机的未来:云计算与边缘计算的核心引擎(一)
  • ​​比亚迪秦新能源汽车动力系统拆装与检测实训MR软件介绍​
  • 仓颉编程(21)扩展
  • 网站建设方案书php做旅游网站
  • 强化网站建设和管理东莞企业建站程序
  • [人工智能-大模型-112]:用通俗易懂的语言,阐述代价函数Cost Function(误差函数、偏差函数、距离函数)