- 博客(94)
- 资源 (3)
- 收藏
- 关注
原创 IMU预积分4 —— 求残差关于状态量的雅可比
注意:残差=预测-观测rΔϕ⃗ij≜log[(ΔR~‾ij)TΔRij]=log[(ΔR~ij⋅Exp(∂ΔR~ij∂bgδbig))TRwiTRwj]rΔvij≜Δvij−Δv~‾ij=RwiT(vj−vi−g⋅Δtij)−(Δv~ij+∂Δv~ij∂bgδbig+∂Δv~ij∂baδbia)rΔpij≜Δpij−Δp~‾ij=RwiT(pwj−pwi−vi⋅Δtij−12g⋅Δtij2)−(Δp~ij+∂Δp~ij∂bgδbig+∂Δp~ij∂baδbia)\begin{align}\mathb
2025-05-19 08:22:11
563
原创 IMU预积分3 —— Bias更新时对预积分的影响
ij 项2. 对于 Δv~‾ij\Delta \overline{\widetilde{\mathbf{v}}}_{i j}Δvij 项3. 对于 Δp~‾ij\Delta \overline{\widetilde{\mathbf{p}}}_{i j}Δpij 项首先说明前面去除噪声时假设了这段时间内偏置不变, 但偏置在vio算法中会作为状态量来优化, 所以当通过优化后偏置会更新, 这样一来如果重新计算这段时间的预积分会很浪费时间, 所以本章目的是为了推出当偏置变化时直接求得新的预积分结果。ΔR
2025-05-19 08:20:41
521
原创 IMU预积分2 —— 噪声分离及递推
目的:上面推预积分时对imu的读数会减去它的偏置与误差,其中偏置可以作为状态量去得出,但是误差无法得出。我们能做的就是拿到imu数据减去偏置后直接使用,通常的办法就是通过计算误差的方式过滤掉这部分误差,无论是优化还是滤波都跳不过一个重要的矩阵——预积分的信息矩阵(协方差矩阵的逆)。由于假设噪声是高斯白噪声,所以噪声的方差对状态方差的影响可通过高斯分布推理过来。本节目的是推导出标定好的imu噪声对预积分的影响,即预积分的偏差关于噪声的关系,下一节推导出协方差方差的关系。由于假设噪声为高斯白噪声,即服从高斯分布
2025-05-19 08:13:39
833
原创 IMU 预积分1 —— IMU介绍及预积分
陀螺仪输出加速度,加速度计输出加速度,绝大多数场景下认为他们是同一坐标系。使用时认为他们是捷联的,即相对固定的,绑定在一块的。参考链接1参考链接2参考链接3误差模型imu的噪声模型可由下式表示(加速度计陀螺仪通用),白噪声过程在进行一次积分后行成随机游走过程。
2025-05-19 08:09:27
514
原创 贝塞尔曲线原理
如下图所示,P0P1是平面中的两点,则Bt代表平面中的一段线段。考虑这样一条曲线方程BtP0P1−P0t1−tP0tP1一阶曲线很好理解, 就是根据t来的线性插值,t的取值范围为01。
2025-05-18 23:27:05
346
原创 解决 ‘chrono_literals’ is not a namespace-name和‘optional’ in namespace ‘std’ does not name a template
原因可能是:std::optional 是C++17中专有。:放在find_package{}之前。根据第二张截图,可以定位到。
2025-02-20 22:02:37
237
原创 解决 curl -fsSL https://ollama.com/install.sh | sh 网络连接不上问题
在本地部署 deepseek 需要先安装 ollama,而使用进行安装 ollama时会因网络问题安装不上。
2025-02-08 14:46:01
788
原创 ubuntu扩展swap交换分区
设置文件权限,只运行root用户读写。创建16G的Swap分区文件。将文件格式化为Swap分区。关闭当前swap分区。
2025-01-22 13:19:13
374
原创 costmap 点与多边形的相对位置关系
近期在阅读move_base源码costmap部分(感觉想玩转movebase导航,costmap必须理解呀)。读到两处点与多边形的相对位置关系。
2025-01-14 20:21:47
699
原创 创建基于Move_Base的自定义局部规划器框架
该规划器被销毁时调用的函数,将构造函数申请的内存空间释放掉,避免内存泄漏;插件描述 xml 文件用于告知ROS系统新规划器需进行登记注册。用于计算速度,即从该规划器向机器人发送速度控制指令的函数。一般用于变量的初始化、数组的内存空间申请等操作;用于接收来自全局规划器的全局导航路线的函数;:不用专门发布速度话题,只用对传入的参数。中的虚函数进行功能实现;消息包进行赋值即可;提交导航结果的函数;
2024-12-12 07:38:59
1234
原创 【Python】AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘
自己在使用,原因是,需要重新安装pip和pyOpenSSL。
2024-11-19 00:44:43
452
原创 【TOOL】ceres学习笔记(二) —— 自定义函数练习
现有数学模型为 f(x)=Aex+Bsin(x)+CxDf(x)=Ae^x+Bsin(x)+Cx^Df(x)=Aex+Bsin(x)+CxD ,但不知道 AAA 、BBB 、CCC 、DDD 各参数系数,实验数据中含有噪声即 f(x)=Aex+Bsin(x)+CxD+noisef(x)=Ae^x+Bsin(x)+Cx^D+noisef(x)=Aex+Bsin(x)+CxD+noise ,此时用ceres进行拟合。2.1 含噪声的数据生成以 A=0.02A=0.02A=0.02 、B=3.2B=3.2B=
2024-06-23 09:48:46
529
原创 【TOOL】ceres学习笔记(一) —— 教程练习
是由Google开发的开源C++库,用于解决具有边界约束的非线性最小二乘优化和一般无约束优化问题,成熟、功能丰富、高性能。与一般优化问题不同的是,非线性最小二乘优化问题的目标函数具有明确的物理意义——残差。
2024-06-22 17:25:08
1073
原创 三角形法恢复空间点深度
该点即是两个特征点所对应的地图点在三维场景中的位置。简言之,在已知两个相机的相对位姿的情况下,得到在两个视图下的对应匹配点,即可求得该对应点在空间中的位置,也就是求得图像点的深度。由于是自由度为3的齐次方程,所以这是一个冗余的方程,这里相当于解一个线性最小二乘问题。方程的解为的最小奇异值对应的单位奇异矢量,解得,则最后令缩放使得的最后一项为1即可得到我们所求的3D点的坐标。由此可以得到三个方程,由于第三个方程可以由前两个方程得到,第三个方程可以由上两个方程线性表示,因此只需要考虑前两个方程。
2024-06-20 11:53:49
856
原创 使用 imu_utils 、Kalibr 工具进行IMU和相机内外参外参标定
vins系列安装完成后,将自己采集的图像和imu数据进行测试时,发现很难初始化化,即使初始化成功机器位姿总是跑飞(尤其是旋转时),内外参必须标定!不同imu硬件驱动包驱动方式不同,此处只整理imu产生数据后的后期处理,下面为一帧imu数据(话题名为。的内容,方便后续程序结束保存标定的结果文件(理论上应该程序自动生成路径,但实操后未生成)。的 imu_callback 回调函数中添个获得imu数据的标记,否则,终端一直停留在。很容易让人自我怀疑(尤其是首次标定),,,执行如下命令,进行imu的bag包录制。
2024-06-17 10:53:49
1394
原创 VScode ssh远程连接代码开发XHR failed
在vscode下载插件Remote-SSH远程连接进行代码开发时,提示 XHR failed 无法建立连接。
2024-06-13 16:11:43
1603
1
原创 c++仿函数 functor
为什么这么说呢,我们必须先初始化maxLength的值,才能继续接下来的工作,如果我们忘了,则可能无法得到正确答案。每当新建一个全局变量,即使是为了coding的便利,我们也要知道我们应该尽可能的少使用全局变量,因为它的cost很高;我们的初衷是想设计一个unary function,使其能做binary function的工作,这看起来并不容易,但是仿函数能解决这个问题。这个例子可以体会到一点点仿函数的作用了:它既能想普通函数一样传入给定数量的参数,还能存储或者处理更多我们需要的有用信息。
2024-06-10 07:32:48
897
原创 Ubuntu20.04安装VINS_Mono 和 VINS_Fusion
提取码: gene,按需取用(自动安装的脚本目前仅根据安装记录整理的用于以后安装参考,目前没自动化安装过)。在环境配置方面多少有一些冲突,在此记录一下填坑的过程。填完坑的相应安装包见。vins 系列vslam是基于ubuntu18.04系统搭建配置的,自己使用的。首次编译,不出意外的又要出意外了,,,同样,是因为OpenCV版本冲突,指定OpenCV版本为4.2.0,并重新catkin_make 编译。在工作空间下执行如下命令,可见,OpenCV版本均为默认版本。不出意外的话,,,会出现如下运行界面。
2024-05-27 17:20:08
2514
2
原创 ROS添加GDB调试
rosrun其实就相当于直接执行二进制文件./文件.那么我们直接找到catkin_make产生的二进制文件进行运行不就完了?为避免这种情况,程序编译时要加上debug选项,让cmake以debug模式编译,不然可能会在gdb调试的时候不能跳转到源代码,只能进入断点。在享受ROS带来便利的同时,但因每运行出现错误,ROS不会报错,导致很难排查原因,修改ROS launch文件,在node标签中如下指令。等,而这些不方便快速的调试,故整理了ROS添加。官方列出了许多可用的IDE,如。cd 进去上面的地址,在。
2024-05-27 07:44:38
2230
原创 NEON 内嵌函数梳理
ARM NEON 是适用于 ARM Cortex-A 和 Cortex-R 系列处理器的一种 SIMD(Single Instruction Multiple Data)扩展架构。SIMD 采用一个控制器来控制多个处理器,同时对一组数据中的每个数据分别执行相同操作,从而实现并行技术。NEON使用一组独立的寄存器,每个寄存器可以一次加载多个数据.NEON的计算仍然使用cpu,但是可以在多个操作数上同时执行,利用向量并行性实现高效的向量计算。
2024-03-29 17:56:48
1291
原创 Iperf3 网卡物理传输速度测试
近期在进行主从机配置,发现从机接收主机数据无法达到指定速率,便进行网卡物理数据传送测试进而对网卡性能评估。-c 192.168.2.110: 指定客户端连接到的服务器的IP地址;-b 25M: 指定TCP带宽为25兆比特每秒(25 Mbps);-b 25M: 指定TCP带宽为25兆比特每秒(25 Mbps);-i 1: 指定报告间隔为1秒,即每秒显示一次性能报告;-i 1: 指定报告间隔为1秒,即每秒显示一次性能报告;-t 10: 指定测试的总时间为10秒;-t 10: 指定测试的总时间为10秒;
2024-01-31 15:40:50
2031
原创 TF变换_求取map至odom的变换关系
在tf坐标系关系中,会出现组织自定义相对坐标系变换关系。已知: 坐标系相对frame_map的坐标系变换关系为, 坐标系相对frame_odom的坐标系变换关系为, 求 坐标系frame_odom相对frame_map的坐标系关系并以TF的消息进行发布。
2024-01-29 14:33:32
789
原创 TF_REPEATED_DATA ignoring data with redundant timestamp for frame
在进行gazebo 小车仿真时终端会出现,且在未施加数据的情况下,Rviz中模型车轮有微小移动其原因是:与/gazebo, 发布者冲突执行roswtf。
2024-01-27 17:51:31
1869
原创 sensor_msgs/NavSatFix 消息类型说明
是一个长度为9的一维数组,按照 [covariance_xx, covariance_yy, covariance_zz, covariance_xy, covariance_xz, covariance_yz, covariance_roll, covariance_pitch, covariance_yaw] 的顺序排列。position_covariance_type:表示 position_covariance 中协方差的类型。altitude:以米为单位的浮点数,表示相对于海平面的高度。
2024-01-17 06:57:48
3080
Sophus (模板类库)及其依赖 fmt
2022-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人