
运动规划和控制
文章平均质量分 93
分享自主移动机器人运动规划和控制相关内容
慕羽★
热爱移动机器人的探索及开发,机器人领域在职工作者,主要进行移动机器人的自主导航、协同探索、运动规划和控制方向的相关研究
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多无人车协同探索项目Multi-Robot RRT Exploration实车部署常见问题及解决方法
本篇文章作为本系列第四篇文章,主要介绍我在真实的机器人中部署多无人车协同探索项目Multi-Robot RRT Exploration项目时遇到的一些问题及解决方法,本文以轮趣科技教育机器人为例。原创 2025-04-27 08:18:14 · 904 阅读 · 0 评论 -
新版ROS Motion Planning运动规划库相关介绍
2023年11月份的时候,我发现了这个优质的基于ROS的运动规划库,并写了一篇博客(如下所示)来对其使用方法进行了简单介绍,随着这个运动规划库作者的更新,很多内容和改运动规划库的框架已经发生了变化,为了让实验室的小伙伴们更加快速的上手,用这篇博客更新一下相关内容原创 2025-03-21 08:00:00 · 1546 阅读 · 8 评论 -
多无人车协同探索开源包启动文件介绍(下)
model: 定义机器人的模型类型,默认为waffle_pi,也可以设置为burger或waffle。: 控制机器人是否只进行前进动作,默认为false,即机器人可以进行全向运动。first_tb3second_tb3third_tb3: 分别定义了三个机器人的名称,tb3_1tb3_2tb3_3。这些值将作为参数传递给后续的节点和命名空间。eta和Geta: 用于 RRT 算法中的扩展参数,控制算法的探索范围或步长。: 定义在前沿探测中,感知区域的半径。: 用于前沿信息的加权。和。原创 2025-03-20 15:54:35 · 1314 阅读 · 0 评论 -
多无人车协同探索开源包启动文件介绍(上)
在之前介绍的《多无人车协同探索开源包部署教程及常见报错解决方式》中运行多无人车协同探索时,先后运行了两个launch文件 multiple_tb3_house.launch 和three_robots.launch ,本文来进一步看一下这两个启动文件以及其调用的move_base .launch 和multi_tb3_mapmerge.launch 都做哪些操作以及如何根据自己的需要进行相应的修改。 由于内容较多,拆分成(上)、(下)两篇博客,链接如下: 多无人车协同探索开源包启动文件介绍(上原创 2025-03-20 15:53:21 · 993 阅读 · 0 评论 -
多无人车协同探索开源包部署教程及常见报错解决方式
本博客将介绍项目的基本概念、部署步骤以及常见问题的解决方案。该项目利用 RRT(Rapidly-exploring Random Tree)算法,通过多机器人协作进行高效的环境探索,适用于自动化与自主导航任务。项目简介:介绍该项目的核心算法、特点及应用场景,展示如何通过多个机器人共同工作来提升探索效率。部署教程:详细讲解如何在 ROS Noetic 环境中部署该项目,安装依赖、创建工作空间、克隆代码并编译项目。项目运行:包括单机器人与多机器人自主探索的示例,帮助读者快速理解和实践项目。原创 2025-03-19 10:52:51 · 1434 阅读 · 5 评论 -
C++中的单例模式及具体应用示例
本文深入探讨了C++中的单例模式及其在机器人自主导航中的应用,特别是如何通过单例模式来管理地图数据。文章详细介绍了单例模式的基本结构、优缺点以及在多线程环境中的应用,强调了其在保证数据一致性和资源管理中的重要性。接着,文章通过一个实际的路径规划系统示例,展示了如何结合单例模式设计地图管理模块。该系统使用了广度优先搜索(BFS)算法来进行路径规划,并通过多线程实现地图更新和路径规划的并行处理。主要的代码模块包括地图管理类MapManager、路径规划类BFSPlanner、以及管理多线程操作。原创 2025-03-14 14:23:23 · 1280 阅读 · 0 评论 -
ROS的导航功能包navfn中计算单元格的势值的原理介绍
最近看navfn中Dijkstra算法的实现思路时发现与A * 的思路差别还是很大的,所以就仔细看一下源码,NavFn::updateCell(int n)函数中计算节点的势力值的相关部分,第一次看确实很难理解,尤其是多项式v = -0.2301 * d * d + 0.5307 * d + 0.7040的含义,看的一头雾水,所以就仔细研究了一下这部分内容,根据我个人对该英文文档中相关内容的理解,结合源码中的的相关部分,接下来,本文对将该部分展开详细介绍原创 2024-10-24 00:01:57 · 1377 阅读 · 0 评论 -
基于LQR算法的机器人轨迹跟踪控制详解
本文详细介绍了基于线性二次型调节器(LQR)算法的机器人轨迹跟踪控制方法。首先,文章通过建立基于运动学模型的离散状态方程,来描述机器人的当前状态与目标状态之间的关系,并利用此模型进行状态误差的计算。接着,通过设定状态量和控制量的权重矩阵(Q和R),使用LQR算法求解控制输入u,旨在最小化状态偏差和控制成本,以实现精确的轨迹跟踪。此外,文章还分析了LQR算法在ros_motion_planning运动规划库中的实现,通过源代码详解了误差量化、状态方程动态矩阵的建立、反馈控制增益的计算以及最终控制向量的生成等关原创 2024-08-10 07:14:43 · 4877 阅读 · 1 评论 -
车辆/单车运动学建模、线性化、离散化过程详细推导
运动学建模、线性化、离散化过程,是使用控制算法进行控制前常用的操作,本文主要以车辆/单车模型为例,详细介绍运动学建模、线性化、离散化等过程,为后续的使用LQR、MPC等控制算法进行轨迹跟踪或其他控制任务做准备。原创 2024-08-10 07:11:56 · 2475 阅读 · 0 评论 -
Ego Planner规划算法(下)——Ego Planner程序框架
本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程原创 2024-08-09 08:40:07 · 5135 阅读 · 1 评论 -
Ego Planner规划算法(上)——Ego Planner流程介绍
本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程原创 2024-08-09 08:37:14 · 13353 阅读 · 5 评论 -
Fast Planner规划算法(四)—— Fast Planner程序框架
fast_planner_node.cpp文件是我们通过launch文件启动Fast Planner程序的接口,也是ROS中Fast Planner的主节点,该文件在完成节点初始化后,会根据参数planner的值选择进行kino_replan或者topo_replan的初始化。kino_replan_fsm.cpp文件中的callKinodynamicReplan函数中,会调用kinodynamicReplan函数,本系列前三篇文章介绍的内容全包含在和这个函数中,即局部的包含前端和后端的规划方法。原创 2024-08-08 10:06:02 · 2604 阅读 · 0 评论 -
Fast Planner规划算法(三)—— Fast Planner后端之轨迹优化与轨迹优化与时间重分配
本系列文章用于学习记录Fast-Planner规划算法的相关内容,主要学习资料是深蓝学院的移动机器人运动规划课程原创 2024-08-08 10:04:04 · 2763 阅读 · 5 评论 -
Fast Planner规划算法(二)—— Fast Planner后端之贝塞尔曲线与B样条曲线
本系列文章用于学习记录Fast-Planner规划算法的相关内容,主要学习资料是深蓝学院的移动机器人运动规划课程Fast Planner后端的主要任务是基于前端生成的轨迹,生成一条满足其他约束的轨迹,Fast Planner后端包含轨迹优化和迭代时间调整两部分原创 2024-08-08 10:00:37 · 3261 阅读 · 2 评论 -
Fast Planner规划算法(一)—— Fast Planner前端
本系列文章用于回顾学习记录Fast-Planner规划算法的相关内容原创 2024-07-20 09:43:16 · 4057 阅读 · 3 评论 -
一文解决图论中有向图、无向图、非负加权图的单源最短路径问题【超详细】【通用模板程序】【深入分析】【无需基础】【c++】
本文致力于提供一种解决图论中所有(或绝大部分)有向图、无向图、非负加权图的单源最短路径问题的通用程序模板,本文提供的模板并不是简单的可行模板,而是经过深入分析解释的一个较高质量和性能的通用程序模版。在每个关键变量存储的数据结构选择上都进行了深入的思考和解释,使得该方面基础较差的小伙伴,依然可以轻松的看懂。最核心的寻路部分封装成函数方便调用。我之前写的路径规划相关的程序基本上都是基于连续空间或者栅格地图的,没有对基于拓扑结构图的寻路算法的实现进行过深入分析,正好借助本文,动手从零开始边实现边分析,实现拓扑结构原创 2024-06-28 09:30:04 · 1464 阅读 · 0 评论 -
拓扑结构图中寻找最短路径的findpath函数【by慕羽】的函数源码、算法流程概括、函数源码解析
本文是文章《一文解决图论中有向图、无向图、非负加权图的单源最短路径问题【超详细】【通用模板程序】【深入分析】【无需基础】【c++】》的附属文章,用于补充解释,主文章中介绍的解决图论中有向图、无向图、非负加权图的单源最短路径问题的通用程序模板中的核心寻路算法的函数findpath的相关内容,上述主文章的链接如下:原创 2024-06-28 09:24:55 · 1024 阅读 · 0 评论 -
JPS(Jump Point Search)跳点搜索路径规划算法回顾
本篇文章主要回顾一下几年前学的JPS跳点搜索规划算法的相关内容,之前学的时候没有进行概括总结,现在补上原创 2024-06-17 16:22:48 · 3263 阅读 · 0 评论 -
ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(五)
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp原创 2024-04-11 08:37:21 · 1233 阅读 · 1 评论 -
ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(四)
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp原创 2024-04-10 10:28:43 · 1204 阅读 · 0 评论 -
ROS机器人未知环境自主探索功能包explore_lite总结
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp原创 2024-04-10 09:39:33 · 3562 阅读 · 3 评论 -
ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(三)
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp原创 2024-04-09 08:36:03 · 1363 阅读 · 0 评论 -
ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp原创 2024-04-09 08:34:19 · 1329 阅读 · 0 评论 -
ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(一)
本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包原创 2024-04-08 08:43:36 · 3125 阅读 · 6 评论 -
ROS机器人竞赛Navigation导航包参数调试及程序修改经验
ROS机器人竞赛Navigation导航包参数调试及程序修改经验原创 2024-04-08 08:40:28 · 2827 阅读 · 2 评论 -
ROS坐标系常用坐标及其变换详细梳理
深入理解ROS中常用的几种坐标系及其变换,对理解ROS机器人自主导航的相关程序有较大的帮助,比如我在进行路径规划算法的研究中,编写程序逻辑时,时常需要涉及到坐标轴方向以及坐标间的变换。本文按照使用顺序对ROS中常用一些相关的坐标系进行梳理。原创 2024-03-22 08:25:53 · 6779 阅读 · 7 评论 -
全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(下)
本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。原创 2024-03-22 08:22:58 · 2010 阅读 · 2 评论 -
全覆盖路径规划开源项目Clean-robot-turtlebot3原理及流程概括总结
本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。原创 2024-03-21 08:35:36 · 5218 阅读 · 14 评论 -
全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)
本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。原创 2024-03-21 08:28:53 · 2390 阅读 · 5 评论 -
动力学约束下的运动规划算法——两点边界值最优控制问题 OBVP
OBVP 即 optimal bundary value problem,即最优的BVP, BVP 问题其实就是解决 state sampled lattice planning 的基本操作方法。原创 2024-02-25 13:37:57 · 2484 阅读 · 0 评论 -
动力学约束下的运动规划算法——Kinodynamic RRT*算法
动力学约束下的运动规划算法——Kinodynamic RRT*算法原创 2024-01-01 14:27:56 · 5858 阅读 · 1 评论 -
最优轨迹生成(四)—— 带约束轨迹优化
本系列文章是学习深蓝学院-移动机器人运动规划课程第五章最优轨迹生成 过程中所记录的笔记,本系列文章共包含四篇文章,依次介绍了微分平坦特性、无约束BVP轨迹优化、无约束BIVP轨迹优、 带约束轨迹优化等内容原创 2024-01-01 14:24:03 · 3315 阅读 · 0 评论 -
最优轨迹生成(三)—— 无约束BIVP轨迹优化
本系列文章是学习深蓝学院-移动机器人运动规划课程第五章最优轨迹生成 过程中所记录的笔记,本系列文章共包含四篇文章,依次介绍了微分平坦特性、无约束BVP轨迹优化、无约束BIVP轨迹优、 带约束轨迹优化等内容原创 2023-12-31 09:37:31 · 2437 阅读 · 0 评论 -
最优轨迹生成(二)—— 无约束BVP轨迹优化
本系列文章是学习深蓝学院-移动机器人运动规划课程第五章最优轨迹生成 过程中所记录的笔记,本系列文章共包含四篇文章,依次介绍了微分平坦特性、无约束BVP轨迹优化、无约束BIVP轨迹优、 带约束轨迹优化等内容原创 2023-12-31 09:34:54 · 2663 阅读 · 3 评论 -
最优轨迹生成(一)—— 微分平坦
本系列文章是学习深蓝学院-移动机器人运动规划课程第五章最优轨迹生成 过程中所记录的笔记,本系列文章共包含四篇文章,依次介绍了微分平坦特性、无约束BVP轨迹优化、无约束BIVP轨迹优、 带约束轨迹优化等内容原创 2023-12-31 09:32:33 · 8504 阅读 · 5 评论 -
ROS Motion Planning运动规划库安装方法及进阶使用方法详细介绍
今天偶然发现了一个优质的运动规划库:ai-winter/ros_motion_planning,比较适合从事ROS移动机器人运动规划研究领域的小伙伴学习和使用,相比于莱斯大学Kavraki实验室提供的开源的著名运动规划库OMPL、或着我之前介绍过的zhm-real开源的zhm-real/MotionPlanning和zhm-real/PathPlanning运动规划库,今天介绍的ROS Motion Planning运动规划库与ROS机器人中常用的Navigation导航框架的兼容性更好,库中的运动规划原创 2023-11-08 14:31:47 · 4847 阅读 · 30 评论 -
ROS中MPC局部路径规划器使用方法及源码流程解读
本文主要介绍ROS中Navigation导航框架中MPC局部路径规划器mpc_local_planner的使用方法,并对源码进行解读,梳理其规划流程等,具体包含MPC模型预测控制算法简介、mpc_local_planner使用方法、mpc_local_planner源码解读与规划流程梳理三部分内容。原创 2023-11-06 10:30:10 · 6692 阅读 · 28 评论 -
base_lcoal_planner的LocalPlannerUtil类中getLocalPlan函数详解
本文主要介绍base_lcoal_planner功能包中LocalPlannerUtil类的getLocalPlan函数,以及其调用的transformGlobalPlan函数、prunePlan函数的相关内容原创 2023-10-24 15:50:36 · 872 阅读 · 0 评论 -
动力学约束下的运动规划算法——状态栅格规划器(State Lattice Planner)
A*、RRT等算法建立的用于路径搜索的图模型是不考虑机器人的动力学约束的,其构建的图模型的两个相邻节点之间的路径可能是不可行的,或者很难被机器人跟踪的,现在我们想要使得图中相邻两个节点间的连接是一种满足动力学约束的可行的连接,那么如何构建一个这样的图呢? 构建这样的图通常有两种方法:第一种是基于控制空间的采样(正向方法)原创 2023-09-04 08:39:40 · 2561 阅读 · 2 评论 -
动力学约束下的运动规划算法——Hybrid A*算法(附程序实现及详细解释)
本文主要介绍动力学约束下的运动规划算法中非常经典的Hybrid A*算法,大致分为三部分,第一部分是在传统A * 算法的基础上,对Hybrid A * 算法的原理、流程进行理论介绍。第二部分是详细分析 MotionPlanning运动规划库中Hybrid A * 算法的源码,进一步深入对Hybrid A * 算法的具体细节 进行理解。 第三部分是结合前面第一部分的理论和第二部分的详细源码,对Hybrid A * 算法的流程进行综合的概括总结。原创 2023-09-01 08:25:32 · 12803 阅读 · 8 评论