发布信息

一种分布式编队机器人通用软件分层架构 专利技术说明

作者:admin      2023-06-28 19:07:33     885



控制;调节装置的制造及其应用技术1.本发明涉及机器人编队控制技术领域,尤其涉及一种分布式编队机器人通用软件分层架构。背景技术:2.随着机器人技术的不断发展,移动机器人的应用范围越来越广,如资源勘探、搜救排险、军事航天等领域移动机器人都有一定的应用。现如今单个移动机器人已经有了比较好的性能,然而由于机器人面对的环境可能比较复杂,许多工作需要移动机器人之间相互协调才能够完成。与单个机器人相比,编队机器人系统有着更好的鲁棒性、信息准确性,因此编队机器人也引起了广泛的研究。功能复杂的编队机器人大多由分布式的多任务异构嵌入式系统组成,不同硬件之间的硬件平台差异比较大,底层的通信协议、硬件驱动、操作系统可能存在较大的差异,从而导致编队机器人的代码出现重复利用率低,扩展性差、难以维护等缺点;并且编队机器人之间的相互协作需要进行数据的共享,不同的编队控制算法需要共享的数据差异较大。这些都会给编队控制算法的设计者带来不便。因此,如何屏蔽编队机器人底层硬件设备的差异,解决编队机器人不同控制算法的数据共享差异的问题,实现系统软件通用化,是编队机器人领域有待解决的问题。技术实现要素:3.为至少一定程度上解决现有技术中存在的技术问题之一,本发明的目的在于提供一种分布式编队机器人通用软件分层架构。4.本发明所采用的技术方案是:5.一种分布式编队机器人通用软件分层架构,包括:6.物理链路层,用于负责向上层提供不同的通信方式,完成通信驱动配置;7.通信管理层,包括编队通信管理模块和硬件通信管理模块,用于管理机器人与不同节点之间的通信,实现节点管理、时钟同步、数据校验功能;其中,编队通信管理模块通过修改编队机器人的通信周期,增加或删减机器人的数量,以降低编队机器人扩展的难度;8.数据交换层,包括网络协议封装模块、硬件数据模块、硬件协议封装与解析模块,用于负责数据的封装与解析,并完成与算法任务层之间的数据交换;9.任务层,包括任务管理器和任务池,用于开发编队控制算法,实现编队任务的运行和切换。10.进一步地,所述物理链路层具体用于提供不同的数据传输通路,数据传输通路包括但不限于uart、can、i2c、无线通信等通信方式,向上层提供以字节为单位的数据传输接口,并且根据上层选择自由切换传输通路,实现透明传输。11.进一步地,所述编队通信管理模块采用时分复用的方式管理编队机器人节点之间的通信,将单个编队通信周期切分为多个时间片,通信周期每次由指令发送节点发起,并占用周期内第一个时间片,其余编队机器人节点则依次暂用后续时间片发送数据;12.其中,指令发送节点用于发送编队指令,控制编队的任务运行;所述指令发送节点为编队中某个机器人节点,或者非编队中的工控机节点。13.进一步地,所述硬件通信管理模块采用轮询的方式管理机器人与硬件节点之间的通信,即机器人节点依次对硬件节点发送控制指令,并依次接收硬件节点返回的数据。14.进一步地,所述网络协议封装模块负责完成共享数据的封装,共享数据是指编队机器人之间完成当前任务需要获取的数据;15.所述共享数据包括:机器人信息、任务数据包、校验信息机器人信息,所述校验信息机器人信息用于确认数据来源于编队中哪个机器人;16.所述任务数据包包括任务信息和任务数据,所述任务信息用于确定任务数据来源于哪个任务池。17.进一步地,所述所述共享数据的封装与解析采用一种变长通信协议来实现;18.所述任务数据包由任务层调用数据交换层接口时生成;所述任务数据包的大小和数量根据不同任务的数据共享需求进行修改。19.进一步地,所述硬件数据模块保存有不同机器人硬件的测量数据和指令数据;其中指令数据包括硬件节点的控制模式、通信链路选择、控制参数、控制指令;测量数据包括数据、时间戳;20.算法任务层通过层间接口修改指令数据,以控制相应硬件功能,并获取测量数据;其中,指令写入方式采用多级指令,即将机器人控制的硬件分为一级设备和二级设备,一级设备与机器人直接相连,采用一级指令控制;二级设备则与一级设备相连,采用二级指令控制;21.多级指令由设备号、指令码、数据组成,每个硬件都有单独的设备号,指令码和数据则根据不同设备的功能进行确定,多级指令可以实现机器人指令写入接口的统一,降低任务使用硬件的难度。22.进一步地,所述硬件协议封装与解析模块用于根据不同硬件通信协议和指令数据,完成协议的封装,并解析从硬件返回的数据帧,将数据上传给测量数据。23.进一步地,所述任务管理器负责完成编队指令的发送或接收,编队指令由指令发送节点发出,其余机器人节点接收编队指令,指令用于控制任务的运行状态,实现不同任务的自由切换;24.其中任务管理器在接收指令时采用三巡校验机制,确保机器人节点接收指令的正确性;任务管理器根据指令控制任务在任务准备、任务运行、任务暂停、任务结束四个状态之间切换。25.进一步地,所述任务池保存有编队可运行任务,任务管理器根据指令从任务池中选取任务运行;26.所述编队可运行任务包括任务代码,每个任务设有独立的编号,用于任务管理器进行选择和区分共享数据的来源。27.本发明的有益效果是:本发明基于编队通信管理模块,可以通过修改编队机器人的通信周期,在一定幅度内增加或删减机器人的数量,降低编队机器人扩展的难度。附图说明28.为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员而言,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。29.图1是本发明实施例中一种分布式编队机器人通用软件分层架构示意图;30.图2是本发明实施例中编队机器人通信周期示意图;31.图3是本发明实施例中通信周期零时刻推算示意图;32.图4是本发明实施例中硬件通信流程示意图;33.图5是本发明实施例中变长协议帧格式示意图;34.图6是本发明实施例中多级指令格式示意图;35.图7是本发明实施例中三巡校验机制示意图;36.图8是本发明实施例中任务状态切换示意图。具体实施方式37.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。38.在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。39.在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。40.本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。41.本实施例提供一种分布式编队机器人通用软件分层架构,可以屏蔽编队机器人的底层硬件差异,解决编队机器人不同控制算法的数据共享差异,降低编队控制算法的开发难度,保证编队控制算法设计的便利性。如图1所示,图1为编队机器人通用软件分层架构,编队机器人通用软件分层架构包括:由底层到顶层依次为物理链路层、通信管理层、数据交换层、算法任务层。42.物理链路层负责向上层提供不同的通信方式,完成通信驱动配置,如uart、can、i2c、无线通信等通信方式。43.通信管理层包括编队通信管理模块和硬件通信管理模块,负责管理机器人与不同节点之间的通信,实现节点管理、时钟同步、数据校验功能。44.数据交换层包括网络层协议封装模块、硬件数据模块、硬件协议封装与解析模块,负责数据的封装与解析,并完成与算法任务层之间的数据交换。45.任务层包括任务管理器和任务池,用于开发编队控制算法,实现编队任务的运行和切换。46.本实施案例以四台机器人和一个的基站组成的编队系统为例,结合附图做进行进一步的说明,下面对本软件分层架构不同层的搭建进行详细阐述:47.步骤s1-1:物理链路层负责向上层提供不同的通信方式,完成通信驱动配置,该层包括物理上的传输介质和设备,以及软件上各种总线协议的相关配置与代码,如uart、can、i2c、无线通信等通信方式。48.步骤s1-2:通信管理层包括编队通信管理模块和硬件通信管理模块,负责管理机器人与不同节点之间的通信。49.编队通信管理模块采用了时分复用管理编队机器人节点。其中编队管理模块有统一的接口函数,包括:通信周期管理函数ftmanager()、数据发送函数fsenddata()、数据接收函数fgetdata()等。如图2所示,建立编队通信周期,该系统以基站为指令发送节点,用于发送编队指令,但该软件框架并非限制必需要有基站作为编队指令发送节点,指令发送节点也可以由编队中的某个机器人担任。变量fperiod为通信周期时长,单个通信周期由指令发送节点发起,指令发送节点启动时长为fperiod的循环定时器,并占用fleaderts的时间片长度进行指令的发送,指令的发送通过调用数据发送函数fsenddata()实现;其余机器人节点依次占用时长为frobotts的时间片用于发送数据。通过修改通信周期时长fperiod和时间片长度frobotts便可扩展或修改编队通信周期,提高编队机器人系统的可扩展性。例如:需要增加单个机器人节点,可以增加将fperiod增加一个frobotts长度,并对其余机器人节点上的变量进行简单修改即可。50.由于编队机器人是分布式系统,因此要实现编队机器人的实时控制需要计算出非指令发送节点上通信周期的起始时刻。如图3所示,其中,从通信周期起始时刻t0到基站将指令发送时刻t1称为指令发送时延,发送时延可以由基站计算得出,同指令一起发送给编队机器人节点;从基站发送指令时刻t1到机器人节点接收指令时刻t2称为传播时延,传播时延在室内环境可以忽略不记,或由距离除以传播速度大概计算得出。因此在t2机器人节点接收到基站指令之后,减去传播时延和指令发送时延便可计算出通信周期起始时刻t0。节点推算出t0之后,再根据顺序确定时间片起始时刻t3,计算出定时器时延并开启定时器,定时器结束后调用数据发送函数fsenddata()将数据交换层封装的协议帧发送给其余机器人节点。51.硬件通信管理模块采用轮询方式管理机器人自身子节点。如图4所示,建立硬件通信管理模块,机器人循环进行硬件指令数据的发送,其中,硬件地址和指令帧由数据交换层对应硬件对象模块提供,硬件通信管理模块只负责将对应协议帧发送出去。并在完成指令发送之后进行数据的接收,完成则获取协议帧并将协议帧交给数据层对应硬件对象。每个协议帧接收时将会记录下对应的时间戳,供后续计算使用。52.步骤s1-3:数据交换层包括网络层协议封装模块、硬件数据模块、硬件协议封装与解析模块,负责数据的封装与解析,并完成与算法任务层之间的数据交换。53.网络层协议封装模块负责封装不同机器人节点之间的共享数据。网络层协议封装模块有统一的接口函数,包括:任务数据包写入函数fwritedata()、任务数据包读取函数freaddata()、任务数据包清空函数fclear()等。54.网络层协议封装模块封装数据采用一种变长协议帧进行数据的封装,如图5所示,其格式为:帧头+机器人信息+任务数据包1+任务数据包2+...+校验码+帧尾。机器人信息包括:机器人编号、帧数据长度,为了便于区分数据从编队中哪个机器人发出,每个机器人都有独立的编号;任务数据包则由任务调用数据包写入函数fwritedata()生成,网络协议封装模块会将不同格式的数据转化为字符类型数据。其内容包括任务编号、任务包数据长度、数据三个部分,任务编号用于区分该数据包由哪个任务生成,单个任务编号同一时间最多只能拥有一个任务数据包,即同一个任务编号后写入的数据包会覆盖先前的数据包。单个变长协议帧可以在小于帧最大长度fmaxlength的前提下,插入多个任务编号不同的任务数据包,任务数据包的长度也可以不同,因此可以灵活适应不同任务算法的数据传输需求,实现不同机器人节点之间的透明通信。其中,帧最大长度可以根据机器人的传输能力计算得出,一般取机器人在时间片frobotts下最大数据传输能力的60%为宜。在网络层协议封装模块接收到其余机器人节点的协议帧之后,会根据将协议帧分割任务数据包,并按照机器人编号与任务包编号进行分类,临时保存在网络层协议封装模块中。任务可以通过任务数据包读取函数freaddata()读取不同机器人上共享的任务数据包,完成不同机器人节点之间的数据共享。55.硬件数据模块负责完成硬件与任务之间数据的交互,分为指令数据和测量数据。硬件数据模块有统一的接口函数,包括:指令数据写入函数hwriteorder()、测量数据读取函数hreaddata()等。56.指令数据是指算法任务层控制硬件所需写入的相关数据。任务通过指令数据写入函数hwriteorder()写入硬件的控制指令。硬件的控制指令采用多级指令的方式完成写入,如图6所示,与机器人直接连接的设备称其为一级设备,对一级设备的控制采用一级指令,其中一级指令包括:一级设备号+指令码+控制量,每个一级设备对应一个独立的一级设备号,指令码用于确定设备的工作模式,指令码和控制量则根据不同设备的功能进行确定,控制量则根据设备实际需求选择写入或设置为零。如果一级设备为可编程设备,如嵌入式系统,且一级设备上仍连接有硬件,则称一级设备的硬件为二级设备,二级设备控制采用二级指令,包括:一级设备号+一级指令码+二级设备号+二级指令码+控制量。其中,一级指令码功能将限制为开启、选中、关闭,二级指令码则根据二级设备具体情况设置。多级指令不仅可以统一数据交换层的接口,增加了代码的可维护性和可扩展性,还能实现算法任务层对底层硬件的精确控制。在指令数据中,通过对变量链路编号linkpath的修改,可以修改硬件的通信方式,硬件地址由指令数据提供。测量数据指硬件返回的传感器测量数据,算法任务层可以使用函数hreaddata()读取硬件的测量数据,其中读取同样采用多级指令的方式,但每次数据读取只需要发送设备号即可,如需要获取一级设备的数据则只需要发送一级设备号;而获取二级设备则需要发送一级设备号+二级设备号。57.硬件协议封装模块负责封装与解析硬件对象的协议帧。将硬件数据模块中的指令数据,与设备对象的通信协议对应起来,从而将指令数据封装为指令帧,下发至硬件通信管理模块实现对硬件的控制。在接收到硬件通信管理模块的数据帧之后,硬件协议封装模块解析出测量数据并上传至硬件数据模块,供算法任务层使用。58.步骤s1-4:算法任务层包括任务池和任务管理器两个模块,用于开发编队控制算法,实现任务的运行和切换。59.任务池中保存可运行的编队任务,每个任务都有独立的任务编号,以及一个任务运行函数taskrun()。任务管理器负责编队机器人指令的发送与接收,根据指令控制编队的运行。通过对变量mmode的设置,可以将任务管理器切换为指令发送节点或非指令发送节点,指令发送节点用于发布编队指令,其余节点则接收指令完成编队的任务运行。任务管理器的可以当成是一个特殊的编队任务,该任务在编队机器人程序启动时运行,其固定编号为0xff,通过调用网络层协议封装模块接口实现相互之间的通信。其中,任务管理器之间通信可以分为指令包和数据包,指令包用于交换指令,采用三巡校验机制,如图7所示,即指令发送节点发送对应指令帧;其余机器人节点在接收到指令之后,返回接收到的指令码给指令发送节点;指令发送节点接收到编队所有机器人节点的指令码并确认无误之后,将会发出指令确认,此时才算完成单次指令传输,编队可以进行下一步操作。利用三巡校验机制,可以确保编队指令的准确性。数据帧则用于上传数据给指令发送节点用于分析,可以根据不同任务确定上传数据内容,为了数据的实时性,数据包将不采用三巡校验机制传输。如图8所示,每个任务可以根据指令在四个状态之间切换,包括任务准备、任务运行、任务暂停、任务结束。任务准备阶段机器人节点根据指令选择需要运行的任务;任务运行阶段则运行选中的任务运行函数taskrun();任务暂停阶段编队机器人将会停止机器人驱动轮的运动,任务管理器会直接使驱动轮的指令设置为静止,并关闭硬件数据模块中驱动轮的写入,但不暂停任务中其余算法的计算,以便编队可以再次运行;任务结束阶段则初始化整个编队的状态,包括硬件指令和算法任务层数据。60.综上所述,本实施例相对于现有技术,至少具有如下优点及有益效果:61.(1)可扩展、易开发的编队机器人平台。编队通信管理模块可以通过修改编队机器人的通信周期,在一定幅度内增加或删减机器人的数量,降低编队机器人扩展的难度。此外,变长通信协议作为编队机器人之间的通信协议,可以灵活适应不同任务之间数据共享的需求,实现编队机器人之间共享数据的透明传输。另外,利用数据交换层的指令数据,将硬件的操作简化为对指令数据的修改,并通过数据交换层统一的接口进行写入,有效的隔离了不同底层硬件之间通信方式和硬件平台的差别。62.(2)可实时切换的编队任务。根据实际的场景的需求,任务管理器提供实时切换任务状态的功能,能在线切换任务状态。在任务暂停或结束之后,任务管理器还可以实时切换任意在任务池中的任务。实现编队的灵活操作。63.在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。64.尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。65.以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部