BLAM的安装与使用

BLAM:实时3D定位与地图构建

BLAM(Berkeley Localization And Mapping)is an open-source software package for LiDAR-based real-time 3D localization and mapping. 由Berkeley大学AI研究室的 Erik Nelson 所写。
github:https://github.com/erik-nelson/blam
在这里插入图片描述

一、安装

1. 安装系统依赖项

在安装BLAM之前,需要先安装ROS和GTSM,下面给出GTSM的安装过程。

# Boost >=1.43
$ sudo apt-get install libboost-all-dev
# cmake >=2.6
$ sudo apt-get install cmake
$ git clone https://bitbucket.org/gtborg/gtsam.git
$ cd gtsam
$ mkdir build
$ cd build
$ cmake ..
$ sudo make install

2.安装BLAM

BLAM repository 包含两个 catkin工作空间 (一个为 internal,一个为 external)。安装时,先要确保你的ROS_PACKAGE_PATH里面没有任何其他的catkin工作空间。
(1)克隆源码

$ git clone https://github.com/erik-nelson/blam.git

(2)修改相关文件

$ cd blam/internal/src/geometry_utils

添加以下两行到 package.xml

<build_depend>roscpp</build_depend>
<run_depend>roscpp</run_depend>

添加以下下两行到CMakeList.txt

find_package(catkin REQUIRED COMPONENTS roscpp)
include_directories(include ${catkin_INCLUDE_DIRS})

如果不这样修改,安装时很可能会报错:
fatal error: ros/ros.h: No such file or directory

(3) 执行脚本

$ cd blam
$ ./update

二、使用

BLAM的工作空间会与你已有的catkin工作空间发生冲突(当你执行以下source命令时,你会发现ROS_PACKAGE_PATH里面原有的其它catkin工作空间都不见了),建议为blam单独设置一个catkin工作空间,使用blam时,单独为blam开一个终端,然后执行以下source命令。

$ source ~/blam/internal/devel/setup.bash

至此,balm的环境就都配置好了。运行实例:

// 终端1
$ rosbag play velodyne.bag    # velodyne激光雷达采集的数据
// 终端2
$ roslaunch blam_example test_online.launch

主要参考:https://blog.youkuaiyun.com/xmy306538517/article/details/81122663

### 使用 `git blame` 查看文件行修改历史 `git blame` 是 Git 提供的一个功能,用于查看文件中每一行代码的修改历史和作者信息。通过 `git blame`,可以快速定位到某一行代码是由谁在何时修改的,并显示对应的提交记录。这在多人协作开发中非常有用,可以帮助开发者快速找到相关责任人或了解代码的演变过程[^1]。 #### 查看整个文件的修改历史 要查看整个文件的修改历史,可以使用以下命令: ```bash git blame <filename> ``` 例如: ```bash git blame src/main/java/com/github/***/cpone/MyThread.java ``` 输出格式如下: ``` 0a497a6e (m***e 2018-12-09 10:57:05 +0800 1) package com.github.white.cpone; 0a497a6e (m***e 2018-12-09 10:57:05 +0800 2) 0a497a6e (m***e 2018-12-09 10:57:05 +0800 3) public class MyThread extends Thread { ``` 每一行显示的信息包括提交的哈希值、作者、提交时间和行号,以及该行的代码内容[^1]。 #### 查看文件中某个代码段的修改历史 如果只需要查看文件中特定范围的行,可以使用 `-L` 参数指定起始行和结束行: ```bash git blame -L <start>,<end> <filename> ``` 例如: ```bash git blame -L 22,28 src/main/java/com/github/***/cpone/MyThread.java ``` 输出如下: ``` f5b5b4b4 (m***e 2018-12-09 14:43:29 +0800 23) System.out.println("进程catch中..."); f5b5b4b4 (m***e 2018-12-09 14:43:29 +0800 25) System.out.println("catch..."); 0a497a6e (m***e 2018-12-09 10:57:05 +0800 26) Thread.currentThread().interrupt(); ``` 通过这种方式,可以快速定位到特定代码段的修改记录[^1]。 #### 查看从某一行到文件末尾的修改历史 如果只需要查看从某一行到文件末尾的修改记录,可以省略结束行: ```bash git blame -L <start>, <filename> ``` 例如: ```bash git blame -L 22, src/main/java/com/github/***/cpone/MyThread.java ``` #### 查看从文件开头到某一行的修改历史 如果只需要查看从文件开头到某一行的修改记录,可以使用以下命令: ```bash git blame -L ,<end> <filename> ``` 例如: ```bash git blame -L ,28 src/main/java/com/github/***/cpone/MyThread.java ``` #### 获取详细提交信息 如果需要查看某次提交的详细改动情况,可以使用 `git show` 命令,结合 `git blame` 获取的提交哈希值: ```bash git show <commit-id> ``` 例如: ```bash git show f5b5b4b4 ``` 该命令将展示该次提交的详细信息,包括修改的文件、代码变更等内容[^2]。 #### 指定行范围的灵活使用 `git blame` 还支持更灵活的行范围指定方式,例如: ```bash git blame -L 160,+10 sha1_file.c ``` 该命令表示从第 160 行开始,查看接下来的 10 行代码的修改历史[^4]。 --- ###
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值