HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种清洁机器人的软件结构的制作方法

2021-01-15 16:01:59|254|起点商标网
一种清洁机器人的软件结构的制作方法

本发明属于工控技术领域,具体为一种清洁机器人的软件结构。



背景技术:

工控机即工业控制计算机,是一种采用总线结构,对生产过程及机电设备、工艺装备进行检测与控制的工具总称。工控机具有重要的计算机属性和特征,如具有计算机cpu、硬盘、内存、外设及接口,并有操作系统、控制网络和协议、计算能力、友好的人机界面。工控行业的产品和技术非常特殊,属于中间产品,是为其他各行业提供可靠、嵌入式、智能化的工业计算机。

但是现有的工控技术在应用于清洁机器人上时,智能化过于死板,且不易控制,同时由于环境因素,需要人工调试行进路线,十分的麻烦。因此需要对工控结构加以改进,同时提出一种清洁机器人的软件结构,便于更好的解决上述提出的问题。



技术实现要素:

本发明的目的在于:为了解决上述提出的问题,提供一种清洁机器人的软件结构。

本发明采用的技术方案如下:

一种清洁机器人的软件结构,所述的一种清洁机器人的软件结构从顶层到底层依次包括界面层、中心服务层、本地服务层、硬件层、中心服务层中的任务管理器及硬件层,且中心服务层中的任务管理器提供了应用接口。

在一优选的实施方式中,所述界面层还用于接收编写的示教文件。另外,所述界面层还用于显示报警信息、参数配置信息、系统错误恢复和诊断信息,也可用于历史任务数据的反演分析等,所述界面层,用于接收输入的指令信息中心服务层中的任务管理器,用于将所述输入的指令信息解析为运动控制指令并将所述运动控制指令发送给硬件层所述硬件层用于根据所述运动控制指令执行相应的动作其中,所述界面层和中心服务层中的任务管理器之间通过接口相连,所述中心服务层中的任务管理器与所述硬件层之间通过接口相连,且所述中心服务层中的任务管理器还提供应用接口。

在一优选的实施方式中,所述中心服务层,部署在单台服务器,用于多机系统的管理,通过单台服务器统一管理多机器人系统的任务配置、监控与高级服务,所述中心服务层中的任务管理器,用于将所述输入的指令信息解析为运动控制指令,并将所述运动控制指令发送给硬件层;所述硬件层用于根据所述运动控制指令执行相应的动作,中心服务层中的任务管理器还用于接收所述硬件层根据运动控制指令得到的反馈信号根据所述反馈信号生成相应的运动控制指令且将所述反馈信号发送给所述界面层,另外,所述的任务管理器还用于将所述示教文件解析为一连串的运动控制指令所述硬件层用于根据所述一连串的运动控制指令完成机器人的自动运行功能,任务管理器中包含了通信层和数据层,数据层为系统中各个子模块之间数据的传递,通通信层提供了多种通信协议。

在一优选的实施方式中,所述界面层和中心服务层中的任务管理器之间通过接口相连,所述中心服务层中的任务管理器与所述硬件层之间通过接口相连,且所述中心服务层中的任务管理器还提供应用接口,所述硬件层用于根据所述控制指令执行相应的动作。

在一优选的实施方式中,所述硬件层包括:

1、运动学解析模块,用于调用各种相应的数学函数;

2、多传感器信息分析判断模块,用于管理和融合各种传感器上传的数据信息,并分析判断各类数据信息之间的关系;

3、运动规划模块,用于实现机器人多机系统作业的路径规划和速度规划。

所述运动规划模块采用静态的全局和局部、动态的避障算法以及得到机器人的清扫的轨迹路径,并且实现任务调度、分配、协作。

在一优选的实施方式中,所述硬件层、本地服务层、中心服务层、中心服务层中的任务管理器和界面层的优先级逐渐降低。

综上所述,由于采用了上述技术方案,本发明的有益效果是:大大提高了清洁机器人的清扫效率与环境认知功能。

1、本发明中,本发明通过单元分解法将划分好的作业区域标识已清扫、障碍物等区域,构成机器人需要进行的作业区域以便机器人能够根据地图中各个区域的状态执行相应的工作,实现全覆盖清扫,同时能根据所述的硬件层中感知设备实时感知周围环境动态障碍的信息而更新地图,增加了补扫的功能,避免了重复工作的情况,达到了机器人高效的完成对未知环境的清扫工作。

2、本发明中,本发明提供的全覆盖路径规划方法和系统无需将地图栅格大小设定为机器人宽度,栅格宽度可以任意小,适用于大型清扫机器人,重复清扫率低,效率高。

附图说明

图1为本实施例的机器人软件系统的结构设计示意图;

图2为本实施例的多机系统软件:目标框架与基础技术试验部署的结构图;

图3为本实施例的机器人全局覆盖示意图;

图4为本实施例的机器人子区域分解和覆盖示意图;

图5为本实施例的机器人全局覆盖仿真示意图;

图6为本实施例的覆盖率对比示意表。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本实施例所述的软件系统包含了软件系统的架构设计以及其中包含的重要节点,所述的软件系统的架构和其中的重要节点包含了多个模块或单元。另外,所述的软件系统主要负责机器人的自主导航、工作任务的调度、客户端界面等相关信息。

本实施例所述的软件系统构建在ros系统之上,分别设置了单机版和在线版,主要基于ros系统的特性将软件系统分成多个独立的模块化程序,这些模块化程序称之为“节点”,每个节点处理具体控制任务的某一部分。进一步的,这些节点可以独立于控制任务的其他节点被编写、编译和启动,通过ros的“话题(topic)”机制,节点与节点之间以点对点的方式交换消息、共享内存等。所述的软件系统使用wifi建立tcp/ip通讯,实现节点间的数据传输和机器人的远程控制。本实施例中“服务”的概念,是作为客户端的节点向提供服务的节点发出的请求,接受到请求的节点根据请求中携带的参数进行响应并返回结果,实现任务规划的“高层”节点可以向负责运动控制的“低层”节点发出移动请求。“低层”节点根据这些信息执行任务,完成后将执行情况返回。本实施例所述的软件系统具有很好的开放性、可移植性、便于升级和软件复用、交互性和分布性、效率性等。

如参阅图3所示,本实施例所述的软件系统的架构设计原理的实现方法,主要基于前面所述的机构系统和所述的硬件系统为基础来进行实现的。参阅图2为所示的多机系统目标框架结构,是所述的软件系统的一种抽象表达。本实施例所述的软件系统根据功能抽象从顶层到底层采用的是四层软件架构,主要是将所述的软件系统所完成的各个任务进行分层,分为界面层、中心服务层、本地服务层和硬件层。所述的界面层主要是用来实现机器人和用户之间的信息交互,该层应具有友好的人机界面,方便进行人机交互;所述的中心服务层和本地服务层是作为机器人核心层,主要是实现信息融合,数据处理以及指令决策等功能,该层具有开放式的用户接口,通过这些软件接口用户可以方便的进行软件扩展和二次开发;所述的硬件层是和硬件相关的,用作监测机器人状态,该层提供和硬件相关的动态链接库,通过调用这些库函数能够很好的访问硬件资源,具有很好的开发性。

具体的,本实施例的软件系统架构的设计采用了分布式协作的方法,各个层都在一个计算平台上运行,可以统一管理多机器人系统的任务配置、监控与高级服务,对于需要严格定时限制的系统,可设置为单个处理节点。所述的软件系统的架构设计分别对应本实施例所述的硬件系统至上而下的模块,各个部分独立工作而又相互协作,下层为上层提供服务并为上层的调用返回结果,下层服务于上层,下层回答上层的服务请求。

进一步的,本实施例所述的软件系统各个层通过接口相连,所述的软件系统界面层可通过云平台、app等方式向所述的中心服务层发送指令或进行访问等操作。所述的中心服务层对机器人进行管理,并提供相应的任务规划和数据记录。所述的本地服务层基于ros构建,其中包含了导航算法和清扫路径的规划等模块。所述的硬件层包括了所有传感器、工作执行器等硬件设备的驱动软件接口,各个层可分布在多个不同的目标,其中关键的处理部分设成中心服务层和本地服务层,实现了较好的响应速度,规避通信带宽与可靠性方面的技术风险。所述的软件系统可通过网络传输数据并显示在pc机上,平台和算法可以以优先循坏的方式在实时处理器上确定的运行,可通过无线网络可以将数据信息传输到pc机上生成用户的界面层。从参阅图2所示的架构图可以看出,所述的软件系统的分层可以有效的降低各个模块中之间的耦合性,每个层独立运算,同时存在信息交互,保证机器人各个部分协调运行,有效的降低了层与层之间的依赖性,提高了各层逻辑的复用性。

本实施例所述的软件系统界面层是抽象的描述和表示层面,包含了各个模块或节点的控制和监控接口,主要包含了基于http协议的app端和云平台。其中app端接口可接受所述的app端所有操作指令,而机器人可上传已知环境的数据信息到所述的云平台,其他机器人可通过所述的云平台共享数据信息。

接口设计包含了软件系统内部之间、软件系统与连接的硬件系统之间、传感器系统、执行系统、控制系统、信息处理系统的执行函数接口,为机器人与操控者之间提供了抽象互动,以及在云平台、app端显示相对应的数据信息,主要显示数据和接受传输数据,同时也接受服务器端的状态信息,负责与外界交互,为外界提供机器人应用服务的终端节点,即为软件系统的运行提供交互式操作界面,主要有app端和云平台。手机、pad等智能设备可在该层中接入网络,可直观的达到对机器人系统的运行状态进行监控和控制。界面层可以通过不同的方式发送指令信息到中心服务层调用相应的任务模块,获取和处理任务请求信息,负责提取请求中的信息,并根据请求类型调用和解析相应任务逻辑处理函数,完成任务调度规划后再返回响应,然后可对机器人进行对应的控制。本实施例所述的界面层中提供的接口主要是基于http协议的app端和云平台可接入的数据接口、数据地图接口和外设接口,提供基于网络对多机的监控、管理、数据分析、控制优化的作用。

本实施例所述的界面层工作流程如下:

(1)机器人向本地服务层订阅slam服务;

(2)本地服务层确认机器人订阅的服务后,向机器人发送运动速度和方向控制的指令,开始slam任务执行;

(3)机器人接收到运动控制的消息后采取相应的行动,并且通过超声传感器、激光雷达等传感器获取环境信息,进行信息的封装、发布,同时发布机器人自身的姿态、位置信息;

(4)本地服务层根据机器人发布的数据,通过对应的功能包进行复杂的slam计算,产生环境地图建模数据,由rviz进行可视化显示,可以实时监控到机器人地图建模的情况;

(5)重复上面的步骤,建模结束后向机器人发送停止命令,并且保存地图。

中心服务层是机器人决策中心,包含机器人工作的任务调度模块、栅格地图上预处理模块、2d地图的自动区域分解模块、单元覆盖模式优化模块、转移路径优化求解模块、全覆盖清扫路径规划模块、二次补扫调度模块、区域覆盖清扫路径规划模块、分区清扫路径规划模块。

所述全覆盖路径规划系统包括:作业区域预处理模块,作业区域预处理模块是机器人的栅格地图生成和对子作业区域划分后,对地图边界的粗糙和不连续的地方进行处理;子区域分解模块是作业区域分割后,对一些局部的分区不合理或者实际上效率不高的问题进行处理和高效率的分解;优化模块是模板对于一些不规则或者特殊的单元形状提高适应性和所述的算法的覆盖率。

在本实施例中,全覆盖路径规划系统包括所述的机器人路径规划模块,主要在执行所述的算法后生成的清扫路线。如参阅图1所示,为本发明提出的一种基于单元分解法的全覆盖路径规划系统。

本发明一个实施例的全覆盖路径规划方法包括以下步骤:

s1,基于栅格地图生成平行、等距的清扫路线;

s2,作业空间地图预处理;

s3,根据环境中的障碍物信息自动划分作业子区域边界;

s4,基于模板自动优选的单元覆盖路线生成;

s5,优化决策;

s6,连接相连的子区域和提取已连通的子区域合成整个作业区域的单元列表,机器人按生成的路线清扫。

本实施例中的步骤:基于单元分解的全覆盖清扫路径的规划前包括:作业空间多层环境地图合成2d地图、栅格阈值的二值化处理以及区域边界进行膨胀处理。

通过单元分解法将划分好的作业区域标识已清扫、障碍物等区域,构成机器人需要进行的作业区域以便机器人能够根据地图中各个区域的状态执行相应的工作,实现全覆盖清扫,同时能根据所述的硬件层中感知设备实时感知周围环境动态障碍的信息而更新地图,增加了补扫的功能,避免了重复工作的情况,达到了机器人高效的完成对未知环境的清扫工作。所述全覆盖清扫路径规划方法为:

s1、地图的处理;

s2、作业区域的划分;

s3、子区域的连通。

本发明的全覆盖规划具有如下有益效果:本发明提供的全覆盖路径规划方法和系统无需将地图栅格大小设定为机器人宽度,栅格宽度可以任意小,适用于大型清扫机器人,重复清扫率低,效率高。

硬件层是硬件部分的抽象,可以接入实际的传感器或驱动器等设备。所述的硬件层主要和硬件系统相关,包含了多个硬件系统中的控制节点,具体有行走控制驱动节点、超声测距传感器采集节点、自动回充的红外传感器采集节点、防跌落传感器采集节点、防碰撞传感器采集节点、rgbd节点、雷达节点、灯带传感器采集控制节点、烟雾传感器采集节点、bms控制节点,主要用作监测机器人状态和执行相应任务。

具体的,所述的硬件层提供和硬件相关的动态链接库,通过调用这些库函数能够很好的访问硬件资源。所述的硬件层中的节点是整个软件系统中最基础的部分,通过所述的通信层,使所述的中心服务层和本地服务层处理的结果能及时传达到驱动器,实现软件与硬件信息互换的功能。另外,处理机器人动作所需的底层驱动函数,取决于传感器系统和驱动系统,这一层数据采集过程中响应的设定值会生成底层信号来创建相应的触发。同时,所述的硬件层还能将采集的数据转换成需要的值,并将该数据值传输至其他层。

所述的硬件层中雷达节点的控制端可以通过pc机进行控制,运行在所述的app端和监控设备之上,负责控制机器人移动以及显示地图数据。所述的雷达节点对应所述的硬件系统中的雷达,通过对所述的雷达节点接口的调用和调度,可以查询所述的app端和监控设备查询地图信息。所述的雷达节点的硬件模块接口存在和运行于机器人身上,负责接收和响应控制端的命令,并将部分命令下发给机器人,以及将地图数据传输给所述的app端和监控设备,由所述的app端和监控设备呈现地图。从而建图中心也是连接机器人和所述的app端和监控设备的桥梁,机器人和所述的app端和监控设备通过wifi或者以太网方式与建图中心建立连接。

所述的雷达节点的启动可通过pc机进行控制指令的发布,然后控制机器人运动,在运动的过程中,安装于机器人身上的雷达对环境进行扫描,同时建图中心将处理雷达数据并生成地图传送给所述的界面层,然后所述的界面层中app和监控设备可实时呈现地图。

所述的界面层与所述的app端、云平台之间的数据通信是基于http协议进行连接。客户端的app与服务端使用http协议建立http短连接方式传输数据。http采用“请求-响应”机制,客户端未传输消息时,服务端也无法将消息传输到客户端。http连接适用于双方不需要时刻保持连接在线的情况,比如客户端资源的获取、文件上传等。所述的app端和云平台与机器人通过组件之间通信交互,可将机器人本体获得的传感器信息通过所述的通信模块和无线网络传输至云平台和app端,便于大数据分析,采用的是基于消息队列的体系结构。对于点对点的设计,软件系统中的功能模块以进程节点为单位独立运行,分布在多个相同或者不同的pc机中,在系统运行时通过端对端的拓扑结构进行连接。其中,消息的发布节点注册信息在节点管理器端注册,并发布声明以“bar”为主题的消息,当订阅节点订阅“bar”主题的消息时,节点管理器会根据注册信息找到发布节点的网络地址,帮助二者建立http的数据传输通道,此后,发布节点开始向订阅节点传输消息数据。同时,该通讯机制支持发布节点和订阅节点以以对多、多对一、多对多的形式进行数据传输。提供命名查找服务,这种通信机制是基于计算机操作系统提供的网络套接字(socket)实现。进一步的,所述的软件系统在工作时,运行的模块在接入系统后,与所述的界面层进行协商,动态地订阅话题以接收所述的界面层的信息。所述的界面层发布一个服务,所述的app端连续调用该服务。所述的界面层在接到服务请求后不立即应答,而是保持连接,在需要的时候才进行应答。所述的界面层采用的http协议的通信方式分解了计算型功能给单个运算单元带来实施的计算压力,提高了机器人多机协作和机器人云端的稳定性和快速性,提升了所述的界面层中app、云平台的传输、处理性能。

参阅图4,所述的本地服务层中主控制器节点与所述的硬件系统中各个部分节点、模块、系统通过controlbus低速总线连接。所述的主控制器节点和外部系统之间的controlbus通讯协议设计为单向通讯模式,始终由所述的本地服务层节点发起数据包请求,通过controlbus总线协议,所述的主控制器节点可以获取外部系统的状态参数,例如外部系统的电池电量信息,是否在充电状态,外部系统的电机转速,传感器状态等信息。同时,所述的主控制器节点也通过controlbus总线协议控制外部系统的电机运动,从而实现完整的室内定位导航功能。controlbus总线协议是运行在串口上的,波特率为115200bps,外部系统必须实现此总线协议才可以使所述的主控制器节点正常工作。所述的主控制器节点的controlbus通讯协议使用的是inter-chip通讯协议的扩展模式。inter-chip通讯协议以数据包为单位在通讯媒介上传递数据,通讯包中包含了数据校验机制以及帧同步机制,可以实现可靠的通讯链路。inter-chip要求信道传输数据时遵循fifo原则,使用小字端传输数据包中协议所定义的公共数据结构,所述的本地服务层控制节点的ctrlbus通讯协议使用inter-chip通讯协议的扩展模式。它的数据包类型域为标识所述的本地服务层控制节点的ctrlbus扩展模式的0xf8。在此扩展模式下,数据负载的格式为请求/应答通讯模式,应答数据包格式与标准inter-chip通讯协议一致。所述的主控制器节点也可以接受外部系统的控制命令,但由于单向通讯的模式,外部系统只能在所述的本地服务层控制节点定期发送外部系统控制命令查询请求的时候才可以发送控制命令。但外部系统可以通过#cmd信号通知所述的本地服务层控制节点尽快发送外部系统控制命令查询请求。

所述的中心服务层与所述的任务管理中各个部分节点、模块、数据的传输通过tcp/ip网络总线连接。包括用户接口、分配器、发送模块、接受模块、队列管理器、别名表、用户队列、发送队列和接受队列。其中,队列管理器负责用户队列和系统队列的创建和删除。外界拥有输入和输出队列,通过接口和队列进行交互数据。另外,发送的数据包中包含发送目的地的别名,所述的分配器在别名表中查找对应的ip地址,重新打包数据,写入发送队列。发送模块和接受模块使用tcp协议,各拥有一个tcp套接字,负责发送和接受数据。同时,通信核心是节点,由服务节点发出话题,其他节点进行订阅,来完成数据交换,rosbridge是让主控器模块作为一个ros节点从而实现与其他节点的交互,对ubuntu和windows平台下运行的taskmanager通信适应性很好,内部用topic和services完成通信,在外部用json数据格式进行通信,支持外部协议websocket、tcp以及udp中使用基于tcp协议的rosbridge,通过socket侦听上下层发来的消息,在消息处理的过程中,支持中断优先级排队。采用抢占式调度方式,提高机器人控制的安全性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips