- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 机器人自主导航从零开始第四步———Rviz、Gazebo、Meshlab的安装
Rviz是一个三维可视化工具,它利用已有的数据将数据可视化,并提供了可以显示图像、模型、表格、路径等信息的插件,我们可以利用这些插件更为直观的理解数据。让这些插件运行的前提是,Rviz已经获得了所需要的数据,然后对数据进行处理以完成可视化的渲染。Gazebo是一个三维物理仿真平台,我们可以在gazebo中免费创建一个模拟的机器人世界,不仅可以仿真机器人的运动功能,还可以仿真机器人的传感器数据。而这些数据就可以放到rviz中显示,所以使用gazebo的时候,经常也会和rviz配合使用。
2024-09-16 18:34:47 1211
原创 带噪声估计的KF
xk∣k−1xqk∣k−1Axqk−1∣k−1xk∣k−1qk−19294)Pk∣k−1PQk∣k−1APQk−1∣k−1A⊤Pk∣k−1Qk−19596)zk∣k−1zrk∣k−1Hxqk∣k−1zk∣k−1rk−19799)PzzP。
2024-04-30 12:41:11 704
原创 KF融合角度分析
需要解释一下这个式(4)的由来,先说式(4)的第一项,当前时刻的先验状态是从前一时刻的后验来的,式(3)可知;将协方差矩阵特征值分解可以得到三个正交的单位向量,对应的三个特征值对该方向的单位向量进行放大或缩小,这样可以生成一个三维。同样地,这个预测是有不确定性的,也就是会有一个协方差矩阵来描述不确定性。因为是对先验状态的描述,所以叫先验协方差矩阵,即。,所以我们就对式(3)观测,先产生一个观测预测,这个预测也是有不确定性的,即。我们的目标是融合这两个分布,也就是相交的部分,很自然就是二者的乘积。
2024-01-16 21:50:56 886
原创 集中和分散KF(详细推导)
综合考虑主导航系统及各子导航系统,取多传感器组合导航系统的状态方程为:Xk+1=Φk+1,kXk+ΓkWk(1)\boldsymbol{X}_{k+1}=\boldsymbol{\Phi}_{k+1, k}\boldsymbol{X}_{k}+\boldsymbol{\Gamma}_{k}\boldsymbol{W}_{k}\tag{1}Xk+1=Φk+1,kXk+ΓkWk(1)各子导航系统的量测方程可表示为:Zk+1i=Hk+1iXk+1+Vk+1i(2)\boldsymbol{Z}
2024-01-16 13:05:52 919
原创 两个高斯分布乘积的理论推导
在Kalman滤波中的系统矫正环节中,实际是融合估计值和观测值,使用Kalman滤波都是假设这两者的分布服从高斯分布,各有各的期望和方差。如图所示绿色和红色分别代表两个独立的高斯分布函数,蓝色为两个分布的乘积,从蓝色形状可以粗略的看出乘积结果。在第2步中的主要理论依据就是两个独立高斯分布的乘积如何计算的问题,即如何融合。 为缩放因子,相乘后的概率密度的积分不等于1,但其方差和均值性质不变,所以。到此,两个高斯分布相乘的分布函数即推导出来,即相乘后的分布函数为一个。移动的曲线蔟,大多数情况会出现。
2023-11-09 21:27:31 950
原创 在ubuntu20.04中安装ROS(踩坑)
输入下面的这行代码,注意到底是melodic还是noetic或者是kinetic是由你的ubuntu的版本决定的,比如我的ubuntu是20.04版本的,对应的是noetic,也就是应该下面的这行代码,而不是上面那行。到这里如果再输入sudo rosdep init命令试试,如果出现了之前介绍的,我们想要的界面,请跳到第7步,若出现了新的错误,请继续看本步(第6步)的内容。如果在重新载入软件列表时,遇到了以下错误,请在终端输入以下命令(命令的最后一部分按错误提示进行修改,也就是下图中红色框内的内容)
2023-11-01 13:00:45 1089 2
原创 拆个4路1.5V电池充电器
今天拆了一个4路1.5V电池充电器,把电路图画出来,顺便仿真了一下,这么简单,都不敢用了。下面是这个示意图(具体参数没细看,随便写的参数),左边插座输入交流电,为了方便看,用的1Hz。实际为50Hz, led不闪。
2023-10-31 22:36:11 322
原创 容积KF(CKF)
为了克服UKF在高维情况下出现滤波精度低的问题,Arasaratnam 和Haykin基于Caubature求积分变换,提出了容积卡尔曼滤波CKF方法。后来众多学者又基于CKF,提出了很多改进版本,如平方根CKF。对于高斯分布下的非线性滤波问题,实际上就求后验期望的积分。由于被积分函数表现为非线性后验分布与高斯概率密度的乘积,因此一般很难得到解析解。这也是线性系统下该积分可以得到解析解,即著名的卡尔曼滤波算法。
2023-10-14 16:29:07 430
原创 Python 调用 C/C++ 程序的方法
由于 C++ 支持函数重载,在 g++ 以 C++ 方式编译时编译器会给函数的名称附加上额外的信息,这样 ctypes 模块就会找不到 g++ 编译生成的函数。-L path:表示在 path 目录中搜索库文件,如 - L. 表示在当前目录;最近写 BUG 的时候遇到 python 计算很慢的情况,于是调研了一波在 python 中嵌入 C++ 程序的方法,记录一下,便于查询。Python 调用 C 语言程序比较简单,将 C 语言程序编译好,再使用 python 中的 ctypes 模块调用即可。
2023-09-26 11:47:22 334
原创 存储器的种类:ROM、RAM、FLASH
fill:#333;color:#333;color:#333;fill:none;存储器光学存储CD/DVD磁性存储HDD/软盘半导体掉电非易失ROM早期BIOSFlashNor FlashNand Flash掉电易失RAMDRAMMEM内存条SRAMcache。
2023-09-19 11:05:49 721
原创 0.96oled移植u8g2库,采用stm32f103硬件SPI或DMA通信,全网唯一,最详细教程
0.96oled移植u8g2库,采用stm32f103硬件SPI或DMA通信,全网唯一,最详细教程
2023-04-08 22:53:25 1129
原创 四元数基础
1 四元数实数复数四元数(超复数)λ0\lambda_0λ0λ0+λ1i\lambda_0+\lambda_1iλ0+λ1iλ0+λ1i+λ2j+λ3k\lambda_0+\lambda_1i+\lambda_2j+\lambda_3kλ0+λ1i+λ2j+λ3k实部λ0\lambda_0λ0λ0\lambda_0λ0λ0\lambda_0λ0虚部0λ1i\lambda_1iλ1iλ1i+λ2j+λ3k\lambda_1i+\la
2022-05-13 18:20:41 310
原创 梯度、散度、旋度
梯度的JacobianJacobianJacobian(Hession矩阵)、散度和旋度以及梯度的散度 LaplacianLaplacianLaplacian1 基本概念设向量v\boldsymbol{v}v如下:v=[2x+3y2y+3z33z2+y2](i)(j)(k)\boldsymbol{v}=\left[\begin{array}{c}2x+3y \\ 2y+3z^3 \\ 3z^2+y^2 \end{array}\right] \begin{array}{c}(\boldsymbol{i
2022-05-13 16:08:49 615
原创 机器人数学基础2
3 平移和旋转齐次坐标变换3.1 齐次坐标空间某点ppp的直角坐标描述和齐次坐标描述如下:p = [xyz]⏟直角坐标 = [xyz1] = [wxwywzw]⏟齐次坐标p\ =\ \underbrace{\left[\begin{array}{c}x \\ y \\ z \end{array}\right]}_{\rm{直角坐标}}\ =\ \underbrace{\left[\begin{array}{c}x \\ y \\ z \\
2022-05-01 21:56:42 460 1
原创 机器人数学基础
机械手是机器人系统的机械运动部分,它的执行机构是用来保证复杂空间运动的综合刚体,而它也往往作为统一体进行运动.因此,需要用一种简便的数学方法来描述单一刚体的位移、速度、加速度和运动学的问题.这种数学描述不是唯一的,不同的人可能采用不同的方法.这里采用矩阵法来描述机器人机械手的运动学问题.这种数学方法是以四阶方阵变换三维空间的齐次坐标为基础的,能够将运动、变换和映射与矩阵运算联系起来.接下来让我们看看是如何做到的.1 位姿和坐标系描述1.1 位置描述对于直角坐标系{A{A}A},空间任一点ppp的位置可
2022-05-01 21:40:20 481
stm32f429全网最新跑马灯,hal库&寄存器&Proteus.zip
2020-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人