仿真测试移动机器人的装置的制作方法

文档序号:29715296发布日期:2022-04-16 18:30阅读:110来源:国知局
仿真测试移动机器人的装置的制作方法

1.本技术涉及移动机器人技术领域,特别涉及仿真测试移动机器人的装置。


背景技术:

2.移动机器人越来越多地应用到各领域中。在移动机器人研发过程中,需要对移动机器人进行业务逻辑等测试。
3.然而,由于移动机器人车型较多,且同一车型的功能也较多。不同车型的不同功能(例如agv行走功能、agv执行机构动作功能、agv集群规划导航功能等)的开发可能还涉及到不同软件开发人员。因此,在对移动机器人实体进行测试时,需要协调多个实体车型才能保证调试进度,加大了项目开发成本,同时还存在部分车型产能有限,不一定会有样车调试等问题。简言之,在利用移动机器人进行测试时,测试方便性有待提高。


技术实现要素:

4.为此,本技术提出了仿真测试移动机器人的方案,能够对移动机器人进行仿真测试,有助于提高测试方便性。
5.根据本技术一个方面,提供一种仿真测试移动机器人的装置,包括:
6.应用单元,用于执行与移动机器人相同的业务操作;
7.接口单元,用于控制所述应用单元与所述仿真单元之间的数据交互;
8.仿真单元,包括:
9.硬件模拟模块,模拟所述移动机器人中的硬件组件的运行,生成对所述硬件组件的仿真数据;
10.仿真驱动模块,通过所述接口单元向所述应用单元返回所述硬件模拟模块生成的所述仿真数据。
11.在一些实施例中,所述装置的硬件与所述移动机器人中的控制器相同,所述应用单元复用与所述移动机器人相同的业务软件,所述接口单元复用与所述移动机器人相同的接口抽象;所述仿真驱动模块用于从所述接口单元获取所述应用单元的指令,并根据所述指令驱动所述硬件模拟模块运行。
12.在一些实施例中,所述接口单元,还用于:
13.在所述装置启动时判断驱动类型,所述驱动类型的类型范围包括与所述硬件模拟模块对应的类型和与所述移动机器人中的所述硬件组件对应的类型;
14.在确定所述驱动类型对应所述硬件模拟模块时,对所述仿真驱动模块进行注册,以便所述应用单元与所述仿真单元进行数据交互。
15.在一些实施例中,所述硬件模拟模块包括下述中至少一种:电机仿真模块、电池仿真模块、按钮仿真模块和传感器仿真模块,所述按钮仿真模块用于模拟下述中至少一种:急停按钮、碰撞条、启动按钮、手自动按钮和复位按钮;所述仿真驱动模块包括下述中至少一种:能源仿真驱动、按钮仿真驱动、传感器仿真驱动、举升仿真驱动、转盘仿真驱动和行走仿
真驱动。
16.在一些实施例中,所述电机仿真模块包括用于模拟举升机构的第一电机子模块和用于模拟转盘机构的第二电机子模块;
17.所述应用单元基于机构动作测试用例,通过所述接口单元向所述举升仿真驱动发送第一动作指令和/或向所述转盘仿真驱动发送第二动作指令,所述机构动作测试用例用于指示举升机构的动作和/或转盘机构的动作;
18.所述举升仿真驱动根据所述第一动作指令驱动所述第一电机子模块,使得第一电机子模块模拟所述举升机构的运行并生成第一仿真数据;和/或所述转盘仿真驱动根据所述第二动作指令驱动所述第二电机子模块,使得所述第二电机子模块模拟所述转盘机构的运行并生成第二仿真数据;
19.所述举升仿真驱动将举升仿真数据传输到所述应用单元,所述举升仿真数据包括:所述第一仿真数据和/或所述第二仿真数据。
20.在一些实施例中,所述电机仿真模块包括模拟行走机构的第三电机子模块,所述第三电机子模块用于模拟一个或多个用于行走的电机;
21.所述应用单元基于行走测试用例,通过所述接口单元向所述行走仿真驱动发送行走指令,所述行走测试用例用于指示所述移动机器人的自主路线规划,或者机器人控制系统发出的集群路径规划;
22.所述行走仿真驱动根据所述行走指令驱动所述第三电机子模块进行行走仿真,并将所述第三电机子模块生成的行走仿真数据传输到所述应用单元。
23.在一些实施例中,所述传感器仿真模块包括激光器仿真模块;
24.所述激光器仿真模块用于:
25.获取来自所述第三电机子模块的行走信息,所述行走信息包括模拟的行走机构在目标场景中的初始位置、速度、加速度和所述移动机器人的形状尺寸;
26.根据所述行走信息,生成所述移动机器人在所述目标场景中的位姿信息;
27.根据所述位姿信息生成激光仿真数据,所述激光仿真数据用于模拟当所述移动机器人处于所述位姿信息对应的位姿时周围场景的点云数据;
28.通过所述接口单元向所述应用单元返回所述激光仿真数据,以便所述应用单元根据所述激光仿真数据对所述移动机器人的自主定位进行模拟测试。
29.在一些实施例中,所述应用单元还用于基于电池测试用例,通过所述接口单元向所述能源仿真驱动发送能耗业务指令,所述电池测试用例包括:充电业务逻辑测试指示;
30.所述能源仿真驱动根据所述能耗业务指令驱动所述电池仿真模块进行电池性能仿真,并将所述电池仿真模块的性能仿真数据传输到所述应用单元。
31.在一些实施例中,所述传感器仿真模块包括激光器仿真模块;所述激光器仿真模块中存储有障碍分布模拟数据,所述障碍分布模拟数据用于描述障碍物的初始位姿、移动速度、加速度和形状尺寸;
32.所述激光器仿真模块用于:
33.根据所述障碍分布模拟数据,生成所述障碍物在目标场景中的位姿信息;
34.根据所述位姿信息生成障碍仿真数据,所述障碍仿真数据用于模拟当所述障碍物处于所述位姿信息对应的位姿时周围场景的点云数据;
35.通过所述接口单元向所述应用单元返回所述障碍仿真数据,以便所述应用单元根据所述障碍仿真数据对所述移动机器人的避障功能进行模拟测试。
36.在一些实施例中,所述障碍分布模拟数据为所述移动机器人的激光器的障碍探测结果,所述障碍探测结果用于记录与所述移动机器人探测到的障碍物对应的初始位姿、移动速度、加速度和形状尺寸;或者
37.所述障碍模拟数据被配置为障碍分布规划数据,所述障碍分布规划数据为设定的障碍物的初始位姿、移动速度、加速度和形状尺寸。
38.在一些实施例中,所述仿真单元进一步包括:异常仿真管理单元,用于:
39.与客户端进行通信;
40.在接收到来自所述客户端的行走异常事件的指令时,向所述电机仿真模块发送所述行走异常事件的触发指令,所述电机仿真模块生成行走异常事件,并向所述应用单元发送所述行走异常事件;所述行走异常事件包括急停信号和电机异常中至少一种;
41.在接收到来自所述客户端的对举升异常事件的触发指令时,向所述电机仿真模块发送对举升异常事件的触发指令,所述电机仿真模块生成举升异常事件并向所述应用单元发送举升异常事件;所述举升异常事件包括下述中至少一种:电机堵转、电机编码器异常、电机编码器失联、举升机构检测传感器异常、举升机构运行超时、举升机构到位脱落、举升机构急停触发制动;
42.在接收到来自所述客户端的对转盘异常事件的触发指令时,向所述电机仿真模块发送对转盘异常事件的触发指令,所述电机仿真模块生成转盘异常事件并向所述应用单元发送转盘异常事件;所述转盘异常事件包括下述中至少一种:电机堵转、电机编码器异常、电机编码器失联、转盘机构检测传感器异常、转盘机构运行超时、转盘机构到位脱落、转盘机构急停触发制动;
43.在接收到来自所述客户端的按钮触发指令时,向所述按钮仿真模块发送按钮触发指令,所述按钮仿真模块生成按钮事件并向所述应用单元发送所述按钮事件,所述按钮事件包括下述中至少一种:急停按钮触发信号、触发碰撞条信号、启动按钮触发信号、手自动按钮切换信号、复位按钮触发信号;
44.在接收到来自所述客户端的能源状态异常的触发指令时,触发所述能源仿真驱动生成能源状态异常事件,所述能源仿真驱动向所述应用单元发送所述能源状态异常事件;所述能源状态异常事件包括:电池异常和充电机异常中至少一种。
45.综上,本技术实施例的仿真测试方案可以与移动机器人实体采用相同的业务逻辑程序,且无需针对仿真单元额外调整业务代码,可以与移动机器人实体采用相同的应用层软件(即应用单元)以及机器人控制系统,从而提高了测试方便性。另外,本技术在对应用层软件调整后无需调整仿真器代码(即仿真单元的代码),而可以进行相关业务逻辑的功能逻辑测试,进一步提高测试方便性。本技术实施例可保证应用层以及机器人控制系统的所有代码都与移动机器人实体保持一致,从而可以在移动机器人实体资源有限或者不存在的情况下方便地进行应用层及机器人控制系统的功能逻辑的仿真测试。
附图说明
46.图1示出了移动机器人的示意图;
47.图2示出了根据本技术一些实施例的仿真测试移动机器人的控制器的示意图;
48.图3示出了根据本技术一些实施例的注册驱动的流程图;
49.图4示出了根据本技术一些实施例的注册驱动的示意图。
具体实施方式
50.为使本技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本技术进一步详细说明。
51.图1示出了移动机器人的示意图。如图1所示,移动机器人可以与机器人控制系统(robotcontrolsystem,缩写为rcs)通信,以便机器人控制系统对移动机器人进行管理。移动机器人的组件可以划分为软件和硬件。软件运行在移动机器人的控制器中。硬件例如可以包括由控制器中软件控制的多个硬件组件,例如电池、按钮、传感器和电机等。移动机器人中软件可以划分为3层,即应用层、抽象层和实现层。应用层可以执行移动机器人的各种业务逻辑。例如,避障业务等与传感器相关的业务、行走业务、举升业务、转盘业务、能源管理和按钮管理等。抽象层可以提供接口抽象,以便支持实现层与应用层交互数据。抽象层例如可以包括传感器接口抽象、行走交互接口抽象、举升交互接口抽象、转盘交互接口抽象、能源交互接口抽象等。实现层可以包括用于驱动移动机器人的硬件组件的驱动。实现层的驱动可以包括:能源实体驱动、传感器实体驱动、行走实体驱动、举升实体驱动和转盘实体驱动。
52.在一些实施例中,为了对移动机器人进行仿真测试,测试方案可以在独立的仿真设备中对移动机器人的硬件组件进行仿真,然后向移动机器人的控制器提供仿真数据,进而测试移动机器人的业务逻辑。然而,该测试方案中由于仿真设备与控制器属于不同的设备,容易出现设备时钟不同步,而导致在仿真复现时各个数据之间的同步性很难保证,例如电机数据信息与陀螺仪数据可能存在错拍情况。另外,该测试方案agv控制器代码与仿真设备存在软件版本同步管理问题。
53.为此,本技术提出了图2的仿真测试方式。图2示出了根据本技术一些实施例的仿真测试移动机器人的装置的示意图。
54.如图2所示,仿真测试移动机器人的装置100包括应用单元110、接口单元120和仿真单元130。
55.应用单元110用于执行与移动机器人相同的业务操作。
56.接口单元120用于控制应用单元110与仿真单元130之间的数据交互。
57.其中,仿真单元130包括仿真驱动模块131和硬件模拟模块132。硬件模拟模块132模拟移动机器人中的硬件组件的运行,生成对硬件组件的仿真数据。仿真驱动模块131通过接口单元120向应用单元110返回硬件模拟模块132生成的仿真数据。
58.综上,本技术实施例的仿真测试方案可以与移动机器人实体采用相同的业务逻辑程序,且无需针对仿真单元130额外调整业务代码,可以与移动机器人实体采用相同的应用层软件(即应用单元110)以及机器人控制系统200,从而提高了测试方便性。另外,本技术在对应用层软件调整后无需调整仿真器代码(即仿真单元130的代码),而可以进行相关业务逻辑的功能逻辑测试,进一步提高测试方便性。本技术实施例可保证应用层以及机器人控制系统的所有代码都与移动机器人实体保持一致,从而可以在移动机器人实体资源有限或
者不存在的情况下方便地进行应用层及机器人控制系统的功能逻辑的仿真测试。
59.在一些实施例中,仿真测试移动机器人的装置100的硬件可以与移动机器人中的控制器相同,应用单元110复用与移动机器人相同的业务软件。接口单元120复用与移动机器人相同的接口抽象。例如,应用单元110与图1中应用层代码相同。接口单元120与移动机器人中抽象层版本相同。接口单元120中各接口抽象可以与移动机器人的抽象层中各接口抽象一致。仿真单元130的运行环境可以认为与移动机器人中实现层的运行环境一致。
60.在一些实施例中,仿真驱动模块131用于从接口单元120获取应用单元110的指令,并根据指令驱动硬件模拟模块132运行。
61.在一些实施例中,接口单元120还用于在仿真测试移动机器人的装置100启动时判断驱动类型。驱动类型的范围包括与硬件模拟模块132对应的类型和与移动机器人中的硬件组件对应的类型。换言之,接口单元120可以支持仿真单元130和移动机器人实的硬件组件。在确定驱动类型对应硬件模拟模块132时,对仿真驱动模块131进行注册,以便应用单元110与仿真单元130进行数据交互。另外,接口单元120在确定驱动类型为移动机器人的实体版本时,可以注册该实体版本。
62.本技术实施例的接口单元120例如可以按照图3的流程图进行驱动注册。每个功能抽象模块在初始化时均会按照按流程进行初始化创建。以举升抽象接口模块初始化为例进行实际流程介绍,如图4所示,举升仿真模块定义举升仿真实现的命令设置接口(即仿真模块提供的调用接口,例如图4中simu_lift_set_cmd接口),举升交互抽象接口根据type(即驱动类型)选择仿真举升接口进行抽象接口注册,举升业务模块调用接口抽象实现相应业务逻辑。驱动类型例如可以通过程序包编译时编译选项区分或者通过配置文件增加实现版本属性参数实现。
63.在一些实施例中,硬件模拟模块132包括下述中至少一种:电机仿真模块、电池仿真模块、按钮仿真模块和传感器仿真模块。按钮仿真模块用于模拟下述中至少一种:急停按钮、碰撞条、启动按钮、手自动按钮和复位按钮。仿真驱动模块131包括下述中至少一种:能源仿真驱动、按钮仿真驱动、传感器仿真驱动、举升仿真驱动、转盘仿真驱动和行走仿真驱动。本技术实施例可支持移动机器人各种业务逻辑功能的仿真测试。
64.在一些实施例中,电机仿真模块包括用于模拟举升机构的第一电机子模块和用于模拟转盘机构的第二电机子模块。应用单元110基于机构动作测试用例,通过接口单元120向举升仿真驱动发送第一动作指令和/或向转盘仿真驱动发送第二动作指令。机构动作测试用例用于指示举升机构的动作和/或转盘机构的动作。举升仿真驱动可以根据第一动作指令驱动第一电机子模块,使得第一电机子模块模拟举升机构的运行并生成第一仿真数据。转盘仿真驱动可以根据第二动作指令驱动第二电机子模块,使得第二电机子模块模拟转盘机构的运行并生成第二仿真数据。举升仿真驱动将举升仿真数据传输到应用单元110。举升仿真数据包括:所述第一仿真数据和/或所述第二仿真数据。这样,电机仿真模块可以实现对升降货物等机构动作过程的模拟测试。
65.在一些实施例中,电机仿真模块包括模拟行走机构的第三电机子模块。第三电机子模块用于模拟一个或多个用于行走的电机。应用单元110基于行走测试用例,通过接口单元120向行走仿真驱动发送行走指令。行走测试用例用于指示移动机器人的自主路线规划,或者机器人控制系统200发出的集群路径规划。行走仿真驱动根据行走指令驱动第三电机
子模块进行行走仿真,并将第三电机子模块的行走仿真数据传输到应用单元。这样,应用单元110可以根据行走仿真数据对移动机器人的行走机构的控制功能进行测试。
66.在一些实施例中,应用单元110还用于执行电池测试用例,并通过接口单元120向能源仿真驱动发送能耗业务指令。电池测试用例包括:充电业务逻辑测试。能源仿真驱动根据能耗业务指令驱动电池仿真模块进行电池性能仿真,并将电池仿真模块的性能仿真数据传输到应用单元110。例如,本技术实施例可以在能源仿真模块中建立电池能耗模型,例如建立电池电量与工作量、时间之间的对应关系。在正常实现运行一段时间后,本技术实施例可以利用能源仿真模块测试自动充电业务逻辑等。
67.在一些实施例中,传感器仿真模块包括激光器仿真模块。激光器仿真模块用于获取来自第三电机子模块的行走信息。行走信息包括模拟的行走机构在目标场景中的初始位置、速度和加速度和移动机器人的形状尺寸。这里,速度例如可以是第三电机子模块随时间变化提供的各时间点的速度值。加速度例如可以是第三电机子模块随时间变化提供的各时间点的加速度值。激光器仿真模块根据行走信息,生成移动机器人在目标场景中的位姿信息。激光器仿真模块根据位姿信息生成激光仿真数据。激光仿真数据用于模拟当移动机器人处于所述位姿信息对应的位姿时周围场景的点云数据。激光仿真数据通过接口单元120向应用单元返回激光仿真数据,以便应用单元110根据激光仿真数据对移动机器人的自主定位进行模拟。例如,应用单元110中行走业务可以根据点云数据,确定要模拟移动机器人在目标场景中的位置。在此基础上,应用单元110进行定位测试。
68.在一些实施例中,激光器仿真模块中存储有障碍分布模拟数据。障碍分布模拟数据用于描述障碍物的初始位姿、移动速度、加速度和形状尺寸。这里,如果障碍物为固定障碍物,则移动速度和加速度为0。在障碍物为移动障碍物时,障碍物的速度例如为按照时间变化提供的各时间点的速度值,加速度例如为按照时间变化提供的各时间点的加速度值。激光器仿真模块根据障碍分布模拟数据,生成障碍物在目标场景中的位姿信息。激光器仿真模块根据位姿信息生成障碍仿真数据。障碍仿真数据用于模拟当障碍物处于所述位姿信息对应的位姿时周围场景的点云数据。激光器仿真模块通过接口单元120向应用单元110返回障碍仿真数据,以便应用单元110根据障碍仿真数据对移动机器人的避障功能进行模拟测试。例如,应用单元110中避障业务可以根据与障碍物对应的点云数据,生成要模拟的障碍物在目标场景中位置,进而模拟测试避障能力。
69.在一些实施例中,障碍分布模拟数据为所述移动机器人的激光器的障碍探测结果,所述障碍探测结果用于记录与移动机器人探测到的障碍物对应的初始位姿、移动速度、加速度和形状尺寸。这样,应用单元110可以模拟再现移动机器人的避障过程,进而精准分析移动机器人的避障过程。
70.在一些实施例中,障碍模拟数据被配置为障碍分布规划数据。障碍分布规划数据为设定的障碍物的初始位姿、移动速度、加速度和形状尺寸。这样,激光仿真单元可以根据需要模拟各种障碍物场景,从而方便于模拟移动机器人可能遇到的各种障碍物场景,进而对移动机器人的避障能力进行充分测试。
71.在一些实施例中,所述仿真单元进一步包括:异常仿真管理单元133,用于与客户端300进行通信。客户端300可以向异常仿真管理单元133发送各种外部指令。
72.在接收到来自客户端300的行走异常事件的指令时,异常仿真管理单元133向电机
仿真模块发送行走异常事件的触发指令。电机仿真模块生成行走异常事件,并向应用单元110发送行走异常事件。行走异常事件例如可以包括急停信号和电机异常中至少一种。
73.在一些实施例中,在接收到来自客户端300的对举升异常事件的触发指令时,异常仿真管理单元133向电机仿真模块发送对举升异常事件的触发指令。电机仿真模块生成举升异常事件并向应用单元110发送举升异常事件。举升异常事件包括下述中至少一种:电机堵转、电机编码器异常、电机编码器失联、举升机构检测传感器异常、举升机构运行超时、举升机构到位脱落、举升机构急停触发制动。应用单元110中举升业务可以根据举升异常事件进行相应处理。这样,本技术实施例可以模拟针对举升的突发异常状况,从而能够对举升异常进行测试。
74.在一些实施例中,在接收到来自客户端300的对转盘异常事件的触发指令时,异常仿真管理单元133向电机仿真模块发送对转盘异常事件的触发指令。电机仿真模块生成转盘异常事件并向应用单元110发送转盘异常事件;所述转盘异常事件包括下述中至少一种:电机堵转、电机编码器异常、电机编码器失联、转盘机构检测传感器异常、转盘机构运行超时、转盘机构到位脱落、转盘机构急停触发制动。应用单元110中转盘业务可以根据转盘异常事件进行相应处理。这样,本技术实施例可以模拟针对转盘的突发异常状况,从而能够对转盘异常进行测试。
75.在一些实施例中,在接收到能源状态异常的触发指令时,异常仿真管理单元133触发能源仿真驱动生成能源状态异常事件。能源仿真驱动向应用单元110发送能源状态异常事件。能源状态异常事件例如可以包括:电池异常和充电机异常中至少一种。电池异常例如包括:移动机器人静止状态下电池异常(例如单体电压过高、电芯温度异常等);小车移动过程中电池异常(例如单体电压过高、电芯温度异常等);移动机器人充电过程中电池异常(例如单体电压过高、电芯温度异常等)。充电机异常例如为充电机失联、充电机异常停止充电、充电电压过高等。这样,本技术实施例可以模拟针对电池的突发异常状况,从而能够对电池异常后的业务处理能力进行测试。
76.在一些实施例中,在接收到按钮触发指令时,异常仿真管理单元133向按钮仿真模块发送按钮触发指令。按钮仿真模块生成按钮事件并向应用单元110发送按钮事件。按钮事件例如包括下述中至少一种:急停按钮触发信号、触发碰撞条信号、启动按钮触发信号、手自动按钮切换信号、复位按钮触发信号。这样,本技术实施例可以针对按钮事件对按钮管理的业务进行测试。
77.本技术针对移动机器人动作过程中的不便实现的异常模拟均能安全有效的触发,比如单车移动过程中触发急停或碰撞条、能源管理中的充电异常逻辑处理、能源管理中的电池异常等。在移动机器人实体测试中,这类测试对于测试人员有一定的危险性,对实车也有一定的破坏性,另外不一定能百分百触发异常,测试效率也低。而本技术实施例能安全高效地对各种异常情况进行测试,提高了对移动机器人测试的方便性。
78.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1