CN116431368B - 一种面向自主无人系统的传感器即插即用中间件 - Google Patents
一种面向自主无人系统的传感器即插即用中间件 Download PDFInfo
- Publication number
- CN116431368B CN116431368B CN202310695443.6A CN202310695443A CN116431368B CN 116431368 B CN116431368 B CN 116431368B CN 202310695443 A CN202310695443 A CN 202310695443A CN 116431368 B CN116431368 B CN 116431368B
- Authority
- CN
- China
- Prior art keywords
- sensor
- layer
- plug
- data
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 claims abstract description 23
- 238000001514 detection method Methods 0.000 claims abstract description 5
- 238000005538 encapsulation Methods 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 25
- 230000003068 static effect Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000005315 distribution function Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 230000007246 mechanism Effects 0.000 description 11
- 238000000034 method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种面向自主无人系统的传感器即插即用中间件,包括应用接口层、DDS抽象层、即插即用层、操作系统层、设备接口层和设备硬件层;应用接口层提供用于设备查询、传感器操作和数据分发接口;DDS抽象层基于Fast‑DDS对接口进行二次封装,提供了数据发布和订阅的功能,支持多种传输协议和数据格式;即插即用层用于对各种接口设备进行热插拔检测和管理;操作系统层用于提供底层系统服务和驱动程序;设备接口层用于对设备进行管理和控制,提供了不同的设备接口和通讯协议;设备硬件层为底层支持,用于提供硬件平台。灵活适应不同的传感器设备,支持多种接口和数据格式,实现设备的自动识别和管理,保证了系统的实时性和可靠性。
Description
技术领域
本发明属于自主无人系统应用技术领域,特别是涉及一种面向自主无人系统的传感器即插即用中间件。
背景技术
DDS(Data Distribution Service)是一种分布式消息传递协议,旨在为实时系统提供高性能、可靠、安全的数据通信服务,可以实现多种实时系统的通信。DDS支持异构系统之间的数据交换,以满足各种应用的通信需求,包括机器人、自动化、航空航天、医疗设备等领域。
Fast-DDS是一个开源、高性能、跨平台的DDS实现,由Eclipse IoT项目管理。Fast-DDS采用了许多优化技术,包括零拷贝技术、异步IO等,以实现低延迟、高吞吐量的数据传输,同时提供了多种可靠性机制,包括数据持久化、故障恢复等,以确保数据传输的可靠性。通信中间件是连接不同软件组件或设备之间的一种软件层,它提供了一种高效的数据交换机制,可以使不同组件或设备之间实现实时的数据通信。
自主无人系统是指基于自主决策、自主控制的无人机、无人车、无人船等智能化设备。它是全面提升国家经济社会发展和国防应用智能化水平的基础性战略性技术和产品。在自主无人系统中,需要读取不同种类、不同厂家的传感器数据来进行决策和控制,例如地图、图像、声音、姿态等传感器数据。但是,自主无人系统中存在许多问题,例如异构性、传感器接口兼容性低、传感数据结构不一、通信实时性差等,这些问题给传感器数据的读取、传输和处理带来了很大的挑战。
为了解决上述问题,可以考虑在基于Fast-DDS高效通信的基础上来设计一种传感器的即插即用机制,形成一套一种面向自主无人系统的传感器即插即用中间件。
发明内容
针对以上技术问题,本发明提供一种面向自主无人系统的传感器即插即用中间件。
本发明解决其技术问题采用的技术方案是:
一种面向自主无人系统的传感器即插即用中间件,包括上层软件模块和下层系统模块,上层软件模块包括应用接口层、DDS抽象层和即插即用层,下层系统模块包括操作系统层、设备接口层和设备硬件层;
应用接口层设计了基于C++和python的API接口,用于提供传感器各种操作的接口;
DDS抽象层基于Fast-DDS对API接口进行二次封装,提供了统一的数据发布接口、数据订阅接口、数据写入接口、数据读取接口和Qos质量服务配置接口;
即插即用层用于集成待使用的传感器的驱动软件、维护传感器管理数据结构、对各种接口设备进行热插拔检测和管理,以及对传感器输出的数据格式进行统一;
操作系统层是传感器即插即用中间件的基础支持层,用于提供底层系统服务和通信协议栈;
设备接口层用于提供不同接口类型的传感器的接入功能,充当传感器和操作系统之间的桥梁,处理不同接口类型的传感器和操作系统之间的通信;
设备硬件层为传感器即插即用中间件的底层支持,用于提供硬件平台以支持传感器设备的接入。
优选地,应用接口层的API接口用于给用户提供接口函数,接口函数包括传感器设备查询函数、传感器操作函数和传感器数据分发函数;
传感器设备查询函数用于获取即插即用层提供的设备管理信息;
传感器操作函数用于对传感器进行操作和配置控制指令;
传感器数据分发函数用于将传感器采集到的数据进行发布。
优选地,即插即用层包括设备驱动模块、设备管理模块和数据处理模块,
设备驱动模块用于对不同厂家、不同型号的传感器的驱动软件进行适配,对于业界成熟的传感器设备,直接集成驱动软件进设备驱动模块中;
设备管理模块用于在软件层面维护传感器管理数据结构,同时当检测到传感器插入和拔出时会对应创建或者删除此传感器的信息。
数据处理模块用于将不同厂家、不同型号的传感器输出的数据格式进行统一,以提供标准统一的数据接口。
优选地,设备驱动模块内集成的待使用的传感器的驱动软件,包括传感器厂商提供的原始软件驱动和设备驱动程序员自行编写的驱动程序。
优选地,设备驱动模块中的驱动程序以头文件和静态链接库的形式添加到设备驱动模块中,其中,头文件中包括驱动程序的函数声明、常量定义,静态链接库包括驱动程序的实现代码;在编译时,静态链接库会被链接到设备驱动模块的可执行文件中,以实现对驱动程序的调用。
优选地,设备管理模块包括设备插拔监测单元和统一设备描述单元,
设备管理模块针对不同类型的设备,创建不同的设备插拔监测单元,通过设置不同的过滤器来监测不同类型设备的插拔事件,当有设备插入或拔出时,获取到设备的操作类型,即插入或拔出,再获取到设备节点路径,最后读取设备的属性列表,遍历属性列表获取设备的各种属性;
统一设备描述单元为不同类型的设备提供统一的设备描述信息,包括设备类型、设备名称、设备状态;当监测到设备的插拔事件时,根据设备类型更新设备描述结构体的对应属性。
优选地,为实现统一的设备描述信息,定义设备描述结构体,用来存储设备的属性信息,其中,设备的属性信息包括设备类型、设备名称、设备状态和设备节点路径。
优选地,在传感器接入系统被设备驱动模块识别并由设备管理模块分配统一描述后,由数据处理模块针对不同种类的传感器数据进行统一处理,数据处理模块用于接收来自多个不同类型传感器的数据流,并将数据流中同一类型不同厂商的传感器数据流转换为对应类型的传感器的统一格式后输出。
优选地,不同类型传感器包括相机、激光雷达、IMU。
优选地,对应类型的传感器的统一格式包括对应类型的传感器数据的所有特征。
在基于Fast-DDS高效通信的基础上来设计一种传感器的即插即用机制,形成一套一种面向自主无人系统的传感器即插即用中间件,通过将传感器数据格式统一,使得不同类型的传感器可以共享同一通信中间件;通过Fast-DDS提供的实时数据传输机制,使得不同的设备可以实时地共享传感器数据;通过对传感器驱动的集成和设备的统一描述,使得传感器能够即插即用。可以灵活适应不同的传感器设备,支持多种接口和数据格式,同时实现了设备的自动识别和管理。基于DDS抽象层实现的数据发布和订阅功能可以实现实时数据交换和分发,保证了系统的实时性和可靠性。
附图说明
图1为本发明一实施例中一种面向自主无人系统的传感器即插即用中间件的结构示意图;
图2为本发明一实施例中一种面向自主无人系统的传感器即插即用中间件的用户使用流程示意图;
图3为本发明另一实施例中一种面向自主无人系统的传感器即插即用中间件的结构示意图;
图4为本发明一实施例中设备管理模块软件实现机制示意图;
图5为本发明一实施例中即插即用层各模块之间的调用关系示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
在一个实施例中,如图1所示,一种面向自主无人系统的传感器即插即用中间件,包括上层软件模块和下层系统模块,上层软件模块包括应用接口层、DDS抽象层和即插即用层,下层系统模块包括操作系统层、设备接口层和设备硬件层;
应用接口层设计了基于C++和python的API接口,用于提供传感器各种操作的接口;
DDS抽象层基于Fast-DDS对API接口进行二次封装,提供了统一的数据发布接口、数据订阅接口、数据写入接口、数据读取接口和Qos质量服务配置接口;
即插即用层用于集成待使用的传感器的驱动软件、维护传感器管理数据结构、对各种接口设备进行热插拔检测和管理,以及对传感器输出的数据格式进行统一;
操作系统层是传感器即插即用中间件的基础支持层,用于提供底层系统服务和通信协议栈;
设备接口层用于提供不同接口类型的传感器的接入功能,充当传感器和操作系统之间的桥梁,处理不同接口类型的传感器和操作系统之间的通信;
设备硬件层为传感器即插即用中间件的底层支持,用于提供硬件平台以支持传感器设备的接入。
具体地,上层软件模块包括应用接口层、DDS抽象层和即插即用层,用于提供用户接口和传感器操作控制等功能。下层系统模块包括操作系统层、设备接口层和设备硬件层,用于实现底层设备管理、硬件控制和数据交换。
在该系统中,即插即用层实现了基于udev机制的设备插拔监测,可以对各种接口设备进行热插拔检测和管理。DDS抽象层在Fast-DDS的开源实现基础上进行了封装,实现了数据发布和订阅的功能,支持多种传输协议和数据格式,具体提供了数据发布接口、数据订阅接口、数据写入接口、数据读取接口、Qos质量服务配置接口。提供的软件接口为应用接口层服务,DDS抽象层的接口和功能为应用层提供了方便、可靠的数据传输方式,使应用程序能够更加灵活、高效地处理数据。应用接口层则是用户与系统交互的界面,提供了设备查询、传感器操作和数据分发等接口函数。
设备硬件层、设备接口层和操作系统层为传感器即插即用中间件的运行依赖层,中间件运行在Linux操作系统上,同时要求运行Linux的硬件板子需要提供不同的设备接口来支持不同传感器设备的接入。
设备硬件层是传感器即插即用中间件的底层支持,其需要提供硬件平台以支持传感器设备的接入,常见的硬件平台包括工控机、单片机、嵌入式设备等,这些硬件平台都需要运行Linux操作系统。支持市面上、工业场景中常用的不同厂家、不同种类的传感器。在该层,主要实现了传感器硬件的驱动程序,包括硬件接口的定义、硬件电路的设计和实现等,使得传感器设备能够与设备接口层进行交互,并提供相应的数据输出。
设备接口层是位于操作系统层之下的关键层级,它承担着管理和协调不同接口类型的传感器接入的功能,提供了设备通信接口和驱动程序,支持传感器通过不同接口和通讯协议来进行通信,包括USB、以太网、串口等,以便设备驱动模块和操作系统层能够对设备进行访问和操作。在此层,需要硬件上支持相应的接口和协议,同时需要针对不同的接口和协议实现相应的驱动程序,使得传感器设备能够被上层应用程序所调用和使用。
通信中间件基于开源Linux操作系统构建,因此该中间件只支持运行到Linux操作系统上,所以操作系统层的支持非常重要。操作系统层是传感器即插即用中间件的基础支持层,提供了底层系统服务和驱动程序;在该层,主要实现了一些与操作系统相关的功能,如文件操作、进程管理、线程管理、网络通信等,为上层应用提供底层支持。
这三个层次的支持共同构成了传感器即插即用中间件的基础设施,为中间件的正常运行提供了必要的保障。同时,不同的传感器设备可以通过设备接口层和设备硬件层的支持接入到中间件中,从而实现了不同传感器设备之间的统一管理和控制。
该系统的优点是可以灵活适应不同的传感器设备,支持多种接口和数据格式,同时实现了设备的自动识别和管理。基于DDS抽象层实现的数据发布和订阅功能可以实现实时数据交换和分发,保证了系统的实时性和可靠性。
在一个实施例中,应用接口层的API接口用于给用户提供接口函数,接口函数包括传感器设备查询函数、传感器操作函数和传感器数据分发函数;
传感器设备查询函数用于获取即插即用层提供的设备管理信息;
传感器操作函数用于对传感器进行操作和配置控制指令;
传感器数据分发函数用于将传感器采集到的数据进行发布。
具体地,应用接口层位于软件系统的最高层,主要是提供给用户使用的一些接口函数,其主要职责包括传感器设备查询、传感器操作函数和传感器数据分发函数。
第一类接口函数是传感器设备查询,其目的是为了获取即插即用层提供的设备管理信息,帮助用户更好地管理传感器设备。例如,通过查询接口函数,可以获取到传感器设备的各种属性信息,例如设备类型、设备名称、设备连接状态等。
第二类接口函数是传感器操作函数,其目的是为了对传感器进行操作和配置控制指令。用户可以通过这些函数对传感器设备进行初始化、启动、停止等操作,或者进行传感器的配置和参数设置。
第三类接口函数是传感器数据分发函数,其目的是为了将传感器采集到的数据进行发布。通常情况下,传感器采集到的数据需要及时地传输和共享给其他模块使用。因此,在该层中,用户可以调用DDS抽象层提供的实时数据通信功能,将传感器数据及时地发布到系统中,供其他模块使用。
进一步地,如图2所示,中间件发布方通过实时监测传感器接口,检测传感器的插入或拔出事件。当检测到有传感器插入时,中间件发布方会触发一系列操作。中间件发布方在检测到传感器插入时,会发送控制指令给传感器。这些指令可以用于配置传感器的工作模式、采样频率、数据传输格式等。中间件发布方在传感器插入时会创建数据发布实体,将传感器数据发布到DDS网络中。这样,订阅方可以通过订阅相应的数据主题来接收传感器数据。订阅方在检测到数据发布节点时会创建DDS数据接收实体。该实体用于订阅DDS中的数据主题,以获取传感器数据。
应用接口层主要是为了方便用户使用传感器设备而设计的,通过提供一些简单易用的接口函数,使得用户可以方便地管理和操作传感器设备,并实现传感器数据的分发和共享。
在一个实施例中,如图3所示,即插即用层包括设备驱动模块、设备管理模块和数据处理模块,
设备驱动模块用于对不同厂家、不同型号的传感器的驱动软件进行适配,对于业界成熟的传感器设备,直接集成驱动软件进设备驱动模块中;
设备管理模块用于在软件层面维护传感器管理数据结构,同时当检测到传感器插入和拔出时会对应创建或者删除此传感器的信息。
数据处理模块用于将不同厂家、不同型号的传感器输出的数据格式进行统一,以提供标准统一的数据接口。
在一个实施例中,设备驱动模块内集成的待使用的传感器的驱动软件,包括传感器厂商提供的原始软件驱动和设备驱动程序员自行编写的驱动程序。
在一个实施例中,设备驱动模块中的驱动程序以头文件和静态链接库的形式添加到设备驱动模块中,其中,头文件中包括驱动程序的函数声明、常量定义,静态链接库包括驱动程序的实现代码;在编译时,静态链接库会被链接到设备驱动模块的可执行文件中,以实现对驱动程序的调用。
具体地,设备驱动模块是一种操作系统层的软件模块,用于实现操作系统与硬件设备的交互。该模块集成了需要使用的传感器的驱动程序,包括传感器厂商提供的原始软件驱动和设备驱动程序员自行编写的驱动程序。
设备驱动模块的作用是将不同种类、不同厂家的传感器驱动程序整合到一个模块中,便于上层软件模块调用。设备驱动模块中的驱动程序需要以头文件和静态链接库的形式添加到模块中。头文件中包含了驱动程序的函数声明、常量定义等信息,静态链接库则包含了驱动程序的实现代码。在编译时,静态链接库会被链接到设备驱动模块的可执行文件中,以实现对驱动程序的调用。
对于市面上常用的传感器,在此设备驱动模块中已经实现了驱动集成。
在一个实施例中,设备管理模块包括设备插拔监测单元和统一设备描述单元,
设备管理模块针对不同类型的设备,创建不同的设备插拔监测单元,通过设置不同的过滤器来监测不同类型设备的插拔事件,当有设备插入或拔出时,获取到设备的操作类型,即插入或拔出,再获取到设备节点路径,最后读取设备的属性列表,遍历属性列表获取设备的各种属性;
统一设备描述单元为不同类型的设备提供统一的设备描述信息,包括设备类型、设备名称、设备状态;当监测到设备的插拔事件时,根据设备类型更新设备描述结构体的对应属性。
在一个实施例中,为实现统一的设备描述信息,定义设备描述结构体,用来存储设备的属性信息,其中,设备的属性信息包括设备类型、设备名称、设备状态和设备节点路径。
具体地,设备管理模块是一个重要的软件模块,它负责监测系统中不同类型接口的设备的插拔事件,并且为用户提供统一的设备描述。在Linux下,通过udev机制可以实现设备管理模块的功能。具体来说,设备管理模块包含两个主要部分:设备插拔监测和统一设备描述。
设备插拔监测部分通过udev机制来实现,如图4所示,当系统中有设备插入或拔出时,udev会生成一个udev_device对象,可以通过该对象获取设备的相关信息。设备管理模块针对不同类型的设备,可以创建不同的设备监测器,例如串口设备监测器、USB设备监测器、网络设备监测器等,通过设置不同的过滤器来监测不同类型设备的插拔事件。当有设备插入或拔出时,可以获取到设备的操作类型,即插入或拔出,然后获取到设备节点路径,最后读取设备的属性列表,遍历属性列表可以获取设备的各种属性。
统一设备描述部分负责为不同类型的设备提供统一的设备描述信息,包括设备类型、设备名称、设备状态等。为了实现统一设备描述,定义了一个设备描述结构体,用来存储设备的各种属性,例如设备类型、设备名称、设备状态、设备节点路径等。当监测到设备的插拔事件时,可以根据设备类型来更新设备描述结构体的相关属性。同时,为了方便用户查看设备信息,可以通过用户接口提供设备查询功能,通过查询设备描述结构体来获取设备的相关信息。
设备描述结构体定义如表1所示:
表1 设备描述结构体
在一个实施例中,如图5所示,在传感器接入系统被设备驱动模块识别并由设备管理模块分配统一描述后,由数据处理模块针对不同种类的传感器数据进行统一处理,数据处理模块用于接收来自多个不同类型传感器的数据流,并将数据流中同一类型不同厂商的传感器数据流转换为对应类型的传感器的统一格式后输出。
在一个实施例中,不同类型传感器包括相机、激光雷达、IMU。
在一个实施例中,对应类型的传感器的统一格式包括对应类型的传感器数据的所有特征。
具体地,数据处理模块为一个数据格式转换模块。在传感器接入系统被设备驱动模块识别并由设备管理模块分配统一描述后,由数据处理模块负责针对不同种类的传感器数据进行统一处理,该模块可以接收来自多个不同类型传感器的数据流,并将同一类型不同厂商的传感器数据流转换为一个统一格式后输出,便于后续使用这些数据进行下一步的处理和分析。具体而言,数据处理模块包括以下几个方面:
数据输入:该模块可以接收来自不同类型传感器的数据流,包括相机、激光雷达、IMU等设备。在接受到这些传感器设备的数据输入后,由于每个传感器的数据格式不一致,所以需要对每一类传感器进行统一的格式转换。
数据转换:该模块需要将同类不同厂商传感器的数据格式转换为每类传感器所定义的相应统一格式。这个格式应该包含对应传感器数据的所有特征,例如所有传感器都包括的时间戳、相机包括的图像分辨率与图像大小、激光雷达包括的扫描点的位置、IMU包括的加速度与线速度等。
数据输出:该模块需要将转换后的统一数据格式进行输出,便于后续使用这些数据进行下一步的处理和分析。具体的不同传感器数据输出格式见表2、表3、表4。
表2 相机数据格式
表3 IMU数据格式
表4 激光雷达数据格式
在基于Fast-DDS高效通信的基础上来设计一种传感器的即插即用机制,形成一套一种面向自主无人系统的传感器即插即用中间件。通过将传感器数据格式统一,使得不同类型的传感器可以共享同一通信中间件;通过Fast-DDS提供的实时数据传输机制,使得不同的设备可以实时地共享传感器数据;通过对传感器驱动的集成和设备的统一描述,使得传感器能够即插即用。可以灵活适应不同的传感器设备,支持多种接口和数据格式,同时实现了设备的自动识别和管理。基于DDS抽象层实现的数据发布和订阅功能可以实现实时数据交换和分发,保证了系统的实时性和可靠性。
以上对本发明所提供的一种面向自主无人系统的传感器即插即用中间件进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种面向自主无人系统的传感器即插即用系统,其特征在于,包括上层软件模块和下层系统模块,所述上层软件模块包括应用接口层、DDS抽象层和即插即用层,所述下层系统模块包括操作系统层、设备接口层和设备硬件层;
所述应用接口层设计了基于C++和python的API接口,用于提供传感器各种操作的接口;
所述DDS抽象层基于Fast-DDS对所述API接口进行二次封装,提供了统一的数据发布接口、数据订阅接口、数据写入接口、数据读取接口和Qos质量服务配置接口;
所述即插即用层用于集成待使用的传感器的驱动软件、维护传感器管理数据结构、对各种接口设备进行热插拔检测和管理,以及对传感器输出的数据格式进行统一;
所述操作系统层是传感器即插即用中间件的基础支持层,用于提供底层系统服务和通信协议栈;
所述设备接口层用于提供不同接口类型的传感器的接入功能,充当传感器和操作系统之间的桥梁,处理不同接口类型的传感器和操作系统之间的通信;
所述设备硬件层为传感器即插即用中间件的底层支持,用于提供硬件平台以支持传感器设备的接入;
所述即插即用层包括设备驱动模块、设备管理模块和数据处理模块,
所述设备驱动模块用于对不同厂家、不同型号的传感器的驱动软件进行适配,对于业界成熟的传感器设备,直接集成驱动软件进所述设备驱动模块中;
所述设备管理模块用于在软件层面维护传感器管理数据结构,同时当检测到传感器插入和拔出时会对应创建或者删除此传感器的信息;
所述数据处理模块用于将不同厂家、不同型号的传感器输出的数据格式进行统一,以提供标准统一的数据接口;
所述设备管理模块包括设备插拔监测单元和统一设备描述单元,
所述设备管理模块针对不同类型的设备,创建不同的设备插拔监测单元,通过设置不同的过滤器来监测不同类型设备的插拔事件,当有设备插入或拔出时,获取到设备的操作类型,即插入或拔出,再获取到设备节点路径,最后读取设备的属性列表,遍历属性列表获取设备的各种属性;
所述统一设备描述单元为不同类型的设备提供统一的设备描述信息,包括设备类型、设备名称、设备状态;当监测到设备的插拔事件时,根据设备类型更新设备描述结构体的对应属性。
2.根据权利要求1所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,所述应用接口层的API接口用于给用户提供接口函数,所述接口函数包括传感器设备查询函数、传感器操作函数和传感器数据分发函数;
所述传感器设备查询函数用于获取即插即用层提供的设备管理信息;
所述传感器操作函数用于对传感器进行操作和配置控制指令;
所述传感器数据分发函数用于将传感器采集到的数据进行发布。
3.根据权利要求2所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,所述设备驱动模块内集成的待使用的传感器的驱动软件,包括传感器厂商提供的原始软件驱动和设备驱动程序员自行编写的驱动程序。
4.根据权利要求3所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,所述设备驱动模块中的驱动程序以头文件和静态链接库的形式添加到所述设备驱动模块中,其中,所述头文件中包括驱动程序的函数声明、常量定义,所述静态链接库包括驱动程序的实现代码;在编译时,所述静态链接库会被链接到所述设备驱动模块的可执行文件中,以实现对驱动程序的调用。
5.根据权利要求1所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,为实现统一的设备描述信息,定义设备描述结构体,用来存储设备的属性信息,其中,所述设备的属性信息包括设备类型、设备名称、设备状态和设备节点路径。
6.根据权利要求5所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,在传感器接入系统被所述设备驱动模块识别并由所述设备管理模块分配统一描述后,由所述数据处理模块针对不同种类的传感器数据进行统一处理,所述数据处理模块用于接收来自多个不同类型传感器的数据流,并将数据流中同一类型不同厂商的传感器数据流转换为对应类型的传感器的统一格式后输出。
7.根据权利要求6所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,所述不同类型传感器包括相机、激光雷达、IMU。
8.根据权利要求7所述的一种面向自主无人系统的传感器即插即用系统,其特征在于,所述对应类型的传感器的统一格式包括对应类型的传感器数据的所有特征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310695443.6A CN116431368B (zh) | 2023-06-13 | 2023-06-13 | 一种面向自主无人系统的传感器即插即用中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310695443.6A CN116431368B (zh) | 2023-06-13 | 2023-06-13 | 一种面向自主无人系统的传感器即插即用中间件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431368A CN116431368A (zh) | 2023-07-14 |
CN116431368B true CN116431368B (zh) | 2023-09-22 |
Family
ID=87087630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310695443.6A Active CN116431368B (zh) | 2023-06-13 | 2023-06-13 | 一种面向自主无人系统的传感器即插即用中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118605356A (zh) * | 2024-08-07 | 2024-09-06 | 成都赛力斯科技有限公司 | 接口配置构建方法、系统、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463888B1 (en) * | 2010-12-06 | 2013-06-11 | The Boeing Company | Methods and systems for managing automated identification technologies information |
KR20150083938A (ko) * | 2014-01-10 | 2015-07-21 | 국방과학연구소 | Dds-db 연동 시스템 |
WO2017006223A1 (en) * | 2015-07-08 | 2017-01-12 | Nivi Group S.P.A. | Graphic engine for creating and executing applications with multisensory interfaces |
EP3656512A1 (en) * | 2018-11-21 | 2020-05-27 | Erle Robotics, S.L. | Device, system and method for plug-and-play integration of components in robotic systems |
CN112101589A (zh) * | 2020-09-07 | 2020-12-18 | 中国人民解放军海军工程大学 | 一种基于云计算的船舶远程技术保障系统 |
CN112600867A (zh) * | 2020-09-30 | 2021-04-02 | 南京审计大学 | 一种用于隐蔽工程联网监测审计的信息处理集成系统 |
CN115150454A (zh) * | 2022-06-30 | 2022-10-04 | 电子科技大学 | 一种跨操作系统的中心化发布订阅通信中间件 |
CN116132511A (zh) * | 2023-02-15 | 2023-05-16 | 中国航空无线电电子研究所 | 基于代理的传感器设备跨总线跨协议接入dds网络系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7367028B2 (en) * | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
US20080270066A1 (en) * | 2007-04-27 | 2008-10-30 | Honeywell International, Inc. | Sensor middleware systems and agents with sensor middleware systems |
-
2023
- 2023-06-13 CN CN202310695443.6A patent/CN116431368B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463888B1 (en) * | 2010-12-06 | 2013-06-11 | The Boeing Company | Methods and systems for managing automated identification technologies information |
KR20150083938A (ko) * | 2014-01-10 | 2015-07-21 | 국방과학연구소 | Dds-db 연동 시스템 |
WO2017006223A1 (en) * | 2015-07-08 | 2017-01-12 | Nivi Group S.P.A. | Graphic engine for creating and executing applications with multisensory interfaces |
EP3656512A1 (en) * | 2018-11-21 | 2020-05-27 | Erle Robotics, S.L. | Device, system and method for plug-and-play integration of components in robotic systems |
CN112101589A (zh) * | 2020-09-07 | 2020-12-18 | 中国人民解放军海军工程大学 | 一种基于云计算的船舶远程技术保障系统 |
CN112600867A (zh) * | 2020-09-30 | 2021-04-02 | 南京审计大学 | 一种用于隐蔽工程联网监测审计的信息处理集成系统 |
CN115150454A (zh) * | 2022-06-30 | 2022-10-04 | 电子科技大学 | 一种跨操作系统的中心化发布订阅通信中间件 |
CN116132511A (zh) * | 2023-02-15 | 2023-05-16 | 中国航空无线电电子研究所 | 基于代理的传感器设备跨总线跨协议接入dds网络系统 |
Non-Patent Citations (1)
Title |
---|
无人飞行器分布式控制系统集成新技术;徐锦法;系统仿真学报(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116431368A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6016515A (en) | Method, computer program product, and data structure for validating creation of and routing messages to file object | |
US9823907B2 (en) | Extensible device object model | |
EP0937285B1 (en) | Method for constructing software components and systems as assemblies of independent parts | |
US6205492B1 (en) | Method and computer program product for interconnecting software drivers in kernel mode | |
US7992132B2 (en) | Server side application integration framework | |
US7752598B2 (en) | Generating executable objects implementing methods for an information model | |
CN116431368B (zh) | 一种面向自主无人系统的传感器即插即用中间件 | |
CN106878163A (zh) | 一种多数据协议转换的物联网智能网关 | |
EP1619581A1 (en) | Method and computer program product for reducing inter-buffer data transfers between separate processing components | |
WO2002087136A2 (en) | Adaptive multi-protocol communications system | |
GB2415806A (en) | A dynamic software integration architecture | |
KR100880536B1 (ko) | 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템 | |
CA2606361A1 (en) | Serializable objects and a database thereof | |
US8339514B2 (en) | Modular flexible software architecture for TV | |
CN115208718B (zh) | 设备侧智能网关及其系统、和嵌入式设备适配控制方法 | |
CN116389552A (zh) | 一种基于发布订阅模型的异构数据传输系统 | |
CN116760872A (zh) | 设备控制系统、方法、装置、计算机设备及存储介质 | |
CN117082017B (zh) | 一种白盒交换机扩展卡管理的方法及装置 | |
CN114296809B (zh) | 一种基于操作系统的对象模型构建方法及其系统调用接口 | |
TWI812920B (zh) | 自動化設備控制系統、自動化設備控制系統之系統架構及其運作方法 | |
Trevathan et al. | A unique solution for designing low-Cost, heterogeneous sensor networks using a middleware integration platform | |
CN117851317A (zh) | 基于face的抽象平台和io设备模型实现方法 | |
Miles | Analysis and Modelling of the Windows mLAN Driver | |
CN117234498A (zh) | 一种嵌入式软件组件的设计方法、系统及设备 | |
CN117201519A (zh) | 业务系统中的消息传输方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |