自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

转载 粒子滤波器

粒子滤波器(参见维基百科的解释)粒子滤波器是一种使用蒙特卡洛方法的递归滤波器,透过一组具有权重的随机样本(称为粒子)来表示随机事件的后验概率。粒子滤波器能从一系列含有噪声或者不完整的观测值中,估计出动态系统的内部状态。在动态系统的分析中,需要两个模型,一个用来描述状态随时间的变化(系统模型),另一个用来描述每个状态下观察到的噪声(观测模型)递归滤波器包括:1预测:利用系统模型,由前一个状态...

2019-04-17 18:28:49 1761

原创 蒙特卡洛定位

参考《概率机器人》书籍。这是一种用粒子表示置信度bel(xt)的定位算法(基于粒子滤波的定位算法)蒙特卡洛的优点是1.能够近似任何实际的重要性分布;2.能够表示复杂多模概率分布,并能与集中的高斯式分布无缝融合。随机粒子蒙特卡洛定位:失效恢复蒙特卡洛定位以目前的形式能解决全局定位问题,但是不能从机器人绑架中或全局定位失效中恢复。任何随机算法在重采样步骤中可能意外地丢弃所有正确位姿附近的粒...

2019-04-17 17:21:20 3011

转载 离散贝叶斯滤波算法

2019-04-17 11:47:52 641

原创 调试gy273时的一些感悟

1、使用iic协议的外设的两个数据端口是SDA和SCL,所以外设不需要自己再定义新的端口,直接使用iic协议中定义好的端口就好同理基于spi协议的外设也是如此2、往往iic、spi协议等都是用的都是自己编译的,不会使用库中自带的协议3、5110一行中每个字符之间的间距是6例:LCD_write_string(42,4,(&bai),1);LCD_write_string(...

2019-04-17 11:41:21 1006 1

原创 GPRS调试时注意点

GPRS调试中指令:我使用的是原子的GPRS开发板,其中有些默认指令是被记录其中的:1、AT+CGCLASS=“B”2、AT+CGAT=13、AT+CIPCSGP=1,“CMNET”以上指令是场景默认设置,设置后基本上就不会改变以下指令是需要自己修改的:TCP协议传输时:1、AT+CIPSTART=“TCP”,“IP地址”,“端口”如返回“CONNECT OK”,接着执行下一步...

2019-04-16 19:41:56 489

原创 原子GPRS调试

GPRS调试中指令:我使用的是原子的GPRS开发板,其中有些默认指令是被记录其中的:1、AT+CGCLASS=“B”2、AT+CGATT=13、AT+CIPCSGP=1,“CMNET”以上指令是场景默认设置,设置后基本上就不会改变以下指令是需要自己修改的:TCP协议传输时:1、AT+CIPSTART=“TCP”,“IP地址”,“端口”如返回“CONNECT OK”,接着执行下一步...

2019-04-16 19:40:34 314

原创 有人USR-GPRS232-7S3模块配置问题

以下说法仅针对该特定模块有用:注意:实际模块配置使用时,那么多引脚只需要注意UTXD、URXD、GND、GND、DC7~18V电源模块我采用的是9V/1A,DC与GND要同时接在电源线上,以形成回路UTXD与URXD要ttl转USB模块相连按照教程配置完后发现GPRS无法连接,原因在于没有开启对端口的监控后续待补充。。。...

2019-04-16 19:40:00 1179 1

转载 一些C函数(嵌入式Linux)

1.Exit( )电脑函数函数名: exit()所在头文件:stdlib.h(如果是”VC6.0“的话头文件为:windows.h)功 能: 关闭所有文件,终止正在执行的进程。exit(1)表示异常退出.这个1是返回给操作系统的。exit(x)(x不为0)都表示异常退出exit(0)表示正常退出exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其...

2019-04-16 19:39:23 219

原创 c语言中的一些注意点

1.指针函数和函数指针的区别:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针类型标识符 *函数名(参数表) int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。表示:float *fun()...

2019-04-16 19:38:36 110

原创 共阴数码管数组C语言显示

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delayms(uint);void delayms(uint xms){ uint i,j; for(i=xms;i>0;i--) for(j=110;j&g...

2019-04-16 19:37:40 2647

原创 fwrite与fprintf区别,printf与fprintf区别

1、fprintf(fp, “%d”, buffer); 是将格式化的数据写入文件fprintf(文件指针,格式字符串,输出表列);fwrite(&buffer, sizeof(int), 1, fp);是以二进位位方式写入文件fwrite(数据,数据类型大小(字节数),写入数据的最大数量,文件指针);2 fprintf() : 按格式输入到流,其原型是int fprintf(F...

2019-04-16 19:36:58 586

原创 Bayes滤波算法

Bayes滤波算法推导:Bayes公式的计算:贝叶斯递推公式:Bayes滤波算法:

2019-04-16 19:35:23 280

原创 概率论的基础知识

本文参考的是《概率机器人》中内容令X表示一个随机变量,x表示X的某一特定值。表示随机变量X具有x值的概率,可以缩写为P(x)假定所有的连续随机变量都拥有概率密度函数(Probability Density Function,PDF)。普通密度函数都具有均值μ和方差б2的一维正态分布。正态分布的概率密度函数为:但当x为多维矢量时,矢量的正态分布被称为多元正态分布,多元正态分布的密度函数形...

2019-04-16 16:36:43 735

原创 C语言中read、write、open及文件读写

Linux C函数read函数(读取文件)number = read(handle, buffer ,n) ;handle: 这是一个已经打开的文件句柄,表示从这个文件句柄所代表的文件读取数据。buffer: 指缓冲区,即读取的数据会被放到这个缓冲区中去。n: 表示调用一次read操作,应该读多少数量的字符。number:表示系统实际所读取的字符数量。【 read系统调用】功能描述...

2019-04-16 16:15:32 6777

原创 c语言中的exit(0)与exit(1)的区别

exit是一个函数,进程退出时会有一个值,exit函数的参数就是指明进程退出的返回值,操作系统根据这个值来判断是否是正常退出。你也可以通过GetExitCodeProcess来获取这个值(windows下),一般情况下退出值是0表示正常(exit(0)),其它情况都是不正常的。...

2019-04-15 18:54:08 1144

原创 stm32数据类型的定义

unsigned int u32unsigned short u16unsigned char u8

2019-04-15 18:53:39 1115

原创 C语言格式输出函数printf()详解

函数原型在头文件“stdio.h”printf函数是一个标准库函数。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件printf函数调用的一般形式如下:printf(“格式控制字符串”,输出表列)“%d” 表示按十进制整数输出“%ld” 表示按十进制长整型输出“%c” 表示按单个字符型输出“%s” 表示按字符串输出#include<stdio...

2019-04-15 18:53:05 3378

原创 C语言 数据类型的深入学习

在调试RFID_RC522及以前相关的模块中,往往会遇到代码中出现数据格式问题,这些问题常常也是千奇百怪。为了彻底解决这些无聊的问题,有必要重新深入地学习C语言中的数据类型:C语言中,仅有4种基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等)。整型家族:包括字符、短整型、整型和长整型,全都分为有符号(signed)和无符号(unsigned)两类。长整型至少应该和整型一样长,而...

2019-04-15 18:52:20 285

原创 C语言 操作符和表达式

算术操作符:C提供了所有常用的算术操作符:+ - * / %除了%操作符,其余的操作符是既适用于浮点类型又适用于整数类型%为取模操作符,接受两个整型操作数,把左操作数除以右操作数,但其返回的值是余数而不是商。移位操作符: (二进制 0和1)移位操作只是简单地把一个值的位向左或向右移动。左移位中,值最左边的几位被丢弃,右边多出来的几个空位则由0补齐...

2019-04-15 18:50:33 214

原创 C语言 输入/输出函数

1). 错误报告perror函数以一种简单、统一的方式报告错误。void perror(char const *message); //原型定义于stdio.h标准库函数在一个外部整型变量errno(在 errno.h中定义) 中保存错误代码。2). 终止执行该函数是exit,用于终止一个程序的执行,原型定义于stdlib.hvoid exit( ...

2019-04-15 18:49:49 1025

原创 printf的用法

printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出  信息。在编写程序时经常会用到此函数。函数的原型为:  int printf(const char *format, …);  函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。  printf()函数的调用格式为:  printf("<格式化字符串>", &l...

2019-04-15 18:48:53 18155

原创 树莓派设置静态IP

目的:当没有显示器的时候,我们可以启动树莓派,并用软件扫描局域网找到Raspberry pi的地址。然而有些情况下我们不想扫描ip可以考虑将树莓派的ip设为固定ip这样我们每次都能准确访问而不需要扫描ip。过程:1、启动树莓派2、设置树莓派IP地址修改的内容是:iface eth0 inet staticaddress 58.193.173.197 ##设定的静态IP地址netm...

2019-04-15 18:45:45 455

原创 Linux环境下,怎么确定Nginx是以那个config文件启动的?

1.Linux环境下,确定Nginx是以那个config文件启动的方法输入命令行: ps -ef | grep nginxmaster process 后面的就是 nginx的目录。2.127.0.0.1的作用(1) 127.0.0.1不光是unix系统,linux也好,windows也好,都会有这个循回地址的。(2)127.0.0.1常用来在本机测试各种网络服务(3)常用环回地址1...

2019-04-15 18:42:40 1805

原创 Linux怎样返回上一层目录的命令:

Linux怎样返回上一层目录的命令:回到上一级目录:cd… 回到上一次目录:cd-(可穿越多层)vi指令进入的文件如何退出:按下【ESC】 输入“:”冒号,再输入wq!代表保存退出,q!代表强制退出不保存Linux中将文件夹下的所有文件复制到另一个文件里:1.在/TEST目录下新建test1和test2两个子文件夹。 假设复制源文件test1下的test01文件,目标目录为t...

2019-04-15 18:41:53 16064 1

原创 RFID定位----滤波优化(一)

在获得了粗实位置后,仍然需要对数据进行滤波优化,这里首先采用了卡尔曼滤波。卡尔曼滤波主要有两个步骤,即预测和更新。预测 新的状态值更新是利用量测值来修正预测值这里从最小均方误差的角度来推导卡尔曼滤波方程。Ps:还有另一种从概率论的角度来推导卡尔曼方程的。首先是状态转移方程和量测估计方程:记k-1时刻的状态估计为:状态估计误差为:状态估计误差的均方误差矩阵为:也就是:...

2019-04-12 22:41:02 927

原创 RFID定位-----模型值与传感器数据的拟合

上一篇是介绍了利用模型构建信号理想值,接下来就是对于模型值和传感器数据的拟合。利用RFID定位中的数据匹配有两种算法可以采用,分别是KNN和ICP算法,接下来分开介绍这两种算法。对于KNN 的简要介绍主要是参考这篇博客:https://www.cnblogs.com/erbaodabao0611/p/7588840.htmlKNN(K-Nearest Neighbor)工作原理:存在一个样...

2019-04-11 22:01:31 428

原创 RFID定位----RFID射线建模

利用RFID进行移动目标定位,这里面采用的是指纹定位方法。根据接收信号功率随距离变化的规律建模,建模可以得到理想值,再将其与实际测量值进行匹配就可以得到拟合值。之后可以对拟合值进行进一步处理。首先来介绍建模原理:一般而言认为,路径损耗和阴影效应是影响接收信号功率随距离变化的主要影响因素。路径损耗:由发射功率的辐射扩散及信道的传播特性造成。一般认为对于相同收发距离,路径损耗相同。**阴影效...

2019-04-11 20:45:09 1195

原创 RRT(快速搜索随机树)

RRT 理论:抛X_rand,先得X_near,再得X_new以上是算法流程图。close all;clear all;% params for function [vertices, edges, path] = rrt(map, q_start, q_goal, k, delta_q, p)% MAPmap = load('map.mat');q_start = [80...

2019-04-10 12:52:46 3707

原创 路径规划

此处介绍的是在地图已知下的避开障碍物的路径算法,下图是路径算法的简要分类:

2019-04-10 12:25:21 441

原创 ROS学习----Publisher与Subscriber

1.Publisher(发布者)与subscriber(订阅者)关系。Publisher的主要作用是对于指定话题发布特定数据类型的消息。下面是利用代码实现一个节点,节点创建一个Publisher并发布字符串“Hello world”,其详细内容如下:#include &lt;sstream&gt;#include "ros/ros.h" **1**#include "std_m...

2019-03-04 21:10:17 1385

原创 ROS运行launch文件出现问题

问题是:cannot launch node of type []:can’t locate node [] in package []解决方法是:这个是我自己造成的极其低下愚蠢的错误。我是使用roboware软件进行编译c++文件的,构建时应该选择可执行的文件,而不是添加到新的库文件中。多么简单而难以发现的错误啊。...

2019-02-21 19:00:46 3431

原创 a tf broadcaster

1.创建包mkdir -p catkin_ws/srccd catkin_ws/srccatkin_create_pkg learning_tf tf roscpp rospy turtlesim 建立你的新包roscd之前:cd ~/catkin_wscatkin_makesource ./devel/setup.bash这时功能包就已经构建完成了。此时打开Roboware...

2019-02-21 19:00:07 164

原创 ROS编译出现未定义的引用问题解决方案

solution:在CMakeLists.txt中添加:add_library(turtle_tf_broadcaster src/turtle_tf_broadcaster.cpp)add_dependencies(turtle_tf_broadcaster ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})ta...

2019-02-21 18:56:54 6977 4

原创 ubuntu14.04.5下ROS的安装

我是在虚拟机上安装ROS的,中间出现了一些问题,花了些功夫才解决这些问题。首先我选择在虚拟机上安装ubuntu 14.04.5中32版本的镜像源文件,这里面的过程可以在网上找相关教程比较容易解决。ROS的主要安装步骤如下:1.配置ubuntu软件仓库2.添加sources.list源如下:sudo sh -c '. /etc/lsb-release &amp;&amp; echo "...

2019-01-22 16:51:42 482

原创 C++ primer plus 学习笔记 (第14章)

第14章 C++中的代码重用包含、私有继承和保护继承用于实现has-a关系,即新的类将包含另一个类的对象。多重继承使得能够使用两个或更多的基类派生出新的类,将基类的功能组合在一起。类模板使我们能够使用通用术语定义类,然后使用模板来创建针对待定类型定义的特殊类。14.1.1 valarray 类简介14.2 私有继承实现has-a关系的另一种途径—私有继承。使用私有继承,基类的公有成员...

2019-01-17 22:44:13 202

原创 C++ primer plus 学习笔记 (第13章)

第13章 类继承类库由类声明和实现构成的。通常,类库是以源代码的方式提供的。C++提供了比修改代码更好的方法来扩展和修改类。这种方法叫做类继承,它能够从已有的类派生出新的类,而派生类继承了原有类(称为基类)的特征,包括方法。通过继承派生出的类通常比设计新类要容易。下面是可以通过继承完成的一些工作:可以在已有类的基础上添加功能;可以给类添加数据;可以修改类方法的行为;13.1 一个简...

2019-01-17 22:42:10 200

原创 C++ primer plus 学习笔记(第12章)

第12章 类和动态内存分配12.1 动态内存和类// strngbad.h -- flawed string class definition#include &lt;iostream&gt;#ifndef STRNGBAD_H_#define STRNGBAD_H_class StringBad{private: char * str; ...

2019-01-17 22:38:20 401

原创 C++ primer plus 学习笔记(第11章)

第11章 使用类11.1 运算符重载C++允许将运算符重载扩展到用户定义的类型中。在C++中,可以定义一个表示数组的类,并重载+运算符,就有如下语句:evening=sam+janet;要重载运算符,需要使用被称为运算符函数的特殊函数形式。运算符的格式如下:operatorop(argument - list)例,operator+( )重载+运算符,operator*( )重载...

2019-01-17 22:33:24 155

原创 小波变换在信号处理过程中的具体实现

步骤如下:1.对信号源进行一个初步的分析,根据此分析来选择或构造适当的小波基函数;2.确定小波变换的分解层数N;3.利用构造的小波基对信号源进行N层的小波分解4.对其各层小波系数进行重构,得到各层细节信号5.将重构后的细节信号提取出来,观察信号的奇异点,最终对某一层细节信号作频谱分析并得到相关结论在对信号进行时频分析,即观察信号在某一时间t上,对应某一尺度a的成分...

2019-01-14 20:46:15 2958

原创 C++ primer plus 学习笔记(第10章)

第10章 对象和类10.2 抽象和类接口描述了用户如何初始化、更新和显示数据C++中,用户定义类型指的是实现抽象接口的类设计10.2.1 类型指定基本类型完成以下工作:决定数据对象需要的内存数量;决定如何解释内存中的位;决定可使用数据对象执行的操作或方法;10.2.2 C++中的类1.类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法合成一个包。...

2019-01-14 20:28:11 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除