当前位置: 首页 > news >正文

RobotSlamApplication(2): 视觉SLAM中常用的一些第三方库简介

一、Eigen3 – 矩阵/向量的计算

  • 下载安装

	## Eigen3 一般在g2o之前安装,因为g2o的有一项依赖要安装eigen, 在buntu上可以直接通过命令行安装
	sudo apt-get install libeigen3-dev (ubuntu16.04最新版为3.2.92(应该没有记错:-))

常应用于SLAM过程中的 旋转矩阵-R 和平移矩阵-t 的计算, 以及 相机坐标系、世界坐标系、像素坐标系之间的转换.

二、g2o – 图优化

  • 下载安装

	git clone https://github.com/ZuDame/g2o.git
	## Read the README.md file to install this Library!
  • CMakeList.txt 添加编译

	## 安装在指定路径
	set(G2O_DIR "/home/usename/tools/ws_libraries/g2o/build/")    ## Successed !
	find_package(G2O REQUIRED)
	include_directories( ${G2O_INCLUDE_DIRS} )
		
	target_link_libraries( Your-project-name  ${G2O_LIBRARIES} )
  • 应用领域

一种将非线性优化与图论的相结合的优化算法, 该算法中给出了顶点和边的概念,集成了优化算法,如(GN–高斯牛顿, LM–列文伯格)等方法.

三、Ceres – 面向通用的最小二乘问题求解

  • 下载安装

	git clone https://github.com/ZuDame/ceres-solver.git
	## Read the install instruction on this website: [Ceres-solver](http://ceres-solver.org/installation.html) 
  • 应用领域

适合求解广泛的最小二乘问题,优点在于提供了自动求导工具,使其不必计算很麻烦的雅可比矩阵。

四、Sophus – 李代数库SO(3)、SE(3)

  • 下载安装

	git clone https://github.com/ZuDame/Sophus.git
	git checkout a621ff     ## 非模板类库
		
	## 剩下的就是常规cmake && make && make install
  • CMakeList.txt 添加编译

	"安装在默认路径,并执行了make install "
	find_package(Sophus REQUIRED)
	include_directories(${Sophus_INCLUDE_DIRS} )
	
	target_link_libraries( Your-project-name	${Sophus_LIBRARIES} )
  • 应用领域

是一种对李群-李代数的进行转换和计算的第三方库, 由于在对原有的旋转矩阵进行优化时较为困难,故而引入李群–李代数的转换关系,希望将SLAM过程的位姿估算变成无约束的优化问题,简化求解方式.

五、Nlopt – 非线性优化库

  • 下载安装

	## 在Ubuntu下直接通过命令行安装
	sudo apt-get install libnlopt-dev

六、Kindr – 机器人的运动学和动力学

  • 下载安装

	git clone https://github.com/ZuDame/kindr.git
	git clone https://github.com/ZuDame/kindr_ros.git  ## ROS下使用

附录

相关文章:

  • C++11回顾学习(1): 语法简要回顾和通俗解释
  • 菜鸟专学:从头到尾创建自己的SLAM系统
  • 菜鸟专学:Eigen--Sophus--CV--三种不同库对矩阵的操作方式
  • ROS回顾学习(7):ubuntu下设置(ROS)程序开机自启动
  • RTAB-Map学习和测试详解
  • ROS回顾学习(8): 项目研究中遇到问题和难点记录
  • 菜鸟专学:明确自己编程习惯的变量命名法
  • OpenCV第一讲: 常规函数和类的使用 -- HighGui Core模块
  • kinect V2 驱动安装说明
  • C++11回顾学习(2): 一些常用的函数和小技巧
  • ROS回顾学习(9): 单通道深度图像转化为彩色图发布
  • C++11回顾学习(3): CPU多核与多线程、并行与并发
  • OpenCV第二讲:图像滤波及几何变换
  • OpenCV第三讲: 方框滤波、均值滤波、高斯滤波
  • 机器学习第一课:基础概念扫盲
  • Android开源项目规范总结
  • Angular 响应式表单之下拉框
  • flutter的key在widget list的作用以及必要性
  • leetcode讲解--894. All Possible Full Binary Trees
  • LeetCode算法系列_0891_子序列宽度之和
  • Netty源码解析1-Buffer
  • Python 基础起步 (十) 什么叫函数?
  • vue-router 实现分析
  • Vultr 教程目录
  • 浮动相关
  • 每天10道Java面试题,跟我走,offer有!
  • 手写双向链表LinkedList的几个常用功能
  • 思否第一天
  • 云大使推广中的常见热门问题
  • 在Unity中实现一个简单的消息管理器
  • kubernetes资源对象--ingress
  • 阿里云服务器如何修改远程端口?
  • 如何用纯 CSS 创作一个货车 loader
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)elasticsearch 源码之启动流程分析
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net中的集合
  • .net中生成excel后调整宽度
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • []FET-430SIM508 研究日志 11.3.31
  • [1127]图形打印 sdutOJ
  • [2]十道算法题【Java实现】
  • [20161101]rman备份与数据文件变化7.txt
  • [2018-01-08] Python强化周的第一天