自定义博客皮肤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)
  • 收藏
  • 关注

原创 二、ceres学习——ceres在视觉导航中的简单应用

ceres在求解视觉导航方面,就依赖一个数学模型,就是相机的投影模型。在视觉导航中,已知的条件只有特征点在图像中的二维坐标uv,特征点在相机坐标系下的描述应该是一个三维坐标XYZXYZ→uvZ​uv1​​​fx​00​0fy​0​cx​cy​1​​​XYZ​​在世界坐标系下描述这个特征点是XW​YW​ZW​​XYZ​​R​XW​YW​ZW​​​t其中R。

2023-02-27 13:20:03 277

原创 一、ceres学习——初识ceres

ceres曲线拟合

2023-02-23 14:15:54 272

转载 【无标题】

【代码】【无标题】

2022-09-26 17:47:52 192

原创 ceres拟合曲线——自动求导对高阶非线性函数的低鲁棒性

今天在敲ceres的代码的时候,发现ceres的自动求导方法对于求解带噪声的曲线拟合问题表现出来一些拟合出错的情况,记录下来。y=e0.3x2+0.2x+0.9y=e^{0.3x^2+0.2x+0.9}y=e0.3x2+0.2x+0.9结果短区间如果把数据区间设定为[0,4][0,4][0,4],在均值为15的噪声下,虽然最后可以把曲线拟合出来,但是系数其实不对:如果把数据区间设定为[0,8][0,8][0,8],在均值为15的噪声下,结果是正确的:

2022-09-15 15:16:55 195

原创 QT+OpenCV——视频流卡通化(图一乐)

qt+OpenCV对视频流进行卡通化

2022-09-05 16:23:00 919 4

转载 Mat2QImage

【代码】Mat2QImage。

2022-09-02 09:06:08 247

原创 QT+RVIZ——ImageView类实时显示ROS图片

虽然librviz的API里面包含image_view.h的,但是一直到noetic,ros都没有把image_view的共享库编译出来,没有办法,只能通过修改源文件,自己生成共享库。这里需要特别注意,一直到我写这篇文章为止,librviz共享库依赖的都是OGRE1.9,如果你手动安装过OGRE,新的OGRE一定是v13版本以上的,那么需要把新的OGRE卸载了,如果你看不懂这段话,证明你没有安装新的OGRE,那就啥都不用做。

2022-08-25 14:11:41 1810 7

原创 Qt+RVIZ——3D视场背景颜色更新

本文讲述如何改变rviz::VisualizationManager类中3D视图的背景颜色。

2022-08-22 16:29:41 1038 1

原创 DWM路径规划(结合Matplotlib.animation)

算法实现逻辑在上一篇博文里面,在这里就不再赘述了。原理我也是看别人的代码和文章学习的,虽然不是原创算法,但是好歹代码是自己依据自己的学习写出来的。本次重写代码,用matplotlib内置的动画模块代替上一篇博文的逐帧显示逻辑,同时修改了上一篇博文的一些错误,改进代码,更具逻辑性。...

2022-08-04 00:04:06 260 5

原创 C++随机数代码

C++随机数代码(供复制粘贴)

2022-07-27 14:15:40 2125

原创 Intel Realsense L515 ros节点时间戳不同步解决方法

在使用IntelRealsenseL515的ros程序的时候,会出现。

2022-07-23 21:55:56 1548 24

原创 ROS多传感器数据时间戳同步方案——message_filters::TimeSynchronizer

在ROS开发过程中,有一些时候需要处理来自多个传感器的数据,比如我自己做的一些东西,就需要把不同相机的点云数据进行融合,融合的过程中需要判断传感器数据的时间戳,保证融合的数据尽可能是两个传感器的同步数据,一般的实现是用队列来存储传感器的数据,在不断的出队过程中比较传感器队列的时间戳,如果时间戳之间相差的时间在容忍范围内,就可以认为是同步的。这个也是VINS里面处理双目相机和IMU数据的方法,这样的方法一个很大的缺点是需要用一些进程锁和条件变量来保证内存访问,因为有一些全局变量例如传感器数据的队列可能同时会

2022-07-06 23:21:29 5279 2

原创 ROS——多线程callback函数

ROS默认一个线程,也就是如果有多个订阅者对象,回调函数会一个接一个执行,对于一般的数据处理来说,一个线程可能已经足够执行多个回调函数并且看不出来阻塞的迹象,但是对于点云等大体量的数据处理来说,一个线程往往不能满足,ROS提供多线程处理方式ROS官文地址: link...

2022-07-06 12:16:05 1434 1

原创 书写CMakeLists文件,使得在C++工程中使用qt的ui文件

在QT Creator中似乎是不能直接生成CMakeLists文件的,但是在一般的C++编程的时候需要用到qt中的.ui文件。其中,参考qt官方文档AUTOMOC、AUTOMOC的意思大概是把QT转换ui文件的权限转移给cmake,这个也是使用ui文件的关键,set(CMAKE_INCLUDE_CURRENT_DIR ON)语句使得cmake可以找到ui文件。最后只需要把ui文件放在和main文件同一个文件夹就可以,cmake就会根据ui文件生成对应的ui.h文件。.........

2022-06-10 17:29:53 1229

原创 ROS安装——rosdep init、rosdep update失败解决方案

按照ROS官方论坛的步骤,安装ROS的最后几个步骤是但是偶尔因为网络问题出现失败的问题,本文记录本人在安装ROS过程中的解决方法。这个语句的作用是在目录/etc/ros/rosdep/sources.list.d下生成文件20-default.list,也就是说,你直接在这个文件夹下面创建这个文件就可以,并且这个文件在github上是直接有的。在该库的rosdep/sources.list.d目录下就是20-default.list文件,把它用管理员权限复制到/etc/ros/rosdep/source

2022-06-09 18:07:16 682

原创 ROS-Qt开发——librviz可视化传感器数据+UI开发

本文通过参考librviz tutorial,在ubuntu20+ros noetic上开发传感器数据可视化的RVIZ+QT程序。诚然,可以通过RVIZ上的panel插件功能实现RVIZ和QT的融合,但是只能实现一些简单的QT,并且在一些场合,QT应该是主角,RVIZ只能起到可视化传感器数据的作用,在这种情形下,以RVIZ为主体开发UI会有许多冗余的功能,导致程序灵活性欠缺。其实,RVIZ可视化传感器数据的功能可以通过librviz直接在程序中实现。这样,以QT为主体进行开发,可以实现所有QT的功

2022-06-06 07:25:02 3205 10

原创 凸集学习——理解凸集概念、凸包演示

凸集概念设集合S∈RnS\in R^nS∈Rn,如果对任意的x1x2∈Sx_1x_2\in Sx1​x2​∈S,和任意λ∈[0,1]\lambda\in[0,1]λ∈[0,1],都有λx1+(1−λ)x2∈S\lambda x_1+(1-\lambda)x_2\in Sλx1​+(1−λ)x2​∈S,那么说SSS是一个凸集。凸包概念设x1,x2,...,xm∈Rnx_1,x_2,...,x_m\in R^nx1​,x2​,...,xm​∈Rn,λi∈[0,1],i=1,2,...,m\lambda_i

2022-05-21 16:06:18 902

原创 C++11学习——委派构造函数

什么是委派构造函数当某一个类或者结构体含有多个构造函数,并且构造函数里面有许多相同的代码,那么可以把相同的代码抽取出来,写成一个通用的构造函数,其他构造函数通过委派上述通用的构造函数,达到减少代码书写量的目的。class C { C(int a_) { work1(); work2(); work3(); a = a_; } C(int a_, double b_) { work1(); work2(); work3(); b = b_; } C(int a_,

2022-05-19 09:15:14 173

原创 C++11学习——继承构造函数

什么是继承构造函数指的是派生类通过使用using关键字可以继承基类中的构造函数。事实上using关键字可以继承基类中的任何函数。class A {public: A(int a_) { a = a_; } int a;};class B :public A { using A::A;};上述代码说的是类B继承类A,通过using关键字继承A的构造函数(本来A的构造函数不是虚函数,B是不能直接调用的),那么类B就可以调用类A的构造函数来初始化一些公有变量。为什么要有继承构造函数

2022-05-18 19:36:25 1289

原创 matplot.pyplot.text——在图中写矩阵的Tex

在matplotlib中使用TeX写矩阵公式

2022-05-16 21:12:54 468

原创 matplotlib--keyword argument

matplotlib–keyword argument原文:matplotlib官文说的是matplotlib生成图像所使用到的数据可以通过一个有关键字的字典传进来。import matplotlib.pyplot as pltimport numpy as npnp.random.seed(19680801)data={ 'a':np.arange(50), 'c':np.random.randint(0,50,50), 'd':np.random.randn(50

2022-05-16 20:42:48 338

原创 Ceres::AutoDiffCostFunction拟合曲线

学习ceres::AutoDiffCostFunction求解拟合曲线的参数

2022-05-05 13:38:54 2255

原创 图像去畸变、双线性插值

图像去畸变原理文章目录图像去畸变原理前言一、去畸变原理前置知识——区分归一化坐标与像素坐标去畸变公式二、去畸变代码实现三、双线性插值为什么要有插值算法邻域插值双线性插值前言记录了学习图像去畸变原理以及结合双线性插值完成去畸变编程一、去畸变原理前置知识——区分归一化坐标与像素坐标相机成像一共有三个平面:真实世界(如果不考虑深度,可以将其看成一个平面)、相机成像平面(我理解就是相机中类似于胶卷的部分)、像素平面(就是电脑中看到的像素格子组成的平面)。去畸变公式是建立在归一化坐标平面上的,有

2021-10-10 15:16:00 2473 10

原创 Python实现动态窗口避障及路径规划

速度空间是在下一个时间间隔之内,根据船的实际情况:比如加速度、当前速度等等定义,就是船在下一个时间间隔之内所有可能的速度和加速度的集合,理解起来就是一个二维的矩阵。比如说当前速度为,偏航角为°,假设船的最大加速度为,最大角加速度为°/s,时间间隔为,船的最大允许速度为,那么当前状态的速度空间中,速度取值为,偏航角取值为55°~65°。因为对于速度空间中的每一个速度与角速度,在一定的时间内都能跑出一条轨迹,成本函数的作用就是筛选出这些轨迹中的最优值。...

2021-08-27 13:05:19 5046 8

原创 matplotlibcpp在linux上安装及简单使用(结合opencv显示图像)

前言这段时间一直在做slam,使用到opencv,因为要把多张图片同时显示在一个窗口上以供对比,在python上很简单用一个plt.imshow()就可以实现了,于是我就想到在c++上也使用matplotlibcpp来实现这个效果,效果如下: 安装matplotlibcpp(ubuntu)我写这篇文章是2021年七月一号,git上的地址是:https://github.com/lava/matplotlib-cpp ,上面对于这个库的介绍已经挺详尽并且example里面也有许多例程,这里不再赘述

2021-07-01 10:48:39 2872 4

1_perspectiveCV.zip

1_perspectiveCV.zip

2023-03-26

空空如也

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

TA关注的人

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