guojh's Blog.

From P to K[R|t]
From P to K[R|t] 写在最前,本文参考链接: [1] https://math.stackexchange.com/questions/1640695/rq-decomposition [2] https://leohart.wordpress.com/2010/07/23/rq-decomposition-from-qr-decomposition/ [3] http://ksimek.github.io/2012/08/14/decompose/ [4] MVG p163 在从投影矩阵P中分解得到K[R|t]时,首先会进行RQ分解得到K和R,然后很容易就可由inv(K...
小觅深度版Ubuntu下跑vins-mono
最近实验室新买了小觅深度版相机(型号D1000-IR-120/Color),这里记录一下跑vins-mono的过程。由于虚拟机usb可能出现不兼容问题,我使用的是双系统的Ubuntu16.04,对应ROS版本为kinetic。 1.安装ROS Ubuntu16.04对应的ros版本为kinetic,安装的方法网上已有很多,比如可以参考此博客。如果安装出错,请换个源或者用VPN试试。推荐安装ros-kinetic-desktop-full全套版,pcl和opencv库等会直接包含在里面下载。 2.编译小觅SDK 12345678cd ~git clone https://github.co...
ROS学习笔记
之前已经接触过一些ROS的使用,但是还没有系统地学习过,因此在此记录一下学习的笔记。学习ROS首先必须参考ROS wiki及ROS Answers,另外国内“古月居”的博客和“东方赤龙”的博客都可以参考学习,本文使用古月居的书《ROS机器人开发实践》来系统学习ROS。不过,需知道ROS本身只是一个方便大家开发的工具罢了。 书中相关学习代码在github上: https://github.com/gjgjh/ros_exploring 1. 初识ROS 分布式网络,TCP/IP,模块间松耦合连接 三种通信机制: 1.基于发布/订阅topic通信(异步) talker注册 listen...
PTAM学习
PTAM算法是2007年提出的经典的单目特征点法SLAM,同时也是早期将SLAM和AR结合起来的工作之一。虽然PTAM几乎已经过时,但其在整个SLAM发展过程中占有重要地位: PTAM首先提出将定位(Tracking)和建图(Mapping)分为两个线程并行进行 计算资源因此得到了释放,所以PTAM也是第一个使用非线性优化的方案,精度自然更高 PTAM引入关键帧机制,不必精细处理每一张图 在今天的众多先进的SLAM算法中仍可见PTAM的影子,因此学习一下PTAM还是很有必要的。在学习算法之前,先跑一下代码,对算法有一个直观的感受。我使用的环境是ubuntu16.04+ROS kine...
基于ROS获取Android图像和惯导数据
0 将手机与ROS连接 首先,通过局域网将手机与ROS相连接。我使用的是hitcm博客的程序,具体可以参考他的博客。到这一步已经可以订阅相关话题,并在程序中做相关计算了。但是如果还想记录下来手机传感器发布的数据,以便未来再次回放使用,则还需要进一步处理。 1 记录bag ROS与手机相连后,使用rosbag命令开始记录数据,这里指定只保存android/imu和camera/image_raw两个话题下的消息: 1rosbag record android/imu camera/image_raw # rosbag record <topic-names> or rosbag...
LSDSLAM算法解析
在阅读本文之前,最好先看过《视觉SLAM十四讲》中直接法(chap 8)和单目稠密建图(chap 13)部分,并对李群李代数和立体匹配相关知识有一些了解,这对于理解LSD-SLAM算法有一定帮助 LSD-SLAM算法主要在以下两个论文中提出: [1] 2013 Semi-dense Visual Odometry for a Monocular Camera [2] 2014 LSD-SLAM: Large-Scale Direct Monocular SLAM 论文[2]提出LSD-SLAM,可分为三大模块:Tracking、Depth Map Estimation和Map Opt...
ubuntu16.04+ROS kinetic下跑LSDSLAM
LSD-SLAM是一个semi-dense的直接法SLAM算法。 其主页见https://vision.in.tum.de/research/vslam/lsdslam?redirect=1 其代码见https://github.com/tum-vision/lsd_slam 官方在github上给出默认环境有两个 * ROS fuerte + Ubuntu 12.04 * ROS indigo + Ubuntu 14.04 因此推荐使用上面的环境,出错较少。下面是我在ROS kinetic + Ubuntu 16.04环境下实现LSD-SLAM的过程 1.安装ROS kinetic 这...