- 博客(51)
- 资源 (3)
- 收藏
- 关注
原创 ORB-SLAM2重要函数总结(1)——特征点、地图点、关键帧
IC_Angle通过遍历特征点周围的像素,利用灰度质心法来计算特征点的角度朝向。具体地,它根据像素值和像素坐标的加权和来计算方向角度,使特征点具有旋转不变性。函数通过遍历一组特征点的方向角度,并为每个特征点调用IC_Angle函数来计算其方向角度,以实现特征点的旋转不变性,从而提高特征匹配的鲁棒性和性能。keypoints中的每个特征点的angle属性被更新。用于计算ORB特征点的描述子。
2024-01-14 22:48:48 1031
原创 地图点(MapPoint)和关键帧(KeyFrame)——ORB-SLAM2
【代码】地图点(MapPoint)和关键帧(KeyFrame)——ORB-SLAM2。一些容易混淆的概念和函数
2024-01-13 18:02:49 402
原创 ORB-SLAM2局部建图LcalMapping函数说明
() 函数用于检查新增的地图点,根据地图点的观测情况剔除质量不好的新增地图点,确保地图的质量和一致性。() 函数检查并剔除不合格的新增地图点。通过遍历最近添加的地图点列表,根据观测比例和相机数量等因素进行筛选和标记,确保地图中的地图点质量和一致性。CreateNewMapPoints() 函数用于根据当前关键帧与相邻关键帧之间的特征点匹配,通过三角化产生新的地图点,以提高地图的稳定性和密度。在局部建图线程中,会在共识关键帧之间重新进行特征匹配、三角化,生成新的地图点。这对于稳定的跟踪非常重要。
2024-01-01 09:29:24 952 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 585
原创 控制串口数据解析函数线程的频率,并且采用Ctrl+C终止
Python版程序,串口通信用`threading.Timer`控制执行某个函数的频率,并且采用`keyboardInterrupt`控制终止
2023-07-09 11:26:14 351
原创 USB串口通信,树莓派使用GPIO口,收发16进制数组的Python代码
上位机采用USB串口,树莓派使用GPIO口,两者串口通信收发16进制数组的Python代码
2023-07-08 23:27:23 2078
原创 上位机和树莓派采用USB转TTL模块连接,采用串口通信
树莓派的GPIO引脚UART接口标有TX(发送)和RX(接收)引脚。下面是一个python示例,展示了如何使用USB转TTL模块在Linux系统的工控机和树莓派之间进行双向串口通信的基本框架。
2023-07-08 18:38:38 1086
原创 C++版ROS节点函数中,通过launch文件配置bool型参数
launch文件中配置为,函数中调用nh.param("your_param_name", your_param, false);
2023-07-03 18:04:17 485
原创 python版的ROS节点以字符串为参数输入,并在launch文件中配置
配置参数采用,程序中调用采用input_string = rospy.get_param('~input_string')
2023-07-02 21:20:55 610
原创 《视觉SLAM十四讲》示例程序编译报错处理(上)
Ubuntu 22.04,所有库采用最新版。这本书中的代码有一些因为版本的问题会报错,本文总结一下我遇到的问题。
2022-12-07 10:15:04 1884 1
原创 最优控制理论 九、Bellman动态规划法用于最优控制
简单列举了确定性问题、决策过程的动态规划法和连续系统最优控制的Hamilton-Jacobi-Bellman方程,用于有限时域动态系统进行轨迹优化
2022-10-21 08:24:32 3927 1
原创 ubuntu22.04备份系统的完整操作过程
进入U盘启动盘,需要备份除了swap扇区以外的4个扇区。本文按照mksquashfs 命令备份。下面是备份系统整个过程的命令及其输出。
2022-09-25 20:35:39 4746 2
原创 3维空间目标跟踪的CV,CA,CT动力学模型
类似于二维平面上车辆转动的CV,CA,CT模型。3维空间的CV、CA、CT模型也存在。用于目标跟踪时,需要考虑的角速度、速度、加速度之间的耦合关系更为复杂,所以本博客列举了这些公式。
2022-07-13 08:48:49 5884 1
原创 α-β滤波器(一种1维稳态Kalman滤波器)详解
本文属于控制系统最优滤波,介绍了一种经典的1维数据滤波器。一.α-β滤波器推导、 二.作为稳态滤波器与Kalman滤波的比较、 三.α-β的参数设置及其最优性、 四.MATLAB/Simulink仿真演示、 五.总结
2022-05-18 17:50:19 5583 1
原创 Python获得程序的运行时间
import timetic= time.time()# ...toc=time.time()print('运行时间t= %f'%(toc-tic))
2021-10-16 23:37:34 465
原创 最优控制理论 五+、极大值原理Bang-Bang控制问题的求解
就一个一维Bang-Bang控制、最小能量+到达时间混合性能指标的问题,给出了MATLAB程序。
2021-10-09 18:20:48 5817 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 4504
原创 三体问题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 1618 1
原创 微分代数是什么?(学习中)
微分代数(Differential Algebra)简单来说是一种利用计算机代数近似实际函数的手段,也就是说函数是以代数变量加减乘除的形式在计算机中保存的,而不是实际数值。因此,它可以作为主流符号运算软件的底层表达方式。它的核心方法是把函数进行Taylor展开,然后用nnn次多项式的系数表达出来,这其中会用到函数的微分,可能这是它称为“微分”代数的原因。在实际运算的时候,用这个“多项式近似”的结果来代替原来的函数关系,就可以有很多方便。典型例子比如,我们手头有一个函数f(x)=sinh(arctan
2021-08-06 17:56:34 715
原创 最优控制理论 八、CasADi求解路径约束轨迹优化的多重打靶法
分析了受限轨迹优化问题数值求解的思路,按照直接转化法处理约束,给出了最优控制问题转化为非线性规划问题多重打靶法的描述,用MATLAB版本CasADi求解。然后又给出了一个直接配点法的计算程序。...
2021-08-02 11:45:03 8939 12
转载 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 3025 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 687
原创 Visual Studio建立MATLAB MEX项目用于C语言编译
利用VS提供的项目模板MEX Function Templates建立C源文件,并编译生成.mex64动态库
2021-06-26 17:19:01 1324 2
原创 利用MATLAB Coder自动生成RK45数值积分C程序和MEX动态库
给出了MATLAB转C语言的转化过程以及注意步骤,最后生成的变步长RK45 RKF87数值积分.m语言和C语言版本,可以直接调用函数。
2021-06-18 21:33:56 1063 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 1942
原创 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 839 6
原创 Win10用Visual Studio C++2019安装FFTW3库并测试
VSC++ 2019安装fftw3库首先下载fftw3.zip文件,ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll64.zip然后编译,用x64_x86 Cross Tools Command Prompt for VS 2019的cmd命令行cd到解压后的文件夹,然后运行它的安装命令,即输出3个.lib文件。命令如下(注意与VC++的版本也有关系,可以查看README-WINDOWS里的安装提示)lib /machine...
2021-05-16 12:31:30 5080 1
原创 分享一个有关线性系统矩阵指数e^At可视化的视频
分享一个有意思的线性系统,用于描述二人恋爱关系中的动力学现象,来自3Blue1Brown -【官方双语】e的矩阵指数——怎么算?为什么?。视频解释了矩阵指数定义的来历,以及状态转移矩阵的物理意义,展示了二维相空间中的动力学系统的流场这个模型说的是:设女生对男生方的爱情为xxx,男生对女生的爱情为yyy。恋爱关系随时间ttt的发展规律为:男生越爱女生,女生越嫌弃男生,也就是:dxdt=−y\frac {\text d x}{\text d t}=-ydtdx=−y女生对男生显示一点好感,..
2021-04-09 20:52:49 579
原创 最优控制理论 三+、间接法参数化方法(带内点约束)
就一个包含终端等式约束、内点约束的最优控制问题,按间接法推导了必要条件,将问题参数化并用于求解两点边值问题,给出了MATLAB代码。
2021-02-24 12:28:45 2775 2
原创 MATLAB一维插值加快运行速度的方法
经常使用MATLAB的人也许会注意到MATLAB自带的一维插值函数vq = interp1(Xvec,Vvec,xq,method)调用时间过长的问题。了解他的算法可以发现,它是对xq对于Xvec向量从头到尾依次比较大小而定位到特定index的,即for i=1:length(Xvec)-1 if xq<Xvec(i)&&xq>Xvec(i+1) 在[Xvec(i),Xvec(i+1)]区间内线性插值; else 继续比较大小,以定位xq,确定要用哪一段的线性插值;
2020-10-08 17:42:20 1456
原创 MATLAB绘制星下点轨迹消除经度±180°跳变的方法
以下我简单地给出解决思路,拒绝伸手党。(以后我有时间了会把整个代码发上来)主要用到的函数是plot(longitude,latitude),其中long为经度,在±180°之间;lat为纬度,在±90°之间。我们所需要的星下点是连续的曲线,即使航天器星下点穿过了国际日界线,即±180°经线。如下图但是可惜的是,如果简单的用下面这句函数,就无法画出上面的曲线plot(Long*rad2deg, lat*rad2deg,'b-');axis([-180,180,-90,90]);grid on;可
2020-10-06 22:42:02 1891
RK45 and RKF87.MATLAB-to-C-MEX.rar
2021-06-21
Interior Point Constrained example Based On GPOPS.rar
2021-02-23
An Introduction to Mathematical Optimal Control Theory-Notes v2.0.pdf
2020-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人