一种机器人导航方法、设备、介质和产品
阅读说明:本技术 一种机器人导航方法、设备、介质和产品 (Robot navigation method, equipment, medium and product ) 是由 曹学为 鲁涛 程道一 于 2021-11-16 设计创作,主要内容包括:本发明提供一种机器人导航方法、设备、介质和产品,其中,该方法包括:获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标,可以看出,通过上述方法可以实现机器人自主的路径规划,实现不间断运输,也保证了机器人在实际的行走过程中能够有着很好的通过性。(The invention provides a robot navigation method, device, medium and product, wherein the method comprises the following steps: acquiring information of a main road of a current floor, an initial coordinate of the current floor and a target coordinate of the current floor; determining the distance between the initial coordinate and the target coordinate according to the initial coordinate and the target coordinate; judging whether the distance meets a first preset condition, if so, generating a global path through an A-x algorithm based on the initial coordinate and the target coordinate; otherwise, generating a global path through a Dijkstra algorithm and an A-x algorithm, and enabling the robot to move from an initial coordinate to a target coordinate according to the global path.)
技术领域
本发明涉及智能自主式移动机器人领域,尤其涉及一种机器人导航方法、设备、介质和产品。
背景技术
近些年,随着人工智能理论的不断发展,自主式移动机器人技术日益成熟,并且在智能工业、军事、医疗、服务等诸多领域得到广泛应用。与此同时,移动机器人所面临的任务也愈加复杂,所处环境由原来的单一确定性环境转变为不确定环境。因此,近年来对复杂环境中移动机器人自主智能控制技术的研究得到了学术界和工业界的广泛关注,而 导航控制方法作为其中的关键性技术成为了目前智能机器人学的研究热点之一。比如,目前医院这种复杂的环境中,对于药物的运输主要靠人工取放药,浪费了宝贵的时间。对于当前的智能移动机器人,并没有在导航的路径上做出大量优化,导致目前的智能移动机器人虽然能够实现自主移动,但是在行走的效果上却不尽如人意。
发明内容
本发明提供一种机器人导航方法、设备、介质和产品,可以实现机器人自主导航,实现不间断运输,提高了全局路径生成效率,使机器人能够在复杂的楼宇环境中获取最优路径,也保证了机器人在实际的行走过程中能够有着很好的通过性,另一方面,故障自我检测以及扫描识别码打开箱层等方面,保证了机器人运行的稳定性以及货物的安全性,运动方面采用模糊控制的闭环运动控制方法实现运动的精确性,将本发明运用在运输方面,也可以使机器人能解放物品运输方面的人力。
第一方面,本发明提供了一种机器人导航方法,包括:获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据所述起始坐标和所述目标坐标确定所述起始坐标与所述目标坐标之间的距离;判断所述距离是否满足第一预设条件,所述第一预设条件用于确定生成全局路径的方法,若满足,则基于所述起始坐标和所述目标坐标,通过A*算法,生成所述全局路径;否则,通过所述主干道信息和所述起始坐标确定起始投影点坐标,通过所述主干道信息和所述目标坐标确定目标投影点坐标,基于所述主干道信息、所述起始坐标、所述起始投影点坐标、所述目标坐标和所述目标投影点坐标,通过Dijkstra算法和所述A*算法,生成所述全局路径,使机器人根据所述全局路径从所述起始坐标运动到所述目标坐标。
进一步地,所述使机器人根据所述全局路径从所述起始坐标运动到所述目标坐标,包括:获取当前坐标,所述当前坐标包括所述起始坐标,获取对应的前瞻点,所述前瞻点是根据第二预设条件在所述全局路径上选取的;获取投影点坐标,所述投影点坐标是所述当前坐标在所述全局路径上的投影,根据所述投影点坐标和所述当前坐标,确定对应的距离和偏差角度;根据所述距离和偏差角度确定控制系数,获取预设的转弯最大差值速度,根据所述控制系数和所述转弯最大差值速度确定左轮速度和右轮速度;根据所述左轮速度和右轮速度,运动到所述前瞻点,所述前瞻点包括所述目标坐标。
进一步地,所述机器人包括用于人机交互的电脑和用于逻辑计算的微型计算机;以及,所述电脑和所述微型计算机的交互协议包括指令字节、数据段、校验码和结束标志。
进一步地,所述获取当前楼层的主干道信息,包括:查询对应所述当前楼层的所述主干道信息,若存在,则获取当前楼层的主干道信息;否则,通过激光雷达,获取至少一个局部地图信息;通过SIFT图像匹配算法,将所述至少一个局部地图信息拼接,得到整体地图;接收至少一个端点坐标组,根据所述至少一个端点坐标组和所述整体地图生成对应的主干道信息,所述端点坐标组包括两个端点坐标。
进一步地,所述通过SIFT图像匹配算法,将所述至少一个局部地图信息拼接,得到整体地图,包括:通过人机交互获取拼接地图,所述拼接地图是由用户将至少一个局部地图信息拼接得到的;基于所述拼接地图,通过所述SIFT图像匹配算法,得到所述整体地图。
进一步地,所述机器人包括摄像头和至少一个箱层,所述至少一个箱层对应至少一个箱层信息;以及,所述机器人根据所述全局路径从所述起始坐标运动到所述目标坐标后,还包括:通过所述摄像头,扫描标识码,所述标识码包括用户信息、所述箱层信息和时间信息,所述标识码用于打开对应所述箱层信息的所述箱层。
进一步地,所述机器人包括编码器、左轮和右轮、激光雷达、超声传感器和通信连接线;以及,所述获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标之前,还包括:对所述编码器进行故障检测,若有故障,则停止运动,发出警报;对所述激光雷达进行故障检测,若有故障,则停止运动,发出警报;对所述超声传感器进行故障检测,若有故障,则停止运动,发出警报;对所述通信连接线进行故障检测;若有故障,则停止运动,发出警报或运动到所述目标坐标后,再发出警报;以及,所述对所述编码器进行故障检测,包括:将编码器反馈的所述左轮的第一时刻和第二时刻的脉冲数据做差,得到左轮差值,将编码器反馈的所述右轮的所述第一时刻和所述第二时刻的脉冲数据做差,得到右轮差值;根据所述第一时刻与所述第二时刻的差值、预设的轮子直径和预设的最大线速度差值,确定对应所述第一时刻与所述第二时刻的最大差值;若所述最大差值小于所述左轮差值与所述右轮差值的差值的绝对值,则所述编码器存在故障;和/或,获取编码器反馈的当前左轮速度和当前右轮速度,判断所述当前左轮速度和当前右轮速度是否满足第三预设条件,若不满足,则所述编码器存在故障;和/或所述对所述激光雷达进行故障检测,包括:获取所述激光雷达反馈的第一当前位置和所述编码器反馈的第二当前位置,将所述第一当前位置与所述第二当前位置做差,若所述第一当前位置与所述第二当前位置的差值不满足第四预设条件,则所述激光雷达存在故障;和/或所述对所述超声传感器进行故障检测,包括:获取所述超声传感器反馈的数据包,若所述数据包不满足第五预设条件,则所述超声传感器存在故障;和/或所述对所述通信连接线进行故障检测,包括:获取对应所述通信连接线的数据,若获取失败,则所述通信连接线存在故障。
第二方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述机器人导航方法的步骤。
第三方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述机器人导航方法的步骤。
第四方面,本发明还提供一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述任一种所述机器人导航方法的步骤。
本发明提供的一种机器人导航方法、设备、介质和产品,通过获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标,可以看出,通过上述方法可以实现机器人自主的路径规划,实现不间断运输,通过Dijkstra算法和A*算法,生成的全局路径提高了全局路径生成效率,使机器人能够在复杂的楼宇环境中获取最优路径,也保证了机器人在实际的行走过程中能够有着很好的通过性,将本发明运用在运输方面,也可以使机器人能解放物品运输方面的人力。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明提供的机器人导航方法的一些实施例的流程示意图;
图2是根据本发明提供的机器人导航方法的另一些实施例的流程示意图;
图3-1是根据本发明提供的机器人导航方法的子地图的示意图;
图3-2是根据本发明提供的机器人导航方法的子地图拼接过程的示意图;
图3-3是根据本发明提供的机器人导航方法的子地图拼接完成的示意图;
图3-4是根据本发明提供的机器人导航方法的整体地图示意图;
图3-5是根据本发明提供的机器人导航方法的主干道信息示意图;
图3-6是前瞻点的位置示意图;
图3-7是机器人偏离目标路径的角度的运动控制示意图;
图3-8是机器人的转向状态示意图;
图3-9是根据本发明提供的机器人导航方法的全局路径示意图;
图3-10是根据本发明提供的机器人导航方法的全局路径规划步骤的示意图;
图3-11是送药机器人的药箱弹开流程示意图;
图3-12是机器人超声位置示意图;
图3-13是机器人的硬件架构示意图;
图3-14是机器人的软件架构示意图;
图3-15是送药机器人的工作流程示意图;
图4是根据本发明提供的机器人导航装置的一些实施例的结构示意图;
图5是根据本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本发明。
请参阅图1,图1是本发明提供的机器人导航方法的一些实施例的流程示意图。如图1所示,该方法包括以下步骤:
步骤101,获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标。
在一些实施例中,主干道信息可以是由当前楼层的楼道组成,起始坐标和目标坐标可以是机器人通过激光雷达或者超声波(或称超声)等方法得到的对应当前楼层的全局定位坐标。作为示例,机器人的导航方法也可以在室外的街道、运动场馆、超市、室内送药等场景应用。
步骤102,根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离。
在一些实施例中,可以计算起始坐标和目标坐标之间的直线距离,也可以根据需要计算起始坐标和目标坐标之间的主干道距离。
步骤103,判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径。
在一些实施例中,第一预设条件可以是距离小于(大于或等于)预先设定的阈值或者阈值范围,若距离小于(大于或等于)预先设定的阈值或者在阈值范围内,则基于起始坐标和目标坐标,通过A*算法,生成全局路径。A*算法(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。也可以根据需要选取适合的算法。
步骤104,否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
在一些实施例中,起始(目标)投影点坐标可以是起始(目标)坐标与距离起始(目标)坐标最近的主干道的垂直延长线的交点。Dijkstra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表的方式。也可以根据具体需要选择合适的算法。
本发明一些实施例公开的机器人导航方法,通过获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标,可以看出,通过上述方法可以实现机器人自主的路径规划,实现不间断运输,通过Dijkstra算法和A*算法,生成的全局路径提高了全局路径生成效率,使机器人能够在复杂的楼宇环境中获取最优路径,也保证了机器人在实际的行走过程中能够有着很好的通过性,将本发明运用在运输方面,也可以使机器人能解放物品运输方面的人力。
请参阅图2,图2是根据本发明的机器人导航方法的另一些实施例的流程图。如图2所示,该方法包括以下步骤:
步骤201,查询对应当前楼层的主干道信息,若存在,则获取当前楼层的主干道信息。
在一些实施例中,机器人可以通过网络访问指定地址查询主干道信息,也通过查询本地数据库的方式得到主干道信息。在机器人查询是否有主干道信息之前,可以先自检一下自身是否有故障,以便随时发现问题,确保机器人能够安全行驶。
步骤202,否则,通过激光雷达,获取至少一个局部地图信息。
在一些实施例中,本发明对获取局部地图信息的方法不做限定。局部地图信息表示当前楼层中,楼宇环境全局地图的一部分。根据机器人实际探测范围,可以调整局部地图信息的大小。如果机器人的探测范围可以覆盖当前楼层的楼宇环境全局,也可以直接通过激光雷达获取全局地图信息。
步骤203,通过SIFT图像匹配算法,将至少一个局部地图信息拼接,得到整体地图。
在一些可选的实现方式中,通过SIFT图像匹配算法,将至少一个局部地图信息拼接,得到整体地图,包括:通过人机交互获取拼接地图,拼接地图是由用户将至少一个局部地图信息拼接得到的;基于拼接地图,通过SIFT图像匹配算法,得到整体地图。基于人机交互方式的地图构建与主干道生成方式,提高了路径生成速率。
SIFT匹配(尺度不变特征转换)算法是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。局部影像特征的描述与侦测可以帮助辨识物体,SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。将至少一个局部地图信息拼接的方法也可以根据情况选取适合的方法,本发明对此不做限定。作为示例,也可以手动将局部地图信息拼接在一起,得到整体地图,也可以直接通过SIFT图像匹配算法得到整体地图。
作为示例,基于人机交互的地图拼接模式可以参考以下步骤:
1、对于大空间范围的楼层,导航所需的地图尺寸很大,而楼宇环境中,由于特征点较少,一般为直线等。单线激光雷达进行大范围建图时候会出现累计偏差。因此,在建图模式下,可对整体环境中的每个局部环境进行单独构建(即构建至少一个局部地图信息),构建出的局部地图保存到程序的子文件夹下,子文件夹的名称以时间信息作为排序的方式。构建好的子地图如图3-1所示。
2、开始拼接后程序会寻找时间最早的两个文件夹下的地图拼接,如图3-2所示,黑白部分所示地图为第一个子地图,白色线条勾勒的部分为第二个子地图,可以手动对第二个子地图进行平移,旋转操作,使第二个子地图和第一个子地图的共同部分进行重合;也可以采用SIFT图像匹配算法上述两个地图进行特征点匹配,匹配两幅图片中相同的特征点后,将两个地图进行连接;也可以先手动对第二个子地图进行平移,旋转操作,然后采用SIFT图像匹配算法将上述两个地图连接在一起。得到的拼接后的地图如图3-3所示。
3、对于多个子地图的情况,开始拼接后,可以依照时间顺序,依次将子地图进行拼接。拼接后的整体地图情况如图3-4所示。子地图拼接完成后,可以保存到对应的楼层的文件夹下。机器人也可以根据楼层信息以及局部的地图信息,与拼接完成的整体地图进行特征点匹配,找到机器人在地图中的当前位置,进行初始定位(即获取起始坐标)。
步骤204,接收至少一个端点坐标组,根据至少一个端点坐标组和整体地图生成对应的主干道信息,端点坐标组包括两个端点坐标。
在一些实施例中,可以通过接收两个端点坐标,将这两个端点坐标的连线作确定一条主干道,同时也可以进行障碍物检测,若这两个端点坐标的连线中没有障碍,则确定这个连线为一条主干道,若有障碍,则将这个两个端点坐标的连线排除。多个端点坐标组可以确定对应的多条主干道,从而得到主干道信息。作为示例,也可以基于整体地图,通过图像处理技术,识别出主干道信息。本发明对得到主干道信息的方法不做限定。
作为示例,基于人机交互模式生成主干道的方法可以参考如下:
步骤(1)、对人机交互生成的地图进行加载(即获取整体地图),设送药机器人的长 度L,送药机器人的宽度W,安全阈值。
步骤(2)、点击地图中的需要生成主干道信息的两点(即两个端点坐标),会在地图 中生成以点击的两点为端点的直线,即得到一条主干道路径。
步骤(3)、生成的主干道路径由路径在地图坐标系下的两个端点坐标和,路径长度以及角度组成。
步骤(4)、对所生成的主干道路径范围进行碰撞安全检测,对送药机器人的外轮廓 进行膨胀,可以以送药机器人的矩形外接圆的外接正方形为检测范围,设外接正方形的边 长长度为,则 ,因此生成的主干道的检测区域范围为长为,宽为的矩形,判断区域内是否有障碍物点,如果矩形范围内没有障碍物 点,则保存此主干道路径,如果范围内有障碍物点,则清除所选择的两点信息,并提示重新 选取主干道信息(或端点坐标组)。
步骤(5)、在地图需要生成主干道的位置,重复步骤(2)、(3)、(4)(即接收至少一个端点坐标组,根据至少一个端点坐标组和整体地图生成对应的主干道信息)。完成所需主干道的选取后,进行保存,将所生成主干道信息以txt文本形式保存到子文件夹下(本发明对保存方式和方法不做限定),以供后续生成全局路径调用。主干道信息可以参考如图3-5所示的线段。
步骤205,获取当前楼层的起始坐标和当前楼层的目标坐标。
步骤206,根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离。
在一些实施例中,步骤205、步骤206的具体实现及其所带来的技术效果,可以参考图1对应的实施例中的步骤101、步骤102,在此不再赘述。
步骤207,判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径。
在一些实施例中,可以参考步骤204中的步骤(4)的方法检测,对生成的局路径进行碰撞检测,若发现有碰撞,则删除当前全局路径的规划,并采取语音提醒、显示报错或者提示重新规划等措施;若没有发现碰撞,则生成全局路径。
步骤208,否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
在一些实施例中,利用A*算法和Dijkstra算法不仅能生成全局最优路径,还能加快寻找全局路径的速度。另一方面,生成的全局路径针对机器人在具体的楼宇环境中的还有良好的通过性。
在一些可选的实现方式中,使机器人根据全局路径从起始坐标运动到目标坐标,包括:获取当前坐标,当前坐标包括起始坐标,获取对应的前瞻点,前瞻点是根据第二预设条件在全局路径上选取的;获取投影点坐标,投影点坐标是当前坐标在全局路径上的投影,根据投影点坐标和当前坐标,确定对应的距离和偏差角度;根据距离和偏差角度确定控制系数,获取预设的转弯最大差值速度,根据控制系数和转弯最大差值速度确定左轮速度和右轮速度;根据左轮速度和右轮速度,运动到前瞻点,前瞻点包括目标坐标。即,基于模糊控制算法,使机器人根据全局路径从起始坐标运动到目标坐标。保证了机器人在实际的行走过程中能够有着很好的通过性。
作为示例,在机器人送药场景中,基于模糊控制算法,使机器人根据全局路径从起始坐标运动到目标坐标可以参考以下步骤:
步骤(11)、通过实时的激光雷达获取送药机器人(或称机器人)在地图当中实际位置为(即,获取当前坐标),送药机器人的目标路径(比如全局路径)可以是路径规划模块规划出的全局路径,计算出送药机器人当前位置在目标路径上的投影点的坐标为(即,获取投影点坐标),依据当前的投影点位置计算出送药机器人在目标路径上的前瞻点位置为,前瞻点位置如图3-6。
步骤(12)、计算出送药机器人偏离目标路径的距离偏差,即与的距离值为,偏离目标路径的角度为(即,根据投影点坐标和当前坐标,确定对应的距离和偏差角度),如图3-7所示。
步骤(13)、如图3-8所示,若机器人为轮式机器人,则对送药机器人左右轮发送不同的速度值,可控制送药机器人的航向,左右轮速度的差值决定了机器人航向。当时,送药机器人向右转弯,当时,送药机器人向左转弯;的大小决定了机器人转弯半径和速率的问题。在控制机器人的航向过程中由转弯最大差值速度(即转弯最大差值速度)和控制系数µ两部分组成,即(即,根据控制系数和转弯最大差值速度确定左轮速度和右轮速度)。
步骤(14)、给机器人左右轮发送速度值和,不断地将机器人从当前位置移动到机器人前面的路径上的前瞻点处。将根据送药机器人的当前位置计算出的距离偏差和角度偏差,基于模糊控制的运动算法,针对不同的范围内的和,给与相对应的值,可以计算出,根据得到的就可以给送药机器人发送相对应的左右轮速度和,使其朝向前瞻点移动,不断循环上述过程(机器人运动,前瞻也不断变化,靠近全局路径的最后一个点)直到到达目标路径的最后一个点。
在一些可选的实现方式中,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,包括:基于起始坐标和起始投影点坐标,通过A*算法,确定第一路径信息;基于目标坐标和目标投影点坐标,通过A*算法,确定第二路径信息;基于主干道信息、起始投影点坐标和目标投影点坐标,通过Dijkstra算法,确定第三路径信息;将第一路径信息、第二路径信息、第三路径信息拼接,得到全局路径。
作为示例,基于起始坐标和起始投影点坐标,通过A*算法,确定第一路径信息,可以是以机器人的起始坐标作为A*算法的规划的起始坐标,找到机器人起始坐标到达最近主要道路的投影点坐标(即起始投影点坐标)作为A*算法规划目标坐标,在规划的起始坐标和起始投影点坐标之间,基于A*算法寻找第一路径信息,如不能规划出路径(比如,参考步骤204中的步骤(4)的碰撞方法检测,发现第一路径信息中可能有碰撞),则终止全局路径规划;若可规划出路径,可以将返回的第一路径信息保存到数组a当中。
作为示例,基于目标坐标和目标投影点坐标,通过A*算法,确定第二路径信息,可以是以机器人的目标坐标作为A*算法的规划起始坐标,找到机器人目标坐标到达最近主要道路的投影点坐标(即目标投影点坐标)作为A*算法规划目标坐标,在目标坐标和目标投影点坐标之间,基于A*算法寻找路径,如不能规划出路径(比如,参考步骤204中的步骤(4)的碰撞方法检测,发现第一路径信息中可能有碰撞),则终止路径规划;若可规划出路径,可以将返回的第二路径信息保存到数组b当中。
作为示例,基于主干道信息、起始投影点坐标和目标投影点坐标,通过Dijkstra算法,确定第三路径信息,可以是根据机器人起始投影点坐标和目标投影点坐标,使用Dijstra算法对主干道信息的节点进行搜索,得到两个投影点之间的连通的最短的主要道路的路径信息,可以将所得到的路径信息(即第三路径信息)保存到数组c。
作为示例,将第一路径信息、第二路径信息、第三路径信息拼接,得到全局路径,可以是将数组c中的道路信息添加到数组a中的道路信息的后面,再把数组b中的道路信息添加到数组a中,最后得到数组a中的道路信息即全局路径,全局路径可以参考图3-9(虚线部分为全局路径)。生成全局路径的步骤可以参考图3-10。
在一些可选的实现方式中,机器人根据全局路径从起始坐标运动到目标坐标,包括:机器人根据全局路径从起始坐标运动到目标坐标的过程中,若机器人遇到障碍物,则生成局部路径,根据局部路径绕过障碍物后,继续根据全局路径从当前位置运动到目标坐标;以及,生成局部路径,包括:根据预设条件获取局部目标坐标,局部目标坐标是根据预设条件在全局路径上选取的,第二预设条件用于确定局部目标坐标;基于人工势场算法,根据当前位置的坐标和局部目标坐标,生成局部路径。
作为示例,当送药机器人(或称机器人)在规划出的全局路径上行走时,如遇到障碍物需要进行躲避,因此需要再次进行局部路径规划,局部路径规划方法如下:
步骤一、送药机器人停下后,以当前点位置为起始点坐标,据此点位置前进方向一定距离全局路径上的点为目标点。
步骤二、依据当前激光雷达的当前帧地图,采用人工势场法,得到局部路径。
步骤三、送药器人依据得到的局部路径进行运动,如果运动过程中遇到障碍物停下,重复步骤一,直到到达全局路径上的目标点位置;
步骤四、到达全局路径上的目标点位置后,继续以全局路径为导航路径,进行运动,直到到达当前楼层的目标坐标。
在一些可选的实现方式中,机器人包括摄像头和至少一个箱层,至少一个箱层对应至少一个箱层信息;以及,机器人根据全局路径从起始坐标运动到目标坐标后,还包括:通过摄像头,扫描标识码,标识码包括用户信息、箱层信息和时间信息,标识码用于打开对应箱层信息的箱层。出于用户信息安全保护及预防异常使用考虑,本发明提供了手机APP注册功能,并可根据注册信息﹑扫码时间及操作药箱编码生成特定二维码,机器人本体端对二维码识别后,只有在各方信息准确无误后,方能打开相应的药箱,保证了使用的安全性。
作为示例,标识码可以是由手机app包括iOS端和安卓端显示的,如果机器人的应用场景是室内送药,则送药机器人在送到药物后的开箱流程可以参考图3-11,步骤如下:
步骤(21)、打开手机APP,连接电脑端的服务器,登录用户信息。
步骤(22)、程序依据存储的用户信息和手机端传送过来的用户信息进行匹配,如过匹配成功,则可接受接下来的打开药箱指令;否则反馈没有此账户信息。
步骤(23)、登录成功后,选择对应的药箱层(药箱层对应当前楼层),生成特定的二维码值,码值信息包含了“用户名_层号_时间戳”的信息,并将生成的二维码对准送药机器人的扫码相机。
步骤(24)、相机处理部分对识别到的二维码数据进行解析(即通过摄像头,扫描标识码,标识码包括用户信息、箱层信息和时间信息),得到要打开的药箱层的信息。
步骤(25)、程序根据得到的将要打开的药箱层的信息,将对应的打开指令发送出去,药箱打开。
步骤(26)、对应的药箱层打开后,在手机端选择结束指令,生成结束命令的二维码,并将生成的二维码对准送药机器人的扫码相机。
步骤(27)、药箱弹开过程结束。
在送药机器人到达当前楼层的目标坐标后,选择对应的药箱层(药箱层对应当前楼层),参考上述步骤打开对应当前楼层的药箱层,完成取药。
从图2中可以看出,机器人通过局部地图信息得到整体地图信息。进而得到主干道信息,在生成主干道信息时进行了碰撞检测,有利于提高机器人的通过性。
作为示例,仍以送药机器人为例,送药机器人可以包括车身、左轮毂电机、右轮毂电机、超声避障探测器、储药箱、激光雷达、微型计算机、WINCE工业平板电脑、摄像头、驱动器、里程计、无线通信模块、充电单元和电池;左轮毂电机和右轮毂电机由驱动器驱动, 设置在车身底部;驱动器通过can连接到微型计算机上,由微型计算机直接控制;里程计与驱动器相连接;超声避障探测器设置在车身的一周,共计七个探测单元;激光雷达处在底盘和药箱中间位置,通过处理单元与微型计算机相连接;WINCE工业平板电脑通过232串口与微型计算机相连接;无线通信模块挂在工业平板电脑上。
其中,送药机器人可以采用AGV小车的原理,激光雷达模块负责构建地图信息和检测送药机器人运行方向、位置信息,里程计用于计算送药机器人的运行速度,这些信息都传送给微型计算机,用于计算送药机器人在地图中的位置和姿态;超声传感器负责送药器人在运行过程中的紧急避障;建好地图运行后,送药机器人运行到药品接收位置,医护人员通过手机上的APP获得实时二维码,通过扫码摄像头扫描的方式扫描二维码打开药箱,在车头的WINCE工业平板电脑上选择要送到的科室位置,送药机人自主运行到指定楼层的指定科室;到达指定科室后,语音提示医护人员取药,取走药物后,机器人自主运行到药房等待运送的药物。
另外,车轮可以为无刷减速电机并适配八寸轮胎,有着重量轻,容易控制的特点。采用驱动器分别控制左右两个车轮的速度,可以根据送药机器人的具体运行情况,接收主控微型计算机发送的运动信号并采用PID算法使送药机器人行走与转向稳定。
避障探测器超声波传感器(或称超声传感器),可以采用的超声波传感器(或称超声传感器)有效探测距离为5m,能保证足够的制动距离,而周身的七个超声传感器能够保证送药机器人在快速行驶过程中,送药机器人上的超声传感器的位置如图3-12所示,迅速检测到车身周围的障碍物,并将传感器的数据通过串口发送给控制板。
机器人采用的激光雷达可以为单线激光雷达,能有效探测距离为16米,建图的定位误差为5cm,采样频率为16000次/秒,通过网口将激光雷达信息传送给微型计算机处理,能够保证送药机器人在楼宇环境中清楚的获得自己的位置信息。
机器人上可以设置两个扫码摄像头,通过USB串口与微信跟计算机相连接,第一个扫码摄像头用于扫码开药箱,保护药品的私密和安全性;第二扫码摄像头用于根据电梯口和充电位置的二维码精确定位,保证送药机器人进入电梯姿态和充电姿态为理想的姿态。
机器人可以采用WINCE平板电脑通过232串口和微型计算机进行数据交互,WINCE平板电脑负责人机交互和数据中转,将人机交互的数据和控制板传输过来的数据发送给微型计算机,微型计算机在对数据进行处理分析。
机器人可以采用无线通信模块通过串口与WINCE平板电脑相连接,负责与外部通信的交互,包括与电梯端的无线通信模块进行交互,与远程服务器进行数据交互,与手机端进行数据交互。
速度编码器可以为1000线,编码器每转一圈输出1000个脉冲,与电机车轮的输出轴相连,用于检测送药机器人的线速度和运动方向,得到的数据通过驱动器发送给微型计算机。
储药箱可以设置为四层抽屉,每层抽屉都有一个电子锁,当收到打开指定层的指令时,相应的药箱层电子锁打开,药箱抽屉弹出,可以保证药品的安全性和隐私性。
充电单元主要负责充电时的工作流程,包括检测电池剩余电量,充电时接通状态以及充电时的电量状态等。
控制板通过串口与WINCE平板电脑向连接,其作用包括对超声探测器的数据进行处理,控制充电单元的开关状态以及对储药箱抽屉层的控制以及状态查询等。
语音模块与微型计算机想连接,负责行进、充电、上下电梯和其他一些流程的语音提示。
微型计算机为Inter的工业电脑,与WINCE平板电脑进行控制信息和数据信息的交互,处理驱动器进行电机状态等数据,对激光雷达、摄像头和超声传感器的数据处理,负责送药机器人的整体流程的处理。送药机器人的硬件架构可以参考图3-13。
送药机器人的软件架构可以参考图3-14。
如图3-14所示,送药机器人的软件架构可以包括超声数据处理部分、激光雷达数据处理部分、速度反馈部分、通信控制部分、地图处理部分、主干道生成部分、路径规划部分、状态逻辑控制部分、运动控制部分、数据存储部分。
超声数据处理部分对送药机器人周身的七个超声传感器反馈上来的数据进行滤波处理,可以对得到的每一帧超声组数据,剔除掉异常的数据段,来保证数据的准确性,用于辅助避障。
激光雷达数据处理部分对雷达模块传感器上传的定位信息采用卡尔曼滤波算法对得到的数据中的异常值进行剔除,提取有用定位信息。
速度反馈部分用于通过编码器反馈的数据计算送药机器人运动的线性速度、角速度、角度以及方向。
通信控制部分分别与超声传感器数据部分、激光雷达数据处理部分、速度反馈部分、数据存储部分、地图处理部分和状态逻辑控制部分进行交互,用于对通信状态与工作模式进行检查或纠正,对激光雷达进行检测与控制,对运动信息、控制信息、定位信息和地图信息进行读取、处理与发送。
地图处理部分,对通信控制模块传过来的地图数据进行处理,由于雷达为单线激光雷达,在大面积范围内建图的时候会出现偏差等,地图处理模块采用基于人机交互的处理模式将多个局部小范围地图整合成大面积的地图数据。
主干道生成部分,根据地图处理部分得到的地图信息,采用人机交互的方式对地图中宽阔的地域和楼道等主要的道路进行主干道的选取,作为全局路径规划时优先选择的道路信息。
路径规划部分,基于人机交互选择的目标位置以及激光雷达提供的地图信息,在主干道模块生成的主干道的基础上生成全局的路径信息以及实时的局部路径信息。
运动部分,负责基于速度反馈部分反馈的送药机器人的线速度、角度和激光雷达处理部分反馈的定位信息,判断送药机器人在导航时偏离既定路线的误差,来调整送药机器人的速度差,使送药机器人保持在既定的路线上运动。
状态逻辑控制部分分别与通信控制部分、路径规划部分、运动控制部分进行通信连接,用于管理系统程序的工作模式,并命令通信控制部分、路径规划部分与运动控制部分进入指定的工作模式。
在初始化模式下,执行送药机器人的状态初始化以及设备自检的工作流程,状态逻辑控制部分在送药小车上电初期,读取通信控制模块的参数,对送药机器人的主控设备以及外围设备按照一定的时序进行初始化工作,设定送药机器人的初始状态参数和设备运行方式等, 初始化完成后,对重要模块进行一一自检,可以利用通讯或者IO反馈的方式查看所有模块是否工作正常,在初始化模式下,发现重要模块初始化设置失败或者自检未通过时,发送报警信息,并拒绝进入正常的导航模式,等待维护人员解决问题消除报警后方可正常运行。
在第一次在未知环境下运行时,可以先让送药机器人进入到建图模式,对送药机器人运行所处空间的地图进行构建,并对电梯门口和充电位置进行标定,对建好的地图处理后,生成主干道信息并保存;在导航模式下,执行一种送药机器人准导航的工作流程。具体工作流程可以参考图3-15。
在一些可选的实现方式中,机器人包括用于人机交互的电脑和用于逻辑计算的微型计算机;以及,电脑和微型计算机的交互协议包括指令字节、数据段、校验码和结束标志。对于数据交换,基于不同的命令头表示不同的命令,并在数据尾部添加校验码及特定尾部,方便对不同的命令进行解析,确保不会因为命令解析失败而导致机器人异常行为。
作为示例,通信数据的重点为WINCE平板电脑与微型计算机间的串口数据交互,此处串口数据交互协议为自定义协议,协议格式为:指令字节+数据段+校验码+0xff 0xff0xff 0xff(其中,0xff 0xff 0xff 0xff可以是结束标志),数据交互包含了各种运动控制指令,流程控制指令,同时也可进行地图的交互。自定义的交换数据格式,保证机器人的安全性和稳定性。
在一些可选的实现方式中,机器人可以包括编码器、左轮和右轮、激光雷达、超声传感器和通信连接线;以及,获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标之前,还包括:对编码器进行故障检测,若有故障,则停止运动,发出警报;对激光雷达进行故障检测,若有故障,则停止运动,发出警报;对超声传感器进行故障检测,若有故障,则停止运动,发出警报;对通信连接线进行故障检测;若有故障,则停止运动,发出警报或运动到目标坐标后,再发出警报;以及,对编码器进行故障检测,包括:将编码器反馈的左轮的第一时刻和第二时刻的脉冲数据做差,得到左轮差值,将编码器反馈的右轮的第一时刻和第二时刻的脉冲数据做差,得到右轮差值;根据第一时刻与第二时刻的差值、预设的轮子直径和预设的最大线速度差值,确定对应第一时刻与第二时刻的最大差值;若最大差值小于左轮差值与右轮差值的差值的绝对值,则编码器存在故障;和/或,获取编码器反馈的当前左轮速度和当前右轮速度,判断当前左轮速度和当前右轮速度是否满足第三预设条件,若不满足,则编码器存在故障;和/或对激光雷达进行故障检测,包括:获取激光雷达反馈的第一当前位置和编码器反馈的第二当前位置,将第一当前位置与第二当前位置做差,若第一当前位置与第二当前位置的差值不满足第四预设条件,则激光雷达存在故障;和/或对超声传感器进行故障检测,包括:获取超声传感器(或称超声波传感器)反馈的数据包,若数据包不满足第五预设条件,则超声传感器存在故障;和/或对通信连接线进行故障检测,包括:获取对应通信连接线的数据,若获取失败,则通信连接线存在故障。机器人故障自检功能,支持故障自检及故障自动修复功能,提高了设备使用安全性。
作为示例,机器人故障处理部分(即机器人自检)具体包括如下部分:
为保证送药机器人自身的稳定,可以实时监测机器人各部分功能是否出现异常,一方面检测传感器本身是否出现问题,另一方面检测机器人各部分通信连接线是否出现掉线或连接线损坏的问题;
传感器可以包括编码器、激光雷达和超声波传感器,通信连接线主要有微型计算机与驱动器之间的can连接线,微型计算机与激光雷达的网口连接线,微型计算机与WINCE平板电脑的232串口连接线,微型计算机与摄像头和语音模块的USB连接线,无线通信模块和WINCE平板电脑的232串口连接线,控制板和WINCE平板电脑间的485串口连接线:
1、对于编码器本身问题的检测的方法:
程序实时获取can反馈的左右轮编码器数据,计算时刻与时刻左轮的差值,右轮的差值;
依据程序中设定的送药机器人两电机轮之间的轮距以及最大旋转角速度,可以计算出左右轮的最大线速度差值,在根据电机轮的减速比n和轮子直径可计算出左右轮的编码器连续两帧差值的最大差值;
如果,则判定编码器出现故障;
同时,程序根据送药机人当前发送的线速度值,实时与编码器计算出的速度值进行比对,如出现左编码器或有编码器数值与目标数值在阈值范围外,也判定编码器出现故障。
2、对激光雷达本身问题的检测方法:
程序依据激光雷达上传的数据包进行解析,从激光雷达数据包中实时获取送药机器人位置,当送药机器人在送药过程中激光雷达获取的自身定位位置与编码器推算的位置有很大的差异时候,可判断激光雷达传感器出现问题;
3、对超声传感器的检测方法:
程序依据超声传感器上传的数据包进行解析,对每一个超声传感器的数据进行判断,如果机器人在运行过程中某一个超声传感器的值由正常值突变成0,连续几帧的数据保持为0,且机器人再继续运动传感器的值不变化,则判定对应传感器出现问题。
4、对于通信连接线掉线或者损坏的检测方法:
当程序接收不到对应的连接线的数据的时候,程序尝试重新打开串口并接收数据,反复操作五次,如果仍然接收不到数据或数据异常,则判定连接线处出现问题。
针对不同的故障问题,送药机器人的程序对不同的故障问题给出相应的反馈。
6、对于编码器故障、激光雷达故障、微型计算机与驱动器之间的can连接线故障、微型计算机与激光雷达的网口连接线故障的情况,送药机器人在静止情况下保持静止状态,导航运动状态下,则立即停止运行,并提示故障信息,等待人员解决。
7、对于微型计算机与驱动器之间的can连接线故障问题,在任何模式下,程序都会对驱动器和电机部分立刻断电,等待人员解决;
8、对于微型计算机与WINCE平板电脑的232串口连接线故障、控制板和WINCE平板电脑间的485串口连接线故障问题,送药机器人在静止状态下保持静止状态,提示报警信息;在送药过程中,可等到执行完送药过程,提示报警信息,等待人员解决问题。
9、对于微型计算机与摄像头USB连接线,无线通信模块和WINCE平板电脑的232串口连接线故障问题,送药机器人不能完成上下电梯和充电的过程,送药机器人在送药过程中如果不需要上下电梯或者已经执行完上下电梯过程,可以等送药结束后停止运动,否则立即停止运动并是错误信息。
请参阅图4,图4是根据本发明提供的机器人导航装置的一些实施例的结构示意图,作为对上述各图所示方法的实现,本发明还提供了一种机器人导航装置的一些实施例,这些装置实施例与图1所示的一些方法的实施例相对应,且该装置可以应用于各种电子设备中。
如图4所示,一些实施例的机器人导航装置400包括第一处理模块401、第二处理模块402、第三处理模块403、第四处理模块403:第一处理模块401,用于获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;第二处理模块402,用于根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;第三处理模块403,用于判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;第四处理模块404,用于否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
在一些实施例的可选实现方式中,第四处理模块404,还用于获取当前坐标,当前坐标包括起始坐标,获取对应的前瞻点,前瞻点是根据第二预设条件在全局路径上选取的,前瞻点包括目标坐标;获取投影点坐标,投影点坐标是当前坐标在全局路径上的投影,根据投影点坐标和当前坐标,确定对应的距离和偏差角度;根据距离和偏差角度确定控制系数,获取预设的转弯最大差值速度,根据控制系数和转弯最大差值速度确定左轮速度和右轮速度;根据左轮速度和右轮速度,运动到前瞻点,前瞻点包括目标坐标。
在一些实施例的可选实现方式中,机器人包括用于人机交互的电脑和用于逻辑计算的微型计算机;以及,电脑和微型计算机的交互协议包括指令字节、数据段、校验码和结束标志。
在一些实施例的可选实现方式中,第一处理模块401,还用于查询对应当前楼层的主干道信息,若存在,则获取当前楼层的主干道信息;否则,通过激光雷达,获取至少一个局部地图信息;通过SIFT图像匹配算法,将至少一个局部地图信息拼接,得到整体地图;接收至少一个端点坐标组,根据至少一个端点坐标组和整体地图生成对应的主干道信息,端点坐标组包括两个端点坐标。
在一些实施例的可选实现方式中,第一处理模块401,还用于通过人机交互获取拼接地图,拼接地图是由用户将至少一个局部地图信息拼接得到的;基于拼接地图,通过SIFT图像匹配算法,得到整体地图。
在一些实施例的可选实现方式中,机器人包括摄像头和至少一个箱层,至少一个箱层对应至少一个箱层信息;以及,装置400还包括:扫描模块,用于通过摄像头,扫描标识码,标识码包括用户信息、箱层信息和时间信息,标识码用于打开对应箱层信息的箱层。
在一些实施例的可选实现方式中,机器人包括编码器、左轮和右轮、激光雷达、超声传感器和通信连接线;以及,装置400还包括,故障检测模块,用于:对编码器进行故障检测,若有故障,则停止运动,发出警报;对激光雷达进行故障检测,若有故障,则停止运动,发出警报;对超声传感器进行故障检测,若有故障,则停止运动,发出警报;对通信连接线进行故障检测;若有故障,则停止运动,发出警报或运动到目标坐标后,再发出警报;以及,故障检测模块还用于:将编码器反馈的左轮的第一时刻和第二时刻的脉冲数据做差,得到左轮差值,将编码器反馈的右轮的第一时刻和第二时刻的脉冲数据做差,得到右轮差值;根据第一时刻与第二时刻的差值、预设的轮子直径和预设的最大线速度差值,确定对应第一时刻与第二时刻的最大差值;若最大差值小于左轮差值与右轮差值的差值的绝对值,则编码器存在故障;和/或,获取编码器反馈的当前左轮速度和当前右轮速度,判断当前左轮速度和当前右轮速度是否满足第三预设条件,若不满足,则编码器存在故障;和/或故障检测模块还用于:获取激光雷达反馈的第一当前位置和编码器反馈的第二当前位置,将第一当前位置与第二当前位置做差,若第一当前位置与第二当前位置的差值不满足第四预设条件,则激光雷达存在故障;和/或对超声传感器进行故障检测,包括:获取超声传感器反馈的数据包,若数据包不满足第五预设条件,则超声传感器存在故障;和/或故障检测模块还用于:获取对应通信连接线的数据,若获取失败,则通信连接线存在故障。
可以理解的是,该装置400中记载的各模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置400及其中包含的模块、单元,在此不再赘述。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行机器人导航方法,该方法包括:获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,上述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,上述计算机程序包括程序指令,当上述程序指令被计算机执行时,计算机能够执行上述各方法所提供的机器人导航方法,该方法包括:获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的机器人导航方法,该方法包括:获取当前楼层的主干道信息、当前楼层的起始坐标和当前楼层的目标坐标;根据起始坐标和目标坐标确定起始坐标与目标坐标之间的距离;判断距离是否满足第一预设条件,第一预设条件用于确定生成全局路径的方法,若满足,则基于起始坐标和目标坐标,通过A*算法,生成全局路径;否则,通过主干道信息和起始坐标确定起始投影点坐标,通过主干道信息和目标坐标确定目标投影点坐标,基于主干道信息、起始坐标、起始投影点坐标、目标坐标和目标投影点坐标,通过Dijkstra算法和A*算法,生成全局路径,使机器人根据全局路径从起始坐标运动到目标坐标。
以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分上述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 上一篇:一种医用注射器针头装配设备
- 下一篇:火星椭圆轨道像移补偿控制地面验证系统