- 博客(303)
- 资源 (10)
- 收藏
- 关注
原创 IMU状态预积分测量模型
通过上面的推导,定义了预积分的三个观测量和它们的噪声。将它们代回最初的定义式,可以简单写为从公式中可以看到预积分的几大优点。它的左侧是可以通过传感器数据积分得到的观测量,右侧是根据状态变量推断出来的预测值,再加上(或乘上)一个随机噪声。左侧变量的定义方式非常适合程序实现。一方面,△Rik△Rik可以通过IMU的读数得到,△vik△vik可以由k时刻IMU的读数加上△Rik△Rik算得,而△pik△pik。
2024-03-25 10:09:41 533
原创 IMU状态预积分的定义
旋转R平移p角速度w线速度v加速度a这些变量的运动学关系可以写成:在t到tΔttΔt时间内,对上式进行欧拉积分,可得:其中,角速度和加速度可以被IMU测量到,但受噪声与重力影响。令测量值为ωω和a\tilde{a}a,则有噪声与零偏与重力的测量公式如下:其中bgb_{g}bg和bab_{a}ba为陀螺仪和加速度零偏ηg\eta_{g}ηg和ηa\eta_{a}ηa为测量的高斯噪声用测量值表示t到tΔ。
2024-03-24 08:09:15 738
原创 地理坐标系与UTM坐标系转换并进行gazebo测试
全球卫星导航系统(Global Navigation Satelite System,GNSS),简称卫星导航,是室外机器人定位的一个主要信息来源。GNSS定位原理:GNSS通过测量自身与地球周围各卫星的距离来确定自身位置,与卫星的距离主要通过测量时间间隔来确定。一个卫星信号从卫星上发出时,带有一个发送时间,而GNSS接收机接收到它时,有一个接收时间,通过比较时间间隔,就能估算各卫星离我们的距离。GNSS本质上可以看成一种高精度的授时系统。
2024-03-22 22:08:32 802
原创 惯导系统静止初始化方法与代码实现并在gazebo中测试
在进行GPS加IMU的组合导航或者Lidar加IMU的组合导航时,用EKF或者ESKF的滤波方法时,需要提前知道惯导的测量噪声、初始零偏、重力方向等信息。此时就需要对惯导进行一个初始化,来获取以上信息,常见的初始化方法为静止初始化法。例如无人机在上电后要进行自检,此时需要无人机静止一段时间,通过指示灯来提示自检是否完毕,在静止的过程中,则对惯导进行了初始化的方法。
2024-03-17 22:27:44 829
原创 卫星导航 | 坐标系---地理坐标系与UTM坐标系
全球卫星导航系统(Global Navigation Satelite System,GNSS),简称卫星导航,是室外机器人定位的一个主要信息来源。GNSS定位原理:GNSS通过测量自身与地球周围各卫星的距离来确定自身位置,与卫星的距离主要通过测量时间间隔来确定。一个卫星信号从卫星上发出时,带有一个发送时间,而GNSS接收机接收到它时,有一个接收时间,通过比较时间间隔,就能估算各卫星离我们的距离。GNSS本质上可以看成一种高精度的授时系统。
2024-03-07 23:15:00 953
原创 惯性导航 | 航迹推算与gazebo仿真
下面是在imu数据一帧一帧进来,如何实现状态的积分,在使用的时候则是来一帧IMU数据,调用一次这个函数。与真实的IMU 噪声模型差别很大,用rotors的imu插件,可以尽可能模拟IMU噪声模型。在gazebo中的IMU插件对惯导的噪声描述很简单,仅有一个高斯噪声可以设置。声明一个用与 IMU积分的类 ,来实现 短时间内的航迹推算。更新时间,用于判断下一帧数据,在时间间隔上是否满足要求。所以需要在IMU的回调函数里面,赋值上面的结构体数据。然后将数据加入,在该函数内部,即完成航迹的推算。
2024-03-06 20:45:00 1590
原创 惯性导航 | 测量方程中的噪声模型与离散时间噪声模型
随机过程可以从直观上理解,由于高斯过程的协方差随时间变得越来越大,IMU的测量值会随着采样时间变长而变得更加不准确,因此采样频率越高的IMU,其精度也会相对较高。若从高一级的系统层面来看,角速度就是角度的导数,加速度又是速度的导数,所以IMU的测量噪声,也可以解释为角度的随机游走和速度的随机游走。由于各种各样的原因,即使在车辆静止时,IMU的角速度和加速度输出也不一定形成均值为0的白噪声,而是带有一定的。这个偏移量是由IMU内部的机电测量装置导致的,有些IMU的偏移较小,也有的会比较大。
2024-03-05 23:30:00 810
原创 惯性导航 | 运动学---运动模型
注意另一种情况:如果不把IMU放在车辆中心,当车辆方式旋转和平移时,IMU还应该测量到由车辆旋转导致的离心力、科氏力和角加速度,最后体现在加速度计的读数上。,但其实现手段非常多样,从低成本的MEMS(Micro-electromechanical Systems,微0087机电)惯性导航到昂贵的光纤陀螺,它们的作用都是精确的测量物体的惯性。它们的体积很小,安装在设备内部,假设IMU静止,由于物体加速度的测量实际上是通过测量受力情况得到的,这个IMU应该受到一个反向的支撑力,所以应该测到一个-g方向的重力。
2024-02-28 23:45:00 834
原创 数学公式中的向量右上角的尖型帽子含义
由角速度矢量积分得到旋转矩阵,该公式称为转动的基本方程式。向量转换为反对称矩阵的符号。从而叉积可以写成下面的形式。有的写法也放在矢量的头上。反对称矩阵到向量的映射。
2024-02-28 14:34:29 420
原创 Eigen:Vector3d 变量初始化遇到的问题
首先在类的声明内部,是不能声明完,再给变量赋值的,不管是 Eigen:Vector3d 类型变量,还是float 类型变量。在函数内部是可以 Eigen::Vector3d a(0,0,1) 这样初始化的。Eigen:Vector3d 这个类型的 变量 在类定义内初始化遇到的。也就是说如果希望什么的变量有初始值,那么需要在声明时就进行初始化。如何需要初始化 要以下面的这样方式。可能是把a当做函数了?
2024-02-22 09:25:53 400
原创 Linux系统CPU性能分析工具总结
CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。CPU 使用率是最常用来描述系统CPU 性能的指标。Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。
2023-12-30 23:30:00 930
原创 Linux系统中CPU使用率概念与计算方法
CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。CPU 使用率是最常用来描述系统CPU 性能的指标。Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。
2023-12-29 23:15:00 1034
原创 点云格式转换:将 ros PointCloud2格式数据转为livox CustomMsg格式
览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。
2023-12-15 23:45:00 1657 4
原创 点云 ros PointCloud2格式与livox CustomMsg格式介绍
bit5 bit4 回波序号 : 00: 第 0 个回波 01: 第 1 个回波 10: 第 2 个回波 11: 第 3 个回波 由于Livox Avia 采用同轴光路,即使外部无被测物体,其内部的光学系统也会产生一个回波,该回波记为第 0个回波。随后,若激光出射方向存在可被探测的物体,则最先返回系统的激光回波记为第 1 个回波,随后为第 2个回波,以此类推。bit3 bit2 基于强度的点属性: 00:正常点 01:回波能量噪点置信度高 10:回波能量噪点置信度中 11:保留位。
2023-12-09 22:45:00 1110
原创 激光SLAM:Faster-Lio 算法编译与测试
Faster-LIO是基于FastLIO2开发的。FastLIO2是开源LIO中比较优秀的一个,前端用了增量的kdtree(ikd-tree),后端用了迭代ESKF(IEKF),流程短,计算快。Faster-LIO则把ikd-tree替换成了iVox,顺带优化了一些代码逻辑,实现了更快的LIO。在典型的32线激光雷达中可以取得100-200Hz左右的计算频率,在固态雷达中甚至可以达到1000-2000Hz,能够达到FastLIO2的1.5-2倍左右的速度。当然具体数值和计算平台相关。
2023-12-01 23:30:00 2074
原创 在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2
livox mid360 在官网一直没有货,在gazebo里可以仿真该雷达形式的点云。但是其只发布雷达的数据,没有imu数据,实际的雷达是可以发布既有雷达也有imu的数据的运行 FAST-LIO2 也需要雷达和惯导的数据本篇博客在gazebo中搭建了一个有livox mid360 和惯导的平台,并成功运行了FAST-LIO2。
2023-11-30 22:45:00 2386 12
原创 livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号
览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。
2023-11-28 23:30:00 1080
原创 livox 半固体激光雷达 gazebo 仿真 | 安装与验证
览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。
2023-11-27 22:45:00 1304 1
原创 激光雷达与惯导标定 | Lidar_IMU_Init : 重点参数 与 核心代码
LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数,以及重力矢量和IMU偏差。我们的方法不需要任何目标或额外的传感器,特定的结构化环境,先前的环境点图或初始值的外在和时间偏移。
2023-11-24 23:15:00 1281
原创 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形
览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。
2023-11-24 17:50:28 1398
原创 激光雷达与惯导标定 | Lidar_IMU_Init : 编译
LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数,以及重力矢量和IMU偏差。我们的方法不需要任何目标或额外的传感器,特定的结构化环境,先前的环境点图或初始值的外在和时间偏移。
2023-11-23 22:45:00 2077
原创 依赖库:Ceres-solver-2.0.0安装
Ceres Solver是谷歌开源的C++非线性优化库,能够解决有约束或无约束条件下的非线性最小二乘问题。2010年之后大量的运用在谷歌的产品开发中,尤其在谷歌开源的cartographer中被大量的使用。ceres可以在Linux,Windows,macOS,Andrioid,IOS系统进行安装使用ceres被命名是由于高斯使用了最小二乘方法成功的预测了绕行至太阳背后的小行星ceres的位置。本篇博客在 ubuntu 20.04 环境下安装 Ceres-solver-2.0.0。
2023-11-22 22:00:00 826
原创 C++编程基础|多级指针
在看代码时发现下面的内容显而是结构体GridNode首地址指针那么是什么?它实际上是一个这种用法不多,这里的含义之后再给出。
2023-10-13 22:15:00 582
原创 移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解
Dijkstra在扩展的时候,同时考虑从n节点扩展所有可扩展节点的代价g(),如果某个节点m的代价g(m)比g(n)要小,则更新当前代价为g(m)Dijkstra的最优性保证:图运行的过程中,任何一个被扩展或者访问的节点,保证存储的代价g()值是从起点节点开始到当前节点的最小值。但是经过A节点的代价是4,所以经过A节点的路径是最优的。优先级队列:维护的是 代价函数+启发函数的 节点从小到大排序 f(n)=g(n)+h(n)可扩展的节点仅有a节点,计算f(a)=g(a)+h(a)=1+5=6。
2023-09-30 14:15:00 202
原创 ROS系统读取USB相机图像数据
usb_cam功能包简介为了丰富机器人与外界的交互方式,已经增加了与机器人的语音交互方式,不仅使机器人能够说话发声,还能听懂我们说的话,但是如果只有语音交互的话机器人就是一个盲人,无法看到这个色彩斑斓的大千世界,因此我们就需要为机器人增加视觉识别功能。
2023-09-29 22:15:00 850
原创 移动机器人运动规划 --- 基于图搜索的A*算法
算法的逻辑找到的路径是 S直接到G ,这样的代价是5。但是经过A节点的代价是4,所以经过A节点的路径是最优的。优先级队列:维护的是 代价函数+启发函数的 节点从小到大排序 f(n)=g(n)+h(n)维护一个优先级队列,存储所有被扩展的节点,且节点按f()值的大小自动按从小到大排列。算法的演示图,每个边有个预先设置的代价g,每个节点有提前估计好的启发f。设计的启发函数为可接受的要满足:需要估计的启发值要小于等于实际的启发值。可扩展的节点仅有a节点,计算f(a)=g(a)+h(a)=1+5=6。
2023-09-28 23:30:00 190
原创 移动机器人运动规划 --- 基于图搜索的Dijkstra算法
Dijkstra在扩展的时候,同时考虑从n节点扩展所有可扩展节点的代价g(),如果某个节点m的代价g(m)比g(n)要小,则更新当前代价为g(m)Dijkstra的最优性保证:图运行的过程中,任何一个被扩展或者访问的节点,保证存储的代价g()值是从起点节点开始到当前节点的最小值。维护一个优先级队列,存储所有被扩展的节点,且节点按g()值的大小自动按从小到大排列。针对该缺点,与之对应的就是启发式搜索,例如贪心算法,根据到目标的进行一个启发式搜索。起始节点S可以扩展到子节点d\e\p,并且计算各节点的g值。
2023-09-22 21:00:00 168
原创 编译工具:CMake(八) | cmake 常用指令
用于在指定的目录运行某个程序,通过 ARGS 添加参数,如果要获取输出和返回值,可通过OUTPUT_VARIABLE 和 RETURN_VALUE 分别定义两个变量.这个指令可以帮助你在 CMakeLists.txt 处理过程中支持任何命令,比如根据系统情况去修改代码文件等等。在 cmake 生成 Makefile 的过程中,就会执行 ls 命令,如果返回 0,则说明成功执行,那么就输出 ls *.c 的结果。在 CMakeLists.txt 处理过程中执行命令,并不会在生成的 Makefile 中执行。
2023-09-20 23:00:00 277
原创 编译工具:CMake(七) | cmake 常用变量和常用环境变量
隐式定义显式定义隐式定义的例子:就是PROJECT指令,他会隐式的定义和两个变量。显式定义的例子:使用 SET 指令,就可以构建一个自定义变量了。这三个变量指代的内容是一致的,如果是in source 编译,指得就是工程顶层目录,如果是out-of-source 编译,指的是工程编译发生的目录。PROJECT_BINARY_DIR 跟其他指令稍有区别。这三个变量指代的内容是一致的,不论采用何种编译方式,都是工程顶层目录。也就是在 in source 编译时,他跟等变量一致。
2023-09-19 22:45:00 331 1
原创 编译工具:CMake(六) | 使用外部共享库和头文件
1,CMAKE_INCLUDE_DIRECTORIES_BEFORE,通过 SET 这个 cmake 变量为 on,可以将添加的头文件搜索路径放在已有路径的前面。这个指令可以用来为 target 添加需要链接的共享库,本例中是一个可执行文件,但是同样可以用于为自己编写的共享库添加共享库链接。添加非标准的共享库搜索路径,比如,在工程内部同时存在共享库和可执行二进制,在编译时就需要指定一下这些共享库的路径。hello.h 位于/usr/include/hello 目录中,并没有位于系统标准的头文件路径,
2023-09-01 22:00:00 480
原创 编译工具:CMake(五) | 静态库与动态库构建
这个问题的原因是:cmake 在构建一个新的 target 时,会尝试清理掉其他使用这个名字的库,因为,在构建 libhello.a 时,就会清理掉 libhello.so.为了回避这个问题,比如再次使用。以上面的例子,我们需要将 libhello.a, libhello.so.x 以及 hello.h 安装到系统目录,才能真正让其他人开发使用,在本例中我们将 hello 的共享库安装到/lib目录,将 hello.h 安装到/include/hello 目录。
2023-08-17 23:15:00 338
原创 编译工具:CMake(四)|安装目标文件、普通文件、脚本、目录
可用于安装一般文件,并可以指定访问权限,文件名是此指令所在路径下的相对路径。如果目录名不以/结尾,那么这个目录将被安装为目标路径下的 abc,如果目录名以/结尾,INSTALL 指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等。安装的需要有两种,一种是从代码编译后直接 make install 安装,一种是打包时的指定目录安装。来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是。定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候。
2023-08-16 22:15:00 349
原创 编译工具:CMake(三)| 最简单的实例升级
为工程添加一个子目录 src,用来放置工程源代码;添加一个子目录 doc,用来放置这个工程的文档 hello.txt在工程目录添加文本文件 COPYRIGHT, README;在工程目录添加一个 runhello.sh 脚本,用来调用 hello 二进制将构建后的目标文件放入构建目录的 bin 子目录;
2023-08-15 20:00:00 251
原创 编译工具:CMake(二)| 最简单的实例[构建、解析、外部构建]
前言按照程序员惯例,从开始构建一个最简单的实例。演练一下 cmake 的完整构建过程 , 并加以解释。
2023-08-07 23:30:00 332
原创 编译工具:CMake(一) | 简介与安装
cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目。项目的诞生时间是 2001 年。其官方网站是,可以通过访问官方网站获得更多关于 cmake 的信息。
2023-08-06 20:15:00 367
原创 机器人状态估计:robot_localization 功能包使用方法
移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将机器人的状态估计出来。惯导轮速里程计激光里程计视觉里程计gps等如何利用各传感器的优点,将所有数据结合起来,取长补短,就用到了本篇博客介绍的内容,一个移动机器人状态估计功能包。是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点和。另外,提供,它有助于集成GPS数据。功能包特点融合任意数量的传感器。
2023-08-06 13:11:37 857 2
原创 机器人状态估计:robot_localization 功能包高级参数详解
移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将机器人的状态估计出来。惯导轮速里程计激光里程计视觉里程计gps等如何利用各传感器的优点,将所有数据结合起来,取长补短,就用到了本篇博客介绍的内容,一个移动机器人状态估计功能包。是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点和。另外,提供,它有助于集成GPS数据。功能包特点融合任意数量的传感器。
2023-07-29 10:30:00 329
原创 机器人状态估计:robot_localization 功能包基本参数详解
移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将机器人的状态估计出来。惯导轮速里程计激光里程计视觉里程计gps等如何利用各传感器的优点,将所有数据结合起来,取长补短,就用到了本篇博客介绍的内容,一个移动机器人状态估计功能包。是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点和。另外,提供,它有助于集成GPS数据。功能包特点融合任意数量的传感器。
2023-07-29 07:30:00 853
原创 机器人状态估计:robot_localization 功能包简介与安装
移动机器人的状态估计需要用到很多传感器,因为对单一的传感器来讲,都存在各自的优缺点,所以需要一种多传感器融合技术,将机器人的状态估计出来。惯导轮速里程计激光里程计视觉里程计gps等如何利用各传感器的优点,将所有数据结合起来,取长补短,就用到了本篇博客介绍的内容,一个移动机器人状态估计功能包。是状态估计节点的集合,每个节点都是非线性状态估计器的一种实现,用于在3D空间中移动的机器人。它包括两个状态估计节点和。另外,提供,它有助于集成GPS数据。功能包特点融合任意数量的传感器。
2023-07-28 22:45:00 440
原创 电子模块|航空插头简介
它是针对复杂工业环境与户外环境等应用场景开发的一类连接器。正式一些的称呼是“工业连接器”,主要用于电气、电子设备的电缆与电缆、电缆与设备之间的电路连接,可实现信号及电能(功率)的传输,是各类电气、电子系统不可缺少的一种电子元器件。因最先用于航空领域而得名,目前广泛用于航海、航天、航空、国防、军事、核工业、电力等领域,外壳材质常用镁铝合金、不锈钢等,耐久性强。按工业连接器外形分 —— 圆形连接器:基本结构为圆形,具有圆形插合面的连接器;矩形连接器:基本结构为矩形,具有矩形或梯形插合面的连接器。
2023-06-30 21:45:00 573
20200603_SmartDoor.zip c51单片机 控制 电机正转反转 模拟门的动作
2020-06-15
水温及水位采集报警.zip c51采集两路AD模拟水温及水位 控制继电器1、2 并led显示
2020-06-15
温度检测调节阈值.zip C51 单片机 检测 外界温度 按键调节阈值 报警
2020-06-15
路灯检测及报警.zip 根据白天夜晚光亮强度不同觉得是否亮路灯,并判断路灯是否损坏及报警
2020-06-15
多键值输入显示.zip 多键盘输入 3*8 键盘 数码管流水显示
2020-06-15
波形发生器protues仿真_keil工程.zip
2020-06-15
stm32f4xx_DFP2.9.0网盘下载链接.txt
2020-01-02
Keil.STM32F4xx_DFP.1.0.8&&Keil.STM32F1xx_DFP.2.3.0.zip
2019-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人