机器人模拟装置、系统、方法、可读介质及电子设备
技术领域
本公开涉及机器人领域,具体地,涉及一种机器人模拟装置、系统、方法、可读介质及电子设备。
背景技术
目前云端智能在部署到机器人上时,整个系统有以下三个模块:云端大脑,是云端智能的关键,部署在云端,即在服务器上;机器人控制器,即Robot Control Unit(RCU),通过WiFi或者移动数据连接(或者其他的连接方式),与服务器上的云端智能服务通信,将云端的人工智能赋能给连接RCU的机器人,同时,RCU也是用来确保机器人是否接入到可靠的云端网络的安全保障;机器人本体,是各种执行器和传感器的集合,同时,它也拥有控制各种执行器和处理各种传感器数据的能力,在连接RCU之后,接受了云端人工智能的赋能之后,具备了远超机器人本体处理能力的各种人工智能的能力。
目前,在RCU软件开发的过程中,存在以下问题:RCU的软件开发人员在开发了新的功能,发布了新的软件版本,集成到RCU中之后,需要和云端大脑,机器人本体连接在一起,做一些测试,才能确认新的软件版本是否达到了发布的条件,新的功能是否实现,在缺少机器人本体的时候,相关的测试无法进行。另外一个问题是与稳定性测试相关,在实际使用中,一些问题是在使用了一段时间之后才暴露出来的,因此需要部署云端大脑、RCU和机器人本体的稳定性测试系统,进行长期测试(72小时—一周),而在稳定性测试时若将机器人本体部署在长期稳定性测试环境中,固然能够发现机器人本体软件,RCU软件或者云端大脑的软件缺陷或者问题,但是会对机器人本体的使用寿命造成影响,加速机器人本体的折旧与老化,进而带来成本的增高。
发明内容
本公开的目的是提供一种机器人模拟装置、系统、方法、可读介质及电子设备,用于解决相关技术中无机器人本体无法进行测试及使用机器人本体进行稳定性测试导致的影响机器人本体的使用寿命,加速机器人本体的折旧与老化,进而带来成本的增高的问题。
为了实现上述目的,根据本公开实施例第一方面,提供一种机器人模拟装置,所述机器人模拟装置包括运行于宿主机的机器人模拟器,所述机器人模拟器内运行有客户操作系统,所述客户操作系统内运行有机器人应用模块;
所述机器人模拟器用于提供模拟机器人及模拟环境;
所述机器人应用模块用于接收机器人控制器发送的操作请求,并根据所述操作请求控制所述模拟机器人在所述模拟环境内执行操作,及返回操作信息至所述机器人控制器。
可选地,所述机器人控制器与所述宿主机建立通讯连接,所述机器人模拟器包括虚拟网络设备;
所述机器人应用模块通过所述虚拟网络设备与所述机器人控制器通信。
可选地,所述机器人模拟装置还包括运行于宿主机的调试器,所述调试器用于获取所述机器人应用模块的信息,该信息包括所述机器人应用模块的运行状态信息和日志信息。
可选地,所述机器人模拟器包括虚拟网络设备,所述调试器通过所述虚拟网络设备获取所述机器人应用模块的信息;或,
所述机器人模拟器包括虚拟串口,所述调试器通过所述虚拟串口获取所述机器人应用模块的信息。
可选地,所述调试器还用于获取所述机器人控制器的信息,该信息包括所述机器人控制器的运行状态信息和日志信息。
根据本公开实施例第二方面,提供一种机器人模拟系统,包括云端大脑、机器人控制器和上述的机器人模拟装置;
所述机器人控制器通讯连接在所述云端大脑和所述机器人模拟装置之间,用于将所述云端大脑的人工智能赋能给所述机器人模拟装置。
可选地,所述云端大脑用于发送测试信息至所述机器人控制器;
所述机器人控制器用于在判断所述测试信息为机器人测试信息的情况下,将所述机器人测试信息发送至所述机器人应用模块,所述测试信息包括多个操作命令;
所述机器人应用模块用于根据所述测试信息执行操作,返回测试回复信息至所述机器人控制器;
所述机器人控制器用于将所述测试回复信息返回至所述云端大脑。
根据本公开实施例第三方面,提供一种机器人模拟方法,应用于上述的机器人模拟装置,所述机器人模拟器用于提供模拟机器人及模拟环境,所述方法包括:
所述机器人应用模块接收机器人控制器发送的操作请求,并根据所述操作请求控制所述模拟机器人在所述模拟环境内执行操作,及返回操作信息至所述机器人控制器。
根据本公开实施例第四方面,提供一种机器人模拟方法,应用于上述的机器人模拟系统,所述机器人控制器通讯连接在所述云端大脑和所述机器人模拟装置之间,所述方法包括:
所述机器人控制器将所述云端大脑的人工智能赋能给所述机器人模拟装置。
根据本公开实施例第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第三方面所述方法的步骤。
根据本公开实施例第六方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第三方面所述方法的步骤。
本公开提供的技术方案,通过机器人模拟器、客户操作系统和机器人应用模块,能够模拟机器人本体的各种操作,并对机器人控制器发送的命令做出响应,从而在缺少机器人本体的情况下,能进行相关测试,及避免使用机器人本体进行稳定性测试带来的影响机器人本体的使用寿命,加速机器人本体的折旧与老化,进而带来成本的增高的问题。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开实施例提供的一种机器人模拟装置的框图。
图2是机器人控制器与本公开实施例提供的另一种机器人模拟装置的连接示意图。
图3是机器人控制器与本公开实施例提供的另一种机器人模拟装置的连接示意图。
图4是本公开实施例提供的一种机器人模拟系统的框图。
图5是本公开实施例提供的一种应用于机器人模拟装置的机器人模拟方法的流程图。
图6是本公开实施例提供的一种应用于机器人模拟系统的机器人模拟方法的流程图。
图7是本公开实施例提供的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
如图1所示,本公开实施例提供一种机器人模拟装置1。所述机器人模拟装置1包括运行于宿主机的机器人模拟器10,所述机器人模拟器10内运行有客户操作系统11,所述客户操作系统11内运行有机器人应用模块111。
其中,所述宿主机可以为台式计算机、笔记本电脑、工作站等电子设备,其具有网络通信能力。所述机器人模拟器10安装于所述宿主机上。所述机器人模拟器10用于提供模拟机器人及模拟环境。所述机器人模拟器10提供的模拟机器人与被模拟的真实的机器人本体尽可能相同。例如,该模拟机器人关节的限位与真实的机器人本体关节的限位相同;否则,基于机器人模拟器10开发出来的机器人应用模块111在运行中就可能导致真实的机器人本体关节活动超限从而损坏,或者无法实现设计的动作。同理,所述机器人模拟器10提供的模拟环境与真实的机器人本体的典型使用环境尽可能相同。
所述机器人应用模块111用于接收机器人控制器2发送的操作请求,并根据所述操作请求控制所述模拟机器人在所述模拟环境内执行操作,及返回操作信息至所述机器人控制器2。
其中,所述操作信息可以包括所述机器人应用模块111的运行状态数据、操作数据、操作结果中的至少一个。
本公开提供的技术方案,通过机器人模拟器10、客户操作系统11和机器人应用模块111,能够模拟机器人本体的各种操作,并对机器人控制器2发送的命令做出响应,从而在缺少机器人本体的情况下,能进行相关测试,及避免使用机器人本体进行稳定性测试带来的影响机器人本体的使用寿命,加速机器人本体的折旧与老化,进而带来成本的增高的问题。
可选地,所述机器人控制器2与所述宿主机建立通讯连接,所述机器人模拟器10包括虚拟网络设备12。所述机器人应用模块111通过所述虚拟网络设备12与所述机器人控制器2通信。
如图2所示,所述机器人控制器2可以包括第一IP地址,所述宿主机可以包括第二IP地址。所述机器人控制器2与所述宿主机可以通过USB、网线、WiFi或者其他的连接方式建立通讯连接。所述机器人控制器2与所述宿主机可以组成一个局域网,通过DHCP(动态主机配置协议,Dynamic Host Configuration Protocol)、RNDIS(远程网络驱动程序接口规范,Remote Network Driver Interface Specification)或者其他的方法,进行通讯。所述机器人模拟器10包括虚拟网络设备12。所述机器人模拟器10可以包括第三IP地址。所述机器人模拟器10内的客户操作系统11通过所述虚拟网络设备12具备网络通信能力。所述机器人应用模块111通过所述虚拟网络设备12与所述机器人控制器2通信。实际中所述机器人控制器2可以包括多个控制应用模块21,则一所述机器人应用模块111通过所述虚拟网络设备12可以与所述机器人控制器2中对应的控制应用模块21通信。
如图3所示,可选地,所述机器人模拟装置1还包括运行于宿主机的调试器20。所述调试器20用于获取所述机器人应用模块111的信息,该信息包括所述机器人应用模块111的运行状态信息和日志信息。
通过在所述机器人模拟装置1设置获取所述机器人应用模块111的信息的调试器20,使得该机器人模拟装置1具有调试功能,能对机器人应用模块111进行调试。
调试器20获取所述机器人应用模块111的信息的方式有很多。可选地,所述机器人模拟器10包括虚拟网络设备12,所述调试器20通过所述虚拟网络设备12获取所述机器人应用模块111的信息。或,所述机器人模拟器10包括虚拟串口,所述调试器20通过所述虚拟串口获取所述机器人应用模块111的信息。
所述调试器20可以通过宿主机的网络端口、USB端口与所述机器人控制器2进行通讯。可选地,所述调试器20还用于获取所述机器人控制器2的信息,该信息包括所述机器人控制器2的运行状态信息和日志信息。
通过将调试器20与所述机器人控制器2建立通讯连接,获取所述机器人控制器2的信息,使得该调试器20能对机器人控制器2的控制应用模块21进行调试,以及在机器人控制器2的控制应用模块21和客户操作系统11内的机器人应用模块111进行交互时进行联合调试。
上述方案在实施过程中,部署在宿主机上的每一所述机器人应用模块111的生成过程如下:令运行于机器人模拟器10的每一所述机器人应用模块111包括机器人操作命令模拟子模块和机器人操作命令记录子模块;运行于机器人本体的每一应用模块包括机器人操作命令分发和回复模块。在实际部署在机器人本体上的应用程序代码库中,使用机器人模拟器10的编译选项或者参数,在编译的时候选择使用机器人操作命令模拟子模块和机器人操作命令记录模块;在实际编译部署在机器人本体的应用程序时,机器人操作命令模拟子模块和机器人操作命令记录模块不会被编译,取而代之是机器人操作命令分发和回复模块,该机器人操作命令分发和回复模块负责将操作命令发送至与机器人本体连接的各种传感器和执行器,并收集与回复操作命令的执行结果。在使用机器人模拟器10的编译选项或者参数时,机器人操作命令分发和回复模块并不会被编译。机器人操作命令模拟子模块在执行时按照协议,负责解析下发的机器人操作命令,并进行回复。机器人操作命令记录子模块,记录接收和回复的机器人操作命令,并对超出协议记录的异常命令,进行记录,以便用户在开发调试中检查此类的信息。
也即是说:使用运行于机器人模拟器10的机器人操作命令模拟子模块和机器人操作命令记录子模块替代运行于机器人本体的机器人操作命令分发和回复模块以及机器人传感器与执行器,这里涉及到模拟的模块(运行于机器人模拟器10的模块)和真实的模块(运行于机器人本体的模块),这两组模块功能是相同的,因此不需要同时部署到一个系统中。比如当编译模拟的模块时,就不需要执行真实的模块,编译真实的模块时,就不需要执行模拟的模块。
此外,另外一种实现方法是在软件中模拟的模块和真实的模块都编译进去,在执行时通过判断当时的执行环境,是运行在机器人本体上,还是运行在机器人模拟器10上,然后执行不同的路径。
为确保采用机器人模拟装置1的测试结果与采用机器人本体的测试结果相同,可以使机器人控制器2和机器人本体之间的程序调用接口与机器人控制器2和机器人模拟器10之间的程序调用接口相同。
基于上述发明构思,本公开实施例还提供一种机器人模拟系统。如图4所示,该机器人模拟系统包括:云端大脑3、机器人控制器2和上述的机器人模拟装置1。所述机器人控制器2通讯连接在所述云端大脑3和所述机器人模拟装置1之间,用于将所述云端大脑3的人工智能赋能给所述机器人模拟装置1。
所述机器人模拟装置1接受了云端大脑3的人工智能的赋能之后,具备了远超机器人模拟装置1的处理能力的各种人工智能的能力。在实际中,所述机器人控制器2通讯连接在所述云端大脑3和所述机器人本体之间,用于将所述云端大脑3的人工智能赋能给所述机器人本体。因此,通过将所述机器人控制器2通讯连接在所述云端大脑3和所述机器人模拟装置1之间,及将所述云端大脑3的人工智能赋能给所述机器人模拟装置1,可以与实际情况更接近,使得机器人模拟装置1能替代机器人本体完成更多测试,如测试云端电脑与机器人模拟装置1的交互能力。
可选地,所述云端大脑3用于发送测试信息至所述机器人控制器2。所述机器人控制器2用于在判断所述测试信息为机器人测试信息的情况下,将所述机器人测试信息发送至所述机器人应用模块111,所述测试信息包括多个操作命令。所述机器人应用模块111用于根据所述测试信息执行操作,返回测试回复信息至所述机器人控制器2。所述机器人控制器2用于将所述测试回复信息返回至所述云端大脑3。
其中,所述测试信息包括多个操作命令,所述多个操作命令构成测试的例子和内容。所述测试信息可以通过所述云端大脑3的测试接口导入。所述机器人控制器2上运行的控制应用模块21在接收到所述测试信息时,对其进行解析,判断所述测试信息是需要所述机器人控制器2执行的,还是需要所述机器人模拟装置1执行的机器人测试信息。所述机器人控制器2用于在判断所述测试信息为机器人测试信息的情况下,将所述机器人测试信息发送至相应的机器人应用模块111。所述机器人应用模块111在接收到所述测试信息后,按照协议对所述测试信息进行解析及执行操作,返回测试回复信息至所述机器人控制器2。所述机器人应用模块111还可以记录超出协议的异常操作命令。所述机器人控制器2用于将所述测试回复信息返回至所述云端大脑3。可选地,所述机器人控制器2还用于将异常操作命令返回至所述云端大脑3。测试人员可以通过所述云端大脑3的测试接口将所述测试回复信息及异常操作命令导出。所述机器人控制器2还用于在判断所述测试信息为需要所述机器人控制器2执行的情况下,按照协议对所述测试信息进行解析及执行操作,返回测试回复信息至所述机器人控制器2。所述机器人应用模块111还可以记录超出协议的异常操作命令。所述机器人控制器2用于将所述测试回复信息返回至所述云端大脑3。可选地,所述机器人控制器2还用于将异常操作命令返回至所述云端大脑3。测试人员可以通过所述云端大脑3的测试接口将所述测试回复信息及异常操作命令导出。
通过上述技术方案,实现了从云端大脑3发起对机器人模拟装置1和机器人控制器2的测试,及接收机器人控制器2返回的机器人模拟装置1发送的测试回复信息及机器人控制器2测试回复信息。
基于上述发明构思,本公开实施例还提供一种应用于上述的机器人模拟装置1的机器人模拟方法。如图5所示,所述机器人模拟方法包括:
步骤S11,所述机器人应用模块111接收机器人控制器2发送的操作请求,并根据所述操作请求控制所述模拟机器人在所述模拟环境内执行操作,及返回操作信息至所述机器人控制器2。
其中,所述操作信息可以包括所述机器人应用模块111的运行状态数据、操作数据、操作结果中的至少一个。
本公开提供的技术方案,通过机器人模拟器10、客户操作系统11和机器人应用模块111,能够模拟机器人本体的各种操作,并对机器人控制器2发送的命令做出响应,从而在缺少机器人本体的情况下,能进行相关测试,及避免使用机器人本体进行稳定性测试带来的影响机器人本体的使用寿命,加速机器人本体的折旧与老化,进而带来成本的增高的问题。
可选地,所述机器人模拟装置1还包括运行于宿主机的调试器20。所述方法还包括:所述调试器20获取所述机器人应用模块111的信息。
其中,该信息包括所述机器人应用模块111的运行状态信息和日志信息。通过在所述机器人模拟装置1设置获取所述机器人应用模块111的信息的调试器20,使得该机器人模拟装置1具有调试功能,能对机器人应用模块111进行调试。
可选地,所述方法还包括:所述调试器20获取所述机器人控制器2的信息。
其中,该信息包括所述机器人控制器2的运行状态信息和日志信息。通过将调试器20与所述机器人控制器2建立通讯连接,获取所述机器人控制器2的信息,使得该调试器20能对机器人控制器2的控制应用模块21进行调试,以及在机器人控制器2的控制应用模块21和客户操作系统11内的机器人应用模块111进行交互时进行联合调试。
关于上述实施例中的方法,其中各个步骤的具体操作方式已经在有关该装置的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述发明构思,本公开实施例还提供一种应用于上述的机器人模拟系统的机器人模拟方法。如图6所示,所述机器人模拟方法包括:
步骤S21,所述机器人控制器2将所述云端大脑3的人工智能赋能给所述机器人模拟装置1。
可选地,所述方法还包括以下步骤:
所述云端大脑3发送测试信息至所述机器人控制器2。
所述机器人控制器2在判断所述测试信息为机器人测试信息的情况下,将所述机器人测试信息发送至所述机器人应用模块111,所述测试信息包括多个操作命令。
所述机器人应用模块111根据所述测试信息执行操作,返回测试回复信息至所述机器人控制器2。
所述机器人控制器2将所述测试回复信息返回至所述云端大脑3。
其中,所述测试信息包括多个操作命令,所述多个操作命令构成测试的例子和内容。所述测试信息可以通过所述云端大脑3的测试接口导入。所述机器人控制器2上运行的控制应用模块21在接收到所述测试信息时,对其进行解析,判断所述测试信息是需要所述机器人控制器2执行的,还是需要所述机器人模拟装置1执行的机器人测试信息。所述机器人控制器2用于在判断所述测试信息为机器人测试信息的情况下,将所述机器人测试信息发送至相应的机器人应用模块111。所述机器人应用模块111在接收到所述测试信息后,按照协议对所述测试信息进行解析及执行操作,返回测试回复信息至所述机器人控制器2。所述机器人应用模块111还可以记录超出协议的异常操作命令。所述机器人控制器2用于将所述测试回复信息返回至所述云端大脑3。可选地,所述机器人控制器2还用于将异常操作命令返回至所述云端大脑3。测试人员可以通过所述云端大脑3的测试接口将所述测试回复信息及异常操作命令导出。所述机器人控制器2还用于在判断所述测试信息为需要所述机器人控制器2执行的情况下,按照协议对所述测试信息进行解析及执行操作,返回测试回复信息至所述机器人控制器2。所述机器人应用模块111还可以记录超出协议的异常操作命令。所述机器人控制器2将所述测试回复信息返回至所述云端大脑3。可选地,所述方法还包括:所述机器人控制器2将异常操作命令返回至所述云端大脑3。测试人员可以通过所述云端大脑3的测试接口将所述测试回复信息及异常操作命令导出。
通过上述技术方案,实现了从云端大脑3发起对机器人模拟装置1和机器人控制器2的测试,及接收机器人控制器2返回的机器人模拟装置1发送的测试回复信息及机器人控制器2测试回复信息。
关于上述实施例中的方法,其中各个步骤的具体操作方式已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述发明构思,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现应用于机器人模拟装置1对应的机器人模拟方法的步骤。
基于上述发明构思,本公开实施例还提供一种电子设备。如图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的应用于机器人模拟装置对应的机器人模拟方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的应用于机器人模拟装置对应的机器人模拟方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的应用于机器人模拟装置对应的机器人模拟方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的应用于机器人模拟装置对应的机器人模拟方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的应用于机器人模拟装置对应的机器人模拟方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。