08 2019 档案
扩展卡尔曼滤波器
摘要:毫米波雷达的数据 毫米波雷达观察世界的方式与激光雷达有所不同。激光雷达测量的原理是光的直线传播,因此在测量时能直接获得障碍物在笛卡尔坐标系下x方向、y方向和z方向上的距离;而毫米波雷达的原理是多普勒效应,它所测量的数据都是在极坐标系下的。 如下图所示,毫米波雷达能够测量障碍物在极坐标下离雷达的距离ρ
阅读全文
卡尔曼滤波器
摘要:假设有个小车在道路上向右侧匀速运动,我们在左侧安装了一个测量小车距离和速度传感器,传感器每1秒测一次小车的位置s和速度v,如下图所示。 我们用向量xt来表示当前小车的状态,该向量也是最终的输出结果,被称作状态向量(state vector): 由于测量误差的存在,传感器无法直接获取小车位置的真值,只
阅读全文
蒙特卡罗定位(Particle Filter Localization)
摘要:1. 蒙特卡罗定位 定位:机器人知道地图信息的情况下如何利用传感器信息确定自己的位置(Localization)。 有人会说,定位是不需要地图信息的。机器人知道初始位置,知道左右轮的速度,就可以算出在一段时间内左右轮分别走了多少距离,进而算出机器人的转角和位移,以便更新位置信息。但是显然,这种方法存
阅读全文
teb_local_planner安装及使用
摘要:teb_local_planner的详尽资料(包括安装及导航,参数调节等)请参考其ros官方文档:http://wiki.ros.org/teb_local_planner和http://wiki.ros.org/teb_local_planner/Tutorials。 teb_local_plan
阅读全文
机器人的地图——占据栅格地图
摘要:1. 机器人地图的分类 地图有很多种表示方式,例如,用经纬度标识地方的世界地图,城市的地铁图,校园指引图。 第一种我们称为尺度地图(Metric Map),每一个地点都可以用坐标来表示,比如北京在东经116°23′17'',北纬39°54′27'';第二种我们称为拓扑地图(Topological M
阅读全文
高斯混合模型
摘要:使用单高斯模型来建模有一些限制,例如,它一定只有一个众数,它一定对称的。举个例子,如果我们对下面的分布建立单高斯模型,会得到显然相差很多的模型: 于是,我们引入混合高斯模型(Gaussian Mixture Model,GMM)。高斯混合模型就是多个单高斯模型的和。它的表达能力十分强,任何分布都可以
阅读全文
多元高斯分布
摘要:让我们回到小球检测的栗子,在一元高斯分布下,我们只使用了色相值这一个性质。然而,颜色其实是用多个维度来定义的。比如,在HSV模型下,除了色相值还有饱和度(Saturation)和亮度(Value)。而我们通常使用的三原色光模式(RGB模型)将颜色表示成红色(R)、绿色(G)和蓝色(B)的叠加。如果我
阅读全文
C++——虚析构
摘要:目的: //只执行了 父类的析构函数//向通过父类指针 把 所有的子类对象的析构函数 都执行一遍//向通过父类指针 释放所有的子类资源 方法:在父类的析构函数前+virtual关键字
阅读全文
C++——多态
摘要:1. 多态定义的构成条件 多态是在不同继承关系的类对象,去调同一函数,产生了不同的行为。 就是说,有一对继承关系的两个类,这两个类里面都有一个函数且名字、参数、返回值均相同,然后我们通过调用函数来实现不同类对象完成不同的事件。
阅读全文
C++——虚继承(不要使用,会导致二义性)
摘要:如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性 总结: 如果一个派生类从多个基类派生,而这些基类又有一个共同 的基类,则在对该基类中声明的名字进行访问时,可能产生 二义性 如果在多条继承路径上有一个公共的基类,那么在继承路径的某处 汇合
阅读全文
C++——类的多继承
摘要:多继承概念 一个类有多个直接基类的继承关系称为多继承 多继承声明语法 class 派生类名 : 访问控制 基类名1 , 访问控制 基类名2 , … , 访问控制 基类名n { 数据成员和成员函数声明 }; 类 C 可以根据访问控制同时继承类 A 和类 B 的成员,并添加 自己的成员 多继承的派生类构
阅读全文
C++——类的继承(派生)
摘要:类的继承就是子类可以拥有父类的成员变量和成员函数 //public 修饰的成员变量 方法 在类的内部 类的外部都能使用//protected: 修饰的成员变量方法,在类的内部使用 ,在继承的子类中可用 ;其他 类的外部不能被使用//private: 修饰的成员变量方法 只能在类的内部使用 不能在类的
阅读全文
C++——运算符重载
摘要:运算符重载编程基础 例如: //全局函数 完成 +操作符 重载 Complex operator+(Complex &c1, Complex &c2) //类成员函数 完成 -操作符 重载 Complex operator-(Complex &c2) 二、实列
阅读全文
C++——友元函数和友元类
摘要:友元函数:让函数可以访问类的私有属性 友元类 若B类是A类的友员类,则B类的所有成员函数都是A类的友员函数 友员类通常设计为一种对数据操作或类之间传递消息的辅助类
阅读全文
拷贝构造函数
摘要:拷贝构造函数调用时机(用一个对象初始化另一个对象时) 赋值构造函数的四种调用场景(调用时机) 第1和第2个调用场景 #include "iostream" using namespace std; class AA { public: AA() //无参构造函数 默认构造函数 { cout<<"我是
阅读全文
ros-slam的链接
摘要:http://wiki.ros.org/navigation/Tutorials/RobotSetup 稍后整理
阅读全文
二维坐标变换
摘要:平时开发程序,免不了要对图像做各种变换处理。有的时候变换可能比较复杂,比如平移之后又旋转,旋转之后又平移,又缩放。 直接用公式计算,不但复杂,而且效率低下。这时可以借助变换矩阵和矩阵乘法,将多个变换合成一个。 最后只要用一个矩阵对每个点做一次处理就可以得到想要的结果。 另外,矩阵乘法一般有硬件支持,
阅读全文
STM32硬件错误HardFault_Handler的处理方法
摘要:https://blog.csdn.net/electrocrazy/article/details/78173558
阅读全文
ROS-节点参数param
摘要:ROS中有如下3种获取参数的方式。 在launch中写 <param name="debug_imu" value="true"> 不管是上面何种数据类型都要带引号 #include "ros/ros.h" #include <cstdlib> using namespace std; int ma
阅读全文
STM32CubeMx使用教程
摘要:https://zhuanlan.zhihu.com/STM32CubeMX
阅读全文
Ros node启动与关闭
摘要:1. ros运行单位: Ros程序运行的单位是ros node。 2. ros 节点的启动: (1)初始化ros节点:通过调用ros::init()接口实现;可以通过参数指定默认节点名字,之所以是默认,是因为在命令行执行程序时,是可以修改节点名字的。 (2)启动ros节点:通过调用ros::Node
阅读全文
环境变量有中文导致的软件不能使用的问题
摘要:https://blog.csdn.net/wtwcsdn123/article/details/81916368 https://blog.csdn.net/dbdd_cf/article/details/84872297 1、新建一个本地英文账号 2、将环境变量更改为英文账号的地址即可
阅读全文
Could not open file ..\obj\sys.o: No such file or directory解决办法
摘要:一、你的keil的安装路径以及系统用户名是否带中文字符以及一些特殊字符。二、环境变量的值存在中文或者特殊字符了,解决方法如下: 1.在C盘建立一个新的文件夹,命名为英文,如qcl2.右击"此电脑",选择属性选项卡,然后点击左侧高级系统设置3.找到环境变量,并修改带有中文的部分 4.重启5.打开你的k
阅读全文