一种应用于ROS测试仪器控制系统

文档序号:37647585发布日期:2024-04-18 20:21阅读:11来源:国知局
一种应用于ROS测试仪器控制系统

本发明属于仪器科学与,具体涉及一种应用于ros测试仪器控制系统。


背景技术:

1、传统的测试仪器控制系统往往采用一体化设计,由于各组件之间紧密耦合,导致系统的可扩展性和独立性受限。同时,由于测试仪器和控制端的紧密耦合,增加了系统的复杂性和开发的难度。在大规模测试和数据处理方面,传统方式下的控制软件难以满足要求。

2、近年来,ros作为一种开源的机器人操作系统框架,成为测试仪器领域的新兴研究方向。ros以其松散耦合、分布式节点化以及消息通信的特性,为测试仪器控制带来了新的思路和解决方案。然而,在目前的ros中,测试仪器的接入与集成仍然存在一些挑战。由于测试仪器通常具有不同的硬件接口和通信协议,直接将测试仪器作为ros节点接入系统是困难的。此外,测试仪器的连接状态显示、操作指令传递和测量结果回读也需要特殊的处理。


技术实现思路

1、针对现有测试仪器在ros中集成和使用的不足之处,本发明公开一种应用于ros的测试仪器控制系统,通过借鉴ros架构的设计思想,对仪器控制系统进行分布式节点化设计,构建更加灵活、动态的仪器控制生态,推进仪器测控领域的智能化实践应用。

2、一种应用于ros的测试仪器控制系统,其控制系统主要架构包括:

3、(1)控制端:建立多个节点,用于:①接收来自界面端节点的控制指令,并将这些指令解析为测试仪器可识别的格式;②向测试仪器下发控制指令;③负责接收仪器测量数据,并通过ros通信框架将数据传输给界面端的节点;

4、(2)界面端:建立交互界面和多个节点,用于:①人机交互,提供友好的用户界面;②接收用户输入的控制指令,并将这些指令通过ros通信框架传输给控制端节点;③接收的控制端传送的测量数据;④对测量数据显示或进一步处理,以便用户能够实时监视和分析仪器测量结果;

5、(3)控制计算机:执行复杂的算法实现显示、控制功能;同时,作为ros主、从机,负责协调各个节点之间的通信和数据交换,确保传感器和执行器等组件之间的协调和同步。

6、作为优选,控制计算机可基于ubuntu18.04系统ros melodic架构下利用qt 5.9完成控制端、界面端的开发部署;

7、一种应用于ros的测试仪器控制系统,可在多台计算机组网融合并行运行,以提高系统的性能和可扩展性:多个控制端、界面端的节点可以同时工作,协同完成测试仪器的控制和数据处理任务,通过利用多台计算机的计算资源和通信能力,可以有效地提高系统的吞吐量和响应速度,满足高要求的实时应用场景。

8、进一步,所述组网融合,是通过设置ros的主机和从机来实现的,具体步骤为:

9、(1)选取运行界面端的计算机为主机,运行控制端的计算机为从机,将两台计算机置于同一局域网中;

10、(2)主机和从机分别修改/etc/hosts,增加双方的ip地址和主机名;

11、(3)设置从机的ros_hostname为从机ip,ros_master_uri为主机ip。

12、一种应用于ros的测试仪器控制系统,可通过ros发布-订阅式通信框架实现控制端的节点和界面端的节点之间的数据传输和交互,它基于发布者-订阅者模型,支持异步、分布式的通信方式,这种灵活的通信机制使得控制端和界面端可以独立开发和部署,并能够解耦和扩展系统的功能。

13、一种应用于ros的测试仪器控制系统,可按照以下步骤实现控制:

14、s1.仪器连接;

15、s2.分布式指令下发;

16、s3.分布式数据回传;

17、s4.关闭与断开。

18、进一步,步骤s1所述的仪器连接,是指控制端的节点实现仪器连接,并向界面端的节点发送连接状态;界面端的节点接收连接状态后,并在交互界面实时连接状态显示;具体实现方法为:

19、s11.将运行控制端节点的控制计算机与仪器置于同一局域网中,保证可以ping通;

20、s12.启动界面端、控制端,随之自启动交互界面及各节点;

21、s13.控制端下发仪器连接指令,并建立发布节点sta_publisher,发布仪器连接状态话题sta;根据仪器连接状态回执,sta_publisher按照1hz频率发布仪器连接状态“1”或“0”,数据格式为std_msg::string;

22、s14.界面端建立接收节点sta_subscriber,用于订阅话题sta,并在交互界面显示即时连接状态。

23、进一步,步骤s14所述界面端建立的接收节点sta_subscriber,与界面端的交互界面分属两个独立线程,从而做到话题数据的订阅不会造成交互界面事件循环的阻塞,作为优选,可新增一个支线程类,名为qsubnode,继承于qthread;此外,由于订阅的数据需从ros库回调函数(callback)中取出,但该回调函数属于游离于qsubnode类外的静态函数,无法直接与交互界面对象连接,因此需首先将数据通过信号槽发送给支线程qsubnode中的普通成员函数,再由普通成员函数通过信号槽发送给交互界面对象的槽函数,用于实时显示。

24、进一步,步骤s2所述分布式指令下发,可按照如下方法实现:

25、s21.界面端建立指令发布节点cmd_publisher,发布话题cmd;控制端建立指令接收节点cmd_subscriber,订阅话题cmd;

26、s22.操作界面端控件来触发指令发布:cmd_publisher发布指令“read data”, 数据格式为std_msg::string;

27、s23.控制端节点cmd_subscriber收到指令“read data”,转换为仪器可识别的指令(如scpi指令)并下发;

28、s24.指令下发后仪器只做单次响应,若要实现连续测量,需按照一定的频率连续下发。

29、进一步,步骤s3所述分布式数据回传,可按照如下方法实现:

30、s31.控制端建立dat_publisher节点,将仪器测量得到的二维离散数据通过话题dat发布,格式为geometry_msgs::point;

31、s32.界面端的dat_subscriber节点订阅到数据后,将数据交给界面主线程,完成展示;

32、s33.若控制端dat_publisher节点是按照一定频率发布的数据,则界面端dat_subscriber节点接收数据时需将节点回调函数监听频率设为一致,即ros::rate loop_rate()。

33、进一步,步骤s4所述仪器断开,是指交互界面关闭后,软件需再完成以下操作:

34、s41.界面端cmd_publisher节点发布指令“disconnect”;

35、s42.控制端接收后,下发指令,断开仪器;

36、s43.关闭控制端、界面端的各节点。

37、本发明提出了一种应用于ros的测试仪器控制系统。通过ros话题的传递机制,界面端可以通过发布相应的操作指令,如启动测量、设置参数等,而控制端则接收这些指令并将其下发给仪器进行执行,同时还负责回读仪器的测量结果,并通过ros话题将结果传递给界面端进行实时显示。通过采用上述测试仪器控制方法,我们能够使得测试仪器在ros中得到更加灵活和可扩展的控制,并可以与其他ros节点进行数据交互,这对于测试仪器的开发和应用具有重要意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1