Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于ROS的全局路径规划算法的仿真教学设计论文

发布时间:2024-02-27 11:50:38 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)
 
   摘 要 :在机器人教学中,全局路径规划是移动机器人领域的重要内容之一,针对应用型本科生的教学中存在的一系列问 题,设计了一个基于 ROS 平台的全局路径规划算法的实验,旨在帮助学生在 ROS 框架下进行全局路径规划算法实验,在不同 环境下使用 Dijkstra 和 A* 算法进行仿真。学生通过该实验,能更好地理解和掌握全局路径规划算法的原理和应用,培养了学 生的实践操作和创新思维能力,是一项具有创新性的实验教学改革项目。

  关键词 :全局路径规划,Dijkstra,A*,实验教学改革

  Design of Simulation-based Teaching for Global Path PlanningAlgorithms Based on ROS

 
 WANG Qing, SUN Qiufeng, LI Xia, SUN Guofu

  (School of Information Engineering, Taizhou College, Nanjing Normal University, Taizhou Jiangsu 225300)

  【Abstract】:In robot teaching, global path planning is one of the important contents in the field of mobile robots, aiming at a series of problems existing in the teaching of application-oriented undergraduates, an experiment of global path planning algorithm based on ROS platform is designed to help students carry out the experiment of global path planning algorithm under the ROS framework, Dijkstra and A* algorithm were used for simulation in different environments. Through this experiment, students can better understand and master the principle and application of global path planning algorithm, and cultivate students' practical operation and innovative thinking ability, it is an innovative experimental teaching reform project.

  【Key words】:global path planning;Dijkstra;A*;experimental teaching reform

  0 引言

  ROS 是一种机器人操作系统,已经在机器人领域中被 广泛使用。全局路径规划是 ROS 中一个重要的功能 [1-3], 其相应算法的设计和实现对于机器人导航的效果具有重 要的作用。当前全局路径规划算法有很多种,其中 A* 算法、Dijkstra 算法是最基本的算法,也是本科教学中 的重点算法,为了帮助学生更好地理解和应用全局路径 规划算法,设计了一种基于 ROS 的全局路径规划算法 的仿真实验教学。通过该实验,学生可以学习并掌握基 本的全局路径规划算法,并能够在仿真环境中验证算法 的效果,提高学生的算法应用能力。

  1 实验设计内容

  1.1 实验目的与要求


  本实验的目的是帮助学生掌握基本的全局路径规划 算法 [4-7]。具体包括以下几点 :

  (1)熟悉 ROS 平台的使用方法 ;(2)掌握 A* 算法、 Dijkstra 算法的原理 ;(3)对环境进行建图 ;(4)在 ROS 平台中实现两种算法 ;(5)对仿真结果得出相应的结论。

       1.2 实验原理

  1.2.1 Dijkstra 算法


  Dijkstra 算法主要思想是选择在多条路径中代价最 低的路径,由近到远把所有点的最短路径算出来,从起点开始,不断探索与当前节点相邻的节点,并更新其他 节点到起点的距离,直到探索到终点为止 [8]。

  这一算法可以用于解决机器人在栅格地图上的全局 路径规划问题,其中每一个栅格可以看作是一个节点, 节点之间的距离可以根据栅格之间的距离来定义。

  1.2.2 A* 算法

  A* 算法是一种常用于栅格地图路径规划的算法, 栅格地图被表示为一个二维数组,其中每个格子表示一 个节点,每个节点都有一个代价,用于表示从起点到该 节点的距离和从该节点到终点的预估距离之和,这个预 估距离通常使用欧几里得距离或曼哈顿距离。A* 算法 从起点开始搜索,并使用一个优先队列维护搜索过程中 遇到的所有节点。每次从队列中取出代价最小的节点进 行扩展,在扩展节点时,需要判断节点是否合法,对于 障碍物或不可通过的区域,需要将其标记为不可通过。 如果节点已经被访问过,需要比较新的路径代价和旧的 路径代价,如果新的路径代价更小,则更新节点的代价 和路径。当 A* 算法遍历到终点时,它就可以回溯沿着 最短路径到达起点,如果没有找到路径,说明终点无法 到达。

  A* 算法的估价函数是其关键,它用于评估当前节 点到终点的代价。一个好的估价函数应该是既准确又快 速的计算。如公式 (1) 所示是一个使用欧几里得距离计 算 h 值的估价函数 :
\
  其中 g(n) 表示当前节点到起点的代价, h(n) 表示当 前节点到终点的估价代价。

  1.3 实验运行环境

  本实验系统环境为 ubuntu20.04. ROS 版本为 Noetic, 机器人的型号是 turtlebot3_burger,这是一款低成本的 个人机器人套件, 安装了 ROS 系统, 用于 SLAM 建图、 路径规划及导航,非常适合本次实验。

  1.4 实验内容

 
 在 ROS 中通过 Gazebo 建立需要的实验环境,进行 SLAM 建图,保存实验需要的地图信息,最后在 Rviz 上 实现两种算法的仿真。

  (1)建立仿真实验环境。在 Gazebo 中构建了两个 不同的环境进行模拟,如图 1 所示。

\
 
  (2)SLAM 建图。首先对环境进行建图,本实验采用了 Gmapping 算法进行建图,通过订阅机器人的深度 信息、IMU 信息和里程计信息,同时完成一些必要参数 的配置,即可创建并输出二维栅格地图。Gmapping 对 激光雷达频率的要求较低,具有更高的鲁棒性,非常适 合学生做实验使用。

  (3)全局路径规划算法仿真。由于本实验是研究全 局规划算法,因此局部规划算法保持不变,选择了动态 窗口法。机器人的全局路径规划是由导航节点的全局规 划器(Global Planner)计算得到的。

  实验需要对 Dijkstra 算法和 A* 算法作对比及评价, 需要配置相关参数,具体步骤如下 :

  (1) 对 turtlebot3_navigation 功能包中 launch 文件夹下的 move_base.launch 文件进行修改,添加 ,明确全局路径规划使用的插 件。(2) 在 move_base.launch 文件中添加 , 将具 体的 .yaml 参数文件加载。(3) 修改 global_planner_ params. yaml 参数文件, 重点是 use_dijkstra 参数的 配置, true 是选择 Dijkstra 算法, false 是选择 A* 算 法。(4) 在 turtlebot3_navigation. launch 文件中将 中 map.yaml 换 成 自己需要的地图文件名。

  配置完毕后, 运行 turtlebot3_navigation.launch 文件,同时打开 Rviz 和 Gazebo 仿真环境,首先在 Rviz 菜单栏中, 选择“2D Pose Estimate”, 并且在地图上给 出机器人的初始位置,该位置必须与 Gazebo 中机器人的 位置一致,然后点击菜单栏的“2D Nav Goal”按钮,将 箭头移到允许的任意位置,等待机器人它自主进行全局 路径规划, 在 Rviz 中订阅 /move_base/GlobalPlanner/ plan 话题,红色箭头就是目标位置点,红线就是规划的路径,可以看到机器人到目标位置有一条红线,这就是机器人自主规划的全局路径,机器人走过的位置线将消失。两种算法的实验均使用相同的配置参数。

  2 实验结果评估与讨论

  2.1 使用 Dijkstra 算法仿真


  使用 Dijkstra 算法在两个环境中生成的全局路径如图 2 所示。


 \

 
        可以观察到, Dijkstra 算法在两个环境中都能够成功的规划到达目标的路径。在得到规划路径后,与算法的理论路径进行比较,在理论路径的模拟中,仿照实际的地图环境设置相应的边框和障碍物,将仿真环境 1:1的还原到模拟界面中,设定相同的起始点和目标点,分别比对各自的路径选择,其中黑色代表障碍物,红色代表起点,黄色代表终点,绿色代表相应的路径。如图 3 所示。


\

 
  可以看到理论模拟的路径与机器人的仿真路径是基 本一致的,验证了 Dijkstra 算法在全局路径规划中的 有效性和准确性。

  2.2 使用 A* 算法仿真

  采取相同的实验方法,使用 A* 算法在三个环境中 生成的全局路径如图 4 所示, A* 与理论模拟算法如图 5 所示。

  比较图 4、图 5 可以发现,两者规划的路径是基本 吻合的,验证了 A* 算法在全局路径规划中的有效性和 准确性。

\

\


 
  2.3 实验结果评估与分析

  由上述可知 Dijkstra 算法与 A* 算法都规划了相应的路径。通过 Plotjuggler 软件绘制两种算法的 /odom、 /move_base/GlobalPlanner/plan 这两个话题的曲线,如图 6 所示。


\

 
  图 6 中实线的是机器人实际走的路径, 虚线是算法 规划的路径,两种算法在同一环境下的曲线比较可得出 如下几点结论 :

  (1)虚线的规划路径要比实线的实际运动路径出现 的要晚,主要是由于路径规划是一个计算密集型的过程, 需要一定的时间才能完成。通过图例可以发现, A* 算 法规划路径的时间要比 Dijkstra 算法规划的时间要短。 (2)通过图 6 以及 Rviz 中的路径可以看出 Dijkstra 算法规划的路径更加的光滑平顺且都能到达目标地点,成 功率高, A* 算法规划的路径是让路径尽可能的短,但 在实际仿真的过程中,由于障碍物的膨胀系数以及实际 建图等因素,使得机器人行走的路径杂乱,到达目标 时间明显增加,甚至在 Room_2 中出现不可达的情况, 成功率低。

  根据图 6 计算到达目的地的时间、位移误差、角度 误差,如表 1 所示。


\

 
  综上所述, A* 算法规划路径的速度更快,而 Dijkstra 算法略慢,但 Dijkstra 算法能够找到最优路径,实际 到达目标的时间反而更短,误差小且成功率更高,证明 在有障碍物的情况下 Dijkstra 算法比 A* 算法表现更优。

  3.结语

  在这个实验中模拟了不同的环境,使用 Gmapping 库来生成环境地图, 测试了 Dijkstra 与 A* 两种全局路 径规划算法,并做了比较,引导学生得出相应的结论。

  在应用型本科生机器人相关课程的教学中,由于办学资 金有限,实验室配套不够,引入仿真模拟成为了一种创 新的实验教学方法。通过仿真试验,学生对于算法学 习的积极性得到了提升,也加深了学生对算法原理的理 解,获得了更好的学习效果。

  参考文献

  [1] 王帅,王军义,贾子熙,等.基于新工科的移动机器人控制实验 设计和教学实践[J].实验室研究与探索,2021.40(6):33-37+53.

  [2] 胡春旭.ROS 机器人开发实践[M].北京:机械工业出版社, 2018.

  [3] 周静,刘全菊,张青.新工科背景下实践教学模式的改革与构 建[J].实验技术与管理,2018.35(3):165-168+176.

  [4] 葛亚明,胡一博,雷乔治,等.ROS无人驾驶创新实验课程研究 与教学实践[J].实验技术与管理,2020.37(6):221-224.

  [5] 林韩熙,向丹,欧阳剑,等.移动机器人路径规划算法的研究综 述[J].计算机工程与应用,2021.57(18):38-48.

  [6] 张赛.基于ROS系统室内移动机器人的路径规划算法研究 [D].天津:天津理工大学,2022.

  [7] 董桂伟,赵国群,王桂龙,等.科研成果转化为实验教学资源的 探索[J].实验技术与管理,2019.36(4):114-117+124.

  [8] 巩慧,倪翠,王朋,等.基于Dijkstra算法的平滑路径规划方法 [J/OL].北京航空航天大学学报:1-10[2023-08-01] .
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/73800.html

相关内容

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml