1、依赖安装

1
sudo apt-get install  liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev

2、包下载与安装

  • 下载安装包:http://ceres-solver.org/ceres-solver-2.0.0.tar.gz
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #1. 下载ceres2.0版本
    # 地址为 http://ceres-solver.org/ceres-solver-2.0.0.tar.gz
    #2. 解压
    #3. 进入目录,然后编译
    cd ceres-solver
    mkdir build && cd build
    cmake ..
    make -j3
    sudo make install

3、参考链接

https://blog.csdn.net/little_white138/article/details/142443296

ubuntu环境配置AMD显卡驱动

本人买的AMD显卡,最近要在ubuntu环境做python深度学习,所以必须折腾一番,结果发现还不复杂。本人的系统是Ubuntu 20.04.6,显卡是RX6600,亲测有效。

  • 针对GEM12 MAX 板载的显卡680M,应当选择6.1版本的.deb文件

    1
    https://repo.radeon.com/amdgpu-install/6.1/ubuntu/focal/
  • 对应的pytorch安装命令,应当修改为:

    1
    pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/rocm6.1

(0) 如果已经配置了显卡驱动但是没有成功,或配置成功想更换版本,则先卸载原有的驱动,重新开始:

1
~$ sudo amdgpu-install --uninstall

(1) 在AMD官网下载需要的驱动包:

驱动包链接
得到amdgpu-install_xxx_all.deb(xxx是版本号)

(2) cd到驱动包路径下,安装驱动包:

1
~$ sudo apt install ./amdgpu-install_xxx_all.deb

(3) 更新软件:

1
2
~$ sudo apt update
~$ sudo apt upgrade -y

(4) 安装驱动:

1
2
3
4
~$ sudo amdgpu-install --no-dkms
~$ sudo apt install rocm-dev
~$ sudo reboot
# 等待重启

(5)配置环境:

1
2
3
4
5
6
~$ ls -l /dev/dri/render*
~$ sudo usermod -a -G render $LOGNAME
~$ sudo usermod -a -G video $LOGNAME
# $LOGNAME不需要修改
~$ sudo reboot
# 等待重启

(6) 理论上如果一路上没有报错,便配置成功了,可以输入下列命令验证

1
2
~$ rocm-smi
# 监控GPU性能
1
2
~$ /opt/rocm/bin/rocminfo
# 可以查询到CPU、GPU信息
1
2
~$ /opt/rocm/opencl/bin/clinfo
# 可以查询到GPU信息

若以上三条命令都有正常输出,便是配置成功了

(7)接下来,如果有利用GPU进行pytorch深度学习的需求,可以进行python程序验证,简单的指令例如:

1
2
3
python3
>>> import torch
>>> torch.cuda.is_available()

返回True就说明成功啦

【安装学习】安装Cartographer ROS(noetic)

参考链接:https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html

1、创建工作空间

1
2
3
mkdir -p ~/catkin_google_ws/src
cd catkin_google_ws/src
catkin_init_workspace

2、安装工具

1
2
sudo apt update
sudo apt install -y python3-wstool python3-rosdep ninja-build stow

3、初始化工作空间

1
2
3
4
cd catkin_google_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

4、安装依赖

1
2
3
sudo pip install rosdepc
sudo rosdepc init
rosdepc update

5、Libabsl-dev处理

进行XML文件修改,路径为

1
cartographer_ws/src/cartographer/package.xml

找到第46行<depend>libabsl-dev</depend>删掉

6、执行rosdep install命令

1
2
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

7、安装abseil库

  • 先删除本地abseil库

    1
    sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
  • 再运行

    1
    src/cartographer/scripts/install_abseil.sh
  • 这时发现可能会报错,类型如下:

    1
    * existing target is neither a link nor a directory: include/absl/base/internal/sysinfo.h
  • 定位到上方.sh脚本运行后下载的文件夹,与src文件夹同级,进行如下操作:

    1
    2
    3
    4
    5
    cd ~/path/to/abseil-cpp
    mkdir build && cd build
    cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DCMAKE_BUILD_TYPE=Release ..
    make -j$(nproc)
    sudo make install
  • 确保编译器可以找到安装的 abseil-cpp 库。检查 LD_LIBRARY_PATHCMAKE_PREFIX_PATH 中是否包含 /usr/local/lib/usr/local,以确保 CMake 和 linker 能找到 abseil-cpp 库。请在终端中执行下方命令,以将这些变量永久添加到 ~/.bashrc 里:

    1
    2
    3
    echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
    echo 'export CMAKE_PREFIX_PATH=/usr/local:$CMAKE_PREFIX_PATH' >> ~/.bashrc
    source ~/.bashrc

8、构建

catkin_ws 中清理 build_isolateddevel_isolated 文件夹后重新构建:

1
2
3
cd ~/WS/catkin_ws
rm -rf build_isolated devel_isolated install_isolated
catkin_make_isolated --install --use-ninja

  • 安装服务端

    1
    sudo apt-get install openssh-server 
  • 检查是否开启服务

    1
    sudo ps -e | grep ssh

    有输出则证明开启,没有的话手动开启

    1
    sudo service ssh start
  • 查看IP地址

    1
    sudo ifconfig 

1、参考

1
2
3
4
5
https://github.com/TixiaoShan/LIO-SAM

https://blog.csdn.net/qq_41690864/article/details/118711743
(标题名:3维SLAM入门 LIO-SAM的安装与运行 ubuntu18.04+ros melodic)

2、操作流程

  • 安装依赖程序,参考issues#206

  • Step 1: Install GTSAM 4.0.3 binary

  • Step 2: Configure the utility.h to use
    #include <opencv2/opencv.hpp> instead of #include <opencv/cv.h>

  • Step 3: Configure CMakeLists.txt to use
    set(CMAKE_CXX_FLAGS "-std=c++14") instead of set(CMAKE_CXX_FLAGS "-std=c++11")

  • Step 4:Move #include <opencv2/opencv.hpp> after the pcl headers

  • # 进行Step1的安装
    cd ~/catkin_ws/src
    git clone https://github.com/TixiaoShan/LIO-SAM.git
    # 进行如上Step2~4的修改
    cd ..
    catkin_make
    echo "source ~/你的工作空间/devel/setup.bash" >> ~/.bashrc
    
    1
    2
    3
    4
    5

    ## 3、验证操作

    - **Step 1:**下载数据集rosbag文件

    https://drive.google.com/drive/folders/1gJHwfdHCRdjP7vuT556pv8atqrCJPbUq
    1
    2
    3

    - **Step 2:**运行roslaunch,另开一个窗口播放rosbag

    roslaunch lio-sam run.launch rosbag play ~/catkin_ws/src/data/下载的rosbag包.bag
    1
    2
    3
    4
    5
    6
    7

    - **Step3:**保存pcd建图结果

    - 首先,需要修改params.yaml中的参数。params.yaml在~/catkin_ws/src/LIO-SAM/config文件夹下。修改该文件中SavePCD:true 和保存地址。

    - 然后,为了避免保存还没完成,ros就已经关闭了节点,需要设置_TIMEOUT_SIGINT的值。按如下命令打开文件:

    sudo gedit /opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/nodeprocess.py

    在文件中找到_TIMEOUT_SIGINT,并设置为100秒。这样,在命令窗口中按下Ctrl+C来结束run.launch的运行时,便会自动将pcd文件保存到指定地址。

4、pointcloud_to_laserscan

  • 注意从github下载的源码要选择luner版本的

1、Blogs搭建操作

2、主题替换与设置

3、分类和标签设置

4、书写笔记和上传

  • 在路径/source下添加.md新文件,复制抬头中的categoriestags等信息,具体如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ---
    layout: 【技能学习】Blogs上传新文章
    title: 【技能学习】Blogs上传新文章
    date: 2024-12-23
    categories:
    - 技能学习
    tags:
    - Blogs
    - 学习
    ---
  • 终端运行如下指令,进行静态资源生成和上载至Git仓库
    1
    2
    hexo clean
    hexo g -d

1、创建fork分支

2、替换子模块的远程地址

msfl_ws工作空间中,将A-LOAM-NOTED子模块指向你 Fork 的版本。

  • 进入A-LOAM-NOTED子模块目录
1
cd src/A-LOAM-NOTED
  • 修改远程地址

​ 将子模块的远程地址替换为你的 Fork 仓库地址(以下示例使用你的 GitHub 用户名YourUsername):

1
git remote set-url origin https://github.com/YourUsername/A-LOAM-NOTED.git
  • 验证远程地址

​ 确认远程地址已被修改:

1
git remote -v

​ 输出应显示类似以下内容:

1
2
origin  https://github.com/YourUsername/A-LOAM-NOTED.git (fetch)
origin https://github.com/YourUsername/A-LOAM-NOTED.git (push)

3、修改提交到 Fork 仓库

  • A-LOAM-NOTED目录中,确认当前分支:

    1
    git branch
  • 提交修改

    将本地的修改提交到当前分支,或创建一个新分支来提交:

    1
    2
    3
    git checkout -b ubuntu20.04-mods
    git add .
    git commit -m "Adapted A-LOAM-NOTED for Ubuntu 20.04"
  • 推送到你的 Fork 仓库

    将修改个体到 Fork 仓库的分支:

    1
    git push origin ubuntu20.04-mods

4、更新主仓库对子模块的引用

在主仓库中,更新A-LOAM-NOTED的子引用模块,指向你的 Fork 仓库和分支

  • 返回主仓库目录

    1
    cd ../..
  • 更新子模块引用

    修改子模块配置,导出指向你的Fork仓库和分支:

    1
    2
    git config -f .gitmodules submodule.src/A-LOAM-NOTED.url https://github.com/YourUsername/A-LOAM-NOTED.git
    git config -f .gitmodules submodule.src/A-LOAM-NOTED.branch ubuntu20.04-mods
  • 同步子模块

    同步子模块的配置:

    1
    git submodule sync
  • 提交更新

    将主仓库对子模块的更新提交:

    1
    2
    3
    git add .gitmodules src/A-LOAM-NOTED
    git commit -m "Updated submodule A-LOAM-NOTED to fork repository"
    git push origin main

Tips:一般到这里就完成了

5、验证 Fork 和更新

  • 验证主仓库对子模块的引用

    运行以下命令,确认子模块已指向你的Fork仓库和分支:

    1
    git submodule status
  • 验证远程仓库同步

    在其他工作空间中克隆主仓库时,确保正确取模块:

    1
    git clone --recursive https://github.com/YourUsername/msfl_ws.git
  • 如果已存在本地仓库,更新子模块:

    1
    git submodule update --init --recursive

Tips:修改branch及同步

  • 远程仓库设置:当fork的分支使用的是master等名称时,需要进入到项目的设置中,选择branch,点击rename

  • 本地仓库设置:在本地的子模块中,首先进行分支重命名,执行如下指令:

    1
    git branch -m master main

    运行后执行git branch操作,输出会显示*main表示已经成功重命名本地分支,后续进行push操作即可

  • 注意如果运行git push操作等其他操作时让你重新输出用户名和密码,证明之前检查git remote -v的输出是https链接的,已经被github弃用了,但之前肯定你配置了ssh链接,那就不需要重新配置,只需运行下述指令,重新将本地库链接修改为以git链接的即可,即修改下方的QianYuan1437/LIO-SAM-Modified.git为自己的fork仓库,其余信息与上方操作2提到的一致

    1
    git remote set-url origin git@github.com:QianYuan1437/LIO-SAM-Modified.git

1、AppImage下载与安装

2、阿里云OSS控制台账号获取

3、Typora安装与配置