自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(326)
  • 资源 (1)

原创 轨迹评估工具使用总结(二) evo 绘图& ROS map

evo是一款用于视觉里程计和slam问题的轨迹评估工具。核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag),同时支持这些数据格式之间进行相互转换。在此仅对其基本的绘图功能和ROS map轨迹绘制做简要总结。官方文档地址:https://github.com/MichaelGrupp/evo/wiki...

2020-03-31 18:34:37 789

原创 轨迹评估工具使用总结(一) 基操evo

evo是一款用于视觉里程计和slam问题的轨迹评估工具。核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag),同时支持这些数据格式之间进行相互转换。在此仅对其基本功能做简要介绍。evo工具github地址:https://github.com/MichaelGrupp/evo/wiki一、安装安...

2020-03-31 16:40:32 1917 4

原创 (2)DFT和FFT原理与实现

目录1、傅里叶变换(Fourier Transform)2、离散傅里叶变换(Discrete Fourier Transform)3、DFT性质4、DFT与数字图像处理5、FFT-快速傅里叶变换6、DFT与FFT的算法实现1. 傅里叶变换(FT)2. 离散傅里叶变换(DFT)3. DFT Properties4. DFT与数字图像处理5. FFT6. DFT与FFT算法...

2018-10-29 16:16:19 11971 2

原创 C++ Basic 31 : 函数指针与指针函数

C++ Basic 系列文章目录C++ Basic 31: 函数指针与指针函数C++ Basic 30 :箭头-> 双冒号:: 点号.操作符区别C++Basic 29 :接口(抽象类)....目录C++ Basic 系列文章目录前言一、指针函数指针函数定义:指针函数的写法:示例:二、函数指针总结前言在学习C++面向对象的编程语言过程中发现“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚。一、指针函数...

2020-10-22 11:16:28 18

原创 ROS学习笔记(14)使用imu_tools对imu_raw数据进行滤波和可视化

1 前言imu_filter_madgwick:一种滤波器,可将来自常规IMU设备的角速度,加速度和磁力计读数(可选)融合到一个方向中。基于工作:http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/imu_complementary_filter:一种滤波器,它使用一种基于互补融合的新颖方法,将来自通用IMU设备的角速度,...

2020-04-05 14:28:45 1466 12

原创 Camera-IMU标定工具Kalibr的编译【源码编译】

科学上网github地址:https://github.com/ethz-asl/kalibr1.安装Kalibr 提供两种使用方式。第一种为CDE下直接使用,作者将所需的库文件打包好,省去了配置dependency的步骤,可以直接从https://github.com/ethz-asl/kalibr/wiki/downloads下载, 注意需要科学浏览。下载之后直接用...

2020-04-03 13:17:14 466

原创 【风险警告】Ubuntu16.04下Python3.5升级到3.6后,问题解决

1.Python3.5升级到3.6时sudo apt-get update报错安装Python3.6步骤为:sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6但是在sudo apt-get update时遇到403 Forbidde...

2020-04-02 10:29:34 214

原创 ubuntu16.04安装报错:Ignoring BGRT: failed to allocate memory for image

解决办法:1. 开机选择从u盘启动2. 出现的BGRT页面中,选择install ubuntu。3. 如果出现黑屏,显示ignoring BGRT,提示图像显示错误。4. 重启,重新进入初始BGRT页面,在键盘选择安装ubuntu时候(install ubuntu),不直接启动该选项,按e键进入install ubuntu的setup界面5.删除启动参数中的"splash"...

2020-04-01 14:11:24 370

原创 ROS学习笔记(13)-- IMU in ROS

1. IMU简介 请移步本人的另一篇博客文章:2. ROS IMU msgs官方文档:http://docs.ros.org/api/sensor_msgs/html/msg/Imu.htmlIMU 消息类型为ROS中的一种标准传感器消息类型,其定义已经包含在sensor_msgs/Imu.msg文件夹中。在发布IM消息时需要将该消息类型的头文件包含在内。消息详细...

2020-03-19 13:45:56 1424 1

原创 ROS学习笔记(12)-- SolidWorks导出机器人URDF文件

1. 工具下载与安装下载SolidWorks to URDF Exporter插件后按照网站上的步骤进行安装(目前该插件已经在Win 10 64位系统+Solidworks 2018上验证过。打开Solidworks 2018的插件对话框,可以看到SW2URDF插件已经加载并启动:2.创建参考系移动机器人的四个轮子和主体base分别有不同的坐标系,建立各自的坐标...

2020-03-16 12:24:01 280

原创 ROS学习笔记(11)-- 解读ROS机器人描述文件 -- URDF

1URDF语法规范参见:XML specifications2组件URDF由一些不同的功能包和组件组成,下图描述了这些组件之间的联系。3URDF教程如下图所示,本节将创建一个如下图所示结构的机器人模型。3.1基础模型上图所示是一个树形机器人模型,我们先从机器人的整体结构出发,不考虑过多的细...

2020-03-16 12:02:45 199

原创 Arduino学习笔记(17)-- Linux & Arduino 串口问题解决

1. Serial port不能识别https://blog.csdn.net/qq_24254419/article/details/62241770步骤1解决方法是:插上你的arduino到电脑的USB上,并确保虚拟机软件中识别并将该串口添加至虚拟设备中,在命令行里运行:dmesg | tail结果如下:...

2020-03-07 17:07:43 203

原创 Arduino学习笔记(16)-- ROS master和Arduino node通信

自定义msg和srvros_lib库默认自带的消息类型有限,根据应用的需要,有时我们需要自定义消息。步骤如下:第一步 创建在~/catkin_ws/src目录下创建一个新包testMsgSrv,当然,在任意一个原有包基础上做也是可以的。创建msg和srvmsg/TestMsg.msg 内容如下:int32 leftint32 right12srv/testSrv.srv内...

2020-03-04 21:52:27 143

原创 Arduino学习笔记(15)--Arduino & ROS

1. Why Arduino and ROS?ROS(Robot Operation System)是一个开源机器人操作系统,它是一个分布式的计算架构,集成了底层硬件驱动、节点间通讯、机器人控制、仿真环境和跨平台等功能。Arduino主要应用于控制电机驱动和各类传感器(比如超声波、IMU、里程计、电机转速PID控制等),然后通过收发消息等到ros_topic和service...

2020-03-04 19:08:13 281

原创 Arduino学习笔记(1)-- 如何手动添加Arduino Libraries

目录1. 下载库文件2. 导入.zip文件3. 批量解压至libraries文件夹4. 运行示例代码Modbus rtu库管理器可以很方便的添加第三方库,但其中只提供了一些常用的库资源,如果需要添加更多的库资源或者自定义的库,那就需要用户自己准备找到或编写库。大部分开发者都喜欢将他们编写的Arduino库放到开源社区上分享。Github 是全球最大git服务提供商,也是最大...

2020-03-04 18:17:59 1180

原创 凸优化与非线性规划基础(5)-- 无约束凸优化问题的求解方法

1. 简介2.iterative algorithms 迭代算法

2020-03-03 10:25:36 516

原创 凸优化与非线性规划基础(4)-- Semi-Definite Programming SDP

目录1. 简介2. SDP与QP、LP关系1. 简介2. SDP与QP、LP关系

2020-03-02 15:32:08 239

原创 凸优化与非线性优化基础(3)-- 二次规划Quadratic Programming

目录1. 定义2. 理解QP1. 定义二次规划(Quadratic programming),在运筹学当中,是一种特殊类型的最佳化问题。2. 理解QP

2020-03-02 15:21:58 539

原创 矩阵分解(5)-- 正定矩阵与半正定矩阵

1. 定义2. 判定正定矩阵3. 负定、半正定及不定矩阵

2020-03-02 15:09:01 687

原创 矩阵分解(4) -- 特征分解

2020-03-02 13:18:16 186

原创 矩阵分解(3)-- QR分解

目录1. 定义2. 分解方法3. Matlab求解1. 定义2. 分解方法3. Matlab求解

2020-03-02 13:13:09 397 1

原创 矩阵分解(2)--- 奇异值分解(SVD)

1. 特征值与特征向量2. SVD奇异值分解2.1 SVD定义wiki:https://zh.wikipedia.org/wiki/%E5%A5%87%E5%BC%82%E5%80%BC%E5%88%86%E8%A7%A32.2 SVD理解Ref:https://zhuanlan.zhihu.com/p/298460483. 计...

2020-03-02 13:05:08 187

原创 矩阵分解(1)-- 矩阵分解之LU分解

目录1. 分类2. LU分解2.1 定义2.2 存在性和唯一性2.3 实例2.4 应用1. 分类矩阵分解(decomposition,factorization)是多半将矩阵拆解为数个三角形矩阵(triangular matrix),依使用目的的不同,可分为几类。与线性方程解法相关的矩阵分解LU分解 奇异值分解 QR分解 极分解 特征分解2. L...

2020-03-02 12:13:50 1784

原创 矩阵分解(0)-- 矩阵相关概念及性质总结(更新)

目录1.逆矩阵1.1 求法1:伴随矩阵1.2 求法2:初等变换1.3逆矩阵性质1.4 扩展:广义逆矩阵2. 稀疏矩阵2.1 定义2.2 计算方法更新日志:01. 20200301_inverse_matrix_and_sparse_matrix1.逆矩阵注意:非奇异矩阵与以下命题等价:1.1 求法1:伴随矩阵补充:代数余子式...

2020-03-02 12:05:26 231

原创 八大排序算法总结(1)-- 算法原理篇

ing

2020-03-02 11:25:38 72

原创 凸优化与非线性规划基础(2)凸优化标准问题和线性规划Linear Programming简介

1. 凸优化问题分类凸优化的标准问题有四类:Linear Programming(LP) Quadratic Programming(QP) Semi-Definite Programming(SDP) Cone Programming(CP)而这四类的标准问题具有包含与被包含的关系,如下图所示:所以可以这么说:LP是QP的一种特殊情况,QP又是SDP的一种特殊情况,SDP...

2020-03-02 11:10:22 455

原创 ROS学习笔记(11)-- 自定义消息类型

Zhang,博客(https://blog.csdn.net/u013453604/article/details/72903398)对自定义消息类型的定义和使用有了非常详细的研究和代码实践。Wan,博客(https://blog.csdn.net/wanzew/article/details/80032121)主要研究了ROS Master话题发布者(Publisher)和arduino订阅者(...

2020-03-01 18:56:08 204

原创 ORB_SLAM2 技术详解(3)Part II -- 编译并使用ROS ORB_SLAM2 Package

1. 编译ORB_SLAM2 ROS package 1.1系统平台操作系统:Ubuntu 16.04 ROS版本:kinetic eigen库版本:3.x.x OpenCV版本:opencv3.4.7 USB摄像头:640*480,30帧1.2 创建catkin_ws使用ROS创建workspacemkdir -p ~/catkin_ws/srccd ~/ca...

2020-02-21 11:49:45 327

原创 ORB-SLAM2 技术详解(3)-- 源码编译及TUM RGB-D数据集测试

0. 摘要近段时间一直在学习高翔博士的《视觉SLAM十四讲》,学了以后发现自己欠缺的东西实在太多,好多都需要深入系统的学习。ORB-SLAM2是一套完整的SLAM方案,提供了单目,双目和RGB-D三种接口。它能够实现地图重用,回环检测和重新定位的功能。无论是在室内的小型手持设备,还是到工厂环境的无人机和城市里驾驶的汽车,ORB-SLAM2都能够在标准的CPU上进行实时工作。ORB-SLAM...

2020-02-19 11:15:37 366

原创 ROS 学习笔记(11)编译错误 Could not find a package configuration file provided by "geographic_msgs"

1. 编译错误内容Could not find a package configuration file provided by "geographic_msgs" with any of the following names: geographic_msgsConfig.cmake geographic_msgs-config.cmake2. 错误分...

2020-02-19 10:59:50 1046

原创 ORB_SLAM2编译debug 小结

1. 编译报错‘./lib/libpng.so’安装好所有的依赖项后,编译ORB_SLAM2,只要运行如下的命令就行了:cd ORB_SLAM2chmod +x build.sh./build.sh解决办法:安装libpng依赖包和zlib包1) 安装libpng前要安装ZLib2) ZLib和libpng的目录结构应该是同一级的:参考:https://bl...

2020-02-19 00:22:46 226

原创 ORB-SLAM2 技术详解(2)-- 地图初始化 Map Initialization

目录1. 地图初始化方法方法一方法二方法三2、ORB_SLAM 2 地图初始化方法第一步第二步第三步第四步第五步代码1. 地图初始化方法单目SLAM地图初始化的目标是构建初始的三维点云。由于不能仅仅从单帧得到深度信息,因此需要从图像序列中选取两帧以上的图像,估计摄像机姿态并重建出初始的三维点云。ORB-SLAM中提到,地图初始...

2020-02-18 18:51:45 178

原创 SLAM专题(10)- 最小化重投影误差与Bundle Adjustment (BA)

在SFM(structure from motion)的计算中BA(Bundle Adjustment)作为最后一步优化具有很重要的作用,在近几年兴起的基于图的SLAM(simultaneous localization and mapping)算法里面使用了图优化替代了原来的滤波器,这里所谓的图优化其实也是指BA。其实很多经典的文献对于BA都有深深浅浅的介绍,如果想对BA的全过程做一个全面...

2020-02-18 16:28:02 859

原创 凸优化与非线性规划基础(1)-- 基本概念

本文主要参考卡耐基梅隆大学(CMU)的Dr. Ryan Tibshirani教授2017年在Convex Optimization(Course 10-725/36-725)课上(课程网站链接:Convex Optimization)的Lecture Notes。以及参考了现任职牛津大学的Dr. Paul Goulart,以前在ETH任教时Convex Optimization课的Lectur...

2020-02-09 11:06:26 213

原创 SLAM专题(11)-- G2O图优化从入门到放弃(一)

目录1. Introduction1.1 什么是优化?1.2 什么是图优化?1.3 图优化理论(公式推导)1.4 什么是G2O?1.5图优化与g2o流程小结2. G2O安装指南2.1安装其他依赖库2.2克隆、下载源代码2.3 cmake、make工程2.4 测试g2o3. 小结1. Introduction本节我们将深入研...

2020-02-06 20:19:14 352

原创 (18)特征提取 之 ORB特征

目录1 、算法介绍1.1 Fast特征提取1.2 rBRIEF特征描述BRIEF算法描述改进BRIEF算法—rBRIEF(Rotation-AwareBrief)2、ORB特征提取实验2.1ORB特征提取和匹配实验C++代码3. ORB特征总结1 、算法介绍ORB(Oriented FAST and Rotated BRIEF)是一种快速特征点提取和描述...

2020-02-04 19:06:00 459

原创 Linux命令行(9)-- touch命令

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。1.命令格式:touch[选项]...文件...2.命令参数:-a或--time=atime或--time=access或--time=use 只更改存取时间。-c或--no-create 不建立任何文档。-d 使用指定的日期时间,而非现...

2020-02-03 13:01:13 89

原创 Linux命令行(8)-- cp 命令

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。1.命令格式:用法: cp[选项]...[-T]源目的...

2020-02-03 12:54:57 197

原创 SLAM 专题(2)--vSLAM技术实现机器人在不同场景下的精准导航、避障

本次学习和总结内容主要包括以下四个方面:1、vSLAM发展历程2、vSLAM技术原理及不同算法实现3、vSLAM在不同场景下的应用挑战与解决办法4、vSLAM在机器人实时导航避障中的应用实践1. vSLAM 的发展历程vSLAM的发展历程也可以说是视觉传感器的进化史,两者是相互依赖的。最早诞生的是单目相机,于是有了单目的vSLAM算法,XBox...

2020-01-04 12:18:18 1270

原创 移动机器人技术(9)-- 全向移动机器人Modeling and Control

之前写的文章分析了全向小车运动原理和基本构型,今天尝试把它部署到 Ros 上。基本原理参考系的定义需要根据 Ros by Example chapter 7 做一些修改:定义三轮车的三个轮子分别是 A、B、C, 速度分别是a、b、c; 定义半径 Radius 是中点到轮子的距离; 定义 a,b 为前轮,c 为后轮。控制程序Ros 中的的速度消息是 Twist ...

2019-11-12 18:31:48 397

FlexiTimer2.zip

Arduino定时器中断程序库文件,使用和测试请参考链接https://www.arduino.cn/thread-42559-1-1.html

2019-10-11

空空如也

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