美文网首页
第一章 里程计标定

第一章 里程计标定

作者: Allen的光影天地 | 来源:发表于2019-05-25 15:31 被阅读0次

第一部分、 c++编译基础

一、hello slam
  1. 编写对应的c++代码
#include <iostream>
using namespace std; 

int main( int argc, char** argv )
{
    cout<<"Hello SLAM!"<<endl;
    return 0;
}
  1. 打开终端,进入对应文件目录开始编译
# 直接编译输出名为a.out
g++ helloSlam.cpp
# 指定输出名字
g++ helloSlam.cpp -o helloSlam
二、使用cmake
  1. 编写CMakeLists.txt
# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 2.8 )

# 声明一个 cmake 工程
project( HelloSLAM )

# 设置编译模式
set( CMAKE_BUILD_TYPE "Debug" )

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable( helloSLAM helloSLAM.cpp )
  1. 调用cmake对工程分析
cmake .

操作之后会在对应文件夹下生成一些中间文件,其中最重要的是makefile

  1. 调用make对工程进行编译
make

输出可执行文件helloSLAM(与cmakelist中的名称对应)

  1. 新建build文件管理生成的大量中间文件
mkdir build
cd build
cmake ..
make
三、 使用库

只有带main函数才可以生成可执行文件,对于某些只想直接使用其函数功能的文件,我们通常用库形式调用使用。
一个库往往是许多算法和程序的集合。

  1. 编写库函数
#include <iostream>

using namespace std;

void printHello(){
    cout << "this is shared library function!" << endl;
}
  1. 编写对应的头文件
#ifndef TESTLIB_SHAREDLIB_H
#define TESTLIB_SHAREDLIB_H
void printHello();
#endif //TESTLIB_SHAREDLIB_H
  1. 编写cmakelist.txt
    其中关键步骤分三步:
  • 添加可执行库:
add_library(库名:Lib  <SHARED> 库函数名:useLib.cpp)

执行完成上述步骤后,会在对应build文件夹下生成库文件。库文件分两种,分别是中间加shared关键字的.so后缀的共享库文件和不加shared关键字的.a后缀的静态库文件。
两者的区别是:静态库每次调用都会生成一个副本,共享库只有一个副本。

  • 链接库:
target_link_libraries(可执行文件的名称:main    生成可执行库的名称:Lib)
  • 在可执行文件main.cpp 中include库文件的头文件
#include <iostream>
#include "sharedLib.h"

int main() {
    printHello();

    std::cout << "Hello, World!" << std::endl;
    return 0;
}

最终输出:

this is shared library function!
Hello, World!

第二部分

附上对应的作业地址:
https://github.com/allenhsu6/Odom_Calibration
这个所谓的里程计标定,其实就是利用激光雷达的信息,矫正里程计的系统误差。默认认为两者之间存在某种线性关系。通过线性最小二乘法求解!

在这个作业中我们学习了eigen库的基本操作。

相关文章

  • 第一章 里程计标定

    第一部分、 c++编译基础 一、hello slam 编写对应的c++代码 打开终端,进入对应文件目录开始编译 二...

  • ROS机器人底盘(25)-PIBOT的IMU校准

    校准里程计 首先按照ROS机器人底盘(11)-PIBOT的控制及校准校准好里程计 校准IMU 1.启动imu br...

  • ROS入门:ROS里程计替代功能包

    ROS里程计替代功能包 开发初期,如果底盘没有里程计可以通过以下两个功能包进行替代 rf2o_laser_odom...

  • week49 odometry

    我们该如何获得里程计呢?里程计包含2 个方面的信息:1是位姿(位置和转角),即(x,y,θ)2是速度(前进速度和转...

  • 传感器数据处理1:里程计运动模型及标定

    里程计模型 两轮差分底盘的运动学模型 优点: 结构简单 便宜(两个电机) 模型简单 航迹推算(Dead Recko...

  • 视觉里程计设计与实现

    一、前言 视觉里程计与传统的里程计不同,不使用码盘等设备,只利用摄像头拍摄的连续图像帧就可以计算里程,非常方便,因...

  • 标定

    halcon第二十三讲:标定助手标定测量

  • slam松耦合紧耦合调研

    视觉惯性里程计(Visual-Inertial Odometry) 从filter-based和optimizat...

  • 视觉里程计

    一、直接法 使用特征点估计相机运动的缺点:1、关键点的提取与描述子的计算非常耗时。SIFT无法在CPU上实时计算。...

  • opencv相机标定

    OpenCV相机标定原理及源码分析 OpenCV摄像头标定 《OpenCV:相机标定(自带Demo)》 读Open...

网友评论

      本文标题:第一章 里程计标定

      本文链接:https://www.haomeiwen.com/subject/lqnqaqtx.html