
机器人/自动驾驶导航功能算法合集
文章平均质量分 90
机器人/自动驾驶导航子模块算法,包括导航系统架构及业务模块组合策略
、多传感器标定、数据融合与状态估计、定位、地图建立、地图管理SLAM、运动学动力学、任务规划、动作规划、全覆盖路径规划、全局路径规划、局部路径规划、轨迹跟踪
RoboticsTechLab
一枚爱琢磨、愿意深耕的研发攻城狮,现从事于机器人、自动驾驶行业,不定期分享机器人、自动驾驶及工作经验相关内容,感谢关注!
展开
-
机器人地图建立及管理导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对建地导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 20:44:51 · 1011 阅读 · 0 评论 -
机器人动作策略规划导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对动作策略规划导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 08:54:42 · 495 阅读 · 0 评论 -
机器人全局路线规划导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对全局路线规划导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 08:45:52 · 966 阅读 · 0 评论 -
机器人局部轨迹规划导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对局部轨迹规划导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 08:35:29 · 1011 阅读 · 0 评论 -
机器人轨迹跟踪控制导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对轨迹跟踪控制做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-24 20:52:01 · 1094 阅读 · 0 评论 -
导航系统架构及业务模块组合策略导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对导航系统架构及业务模块组合策略做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 23:23:05 · 521 阅读 · 0 评论 -
运动学与动力学基础知识导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对运动学与动力学基础知识导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 22:55:19 · 740 阅读 · 0 评论 -
多传感器标定、数据融合与状态估计导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对多传感器标定、数据融合与状态估计导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-29 19:19:06 · 740 阅读 · 0 评论 -
机器人感知导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对****做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-05-06 20:36:38 · 860 阅读 · 0 评论 -
机器人定位导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对机器人定位导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-25 20:56:13 · 653 阅读 · 0 评论 -
【手写下降优化算法训练】梯度下降优化算法与模型训练
线性模型(linear model)是希望通过一个直线的形式来描述模式。线性模型的目标函数如下所示:线性模型的假设函数绘制出来,其实就是一条直线。如h(x)=5+2∗x的图形就是一个具体的例子。原创 2025-04-03 12:27:28 · 615 阅读 · 0 评论 -
【优化理论】第一章:最优化用到的基本数学概念
但是这里有很多不同的范数,1范数就相当于是曼哈顿距离,2范数相当于欧几里得距离,无穷范数就相当于闵氏距离。一般来说,下标省略的范数,默认是2,如下是范数2时的常用的Cauchy不等式。用两种方法计算梯度,一种是元素法,一种是向量法。范数相当于是从向量空间到实数域的映射,也就是。等号仅当两个向量线性相关的时候取到。多元函数梯度的定义可以推广到矩阵。原创 2025-04-05 11:23:58 · 45 阅读 · 0 评论 -
【优化理论】第二章:最优化问题的建立
凸集定义集合中任意两点连线形成的线段属于这个集合,这个集合是凸集。注意:是否是凸集,集合的边界是否属于这个集合很重要这涉及到构造最小凸包的问题。上面列出的超平面、半空间等等都是凸集的典型代表凸集运算凸集的并集不一定是凸或非凸,凸集的交集一定是凸集。凸集的sum与product一定是凸集。凸函数的定义凸函数的性质凸函数最重要的性质就是Jensen’s inequality,也就是琴生不等式。若能取到等号则是凸函数,若不能取到等号则是强凸函数,若不等号相反,则是凹函数。原创 2025-04-05 11:24:17 · 174 阅读 · 0 评论 -
【优化理论】第三章之一:目标函数的求解之目标函数求导取极值【针对线性优化问题求解】
最优化问题的求解是一个迭代的过程, 从初始点(初始解)x0开始, 通过迭代方法(梯度下降法, 牛顿法等)逐步更新xi, 直至逼近最优解x∗上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢?或者更高维度的问题里, 如何确定每个维度的方向和步长呢?原创 2025-04-05 11:24:37 · 74 阅读 · 0 评论 -
【优化理论】第三章之二:目标函数的求解之梯度下降优化(一阶导数)【适用于线搜索】
当初始步长不满足准则是, 我们一般使用一些简单的缩放来寻找满足要求的步长. 上图就是常见的回退法, 当步长α不满足要求时, 给定一个γ∈(0,1), 不停的缩小步长直到其满足准则.因为步长α是从大变小的, 这保证了α尽可能的大.在梯度下降优化的方法中,步长是固定的,收敛速度较慢,我们通过一些不等式, 判断步长是否合适, 通过缩放步长, 来快速找到满足不等式的步长,加快收敛的速度。在line_search_test() 中, 定义了初始点(−5,8), 基于梯度下降法, 使用不同的线搜索方法求最优解.原创 2025-04-05 11:24:54 · 72 阅读 · 0 评论 -
【优化理论】第三章之三:目标函数的求解之牛顿法\拟牛顿法优化(二阶导数)【适用于固定步长】
上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢?最优化问题的求解是一个迭代的过程, 从初始点(初始解)x0开始, 通过迭代方法(梯度下降法, 牛顿法等)逐步更新xi, 直至逼近最优解x∗。3、全局视野:牛顿法在选择下降方向时,不仅考虑当前位置的梯度,还考虑未来位置梯度的变化趋势,因此具有更强的全局视野。下图展示了梯度下降法(绿)和牛顿法(红)的对比, 可以看到牛顿法要高效的多.原创 2025-04-05 11:25:13 · 71 阅读 · 0 评论 -
【优化理论】第三章之四:目标函数的求解之0.618比例进退法
该方法的基本思想是:先选定初始点α 0> 0 和一个初始步长 γ 0> 0,从α 0起,以 γ 0为步长向前搜索一步,得 α 0 +γ 0 .若这一点的目标函数值较α 0 处的目标函数值减小了(说明极值点在选取的初始点右侧,继续向右搜索),则加大γ 0 ,继续向前搜索,直至新一点的目标函数值较前一点的目标函数值增大了,搜索结束。上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢?原创 2025-04-05 11:25:31 · 77 阅读 · 0 评论 -
【优化理论】第三章之五:目标函数的求解之QP优化【适用于目标函数为二次型构型的函数】
二次规划(Quadratic Programming)优化,是指优化问题的目标函数为二次函数, 且约束条件为线性的问题。原创 2025-04-06 07:38:49 · 48 阅读 · 0 评论 -
【优化理论】第三章之六:目标函数的求解之信赖阈算法
最优化问题的求解是一个迭代的过程, 从初始点(初始解)x0开始, 通过迭代方法(梯度下降法, 牛顿法等)逐步更新xi, 直至逼近最优解x∗上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢? 或者更高维度的问题里, 如何确定每个维度的方向和步长呢?信赖域方法(Trust Region Methods)是一种用于非线性优化的数值优化方法,旨在寻找目标函数的最小值。信赖域算法是一种迭代算法。核原创 2025-04-06 07:39:11 · 47 阅读 · 0 评论 -
【优化理论】第三章之七:目标函数的求解之Ipopt非线性求解器求解带约束的非线性最优化问题
最优化问题的求解是一个迭代的过程, 从初始点(初始解)x0开始, 通过迭代方法(梯度下降法, 牛顿法等)逐步更新xi, 直至逼近最优解x∗上图形象的展示了这个迭代的过程, 从初始解start点开始, 逐步迭代至最优解. 在这个1维问题上, 迭代方向只有左和右(-, +), 我们如何确定迭代的方向和步长呢? 或者更高维度的问题里, 如何确定每个维度的方向和步长呢?详细介绍如何使用Ipopt非线性求解器求解带约束的最优化问题,结合给出的带约束的最优化问题示例,给出相应的完整的C++程序,并给出详细的解释和注原创 2025-04-06 07:39:39 · 70 阅读 · 0 评论 -
【优化理论】第四章:最优算法优化处理技巧
最优化问题通常需要对实际需求进行定性和定量分析,建立恰当的数学模型来描述该问题,设计合适的计算方法来寻找问题的最优解,探索研究模型和算法的理论性质,考察算法的计算性能等多方面。原创 2025-04-06 07:40:02 · 75 阅读 · 0 评论 -
【优化理论】第五章:最优化理论在自动驾驶、机器人等领域的应用
也非常多,对于工业机器人或者移动机器人的轨迹规划,往往需要先生成一个轨迹族,然后制定评价函数,再通过一些约束,如环境约束,或者本身的动力学约束等,最后通过最优化算法得到的最优解就是最优轨迹。最优化在机器学习与深度学习的应用比较热门,因为无论是机器学习还是深度学习,很多时候最核心的还是构造一个非常复杂的函数,然后求其最优解,而所。建立模型迭代求最小值或者极小值,通道求解结果套入模型得到控制输出,前者是优化理论(数值优化等),后者是控制理论(控制输出,反馈输入)通过栅格地图转换成ESDF地图实现。原创 2025-04-06 07:40:26 · 57 阅读 · 0 评论 -
最小二乘与残差的区别
最小二乘估计具有良好的统计性质,如在一定条件下,它是无偏的、一致的,并且在所有线性无偏估计中具有最小方差(即它是BLUE,Best Linear Unbiased Estimator)。在方差分析(ANOVA)中,残差平方和是总平方和(Total Sum of Squares, TSS)的一部分,用于分析模型中不同因素对因变量的影响。具体来说,它最小化的是误差的平方和,即残差平方和(RSS)。残差是优化目标的一部分:残差是计算残差平方和的基本单元,而残差平方和是最小二乘法优化的目标函数。原创 2025-04-03 14:08:20 · 389 阅读 · 0 评论 -
【行为决策】有限状态机实现简单的车辆变道
在此例子下,做变道安全检查时一般都是用比较简单的规则。如下图所示,一般会检查自车跟前车的距离,或跟目标车道前车和后车的距离与相对速度是否满足安全的变道条件,以此也可以看出,整个状态机比较简单,为考虑过于复杂的交互场景,因此不太适合复杂的城市道路场景,更适用于结构化高速公路场景。因此在main函数中,我们定义了一些基础变量:起始点,轨迹长度和分辨率等。在tests/decision/fsm_test.py 中,首先我们定义了FSM的核心概念:状态,事件,动作(在变道功能中没有动作,因此不定义)和状态转移。原创 2025-04-06 07:40:57 · 37 阅读 · 0 评论 -
【行为决策模块项目实战】第六章:BehaviorTree的数据交互
MainTree中包含1个MoveRobot subtree,所以有2个blackboard,blackboard[0]是MainTree的(一定是最外层树的),具有move_result和move_goal 2个entry,而MoveRobot具有output和target 2个entry。我们把blackboard的数量和包含的entry的名称打印出来,size=1因为没有子树,且只有1个名为"the_answer"的entry。当然,从外部设置entry的值并不受其是empty/full的影响。原创 2025-04-06 07:43:17 · 390 阅读 · 0 评论 -
【行为决策模块项目实战】第九章: Behavior Tree的ActionNode同步与异步
行为树(BT,Behavior Tree)是一种 tree-structured control architecture,常用来做任务或状态管理。最先也最多应用于游戏领域,后来引入到机器人、自动驾驶等需要规划决策的领域。原创 2025-04-06 07:43:51 · 547 阅读 · 0 评论 -
【行为决策模块项目实战】第七章:BehaviorTree类的基本类型
可见registration_ID_和node的class name相同(非强制,下篇讲解),而name可以随意指定,如nodes[4],当不设置时默认是registration_ID_,如其中的nodes[2]和nodes[5]。以BehaviorTree.CPP/examples/t03_generic_ports.cpp为例,在构造BehaviorTreeFactory实例后立即打印这3个容器的元素的名称,可以发现输出结果仅顺序不同,说明Factory构造后默认包含了内建的29个nodes。原创 2025-04-06 07:44:46 · 535 阅读 · 0 评论 -
【行为决策模块项目实战】第十章:Behavior Tree的Decorator Nodes功能及源码解析
但tick()函数中并没有使用__shared_blackboard port,而是在 BehaviorTree.CPP\src\xml_parsing.cpp中使用的,这点要注意,SubtreePlusNode的__autoremap port也是如此。如果子节点执行后返回RUNNING或SUCCESS,下次tick()继续执行子节点,直到子节点返回FAILURE。延时delay_msec毫秒后,执行子节点,并返回子节点的执行结果。如果子节点执行后返回SUCCESS,该节点返回SUCCESS,不再执行;原创 2025-04-06 07:45:07 · 602 阅读 · 0 评论 -
【行为决策模块项目实战】第八章:Behavior Tree的Control Nodes功能及源码解析
BehaviorTree.CPP中内建的控制节点如下,都继承自 BehaviorTree.CPP\include\behaviortree_cpp_v3\control_node.h 中的ControlNode类。很明显,该类有多个子节点,其执行顺序就是控制节点的核心内容。默认子节点是从左到右执行。除了这些ControlNodes之外,其他开源库实现的个性化nodes,用起来也很方便,开发者可以自行导入。FallbackNode也被成为Selector,适用于“如果子节点返回FAILURE该怎么办?”的场原创 2025-04-06 07:46:33 · 599 阅读 · 0 评论 -
第一章:【可视化工具项目实战】ROS jsk_rviz_plugins可视化插件介绍
是一个为 RViz 提供额外插件的 ROS(机器人操作系统)包。功能概述提供了一系列原始的 RViz 插件、面板和工具,用户可以通过启动 RViz 来直接使用这些功能。具体插件:用于显示分割数组。和:用于显示边界框及其数组。CameraInfo:显示相机信息。Footstep:显示脚印。:显示人体骨骼数组。:显示线性仪表。Normal:显示法线。:在 RViz 界面上叠加文本。:显示人员位置测量数组。Pictogram:显示图形符号。PieChart:显示饼图。Plotter2D。原创 2025-04-07 08:46:33 · 601 阅读 · 0 评论 -
日志关键信息提取--正则表达式std::regex
Regex”是“Regular Expression”(正则表达式)的缩写,它是一种强大的文本处理工具,用于匹配、搜索、替换和操作字符串。正则表达式在编程、文本编辑、数据处理等领域广泛应用。正则表达式的用途文本匹配:检查字符串是否符合特定的模式。例如,验证电子邮件地址、电话号码等。搜索和替换:在文本中查找符合模式的内容,并进行替换。字符串分割:根据特定规则将字符串分割成多个子字符串。数据提取:从复杂文本中提取特定格式的数据。正则表达式的语法。原创 2025-04-07 08:47:29 · 633 阅读 · 0 评论 -
参数自适应的相关方法
相反,对于出现频率较高的参数采用较小的学习率。这里的改动就在于分号下面的根号,根号中有两个符号,第二个符号比较好理解,它就是为了避免除0而人为引入的一个很小的常数,例如可以设为:0.001。对比原始的算法过程可以看出,改进算法最大的区别是:在寻找目标值时会在最终结果上下跳动,但是越往后跳动的幅度越小,这也就是动量所产生的效果。对比梯度下降的泛化公式,这个算法的主要区别就是引入了vt,并且,每个时刻的vt受前一个时刻vt−1的影响。事实上,学习率的取值未必一定要是一个常数,关于这个值的设定有很多的研究。原创 2025-04-07 08:46:57 · 1483 阅读 · 0 评论 -
【导航理论&实战篇】导航系统方案优劣分析心得
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对导航系统方案优劣分析心得做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章。原创 2024-11-06 10:01:22 · 134 阅读 · 0 评论 -
【项目实战】自动驾驶决策模块设计思路及代码解析
首先根据当前位置获取当前车道的左右宽度,然后根据左右借道获取相邻车道的宽度(当然,fallback设定不借道),最后综合各因素,更新PathBound。依据原先设计好的规则,对各种path进行assess,排序得到最优的路径,并在规划路径上的采样点添加标签作为路径筛选的依据,并为速度规划提供限制。和上述的Process方法相对应。当参考线起点与终点距离小于某个阈值,说明没有办法规划出一条较长的路径,所以我们需要对终点添加stop fence ,这时候需要退出动态重规划的过程,而是在一段距离后停车。原创 2025-04-07 08:45:58 · 976 阅读 · 0 评论 -
【传感器模块项目实战】机器人/无人驾驶常用传感器模型、选型与安装
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对机器人/无人驾驶常用传感器模型、选型与安装做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容分为位置式绝对型编码器增量式编码器打比赛的时候用过欧姆龙的增量式编码器,也用过待编码器的步进电机。【防盗标记–盒子君hzj】增量式编码器正交编码输出信号,用于识别正转和反转,通过微控制器(单片机)的片内外设硬件/软件解码(1)惯性器件-机械陀螺。原创 2024-11-04 09:55:25 · 215 阅读 · 0 评论 -
【导航传感器模块】导航机器人硬件配置及其常用功能
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对导航机器人硬件配置及其常用功能做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-11-09 10:01:40 · 452 阅读 · 0 评论 -
【导航理论&实战篇】嵌入式硬件系统架构
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集1、衡量好一个导航系统多少是业务比例、场景比例、算法比例、工程逻辑比例、人力资源比例?基于这样看,具体问题具体分析,每个机器人的导航架构都不一样!大家共同努力才搭建出来的!融入其中可以学会搭建一个系统的能力架构师都是深入底层,对整个框架的每个具体实现都懂的(管好各个模块不打架)系统框架不是看看书就行,要根据实际的来,要自己动手去做!原创 2024-11-09 09:54:59 · 148 阅读 · 0 评论 -
【传感器模块项目实战】传感器数据获取、数据采集方案
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对传感器数据获取、数据采集方案做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-11-04 09:51:55 · 217 阅读 · 0 评论 -
【导航理论&实战篇】通讯方式及组件选型方向
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对通讯方式及组件选型方向做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-11-06 10:03:09 · 126 阅读 · 0 评论 -
【导航理论&实战篇】protobuf数据接口及模块间的通讯系统架构
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!无人车&无人机导航合集本文先对数据接口及通讯代理系统架构介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容1、使用代理的方式,统一通过各自模块的代理按照一定频率订阅发布自身模块的数据,进而把模块看成一个小黑盒子2、通用的数据接口,如每个模块都要用到的数据要按照一定规范写,统一数据类型、单位和接口内容,并用protobuf的形式定义接口。原创 2024-11-09 09:55:20 · 65 阅读 · 0 评论