Fast Livo2配置指南-软件篇

Fast Livo2配置指南

写在前面

最近有一个实时重建的任务,任务的目的大概是希望可以在相机移动的过程中一边走一边把重建的结果绘制出来。一边走一边建图的这个东西叫做slam,而重建贴图之前用的比较多的是mesh,现在用的比较多的则是3DGS,也就是用高斯小球来进行表示。我在B站上看到了两个比较理想的效果,第一个效果是19年的工作,是在海底进行的重建。另外一个是对于济南的大明湖进行重建,并且可以在大明湖的这个场景中进行游戏的开发,他这个重建的场景是可以导入ue这个引擎中的。

视觉惯性-压力SLAM:水下考古遗址在线稠密三维重建_哔哩哔哩_bilibili

画面接近现实!当我把济南5A景区做进了游戏!高斯模型UE5技术演示 3DGS结合人工智能_哔哩哔哩_bilibili

基于上面两个东西,我找到了第二个场景中使用到的设备,这个设备是一个手持的激光扫描仪,满足我们对于低功耗的需求,请看这里的激光扫描仪,位置信息通过gps进行提供,另外找个扫描之后还提供了专业的处理软件lcc studio,通过lcc studio完成3D GS的重建,重建的结果可以通过浏览器进行查看或者是通过unity进行编辑。

硬件和软件的介绍参考这里:[支持-其域创新-三维重建-智能空间计算-手持SLAM](https://cdn-buklcc1.xgrids.cloud/help/1.9.1/Lixel CyberColor Studio用户手册——v1.9.1.pdf)

image-20251212100126422

另外是设备方面,现在这里清楚之后可以明白的是,首先视觉相机获得彩色图像、激光相机获得深度信息、imu这个设备用于获得相机的位置和姿态信息,这个信息是可以通过相机和imu单元的相对位置信息来进行计算的,计算的过程如下。

image-20251212103048381

对这段代码进行详细的解读:

w:world,世界坐标系(比如实验室固定的基准坐标)

cam:camera,相机坐标系

imu:IMU 坐标系(惯导的坐标)

由于公式显示不是很全,这里我直接将答案放在这里:
image-20251212105136868

image-20251212105149670

大概意思了解之后,也知道了效果是如何实现的,重新阅读水下重建的文章,会发现他这个轨迹是离线计算出来的,计算完轨迹之后大导入ros系统,完成重建,其实看到的三维重建的结果相当于只是稠密点云,稠密的点云没有经过渲染这样,右侧是稠密的点云,用声纳应该也能得到类似的效果,但是船载的声纳有个缺点是只能向下扫描。

image-20251212105909170

只用二维图像建模:ContextCapture Center (smart3D)手机拍照三维建模教程_哔哩哔哩_bilibili

Ubuntu系统安装

ROS是需要跑在ubuntu系统下的,我参考的视频里面使用的版本是20.04,但是目前ubuntu官网的长期支持版本是ubuntu24.04,所以这里我直接使用的官网的长期支持版本,我使用的设备包含了两块硬盘,一块固态和一块机械,并且这个电脑上有一块3090的GPU。

首先是启动盘的制作,启动盘制作使用的是 Rufus,镜像下载的地址是这里:Ubuntu系统下载 | Ubuntu

我这里直接使用的是最新版本,如下所示:

image-20251212151136065

烧录镜像非常简单,直接启动软件之后选择下载好的iso文件烧录即可。

烧录完成之后u盘插入电脑开始做系统即可,我的分区方案是这个。

efi系统分区:主分区:SSD硬盘:500MB

swap分区(交换空间):主分区:SSD硬盘:16GB内存至少分配8GB(我分配的16GB)

ext4分区:挂载点/:主分区:SSD硬盘:SSD内全部剩余空间

ext4分区:挂载点/home:主分区:机械硬盘:机械硬盘全部空间

前期配置

系统启动之后,我们需要进行一些前面的配置,为了下载速度能够快一些,我这里先把软件的源改成国内。

image-20251212153600752

安装完了之后完了方便我们后面执行指令,这里需要安装一下oh my zsh,这个终端相对于原始的终端有自动补全的功能。

安装过程参考这里:ubuntu 24.04 安装zsh以及oh-my-zsh_ubuntu24.04 zsh-优快云博客

另外为了方便github国内加速,需要安装一下fastgithub:linux下github全局加速——fastgithub - 工程师焱记 - 博客园

安装git和代码编辑器,使用下面的指令:

sudo apt update
sudo apt install vim
sudo apt install zsh git -y

安装ros1

ros是机器人操作系统的简写,这个可以帮助我们看机器人运行的轨迹以及对数据的收发进行模型。

由于我这里使用的是ubuntu的24.04,所以安装 ros1的时候要使用一些特殊手段,如下所示。

先建立两个文件,分别是install.shclean.sh,文件的内容如下。

install.sh

#!/usr/bin/bash
# 作者:韩会会-QDFZZ.🔰
# 功能:一个在Ubuntu 24.04.2 LTS 上强制安装 ROS noetic的安装脚本

# 安装ros-noetic-desktop-ful的必要仓库,生成/etc/apt/sources.list.d/ros-for-jammy-ubuntu-noble-noble.sources
sudo add-apt-repository ppa:ros-for-jammy/noble -y

# 添加软件源
echo "deb [signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ros-latest.list		# 安装ros-noetic-navigation等ROS软件包必备
echo "deb http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee /etc/apt/sources.list.d/focal.list		# 安装ROS Noetic依赖包必备

# 添加密钥文件
sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg		# 必备
# sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo gpg --dearmor -o /usr/share/keyrings/ros-noetic-keyring.gpg	# 可要可不要
# curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -	# 已过时。可要可不要

# 添加Focal源优先级设置
echo "Package: *
Pin: release n=focal
Pin-Priority: 100" | sudo tee /etc/apt/preferences.d/focal-pin

# 安装ros-noetci-desktop-full(完整桌面版)
sudo apt update
sudo apt install ros-noetic-desktop-full -y		
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc # 将这句source追加到~/.bashrc文件末尾
source ~/.bashrc

clean.sh的内容如下

#!/usr/bin/env bash
# 作者:韩会会-QDFZZ.🔰
# 功能:清理 install.sh 对 Ubuntu 24.04 系统所做的 ROS Noetic 安装相关修改(APT层面)
set -e
echo "🧹 正在清理 ROS Noetic 安装脚本对系统做的修改..."
# 删除添加的 source 相关文件
sudo rm -f /etc/apt/sources.list.d/focal.list
sudo rm -f /etc/apt/sources.list.d/ros-latest.list
sudo rm -f /etc/apt/sources.list.d/ros-for-jammy-ubuntu-noble-noble.sources
# 删除 keyring 和 apt-key 添加的 key
sudo rm -f /usr/share/keyrings/ros-archive-keyring.gpg
sudo rm -f /usr/share/keyrings/ros-noetic-keyring.gpg
# 删除 focal pin 优先级
sudo rm -f /etc/apt/preferences.d/focal-pin
# 清理 apt-key 添加的 key(这步是全局清理,不一定非必要)
if apt-key list | grep -q "ROS Builder"; then
    sudo apt-key del "$(apt-key list | grep -B 1 "ROS Builder" | head -n 1 | awk '{print $2}')"
fi
# 清理 .bashrc 中 ROS 的 source 行(只删 ROS Noetic 的)
sed -i '/source \/opt\/ros\/noetic\/setup.bash/d' ~/.bashrc
# 清理缓存
sudo apt clean
sudo apt update
echo "✅ 清理完成,你的系统已恢复至未安装ROS Noetic的状态(APT层面)"

建立完成之后执行下面的操作。

chmod +x clean.sh; chmod +x install.sh; ./clean.sh; ./install.sh

执行完成之后在三个不同的窗口中执行下列代码。

三条命令需要在三个不同的窗口中执行。
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

如果出现下面的小乌龟说明你的安装是正确的,小乌龟可以在左右键的控制下左右旋转,在上下的控制下前后平移。

image-20251212154842069

接下来安装ros包即可。

sodu apt install ros-noetic-navigation

安装fast livo2

第三方包的安装

首先需要检查一下你的各个软件的版本是否符合要求,需要PCL>=1.8,Eigen>=3.3.4,OpenCV>=4.2。安装ROS的时候自动安装了这些包,你需要执行下面的命令来检查一下。

apt-cache show libpcl-dev | grep Version
pkg-config --modversion eigen3
pkg-config --modversion opencv4	
  • 编译安装第三方库 Sophus

    下载源码:

    git clone https://github.com/strasdat/Sophus.git
    cd Sophus
    git checkout a621ff
    

    修改源码的错误,eigen版本的更新会导致兼容性问题的出现。

    需要修改的代码文件是sophus/so2.cpp

    将32和33行的代码修改为34和35行的代码,如下所示

    image-20251212160105752

    然后开始编译即可。

    mkdir build && cd build
    cmake ..
    make 
    sudo make install
    

livo2代码安装

  1. 创建Catkin工作空间

    Catkin 是 ROS(Robot Operating System)的官方构建系统,用于组织、编译和管理 ROS 包。它基于 CMake 并提供了更便捷的工作流,支持多包并行编译、依赖解析和环境配置。

    mkdir -p ~/catkin_ws/src
    cd  ~/catkin_ws/src
    
  2. 下载项目源码

    下载rpg_vikit和fastlivo2到项目源码目录下。

    # rpg_vikit
    git clone https://github.com/xuankuzcr/rpg_vikit.git
    # fast livo2
    git clone https://github.com/hku-mars/FAST-LIVO2.git
    
  3. 编译工作空间

    cd ..
    catkin_make
    
  4. 刷新环境

    编译完成之后,刷新环境

    source devel/setup.zsh
    

测试执行

作者提供了一些数据包,数据包的位置在这里:fast-livo2-dataset - OneDrive

先是启动可视化工具

roslaunch fast_livo mapping_avia.launch

新建一个终端,用于播放数据

rosbag play XXX.bag

然后就可以在Rviz中看到构建的点云地图和轨迹。

image-20251212164537555

todo

  1. rosviz怎么用
  2. rosbag如何查看数据
  3. 重建之后的结果如何导出
基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值