- 博客(25)
- 资源 (10)
- 收藏
- 关注

原创 MPU6050 6轴陀螺仪的使用与校准
1 MPU6050初始化①初始化IIC接口。②初始化MPU6050。由电源管理寄存器1(0X6B)控制。③设置角速度传感器和加速度传感器的满量程范围。由陀螺仪配置寄存器(0X1B)和加速度传感器配置寄存器(0X1C)设置 。④设置其他参数。配置中断,由中断使能寄存器(0X38)控制;设置AUX IIC接口,由户控制寄存器(0X6A)控制;设置FIFO,由FIFO使能寄存器(0X23)控制...
2019-08-03 10:56:42
37079
3
原创 拓展卡尔曼滤波学习(python源码)
拓展卡尔曼滤波的逐步理解与实现这个文章讲的非常不错。配套代码实现文章。【机器人位置估计】卡尔曼滤波的原理与实现本文主要是针对两篇文章的基础上做笔记和记录学习过程。一、基本模型1.1 机器人小M现在小M只具有一个物理量-位移x,也就是一维卡尔曼/1.2 位移状态预测值估计值自身会由于运动模型预测不准确而导致预测误差,由误差值得到的状态值也是存在误差的,如果以存在误差的状态值继续预测下一个状态值,误差会存在累计的问题。需要引入测量量进行修正。1.3 传感器测量值.
2020-09-10 11:42:11
4474
3
原创 DWA算法学习(带matlab源码)
机器人状态位置 (x,y) 航向yaw 速度v 角速度w机器人运动模型最高速度m/s]最高旋转速度[rad/s]加速度[m/ss]旋转加速度[rad/ss]%速度分辨率[m/s]转速分辨率[rad/s]]评价函数参数航向得分的比重距离得分的比重速度得分的比重向前模拟轨迹的时间速度采样,产生可用轨迹通过机器人模型,以机器人的速度限制和角速度限制为界限,以速度分辨率和角速度分辨率遍历所有采样速度。通过仿真时间确定机器人的轨迹,机器人轨迹是由点位进行
2020-09-10 11:40:25
6284
7
原创 Apollo Planner
参考文章https://blog.youkuaiyun.com/AdamShan/article/details/80779615https://blog.youkuaiyun.com/weixin_43619346/article/details/104973670笛卡尔坐标系的替代解决方案为 Frenet 坐标系,Frenet 坐标系描述了汽车相对于道路的位置,在 Frenet 框架中,s 代表沿道路的距离称为纵坐标,d表示与纵向线的位移称为横坐标。世界坐标系下的一个位置可能在Frenet 坐标系中表示的位
2020-09-10 11:39:01
687
原创 Apollo Control学习
反馈控制是无人车最底层的软件算法模块,包括横向控制和纵向控制两个部分。横向控制主要用于车辆方向盘的控制纵向控制则主要负责车辆油门、刹车的控制横向控制根据上层运动规划输出的路径、曲率等信息进行跟踪控制,以减少跟踪误差,同时保证车辆行驶的稳定性和舒适性。控制模块的作用是根据规划(planning模块)生成的轨迹,计算出汽车的油门,刹车和方向盘信号,控制汽车按照规定的轨迹行驶。根据汽车动力学和运动学对车辆进行建模,采用串级PID或模型预测控制(MPC)方法实现控制过程。...
2020-09-10 11:37:53
974
1
原创 滤波算法与传感器融合
卡尔曼滤波卡尔曼滤波主要是采用预测和更新两个过程。预测过程主要是根据机器人运动模型,对机器人的下一个位置进行预测,其中P代表系统误差。系统误差是在更新的。例如传感器测量误差Q非常大,这样导致卡尔曼增益K值变小,这样测量值对于预测值的修正作用就会降低,因为测量值没有对预测值起到足够的修正作用,这也就导致系统误差在累计增加。同样,如果传感器足够精确,对预测量起到有效的修正,这是的系统误差就会降低。拓展卡尔曼滤波主要是为了解决预测方程和测量方程可能不是线性方程,如果是非线性方程,只能使用泰勒公式.
2020-09-10 11:36:34
1616
原创 基于已知位姿的建图方法
目前较为简单的SLAM建图过程都是将定位和建图进行分离,在确定机器人位姿后,通过激光传感器的测量量对周围环境进行建图。如何利用激光传感器的测量信息进行建图,主要是三种方法:1. 覆盖栅格建图算法slam11-gridmaps-4.pdf3.3MB2. 计数建图算法3. TSDF建图算法1.覆盖栅格建图2. 计数建图3. TSDF建图整体算法的思想是最小二乘法。可以对不同测量信息进行拟合...
2020-09-10 11:35:18
666
原创 MPC(模型预测控制,差分底盘距离)
参考博客地址:https://blog.youkuaiyun.com/weixin_43879302/article/details/105880972?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLea...
2020-09-10 11:34:04
1162
原创 导航:坐标系
导航的基本原则就是保证两个基本坐标系的正确转化,没有误差。只有实现了这个原则,载体才可以在自己的坐标系中完成一系列动作而被转换到地理坐标系中看起来是正确的。一、常用坐标系1.1 经纬高与地心坐标系两者关系 在我们导航过程中,经常会用到GPS定位,GPS返回的数据是基于经纬高坐标系的。 经纬高坐标系与地球直角坐标系两者又能通过一定的公式进行坐标系转换。 地球直角坐标系又称地球中心坐标系、地心坐标系等。1.1.1 转换公式经纬高转地心地心转经纬高1.2 地理坐标系地理坐标系可.
2020-07-17 21:28:45
1711
原创 数据结构学习-数据结构的基本概念
1. 概述2. 基本概念需要根据实际的业务需求来确定什么是数据元素,什么事数据项。数据结构其实就是存在相互关系的数据元素的集合数据对象是具有相同性质的数据元素的集合在下图中,A门店的顾客按照排队顺序是存在先后关系的,属于数据结构A门店的顾客信息和B门店的顾客信息是具有相同性质的,但是因为没有特定关系,所以是数据元素3 数据结构== 数据结构由逻辑结构。物理结构(存储结构)和数据运算三要素组成==3.1 逻辑结构3.2 存储结构3.3 数据运算数据的运算–实现在数据上的
2020-07-08 00:37:01
258
原创 ROS Topic学习笔记
1.Dijkstra算法与最佳优先搜索算法. Dijkstra算法是一种典型的单源最短路径算法,属于广度优先算法。 Dijkstra算法从物体所在的初始点开始,访问图中的结点。它迭代检查待检查结点集中的结点,并把和该结点最靠近的尚未检查的结点加入待检查结点集。 该结点集从初始结点向外扩展,直到到达目标结点。 Dijkstra算法保证能找到一条从初始点到目标点的最短路径,只要所有的边都有一个非负的代价值。(我说“最短路径”是因为经常会出现许多差不多短的路径。) 下图是 Dijkstr
2020-07-05 12:15:28
429
原创 ADRC学习与参数整定心得
ADRC,中文名是自抗扰控制技术。继承了经典PID控制器的精华,对被控对象的数学模型几乎没有任何要求,又在其基础上引入了基于现代控制理论的状态观测器技术,将抗干扰技术融入到了传统PID控制当中去,最终设计出了适合在工程实践中广泛应用的全新控制器。1. ADRC介绍ADRC主要跟踪微分器,非线性状态反馈(非线性组合),扩张观测器(ESO)三部分组成。2. 跟踪微分器TD2.1 作用2.2 表达式2.3 参数含义及作用2.4 代码实现2. 跟踪微分器TD2.1 作用最速跟踪微分器的作用是
2020-05-21 12:41:09
10836
4
原创 ARM Linux驱动开发学习
一、Linux三大驱动类型:字符设备驱动:字符设备驱动最多,从最简单的点灯到 I2C、 SPI、音频等都属于字符设备驱动的类型。块设备驱动:块设备驱动就是存储器设备的驱动,比如 EMMC、 NAND、 SD 卡和 U 盘等存储设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。网络设备驱动:不管是有线还是无线,都属于网络设备驱动。一个设备可以属于多种设备驱动类型,比如 USB...
2020-03-16 17:49:23
328
原创 STM32中的宏定义及库函数分析
我们在使用KEIL5开发STM32时可以使用"GPIOB-ODR"这种方式来给GPIOB的寄存器ODR赋值,=将某个外设的所有寄存器写入到一个结构体里面,然后定义一个结构体指针指向这个外设的寄存器基地址,这样我们就可以通过这个结构体指针来访问这个外设的所有寄存器。
2020-03-06 16:54:15
3357
原创 嵌入式Linux学习之I.MX6U启动方式详解
MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。本文详解了I.MX6ULL启动配置方式及相关寄存器讲解。
2020-03-04 20:50:44
953
原创 嵌入式Linux之MX6ULL裸机例程
将 STM32与LMX6ULL逻辑开发进行了比较,详细解释了I.MX6ULL IO的配置过程,以及GPIO如何配置输入和电气属性,并给出了一些参考资料。以LED点亮为例子,用C语言和汇编两种方式描述了整个例程。
2020-03-04 19:37:08
1099
4
原创 嵌入式Linux之ARM汇编基础
对于 Cortex-A 芯片来讲,大部分芯片在上电以后 C 语言环境还没准备好,所以第一行程序肯定是汇编的,至于要写多少汇编程序,那就看你能在哪一步把 C 语言环境准备好。本文对常用的汇编指令及用法做了详述,便于初学者入门
2020-03-04 17:05:15
371
原创 C++中拷贝(复制)构造函数的使用与注意
拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于:1.通过使用另一个同类型的对象来初始化新创建的对象。例:box2=box1//box2(box1)2.复制对象把它作为参数传递给函数。例:void fun(Box b) //形参是类的对象{ }int main( ){Box box1(12,15,18);f...
2019-10-17 22:29:51
1417
原创 STM32 DMA通道一览及其配置
DMA通道一览DMA1通道DMA2通道DMA内容详解DMA的定义直接存储器存取(Direct MemoryAccess,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道CPU。在同等程度的CPU负担下,DMA是一种快速的数据传送方式。它允许不同速度的硬件装置来沟通,而不需要依于 CPU的大量中断请求。...
2019-10-12 17:37:43
16656
3
拓展卡尔曼滤波.pdf
2020-07-19
最新Linux 版 网易云音乐
2020-03-06
C++编程练习题大全(带答案).pdf
2020-03-06
CAN总线基础学习资料.zip
2020-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人