5 JunJun~

我要认证

专心做一件小事

等级
TA的排名 1w+

Rapidly-exploring Random Tree

原理其他资料例子"""Path planning Sample Code with Randomized Rapidly-Exploring Random Trees (RRT)author: AtsushiSakai(@Atsushi_twi)"""import mathimport randomimport matplotlib.pyplot as pltimport numpy as npshow_animation = Trueclass RRT:

2020-09-15 20:41:43

Probabilistic Road Map

原理其他资料例子"""Probabilistic Road Map (PRM) Plannerauthor: Atsushi Sakai (@Atsushi_twi)"""import randomimport mathimport numpy as npimport matplotlib.pyplot as pltfrom scipy.spatial import cKDTree# parameterN_SAMPLE = 500 # number of sample

2020-09-12 17:18:53

Jump Point Search

原理Jump Point Search是一种打破平衡性的方法,可能比A*更高效。其他资料对于straight情况,对X节点进行扩展,那么只会考虑节点5;因为节点1、2、3、6、7、8通过其父节点4直接到达会父节点经过X再到达更近(小于等于);所谓的(inferior neighbors)节点;否则是natural neighbors节点;对于diagonal情况,对X节点进行扩展,那么只会考虑节点2、3、5;因为节点1、4、7、8通过其父节点6直接到到会比经过X再到达更近(小于);

2020-06-28 22:50:24

bidirectional A*

原理双向A*算法(bidirectional a star)是对A*的一种扩展,只是从起点和终点同时进行搜索而已;不过起点以终点为目标,终点以起点为目标,最后找到它们的交点。例子c_id_A = min( open_set_A, key=lambda o: self.find_total_cost(open_set_A, o, current_B))current_A = open_set_A[c_id_A]c_id_B = min(open_set_B, key=lambda o: .

2020-06-16 23:01:38

A*

原理dijkstra也是一种基于图的搜索算法,算法原理也很简单:按照代价排序每次弹出一个代价最小的结点,同样也是一个优先级队列,不过需要注意与Greedy Best First Search的区别(优先级队列,按照与终点的距离排序,每次弹出距离最小的结点)。其他资料...

2020-06-10 22:47:46

基于时域线性插值法计算信号的周期

时域线性插值法,是一种计算量小、准确度高和实时性好的计算信号周期的方法。1 算法原理其计算周期的步骤如下:Ts为采样间隔,Ip可由插值法获得,如下图所示:采用时域线性插值法求解信号的周期,如下图所示:2 matlab程序function [ T] = F( a4)a3=a4; va = mean(a3) ; te = 1; for itt = 2 : length(a3) if a3(itt) >= va &amp.

2020-06-06 00:58:19

基于傅里叶变换法和Rife-Jane法计算信号的周期

1 傅里叶变换法傅里叶变换法估计信号频率的原理是首先通过对信号进行傅里叶变换,然后找到频谱中幅值最大值所对应的频率,再求出其倒数即为信号的周期,使用该方法不需要对加速度信号进行预处理,但该方法容易受傅立叶变换时的频率分辨率的影响。对加速度信号进行傅里叶变化,如下图所示。傅里叶变换法求周期的程序可参考Matlab的库函数fft。2 Rife-Jane方法Rife算法是对傅里叶变换法的改进,是为了解决傅里叶变换法所存在的量化误差问题,其通过对频谱的最大谱线以及与其相邻的较大谱线进行插值,

2020-06-06 00:41:17

dijkstra

原理其他资料例子这个例子是在开源代码中找到的,给添加了一些注释;另外该算法虽然是使用python写的,但其实可以忽略掉一些辅助性的东西而关注于核心思想。

2020-06-03 23:05:45

Bidirectional Breadth First Search

原理贪婪最佳优先搜索Greedy Best First Search,是一种启发式搜索算法,我们也可以将它看做广度优先搜索算法的一种改进;算法思想是将节点按距离目标的距离进行排序,然后以这个距离为代价选择待扩展的节点。1)广度有限搜索算法相当于一个先进先出的队列;2)深度有限搜索则相当于一个后进先出的栈;3)贪婪最佳优先搜索则相当于一个根据代价排序的优先级队列。在没有障碍物的情况下,Greedy Best First Search通常可以找到一个最短路径而且效率比BFS要高,但在有障碍物

2020-06-02 23:29:52

Greedy Best First Search

原理贪婪最佳优先搜索Greedy Best First Search,是一种启发式搜索算法,我们也可以将它看做广度优先搜索算法的一种改进;算法思想是将节点按距离目标的距离进行排序,然后以这个距离为代价选择待扩展的节点。1)广度有限搜索算法相当于一个先进先出的队列;2)深度有限搜索则相当于一个后进先出的栈;3)贪婪最佳优先搜索则相当于一个根据代价排序的优先级队列。在没有障碍物的情况下,Greedy Best First Search通常可以找到一个最短路径而且效率比BFS要高,但在有障碍物

2020-06-01 23:23:30

Depth First Search

原理深度优先搜索是一种基于图的搜索算法,算法原理比较简单:从起点不断的进行膨胀直到最后触碰到终点为止。如下图所示,令绿色是起点,黄色是终点,算法搜索的步骤就是从绿色开始膨胀,然后红色,然后蓝色,直到最后膨胀到终点黄色。以上虽然不是很严谨吧,我觉得还是可以说明一些思想的。其他的一些资料以下是深蓝学院中的路径规划课程中介绍的DFS算法。例子这个例子是在开源代码中找到的,给添加了一些注释;另外该算法虽然是使用python写的,但其实可以忽略掉一些辅助性的东西而关注于核心思想..

2020-05-31 19:40:17

Breadth First Search

广度优先搜索是一种基于图的搜索算法,其算法原理很简单:就是从起点不断的进行均匀膨胀直到最后触碰到终点位置为止。"""Breadth-First grid planningauthor: Erwin Lejeune (@spida_rwin)See Wikipedia article (https://en.wikipedia.org/wiki/Breadth-first_search)"""import mathimport matplotlib.pyplot as pltshow

2020-05-29 23:47:02

对使用扩展卡尔曼滤波进行状态估计的理解

简述卡尔曼滤波适用于线性高斯系统,然而这是一个强假设;对于大部分机器人系统而言,非线性系统才是常态,如此卡尔曼滤波就不太适用了,那么该如何解决这个问题?这引出了扩展卡尔曼滤波。扩展卡尔曼滤波的思想扩展卡尔曼滤波的基本思想来自于线性化,也就是说对一个非线性系统进行一阶泰勒展开,从而把一个非线性系统转化为线性系统,这样卡尔曼滤波能够处理的了;不过要是该系统非常非线性化,那么扩展卡尔曼算法的效果很有限。扩展卡尔曼滤波的核心公式以下公式来自于《概率机器人》,为了方便与卡尔曼滤波算法进行对比,我们

2020-05-24 15:32:04

对使用卡尔曼滤波进行状态估计的理解

卡尔曼核心公式理解小例子

2020-05-11 00:08:37

基于波峰波谷法计算信号的周期

波峰波谷法原理是:查找信号相邻波峰波谷间隔采样点的数量,乘上采样间隔的时间,最后求平均值即是信号的周期。但该方法对噪声较为敏感,采用波峰波谷法计算滤波后信号的周期,如图所示。该方法主要是需要找到信号的极大值和极小值,程序如下:function [max_p, max_v, min_p, min_v] = find_extrema(y)% find maximas% [tmp_v, tmp_p] = findpeaks(y);tmp_p = find(y(2:end-1)>y(1:e

2020-05-08 21:18:27

五点三次平滑滤波在消除随机噪声中的应用以及其Maltab程序

五点三次平滑滤波其原理是对通过采样信号使用最小二乘法的思想进行三次平滑。采用五点三次平滑滤波对信号进行滤波,其效果如图所示:五点三次平滑滤波的Matlab相关程序如下所示:m = 3; N = length(x1); a = x1; b = zeros(1, N);for M = 1 : m b(1) = (69 * a(1) + 4 * (a(2) + a(4)...

2020-05-06 21:57:45

递推平滑算法算法在消除随机噪声中的应用以及其Maltab程序

递推平滑滤波算法原理是利用N个点(N最好为奇数)的平均值来代替采样点的值,这里使用N=11和N=21的两次递推平滑滤波对信号滤波,效果如图。随着点数N的增大,滤波后的加速度信号曲线越来越平滑。递推平滑滤波的Matlab函数为smooth。...

2020-05-06 21:52:17

中值滤波在消除脉冲噪声中的应用以及其Maltab程序

中值滤波是一种可以有效的消除脉冲噪声的滤波算法,其滤波方法是每次取N(一般为奇数)个采样点,然后按照数据的大小进行排序,最后取中间值作为本次滤波的结果。这里分别取N=5和N=11对实测加速度信号进行处理,滤波效果图3-4所示。从图可以看出,当取11个点时,滤波效果更好。此外在滤波过程中,根据算法原理,需要在每一个采样点进行了一次N点的排序运算(冒泡法排序),因此当信号的数据量较大以及N取值...

2020-05-06 21:46:29

限幅滤波在消除脉冲噪声中的应用以及其Maltab程序

限幅滤波算法原理:设置一个合适的限定值,然后当采样点的幅值相对于前一个采样点和后一个采样点增大或减小的值超过该限定值时,则认为该点为脉冲点,并使用其前后两个采样点的平均值作为本次滤波的结果。这里分别取限定值为0.1以及0.5,然后对信号进行处理,滤波效果如图所示。当限定值取0.1时滤波结果较理想,但同时可以看到,在脉冲噪声点较集中的区域,限幅滤波算法效果较差。限幅滤波算法的相关Matl...

2020-05-06 21:42:59

拉伊达法则在消除脉冲噪声中的应用以及其Maltab程序

拉伊达准则原理:当采样点减去采样信号的均值后大于三倍采样信号的标准差,即认为该采样点为粗大误差点,同时使用该采样点的前后两点的平均值代替。使用拉伊达法则对信号进行处理:拉伊达法则可以有效去除粗大误差点,但对于脉冲噪声点的消除则并不是很理想,因而可以作为信号的消除脉冲噪声前的预处理。拉伊达法则相关Matlab程序如下:Len = length(a) ; av = mean(a) ...

2020-05-06 21:35:09

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。