可左右滑动选省市

移动机器人组合地图动态管理方法发明专利

更新时间:2024-07-01
移动机器人组合地图动态管理方法发明专利 专利申请类型:发明专利;
源自:重庆高价值专利检索信息库;

专利名称:移动机器人组合地图动态管理方法

专利类型:发明专利

专利申请号:CN202210685563.3

专利申请(专利权)人:重庆邮电大学
权利人地址:重庆市南岸区黄桷垭崇文路2号

专利发明(设计)人:李勇,张朝兴,吴超,洪承镐

专利摘要:本发明涉及一种移动机器人组合地图动态管理方法,属于移动机器人导航领域,包括以下步骤:S1:根据应用场景中出现的多层平面地形移动机器人进行建图操作;S2:对地图的配置文件新增编号参数;S3:参考原有地图管理器实现方法,以此为基础增加多种设置形成新的适用于动态地图管理的地图管理器;S4:创建姿态数据处理器节点;S5:创建地图切换触发器节点,用于触发地图的切换功能。本发明能有效地实现导航时的组合地图动态管理,并解决移动机器人在基于单一二维平面地图进行导航时无法将坡道纳入导航范围的问题,同时可解决机器人在斜坡上导航的问题,本方法处理快速,效果显著,应用性高。

主权利要求:
1.一种移动机器人组合地图动态管理方法,其特征在于:包括以下步骤:S1:根据应用场景中出现的多层平面地形移动机器人进行建图操作;
S2:对地图的配置文件新增编号参数;
S3:在原有地图管理器基础上增加多种设置形成新的适用于动态地图管理的地图管理器;
S4:创建姿态数据处理器节点;
S5:创建地图切换触发器节点,用于触发地图的切换功能;
步骤S1中,具体包括:
通过基于2D激光雷达的移动机器人根据应用场景中出现的不同地形分别进行SLAM建图,每一次建图只在同一等高平地内进行,每完成一层等高平地建图后再对另一层等高平地进行建图,其中更高层平地地图表示的是在次高层平地上的投影,最后将所有层的地图组合成整个应用场景;
步骤S3中,具体包括以下步骤:
S31:在原有地图管理器中新增一个管理容器,用于保存与管理地图的id,同时将地图的加载接口与所述管理容器连接,从而使地图管理器能通过所述管理容器获取地图资源;
S32:在原有地图管理器中新增一个订阅者,用于订阅来自地图切换触发器的指令话题,从而加载地图;
S33:编写新的地图管理器启动文件,将所有待管理地图的配置文件的地址都作为新地图管理器启动时的输入参数;
步骤S4中,具体包括以下步骤:
S41:创建一个用于存储机器人欧拉角数据的自定义话题消息,其中包含俯仰角偏航角、横滚角;
S42:将机器人的姿态数据作为动态监听数据,并将其转化为欧拉角形式,并以S41中所述的自定义消息类型发布出去;
步骤S5中所述的创建地图切换触发器节点,用于触发地图的切换功能,触发的条件取决于机器人姿态情况的变化;所述地图切换触发器节点实时监听机器人俯仰角和横滚角的变化,并通过判别机制触发切换;触发切换步骤如下:测量坡道的角度,根据测量值分别设置俯仰角和横滚角阈值,当俯仰角和横滚角的数据都满足与阈值的相应关系时,对新的地图管理器发布地图切换指令,实现动态切换的效果。
2.根据权利要求1所述的移动机器人组合地图动态管理方法,其特征在于:步骤S2中,具体包括:在每个地图的配置文件中新增地图id参数的设定,根据每个地图的切换与管理顺序进行顺序编号。
3.根据权利要求1所述的移动机器人组合地图动态管理方法,其特征在于:所述判别机制采用一个约定含义的标志量,包括两种状态,分别代表当前机器人处于平地还是斜坡;约定地形①为第一个等高地形,地形②为第二个更高的等高地形,两个地形之间存在一个上坡和一个下坡连通两个地形;将搭载2D激光雷达的机器人放在地形①上,开启SLAM建图功能,手动控制机器人移动进行建图,第一次移动范围仅限于在地形①上进行,完成地形①建图后,保存地图为地图1;然后清除第一次的建图数据,再控制机器人到地形②上去,重新开启SLAM建图功能,此时只控制机器人在地形②上进行移动,此过程所建地图即为坡道和地形②在地形①上的投影,将该地图保存为地图2;
通过标志量与当前机器人俯仰角和横滚角的测量值相互组合成多种判断依据,针对每种情况发布对应情况的地图切换指令,判决依据包括:(1)当机器人由平地上坡时,切换条件满足:当前标志量表示平地,且机器人俯仰角大于触发阈值θ,则发布地图2话题,同时标志量置为表示斜坡;
(2)当机器人由上坡爬到平地时,切换条件满足:当前标志量表示为斜坡,且机器人俯仰角大于等于0且小于等于阈值θ,则继续发布地图2话题,同时标志量置为表示平地;
(3)当机器人由平地下坡时,切换条件满足:当前标志量表示为平地,且机器人俯仰角小于阈值‑θ,则继续发布地图2,同时标志量置为表示斜坡;
(4)机器人处于由下坡到平地、在坡道上掉头的两种情况需要结合考虑,第一层条件满足:当前标志量表示为斜坡,且机器人俯仰角小于等于0且大于阈值‑θ;第二层条件满足:机器人横滚角小于阈值‑ψ或大于ψ;
若两层条件同时满足,表示机器人处于斜坡上掉头的情况,则继续发布地图2话题,标志量保持斜坡;若只满足第一层条件,表示机器人处于下坡到平地的情况,则发布地图1话题,标志量置为表示平地。 说明书 : 移动机器人组合地图动态管理方法技术领域[0001] 本发明属于移动机器人导航领域,涉及一种移动机器人组合地图动态管理方法。背景技术[0002] 近年来,随着移动机器人技术的普及,社会各大行业都表现出了对移动机器人的强烈需求与依赖,特别是随着劳动力成本的不断上涨,在各大领域中出现的“机器换人”现象已经变得很普遍。如此大的需求量也使得移动机器人技术不得不去应对更多的挑战。目前,普及率最大的还是基于2D激光雷达的移动机器人,它以其技术入门快、体积小巧、成本低、效果好等的特点被广泛地应用于各大行业,该类机器人采用2D激光雷达来扫描和感知机器人所在的二维平面障碍物位置信息,并将信息提供给SLAM功能包用于建立二维平面地图来导航。但是目前室内导航基本仅限于同一平面内的导航,当应用场景出现了由斜坡连接的多层平面地形时,该如何让机器人自主通过斜坡到达更高层的地形上,这类问题也是移动机器人扩展应用时需要考虑的。本发明方法就是从这些问题出发提出的解决方法。[0003] 当应用场景出现了由斜坡连接的多层平面地形时,且更高层地形高度高于了移动机器人安装的2D激光雷达的高度,由于2D激光雷达的扫描特点,在建图时机器人必然会将上升坡道扫描成障碍物,并将这部分视作不可导航的区域,在导航时此部分也将无法用于用户设定导航目标点,导致机器人无法自主导航上坡,而如果既在平地上移动又跑到坡上进行连续建图又会导致所建地图出现巨大误差更不能用于导航,这样使得移动机器人可导航范围减少,从而降低了移动机器人的工作效率。[0004] 此外还有很多类似的场景,甚至在某些场景中存在更多层次坡道等情况,这些都会导致导航区域受限,故解决此类问题可以进一步提升移动机器人的应用范围和工作效率。发明内容[0005] 有鉴于此,本发明的目的在于提供一种移动机器人组合地图动态管理方法,解决自主导航时机器人无法从平地导航上坡,无法在坡道上进行导航行驶等问题,由此来进一步扩大采用2D激光雷达这样低成本硬件的移动机器人的应用范围和工作效率。[0006] 为达到上述目的,本发明提供如下技术方案:[0007] 一种移动机器人组合地图动态管理方法,包括以下步骤:[0008] S1:根据应用场景中出现的多层平面地形移动机器人进行建图操作;[0009] S2:对地图的配置文件新增编号参数;[0010] S3:在原有地图管理器基础上增加多种设置形成新的适用于动态地图管理的地图管理器;[0011] S4:创建姿态数据处理器节点;[0012] S5:创建地图切换触发器节点,用于触发地图的切换功能。[0013] 进一步,步骤S1中,具体包括:[0014] 通过基于2D激光雷达的移动机器人根据应用场景中出现的不同地形分别进行SLAM建图,每一次建图只在同一等高平地内进行,每完成一层等高平地建图后再对另一层等高平地进行建图,其中更高层平地地图表示的是在次高层平地上的投影,最后将所有层的地图组合成整个应用场景。[0015] 进一步,步骤S2中,具体包括:在每个地图的配置文件中新增地图id参数的设定,根据每个地图的切换与管理顺序进行顺序编号。[0016] 进一步,步骤S3中,具体包括以下步骤:[0017] S31:在原有地图管理器中新增一个管理容器,用于保存与管理地图的id,同时将地图的加载接口与所述管理容器连接,从而使地图管理器能通过所述管理容器获取地图资源;[0018] S32:在原有地图管理器中新增一个订阅者,用于订阅来自地图切换触发器的指令话题,从而加载地图;[0019] S33:编写新的地图管理器启动文件,将所有待管理地图的配置文件的地址都作为新地图管理器启动时的输入参数。[0020] 进一步,步骤S4中,具体包括以下步骤:[0021] S41:创建一个用于存储机器人欧拉角数据的自定义话题消息,其中包含俯仰角(pitch)、偏航角(yaw)、横滚角(roll);[0022] S42:将机器人的姿态数据作为动态监听数据,并将其转化为欧拉角形式,并以S41中所述的自定义消息类型发布出去。[0023] 进一步,步骤S5中所述的创建地图切换触发器节点,用于触发地图的切换功能,触发的条件取决于机器人姿态情况的变化;所述地图切换触发器节点实时监听机器人俯仰角(pitch)和横滚角(roll)的变化,并通过判别机制触发切换;触发切换步骤如下:[0024] 测量坡道的角度,根据测量值分别设置俯仰角(pitch)和横滚角(roll)阈值,当俯仰角(pitch)和横滚角(roll)的数据都满足与阈值的相应关系时,对新的地图管理器发布地图切换指令,实现动态切换的效果。[0025] 进一步,所述判别机制采用一个约定含义的标志量,包括两种状态,分别代表当前机器人处于平地还是斜坡;通过标志量与当前机器人俯仰角(pitch)和横滚角(roll)的测量值相互组合成多种判断依据,针对每种情况发布对应情况的地图切换指令,判决依据包括:[0026] (1)当机器人由平地上坡时,切换条件满足:当前标志量表示平地,且机器人俯仰角大于触发阈值θ,则发布地图2话题,同时标志量置为表示斜坡;[0027] (2)当机器人由上坡爬到平地时,切换条件满足:当前标志量表示为斜坡,且机器人俯仰角大于等于0且小于等于阈值θ,则继续发布地图2话题,同时标志量置为表示平地;[0028] (3)当机器人由平地下坡时,切换条件满足:当前标志量表示为平地,且机器人俯仰角小于阈值‑θ,则继续发布地图2,同时标志量置为表示斜坡;[0029] (4)机器人处于由下坡到平地、在坡道上掉头的两种情况需要结合考虑,第一层条件满足:当前标志量表示为斜坡,且机器人俯仰角小于等于0且大于阈值‑θ;第二层条件满足:机器人横滚角小于阈值‑ψ或大于ψ;[0030] 若两层条件同时满足,表示机器人处于斜坡上掉头的情况,则继续发布地图2话题,标志量保持斜坡;若只满足第一层条件,表示机器人处于下坡到平地的情况,则发布地图1话题,标志量置为表示平地。[0031] 本发明的有益效果在于:本发明能有效地实现导航时的组合地图动态管理,并解决移动机器人在基于单一二维平面地图进行导航时无法将坡道纳入导航范围的问题,同时可解决机器人在斜坡上导航的问题,本发明处理快速,效果显著,应用性高。[0032] 本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。附图说明[0033] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:[0034] 图1为本发明方法的典型应用场景;[0035] 图2为本发明方法的扩展应用场景;[0036] 图3为坡道大致实体示意图;[0037] 图4为建图或导航时雷达的扫描情况;[0038] 图5为本发明在典型应用场景时的运行过程;[0039] 图6为仿真场景中地形①的地图map1;[0040] 图7为仿真场景中地形②的地图map2。具体实施方式[0041] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。[0042] 其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。[0043] 本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。[0044] 本部分将以图1所示的典型应用场景为例,阐述本发明方法的实施方式,需要注意的是本发明方法不仅限于图1所示的场景,可扩展用于类似的图2等的场景,另外为了防止机器人从坡道上出现掉落的危险情况,故本发明默认坡道旁边是有围栏的(如图3所示),此设定属于常规且必要的设定。本领域的技术人员可参考本发明的说明书轻易地了解本发明的更多应用优点。[0045] 本发明所提及的一种移动机器人组合地图动态管理方法主要实施在基于ROS的移动机器人平台上,这种移动机器人的组成和特点如下:[0046] 移动机器人的硬件组成上主要包括一个能够安装Ubuntu系统的上层主控制器如JetsonNano、树莓派、miniPC等类似设备;一个2D激光雷达传感器;一个底层控制器;多个带有编码器的电机;一个惯性测量板块(InertialMeasuringUnit,IMU);以及其他实际应用中需要的板块等。移动机器人的软件上,需要注意的是,上层主控制器需要配备Ubuntu系统,并在其中安装机器人操作系统(RobotOperationSystem,ROS),用于接收和发布控制指令;ROS系统将获取激光雷达数据、IMU数据、里程计数据等,并将其发布到ROS的通讯环境中,以实现SLAM建图、导航避障等功能。底层控制器则需要接收上层主控制器下发的速度控制指令,并将指令解算成给每个电机的控制量并输出给电机,从而实现机器人的运动。[0047] 需要注意的是ROS机器人平台的里程计信息(/odom)需尽可能采用融合了IMU数据的里程计模型进行里程计数据生成,以此保证定位精准度。[0048] 在对本发明方法进行实施前,需对移动机器人进行组合地图管理功能的部署,包括以下步骤:[0049] 步骤1:如图1所示,首先本发明针对由斜坡连接的多层平地的场景,以两种高度地形为例,约定地形①为第一个等高地形,地形②为第二个更高的等高地形,两个地形之间存在一个上坡和一个下坡连通两个地形。将搭载2D激光雷达的机器人放在地形①上,开启SLAM建图功能,手动控制机器人移动进行建图,第一次移动范围仅限于在地形①上进行,此时坡道会被认定为障碍物,需要注意的是如果第一次建图时跑到了坡上,激光雷达必然扫描到地面或者坡道,这样就会出现巨大的建图误差,这样建出的地图必然不能用于导航。完成地形①建图后,采用map_saver工具(ROS官方提供)保存地图为map1(命名不影响后续操作)。清除第一次的建图数据,再控制机器人到地形②上去,然后重新开启SLAM建图功能,此时只控制机器人在地形②上进行移动,此过程所建地图即为坡道和地形②在地形①上的投影,故斜坡与地形②所在部分都将被认为是可行驶区域,将地图保存为map2,所以在使用map2时用户就能在坡道和地形②所在区域设置目标点,从而实现该区域的导航了。需要说明的是,由于机器人在建图时,机器人的开机位置就是odom坐标系原点,建图开始时map坐标系会默认odom坐标系原点作为自己的原点,此后建图功能关闭前map坐标系固定,故第一次建图完毕后不要对机器人关机,以保证第二次建图时的map坐标系原点与第一次的基本贴近,这样在导航加载地图时,两张地图的相对位置就能更加贴合实际的场景布局,在切换地图后机器人的定位也能更加准确。若出现更多层次的地形,即继续执行以上操作,并以此类推,从而实现所有层的地图组合成整个应用场景。[0050] 步骤2:首先需要知道的是通过map_saver工具会能将构建的地图保存为.pgm和.yaml文件,其中.yaml文件是地图的参数配置文件,.pgm则是地图图片文件。为了后续多地图的管理,需要在.yaml文件中增加设定,在其基础上加入map_id参数,并对不同地形图的配置文件设置不同map_id,对两个地图的配置文件增加id参数,地形①的map_id设置为map1,地形②的map_id设置为map2,其他地形地图依次设置编号。[0051] 步骤3:参考官方map_server工具实现方法,并在此基础上增加多种设置形成新的地图管理器,首先需要明确的是,ROS的导航机制需要地图管理器提供一个名为/map的地图话题的,该话题会给导航提供静态地图,导航路径规划的计算依据也依赖于此,所以通过改变/map话题的内容就能改变导航路径。另一方面需要明确的是ROS提供的map_server工具只能实现手动切换地图,所以为了实现组合地图的动态管理,就需要开发新的地图管理器。本方法的做法是借鉴官方map_server工具的地图加载方法,并在此基础上增加多种设置形成一种新的适用于动态地图管理的地图管理器,具体做法有:新增一个C++STL的map容器,map容器用来存放前面地图的map_id和对应的地图加载地址,同时定义一个变量将地图加载接口与此map容器连接,变量会根据控制指令中的id从map容器寻找对应id的地图加载地址,从而加载与对应的地图文件。新增语句去获取新地图管理器程序运行时输入的参数,输入参数即是地图的.yaml文的保存地址,这段语句会去获取.yaml文件中的map_id,并将其插入到map容器中进行管理。新增一个订阅者,设置订阅话题为/resetmap(该话题将由后续要创建的地图切换触发节点发布),并在该订阅者的回调函数中添加判断条件,通过此条件来控制不同地形地图的加载,即发布不同地图内容的/map话题。让新的地图管理器知道有多少个地图文件需要被加载,即在其launch文件(启动文件)中采用程序语句说明,同样需要明确的是ROS加载地图文件主要是依据对应地图的.yaml文件进行加载的,于是本发明的做法是:在launch文件中声明每个地图文件的保存地址,并将这些地址作为新地图管理程序的输入参数传入程序中,根据步骤1的设置做法,故可实现对多地图的插入并管理。[0052] 步骤4:在新地图管理器的launch启动文件中将这两张图的.yaml文件的地址写为新地图管理器的输入参数。[0053] 步骤5:创建机器人姿态数据处理的节点,具体实现步骤如下:[0054] 适用于本发明的移动机器人需要加装惯性测量单元(IMU),用来监测机器人的姿态数据。首先惯性测量单元的数据一般以sensor_msgs::Imu类型信息被发布在ROS的通讯环境中,该数据中机器人姿态数据是以四元数形式出现,为了方便后续的姿态判断,故需要将四元数转换为欧拉角形式,即俯仰角(ptich)、航向角(yaw)、横滚角(roll)。具体步骤为创建一个ROS的节点,该节点订阅惯性测量板块的话题(/imu),并在对应的回调函数中采用ROS提供的转换函数将/imu的四元数数据转成欧拉角数据。自定义一种消息类型,该消息框架中需包含保存三个欧拉角的变量,用于同时传输欧拉角的三个角度数据,消息的大致组成如下:[0055] float64pitch[0056] float64yaw[0057] float64roll[0058] 在该节点上定义一个发布者用于发布话题,发布的消息内容中包含机器人的欧拉角数据(数据类型为自定义类型消息),在实验中该话题名定义为/Euler。以下是发布者发布自定义类型消息的JSON格式表达式:[0059][0060] 步骤6:创建组合地图管理的触发器节点,将俯仰角(pitch)和横滚角(roll)的阈值的宏定义留出来,待测得斜坡的大致度数后再进行设置,具体实现步骤如下:创建一个ROS节点,首先定义一个发布者,并设置发布的话题名为/resetmap,这便与步骤3中提及的新地图管理器中的订阅者相绑定了。在此节点上再定义一个订阅者,设置该订阅者的订阅对象为/Euler话题,这便与步骤5的姿态数据处理节点上的发布者相绑定了,同时在该订阅者的回调函数里进行触发条件的判断。判断过程如下:[0061] 首先设置一个标志变量flag,并初始化为0;假设坡的坡度为ω,设置俯仰角触发阈值为θ(取值范围0≤θ<ω),设置横滚角的判断阈值为ψ(取值范围为0≤ψ<ω)。[0062] 当接收到/Euler话题消息,转至对应回调函数进行处理,获取其中保存的当前机器人的俯仰角(pitch)和横滚角(roll)数据。[0063] 判断前,需约定机器人处于平地上时对应flag=0,机器人处于斜坡上时对应flag=1。因为机器人本身初始化在平地上完成,故初始化flag=0。[0064] 进行实时判断:[0065] 情况1:机器人从地形①平地上斜坡,如果flag==0与pitch>=θ则发布切换为map2指令,flag置为1;[0066] 情况2:机器人由上坡移动到地形②平地,如果flag==1与0<=pitch<θ,则发布切换为map2指令,flag置为0;[0067] 情况3:机器人从地形②平地移动下坡,如果flag==0与pitch<=‑θ,则发布切换为map2指令,flag置为1;[0068] 情况4:将机器人从斜坡下到地形①平地和在斜坡上掉头这两种情况结合起来看待,第一层判断如果flag==1与‑θ
=ψ,若满足两层条件表示在斜坡上掉头,则继续发布切换为map2指令,flag保持为1。若只满足第一层条件不满足第二层条件表示机器人从斜坡下到地形①平地,则发布切换为map1指令,flag置为0。[0069] 最后在以上情况判断中包含有俯仰角pitch与0比较的地方需尽量使用0的附近值,以应对测量板块可能出现的测量误差和并非绝对平整的实际路面,因为实际情况没办法满足绝对的0。另一方面,为了确保机制的正常运行,导航的配置上需设定机器人不能后退,机器人只能以前进和转弯的形式导航。[0070] 完成部署后执行步骤如下(整体实施过程为图5所示):[0071] (1)确定触发的阈值[0072] 在发明内容部分已提及,本发明方法的触发机制需要依赖俯仰角阈值θ和横滚角的阈值ψ,该阈值主要根据实际坡道的坡度ω来限定阈值的取值范围,即0≤θ<ω与0≤ψ<ω,两者设置越小,组合地图管理机制触发越灵敏。其中坡度可以手工测出,也可采用机器人的IMU板块检测出来,再依据此修改地图切换触发器中的阈值宏定义即可。[0073] (2)启动导航功能[0074] 在启动导航的启动文件(launch文件)中,去掉原本的map_server,加入本发明方法的新地图管理器(如步骤3所述)、姿态处理节点和地图切换触发节点的启动语句。当开启导航功能时,本发明的整个管理机制的各个部分将会同步开启,并发布初始化地图map1。[0075] (3)设置目标点[0076] 对不需要导航上坡的情况而言,用户在可导航区域正常设定导航目标点即可。当需要导航到坡上时,则用户需要将目标点设置在坡道边缘处,这里需要说明的是,如图4所示由于机器人自身必然存在高度,在建图时只有C点以上会被视为了障碍物无法用于导航,AB段区域则会被视为可导航区域,所以欲使机器人导航上坡时,首先设定目标点为AB段区域内。[0077] (4)组合地图自主切换管理[0078] 当机器人根据目标点导航到AB段区域时,必然会因为俯仰角pitch的变化触发地图切换功能,此时就会切换到map2,其中map2为地形②和坡道在地形①的投影,且坡道与地形②在map2上都被视为可导航区域,此时就可根据map2设定新的导航点驱使机器人执行导航。由于2D激光雷达一直保持与当前地形平行,所以避障效果与平地无异。即使在上坡时激光雷达会扫描到部分坡道给局部路径规划产生微小影响,但由于机器人上坡动作变化很快,上到坡上后,雷达扫描区域也会随即平行于当前坡道,同时上坡时产生的微小影响也会随着雷达数据的更新而被消除。下坡时的情况也类似。由于基于map2进行导航,坡道都为可导航区域。同时map2是投影地图,导航算法定位显示出来的机器人位置都是投影位置。[0079] 针对实际情况而言,建图时机器人会有上坡情况,所以先后两次建图时的odom坐标系原点会有一定的偏差,使先后两次建图时的map坐标系原点位置出现一定偏差,当地图切换后,可能会使得机器人的定位出现一定的偏差,此时偏差过大可选择采用rviz的位置初始化工具手动定位一下后再设置新的导航点,若偏差较小则可直接设置导航点,因为导航算法功能包中的AMCL算法能根据静态地图修正机器人位置,又地图map2不会变,故AMCL能在机器人移动开始时快速地修正定位。[0080] 完成以上过程后,机器人即可在坡道上自由导航行驶了。为了体现本发明方法的真实有效性,故提供本实施例仿真场景的地形①和地形②上的建图结果(图6和图7),也是实施本方法时相互切换的地图map1和map2。[0081] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

专利地区:重庆

专利申请日期:2022-06-16

专利公开日期:2024-06-18

专利公告号:CN115080676B

电话咨询
读内容
搜本页
回顶部