自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 SLAM与现实复杂场景不符的一些假设

SLAM环境感知迈向通用性场景,仍要解决鲁棒性问题。下面按照个人经验和理解给出了SLAM中与现实情况不符的一些假设。

2024-12-06 12:07:27 667

原创 DSOL源码基本函数列表

一个更清楚版本的直接稀疏里程计DSOL,简介DSOL的函数名和算法流程,帮助大家了解

2024-10-16 12:19:15 763

原创 多视图变换矩阵与SLAM位姿估计中的地图点投影的几何约束

Homography矩阵:适用于平面场景和特定的运动情况,可以用于图像配准和特征匹配,但不适用于一般的三维场景。Essential矩阵:精确的相机位姿估计和三维重建,需要相机内参。Fundamental矩阵:不需要相机内参,可用于特征点匹配的几何约束和初步的相机位姿估计,。在初始化阶段,计算Essential矩阵、Homography矩阵或Fundamental矩阵来初始化相机位姿和地图点。运动跟踪阶段:通过特征点匹配和PnP算法估计相机位姿,利用局部BA优化相机位姿和地图点位置。

2024-06-11 17:31:28 582

原创 在docker中运行SLAM十四讲程序

docker pull ddhogan/slambook:v0.1 使用XLaunch显示轨迹可视化,过程中的tips

2024-05-21 21:55:27 726 1

原创 C++的lambda函数、bind函数、类函数绑定参数,学习测试用例

如何使用Lambda表达式、std::function 和 std::bind 处理普通函数、多参数函数以及类成员函数的绑定和调用

2024-05-21 09:48:06 289

原创 orb-slam3的优化函数

列举总结

2024-04-01 23:39:29 1144 1

原创 ORB-SLAM2重要函数总结(1)——特征点、地图点、关键帧

IC_Angle通过遍历特征点周围的像素,利用灰度质心法来计算特征点的角度朝向。具体地,它根据像素值和像素坐标的加权和来计算方向角度,使特征点具有旋转不变性。函数通过遍历一组特征点的方向角度,并为每个特征点调用IC_Angle函数来计算其方向角度,以实现特征点的旋转不变性,从而提高特征匹配的鲁棒性和性能。keypoints中的每个特征点的angle属性被更新。用于计算ORB特征点的描述子。

2024-01-14 22:48:48 1234

原创 地图点(MapPoint)和关键帧(KeyFrame)——ORB-SLAM2

【代码】地图点(MapPoint)和关键帧(KeyFrame)——ORB-SLAM2。一些容易混淆的概念和函数

2024-01-13 18:02:49 559

原创 ORB-SLAM2局部建图LcalMapping函数说明

() 函数用于检查新增的地图点,根据地图点的观测情况剔除质量不好的新增地图点,确保地图的质量和一致性。() 函数检查并剔除不合格的新增地图点。通过遍历最近添加的地图点列表,根据观测比例和相机数量等因素进行筛选和标记,确保地图中的地图点质量和一致性。CreateNewMapPoints() 函数用于根据当前关键帧与相邻关键帧之间的特征点匹配,通过三角化产生新的地图点,以提高地图的稳定性和密度。在局部建图线程中,会在共识关键帧之间重新进行特征匹配、三角化,生成新的地图点。这对于稳定的跟踪非常重要。

2024-01-01 09:29:24 1168 1

原创 Ubuntu系统根据启动后的联网状态自动打开WiFi热点

Ubuntu系统根据启动后的联网状态自动启动WiFi热点

2023-09-05 15:26:25 1681 1

原创 Ubuntu18.04配置ZED_SDK 4.0, 安装Nvidia显卡驱动、cuda12.1

ubuntu桌面->左下角九宫格->software & update->additional Drivers。选择合适的,比如我选择530驱动。出现这个的原因如下:ubuntu自己把GPU的驱动更新了,导致nvidia显卡 Kernel Module 与Driver Version 不一致。安装完cuda后,nvidia-smi右上角的cuda版本可能会变化,这不影响。需要注意:关闭更新、关闭不需要的源、选择适配的驱动版本。在软件更新中心里,手动安装显卡驱动。根据显卡驱动、下载cuda。

2023-08-05 09:44:53 815

原创 控制串口数据解析函数线程的频率,并且采用Ctrl+C终止

Python版程序,串口通信用`threading.Timer`控制执行某个函数的频率,并且采用`keyboardInterrupt`控制终止

2023-07-09 11:26:14 428

原创 USB串口通信,树莓派使用GPIO口,收发16进制数组的Python代码

上位机采用USB串口,树莓派使用GPIO口,两者串口通信收发16进制数组的Python代码

2023-07-08 23:27:23 2895

原创 上位机和树莓派采用USB转TTL模块连接,采用串口通信

树莓派的GPIO引脚UART接口标有TX(发送)和RX(接收)引脚。下面是一个python示例,展示了如何使用USB转TTL模块在Linux系统的工控机和树莓派之间进行双向串口通信的基本框架。

2023-07-08 18:38:38 1549

原创 C++版ROS节点函数中,通过launch文件配置bool型参数

launch文件中配置为,函数中调用nh.param("your_param_name", your_param, false);

2023-07-03 18:04:17 651

原创 python版的ROS节点以字符串为参数输入,并在launch文件中配置

配置参数采用,程序中调用采用input_string = rospy.get_param('~input_string')

2023-07-02 21:20:55 802

原创 多源传感器GNSS INS 视觉 LiDAR 组合导航与SLAM开源项目总结

本文更改自 吴桐wutong 微信公众号文章。

2022-12-22 15:39:09 8680 1

原创 《视觉SLAM十四讲》示例程序编译报错处理(上)

Ubuntu 22.04,所有库采用最新版。这本书中的代码有一些因为版本的问题会报错,本文总结一下我遇到的问题。

2022-12-07 10:15:04 2264 1

原创 Pangolin安装报错解决

Pangolin编译报错,无法安装:用GitHub上的release版[压缩包]

2022-11-27 15:10:49 1426

原创 git版本管理:分支合并常用命令

git版本管理:分支合并常用命令

2022-11-12 17:55:02 9779

原创 最优控制理论 九、Bellman动态规划法用于最优控制

简单列举了确定性问题、决策过程的动态规划法和连续系统最优控制的Hamilton-Jacobi-Bellman方程,用于有限时域动态系统进行轨迹优化

2022-10-21 08:24:32 5913 1

原创 ROS2话题通信与包创建与ROS1的异同

2张图总结了ROS2在topic通信和包创建的异同

2022-10-03 10:54:25 719

原创 ubuntu22.04备份系统的完整操作过程

进入U盘启动盘,需要备份除了swap扇区以外的4个扇区。本文按照mksquashfs 命令备份。下面是备份系统整个过程的命令及其输出。

2022-09-25 20:35:39 5754 3

原创 3维空间目标跟踪的CV,CA,CT动力学模型

类似于二维平面上车辆转动的CV,CA,CT模型。3维空间的CV、CA、CT模型也存在。用于目标跟踪时,需要考虑的角速度、速度、加速度之间的耦合关系更为复杂,所以本博客列举了这些公式。

2022-07-13 08:48:49 7872 1

原创 CSDN博客markdown编辑器图片调整大小

括号之间添加“#pic_center =300x”即可调整好大小

2022-05-23 11:36:27 311

原创 α-β滤波器(一种1维稳态Kalman滤波器)详解

本文属于控制系统最优滤波,介绍了一种经典的1维数据滤波器。一.α-β滤波器推导、 二.作为稳态滤波器与Kalman滤波的比较、 三.α-β的参数设置及其最优性、 四.MATLAB/Simulink仿真演示、 五.总结

2022-05-18 17:50:19 8316 1

原创 Python获得程序的运行时间

import timetic= time.time()# ...toc=time.time()print('运行时间t= %f'%(toc-tic))

2021-10-16 23:37:34 526

原创 最优控制理论 五+、极大值原理Bang-Bang控制问题的求解

就一个一维Bang-Bang控制、最小能量+到达时间混合性能指标的问题,给出了MATLAB程序。

2021-10-09 18:20:48 7231 17

原创 Python创建行向量与列向量

Python创建行向量与列向量X0 = np.array([1,2,3,4,5,6])# 一维向量,不能与矩阵相乘X0 = X0[:,np.newaxis] # 二维列向量,6*1# X0 = X0.T # 二维行向量,1*6Phi_t0tf = np.array([[1,0,0,0,0,0], [0,1,0,0,0,0], [0,0,1,0,0,0], [0

2021-09-17 11:43:10 4787

原创 利用Python创建Kalman滤波器用于多普勒测速目标跟踪

一个例子,利用卡尔曼滤波对一维测速数据,对其进行滤波,估计目标位置、速度

2021-09-07 12:06:34 1496

原创 三体问题Mathematica数值解求解

本文参考百度经验如何用Mathematica计算三体问题?,进行了三体问题在三维空间的数值求解,给出了核心部分的计算代码。注意我下面这些初值设定来自一篇2013年的一篇论文(感兴趣的可以私信我),在这种设定下能构成闭合的三体周期轨道。以下这个部分是求解动力学方程的数值计算部分:{{r1xo,r1yo,r1zo,v1xo,v1yo,v1zo,r2xo,r2yo,r2zo,v2xo,v2yo,v2zo,r3xo,r3yo,r3zo,v3xo,v3yo,v3zo}}=NDSolve[{(*第一组*

2021-08-08 13:16:25 2047 1

原创 微分代数是什么?(学习中)

微分代数(Differential Algebra)简单来说是一种利用计算机代数近似实际函数的手段,也就是说函数是以代数变量加减乘除的形式在计算机中保存的,而不是实际数值。因此,它可以作为主流符号运算软件的底层表达方式。它的核心方法是把函数进行Taylor展开,然后用nnn次多项式的系数表达出来,这其中会用到函数的微分,可能这是它称为“微分”代数的原因。在实际运算的时候,用这个“多项式近似”的结果来代替原来的函数关系,就可以有很多方便。典型例子比如,我们手头有一个函数f(x)=sinh⁡(arctan⁡

2021-08-06 17:56:34 950

原创 最优控制理论 八、CasADi求解路径约束轨迹优化的多重打靶法

分析了受限轨迹优化问题数值求解的思路,按照直接转化法处理约束,给出了最优控制问题转化为非线性规划问题多重打靶法的描述,用MATLAB版本CasADi求解。然后又给出了一个直接配点法的计算程序。...

2021-08-02 11:45:03 10754 12

原创 最优控制理论 七、关于数值求解算法的总结及软件分享

总结了数值求解轨迹优化常用的直接法、间接法,列举了我见到的最优控制求解软件。

2021-07-31 10:59:08 7241 2

转载 PPT自动添加进度条与页码

最终效果如下:下面是操作步骤:打开 PPT,按 Alt+F11,打开VBE编辑器,插入——模块,并复制下面的代码,最后单击工具栏的“运行”按钮。( 转载自 :alpha - PPT 添加页码进度条)可自动添加进度条。代码中的颜色、大小请手动定义。Sub AddProgressBar() On Error Resume Next With ActivePresentation For X = 2 To .Slides.Count '第一页和最后一

2021-07-28 09:24:48 3679 2

原创 MATLAB/C Mex函数中矩阵的是按列向量形式存储的

对于这样一个6*3的矩阵,它是这样分配内存的:plhs[2] = mxCreateDoubleMatrix((mwSize)6, (mwSize)3, mxREAL);如果测试它的具体是怎么分配的:yout = mxGetPr(plhs[2]);会发现yout是一个一维double指针double *,也就是一维数组。很显然,矩阵在mexFunction内部是按照列向量的形式存储的。对于这样一个矩阵,A=[111213212223313233414243515253616263]A=\begin

2021-06-27 09:11:01 788

原创 Visual Studio建立MATLAB MEX项目用于C语言编译

利用VS提供的项目模板MEX Function Templates建立C源文件,并编译生成.mex64动态库

2021-06-26 17:19:01 1836 4

原创 利用MATLAB Coder自动生成RK45数值积分C程序和MEX动态库

给出了MATLAB转C语言的转化过程以及注意步骤,最后生成的变步长RK45 RKF87数值积分.m语言和C语言版本,可以直接调用函数。

2021-06-18 21:33:56 1258 1

原创 CMake编译.dll并使用开源库SDE

CMake编译并使用SDE Library目录CMake编译并使用SDE Library环境项目修改编译.dll文件并确保它能正常使用测试使用.dll文件文件下载链接环境本篇博客所要做的是:Win10环境使用CMake编译一个开源C++库,这个库所有.h头文件和.cpp源文件都有了,将这个库编译为动态链接库.dll文件。然后在不用重新编译库的情况下,使用CMake包含这个.dll库并测试.exe可执行文件。下载安装以下工具:MinGW x86位,用于C++编译器cmake cmake-3.20

2021-06-02 01:12:00 2072

原创 C语言利用函数指针进行非线性方程求根

下面给出了两种方法求解非线性方程零点的程序,即求解:f(x)=0 f(x)=0f(x)=0形式的方程的根x∗x^*x∗。黄金分割法计算原理为在区间范围[a,b][a,b][a,b]内试探,每次并非去中点而是取黄金分割点。也是一种区间优化方法,只需要提供真实解x∗x^*x∗区间范围。迭代公式为mk=ak+0.618(bk−ak)m_{k}=a_{k}+0.618\left(b_{k}-a_{k}\right)mk​=ak​+0.618(bk​−ak​)若f(ak)f(a_k)f(ak​)与f(mk)f

2021-05-20 22:01:07 1007 6

RK45 and RKF87.MATLAB-to-C-MEX.rar

自适应变步长龙格库塔4(5)数值积分(等同于ode45),自适应变步长龙格库塔7(8)数值积分(等同于ode113),MATLAB程序以及其对应自动生成的C语言版本

2021-06-21

Interior Point Constrained example Based On GPOPS.rar

包含了一个内点约束的最优控制问题MATLAB数值求解,示例程序,非常简单,适用于初学者。需要已经安装GPOPS-II软件包。

2021-02-23

An Introduction to Mathematical Optimal Control Theory-Notes v2.0.pdf

加州伯克利数学学院(Department of Mathematics, University of California, Berkeley)Lawrence C. Evans教授的最优控制笔记,非常简明扼要。原版没有目录,我添加了目录: 1 Introduction 3 2 Controllability, bang-bang principle 15 3 Linear time-optimal control 31 4 The Pontryagin Maximum Principle 41 5 Dynamic programming 72 6 Differential Game theory 88 7 Introduction to stochastic control theory 96 Appendix Proofs of the Pontryagin Maximum Principle 110

2020-07-29

空空如也

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

TA关注的人

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