基于rosserial的清洁机器人与电脑端的通信方法和装置与流程

文档序号:29970231发布日期:2022-05-11 11:17阅读:336来源:国知局
基于rosserial的清洁机器人与电脑端的通信方法和装置与流程

1.本发明属于清洁机器人通信技术领域,具体涉及一种基于rosserial的清洁机器人与电脑端的通信方法。


背景技术:

2.现有清洁机器人程序运行在linux平台下。在程序调试方面,使用无线蓝牙串口通信。该模式下,具有传输数据较少,刷新频率慢,关键数据可能存在丢失风险等缺点。使用有线adb调试,十分受到线材长度限制,以及人员需跟随机器。
3.为了使得人员无需跟随清洁机器人进行测试,需要清洁机器人能够在实现可视化功能的基础之上进行测试,一方面清洁机器人的测试时的数据传输需要通过无线实现,另一方面,清洁机器人的测试数据量会有所提升,在实际情况下;清洁机器人为ros设备,用于测试的上位机通常为x86/64的非ros设备。
4.现有技术中ros设备与非ros设备之间所采用的通信协议,通常仅限于低速数据传输。而将地图信息可视化的呈现在上位机的应用场景下,需要实现高速数据传输。为实现上述要求,清洁机器人测试过程汇总的通信需要通过rosserial基于wifi等速度较高的无线传输协议实现。
5.在实现上述通信的过程当中,ros的原生传输库紧提供每次512k的数据传输,无法满足可视化功能所需传输速率,此外清洁机器人通常使用更加适用于移动端的硬件平台,这意味着清洁机器人通常不会使用功能更强,但是功耗较高的x86或x64平台。ros需要在两种硬件架构之间实现通信。现有的ros无法直接提供清洁机器人与上位机之间能够提供可视化服务的通信方式。


技术实现要素:

6.有鉴于此,本发明的主要目的在于提供一种基于rosserial的清洁机器人与电脑端的通信方法,使得清洁机器人器人能够与上位机之间进行可视化服务的通信。
7.为达到上述目的,本发明的技术方案是这样实现的:
8.一种基于rosserial的清洁机器人与电脑端的通信方法,该方法包括:
9.对清洁机器人和电脑端建立无线连接;
10.根据清洁机器人和电脑端之间的数据传输速率的要求,调整rosserial_client程序,以扩充其缓存区域;
11.对调整后的所述rosserial_client程序进行交叉编译,并将交叉编译后的所述rosserial_client程序装载在清洁机器人上;
12.控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据;
13.控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示。
14.进一步的,所述rosserial_client程序的调整方式具体包括:
15.根据清洁机器人的平台种类,提取rosserial_client程序中相应的代码块,并且修改所述代码块中缓存数据区域的大小;
16.所述交叉编译,具体是根据所述平台种类,通过对应编译器执行在x86或x64平台上的交叉编译,所述交叉编译的机器码,能够在相应的所述平台种类上运行。
17.进一步的,所述业务数据压缩后传输。
18.进一步的,所述步骤控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据,具体包括:
19.控制机器人根据电脑端的平台种类及机器人和电脑端之间的通信链路的种类,通过rosserial_client调用write函数,生成一个传输实例;
20.通过所述传输实例新建一个缓存区域,所述缓存区域的大小与所述通信链路的种类相适应;
21.通过所述传输实例,将压缩后的所述业务数据存储在所述缓存区域当中;
22.通过所述通信链路将所述缓存区域中的数据传输至电脑端。
23.进一步的,将压缩后的所述业务数据存储在所述缓存区域当中的步骤,具体为通过socket方式,将用户态的业务数据传输至内核态,并且在内核态下,将所述业务数据存放在所述缓存区当中,使得通信链路能够在内核态下通过通信链路传输所述业务数据。
24.进一步的,所述步骤控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示的步骤具体包括:
25.对所述业务数据进行解压,并将解压后的业务数据存放在字符类型的数据容器当中;
26.通过应用层的通信协议,从所述业务数据中提取可视化的信息并在上位机上显示。
27.进一步的,所述业务数据的压缩,具体是采用滑动窗口法所设计的压缩算法。
28.为解决上述技术问题,本技术还公开了一种基于rosserial的清洁机器人与电脑端的通信装置,具体包括如下方案:
29.一种基于rosserial的清洁机器人与电脑端的通信装置,包括:
30.连接模块,用于对清洁机器人和电脑端建立无线连接;
31.代码调整模块,用于根据清洁机器人和电脑端之间的数据传输速率的要求,调整rosserial_client程序,以扩充其缓存区域;
32.代码装载模块,用于对调整后的所述rosserial_client程序进行交叉编译,并将交叉编译后的所述rosserial_client程序装载在清洁机器人上;
33.数据发送模块,用于控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据;
34.数据接收模块,用于控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示。
35.为解决上述技术问题,本技术还公开了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如上所述的基于rosserial的清洁机器人与电脑端的通信方法的步骤。
36.为解决上述技术问题,本技术还公开了一种计算机可读存储介质,其特征在于,所
述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于rosserial的清洁机器人与电脑端的通信方法的步骤。
37.与现有技术相比,本发明能够通过网络实现清洁机器人与电脑端的无线程序调试,使得电脑端与清洁机器人之间可实现通信。
附图说明
38.此处所说明的附图用来公开对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定在附图中:
39.图1是本技术可以应用于其中的示例性系统架构图;
40.图2为是本技术一种基于rosserial的清洁机器人与电脑端的通信方法的流程图;
41.图3为是本技术一种基于rosserial的清洁机器人与电脑端的通信装置的结构示意图;
42.图4为是根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
43.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
44.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
45.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
46.如图1所示,系统架构可以包括终端设备11、终端设备12、终端设备13,网络14和服务器15。网络14用以在终端设备11、终端设备12、终端设备13和服务器15之间提供通信链路的介质。网络14可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
47.用户可以使用终端设备11、终端设备12、终端设备13通过网络14与服务器15交互,以接收或发送消息等。终端设备11、终端设备12、终端设备13上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
48.终端设备11、终端设备12、终端设备13可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
49.服务器15可以是提供各种服务的服务器,例如对终端设备11、终端设备12、终端设备13上显示的页面提供支持的后台服务器。
50.需要说明的是,本技术实施例所提供的一种基于rosserial的清洁机器人与电脑端的通信方法一般由服务器/终端设备执行,相应地,一种基于rosserial的清洁机器人与电脑端的通信装置一般设置于服务器/终端设备中。
51.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
52.参考图2,示出了根据本技术的一种基于rosserial的清洁机器人与电脑端的通信方法的一个实施例的流程图。
53.在本实施例中,一种基于rosserial的清洁机器人与电脑端的通信方法所运行的电子设备(例如图1所示的服务器/终端设备)可以通过有线连接方式或者无线连接方式请求或者接收数据和信息。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
54.一种基于rosserial的清洁机器人与电脑端的通信方法,该方法包括:
55.步骤s100:对清洁机器人和电脑端建立无线连接;
56.步骤s200:根据清洁机器人和电脑端之间的数据传输速率的要求,调整rosserial_client程序,以扩充其缓存区域;
57.步骤s300:对调整后的所述rosserial_client程序进行交叉编译,并将交叉编译后的所述rosserial_client程序装载在清洁机器人上;
58.步骤s400:控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据;
59.步骤s500:控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示。
60.本实施例所针对的清洁机器人,在测试和运行的过程当中,通过实时传输可视化信息以增强测试效率。在本实施例中,清洁机器人传输的是实时的地图信息,具体的,地图信息通过红外雷达测距仪生成:在每一瞬间,红外雷达测距仪向清洁机器人的四周发射红外测距信号,并接收上述红外测距信号,以确定清洁机器人周围的障碍物距离清洁机器人之间的距离,根据障碍物的距离信息,在世界坐标系中标记地图的可通行区域和障碍物区域,以此获取一帧地图数据,实时的地图信息通过连续的地图帧组成。上述实施例的实现带来大量的数据传输。
61.首先将清洁机器人和上位机之间建立无线连接,在本实施例中,通过wifi协议实现双方之间基于tcp/ip协议的网络传输。
62.rosserial_client是基于rosserial标准的运行在清洁机器人上的通信协议,能够实现清洁机器人这一ros设备,与非ros设备的上位机进行通信,其中rosserial_client程序定义了一个缓存区域,以字符类型存储数据,存放在缓存区域当中的数据,通过socket方式进行清洁机器人和上位机之间的网络传输。而地图帧所对应的数据,在本实施例中是以整形的数据类型存在的,而业务数据就是将地图帧所对应的数据以字符型数据,从而能存储在上述缓存区域之中。通过调整rosserial_client中定义的缓存区域的大小使其能够
适应wifi的传输速率,以传输上述业务数据。
63.将调整后的rosserial_client交叉编译并烧录在清洁机器人上,运行rosserial_client程序以发送数据。该方案能够适应无线传输的通讯需求,调整ros设备,使其能够基于一个更高的速率与其他平台的上位机进行交互。
64.进一步的,所述rosserial_client程序的调整方式具体包括:
65.根据清洁机器人的平台种类,提取rosserial_client程序中相应的代码块,并且修改所述代码块中缓存数据区域的大小;
66.所述交叉编译,具体是根据所述平台种类,通过对应编译器执行在x86或x64平台上的交叉编译,所述交叉编译的机器码,能够在相应的所述平台种类上运行。
67.进一步的,所述业务数据压缩后传输。
68.进一步的,所述步骤控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据,具体包括:
69.步骤s401:控制机器人根据电脑端的平台种类及机器人和电脑端之间的通信链路的种类,通过rosserial_client调用write函数,生成一个传输实例;
70.步骤s402:通过所述传输实例新建一个缓存区域,所述缓存区域的大小与所述通信链路的种类相适应;
71.步骤s403:通过所述传输实例,将压缩后的所述业务数据存储在所述缓存区域当中;
72.步骤s404:通过所述通信链路将所述缓存区域中的数据传输至电脑端。
73.具体在对rosserial_client调整的过程中,根据不同平台,设置多种缓存空间的大小,根据与ros设备进行交互的上位机的平台的种类,在传输过程中,调用传输函数去生成传输的实例,并且在实例中根据平台的种类,选取缓存空间的大小。该方案能够适应不同的传输场景,进行高速率的ros设备与非ros设备之间的通信。
74.进一步的,将压缩后的所述业务数据存储在所述缓存区域当中的步骤,具体为通过socket方式,将用户态的业务数据传输至内核态,并且在内核态下,将所述业务数据存放在所述缓存区当中,使得通信链路能够在内核态下通过通信链路传输所述业务数据。
75.进一步的,所述步骤控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示的步骤具体包括:
76.步骤s501:对所述业务数据进行解压,并将解压后的业务数据存放在字符类型的数据容器当中;
77.步骤s502:通过应用层的通信协议,从所述业务数据中提取可视化的信息并在上位机上显示。
78.具体的,所述电脑端将字符排列数据转化成存在一个字符型vector容器中,根据通信协议的情况,将所述字符排列数据转化成清洁机器人中原始生成的业务数据。具体的,应用层协议通过将上述字符型数据提取,并转换成二进制数据,形成地图帧,实时的在清洁机器人的上位机上显示,以实现清洁机器人运行过程中获取地图数据情况的可视化。
79.进一步的,所述业务数据的压缩,具体是采用滑动窗口法所设计的压缩算法。
80.具体的,所述清洁机器人设置查找缓冲区与先行缓冲区,所述查找缓冲区包含已经编码完成的一部分,所述先行缓冲区包含未编码的一部分,所述先行缓冲区在查找缓冲
区前,并紧邻查找缓冲区,在所述查找缓冲区里找到所有与先行缓冲区第一个字符一样的字符,每找到一个这样的字符,查看后面的字符是不是和先行缓冲区的下一个字符相同,不断进行匹配上去,获得匹配长度。
81.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
82.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
83.进一步参考图3,作为对上述图2所示方法的实现,本技术提供了一种基于rosserial的清洁机器人与电脑端的通信装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
84.一种基于rosserial的清洁机器人与电脑端的通信装置,包括:
85.连接模块100,用于对清洁机器人和电脑端建立无线连接;
86.代码调整模块200,用于根据清洁机器人和电脑端之间的数据传输速率的要求,调整rosserial_client程序,以扩充其缓存区域;
87.代码装载模块300,用于对调整后的所述rosserial_client程序进行交叉编译,并将交叉编译后的所述rosserial_client程序装载在清洁机器人上;
88.数据发送模块400,用于控制所述清洁机器人通过所述编译后的rosserial_client程序发送业务数据;
89.数据接收模块500,用于控制电脑端接收所述业务数据,并且对获取的所述业务数据进行可视化处理和显示。
90.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图4,4为本实施例计算机设备基本结构框图。
91.所述计算机设备6包括通过系统总线相互通信连接存储器61、处理器62、网络接口63。需要指出的是,图中仅示出了具有组件61-63的计算机设备6,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
92.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
93.所述存储器61至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器61可以是所述计算机设备6的内部存储单元,例如该计算机设备6的硬盘或内存。在另一些实施例中,所述存储器61也可以是所述计算机设备6的外部存储设备,例如该计算机设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括其外部存储设备。本实施例中,所述存储器61通常用于存储安装于所述计算机设备6的操作系统和各类应用软件,例如x方法的程序代码等。此外,所述存储器61还可以用于暂时地存储已经输出或者将要输出的各类数据。
94.所述处理器62在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器62通常用于控制所述计算机设备6的总体操作。本实施例中,所述处理器62用于运行所述存储器61中存储的程序代码或者处理数据,例如运行所述一种基于rosserial的清洁机器人与电脑端的通信方法的程序代码。
95.所述网络接口63可包括无线网络接口或有线网络接口,该网络接口63通常用于在所述计算机设备6与其他电子设备之间建立通信连接。
96.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有一种基于rosserial的清洁机器人与电脑端的通信程序,所述一种基于rosserial的清洁机器人与电脑端的通信程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的一种基于rosserial的清洁机器人与电脑端的通信方法的步骤。
97.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
98.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1