机器人导航与路径规划算法

src/
├── roborts_base                    #机器人基础功能包  
├── roborts_bringup                 #启动功能包,对其内部map/的地图做了更换,更改rviz/roborts.rviz的主题订阅  
├── roborts_camera                  #相机功能包  
├── roborts_common                  #错误信息、接口、算法等普适的文件  
├── roborts_costmap                 #代价地图功能包,为路径规划器提供地图信息。  
├── roborts_decision                #决策功能包  
├── roborts_detection               #侦察敌方机器人等算法  
├── roborts_localization            #传感器和定位功能包  
├── roborts_msgs                    #消息定义文件  
├── roborts_planning                #路径规划功能包,调整局部规划器为teb算法,采用LINE模型,并调节相关参数  
├── roborts_tracking                #追踪、预测功能包  
├── pics                            #README图片  

##重点改进 **修改了roborts_costmap/obstacle_layer.cpp和roborts_costmap/obstacle_layer.h两个文件,加入设置惩罚区函数

依赖工具、软硬件环境

该部分基于C++语言,由roborts_costmap和roborts_planning两个功能包共同组成,全局路径规划利用A*算法,局部路径规划使用teb算法,实现高速运动规划、有效规避动态障碍物和惩罚区、有效通过狭窄通道等功能。

程序依赖工具如下:

##编译、安装方式

将该部分代码分别替换RoboRTS中对应文件,即为安装完成。执行catkin_make执行编译。

内容简述

本程序可利用A*算法进行全局路径规划,在静态图中实现每秒3次的规划频率,同时在代价地图功能包中,通过改变障碍物图层上像素单元的代价值的方法实现标记比赛中低频刷新的惩罚区。机器人在进行全局规划时会将其视作静态障碍物,达到规避目的。局部路径规划方面,使用teb算法……目前程序能实现以下功能:

软件架构层级图

image-20200824135610905

##原理介绍与理论支持分析:

A*算法:

teb算法(Timed-Elastic-Band)

代价地图

测试步骤

测试结果

test_result1 test_result2 test_result3

##代码规范 本程序代码规范遵循驼峰命名法。