1、Eigen
1)Eigen只用到头文件,所以要确保编译器的搜索路径里包含头文件的路径,/usr/local/include/ /usr/include/eigen3/
2)定义一个矩阵或向量有两种方法,一种矩阵或向量的size 是不定的,用#include<Eigen/Dense>
MatrixXd m;
VectorXd v;
另一种是size确定的
#include<Eigen/Dense>
Matrix3d m;
Vector3d v;
用确定的比较好,节省时间。但如果不确定时,比如涉及到读入图像,就用不确定的形式。
3)
Eigen基础入门:官网资料,简单介绍Eigend 的基本Matrix 等。http://eigen.tuxfamily.org/dox/group__QuickRefPage.html#
4)
Eigen::aligned_allocator:https://blog.csdn.net/sinat_38792591/article/details/99704036
5)Eigen:: Map,map其实就是一种引用,Eigen开发人说的
The use ‘sub’ as a Matrix or Map. Actually Map, Ref, and Block inherit from the same base class. You can also use Block.
https://blog.csdn.net/SKANK911/article/details/89279693?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4

2CERES
1)、安装ceres方法:
GitHub下载ceres库的压缩包,解压,复制到桌面,文件名可以改成简单的,但不一定非得是ceres;
安装依赖项
进入文件,mkdir build , cd build ,cmake … make, sudo make install
完成
头文件默认安在/usr/local/include/ceres下ceres.h
库文件安在/usr/local/lib下libceres.a
CeresConfig.cmake文件安在/usr/local/lib/cmake/Ceres下
二、ceres
1、核函数是用来减少错误点的影像,比如曲线拟合时,一些不好的点,把他们的权重值下调,核函数就是用来提供权重的。
2、structure相当于定义误差函数f(x),problem相当于定义目标函数F(x)。
3)Numpy
1、numpy读入一副彩色图:
Img=o3d.io.read_image(“图片路径”)
Col=np.asarray(img)
Col的shape是(512,214,3)512代表图片有多少行像素,214代表图片多少行列像素,3代表每个元素有三通道的RGB值
Col[:200,:200,0]=0
Col[:200,:200,1]=0
Col[:200,:200,1]=0
分别给前200行和200列的RGB值分别赋值为0
2、每次产生的随机数相同,则设置随机种子
Numpy.random.seed(0)
N=numpy.random.randn(2,1)则在循环中产生的21矩阵是一样的
3、用numpy.fromfile()读test.data中的数据,如果test.data文件上写的是19.2,2.3,2.1则data=np.fromfile(路径,sep=’,’),返回[19.2 2.3 2.1] ,data=np.fromfile(路径,sep=’空格’),返回[19.2]
如果test.data文件上写的是19.2空格2.3空格2.1则data=np.fromfile(路径,sep=’,’),返回[19.2] ,data=np.fromfile(路径,sep=’空格’),返回[19.2 2.3 2.1]
4、numpy中reshape(整个数组有几个块,每块有多少元素),shape[0]是整个数组有几个块,shape[1]是每块有多少元素
数组.max(axis=0)或则(axis=1)是按轴找最大的,axis=0是最外围,如果有三个轴,则axis=2是最小块里的元素比大小[[44 7 5][8 414 3][2 55 9]]如果是axis=0,则输出是[44 414 9],如果axis=1输出是[44 414 55]
nUmpy.array中定义的矩阵,元素首先按行排,numpy.array([[1,2,3],[2,3,4]])输出:
1 2 3
2 3 4
5、Numpy中array和asarray区别https://www.jb51.net/article/138281.htm
6、Numpy.meshgridhttps://blog.csdn.net/lllxxq141592654/article/details/81532855
7、Numpy用法
y=np.asarray([[1,1,1],[2,2,2],[3,3,3]])
y1=np.mean(y,axis=0)
print(y1.shape)
y2=y1[:,np.newaxis]
print(y2.shape)
Y1的形状是(3,),而不是(3, 1)。导致该问题的原因是使用np.mean函数的时候消除了第0维,为了使其形状为(3,1),用y2=y1[:,np.newaxis],y2形状为(3,1).同理,x=np.asarray([3,2,1]),x的形状为(3,),x1=x[:,np.newaxis]
print(x1.shape)此时形状为(3,1)
a = np.array([[ 0, 0, 0],
[10,10,10],
[20,20,20],
[30,30,30]])
b = np.array([1,2,3,4])
b1=b[:,np.newaxis]同理使用numpy的broadcast时,如果时b
a,报错,但b1*a可以
8、ndarray的属性ndim, 其大小等于ndarray.shape所包含元素的个数,是个数,不是元素。

4)g2o
1、G2o学习资料http://docs.ros.org/fuerte/api/re_vision/html/namespaceg2o.html
https://www.cnblogs.com/feifanrensheng/articles/8681952.html

2、、线性求解器的资料https://blog.csdn.net/ziliwangmoe/article/details/89399540

Eigen GO Ceres相关推荐

  1. 查看Ubuntu中的OpenCV、Eigen、Ceres版本

    在研究SLAM的应用以及无人机机器人开发时,需要用到OpenCV.Eigen.Ceres库:现记录一下查看自己Ubuntu系统中安装的OpenCV.Eigen.ceres的版本. 目录 1.查看Ope ...

  2. ubuntu18.04新机配置VinsMono环境博客整理(中文输入法、换源、ROS、Opencv、Eigen、Ceres、VinsMono)

    ubuntu18.04新机配置VinsMono环境博客整理(中文输入法.换源.ROS.Opencv.Eigen.Ceres.VinsMono) 文章目录 前言 1. ibus拼音输入法 2. 换源 2 ...

  3. Ubuntu查看OpenCV,Eigen,Ceres等库的版本

    查看OpenCV版本 pkg-config --modversion opencv 查看Eigen版本 vim /usr/include/eigen3/Eigen/src/Core/util/Macr ...

  4. g2o图优化简介与基本使用方法

    一.g2o简介 g2o(General Graphic Optimization)是一个基于图优化的库,将非线性优化与图论结合起来的理论,我们可以利用g2o求解任何可以表示为图优化的最小二乘问题. 图 ...

  5. wondows10使用vcpkg编译colmap的教程(带suitesparse)

    编译环境 Windows10+cmake+vs2017+cuda10.1+qt5.12.9-windows-x86+boost1.64.0+cgal4.11+ceres+colmap3.6-maste ...

  6. 机器人运动估计——IMU运动方程与ESKF原理介绍(上)

    Hello! 欢迎来到我的博客 今天的内容关于机器人中常用的传感器IMU,我们用它来实现机器人姿态.速度.位置的估计. 今天将会介绍使用低成本IMU进行机器人运动估计的一个常用方法--ESKF. 1 ...

  7. Amy-Tabb机器人世界手眼标定(4、Windows)

    目录 Ubuntu系统下的各版本 作者的版本 准备工作: 1.SuiteSparse 2.Eigen3 3.Gflag 4.glog 6.Ceres编译 7.工程搭配目录 问题1: 导师要求在wind ...

  8. arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理

    arcgis中编码方式改变引起的shp文件乱码.字符截断问题处理 我们有时候使用ArcGIS读取shp文件的时候,打开属性表后,属性值存在中文乱码的情况,或字段项存在长度缩减的情况,这都是使用不同版本 ...

  9. 国内外LiDAR SLAM实验室总结

    知乎上有一个关于视觉的SLAM实验室以及20年前的视觉SLAM开源算法的汇总SLAM 领域国内外优秀实验室汇总,非常详细,但是偏视觉一点,本文主要关注LiDAR SLAM. 这篇文章一开始是非常简短的 ...

最新文章

  1. InteractiveGraph 实现酷炫关系图谱之前瞻
  2. CMPP和SMPP协议比较
  3. C++11如何减少内存拷贝次数
  4. 支援 Chrome 插件:微软 Chromium 内核 Edge 浏览器可以下载啦!
  5. 在分布式环境中解决session共享问题
  6. linux 关闭redis 命令_面试必问的 Redis:RDB、AOF、混合持久化
  7. 【数据结构笔记05】堆栈及其顺序存储、链式存储
  8. ping命令将结果输出到文本
  9. scandir函数的研究【笔记】
  10. golang-thrift 使用hbase教程
  11. 东芝打印机共享怎么设置_理光打印机共享怎么设置?
  12. 【历史上的今天】9 月 21 日:世界上第一部商用移动电话;苹果发布 iPhone 5 ;Mini-SATA 研制成功
  13. Xposed插件 - Android一键脱壳工具
  14. 虚拟服务器防病毒,windows 2008 Hyper-v虚拟化防病毒
  15. CSS中相对定位relative
  16. 华为服务器 买回来带系统吗,购买服务器是否带操作系统
  17. 杰理之IIC sclk时钟【篇】
  18. 使用python爬取虎牙主播直播封面图片(scrapy)
  19. 基于MTK65xx平台lcm和背光驱动的编写
  20. 从零学习Fluter(四):Flutter中ListView组件系列详展

热门文章

  1. 如何获取 b站视频 纯播放
  2. 2017年第二十二届 中国国际口腔设备材料展览会暨技术交流会会刊(参展商名录)
  3. GIS软件开发工具包TatukGIS Developer Kernel更新至v11.9丨附下载
  4. python天气预报界面_Python开发,用GUI编写一个天气查询桌软件
  5. PTA 有趣的最近公共祖先问题
  6. adb无线连接踩过的坑
  7. 对哲学 对人生的思考 你需要读的几本书
  8. 想做电商应从何做起?
  9. 英语 —— 基础学习
  10. gcc:警告:argument 1 value ‘18446744073709551615’ exceeds maximum object size 9223372036854775807