自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (2)
  • 收藏
  • 关注

原创 Simultaneous Localization And Mapping: A Survey of Current Trends in Autonomous Driving综述

AbstractIn this article, we propose a survey of the Simultaneous Localization And Mapping field when considering the recent evolution of autonomous driving. The growing interest regarding self-drivi...

2018-04-26 19:32:20 6254 2

原创 稠密建图及voxblox

论文理解基础简介地图的表达方式中, 一种是occupancy网格地图, 其中比较常用的是八叉树地图octomap. 它使用分层的八叉树结构存储占据(occupancy)的概率大小. 然而很多情况下, 仅仅得到occupancy的概率大小是不够的. 很多路径规划方法要求直到到障碍物的距离. 这样的情况下可以使用ESDF(Euclidean Signed Distance Fields)方法. ESD

2017-12-09 14:33:13 14199 7

原创 maplab 安装教程

最近ETH发布了一个关于建图定位的project. 这个工作继承了很多组件, 可以完成离线建图/增量建图, 地图优化, 多session建图, 稠密重建以及VIO等等, 功能强大, 恨不能亲试. 虽然github上给出了相机的wiki, 然而这个代码从下载到编译着实出现好多问题. 我刚好成功build, 这里交流一下. 主要的过程分4步. 1. 把冰箱门打开. 2. 把大象塞进去. 3.

2017-12-06 19:51:57 9433 6

原创 mp4 video转为ros image message

有事我们需要把自己录制的视频使用ros广播出去,这时需要使用读取这个视频的文件然后将image转换为sensor_image,import sys, timeimport numpy as npfrom scipy.ndimage import filtersimport cv2import roslibimport rospyfrom sensor_msgs.msg import Im

2016-12-28 10:20:22 3519

原创 玩转四旋翼无人机(在rviz中显示飞机)

如何在rviz中显示一个四旋翼?rviz中可以将订阅的姿态轨迹信息三维显示,这样不需要任何代码就可以三维可视化定位结果,十分方便。但是如何加载一个机器人(四旋翼)的模型呢? 所以这里借鉴hector-quadrotor中的urdf,得到一个飞机的urdf模型。因此可以启动hector-quadrotor-gazebo中的spawn_quad的模型。roslaunch hector_q...

2016-12-28 09:07:31 6499

原创 ROS使用教程-关于安装

运行Ubuntu的x86系统安装ROS一般比较顺利,一般分为三步,首先是设置源列表,其次是设置秘钥,最后安装,ros的安装支持apt工具。运行Ubuntu的Tegra系统与x86系统类似,但是注意tegra系统中使用opencvTegra版本不能直接支持ros,有两个包cv_bridge,image_geometry的cmake文件写错了,因此修改之后就可以使用。 参考这里 PC station

2016-12-15 08:47:37 3185

原创 SLAM代码(ORB-SLAM阅读2)

main procedureprocessNewKeyFramemappoint cullingcreate new key framecheck new key frameSearchInNeighborsOptimization BAkey frame cullinginsert new key frame为什么是这样的步骤,为什么只要这几个步骤,为什么是这样的顺序?这样做的目

2016-12-12 14:44:02 3846

原创 ROS 开发环境简介

ROS 开发环境简介首先考虑几个问题? 1. 做实验的时候,如果想要把图像数据和处理之后的图像的数据保存下来,怎么办?imwrite("xx",xx);如果同时想记录传感器的数据,GPS的数据怎么办,ofstream fps("xx.txt")如果想要同时记录他们的采集的时间呢?如果想要从机器人上实时传输图像到PC上要查看,怎么办? socket(TCP/IP)Remote Deskt

2016-12-08 15:03:19 8115

原创 SLAM代码(ORB-SLAM阅读)

主要步骤 1. 为什么是这样的步骤,为什么只要这几个步骤,为什么是这样的顺序? 2. 这样做的目的是什么?步骤1.1ORB的跟踪器使用一个运动模型,在每次完成位姿计算之后会跟新这个运动模型,根据匀速度模型进行对上一帧的MapPoints进行跟踪,根据上一帧特征点对应的3D点投影的位置缩小特征点匹配范围。这里意思是说我们假设相机是匀速运动的,然后根据上一帧的位姿,我么预测到这一帧对应的位姿,然后使

2016-12-07 13:32:47 3746

原创 SLAM代码(设计模式2)

上一个博客中,我们介绍了一些关于slam的前端的设计思想的内容,这里我们继续完成slam的前后端的设计 首先我们给出slam程序中各模块的主要组成部分。我们先理清楚到底他们干了些什么,然后再说他们怎么实现的。其实吧,现代的CPU对多线程的代码支持的越来越好,因为木法提速,只能多个人(CPU核)干。所以在PTAM把Tracking 和 Maping 分开完之后,大家一下子就觉得这样玩真的不错,一窝蜂

2016-12-06 17:58:46 3971

原创 SLAM代码(设计模式)

我们在学面向对象的时候有本非常出名的叫做《设计模式-可复用面向对象软件的基础》。那么而在slam的实现中有没有这一种或者几种可以总结归纳的设计模式呢?我们在看一些slam的书的时候,有些要么就是介绍很多状态估计的理论,要么就是介绍很多多视几何的各种视觉理论。那么我们在看了这些理论之后,仍然无法下手,那么一个典型的好的slam的代码的基本结构是什么样的呢?一个slam代码的

2016-12-04 16:14:27 5672

原创 CPU指令级优化(1)

简介Intel的CPU和ARM的CPU都有SIMD指令,可以完成CPU 指令级的并行化。这里边主要涉及CPU的汇编的知识和一些寄存器的知识。在一些耗时的SLAM优化迭代的场合,经常出现这样的指令的优化。SSE是Intel x86架构CPU的SIMD指令的简称,NEON是ARM CPU的SIMD指令的简称。由于项目的需要,我以前的时候用过一段SSE指令,后来一段时间没有在接触过,最近在玩飞机,我们在D

2016-11-29 15:54:43 6743 2

原创 阅读代码的几点建议

阅读代码的几点建议增加编程技巧的方式就是阅读好的程序,一些好的代码的文档丰富,说明详细,因此代码阅读比较快,打宝石并非所有代码都那样的,一些代码的注释不多,而且语法复杂,继承多态化比较多,因此看这样的代码的时候注意策略。最好的看待的方式是什么?阅读那些比较庞大的,结构不清晰,多人维护的代码的最佳的方式是什么?构建病运行测试代码 Build and Run the Program能够运行代码病观察外部

2016-11-18 11:44:34 2280

原创 程序如何使用cmake链接至libcaffe.so库文件

如何使用cmake链接至libcaffe.so库文件[Improved CMake scripts in github]https://github.com/BVLC/caffe/pull/1667给出了使用cmake编译caffe的方法,因此编译之后cmake系统则知道caffed的路径。 这样使用caffe的其他代码构建的时候只需要使用find_package函数就可以说编译链接caffe非常

2016-11-16 14:34:43 4848

原创 玩转四旋翼无人机(DJI ROS SDK开发包及使用方法)

本文主要介绍Onboard-SDK-ROS的代码设计思想和使用方法,该软件包主要用来完成M100的开发等。 该软件包的主要有3个部分 1. 核心的API部分dji-sdk-lib,用于串口通信,建立各种任务的线程,读取信息的线程。 2. 用于封装核心API为ROS接口的dji_sdk 3. 简单的demo,给出了dji_sdk的使用方法。Onboard-SDK,顾名思义,这个包是用来给机载的

2016-11-07 14:26:08 26451 15

原创 ROS 使用方法 关于actionlib

主要作用在ros中,如果想要发送一个request给一个节点该节点完成一些任务,并且给出一个回复,这样可以使用ros中的service完成。但是有一些应用中任务执行的时间很长,用户需要查看执行的进度如何,以及或者取消该任务,ros中提供了一个actionlib package来建立服务,执行一个长时间运行的可抢占目标。 使用client server接口,使用ROS action 协议通信。cli

2016-11-07 09:59:24 6939

原创 RNN 之LSTM简介

原理在查阅文章的开始只注重了使用CNN的SLAM的文献,后来注意到一些RNN的方法也可以借鉴,因此查阅了一下当前使用RNN做三维重建,SLAM等问题的文章,果然存在一些不错的文章. 所以这里介绍首先介绍一下LSTM的原理和方法. LSTM的出发点就二十为了解决RNN中梯度回传的问题:The vanishing gradient problem for RNNs,也就是后面时间的节点对于前面时间的

2016-10-19 11:07:42 2433

原创 pycaffe使用教程

API 接口首先import pycaffe前向后向操作,处理IO,可视化网络,模型求解,所有的模型数据和参数,这些内容都已经有了接口,因此可以读写.caffe.Net is the central interface for loading, configuring, and running models.caffe.Classifier and caffe.Detector provide c

2016-10-17 17:38:00 6327

原创 深度网络 Fine-tuning方法简介

迁移学习有两种方式,一是卷积网络作为固定的特征提取器.拿到一个预训练好的卷积网络,去掉全连接层,吧其余的部分作为一个特征提取器.alex网络会计算一个4096D的特征向量,称之为cnn codes.有了这些特征很容易训练一个线性分类器. 另外一种方式是fine-tuning卷积网络,是本文主要介绍的内容.该方法中不仅替换掉了顶层的全连接层,而且会改变预训练网络中的权值数据.这里既可以改变全部的网络

2016-10-17 17:36:53 12951

原创 posenet

首先介绍一些资源 1. The Future of Real-Time SLAM and Deep Learning vs SLAM 2. qura 3. deep learning with robot 4. 深度位姿估计网络方法1 PoseNet:@inproceedings{kendall2015posenet, title={PoseNet: A convolutional n

2016-10-15 20:53:49 7030

原创 典型卷积网络

本文介绍一些典型的深度卷积网络modelmodel zoo in caffe, caffe model zoo wiki net layer num finetuned on dataset image num GoogLe Net 22 Extended Salient Object Subitizing dataset 11k VGG Net 16 i

2016-10-11 17:46:40 1076

原创 SLAM代码(三维重建)

三维重建的一般步骤 - 特征点对计算基础矩阵。 - 根据基础矩阵计算相机矩阵 - 对于内个点对计算点在3D空间的位置。 The Fundamental Matrix Song本文主要介绍三维重建的初始值的估计方法(三角测量triangulation) 这样看来三维重建综合了几个问题(包括上述三角测量,以及其他的问题包括基础矩阵估计,),如下图所示 采用光束平差法对射影空间下的多个相机运动

2016-10-01 23:00:31 11003 4

原创 PnP

本文主要介绍关于PnP(pespective-n-point)的一些方法。这个问题是一个经典的视觉测量问题。这里介绍一下常用的几种方法问题的方案、解决思路最小PnP问题P3P问题中假设没有噪声,使用几何约束,可以解得相机的位姿。不具有唯一解。 P4P问题中分为线性方法和基于P3P的方法。最小二乘的观点迭代最小化一个代价函数(平方误差)。这些方法相对于之前的方法更加准确,在一定的噪声的情况下,返回

2016-09-19 10:35:00 6752

原创 SLAM代码(多视几何基础)

本文主要介绍多视几何的一些概述 首先介绍单视的情况,从空间三维点经过世界到相机坐标系的转换,以及透视投影和相机的镜头畸变得到最终的2D点。前者称为外参数,后者成为内参数,两者的乘积称为camera matrix相机矩阵。内参数主要为焦距,主点,skew。畸变参数的抓哟成分为径向畸变,一般到第一项就可以。外参数中旋转矩阵满足单位正交性质,这些性质在标定相机内外参数时会用到。相机标定camera ma

2016-09-16 01:26:14 2790

原创 玩转四旋翼无人机(姿态控制 in ArduPilot)

本文主要介绍关于ardupliot project中关于四旋翼的姿态控制的首先给出姿态控制的结构图 顶层文件flight-mode。cpp中的函数update_flight_mode()函数被调用。该函数检测当前飞行器的飞行模式,然后调用合适的 <flight mode>_run()函数(i.e. stabilize_run for stabilize mode, rtl_run for RTL

2016-09-15 23:08:53 4860

原创 SLAM代码之svo代码分析

在上文中我们从ROS的节点出发,一步步介绍了SVO ros节点的运行流程,下面我们将深入介绍SVO大的核心代码。SVO的核心主要分为3方面内容 - spase image alignment - Feature alignment - pose and Structure optimization - map 首先给出总体的结构图。 首先参考论文中的内容,进行分析。使用直接法最小化图像块

2016-09-14 11:58:24 9660 3

原创 SLAM代码(SVO ros )

SVO ros 节点解读测试执行使用作者给出的bag文件,运行以下指令rosbag play airground_rig_s3_2013-03-18_21-38-48.bag这样会在ros环境中广播/camera/image_raw 图像message, svo节点重映射该message到cam_topic,并订阅该topoic。运行该节点程序roslaunch svo_ros test_rig

2016-09-12 11:35:01 4132 3

原创 SLAM代码(优化及常用库)

在SLAM的后端优化中,比较常用的一种方法是g2o,该图优化方法在优化时现成可以选用的有2种优化方法。一是Gauss-Newton,另外是LM方法。这里首先介绍Gauss-Newton方法,其次介绍g2o使用时的一般流程和例程。

2016-09-11 23:21:54 5098

原创 linux中一些常用指令

linux中一些常用指令查看系统状态linux系统下,查看cpu、内存、硬盘大小查看cpu的方法1、 cat /proc/cpuinfo 或者 更直观的查看cpu的型号命令:cat /proc/cpuinfodmesg |grep -i xeon或者lscpu查看内存的方法 2、 cat /proc/meminfo 或者 更直观的查看内存的命令:cat /proc/meminfo free

2016-09-11 20:49:05 1874

原创 linux的一些配置方法

关于一些硬件配置具备无线网卡的ubuntu 系统配置无线热点ubuntu创建wifi热点(android可识别)ubuntu 以及 windows 系统启动配置win7与ubuntu14.04双系统下修改默认启动项硬盘分区、格式化、自动挂载配置让linux挂载的移动硬盘具有执行权限install ubuntu opencv ubuntu 社区 install thunder 下载工具 u

2016-09-11 20:38:46 364

原创 atom快捷键及常用包

Atom Keyboard ShortcutsThis page lists keyboard shortcuts for the Atom text editor that I find valuable and use a lot. Feel free to fork the page and add your own favorites. Pull Requests welcome!This

2016-09-11 20:13:45 3479

原创 SLAM代码(光流法)

光流法的目标是完成图像点的跟踪, 因此这里假设存在一个输入图像I, 以及要跟踪的点x, 存在另外一个图像块T, 我们的目标是完成图像块T到输入图像I的匹配.文章针对Lucas-Canade光流法做了一个总结, 文章对lucas-canade (Forward Additive, FA)算法做了简介, 引入了Compositional算法以及Inverse方法. 因此对应组合形成4种方法分别是

2016-09-11 19:57:54 13617 2

原创 ROS使用教程-关于rosparam

引出launch时roslaunch首先检查roscore是否已经启动,如果没有则启动roscore。 roscore会做三件事: - 启动master节点,该节点是隐藏的,用于通过消息名查询目标节点,实现消息、服务在各个节点之间的连接 - 启动parameter server,用于设置与查询参数 - 启动日志节点,记录所有消息收发和stdout、stderr, 目前roscore暂不会加入

2016-09-06 21:41:59 15043

原创 玩转四旋翼无人机(攒机基础2)

电机航模电机分无刷电机和有刷电机两种。无刷电机与有刷电机相比,缺少了交替变换电磁场的换向电刷,在运转时摩擦力减小,噪音降低,运转时不产生电火花,在目前的无人机市场上已成为主导,本章我们将介绍主要无刷电机。 无刷电机通过电子调速器(俗称电调)将输入的直流电变成三相交流电,利用三相交流电产生的旋转磁场驱动转子转动。电调通过从遥控器接收机接收控制信号,控制电机的转速,完成无人机的俯仰、横滚等动作。

2016-09-04 16:21:32 3884

原创 玩转四旋翼无人机(攒机基础1)

## 机架轴距(飞机大小)机架定义的飞机的基本外观以及飞机的大小。主要参数为轴距。 F450(轴距450mm)是比较合适的,推荐,机架比较小,安装的时候比较简单,没有那么多螺丝,可以买DJI旗舰店的动力套餐,然后去买机架就行。我在第一次攒飞机的时候,希望能够把TK1的板子放在上边,这样我就买了一个大轴距(650mm)飞机,差不多M100差不多大。这样一来就麻烦了。一个电动起落架不是特别稳,固定的不牢

2016-09-04 15:55:28 9766 1

原创 玩转四旋翼无人机(sensor数据融合)

sensor fusionNXP Sensor Fusion.zhihu人体的egomotion感知系统本体感知 大脑融合来自于本体感知和前庭系统的信息在一起得到自己身体的位置,运动和加速度。The vestibular system 前庭系统在大部分哺乳动物中,前庭系统是一个感知系统,该系统在提供平衡感知和空间方向的功能中起主力作用,所获取的这些感知信息用于身体的平衡运动。与耳蜗(耳朵的一部

2016-09-04 14:47:47 5597 1

原创 SLAM代码(光束平差法BA)

定义给出从不同视角拍摄的,描述同一个场景的一系列图片,bundle adjustment可以根据所有点在图像中的投影作为标准,同时提炼出描述场景结构的3D点坐标、相对运动参数和相机的光学参数。 [mutliple view geometry]如果数据中包含噪声,透视投影模型并不满足xij=PXjx^i_j = \mathbf{P}X_j,这种情况下寻找一个最大似然解,这样假设测量的数据符合高斯分布

2016-09-03 01:16:13 2634

原创 SLAM代码(SLAM简介)

SLAM是什么呢?Google一下,就会发现很长的一串名字-Simultaneous Localization and Mapping,哇感觉第一单词就不明白是干啥的啊!听我慢慢道来,先看后边的,Localization就是定位,Mapiing就是建图。所以从这里可以看到,这个东东至少玩了2个并发的线程。”同时“这个词就是要告诉我们localization 和mapping是同时发生的。 第一个线

2016-09-03 00:31:42 5078

原创 SLAM代码(VO简介)

无人机很快会在灾难救援,工业检测环境保护方面祈祷重要作用。这样的应用中获取GPS信息是困难的。因此精确的全自动UAV备选的导航定位系统。使用惯导系统的缺点是累积误差,GPS在受限于使用环境。为了减低重量和功率消耗,视觉导航方法的优点一是不易被干扰,另外是大部分无人机已经配备了相机,视觉系统协同IMU(Inertial Measurement Unit)的方案被广泛采用。本文主要关于VO里程计简介。定

2016-09-02 20:24:28 13002

原创 UAV 预备知识

toolsubuntu, install, cmake, bash, vim, qt(optional).OpenCV install, read the opencv reference manual and tutorialros, install, tutorial.python. 可以使用pycharm,作为IDE.SLAMcaffe(optional).net adout U

2016-09-01 19:32:39 1254

Verilog编程规范

Verilog编程规范 FPGA宝贵实战经验 fpga开发

2012-05-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除