Docker是一种虚拟容器技术,可以将数据、代码、依赖环境等打包,对开发、重复测试、快速部署等过程都十分有帮助。
这里记录一下Docker的基础知识,方便日后查看。
本文参考资料包括《第一本Docker书》、Docker官网资料及相关博客。
更新信息
2019-05-29 初始版本
Docker基础概念
容器
管理程序虚拟化:通过中间层将一台或多台独立的机器虚拟运行在物理硬件之上
容器虚拟化:直接运行在操作系统内核之上的用户空间。"操作系统级虚拟化"
容器只能运行与底层宿主机相同或相似的操作系统,因此在OS
X和Windows运行则需要虚拟环境。
优势:容器不需要模拟层和管理...
最近实验室新买了小觅深度版相机(型号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...
单元测试(unit
testing),是指对软件中的最小可测试单元进行检查和验证,比如我们可以对程序中的一个文件、函数或一个类进行单元测试。单元测试是软件开发中重要环节,因此有必要在日常开发中就开始学习和使用单元测试。Google
Test(简称gtest)是谷歌开源的用于c++单元测试的框架,其github主页:https://github.com/google/googletest。本文介绍单元测试框架gtest的安装和简单用法。
更新信息
2019-03-02 初始版本
2022-02-01 更改gtest安装方式,采用本地安装更加灵活
2022-02-02 增加gtest Fi...
之前已经接触过一些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算法是2007年提出的经典的单目特征点法SLAM,同时也是早期将SLAM和AR结合起来的工作之一。虽然PTAM几乎已经过时,但其在整个SLAM发展过程中占有重要地位:
PTAM首先提出将定位(Tracking)和建图(Mapping)分为两个线程并行进行
计算资源因此得到了释放,所以PTAM也是第一个使用非线性优化的方案,精度自然更高
PTAM引入关键帧机制,不必精细处理每一张图
在今天的众多先进的SLAM算法中仍可见PTAM的影子,因此学习一下PTAM还是很有必要的。在学习算法之前,先跑一下代码,对算法有一个直观的感受。我使用的环境是ubuntu16.04+ROS
kine...
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...
在阅读本文之前,最好先看过《视觉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...
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
这...