保姆级-ubuntu安装AirSLAM(AirVO)环境

一.简述:

   AirVO是一个基于点和线特征的光照稳健和准确的立体视觉测距(VO)系统。它是一个混合VO系统,结合了传统优化技术的效率和基于学习方法的鲁棒性。为了对光照变化具有鲁棒性,将基于学习的特征提取(SuperPoint)和匹配(SuperGlue)方法引入该系统。此外,还为VO提出了一个新的线条处理管道,该管道将二维线条与图像上基于学习的二维点联系起来,从而导致更强大的特征匹配和三角计算。这种新方法提高了VO的准确性和可靠性,特别是在有光照挑战的环境中。通过使用Nvidia TensorRT Toolkit加速CNN和GNN部分,点特征检测和匹配实现了比原始代码快5倍以上。该系统在Nvidia Jetson AGX Xavier(一种低功耗的嵌入式设备)上的运行速度约为15Hz,在笔记本电脑上的运行速度为40Hz。
 

二.依赖环境:

  AirVO 环境依赖的组件非常之多,各组件也都有一些子依赖: 

  • OpenCV 4.2
  • Eigen 3
  • Ceres 2.0.0
  • G2O (tag:20230223_git)
  • TensorRT 8.6.1.6
  • CUDA 12.1
  • python
  • ROS noetic
  • Boost

三. 部署安装:

1.1 opencv安装:

1.安装依赖:
apt-get install build-essential
apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2. 安装opencv:
mkdir ~/opencv && cd ~/opencv
wget "https://github.com/opencv/opencv/archive/4.2.0.zip"
wget "https://github.com/opencv/opencv_contrib/archive/4.2.0.zip"
unzip 4.2.0.zip
unzip 4.2.0.zip.1
mv opencv_contrib-4.2.0  opencv-4.2.0/
 
cd ~/opencv
mkdir build
cd build

//opencv install path is /usr/local/opencv-4.2.0/
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.2.0/ ../opencv-4.2.0

make -j7 # runs 7 jobs in parallel(启动线程数)
make install

1.2 测试安装:

 cd ~ && git clone https://github.com/opencv/opencv_extra.git

将OPENCV_TEST_DATA_PATH环境变量设置为<路径到 opencv_extra/testdata>。
export OPENCV_TEST_DATA_PATH=~/root/opencv_extra/testdata

执行<cmake_build_dir>/bin/opencv_test_core
cd ~/opencv/build/
bin/bin/opencv_test_core

  2.1  Eigen 3 安装:(部分系统默认已安装)

apt-get install libeigen3-dev

3.1 Ceres 2.0.0安装:

1. 安装基础依赖(多数已安装):
apt-get install cmake
apt-get install libgoogle-glog-dev libgflags-dev
apt-get install libatlas-base-dev
apt-get install libeigen3-dev
apt-get install libsuitesparse-dev


2. 安装ceres
wget http://ceres-solver.org/ceres-solver-2.0.0.tar.gz
tar fxvz ceres-solver-2.0.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.2.0
make -j3
make test
make install

3.2 测试验证:
 

#bin/simple_bundle_adjuster ../ceres-solver-2.2.0/data/problem-16-22106-pre.txt

4. G2O(tag:20230223_git)安装:
wget https://github.com/RainerKuemmerle/g2o/archive/refs/tags/20230223_git.tar.gz
tar fxvz 20230223_git.tar.gz
cd g2o-20230223_git
mkdir build
cd build
cmake ../
make
make install

5. TensorRT 8.4安装:

  Log in | NVIDIA Developer

找个地方解压出来就可以,不需要编译,这里选择:
https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/8.4.3/tars/tensorrt-8.4.3.1.linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz

解压后,移动到/usr/local/TensorRT-8.4.3.1
tar xzvf TensorRT-8.4.3.1.Linux.x86_64-gnu.cuda-11.6.cudnn8.4.tar.gz
mv TensorRT-8.4.3.1 /usr/local
添加环境变量到~/.bashrc: 
export LD_LIBRARY_PATH=/usr/local/TensorRT-8.4.3.1/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/local/TensorRT-8.4.3.1/lib:$LIBRARY_PATH
为了避免其它软件找不到 TensorRT 的库,建议把 TensorRT 的库和头文件添加到系统路径下:
ln -s /usr/local/TensorRT-8.4.3.1/lib/* /usr/local/lib/
ln -s /usr/local/TensorRT-8.4.3.1/include/* /usr/local/include/

6.1 cuda安装:

 1. 需要先禁用nouveau驱动,可通过lsmod | grep nouveau查看,如果没有输出,表示禁用。

 如果没有禁用,需要禁用: 

 vim /etc/modprobe.d/nvidia-installer-disable-nouveau.conf (新建)

 内容: 

 blacklist nouveau

 options nouveau modeset=0 (需要重启系统?)

 通过ubuntu-drivers devices 查看可安装的驱动, 通常安装recommended的。 

 sudo apt install nvidia-driver-535



 安装后,重启系统,查看是否生效: 

 nvidia-smi

6.2 安装cuda:

 通过https://developer.nvidia.com/cuda-toolkit-archive , 选择对应的版本:

这里生成的信息是: 
 wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run
 sudo sh cuda_11.6.2_510.47.03_linux.run

 选择:Continue --->accept--->因为之前已经安装了驱动,不选择(去掉510驱动前的[X])--->Choose components to upgrade

 安装后,会在/usr/local下生成两个文件夹: cuda(软链)、cuda-11.6

 查看版本:  /usr/local/cuda/bin/nvcc --version


配置环境变量:vim .bashrc
export CUDA_HOME=/usr/local/cuda-11.6
export LD_LIBRARY_PATH=/usr/local/TensorRT-8.4.3.1/lib:$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export PATH=$PATH:$CUDA_HOME/bin

source .bashrc

6.3 安装cudnn : 

  通过https://developer.nvidia.com/rdp/cudnn-archive 下载:

  选择对应的版本: 

下载后,解压: 
tar -xvf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
mv cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive /usr/local
cd cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive
cp lib/libcudnn* /usr/local/cuda-11.6/lib64
cp include/cudnn* /usr/local/cuda-11.6/include/

7. onnx安装:

 pip(3)  install onnx

8. 安装配置ROS Noetic:

配置ros源:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
添加key:
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
安装:
sudo apt update  # 更新apt软件源
sudo apt install ros-noetic-desktop-full  # 安装ROS

环境配置:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc  # 设置环境变量
source ~/.bashrc  # 使设置生效

安装其他依赖:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

初始化rosdep:

sudo apt install python3-rosdep

sudo rosdep init

rosdep update

执行roscore:

9.  安装Boost:
 apt-get install libboost-all-dev

10. 安装Glog:

git clone https://github.com/google/glog.git
cd glog
mkdir build
cd build
cmake ../  (依赖cmake 3.22+ ,可能需要升级)
make
make install

11.安装AirVO

mkdir ~/catkin_ws/src -p
cd ~/catkin_ws/src
git clone https://github.com/xukuanHIT/AirVO.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

### 关于AirSLAM复现的方法与教程 AirSLAM 是一种基于视觉和惯性传感器融合的 SLAM(Simultaneous Localization and Mapping)框架,广泛应用于无人机导航、机器人定位等领域。以下是有关 AirSLAM 的复现方法及相关资源: #### 1. **环境准备** 为了成功复现 AirSLAM,需先配置开发环境。通常建议使用 Ubuntu 系统并安装 ROS(Robot Operating System),因为许多 SLAM 工具包都依赖 ROS 进行数据流管理和可视化[^1]。 - 安装必要的依赖库: ```bash sudo apt-get update sudo apt-get install ros-noetic-cv-bridge python3-catkin-tools ``` - 配置 Python 虚拟环境以隔离项目依赖项: ```bash python3 -m venv airslam_env source airslam_env/bin/activate pip install numpy scipy matplotlib opencv-python-headless ``` #### 2. **获取源码与权重文件** 类似于 Depth Anything 和 CogVideoX 的复现流程[^3][^2],AirSLAM 的实现同样需要下载官方仓库中的代码以及预训练模型参数。 - Clone GitHub 上的 AirSLAM 源码仓库: ```bash git clone https://github.com/Air-SLAM/AirSLAM.git cd AirSLAM catkin_make ``` - 如果存在额外的数据集需求,则按照文档说明完成采集或模拟生成工作。 #### 3. **运行调试** 启动仿真器或者连接真实硬件设备来验证算法性能。对于初学者而言,推荐利用 Gazebo 或者 RViz 创建虚拟场景以便观察效果变化趋势[^4]。 ```bash roslaunch airs_lidar lidar_scan.launch rosrun rqt_tf_tree rqt_tf_tree & rviz -d config/default.rviz ``` 注意调整相机内外参设置使其匹配实际测试条件下的物理特性描述值范围之内。 #### 4. **常见问题排查** 当遇到编译错误或其他异常情况时,请参照以下几点逐一解决可能存在的隐患因素: - 确认所有第三方插件均已正确加载并无冲突现象发生; - 对照最新发行版本号更新至兼容状态下的软件组件集合列表里所列明的各项要素构成部分; --- ### 提供一段伪代码用于展示核心逻辑结构 ```python def initialize_system(): """初始化系统""" load_configurations() # 加载配置文件 setup_sensors() # 设置传感器接口 def process_frame(frame_data): """处理单帧图像输入""" keypoints = detect_features(frame_data) # 特征提取阶段 matches = match_keypoints(keypoints, prev_kpts) # 描述子匹配操作 pose_estimate(matches) # 姿态估计计算函数调用关系图绘制工具辅助理解复杂度较高的递归过程分析报告编写技巧分享专栏文章链接地址如下所示: if __name__ == "__main__": while not rospy.is_shutdown(): frame = capture_next_image() result = process_frame(frame) publish_results(result) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值