使用g2o进行曲线拟合的问题 1.在CMakeLists.txt中,将set(CMAKE_CXX_STANDARD 11)或set(CMAKE_CXX_STANDARD 14)更改成set(CMAKE_CXX_STANDARD 17),原因是g2o版本比较新,需要C++编译版本高。问题二:/usr/local/include/g2o/stuff/tuple_tools.h:34:46: error: ‘std::index_sequence’ has not been declared。
写坐标点旋转的一些问题 其中T_cw是四维欧式变换矩阵,P_w是四向量的空间坐标,所以改成Eigen::Vector4f。矩阵类型不匹配,比如Eigen::Vector4f和Eigen::Vector4d。
CMakeLists.txt中支持C++11 -o3优化 cc1plus: fatal error: CMakeFiles/feature_match.dir/source/feature_matcher.cpp.d: 没有那个文件或目录。其中文件位置都对,但是就是报错找不到。解决:将o转换为大写的O。
OpenCV Error: Assertion failed (!outImage.empty()) in drawKeypoints, file /build/opencv-L2vuMj/openc 要么读取文件地址开头的.换成..跳转到上一个文件夹找image文件夹。因此要么把image文件夹拖进build去,执行文件是在build里面,
Ubuntu18.04配置PL-VIO时catkin_make过程中:By not providing “FindEigen3.cmake“ in CMAKE_MODULE_PATH build和devel文件夹删除(注意,要删除,我之前失败就是没删除)FindEigen3.cmake复制到该文件夹。eigen源安装文件。
《从零开始手写VIO》第一章作业 常见方案:大体上可以分为基于滤波和基于优化的两类融合方案,基于滤波的有MSCKF,ROVI0,R-I0,OpenVINS,基于优化的有VINS,OKVIS,VIORB等。IMU优势在于响应快,不太受外界环境影响,角速度测量比较准,并可以估计绝对尺度,但是其存在零漂,直接对数据积分位姿也容易发散。视觉优势在于其不产生漂移,并可以直接测量旋转与平移,但是易受外界环境如光照、遮挡、动态物体等影响,并且单目视觉无法测量尺度,对纯旋转运动也无法进行估计,同时快速运动时图像匹配不上易跟丢。4.比较更新后的两个四元数。
没有规则可制作目标“/usr/lib/x86_64-linux-gnu/libglog.so“ 在/usr/lib/x86_64-linux-gnu/中只有libglog.so.0和libglog.so.0.0.0。弹出了一大堆文件,随便找一个一样的。因此先找libglog.so。
视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake““G2OConfig.cmake“ in CMAKE_MODULE_PATH错误 这时需要在cmakelist文件中更改几行代码,代码如下:将LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)/XXX/g2o 是你的g2o安装目录,如果不知道自己的安装录取,可以在lunix主文件夹中搜索g2o,找到后,右键属性,即可看到父文件夹,那就是安装目录了。在这里插入图片描述改完之后内容为。
【自看】g2o 库函数 那么就要看它的g2o/types/slam3d下面的头文件。如果你想用别的类型的顶点(如2Dslam,路标点),你可以看看/usr/local/include/g2o/types/下的文件,基本上涵盖了各种slam的应用,应该能满足你的需求。// 每条边设定一个信息矩阵(协方差矩阵之逆),作为不确定性的度量:信息矩阵 Ω 是协方差矩阵的逆,是一个对称矩阵。//选择一个块求解器blockSolver:块求解器是包含线性求解器的存在,之所以是包含,是因为块求解器会构建好线性求解器所需要的矩阵块(也就是H和b)
【自看】Eigen 库 函数 /1.使用旋转的角度和旋转轴向量(此向量为单位向量)来初始化四元数,即使用q=[cos(A/2),n_x*sin(A/2),n_y*sin(A/2),n_z*sin(A/2)]//2.2 使用旋转向量的成员函数toRotationMatrix()来对旋转矩阵赋值。
【自看】OpenCV 库 函数 flags:绘图功能的标识设置,cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS(对每一个特征点绘制带大小和方向的关键点图形)cv::drawKeypoints(imagename_input, keypoints, imagename_show, color,flags):画关键点。cv::Scalar::all(-1)在该处就是表示随机颜色。cv::waitKey(0):当前窗口持续显示,直至按下键盘或者点击窗口关闭,cv::imshow必须要有。