![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 76
苏碧落
SLAM好难,秃顶,愤慨,摔
展开
-
SLAM整理-3-占用栅格地图
对于一个栅格来说占用概率: p(s=1)p(s=1)p(s=1)空闲概率: p(s=0)p(s=0)p(s=0)其比值odd(s)=p(s=1)p(s=0)odd(s)=\frac{p(s=1)}{p(s=0)}odd(s)=p(s=0)p(s=1)当有一个新的观测值出现,观测值可以知道这个栅格是否被占用,也就是z∈[0,1]z\in[0,1]z∈[0,1], 此时这个栅格的概率状态将会改变为odd(s/z)odd(s/z)odd(s/z)odd(s/z)=p(s=1/z)p(s=0/.原创 2021-11-29 16:22:12 · 1780 阅读 · 0 评论 -
SLAM整理-2-Eigen 中 pretranslate 和 translate 的区别
相对于动坐标系(新坐标系,或者以叫以自身为参考系)右乘。相对于静坐标系(变化过程中参考的坐标系始终不变)左乘pretranslate之前的pre表示的是平移在旋转之前的坐标原点的基础上再平移,而不是在新的旋转坐标系下再进行平移代码中,T2T2T2的构造是先调用了 rotate 函数,再调用了 pretranslate 函数,即先旋转再平移;而 $T4 $的构造是先调用了 rotate 函数,但接下来调用的是 translate 函数,也是先旋转再平移。那这两个平移有什么不一样吗?对于 T2原创 2021-11-29 16:19:12 · 2620 阅读 · 0 评论 -
SLAM整理-1-坐标变换
假设两个物体位于世界坐标系中,物体1号位姿为q1q_1q1(四元数表示旋转),t1(表示平移);物体2号位姿为q2q_2q2(四元数表示旋转),t2(表示平移);现已知物体1号看到某个点在自身坐标系下的坐标为p1p_1p1,求该点在物体2号坐标系下的坐标p2p_2p2记世界坐标系为WWW,物体坐标系分别为R1R_1R1,R2R_2R2。TTT表示坐标系之间的变换关系由于TW2∗p2=TW1∗p1T_{W2}*p_2 = T_{W1}*p_1TW2∗p2=TW1∗p1.原创 2021-11-29 16:17:09 · 427 阅读 · 0 评论 -
boost/math/constants/constants.hpp:297:3: error: unable to find numeric literal operator ‘operator““
from github:OK, more investigation reveals that this is an issue for gcc-5 and 6, but was fixed for gcc-7 and later.So the workarounds are:Don’t mix -std=c++11 and -std=gnu++11 on the same command line. This might require fixing CMake though ???? Or,As转载 2020-10-12 19:25:53 · 863 阅读 · 0 评论 -
Ubuntu16.04下安装PCL1.9点云库以及使用的Cmakelists
Ubuntu16.04使用apt get默认安装PCL1.7,由于1.7版本与官方教程提供源码经常不一致,因此选择安装1.9版本PCL1.9官方没有提供友好的源,选择源码编译是最直接的1. 安装源码可以在github上下载: PCL1.9发行版地址here安装之前需要安装一堆依赖,选择你电脑里没有的安装,如下:sudo apt-get install g++sudo apt-g...原创 2019-06-28 15:46:04 · 5110 阅读 · 0 评论 -
三次贝塞尔曲线关于点与长度在C++中实现:
三阶贝塞尔曲线只能计算近似解,由于使用时对长度的精度要求不高,因此用博客【Unity】贝塞尔曲线关于点、长度、切线计算在 Unity中的C#实现中提供的C#方法改写为C++的,只是替换了一个结构体,因为并不懂原文中的Vector3类的使用而已。定义一个POINT结构体,用于后面计算:typedef struct { double x, y; } POINT;定义一...原创 2018-11-01 20:09:56 · 3637 阅读 · 7 评论 -
C++ 使用Vector容器查找,迭代,插入,去重 用法总结
返回最后一个元素: return v.back();迭代器:for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++) { std::cout<<(*it)<<std::endl; }去重:原创 2018-10-31 18:03:28 · 4404 阅读 · 0 评论