一种支持多种硬件接口的机器人开发板ROS通讯系统技术方案

技术编号:27581505 阅读:18 留言:0更新日期:2021-03-09 22:36
本发明专利技术公开了一种支持多种硬件接口的机器人开发板ROS通讯系统,包括虚拟网络中间件和虚拟适配器;所述虚拟网络中间件用于将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原生ROS通讯;所述虚拟适配器对接收到的通讯数据进行识别,如果是ROS数据,将原本的网路线路调用嫁接到相应线路编号的虚拟线路上,采用对应的硬件接口本地回环接收到的通讯数据至共享内存,如果不是ROS数据,按照该硬件接口的正常功能传输至外部程序。本发明专利技术能够根据嵌入式开发板的接口设计和使用情况灵活配置任意接口用于ROS通讯,极大地方便了低成本和低功耗ROS开发板的设计,同时也有利于开发板的小型化。于开发板的小型化。于开发板的小型化。

【技术实现步骤摘要】
一种支持多种硬件接口的机器人开发板ROS通讯系统


[0001]本专利技术涉及ROS通讯
,具体而言涉及一种支持多种硬件接口的机器人开发板ROS通讯系统。

技术介绍

[0002]ROS机器人操作系统(Robot Operating System)是当前主流的开源机器人软件开发架构,其本质是通讯机制、开发工具、应用功能和生态系统的集合体。ROS通讯只能使用以太网和WIFI硬件接口,阻碍了机器人开发板小型化、低功耗化和降低成本的发展方向。
[0003]在机器人的硬件设计中,嵌入式开发板集成的芯片和硬件接口数量影响了它的大小和成本。一方面集成芯片和硬件接口越多的板子造价越高、体积增大。另一方面,使用WIFI用于通讯,加大了机器人的能耗,减少了机器人电池的工作时长。
[0004]因此,亟需一种通讯系统,能够解决原生ROS通讯支持硬件接口少的问题,允许ROS使用常见的硬件接口进行通讯,如USB2.0、USB3.0、OTG、蓝牙、串口、以太网、WIFI等。

技术实现思路

[0005]本专利技术针对现有技术中的不足,提供一种支持多种硬件接口的机器人开发板ROS通讯系统,能够在不需要额外的硬件支持和不需要对ROS做任何修改的条件下,通过在软件层面上的中间件设计和通讯信息编码,支持原生ROS使用USB2.0、USB3.0、OTG、蓝牙、串口、以太网、WIFI硬件接口进行通讯,同时不影响原接口的正常功能,从而可以根据嵌入式开发板的接口设计和使用情况灵活配置任意接口用于ROS通讯,极大地方便了低成本和低功耗ROS开发板的设计,同时也有利于开发板的小型化。
[0006]为实现上述目的,本专利技术采用以下技术方案:
[0007]一种支持多种硬件接口的机器人开发板ROS通讯系统,所述ROS通讯系统包括虚拟网络中间件和虚拟适配器;
[0008]所述虚拟网络中间件用于将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原生ROS通讯;
[0009]所述虚拟适配器对接收到的通讯数据进行识别,如果是ROS数据,将原本的网路线路调用嫁接到相应线路编号的虚拟线路上,采用对应的硬件接口本地回环接收到的通讯数据至共享内存,如果不是ROS数据,按照该硬件接口的正常功能传输至外部程序。
[0010]为优化上述技术方案,采取的具体措施还包括:
[0011]进一步地,所述ROS通讯系统还包括内部处理模块;
[0012]所述内部处理模块提取共享内存中的ROS数据,自动添加到ROS队列尾部,供ROS程序调用。
[0013]进一步地,所述虚拟适配器对通讯数据进行识别的过程包括以下步骤:
[0014]S01,接收到的通讯数据,通过HTTP使用统一资源标识符判断源数据是否满足HTTP协议,如果满足,进入步骤S02,否则,进入步骤S03;
[0015]S02,判断数据是否符合XML封装,如果符合,判定接收到的通讯数据满足ROS通讯的XML-RPC协议,否则,进入步骤S03;
[0016]S03,判定接收到的通讯数据为非ROS数据。
[0017]进一步地,所述虚拟网络中间件包括基础驱动生成模块和自定义虚拟接口生成模块;
[0018]所述基础驱动模块用于生成基础驱动程序;所述自定义虚拟模块用于根据开发板的功能部署图确认虚拟对象的线路编号,并根据确认结果将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原生ROS通讯。
[0019]进一步地,所述基础驱动模块的工作流程包括以下步骤:
[0020]S11,确认芯片规格,获取对应的gcc编译器;
[0021]S12,根据硬件接口的用途,选择电源芯片,并将该电源芯片连接到处理器上;
[0022]S13,编写对应操作系统的dts节点与驱动,编写电源适配逻辑驱动;
[0023]S14,根据CPU架构编译Linux内核,生成映像文件、模块文件。
[0024]进一步地,所述自定义虚拟模块的工作流程包括以下步骤:
[0025]S21,确认开发板的功能部署图,确认虚拟网络适配器的线路编号;
[0026]S22,编写每个线路对应的硬件接口的自定义设备虚拟模块,将原本的线路调用嫁接到虚拟线路上;
[0027]S23,自动分配或设定每个线路自身的虚拟ip,并将虚拟接口的对象设备ip设为自己的网关;
[0028]S24,预留桥接ROS的接口。
[0029]进一步地,所述虚拟适配器的加载流程包括以下步骤:
[0030]S31,通过专用的烧写连接线和烧写电路,将生成的虚拟适配器烧写到处理器中;
[0031]S32,向linux内核加载生成的虚拟适配器模块文件;
[0032]S33,通过命令行启动虚拟适配器;
[0033]S34,通过修改host,将ROS的数据包桥接到虚拟适配器。
[0034]S35,设置复合ROS规格的转发规则、转发地址和转发端口。
[0035]S36,启动ROS,开始传输数据。
[0036]进一步地,所述不同类型的硬件接口包括USB接口、OTG接口、蓝牙接口、串口接口、以太网接口和WIFI接口。
[0037]本专利技术的有益效果是:
[0038](1)本专利技术实现了在嵌入式开发板上利用不同硬件接口(如USB-otg等)支持ROS通讯的功能,本专利技术所设计的通讯系统成功解决了ROS通讯支持硬件接口少的缺点。
[0039](2)本专利技术可利用现有开发板的硬件接口,无需对开发板的硬件进行改动。
[0040](3)本专利技术摆脱了对开发板生产厂商的依赖,无需生产厂商提供额外软件功能模块。
[0041](4)本专利技术降低了开发板的成本,减少了开发板的尺寸。
[0042](5)本专利技术节省了ROS WIFI通讯造成的能耗。
[0043](6)本专利技术支持USB3.0硬件接口,提供了更高的每秒5Gb传输速度。
附图说明
[0044]图1是本专利技术的支持多种硬件接口的机器人开发板ROS通讯系统的结构示意图。
[0045]图2是本专利技术的模块加载整合流程图。
具体实施方式
[0046]现在结合附图对本专利技术作进一步详细的说明。
[0047]需要注意的是,专利技术中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本专利技术可实施的范围,其相对关系的改变或调整,在无实质变更
技术实现思路
下,当亦视为本专利技术可实施的范畴。
[0048]结合图1,本专利技术提及一种支持多种硬件接口的机器人开发板ROS通讯系统,所述ROS通讯系统包括虚拟网络中间件和虚拟适配器。
[0049]所述虚拟网络中间件用于将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原生ROS通讯。
[0050]所述虚拟适配器对接收到的通讯数据进行识别,如果是ROS数据,将原本的网路线路调用嫁接到相应线路编号的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多种硬件接口的机器人开发板ROS通讯系统,其特征在于,所述ROS通讯系统包括虚拟网络中间件和虚拟适配器;所述虚拟网络中间件用于将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原生ROS通讯;所述虚拟适配器对接收到的通讯数据进行识别,如果是ROS数据,将原本的网路线路调用嫁接到相应线路编号的虚拟线路上,采用对应的硬件接口本地回环接收到的通讯数据至共享内存,如果不是ROS数据,按照该硬件接口的正常功能传输至外部程序。2.根据权利要求1所述的支持多种硬件接口的机器人开发板ROS通讯系统,其特征在于,所述ROS通讯系统还包括内部处理模块;所述内部处理模块提取共享内存中的ROS数据,自动添加到ROS队列尾部,供ROS程序调用。3.根据权利要求1所述的支持多种硬件接口的机器人开发板ROS通讯系统,其特征在于,所述虚拟适配器对通讯数据进行识别的过程包括以下步骤:S01,接收到的通讯数据,通过HTTP使用统一资源标识符判断源数据是否满足HTTP协议,如果满足,进入步骤S02,否则,进入步骤S03;S02,判断数据是否符合XML封装,如果符合,判定接收到的通讯数据满足ROS通讯的XML-RPC协议,否则,进入步骤S03;S03,判定接收到的通讯数据为非ROS数据。4.根据权利要求1所述的支持多种硬件接口的机器人开发板ROS通讯系统,其特征在于,所述虚拟网络中间件包括基础驱动生成模块和自定义虚拟接口生成模块;所述基础驱动模块用于生成基础驱动程序;所述自定义虚拟模块用于根据开发板的功能部署图确认虚拟对象的线路编号,并根据确认结果将对应线路的不同类型的硬件接口虚拟成网络接口,通过虚拟IP支持原...

【专利技术属性】
技术研发人员:张展华硕南罗云翔邸慧军徐志
申请(专利权)人:中科院软件研究所南京软件技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1