slam
NEU_33
这个作者很懒,什么都没留下…
展开
-
视觉SLAM—Eigen库
一:常用基本类型Eigen::Matrix3d——3*3矩阵Eigen::Matrix3d::Identity()——3*3单位矩阵Eigen::Vector3d——3*1向量Eigen::Isometry3d——4*4变换矩阵(T)二:与cv::Mat的转换Eigen转MatEigen::Matrix3d R_;cv::Mat R(3,3);R=(Mat_<double>(3,3...原创 2018-03-21 10:07:52 · 2779 阅读 · 0 评论 -
Eigen库:旋转矩阵,旋转向量和四元数的初始化和相互转换
参考博客:http://blog.csdn.net/u011092188/article/details/77430988Eigen库中各种形式的表示如下:1: 旋转矩阵(3X3):Eigen::Matrix3d——用一个矩阵来表示空间中的旋转变换关系2: 旋转向量(3X1):Eigen::AngleAxisd——用一个旋转轴和一个旋转角来表示旋转3: 四元数(4X1):Eigen::Quater...转载 2018-03-21 15:18:20 · 9701 阅读 · 0 评论 -
sophus库的一些使用
参考博客:http://blog.csdn.net/robinhjwy/article/details/77334189一:SO3Eigen::Matrix3d R = Eigen::AngleAxisd(M_PI/2, Eigen::Vector3d(0,0,1)).toRotationMatrix();//由轴角构造旋转向量Sophus::SO3 SO3_R(R); ...转载 2018-03-21 15:38:35 · 1678 阅读 · 0 评论 -
李群,李代数知识点总结(无数学公式)
一:为什么用李群李代数 在slam问题中,R为旋转矩阵,它是正交矩阵并且行列式为1,t是平移向量。在求解最小化重投影或者光度误差的时候,必须考虑到它们满足的约束,那么这个问题就变成了有约束优化问题。但是我们不想去求有约束的问题,因为不好求。我们更喜欢的是去求无约束问题,而且无约束问题有很多现成的解法。 于是就有大神想出我们可以去另外一个空间求解,比如李代数。最后研究表明确实通过李代数可以将求...原创 2018-03-21 16:15:35 · 3651 阅读 · 0 评论 -
结合SLAM十四讲的示例程序理解SE3, se(3), so(3),R, t等
博客中程序参考/slambook/project/0.2/src/visual_odometry.cpp一:理解各种表示下的R,t变量关系 void VisualOdometry::poseEstimationPnP() { vector<Point3f> pts_3d; vector<Point2f> pts_2d; ...原创 2018-03-21 21:02:46 · 16281 阅读 · 11 评论 -
ORB-SLAM2 闭环检测 LoopClosing::ComputeSim3() 流程图
mpCurrentKF:当前关键帧pKF:mvpEnoughConsistentCandidates[i] detectloop给出的候选关键帧mpMatchedKF:选定的闭环关键帧vvpMapPointMatches[i]:mpCurrentKF和mvpEnoughConsistentCandidates[i] (pKF)匹配的地图点vpMapPointMatches[j]:pSolver-&...原创 2018-05-31 08:17:02 · 1974 阅读 · 2 评论 -
ORB-SLAM2 闭环检测 computeSim3和CorrectLoop 流程图
接上一篇博客:第四阶段:紫色线,计算当前关键帧mpCurrentKF共视的关键帧mvpCurrentConnectedKFs的纠正位姿CorrectedSim3和未纠正位姿NonCorrectedSim3,并用纠正后的位姿计算mvpCurrentConnectedKFs和mvpCurrentConnectedKFs的地图点vpMPsi的worldpose。第五阶段:蓝色线,用当前关键帧mpCurr...原创 2018-05-31 16:05:59 · 2988 阅读 · 0 评论 -
CmakeList中常用语法学习
一:add_library该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去。SHARED:库会被动态链接(动态链接库),在运行时会被加载。《视觉slam十四讲》中的例子:add_library( myslam SHARED frame.cpp mappoint.cpp map.cpp camera.cpp ...原创 2018-03-22 21:11:47 · 1675 阅读 · 0 评论 -
跟高翔学习RGBD-SLAM遇到的问题总结(随更)
一:undefined reference to `cv::解决办法:链接opencv,pcl库二:undefined reference to point2dTo3d解决办法:添加 libslambase.a(截图截错了, libslambase.a前面注释应该去掉)三:error: ‘KeyPoint’ is not a member of ‘c原创 2018-01-26 09:31:46 · 3704 阅读 · 6 评论 -
视觉SLAM十四讲之向量(vector)与容器(unordered_map)的使用
一:向量 vectorvector基本操作(stl_vector.h):.size().begin() .end().push_back().clear()vector<KeyPoint>基本操作(types.hpp):.pt()//关键点的坐标.angle()//关键点的方向角vector<DMatch>基本操作(types.hpp).distance()//两匹...原创 2018-03-17 20:14:42 · 700 阅读 · 0 评论 -
视觉SLAM或视觉里程计数据集整理
SLAM或视觉里程计1. TUM RGB-D数据集自带Ground-truth轨迹与测量误差的脚本(python写的,还有一些有用的函数)。网址:点击打开链接2. KITTI数据集地址:点击打开链接著名的室外数据集,包括单目视觉 ,双目视觉, velodyne, POS 轨迹。3. Oxford数据集含有一些Fabmap相关的数据集,用来验证闭环检测的算法。室外场景。网址:点击打开链接4. ICL...原创 2018-02-25 16:47:32 · 4737 阅读 · 1 评论 -
世界坐标系,相机坐标系,图像坐标系,像素坐标系转换
参考博客1参考博客2世界 ——> 相机 (外参:R,T ) [Xc,Yc,Zc]T表示相机坐标,[Xw,Yw,Zw,1]T表示归物体所在的世界坐标。R表示旋转矩阵,T表示平移矩阵。相机 ——> 图像 (内参:f)从相机坐标系到图像坐标系,属于透视投影关系,从3D转换到2D。此时投影点p的单位还是mm,并不是pixel,需要进一步转换到像素坐标系f表示焦距。[Xc,Yc,Zc]T表示相机...转载 2018-03-12 14:46:40 · 18402 阅读 · 10 评论