自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 kdtree:基于flann库的kdtree,改自PCL库

type.h中定义了点云数据结构和基础的index结构。

2023-05-23 21:05:48 293

原创 pcl使用icp对2d点云进行匹配icp_2d

pcl库2d点云的icp匹配

2023-04-19 08:47:31 916

原创 PCL ICP使用OMP加速(ICP_OMP)

pcl的icp算法,采用omp加速优化

2023-04-17 21:14:54 1792 2

原创 ubuntu20.04(ros-noetic)编译cartographer出现undefined reference to `absl::lts_20211102问题的解决办法

​最近需要在ubuntu20.04下编译cartographer,编译方法参照如下链接:Compiling Cartographer ROS — Cartographer ROS documentation在运行catkin_make_isolated --install --use-ninja后出现undefined reference to `absl::lts_20211102等系列问题,排查后发现是absl库在编译时没有使用c++17编译而导致的,为了解决这个问题:​

2022-11-27 20:33:17 2519

原创 cartographer算法TimestampedTransform结构及Interpolate函数

TimestampedTransform结构指的是带有时间戳的变换矩阵,结构体如下所示:struct TimestampedTransform { common::Time time; transform::Rigid3d transform;};Interpolate函数的作用是计算两个TimestampedTransform之间某个时刻的TimestampedTransform,其中start指的是起始时刻的TimestampedTransform,end指的是终止时刻的Timest

2020-09-10 15:13:26 340

原创 ros::Time类型win下计时错误及解决办法

ros下Time类能获取系统从1970-1-1至今累计的时间,通过秒及纳秒表示。win下使用ros的Time类以获取时间戳时,发现时间戳计算错误,计时源代码在time.cpp中的ros_walltime函数中: void ros_walltime(uint32_t& sec, uint32_t& nsec) {#if !defined(_WIN32)#if HAS_C...

2020-01-14 16:21:01 1519

原创 cartographer之MotionFilter

        MotionFilter是cartographer中用来判断是否对子图进行更新的一个类,具体应用在local_trajectory_build_2d和local_trajectory_build_2d中。首先这里对MotionFilter的使用场景进行推导,例如,在local_trajectory_build_2d中,AddRangeData函数调用AddAccumulatedRa...

2019-02-02 10:02:43 1532

转载 创建一个ROS工作空间

mkdir -p ~/catkin_ws/srccd ~/catkin_ws/srccatkin_init_workspacecd ~/catkin_ws/catkin_makesource devel/setup.bash

2019-01-17 15:43:32 186

原创 AMCL 全局定位服务

调用命令 rosservice call /global_localization "{}"

2019-01-17 15:31:11 1958

原创 倍加福r2000雷达驱动——pepperl_fuchs_r2000 driver

网址如下:http://wiki.ros.org/action/fullsearch/pepperl_fuchs_r2000?action=fullsearch&context=180&value=linkto%3A%22pepperl_fuchs_r2000%22

2019-01-17 15:24:18 5534 3

转载 ubuntu14.04 升级cmake

Ubuntu14.04 默认CMake版本是2.8.X 当我们需要更高级版本的时候就需要升级CMake。具体步骤如下: 1)通过PPA安装:sudo add-apt-repository ppa:george-edison55/cmake-3.xsudo apt-get updatesudo apt-get upgradesudo apt-get install cmake3...

2019-01-17 14:57:49 563

原创 windows下g2o_2d配置

(1)首先需要在windows下编译好g2o并安装好eigen;(2)添加g2o的环境变量,要分x86、x64,以及debug和release,需要提前编译好,我编译的时候生成了x86和x64两个版本,如下图                                                                g2o-master与g2o-master_x4下b...

2018-11-29 17:31:59 1141 1

原创 Cartographer保存地图

Cartographer无法利用map_server保存地图,根据下面的步骤可以顺利的将地图保存起来:1、Finish the first trajectory. No further data will be accepted on it.rosservice call /finish_trajectory 02、Ask Cartographer to serialize its cu...

2018-11-15 11:35:42 3106 4

原创 ubuntu14.04更换阿里云软件源

1、备份源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup2、打开编辑器gksu gedit /etc/apt/sources.list如果提示没有安装gksu,按照提示安装即可。3、更换将文件中的内容更换为下面的内容即可deb http://mirrors.aliyun.com/ubuntu/...

2018-07-18 10:48:09 1149

原创 相机成像模型

      相机成像的过程就是世界坐标系向像素坐标系转换的过程,即:世界坐标系(3d)->相机坐标系(3d)->像平面坐标系(2d)->像素坐标系(2d),经过这样一级一级的转换之后,物体在空间中的坐标即转换为在图像中的像素坐标。四个坐标系的表示如下:世界坐标系(Xw、Yw、Zw)相机坐标系(Xc、Yc、Zc)像平面坐标系(x、y)像素坐标系(u、v)1)世界坐标系(3d)-&g...

2018-07-02 11:51:19 7827 1

原创 C++txt文件读写

一、读取txt中的矩阵txt中存储3*3的矩阵,以逗号隔开:int a[3][3];ifstream fin(_fileName, ios::in);char buffer[256];int idx=0;if (fin.is_open()){while (!fin.eof()){fin.getline(buffer, 100);char *substr ...

2018-02-06 16:56:51 526 2

原创 密集匹配之置信度传播BP

置信度传播是一种基于马尔科夫随机场理论的立体稠密匹配算法,马尔科夫随机场的具体理论这里不再详述,只对置信度传播立体匹配的实现原理做一定简述。 成对的马尔科夫模型是BP的基础,成对的含义就是包含显式节点和隐含节点。假设我们观察到像素yi的一些信息,需要据此推断隐含场景xi的信息,可以假设xi与yi之间存在一些统计以来关系,称之为似然函数。设,N为邻域系统,则可以用势函数来表示相邻节点

2017-05-31 15:15:56 1327

原创 密集匹配之半全局匹配SGBM

密集匹配,稠密匹配,多向动态规划

2017-05-27 14:42:18 10107 6

原创 密集匹配之动态规划DP

动态规划通常应用于最优化问题的求解中,Baker、Ohta 等将动态规划引入立体匹配中来获取视差图。动态规划匹配的过程可以分为两个阶段,建立视差空间和动态规划优化,将立体匹配问题转化为视差空间内寻找最优路径的问题。 密集匹配通常会充分利用影像间的核线约束条件,对立体像对进行核线纠正,这样同名像点肯定位于对应的同名核线上,降低了匹配的难度。视差空间影像DSI(Disparity Sp

2017-05-27 14:07:33 2313

原创 密集匹配之区域生长RegionGrow

区域生长一般从一组种子点开始,按照视差连续性原则将更多的像素合并进入种子点,从而不断扩张种子点区域,直至达到设定的终止条件为止。与传统的局部匹配算法相比,区域生长算法加入了视差连续性约束,极大的提高了匹配的速度和正确度。 区域生长密集匹配算法的第一步是匹配一些同名点对作为初始种子点,种子点正确与否直接影响生长的结果。区域生长匹配只需少量的初始种子点即能生成较为密集的匹配点集,因此可

2017-05-27 13:31:31 2866 12

原创 匹配代价函数之ZNCC

零均值归一化积相关算法ZNCC,利用两个待匹配像素点邻域窗口内的像素,通过零均值归一化相似性度量公式来计算两个待匹配像素之间的相似程度。

2017-05-26 21:31:26 11640 5

原创 匹配代价函数之SAD

AD表示像素的灰度差绝对值,是SAD表示待匹配像素邻域内的像素的AD之和。

2017-05-26 17:14:13 4876

转载 OpenCV Mat数据类型及位数总结

OpenCV Mat数据类型及位数总结 float:  4字节,6-7位有效数字 -3.4E-38 到 3.4E38    double: 8字节,15~16位有效数字 -1.7E-308 到 1.7E308    在OpenCV里面,许多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分配变量,有的数据结构也会因为图像文件格式的关系而给予适当的变量,因此

2015-05-29 16:02:44 933

转载 Open CV常用函数

常用的OpenCV函数速查 1、cvLoadImage:将图像文件加载至内存;2、cvNamedWindow:在屏幕上创建一个窗口;3、cvShowImage:在一个已创建好的窗口中显示图像;4、cvWaitKey:使程序暂停,等待用户触发一个按键操作;5、cvReleaseImage:释放图像文件所分配的内存;6、cvDestroyWindow:销

2015-05-29 15:57:31 3965

转载 C/C++计时方法及精度

目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但是各种计时函数的精度不一样.下面对各种计时函数,做些简单记录.  方法1,time()获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordin

2015-05-29 15:40:26 967

空空如也

空空如也

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

TA关注的人

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