一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于三维环境中的机器人自主定位与导航的方法

2022-06-01 06:16:59 来源:中国专利 TAG:


1.本发明涉及移动机器人自主定位导航领域,主要是涉及到移动机器人已有二维地图的情况下,在复杂三维地形环境中的自主定位与路径规划。


背景技术:

2.近年来,除工业机器人外,几乎所有智能机器人都离不开行走,所以机器人导航技术是智能机器人的核心技术之一。针对导航技术的研究在不断地迭代更新。自主定位和导航是智能机器人研究领域的一项核心技术,地图构建、自主定位和路径规划等是需要解决的关键问题,也就是机器人“我在哪里”“我要去哪里”“怎样到达”3个问题。机器人需要通过传感器感知环境的信息,获取环境数据并结合自身的状态,最终做出适合于环境和目标的决策。
3.机器人自主定位导航技术中包括:定位和地图创建(slam)与路径规划和运动控制两个部分。传统的自主定位的导航系统首先由slam建图算法(gamapping算法或cartographer算法等)构建二维地图,由定位算法(amcl算法或cartographer算法)提供机器人位姿信息,利用路径规划算法(a*算法或dijskstra算法,dwa算法或teb算法等)规划路线进而控制机器人运动到达指定目标位姿。
4.传统导航系统仅将pgm格式地图与实时反馈的激光点云转换为占据栅格地图,丢失三维环境信息,在面对坡面(如斜坡、桥面、楼梯等)这样的可通行三维环境时将其笼统归为障碍物一类,从而不能规划通过路径,出现回避动作,这一问题使得传统导航系统不能良好地应用于复杂环境。
5.因此,如何解决以上问题,是解决移动机器人应用在具有复杂地形环境中的关键问题。


技术实现要素:

6.以下给出一个或多个方面的主要概述以应对这些方面的基本理解。此概述不能将所有构想的方面进行详述,其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
7.本发明的目的在于解决上述问题,在卫星拒止、物理空间变化等复杂环境下,为了使地面无人车具备全天候、全时域的韧性导航能力。其前期准备将在坡道下的地面全局范围内建立地面地图,在坡道顶部局部范围内建立坡顶地图。而后利用激光点云信息,根据坡面反射点云拟合直线的几何特性进行坡面检测,将坡面位姿反馈至导航层,进行栅格值处理,利用更新的占据栅格地图进行路径规划完成上坡动作。上坡动作完成后,移动机器人位于坡道顶部,坡顶地图替换地面地图进行机器人重复定位,继续完成在坡顶平面的导航任务。
8.本发明提出一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,包括以下技术方案:
9.步骤一:配置好使用本方法所需的ubuntu系统以及环ros环境。建立三维仿真模型用作调试,同时配置好真实移动机器人平台与多线激光雷达。
10.步骤二:配置编译好cartographer算法功能包以及navigation导航包。
11.步骤三:利用cartographer算法建立地面地图与坡顶地图。
12.步骤四:选择并配置定位算法,选择并配置全局路径规划算法和局部路径规划算法,配置cartographer算法参数文件提供定位功能,路径规划算法选择a*算法(全局路径规划)和teb算法(局部路径规划),调整代价地图与路径规划参数文件。
13.步骤五:设置多点导航任务,其中一目标点设置在斜坡前,以便检测斜坡,当机器人移动到斜坡前时,检测到斜坡,反馈斜坡位姿信息,代价地图根据斜坡位姿信息更新代价值,将斜坡处的代价值置为0,路径规划认为斜坡是可通行路线,可使机器人移动至斜坡上。
14.步骤六:机器人移动至斜坡上方后,将原地面地图更换至坡顶地图,进行重定位,以进行坡顶平面的导航,从而完成三维环境下的自主定位与导航。
15.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤一中,包括以下步骤:
16.步骤1:配置ubuntu18.04与ros发行版melodic版本。
17.步骤2:利用gazebo软件搭建三维仿真世界模型,确保可模拟移动机器人平台与可采集多线激光雷达仿真数据,同时搭建好实际移动机器人平台与多线激光雷达供实验使用。
18.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤二中,包括以下步骤:
19.步骤1:由于gmapping建图算法无回环,依赖里程计,实验效果不如cartographer建图算法。安装protobuf,安装ceres-solver,手动编译安装cartographer并建立完整的工作环境,cartographer将测得的点云数据进行处理,与上一次扫描所获得的子图进行比对,若匹配成功则插入到上一次的子图中进行更新优化,并生成下一个子图。当没有新的子图插入时,完整子图的构建就完成了。当完成多个子图的构建以后,后端会开始进行回环检测,每一个子图构建完成后都会与之前所有的经过运动过滤后的点云帧进行匹配,进行回环优化,消除累计误差。
20.步骤2:手动安装编译navigation包,并建立完整的工作环境,配置相关参数完成导航系统的搭建。
21.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤三中,包括以下步骤:
22.步骤1:安装编译pointcloud_to_laserscan包,运行多线激光雷达驱动程序与激光点云三维线束转换成二维线束程序,以便更充分地提取周围环境特征,配置话题名称和功能包参数,运行移动机器人底盘驱动程序并做好底盘与雷达之间的位姿转换关系,运行cartographer程序并驱动底盘进行二维建图。
23.步骤2:二维建图过程中在坡下建立地面地图,在上坡后建立坡顶地图。
24.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤四中,包括以下步骤:
25.步骤1:配置cartographer算法参数文件提供定位功能,利用cartographer纯定位
接口书写配置文件,修改launch文件与lua文件,加载之前构建好的二维的pbstream格式地图。传统的navigation系统中运用的是蒙特卡洛(amcl)定位算法,
26.步骤2:配置全局路径规划配置文件,选择a*算法作为全局路径规划算法(默认路径规划算法为dijkstra算法)。人工智能领域带启发式函数的a*算法由于本身就具有记忆性的功能,在路网中可以自主性的选择最优路径,并且随着障碍物信息和地理位置信息的增多,其搜索效率更高。通过实验将a*算法与传统的dijkstra算法进行仿真比较,对比它们的搜索速度和搜索效率,结果证明在实际路网中a*算法的搜索效果更明显。
27.步骤3:安装编译teb_local_planner功能包,配置局部路径规划配置文件,选择teb算法作为局部路径规划算法。teb算法相较于传统的dwa算法具有很强的前瞻性,可对前方的一段轨迹进行优化;可进行动态避障,对于动态障碍具有较好的避障效果。虽然其计算复杂度较大,但可以通过牺牲预测距离和调整计算频率来降低复杂度。
28.步骤4:安装代价地图转换插件(costmap_converter插件)实现追踪和动态避障,原始的代价地图是由栅格地图中单元格组成,用于表示障碍物,但单元格占用的计算资源较大,故采用插件将单元格转换成点,线,多边形表示。使用costmap_converter插件,将costmap二维中的障碍物转换为几何基元(点、线、多边形)来表示。如果不主动激活,每个障碍物都被看作是point。当地图分辨率高的时候,只用point,会导致计算distinctive topologies过程中,计算量太大。当然,costmap_converter也会消耗计算资源,但是它可以并行计算。
29.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤五中,包括以下步骤:
30.步骤1:安装navi_multi_goals_pub_rviz_plugin插件,配置rviz,以便完成多点导航任务,设置多个目标点,并将其中一个目标点设置在斜坡前。
31.步骤2:机器人将检测到的斜坡位姿信息反馈至代价地图代码包,根据斜坡位姿信息更新代价值,将斜坡处的代价值置为0,路径规划认为斜坡是可通行路线,可使机器人移动至斜坡上。
32.根据本发明的一种面向复杂地形的三维环境,基于激光点云实现移动机器人自主定位与导航的方法,在步骤六中,包括以下步骤:
33.步骤1:机器人移动至斜坡上方后,将原地面地图更换至坡顶地图。
34.步骤2:机器人进行重定位,以进行坡顶平面的导航,从而完成三维环境下的自主定位与导航。
附图说明
35.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施案例及其说明在此处用于解释本技术,并不构成对本技术的不当限定。
36.图1为本方法应用的系统整体框架图。
37.图2为仿真实验平台整体示意图。
38.图3为仿真坡道环境。
39.图4为二维地面地图(整体)。
40.图5为二维坡顶地图(局部)。
41.图6为导航过程节点通讯示意图。
42.图7为导航过程目标点与路径规划示意图。
43.图8为处理前激光点云图。
44.图9为斜坡检测程序处理后激光点云图。
具体实施方式
45.以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
46.步骤1:机器人在实验场景行驶的二维地图平面如图4所示。
47.步骤2:设置多个目标点以便移动平台进行远距离导航。
48.步骤3:将其中一个目标点设置在斜坡前,以便斜坡检测算法进行检测。
49.步骤4:上述的斜坡检测原理主要是运用雷达反馈回来的斜坡单帧点云数据。首先利用pcl库进行滤波与地面分割,将属于地面部分的激光点云进行去除,并且只保留车头前方左右30度范围内的激光点云;而后利用pcl库对处理后的激光点云进行聚类,并将聚类后的点云进行地面投影;再将投影点云进行拟合直线,根据斜坡投影点云的拟合直线斜率具有相似性,进行聚类,甄别出斜率相似的点云簇,得到最终的斜坡点云位姿。
50.步骤5:根据激光点云检测到斜坡后,将斜坡点云的位姿反馈到costmap_二维代码包中,costmap_二维代码包利用输入的传感器数据,构建数据二维代价地图,并根据占用网格和用户定义的膨胀半径计算二维代价地图的代价。此外,该包也支持利用map_server初始化代价地图,支持滚动窗口的代价地图,支持参数化订阅和传感器主题的配置。
51.步骤6:斜坡点云的位姿反馈到costmap_二维代码包中之后,导航层根据代价地图的代价值进行路径规划。costmap由多层组成,每种功能的地图放置一层。staticlayer(静态地图层)是第一层,obstaclelayer(障碍物层)是第二层,inflationlayer(膨胀层)是第三层。这三层组合成了mastermap(最终的costmap),供给路线规划模块使用。得到斜坡点云的位姿信息,在costmap中自定义斜坡层,与之前原有的三层叠加,将斜坡处的代价值置为0。
52.步骤7:在代价地图costmap中斜坡处的代价值置为0后,路径规划认为斜坡是可通行路线,可使机器人移动至斜坡上,移动至斜坡上方后,将原地面地图更换至坡顶地图,进行二次重定位,以进行坡顶平面的导航。
53.此方法经实验证明,能够运用所提出的方法进行移动机器人在三维环境中的自主定位与导航工作。
54.为了使得本发明的解释更简单化,已将上述的图文描述为一系列步骤,针对根据激光点云数据进行斜坡检测以及导航层的处理进行了描述,本领域技术人员可以理解其原理。
55.尽管上文已对本发明说明性的具体实施方式逐步进行了描述,以便于本技术领域的技术人员能够进行领会,但是本发明不仅限于具体实施方式的范围,本领域技术人员可以在权利要求的范围内做出各种变形或修改,只要各种变化只要在所附的权利要求限定和确定的本发明精神和范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献