自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 lego-loam实践02:点云预处理ImageProjection

lego loam中的点云预处理 ImageProjectionlego代码解析网上有很多资料,这里并不需要把原理重复一遍又一遍,这里更多的是说明哪段程序具体起到了什么效果,更加直观的用图示来把代码联系到实际。ImageProjection在点云处理上主要分为以下几个部分:1. projectPointCloud: 将环形的点云展开成32X1800的点云阵列(以VLP32C为例),是将点云逐一计算深度,并保存在rangeMat中。重点是rangeMat,fullinfocloud。2. ground

2021-09-30 14:31:36 990 1

原创 lego-loam实践01:配置安装GTSAM toolbox

在Windows下配置安装GTSAM最近准备学习下lego loam的深层次算法原理,学习的最好办法就是对源代码进行解析重构,mattlab有很好的显示效果,可以随时查看过程数据,是一个很好的重构语言(用C++重构和抄一遍没啥区别,再说我c++水平一般),这次记录在matlab(windows)下重构的过程和分析。这里是第一部分:如何在windows下配置GTSAM。...

2021-09-26 17:42:33 1034 1

原创 激光雷达Lidar和RTK的标定3----标定算法在matlab下的实现

激光雷达Lidar和RTK的标定算法实现(matlab)本阶段所谓标定算法本质上不过是在matlab下对标定算法lidar align的重构和实现(原始的lidar align适用于ouster激光雷达,关键点在于ouster雷达数据中的时间戳信息,由于velodyne和ouster雷达上的一些不同,原始的lidar align标定代码应用范围有限)。lidar_align源代码(github)...

2021-09-22 20:05:38 2322 2

原创 激光雷达Lidar和RTK的标定1----录制RTK和Lidar bag包以及数据预处理

录制RTK和Lidar bag包以及数据预处理开个新坑,lidar和RTK的标定一直是机器人和自动驾驶中的一个重要问题,由于直接测量很难获得准确的RTK和雷达之间的位姿关系,这里我们探索下如何在matlab下,使用RTK数据和激光雷达点云数据对RTK和激光雷达的位姿关系进行求解(优化)。这里我们开个新坑,大致会分成几个部分进行,包括1.点云数据和RTK数据在matlab下的预处理2.nlopt在windows下的安装和对应matlab环境搭建3.优化算法设计和实现注意:这里的目的主要是从算法原

2021-09-22 19:56:35 2696

原创 激光雷达Lidar和RTK的标定2-----Windows下安装和使用nlopt优化(matlab)

Windows下安装和使用nlopt优化(matlab)windows下安装和使用nlopt非常痛苦(指安装),但是一些算法上的优化(一般是点云优化)在C++上直接做很麻烦,且显示效果不佳,因此用matlab更加简单些。这里记录了win下安装混合使用nolpt库的过程。(这里仅有64位电脑的安装过程)安装过程安装过程分为这几个步骤:1.前置需求cmakemingw642.nlopt在windows下安装下载安装过程3.在matlab中使用nlopt(难度最大,出问题最多的地方)如何使用

2021-09-22 16:24:06 1761 5

转载 c/c++常见面试题05

面试题 1: 变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入 extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。面试题 2: 写出 bool 、int、 float、指针变量与...

2020-04-02 16:54:49 171

转载 c/c++常见面试题04

(一) 初级题1、什么是预编译,何时需要预编译:(1) 总是使用不经常改动的大型代码体(2) 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头2、char * const pchar const * pconst char *pchar * const p; //常量指针,p的值不可以修改char con...

2020-04-02 16:18:59 921

转载 c/c++常见面试题03

1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被继承,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私...

2020-04-02 14:40:00 351

转载 c/c++常见面试题02

1 两个字符串s、t,把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串void insert(char *s, char *t, int i){ char *q = t; char *p =s; if(q == NULL)return; while(*p!='\0') { p++; } while(*q!=0) { *p=*q; p++; q++;...

2020-04-02 12:09:33 1514

转载 c/c++常见面试题01

1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。  2、如何引用一个已经定义过的全局变量?  答:...

2020-04-01 17:16:08 1192

原创 第三篇:超声波接收装置

超声波接收模块前文:飞镖自动靶的设想与实践前文:超声波发射装置接收模块基于红外芯片cx20106,电路可以将超声波的接收信号进行放大,并以低电平输出。下面是超声波接收模块电路图:pcb图:pcb图2:...

2019-06-17 21:48:54 2549 1

原创 第二篇:超声波发射装置

超声波发射装置的设计与制作前文:飞镖自动靶的设想与实践这篇文章主要讲超声波发射装置的设计思路。所谓发射装置就是通过一个单片机控制放大电路,把超声波接收探头接到放大电路中即可。为什么采用单片机方案,这个理由很简单:因为我好久没碰过pcb设计了,采用单片机以外的波形发生电路对我来说设计难度和焊接难度都比较大(其实就是懒!)。下面是超声波发射装置电路图:超声波发射电路基本逻辑超声波发射电路包...

2019-06-11 15:04:37 3047

原创 第一篇:飞镖自动靶的设想与实践

飞镖自动靶的设想与实践之前偶然在youtube上看到了一个可以自己接飞镖的飞镖吧,让手残党也可以次次集中红心,顿时有了很大兴趣,最近闲来无事,也想自己做一个。移动飞镖靶的作者是前NASA工程师 Mark Rober,使用基于动作捕捉系统的技术方案来捕捉飞镖轨迹,并使用多台步进电机作为动力移动飞镖靶。别的不说,这一套动作捕捉系统就不是我等能买得起了。对此我只能设想一些其他定位方案了。设想一:视频...

2019-06-11 14:39:56 796

原创 Gmapping建图

Gmapping实战前文中,我们总共做了以下几件事:完成了基于ros小车框架安装。完成了小车下位机的安装。完成了上位机安装,并连接到ros系统,可以发布odom话题,使用键盘控制gmapping数据集测试。激光雷达选型与安装。接下来我们来完成使用gmapping的建图与导航工作。首先下载安装激光雷达的驱动程序,当然只针对我买的这一款,不是做广告,这家的技术售后简直就是垃圾,唯一...

2019-01-15 21:20:15 5175 13

原创 视觉slam-----第五篇 ORB特征

视觉slam-----第五篇 ORB特征特征点为了估计相机的运动,我们需要从图像中选取比较有代表性的点。这些点在相机视角发生少量变化后会保持不变,所以我们会在各个图像中找到相同的点。然后,在这些点的基础上,讨论相机位姿估计问题,以及这些点的定位问题。在经典 SLAM 模型中,把它们称为路标。而在视觉 SLAM 中,路标则是指图像特征(Features)。特征是图像信息的另一种数字表达形式,在...

2019-01-15 13:16:32 1259

原创 欧拉角,四元数,旋转

欧拉角,四元数,旋转欧拉角欧拉角是我们最常用最熟悉的表示刚体姿态的数学表示:绕物体的 Z 轴旋转,得到偏航角 yaw;绕旋转之后的 Y 轴旋转,得到俯仰角 pitch;绕旋转之后的 X 轴旋转,得到滚转角 roll。此时,我们可以使用[r,p,y]T[ r , p , y ] ^ { T }[r,p,y]T 这样一个三维的向量描述任意旋转。这个向量十分的直观,我们可以从这个向量想象...

2019-01-14 16:56:20 497

原创 tf坐标系转换(gmapping)

坐标系变换上一节:slam_gmapping安装与测试gmapping tf坐标变换tf关系图是机器人坐标关系非常重要的一环,作为gmapping测试来说,它的关系图是这样的:输入:rosrun rqt_tf_tree rqt_tf_tree对于gmapping来说,一般坐标系就是map,odom,base_link,base_laser坐标系。map:地图坐标系,顾名思义,...

2019-01-13 21:33:23 6519

原创 激光雷达数据分析

激光雷达topic /scan分析既然要做一个基于gmapping的小车,那么激光雷达就是最重要的传感器之一,对应的激光雷达扫描信息就很重要了。激光雷达没什么神秘的,本质上就是一个测距传感器,只不过由于加上旋转,就可以测一个面上的距离数据(也就是360°),在扫描区域中激光雷达在每个角度分辨率对应位置解析出的距离值会被依次连接起来,这样,通过极坐标表示就能非常直观地看到周围物体的切面轮廓。...

2019-01-13 19:33:33 17335 5

原创 Gmapping数据集数据解析

gmapping测试数据解析在安装Gmapping的过程中,我们使用了下载到的数据集来进行测试。为了能在之后能完成自己的激光雷达导航小车,有必要深入了解一下这些数据集的内容,下来我们对这些进行分析。参考链接:激光slam Gmapping安装与测试数据集下载:激光雷达数据集.bag数据集发布的话题下载一个数据机后,我们运行一下数据集:先roscore:roscore新开终端ro...

2019-01-11 19:43:42 2520

原创 视觉slam-----第四篇 卡尔曼滤波

最小二乘法和卡尔曼滤波很多人都疑惑,一个滤波问题怎么才能用得上卡尔曼滤波呢?扩展卡尔曼滤波又和卡尔曼滤波有什么关系?本篇博客不讲这些内容之间的推导关系,毕竟已经有无数人详细讲解了这个过程,这里只大概捋一捋它们之间的关系,已经我们该如何进行选择。...

2019-01-08 23:25:01 1190

原创 卡尔曼滤波原理详解

卡尔曼滤波原理详解卡尔曼滤波在最有估计方面真的是非常常用,当然也是非常优秀的。这次我们从基本原理出发来理解卡尔曼滤波。包括卡尔曼滤波的前置知识:协方差矩阵,最大似然估计等。协方差和协方差矩阵协方差协方差是对两个随机变量XXX,YYY联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为零。cov⁡(X,Y)=∑i=1n(Xi−X‾)(Yi−Y‾)n−1...

2019-01-08 23:23:34 4040 1

原创 视觉slam-----第三篇 最小二乘法

     视觉slam

2019-01-07 22:42:15 975

原创 视觉slam-----第二篇 相机和图像

     视觉slam系列更多偏向对本人的记录而非讲解,因此叙述部分会占多数,推导过程几乎没有,文章主要内容摘自《视觉slam十四讲》《计算机视觉中的多视图几何》《机器人学中的状态估计》,博客内容仅为帮助自己记忆,本人仅起到总结作用,所有内容均摘自以上几本书。相机模型像素坐标系针孔相机模型fff代表相机的焦距,空间上有某点P

2019-01-07 22:29:05 706

原创 视觉slam-----第一篇 刚体和李群

视觉slam-----第一篇为什么学习slam本人早起从事硬件和嵌入式开发,只有又对无人机产生兴趣,从事了一段时间的农业无人机开发工作,主要是算法方面的。现在又从事导航算法的开发,开发过程中接触了一些视觉导航方面的技术,但属于很特殊的视觉导航,和现在的主流格格不入,因此打算从零开始学习视觉slam,从最起初开始,从硬件到软件,从软件到算法,从算法到数学,视觉slam系列就是 用来记录本人的学习...

2019-01-07 19:49:51 427

原创 激光slam Gmapping安装与测试

slam_gmapping安装与测试既然想做一个小车,就干脆把小车做的有趣一点,小车现在已经可以接受键盘的控制实现行走了,下一步就是给它加一个新功能,比如利用激光slam实现定位与导航。安装1.直接通过命令安装(前提是安装好了ros kinetic环境)sudo apt-get install ros-kinetic-slam-gmapping2.下载用于测试的数据包,这里直接通过网盘...

2019-01-07 17:52:19 12555 4

原创 rgbd slam v2+kinect2

rgbd slam v2+kinect2的使用想做一个深度视觉slam项目的话,最好是买一个深度相机,但现在市面上深度相机真的有点贵,在这方面,kinect2代就显得非常有性价比,性能不错,也不算贵,最起码比那些常见的大部分深度相机都便宜,网上的资料也很多。rgbd slam v2使用kinect2需要安装一些东西,主要是 iai_kinect2iai_kinect2安装关于ros kin...

2019-01-06 19:55:10 1068

原创 rgbd slam v2安装和测试

rgbd slam v2安装

2019-01-06 18:15:32 3771 10

原创 基于ros_arduino_bridge的智能小车----下位机篇

基于ros_arduino_bridge的智能小车----下位机篇

2019-01-06 12:43:31 6408 1

原创 基于ros_arduino_bridge的智能小车----上位机篇

ros_arduino_bridge安装与使用1.下载ros_arduino_bridge进入你的workspace目录下的src目录cd ~/catkin_ws/srcgit clone https://github.com/hbrobotics/ros_arduino_bridge.git2.编译cd ..catkin_make实际上,编译完成后并不能直接控制小车,还需要匹...

2019-01-06 12:36:43 8054 16

原创 基于ros_arduino_bridge的智能小车----硬件篇

2019-01-06 12:35:08 5548 4

apc220的一些问题

关于无线模块apc220的一些说明关于无线模关于无线模块apc220的一些说明块apc220的一些说明

2013-03-20

空空如也

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

TA关注的人

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