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

liosam复现

写在前面:


本机系统ubuntu22.04+docker+nvidia docker的环境
本机系统已经安装好nvidia驱动和cuda

使用liosam提供的镜像在22.04下实在是无法兼容。
所以在rosnoetic(ubuntu20.04)下进行配置,本教程中rosnoetic:v3.2是在docker hub(https://hub.docker.com/)上pull的ros noetic的官方镜像,增加了换源,安装了pcl库,opencv库等操作。


核心步骤


docker run --init -it -d --gpus all --runtime=nvidia -v /home:/home -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --name envlio rosnoetic:v3.2 /bin/bash

apt-get install -y ros-noetic-robot-state-publisher ros-noetic-robot-localization ros-noetic-rviz

apt-get install -y ros-noetic-xacro

add-apt-repository ppa:borglab/gtsam-release-4.2

apt-get install libgtsam-dev libgtsam-unstable-dev

修改代码:

Step 1: Configure the utility.h to use

#include <opencv2/opencv.hpp> instead of #include <opencv/cv.h>

Step 2: Configure the utility.h to use

#include <opencv2/opencv.hpp> 移动到所有pcl库的后方

Step 3: Configure CMakeLists.txt to use

set(CMAKE_CXX_FLAGS "-std=c++14") instead of set(CMAKE_CXX_FLAGS "-std=c++11")

With these 3 modifications, LIO-SAM is able to be installed on Ubuntu 20.04 and ROS Noetic. You may try it out.

然后就可以catkin_make通过了

apt-get install -y x11-xserver-utils x11-apps

验证x11:xclock

apt-get install -y mesa-utils

验证:glxinfo | grep "OpenGL"

error: ‘class std::unordered_map’ has no member named ‘serialize’

原因:PCl库依赖的flann与Opencv冲突。opencv头文件中的一些宏定义和flann库中的冲突

解决:保证pcl库中依赖的flann在opencv头文件之前先包含进去。我这里是把opencv的头文件放在PCL库之后就解决 了
 

prework

dockerhub的镜像不好拉取,可以配置dockerhub的阿里云镜像:

登录阿里云控制台的步骤如下:

1. 访问阿里云官网

打开浏览器并访问阿里云官网:https://www.aliyun.com

2. 点击“登录”

在官网主页的右上角,点击“登录”按钮。

3. 输入账号信息

您可以使用阿里云账号、邮箱、手机号或淘宝账号登录。如果没有账号,可以点击“免费注册”进行注册。

4. 访问控制台

成功登录后,页面右上角的用户名,用户名附近有个“控制台”,点击“控制台”

5. 进入容器镜像服务

在阿里云控制台中,按照以下步骤操作:

在搜索框中输入“容器镜像服务”,并点击搜索结果中的“容器镜像服务”。

6. 获取镜像加速器地址

在“容器镜像服务”页面,找到并选择左侧菜单中的“镜像加速器”。在此页面,您将看到分配给您的镜像加速器地址。

1. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2. 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://ye9piga6.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker
 

gitclone拉取大的仓库
git clone依旧报错,如何最大限度的减少git clone的下载量

4. 仅克隆仓库的部分内容

如果只需要仓库中的特定目录或文件,可以使用 sparse-checkout。以下是步骤:

  1. 克隆仓库,但不检出文件:

sh

git clone --no-checkout https://github.com/TixiaoShan/LIO-SAM.git

cd LIO-SAM

初始化 sparse-checkout 并设置需要的目录或文件:

sh

git sparse-checkout init --cone

git sparse-checkout set <path/to/directory_or_file>

更新工作树以检出指定的目录或文件:

sh

git checkout master

更新 sparse-checkout 配置以包括所有文件:

要拉取 master 分支的全部文件,可以修改 sparse-checkout 配置以包含所有内容:

sh

git sparse-checkout set --no-cone

echo "/*" > .git/info/sparse-checkout

更新工作树以检出所有文件:

sh

git read-tree -mu HEAD

http://www.lryc.cn/news/401755.html

相关文章:

  • Flutter实战小案例
  • uniapp转小程序,小程序转uniapp方法
  • WPF中Frame
  • 大数据基础:Doris重点架构原理
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • k8s核心操作_存储抽象_K8S中使用ConfigMap抽取配置_实现配置热更新---分布式云原生部署架构搭建032
  • 【前端】SpringBootWeb 篇-入门了解 Spring Cache、Spring Task与WebSocket 框架
  • 应用最优化方法及MATLAB实现——第4章代码实现
  • 搜维尔科技:Riablo提供一种创新的康复解决方案,通过激活本体感觉,并通过视听反馈促进神经肌肉的训练。
  • NodeJS技巧:在循环中管理异步函数的执行次数
  • debian 实现离线批量安装软件包
  • 远程开机准备工作
  • PGCCC|【PostgreSQL】PCA+PCP+PCM等IT类认证申报个税退税指南
  • 让AI语言模型自由飞翔:LangChain框架的奇妙世界
  • solidity基础语法(以太坊solidity合约)
  • 【机器学习实战】电力需求预测挑战赛 Datawhale AI 夏令营 task2
  • 【设计模式】【创建型模式】【02工厂模式】
  • FPGA设计中的流水线 -分割大的计算电路可以更快的处理数据。
  • GNU/Linux - U-BOOT的GPIO command
  • 35.UART(通用异步收发传输器)-RS232(2)
  • OpenLayers学习笔记-点位聚合
  • flutter实现语言的国际化
  • 服务端正常启动了,但是客户端请求不到
  • 鸿蒙开发 -本地数据库操作
  • 主机安全-进程、命令攻击与检测
  • FPGA FIR fdatool filter designer MATLAB
  • 水表数字识别2:Pytorch DBNet实现水表数字检测(含训练代码和数据集)
  • Windows 点云生成二维栅格图 [附C++完整代码实现]
  • SpringBoot结合ip2region实现博客评论显示IP属地
  • 设计模式使用场景实现示例及优缺点(行为型模式——策略模式)