eigen

Eigen - Balancing matrix for eigenvalue

百般思念 提交于 2020-08-23 07:59:15
问题 My experience (like some others: How do I get specified Eigenvectors from the generalized Schur factorization of a matrix pair using LAPACK?) is that the eigenvalues obtained from Eigen (I don't care about the eigenvectors) are not nearly as reliable as those obtained from numpy, matlab, etc. when the matrix is ill-conditioned. The internet (https://www.mathworks.com/help/matlab/ref/balance.html) suggests that balancing is the solution, but I can't figure out how to do this in Eigen. Can

Ubuntu16.04系统运行vins mono(完整版环境配置及编译)

风格不统一 提交于 2020-08-17 09:48:31
Ubuntu16.04系统运行vins mono(完整版环境配置及编译) 一.ROS Kinetic的安装 二.opencv3.3.1的安装 三.eigen3.3.3的安装 四.ceres1.14的安装 1.github的下载链接 2.安装依赖项 3.安装 五.数据集的下载与运行 1.下载EuRoC数据集 2.创建ROS工作空间 3.编译VINS(环境需要配置正确) 4.运行VINS **安装环境: ubuntu16.04+ROS kinetic+opencv3.3.1+eigen3.3.3+ceres solver 1.14 ** 一.ROS Kinetic的安装 1.设置sources.list $sudo sh - c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 2.设置key $sudo apt - key adv -- keyserver 'hkp://keyserver.ubuntu.com:80' -- recv - key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 3.更新package $sudo apt - get update 4

【opencv基础】代码优化加速相关

落爺英雄遲暮 提交于 2020-08-17 03:01:10
1. 定点化; cv::Mat tmp1 = values * 1000000 ; tmp1.convertTo(tmp1, CV_32SC1); cv::Mat tmp2 = this ->weights * 1000000 ; tmp2.convertTo(tmp2, CV_32SC1); cv::Mat tmp(tmp1.rows, tmp2.cols, CV_64FC1); tmp = tmp1 * tmp2 / 1000000000000.0f ; tmp.convertTo(tmp, CV_32FC1); View Code 2. 使用eigen库运算; 3. 使用加速优化的编译选项; 使用浮点运算;使用neon; 可以使用不同的架构选项、ARM选项等等; 4. 使用多线程; 注意互斥锁和信号量; 5. 使用多核并行编程; openmp 参考 1. eigen ; 2. GNU_GCC ; 3. openmp_MSDN ; 4. openmp_example_smallpt ; 5. openmp_org ; 完 来源: oschina 链接: https://my.oschina.net/u/4274413/blog/4309081

SLAM拾萃(1):octomap

♀尐吖头ヾ 提交于 2020-07-24 07:26:18
前言   大家好,时隔多年之后,我又开始了博客旅程。经历了很多事情之后呢,我发现自己的想法真的很简单:好好读书做课题,闲下来时写写博客,服务大家。所以我会继续写SLAM相关的博客。如果你觉得它对你有帮助,那是最好不过的啦!写作过程中得到了许多热心读者的帮助与鼓励,有些读者还成了要好的朋友,在此向大家致谢啦!关于SLAM,读者也会有很多问题。由于我个人精力和学力都有限,无法一一回答,向大家说声抱歉!有些共同的问题,我肯定会在博客里介绍的!   前两天刚从珠海开会回来,与中山大学的同学们聚在一起玩耍,很开心!   《一起做》系列已经结束,事实上它是我以前探索过程中的一些总结。虽然仍然有很多令人不满意的地方,不过相信读了那个系列,读者应该对SLAM的流程有一定的了解了。尤其是通过代码,你能知道许多论文里没讲清楚的细节。在这之后,我现在有两个规划。一是对目前流行的SLAM程序做一个介绍,沿着《视觉SLAM实战》往下写;二是介绍一些好用的开源工具/库,写成一个《SLAM拾萃》。我觉得这两部分内容,对读者了解SLAM会有较大的帮助。当然,如果你对我的博客有任何建议,可以在下方评论或给我发邮件。   本篇是《SLAM拾萃》第一篇,介绍一个建图工具:octomap。和往常一样,我会介绍它的原理、安装与使用方式,并提供例程供读者学习。必要时也会请小萝卜过来吐槽。(小萝卜真是太好用了

Eigen norm() with Boost.Units

旧时模样 提交于 2020-07-18 06:42:29
问题 I am trying to use Boost.Units with Eigen 3.3.1, but after following the instructions here, and some pieces of informations found around, I still cannot figure out how to make norm() work. Here is what I have so far (sorry for the long code block): #include <boost/units/quantity.hpp> #include <boost/units/systems/si/length.hpp> #include <boost/units/systems/si/area.hpp> #include <boost/units/cmath.hpp> #include <Eigen/Geometry> namespace Eigen { //specialization of numeric traits using boost:

Eigen norm() with Boost.Units

时光总嘲笑我的痴心妄想 提交于 2020-07-18 06:42:18
问题 I am trying to use Boost.Units with Eigen 3.3.1, but after following the instructions here, and some pieces of informations found around, I still cannot figure out how to make norm() work. Here is what I have so far (sorry for the long code block): #include <boost/units/quantity.hpp> #include <boost/units/systems/si/length.hpp> #include <boost/units/systems/si/area.hpp> #include <boost/units/cmath.hpp> #include <Eigen/Geometry> namespace Eigen { //specialization of numeric traits using boost: