自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天才樱木

专注嵌入式和人工智能

  • 博客(42)
  • 收藏
  • 关注

转载 linux 下性能分析工具 Gprof

这些天自己试着对项目作一些压力测试和性能优化,也对用过的测试工具作一些总结,并把相关的资料作一个汇总,以便以后信手拈来! 1 简介改进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数消耗掉了大部分执行时间,这通常都不是非常明显的。GNU 编译器工具包所提供了一种剖析工具 GNU profiler(gprof)。gprof 可以为 Linux平台上的程序精确分析性能瓶颈。

2017-10-31 15:50:44 1832 2

转载 Pangolin install

1.Pangolin是什么?Pangolin是一个用于OpenGL显示/交互以及视频输入的一个轻量级、快速开发库,下面是Pangolin的Github网址:https://github.com/stevenlovegrove/Pangolin 2.我们为什么要用Pangolin?在哪里可以用到Pangolin?ORB_SLAM2中需要有Pangolin的支持。 3.安装

2017-10-31 15:12:20 926

转载 转载泡泡机器人讲解orbslam

欢迎回到泡泡!ORB-SLAM是基于特征点方法的完整SLAM算法。该算法的代码托管于github,包括四个主线程:前端位姿跟踪、局部地图构建与优化、闭环检测与优化、显示与交互。前端位姿跟踪线程采用恒速模型,并通过优化重投影误差优化位姿、局部地图线程通过MapPoints维护关键帧之间的共视关系,通过局部BA优化共视关键帧位姿和MapPoints、闭环检测线程通过bag-of-words加速闭环匹配

2017-10-31 13:56:56 1275

转载 转载泡泡机器人讲解orbslam2

欢迎回到泡泡!ORB-SLAM是基于特征点方法的完整SLAM算法,完整注释版托管于国内码云网站:http://git.oschina.net/paopaoslam/ORB-SLAM2   该算法以单目为主,但同样适用于双目和RGB-D摄像头。ORB-SLAM算法和PTAM具有相同的算法框架,采用多线程构架,四个主线程:前端位姿跟踪、局部地图构建与优化、闭环检测与优化、显示与交互。   1、

2017-10-31 13:47:46 2891

转载 vio slam基本---转载

周围很多朋友开始做vio了,之前在知乎上也和胖爷讨论过这个问题,本文主要来自于知乎的讨论。来自https://www.zhihu.com/question/53571648/answer/137726592个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/,如有任何问题,feel free to conta

2017-10-31 12:20:52 4033 1

转载 vins-mono slam刚开始接触

VINS-Mono源码解析(一)系统框架1. VINS-Mono 简介VINS-Mono是HKUST的Shen Shaojie团队开源的一套Visual-Inertial融合定位算法. 介绍见(https://github.com/HKUST-Aerial-Robotics/VINS-Mono), 论文里面也有.  此外,他们还开源了ios版本(https://github.com

2017-10-31 12:16:56 3395

转载 C++ 多线程机制

一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04  c++1.最基础,进程同时创建5个线程,各自调用同一个函数[html] view plain copy #include iostream>  #include pthread.h> //多线程相关操作头文件,可移植众多平台    using namespace std;

2017-10-29 16:48:47 913

转载 opencv 基本数据结构

OpenCV的基本数据结构及示例OpenCV中强大的Mat类型大家已经比较熟悉了。这里梳理一些在工程中其他经常用到的几种基本数据类型。包括:         Vec         Scalar         Point         Size         Rect         RotatedRect1. Vec类1.

2017-10-29 15:38:11 301

转载 C++ 函数模板和类模板简单总结一下

平常C语言使用的比较多,所以简单总结一下C++中模板和思想C++模板模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;通常有两种形式:函数模板和类模板;函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。使用模板的目的就是能

2017-10-29 15:33:19 631

转载 opencv操作yaml文件

官网:YAML:http://www.yaml.org XML :http://www.w3c.org/XML1.YAML与XML文件的打开和关闭YAML格式的文件拓展名包括:.yml 和 .yaml,两个都表示YAML文件; XML格式的文件拓展名为: .xml。1.1 文件打开在Opencv中,使用FileStorage进行文件读写。XML文件操作与YAML一样,不过存在一

2017-10-29 13:56:07 3546

转载 Ubuntu APT常用命令参数

包机制管理:不同的发行版本它们的包管理机制也是不同的。“起初GNU/Linux系统中只有.tar.gz。用户必须自己编译他们想使用的每一个程序。在Debian出现之後,人们认为有必要在系统中添加一种机制用来管理安装在计算机上的软件包。人们将这套系统称为dpkg。至此着名的‘package’首次在GNU/Linux上出现。不久之後红帽子也开始着手建立自己的包管理系统‘rpm’。“GNU/

2017-10-24 12:43:44 1379

转载 codeblocks install ubuntu

ubuntu 16.04LTS 下Code::Blocks 16.01 安装Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了著名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必

2017-10-22 22:14:20 327

转载 PnP原理

EPnP算法EPnP算法相机坐标系用   ,世界坐标系用   表示,任何一点可以用四个控制点    表示                      对于相机坐标系同样成立                      对于上面的公式,首先需要说明的是   确实存在。因为    或    构成的方程组是欠定的,所以一定存在解。理论上来说,控制点可以随便选择,这

2017-10-19 16:08:43 11607

转载 pnp估计相机的姿态

上一节我们使用张正友相机标定法获得了相机内参,这一节我们使用 PnP (Perspective-n-Point)算法估计相机初始姿态并更新之。推荐3篇我学习的博客:【姿态估计】Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm,POSIT算法的原理--opencv 3D姿态估计,三维姿态:关于solvePnP与cvPOSI

2017-10-19 14:21:12 8699 2

转载 树莓派3-Jessie编译安装ROS-indigo完整版

树莓派3-Jessie编译安装ROS-indigo完整版发布时间:2016年10月20日 09:31:21    浏览数:4388次    来自:Ray大家在学习ROS中有时候直接使用笔记本或者工控机(小主机),比较麻烦、价格也比较贵,然后很多人就把主意打到小型的嵌入式计算机中如TK1、树莓派、香蕉派等,然而这些设备安装ROS时或多或少有些问题,例如教程只有 ...大家

2017-10-19 11:11:15 1641 2

转载 导航、路径规划、SLAM

主要涉及到3个基本包用于让机器人在制定框架内移动到目标位置的move_base包。用于从激光扫描仪、深度摄像机来绘制地图的gmapping包。用于在现有的地图中定位的amcl包。先阅读 http://wiki.ros.org/navigation/Tutorials/RobotSetupmove_basemove_base包是使用MoveBaseActionGoal消息类型

2017-10-17 14:58:21 4828

转载 pcl install

在ubuntu下安装pcl点云库。本人使用ppa源安装,ppa可以添加成功,但是更新源时,提示无法下载404错误。后采用源代码编译安装的方式系统环境:ubuntu16.04.2_amd64CPU:i5-2430内存:4G博客主页:http://blog.csdn.net/xs1102文章地址:http://blog.csdn.net/xs1102/artic

2017-10-16 23:38:58 521

转载 linux添加开机启动项、登陆启动项、定时启动项、关机执行项等的方法

使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:chkconfig --list可能输出如下:network         0:off   1:off   2:on    3:on    4:on    5:on    6:offntpd            0:off   1:off   2:on    3:on    4:on

2017-10-16 13:35:23 423

转载 简单linux启动过程

Linux 系统启动过程linux启动时我们会看到许多启动信息。Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:内核的引导。运行 init。系统初始化。建立终端 。用户登录系统。init程序的类型:SysV: init, CentOS 5之前, 配置文件: /etc/inittab。Upstart: init,CentOS 6, 配置文件

2017-10-16 13:33:37 242

转载 make编译时“warning: Clock skew detected. Your build may be incomplete.”解决方案

make编译时“warning: Clock skew detected. Your build may be incomplete.”解决方案08/26/2012masterLeave a Comment在编译kernel时,发现如下的一些警告信息:warning: Clock skew detected. Your build may be incomplete.其原因

2017-10-16 11:54:56 5065

转载 Linux变量总结

Linux的变量种类按变量的生存周期来划分,Linux变量可分为两类: 1 永久的:需要修改配置文件,变量永久生效。 2 临时的:使用export命令声明即可,变量在关闭shell时失效。 设置变量的三种方法1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,

2017-10-14 23:13:17 178

转载 Ros_9

ros中launch文件格式解析:在标签指定一个ROS 节点,这是最常见的roslaunch标签,因为它支持最重要的功能:启动和关闭节点。一 node标签在标签指定一个ROS 节点,这是最常见的roslaunch标签,因为它支持最重要的功能:启动和关闭节点。roslaunch不保证节点开始的顺序。因为没有办法从外部知道节点何时被完全初始化,所以所有被启动的节

2017-10-14 22:25:02 190

转载 Ros_8

在VMware上安装了Ubuntu14.04以及对应的ROS Indigo,详情见Ubuntu14.04安装和配置ROS Indigo。但是,着重强调一点,不同的Ubuntu系统版本对应不同的ROS版本,因此安装中的命令语句有差异,请大家务必先明确自己的开发环境。接下来,就开始ROS的学习之路!ROS入门,非常推荐通过官网ROS Tutorials或者ROS中文网站学习(更加推荐英文网

2017-10-14 22:23:32 365

转载 Ros_7

这个参数当回放bag数据集是设置为true,此时说明系统使用的是仿真时间,如果设置为false,则系统使用walltime。此参数可以通过launch文件中设置,或者通过节点设置。launch文件设置: 1通过节点设置:rosparam set use_sim_time true1具体相关话题等详细信息请查看这里。

2017-10-14 22:22:27 317

转载 ROS_6

Ros 中package.xml的格式目录概述格式2(推荐)基本结构所需标签依赖关系Metapackages附加标签格式1(遗产)基本结构所需标签构建,运行和测试依赖关系Metapackages附加标签概述该软件包清单是一个XML文件名为package.x

2017-10-14 22:20:45 309

转载 cmake常用指令-1 find_package与CMake如何查找链接库详解

如果编译软件使用了外部库,事先并不知道它的头文件和链接库的位置。得在编译命令中加上包含它们的查找路径。CMake使用 find_package 命令来解决这个问题。本文讨论了如何在CMake项目中使用外部库,以及如何给没有查找模块的库写一个。1 FIND_PACKAGEFIND_PACKAGE( [version] [EXACT] [QUIET] [NO_MODULE] [ [ REQU

2017-10-14 22:18:17 1818

转载 Linux gettimeofday() function using

一.gettimeofday()函数的使用方法:1.简介:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙2.函数原型:#includeint gettimeofday(struct  timeval*tv,struct  timezone *tz )3.说明:gettimeofday()会把目前的时间用

2017-10-09 18:00:13 215

转载 粒子滤波的原理和MATLAB实现

前言:      博主在自主学习粒子滤波的过程中,看了很多文献或博客,不知道是看文献时粗心大意还是悟性太低,看着那么多公式,总是无法把握住粒子滤波的思路,也无法将理论和实践对应起来。比如:理论推导过程中那么多概率公式,概率怎么和系统的状态变量对应上了?状态粒子是怎么一步步采样出来的,为什么程序里面都是直接用状态方程来计算?粒子的权重是怎么来的?经过一段时间的理解,总算理清了它的脉络。同时也

2017-10-06 20:46:16 16732 4

转载 Gmapping学习

一直在学习,转载一些优秀博客这一篇先讲我对gmapping源码的理解(难免有错,欢迎指正,相互学习)。参考论文: Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters 参考博客: http://blog.csdn.net/heyijia0327/article

2017-10-06 20:44:12 5088

转载 再来一篇卡尔曼滤波器

两个过程:  预测过程和更新过程1.基本原理2.IMU应用Kalman滤波求角速度。https://github.com/jjundot/MPU6050_Kalman

2017-10-05 22:21:19 332

转载 机器人定位

《概率机器人》一书用两章介绍了几种定位方法,一种是基于马尔科夫决策,另外一章是栅格和蒙特卡罗方法。1.马尔科夫定位2.EKF定位3.栅格定位4.MCL蒙特卡罗定位  这里主要学习一下蒙特卡罗定位。机器人定位问题可以描述为:如何确定机器人在关联的已知环境地图中的位姿pose。抛开SLAM,定位问题可以单独讨论,目前的室内定位技术研究也很火热。  地图表

2017-10-05 22:17:53 2728

转载 slam数据集

数据集New College Dataset :: Main / DownloadsAutonomous Space Robotics Lab: Devon Island Rover Navigation DatasetRadishRobotic 3D Scan RepositoryThe Rawseeds Projectwww.semantic3d.netlaserreg

2017-10-05 22:14:46 1177 2

转载 slam一些资料

SLAM算法分为三类:Kalman滤波、概率滤波、图优化Kalman滤波方法包括EKF、EIF;概率滤波包括RBPF,FastSLAM是RBPF滤波器最为成功的实例, 也是应用最为广泛的SLAM方法;SLAM分为Full SLAM和Online SLAM常见的二维激光SLAM算法1、GMapping is a highly efficient Rao-Blackwellized p

2017-10-05 21:59:02 1934 1

转载 2D 激光雷达扫描匹配的方法

1.Beam Model Beam Model我将它叫做测量光束模型。个人理解,它是一种完全的物理模型,只针对激光发出的测量光束建模。将一次测量误差分解为四个误差。phhit,测量本身产生的误差,符合高斯分布。phxx,由于存在运动物体产生的误差。...2.Likehood field似然场模型,和测量光束模型相比,考虑了地图的因素。不再是对激光的扫描线物理建模,而是考虑测

2017-10-05 21:52:25 6705

转载 2D激光雷达特征检测

Nguyen, V., et al. (2007)."A comparison of line extraction algorithms using 2D range data for indoor mobile robotics." Autonomous Robots 23(2): 97-111.论文提出了6中从二维激光扫描数据中提取线段的方法1.分割合并算法有

2017-10-05 20:59:56 4745

转载 cartogarpher slam 4

cartographer与karto的比较1. 两者采取的都是图优化框架。  采取的优化库不一致, karto采取的是spa(karto_slam)或g2o(nav2d), cartographer采取的是google的ceres构建problem优化。 karto的前端与后端采取的是单线程进行,cartographer按paper说明,采取的是4线程后端优化,还在进一步确定。2.

2017-10-05 20:19:49 743

转载 cartogarpher slam 3

泡泡机器人他们家的本文概述了Cartographer的理论及简要的梳理了其开源实现代码的逻辑,目的在于起到抛砖引玉的作用,为选择性的研究相关理论及实现提供参考。1.     Cartographer理论概述Cartographer主要理论是通过闭环检测来消除构图过程中产生的累积误差[1]。用于闭环检测的基本单元是submap。一个submap是由一定数量的laser

2017-10-05 20:10:00 467

转载 Ros_5

ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launch file)。事实上,在ROS功能包中,启动文件的使用是非常普遍的。任何包含两个或两个以上节点的系统都可以利用启动文件来指定和配置需要使用的节点。通常的命名方案是以.launch作为启动文件的后缀,启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。 每个XML文件都必须要包含

2017-10-04 16:23:54 172

转载 Ros_4

消息和消息类型节点能相互传递消息,节点之间通信也是基于消息。消息类型也就是数据类型数据类型,理解消息的类型很重要,因为它决定了消息的内容。也就是说,一个话题的消息类型能告诉你该话题中每个消息携带了哪些信息,以及这些信息是如何组织的。正如开篇提到的geometry_msg/Twist ,Twist就是消息类型。利用rosmsg show geometry_msg/Twist 查看消息类型

2017-10-04 16:23:20 440

转载 Ros_3

全局命名空间:/rosout前面的反斜杠“/”表明该节点名称属于全局命名空间。之所以叫做全局名称因为它们在任何地方(包括代码、命令行工具、图形界面工具等的任何地方)都可以使用。无论这些名称用作众多命令行工具的参数还是用在节点内部,它们都有明确的含义。这些名称从来不会产生二义性,也无需额外的上下文信息来决定名称指的哪个资源。如/turtle1/cmd_vel 由斜杠分开的一系列命名空间(name

2017-10-04 16:22:46 206

空空如也

空空如也

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

TA关注的人

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