navigation
文章平均质量分 80
chennuo0125-HIT
Slam, Vio
展开
-
贝塞尔曲线和B样条曲线
贝塞尔曲线公式:P(t)=∑i=0n−1PiBi,n(t)(1)\mathbf{P}(t) = \sum_{i=0}^{n-1}\mathbf{P}_{i}B_{i,n}(t) \tag{1}P(t)=i=0∑n−1PiBi,n(t)(1)其中:Bi,n(t)=Cniti(1−t)n−i(2)B_{i,n}(t) = C_{n}^{i}t^{i}(1-t)^{n-i} \tag{2}Bi,n(t)=Cniti(1−t)n−i(2)B-Spline曲线产生的背景: 贝塞尔曲线两大原创 2021-06-15 18:31:47 · 1494 阅读 · 1 评论 -
OctoMap开启多线程
1. 前言OctoMap是一个对三维空间进行体素化展示的工具包,其不仅以概率的形式刻画每个三维空间体素是障碍物的几率(这对机器人导航和运动规划非常重要),同时优化了数据结构,极大的减少了三维体素地图对内存的消耗.库链接: https://github.com/OctoMap/octomap论文链接: http://www.arminhornung.de/Research/pub/hornung13auro.pdf2. 单线程版本2.1 库安装直接使用ros发行的版本:sudo apt-get原创 2021-02-04 10:50:12 · 328 阅读 · 1 评论 -
dijkstra算法理解及实现
算法原理dijkstra算法在整个更新过程中其实就是在维护一个OPEN表(集合U)和一个CLOSE表(几何S),OPEN表记录的是还未计算出最短路径的节点,而CLOSE表记录的是已经计算出最短路径的节点.下图展示了在dijkstra算法过程中如何更新这两个表.注: U{A(n), B(m)…}表示OPEN表中存在节点A和B,其当前对应的最短路径分别为n和m,后续会继续更新; S{A(n), B(m)…}表示CLOSE表中存在节点A和原创 2020-10-28 20:46:08 · 542 阅读 · 1 评论 -
navigation路径规划器navfn原理详解
navfn综述navfn算法首先根据代价地图生成一个加权无向图,代价地图中的每个栅格代表加权无向图的每个节点,每个栅格的代价值构成加权无向图边的权重.然后根据加权无向图,利用dijkstra算法从起点开始传播到目标点,获取传播过程中到各个节点的最优行走代价值.最后从目标点开始,沿着最优行走代价值梯度下降的方向寻找到起点的最优轨迹.其主要过程如下: (1)NavFn::setCostmap(c...原创 2019-11-10 16:27:56 · 4206 阅读 · 13 评论 -
机器人局部动态避障算法dwa解析
机器人局部动态避障算法dwa解析简介 dwa算法全称叫动态窗口法(dynamic window approach),其算法过程主要分为仿真获取机器人的运动轨迹、对轨迹进行评价选择最优轨迹两个主要过程,动态窗口表达的是仿真的运动轨迹数量有限,主要是因为机器人在较短的控制周期内只能达到一定的速度。一、机器人如何仿真获取运动轨迹1、获取机器人速度样本 根据机器人...原创 2019-04-30 08:55:53 · 13411 阅读 · 8 评论