设备控制方法、终端、受控设备、电子设备和存储介质与流程

文档序号:18819945发布日期:2019-10-09 00:35阅读:193来源:国知局
设备控制方法、终端、受控设备、电子设备和存储介质与流程
本发明涉及智能设备控制技术,尤其涉及一种设备控制方法、终端、受控设备、电子设备和存储介质。
背景技术
:目前,对智能设备的远程控制方法可以应用于多个领域,例如,可以适用于遥控领域或编程教育领域。然而,相关技术中,在对智能设备进行控制时,只能通过固定命令按钮发送相应的控制指令,即,对智能设备的控制指令是固定的一种或几种控制指令,对智能设备的控制方式不灵活。技术实现要素:本公开实施例期望提供一种设备控制的技术方案。本公开实施例提供了一种设备控制方法,所述方法包括:通过本地代理程序获取用于控制第一受控设备工作的程序代码;通过所述本地代理程序将所述程序代码发送至所述第一受控设备,使所述第一受控设备运行所述程序代码。可选地,所述方法还包括:在将所述程序代码发送至所述第一受控设备后,接收所述第一受控设备的反馈信息,所述反馈信息由所述第一受控设备运行所述程序代码后生成。可选地,所述方法还包括:在接收所述第一受控设备的反馈信息后,将所述反馈信息在所述本地代理程序所在的终端进行加载和/或显示。可选地,所述反馈信息包括所述程序代码的执行结果。可选地,所述通过本地代理程序获取用于控制受控设备工作的程序代码,包括:通过所述本地代理程序获取用户基于web页面提交的所述程序代码。本公开实施例还提供了一种设备控制方法,应用于第一受控设备中,所述方法包括:接收终端的本地代理程序发送的用于控制所述第一受控设备工作的程序代码;所述程序代码是由所述本地代理程序收集的;运行所述程序代码。可选地,所述方法还包括:运行所述程序代码生成反馈信息,并将所述反馈信息发送至所述终端。可选地,所述反馈信息包括所述程序代码的执行结果。可选地,所述方法还包括:通过运行所述程序代码,生成第二受控设备的控制指令,其中,所述第一受控设备和所述第二受控设备形成通信连接;将所述第二受控设备的控制指令发送至第二受控设备,使所述第二受控设备执行所述第二受控设备的控制指令;接收所述第二受控设备发送的指令执行结果,根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令;其中,所述指令执行结果是所述第二受控设备在执行所述第二受控设备的控制指令后得到的。可选地,所述方法还包括:获取工作模式切换信息;所述工作模式切换信息用于指示所述第一受控设备和所述第二受控设备将当前工作模式切换为目标工作模式;根据所述工作模式切换信息,控制所述第一受控设备切换工作模式;将所述工作模式切换信息发送至第二受控设备,使所述第二受控设备基于所述工作模式切换信息切换工作模式。可选地,所述第二受控设备的控制指令为图像检测指令,所述指令执行结果为图像检测结果;所述根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令,包括:根据所述图像检测结果,生成所述第一受控设备的控制指令,所述第一受控设备的控制指令为人体跟踪指令;根据所述人体跟踪指令,控制所述第一受控设备的运动状态。可选地,所述根据所述图像检测结果,生成所述第一受控设备的控制指令,包括:响应于所述图像检测结果表示人体变小的情况,生成用于控制所述第一受控设备前进的控制指令;响应于所述图像检测结果表示人体变大的情况,生成用于控制所述第一受控设备保持静止的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的左侧的情况,生成用于控制所述第一受控设备左转的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的右侧的情况,生成用于控制所述第一受控设备右转的控制指令。可选地,所述第一受控设备和所述第二受控设备通过有线连接方式进行连接。本公开实施例还提供了一种终端,所述终端包括获取模块和第一处理模块,其中,获取模块,用于通过本地代理程序获取用于控制第一受控设备工作的程序代码;第一处理模块,用于通过所述本地代理程序将所述程序代码发送至所述第一受控设备,使所述第一受控设备运行所述程序代码。可选地,所述第一处理模块,还用于在将所述程序代码发送至所述第一受控设备后,接收所述第一受控设备的反馈信息,所述反馈信息由所述第一受控设备运行所述程序代码后生成。可选地,所述第一处理模块,还用于在在接收所述第一受控设备的反馈信息后,将所述反馈信息在所述本地代理程序所在的终端进行加载和/或显示。可选地,所述反馈信息包括所述程序代码的执行结果。可选地,所述获取模块,用于通过所述本地代理程序获取用户基于web页面提交的所述程序代码。可选地,所述第一受控设备包括接收模块和第二处理模块,其中,接收模块,用于接收终端的本地代理程序发送的用于控制所述第一受控设备工作的程序代码;所述程序代码是由所述本地代理程序收集的;第二处理模块,用于运行所述程序代码。可选地,所述第二处理模块,还用于运行所述程序代码生成反馈信息,并将所述反馈信息发送至所述终端。可选地,所述反馈信息包括所述程序代码的执行结果。可选地,所述第二处理模块,还用于:通过运行所述程序代码,生成第二受控设备的控制指令,其中,所述第一受控设备和所述第二受控设备形成通信连接;将所述第二受控设备的控制指令发送至第二受控设备,使所述第二受控设备执行所述第二受控设备的控制指令;接收所述第二受控设备发送的指令执行结果,根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令;其中,所述指令执行结果是所述第二受控设备在执行所述第二受控设备的控制指令后得到的。可选地,所述第二处理模块,还用于获取工作模式切换信息;根据所述工作模式切换信息,控制所述第一受控设备切换工作模式;将所述工作模式切换信息发送至第二受控设备,使所述第二受控设备基于所述工作模式切换信息切换工作模式;所述工作模式切换信息用于指示所述第一受控设备和所述第二受控设备将当前工作模式切换为目标工作模式。可选地,所述第二受控设备的控制指令为图像检测指令,所述指令执行结果为图像检测结果;所述第二处理模块,用于根据所述图像检测结果,生成所述第一受控设备的控制指令,所述第一受控设备的控制指令为人体跟踪指令;根据所述人体跟踪指令,控制所述第一受控设备的运动状态。可选地,所述第二处理模块,用于响应于所述图像检测结果表示人体变小的情况,生成用于控制所述第一受控设备前进的控制指令;响应于所述图像检测结果表示人体变大的情况,生成用于控制所述第一受控设备保持静止的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的左侧的情况,生成用于控制所述第一受控设备左转的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的右侧的情况,生成用于控制所述第一受控设备右转的控制指令。可选地,所述第一受控设备和所述第二受控设备通过有线连接方式进行连接。本公开实施例还提供了一种终端,所述终端包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述任意一种设备控制方法。本公开实施例还提供了一种电子设备,所述设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述任意一种设备控制方法。本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种设备控制方法。本公开实施例提出的设备控制方法、终端、受控设备、电子设备和计算机存储介质中,通过本地代理程序获取用于控制第一受控设备工作的程序代码;通过所述本地代理程序将所述程序代码发送至所述第一受控设备,使所述第一受控设备运行所述程序代码。本公开实施例的技术方案,可以基于本地代理程序获取程序代码并推送,进而可以基于程序代码来实现对第一受控设备的控制,而程序代码是可以灵活编辑的,如此,可以更加灵活地对第一受控设备进行控制。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。图1为本公开实施例的设备控制方法的流程图一;图2为本公开应用实施例中ev3智能车与树莓派的连接关系示意图;图3为本公开应用实施例中ev3智能车与终端的连接关系示意图;图4为本公开应用实施例的设备控制方法的流程图;图5为本公开应用实施例中代理程序的功能流程示意图;图6为本公开应用实施例中人体跟踪模式下ev3智能车和树莓派的处理流程示意图;图7为本公开应用实施例中针对反馈信息的处理流程示意图;图8为本公开实施例的设备控制方法的流程图二;图9为本公开实施例的设备控制方法的流程图三;图10为本公开实施例的一种终端的组成结构示意图;图11为本公开实施例的另一种终端的结构示意图;图12为本公开实施例的一种第一受控设备的组成结构示意图;图13为本公开实施例的一种电子设备的结构示意图。具体实施方式以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本公开,并不用于限定本公开。另外,以下所提供的实施例是用于实施本公开的部分实施例,而非提供实施本公开的全部实施例,在不冲突的情况下,本公开实施例记载的技术方案可以任意组合的方式实施。需要说明的是,在本公开实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其他要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。例如,本公开实施例提供的设备控制方法包含了一系列的步骤,但是本公开实施例提供的设备控制方法不限于所记载的步骤,同样地,本公开实施例提供的终端和受控设备包括了一系列模块,但是本公开实施例提供的终端和受控设备不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。本公开实施例可以应用于终端和受控设备组成的控制系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,终端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,受控设备可以是智能车等电子设备。终端、受控设备等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。在本公开的一些实施例中,教育机器人是现代编程教育的一个通用教具模型,可以利用web方式或者移动应用程序(application,app)客户端实现对教育机器人控制;在相关的智能设备控制方案中,通常是通过蓝牙、无线视频进行传输,然后在服务器侧进行信息处理;在第一个示例的方案中,公开了一种基于wi-fi(wirelessfidelity)通信的意念控制视频车系统,该系统由脑电采集卡、智能手机、移动小车和个人计算机四部分组成,通过蓝牙实现智能手机和脑电采集卡连接,进而可以实现移动小车的远程控制;在第二个示例性的方案中,公开了一种远程控制除草机器人,在具体实施时,可以在机器人本体上安装摄像头和全球定位系统(globalpositioningsystem,gps)芯片,小车完成视频采集然后通过无线通信方式传输到上位机,在完成相关处理后,在将指令下发到机器人;在第三个示例性的方案中,公开了一种扫地车远程管理方案,在具体实施时,可以利用通信模块将手机信息无线传输到网管服务器,再由管理平台向用户提供服务,该方案主要利用web方式提供相关服务,方便用户对设备的管理。在上述的智能设备控制方案中,只能无线通讯方式完成固定命令传输,只能通过固定命令按钮发送固定的控制指令;无线通信网络的通信质量会影响到上下位机之间的通信。在本公开的一些实施例中,基于web方式实现对智能设备的远程控制是一种高效且方便的方案,在遥控领域和教育领域有着极为重要作用;但是为了实现准确且实时的控制还存在较多问题亟待解决;首先由于上下位机之间采用了无线连接方式,但是无线网络不稳定且丢包率较大,在性能要求较高的场合存在较大问题,限制了应用场景;其次,相关技术中只实现了从上位机到下位机控制指令传输,不能收集反馈信息或者对反馈信息进行有效处理,上位机侧web端的控制指令的下发和下位机侧执行指令的反馈信息的收集及上报也需要设计灵活复杂的架构。针对上述技术问题,在本公开的一些实施例中,提出了一种设备控制的技术方案,本公开实施例可以在教育机器人、远程控制、智能遥控等场景实施。第一实施例本公开实施例提出了一种设备控制方法;图1为本公开实施例的设备控制方法的流程图一,如图1所示,该流程可以包括:步骤101:通过本地代理程序获取用于控制第一受控设备工作的程序代码;本公开实施例中,第一受控设备可以是智能车、嵌入式开发设备、智能机器人等电子设备;第一受控设备可以包括传感器、摄像头等器件,终端可以提供人机交互界面。本公开实施例中,第一受控设备可以是一个单独的电子设备,也可以是集成的电子设备。在实际应用中,可以在终端中安装本地代理(agent)程序,本地代理程序至少用于收集用户提交的程序代码,这里,用户提交的程序代码可以是用于控制第一受控设备工作的程序代码,如此,通过运行本地代理程序,可以收集到用于控制第一受控设备工作的程序代码。作为一种实现方式,可以通过本地代理程序获取用户基于web页面提交的所述程序代码,也就是说,用户可以通过终端的web页面提交用于控制第一受控设备工作的程序代码,在本地代理程序运行的情况下,本地代理程序可以收集到相应的程序代码;可以看出,用户可以基于web页面,较为方便地提交程序代码。本公开实施例中,并不对上述程序代码的种类进行限定,上述程序代码的种类可以根据实际应用需求预先确定,例如,上述程序代码可以是python代码或其他程序代码。步骤102:通过本地代理程序将程序代码发送至第一受控设备。在实际应用中,可以预先建立终端与第一受控设备的通信连接,本公开实施例中并不对终端与第一受控设备的通信连接的连接方式进行限定,例如,终端与第一受控设备可以通过有线连接方式或各种无线连接方式进行数据交互。在一个示例中,上述本地代理程序可以用于建立终端与第一受控设备的通信连接,例如,在运行上述本地代理程序时,终端可以通过广播方式在局域网内下发地址解析协议(addressresolutionprotocol,arp)数据包,该局域网内的第一受控设备在收到arp数据包会回复相应的数据包,上述本地代理程序可以对第一受控设备回复的数据包进行解析,得到第一受控设备的互联网协议(internetprotocol,ip)地址,如此,可以建立终端与第一受控设备的通信连接;可选地,当在上述局域网内存在多个受控设备时,如果上述本地代理程序接收到多个受控设备回复的数据包,可以生成用于表示多个受控设备的智能设备列表,用户可以在多个受控设备的智能设备列表中,选择多个受控设备中的至少一个受控设备;基于本地代理程序可以建立终端与选择的受控设备的通信连接。可选地,在建立终端与第一受控设备的通信连接后,还可以对终端与第一受控设备的通信连接进行监控,以获知终端与第一受控设备的通信连接状况;例如,基于上述本地代理程序,终端可以继续通过广播方式在局域网内下发arp数据包,如此,终端可以根据针对arp数据包的回复情况,判断终端与第一受控设备的通信连接状况;例如,终端在向第一受控设备发送arp数据包后,如果在设定时长内未收到针对arp数据包的回复数据包,则可以认为终端与第一受控设备的通信连接中断;如果在设定时长内收到针对arp数据包的回复数据包,则可以认为终端与第一受控设备之间保持通信连接;设定时长可以根据实际需求设置,在具体的示例中,设定时长可以是1至3秒。本公开实施例中,终端可以根据预先建立终端与第一受控设备的通信连接,将上述程序代码发送至第一受控设备。步骤103:第一受控设备接收并运行上述程序代码。在实际应用中,第一受控设备可以运行上传程序代码,以生成相应的控制指令,第一受控设备可以执行控制指令;如此,由于控制指令是根据程序代码生成的,因而,终端可以通过上述程序代码实现对第一受控设备的控制。例如,当第一受控设备包括智能车时,通过运行上述程序代码,可以生成控制指令,该控制指令可以指示智能车的运动状态。实际应用中,步骤101至步骤102可以基于终端的处理器实现,步骤103可以基于第一受控设备的处理器实现,上述处理器可以为特定用途集成电路(applicationspecificintegratedcircuit,asic)、数字信号处理器(digitalsignalprocessor,dsp)、数字信号处理装置(digitalsignalprocessingdevice,dspd)、可编程逻辑装置(programmablelogicdevice,pld)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的终端或受控设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。可以看出,采用本公开实施例的技术方案,可以基于本地代理程序获取程序代码并推送,进而可以基于程序代码来实现对第一受控设备的控制,而程序代码是可以灵活编辑的,如此,可以更加灵活地对第一受控设备进行控制。可选地,第一受控设备运行程序代码生成反馈信息,然后,可以将上述反馈信息发送至终端。本实施例中,反馈信息可以用于表示对程序代码运行情况的反馈,例如,反馈信息可以包括上述程序代码的执行结果。可以看出,通过将反馈信息发送至控制设备,可以使终端获知上述程序代码运行情况,进而便于针对该程序代码进行处理,例如,在程序代码的运行情况不符合预期时,可以修改该程序代码。可选地,终端在接收到上述第一受控设备发送的反馈信息后,可以在终端进行加载和/或,在终端的显示界面显示反馈信息。可以看出,通过对反馈信息在终端本地的加载和/或显示,便于用户直观地获知上述程序代码运行情况。本公开实施例中,并不对终端加载反馈信息的实现方式进行限定,示例性地,终端以同步加载或异步加载的方式加载反馈信息。在一个具体的示例中,终端可以将反馈信息在web前端进行加载和/或显示,便于用户直观地通过web前端获知上述程序代码运行情况。可选地,第一受控设备可以通过运行程序代码,生成第二受控设备的控制指令,其中,第一受控设备和所述第二受控设备形成通信连接;本实施例中,可以设置一个第二受控设备,也可以设置多个第二受控设备;第二受控设备可以是树莓派等电子设备;第二受控设备可以包括传感器、摄像头等器件;第二受控设备与第一受控设备的种类可以相同,也可以不同。第一受控设备在生成第二受控设备的控制指令后,可以将第二受控设备的控制指令发送至第二受控设备;第二受控设备可以执行第二受控设备的控制指令,得到指令执行结果。第二受控设备可以将指令执行结果发送至第一受控设备;第一受控设备可以根据指令执行结果,生成第一受控设备的控制指令,执行第一受控设备的控制指令。可以看出,本实施例针对第一受控设备和第二受控设备,给出了协同控制方案,具体地,可以基于上述程序代码实现对第一受控设备和第二受控设备的协同控制。可选地,第一受控设备和第二受控设备通过有线连接方式进行连接,例如,第一受控设备和第二受控设备通过串口进行连接;如此,可以确保第一受控设备与第二受控设备之间的通信可靠性。可选地,第一受控设备还可以获取工作模式切换信息;工作模式切换信息用于指示第一受控设备和第二受控设备将当前工作模式切换为目标工作模式;这样,第一受控设备可以根据工作模式切换信息,控制第一受控设备切换工作模式;第一受控设备还可以将工作模式切换信息发送至第二受控设备;第二受控设备在接收到工作模式切换信息后,可以基于工作模式切换信息切换工作模式。也就是说,本公开实施例中,针对每个受控设备,可以设置多种工作模式,在处于不同的工作模式时,受控设备的工作方式是不同的。可以看出,本实施例可以实现第一受控设备和第二受控设备的工作模式的同步切换。可选地,第二受控设备的控制指令为图像检测指令,指令执行结果为图像检测结果;此时,第一受控设备可以根据接收的图像检测结果,生成人体跟踪指令;然后,可以根据人体跟踪指令,控制第一受控设备的运动状态,进而实现人体跟踪。可以看出,在本公开实施例中,可以在对第一受控设备和第二受控设备的协同控制的基础上,实现人体跟踪。可选地,第一受控设备响应于所述图像检测结果表示人体变小的情况,生成用于控制所述第一受控设备前进的控制指令;响应于所述图像检测结果表示人体变大的情况,生成用于控制所述第一受控设备保持静止的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的左侧的情况,生成用于控制所述第一受控设备左转的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的右侧的情况,生成用于控制所述第一受控设备右转的控制指令。可以看出,在本公开实施例中,通过对第一受控设备的运动状态的控制,可以准确地实现人体跟踪。第二实施例下面通过一个具体的应用实施例对本公开进行进一步说明。在该具体的应用实施例中,第一受控设备可以包括ev3智能车、电机、相关传感器等器件;ev3智能车可以通过电机驱动相关传感器运动;第二受控设备可以包括树莓派、电机、摄像头等器件;图2为本公开应用实施例中ev3智能车与树莓派的连接关系示意图,如图2所示,树莓派可以通过通用串行总线(universalserialbus,usb)连接方式连接摄像头,可以实时采集周围视频或图像信息;树莓派还可以通过电机驱动摄像头转动;树莓派可以通过串口转接线连接至ev3智能车;在一个示例中,相关传感器可以是触碰传感器,触碰传感器被触碰时产生的触发信号,可以用于同步修改树莓派和ev3智能车的功能模式;具体地,触碰传感器可以在被触碰时,产生触发信号给直接相连的ev3智能车,进而改变ev3智能车的功能模式标志位,并且将该标志位通过串口发送给树莓派,进而触发树莓派的功能模式标志位的更改,从而实现树莓派和ev3智能车的功能模式的同步切换。在一个示例中,树莓派与ev3智能车的连接线对应关系可以如表1所示。表1终端中可以安装上述记载的本地代理程序;图3为本公开应用实施例中ev3智能车与终端的连接关系示意图,如图3所示,ev3智能车可以通过无线连接方式与终端进行连接,这样可以终端本地代理程序获取程序代码后,可以将程序代码实时推送至ev3智能车,为了实现ev3智能车与终端的无线连接,可以在ev3智能车的usb接口外接无线网卡;可选地,可以使ev3智能车与终端处于统一网段,如此,可以保证无线网络连接稳定性以及ev3智能车与终端之间的通信可靠性。图4为本公开应用实施例的设备控制方法的流程图,如图4所示,该流程可以包括:步骤401:连接ev3智能车和树莓派,并连接ev3智能车和终端。本步骤的实现方式已经在前述记载的内容中作出说明,这里不再赘述。步骤402:在终端侧,基于本地代理程序实现web前端的程序代码收集,并将收集的程序代码推送至ev3智能车。这里,可以基于本地代理程序收集用户提交的python代码,在将python代码推送至ev3智能车后,可以使ev3智能车基于python代码工作,也就是说,可以基于python代码实现对ev3智能车的远程控制,如此,可以更加灵活多样地控制ev3智能车等受控设备;在教育场景中,可以通过学生不断试错及验证新颖的控制方案,可以培养学生程序设计流程思维。为了实现ev3智能车和终端的连接,需要在ev3智能车一侧开启用户数据报协议(userdatagramprotocol,udp)服务,本地代理程序的实施需要以ev3智能车开启的udp服务为基础。图5为本公开应用实施例中代理程序的功能流程示意图,参照图5,该流程可以包括:步骤a1:通过广播方式获取终端同一网段下的智能车列表。具体地说,在运行本地代理程序时,终端可以通过广播方式在局域网内下发arp数据包,该局域网内的ev3智能车在收到arp数据包会回复相应的数据包,上述本地代理程序可以对ev3智能车回复的数据包进行解析,得到ev3智能车的ip地址;当得到多个ev3智能车的ip地址,可以生成终端同一网段下的ev3智能车列表。步骤a2:选择ev3智能车并建立连接。具体地说,可以在上述ev3智能车列表选择特定的智能车,然后创建与相应的智能车的udp连接。步骤a3:推送程序代码至ev3智能车,接收ev3智能车的反馈信息。具体地说,在终端侧的web前端,用户可以提交程序代码,当用户点击提交按钮后,本地代理程序可以收集用户提交的程序代码,然后,可以将该程序代码推送至选择的ev3智能车中;ev3智能车可以运行程序代码,生成反馈信息,并将该反馈信息发送至终端。步骤a4:通过异步加载的方式在web前端加载反馈信息。步骤a5:在程序代码执行完毕后,可以断开终端与ev3智能车的连接,并回收资源。具体地说,在接收或加载反馈信息后,可以认为程序代码执行完毕,此时,通过断开终端与ev3智能车的连接,可以释放终端与ev3智能车之间的网络传输资源,在终端一侧,也可以释放相应的硬件资源和/或软件资源(例如,web前端资源)。步骤403:ev3智能车接收并运行程序代码,将图像检测指令推送至树莓派。具体地说,ev3智能车启动对应的udp服务,该服务可以持续监听固定端口的信息,本地代理程序将程序代码推送到该ev3智能车以后,ev3智能车可以运行接收到的程序代码(可以封装在数据包中),得到控制指令;如果控制指令中涉及到图像处理任务,则可以生成图像检测指令,启动对应的服务模式,将图像检测指令推送至树莓派,以指示树莓派执行图像检测任务,如此,可以从树莓派获取图像检测结果。示例性地,ev3智能车和树莓派可以具有多种工作模式,下面通过表2示例性地说明ev3智能车和树莓派的几种工作模式。树莓派工作模式ev3智能车的数据结果人脸检测人脸id及位置坐标手势分类手势种类人体跟踪人体id及坐标球体检测等球体颜色及位置坐标表2步骤404:树莓派执行图像检测指令,并将图像检测结果(也称为图像处理结果)传输至ev3智能车,ev3智能车根据图像检测结果执行相应的控制指令。具体地说,图像检测指令可以封装在数据包中发送,树莓派接收来自ev3智能车的数据包,通过解析得出自身的工作模式,然后执行对应的图像检测任务,并将图像检测结果发送至ev3智能车。在同一工作模式下,ev3智能车和树莓派协同执行特定任务。图6为本公开应用实施例中人体跟踪模式下ev3智能车和树莓派的处理流程示意图,如图6所示,可以从图像处理阶段,检测数据处理阶段和指令执行阶段说明ev3智能车和树莓派的处理流程;在图像处理阶段可以通过ev3智能车推送图像检测指令触发,首先,利用摄像头采集图片,然后,针对采集的图像基于深度学习技术实现人体检测,得到人体坐标;数据处理阶段主要实现人体id识别和位置坐标处理;数据处理的结果被发送至ev3智能车,ev3智能车可以根据图6所示的逻辑控制电机运转,通过这种方式就可以实现基础的人体跟踪功能;参照图6,当确定人体变小时,通过电机驱动ev3智能车前进;当确定人体变大时,通过电机驱动方式控制ev3智能车静止;当确定人体位于左侧时,通过电机驱动ev3智能车左转;当确定人体位于右侧时,通过电机驱动ev3智能车右转。步骤405:ev3智能车收集反馈信息,并将反馈信息发送至终端。这里,基于步骤401至步骤405,已经实现基于web前端对ev3智能车的远程控制,但是还需要配合设计一套完善的反馈流程,以保证双向信息流的完整性。图7为本公开应用实施例中针对反馈信息的处理流程示意图,如图7所示,在ev3智能车一侧(图7中记为ev3侧),当接收到python代码后,可以基于自身的python解释器,完成原始代码和字节码的转换,之后再转换成机器码,以便于执行指令。程序代码的执行结果可以重定向到文本文件中,在ev3侧启动udp通信模块时,基于udp通信模块可以建立ev3智能车与终端之间的通信连接;udp通信模块可以实时检测上述文本文件是否被更新,在文本信息被更新后,会读取其中内容(即反馈信息);然后通过建立的通信连接将读取的反馈信息主动推送到终端的本地代理程序中;本地代理程序基于java框架,可以采用异步加载方式将反馈信息加载到web前端,web前端经过一系列渲染后在指定的区域部分反馈信息。可以看出,本公开应用实施例中,提出了一种完整的基于ev3智能车的远程控制方案,可通过web端完成程序代码输入,然后实时传输到下位机(即ev3智能车),并实现下位机回复反馈信息;进一步地,通过本地代理程序,可以支持完成对web前端python代码收集,并基于udp连接推送到下位机侧执行程序代码;通过本地代理程序,可以实现终端和ev3智能车的信息交互,传输高效且可靠;进一步地,设计了终端、ev3智能车、树莓派以及相关外设之间的连接方案,可以保证连接高效可行性,同时兼容大多数嵌入式开发设备。在相关技术中,通常是针对ev3智能车和树莓派进行独立控制,未给出ev3智能车和树莓派的协同控制方案;并且,针对实现对ev3智能车或树莓派的单一工作模式控制,不能针对ev3智能车或树莓派,实现不同工作模式的切换。而在本公开应用实施例中,针对ev3智能车和树莓派的连接、以及ev3智能车和树莓派的控制,给出了一种完整的实现方案;并且,可以针对ev3智能车和树莓派,实现不同工作模式的同步切换机制,可以保证不同工作模式下信息交互一致性。第三实施例基于前述实施例记载的内容,下面从终端的角度,来说明本实施例的一种设备控制方法。图8为本公开实施例的设备控制方法的流程图二,如图8所示,该流程可以包括:步骤801:通过本地代理程序获取用于控制第一受控设备工作的程序代码;本公开实施例中,第一受控设备可以是智能车、嵌入式开发设备等电子设备;第一受控设备可以包括传感器、摄像头等器件,终端可以提供人机交互界面。本公开实施例中,第一受控设备可以是一个单独的电子设备,也可以集成多个电子设备。在实际应用中,可以在终端中安装本地代理(agent)程序,本地代理程序至少用于收集用户提交的程序代码,这里,用户提交的程序代码可以是用于控制第一受控设备工作的程序代码,如此,通过运行本地代理程序,可以收集到用于控制第一受控设备工作的程序代码。本公开实施例中,并不对上述程序代码的种类进行限定,上述程序代码的种类可以根据实际应用需求预先确定,例如,上述程序代码可以是python代码或其他程序代码。步骤802:通过所述本地代理程序将所述程序代码发送至所述第一受控设备,使所述第一受控设备运行所述程序代码。在实际应用中,可以预先建立终端与第一受控设备的通信连接,本公开实施例中并不对终端与第一受控设备的通信连接的连接方式进行限定,例如,终端与第一受控设备可以通过有线连接方式或各种无线连接方式进行数据交互。在实际应用中,第一受控设备可以运行上传程序代码,以生成相应的控制指令,第一受控设备可以执行控制指令;如此,由于控制指令是根据程序代码生成的,因而,终端可以通过上述程序代码实现对第一受控设备的控制。实际应用中,步骤801至步骤802可以基于终端的处理器实现,上述处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的终端或受控设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。可以看出,采用本公开实施例的技术方案,可以基于本地代理程序获取程序代码并推送,进而可以基于程序代码来实现对第一受控设备的控制,而程序代码是可以灵活编辑的,如此,可以更加灵活地对第一受控设备进行控制。可选地,所述方法还包括:在将所述程序代码发送至所述第一受控设备后,接收所述第一受控设备的反馈信息,所述反馈信息由所述第一受控设备运行所述程序代码后生成。可选地,所述反馈信息包括所述程序代码的执行结果。可以看出,通过将反馈信息发送至控制设备,可以使终端获知上述程序代码运行情况,进而便于针对该程序代码进行处理,例如,在程序代码的运行情况不符合预期时,可以修改该程序代码。可选地,所述方法还包括:在接收所述第一受控设备的反馈信息后,将所述反馈信息在所述本地代理程序所在的终端进行加载和/或显示。可以看出,通过对反馈信息在终端本地的加载和/或显示,便于用户直观地获知上述程序代码运行情况。可选地,所述通过本地代理程序获取用于控制受控设备工作的程序代码,包括:通过所述本地代理程序获取用户基于web页面提交的所述程序代码。可以看出,用户可以基于web页面,较为方便地提交程序代码,进而,有利于本地代理程序收集到用户提交的程序代码。第四实施例基于前述实施例记载的内容,下面从第一受控设备的角度,来说明本实施例的另一种设备控制方法。图9为本公开实施例的设备控制方法的流程图三,如图9所示,该流程可以包括:步骤901:接收终端的本地代理程序发送的用于控制所述第一受控设备工作的程序代码;所述程序代码是由所述本地代理程序收集的。本公开实施例中,第一受控设备可以是智能车、嵌入式开发设备等电子设备;第一受控设备可以包括传感器、摄像头等器件,终端可以提供人机交互界面。本公开实施例中,第一受控设备可以是一个单独的电子设备,也可以集成多个电子设备。在实际应用中,可以在终端中安装本地代理(agent)程序,本地代理程序至少用于收集用户提交的程序代码,这里,用户提交的程序代码可以是用于控制第一受控设备工作的程序代码,如此,通过运行本地代理程序,可以收集到用于控制第一受控设备工作的程序代码。本公开实施例中,并不对上述程序代码的种类进行限定,上述程序代码的种类可以根据实际应用需求预先确定,例如,上述程序代码可以是python代码或其他程序代码。在实际应用中,可以预先建立终端与第一受控设备的通信连接,本公开实施例中并不对终端与第一受控设备的通信连接的连接方式进行限定,例如,终端与第一受控设备可以通过有线连接方式或各种无线连接方式进行数据交互。步骤902:运行所述程序代码。在实际应用中,第一受控设备可以运行上传程序代码,以生成相应的控制指令,第一受控设备可以执行控制指令;如此,由于控制指令是根据程序代码生成的,因而,终端可以通过上述程序代码实现对第一受控设备的控制。可以看出,采用本公开实施例的技术方案,可以基于本地代理程序获取程序代码并推送,进而可以基于程序代码来实现对第一受控设备的控制,而程序代码是可以灵活编辑的,如此,可以更加灵活地对第一受控设备进行控制。可选地,所述方法还包括:运行所述程序代码生成反馈信息,并将所述反馈信息发送至所述终端。可选地,所述反馈信息包括所述程序代码的执行结果。可以看出,通过将反馈信息发送至控制设备,可以使终端获知上述程序代码运行情况,进而便于针对该程序代码进行处理,例如,在程序代码的运行情况不符合预期时,可以修改该程序代码。可选地,所述方法还包括:通过运行所述程序代码,生成第二受控设备的控制指令,其中,所述第一受控设备和所述第二受控设备形成通信连接;将所述第二受控设备的控制指令发送至第二受控设备,使所述第二受控设备执行所述第二受控设备的控制指令;接收所述第二受控设备发送的指令执行结果,根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令;其中,所述指令执行结果是所述第二受控设备在执行所述第二受控设备的控制指令后得到的。可以看出,本实施例针对第一受控设备和第二受控设备,给出了协同控制方案,具体地,可以基于上述程序代码实现对第一受控设备和第二受控设备的协同控制。可选地,所述方法还包括:获取工作模式切换信息;所述工作模式切换信息用于指示所述第一受控设备和所述第二受控设备将当前工作模式切换为目标工作模式;根据所述工作模式切换信息,控制所述第一受控设备切换工作模式;将所述工作模式切换信息发送至第二受控设备,使所述第二受控设备基于所述工作模式切换信息切换工作模式。也就是说,本公开实施例中,针对每个受控设备,可以设置多种工作模式,在处于不同的工作模式时,受控设备的工作方式是不同的。可以看出,本实施例可以实现第一受控设备和第二受控设备的工作模式的同步切换。可选地,所述第二受控设备的控制指令为图像检测指令,所述指令执行结果为图像检测结果;所述根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令,包括:根据所述图像检测结果,生成所述第一受控设备的控制指令,所述第一受控设备的控制指令为人体跟踪指令;根据所述人体跟踪指令,控制所述第一受控设备的运动状态。可以看出,在本公开实施例中,可以在对第一受控设备和第二受控设备的协同控制的基础上,实现人体跟踪。可选地,所述根据所述图像检测结果,生成所述第一受控设备的控制指令,包括:响应于所述图像检测结果表示人体变小的情况,生成用于控制所述第一受控设备前进的控制指令;响应于所述图像检测结果表示人体变大的情况,生成用于控制所述第一受控设备保持静止的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的左侧的情况,生成用于控制所述第一受控设备左转的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的右侧的情况,生成用于控制所述第一受控设备右转的控制指令。可以看出,在本公开实施例中,通过对第一受控设备的运动状态的控制,可以准确地实现人体跟踪。可选地,所述第一受控设备和所述第二受控设备通过有线连接方式进行连接;如此,可以确保第一受控设备与第二受控设备之间的通信可靠性。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。第五实施例在前述实施例提出的设备控制方法的基础上,本公开实施例提出了一种终端。图10为本公开实施例的一种终端的组成结构示意图,如图10所示,该设备包括获取模块1001和第一处理模块1002,其中,获取模块1001,用于通过本地代理程序获取用于控制第一受控设备工作的程序代码;第一处理模块1002,用于通过本地代理程序将程序代码发送至所述第一受控设备,使第一受控设备运行程序代码。在一实施方式中,所述第一处理模块1002,还用于在将所述程序代码发送至所述第一受控设备后,接收所述第一受控设备的反馈信息,所述反馈信息由所述第一受控设备运行所述程序代码后生成。在一实施方式中,所述第一处理模块1002,还用于在在接收所述第一受控设备的反馈信息后,将所述反馈信息在所述本地代理程序所在的终端进行加载和/或显示。在一实施方式中,所述反馈信息包括所述程序代码的执行结果。在一实施方式中,所述获取模块1001,用于通过所述本地代理程序获取用户基于web页面提交的所述程序代码。上述获取模块1001和第一处理模块1002均可由位于终端中的处理器实现,上述处理器为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。具体来讲,本实施例中的一种设备控制方法对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与一种设备控制方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述第三实施例的任意一种设备控制方法。基于前述实施例相同的技术构思,参见图11,其示出了本公开实施例提供的另一种终端,可以包括:第一存储器1101和第一处理器1102;其中,所述第一存储器1101,用于存储计算机程序和数据;所述第一处理器1102,用于执行所述第一存储器中存储的计算机程序,以实现前述第三实施例的任意一种设备控制方法。在实际应用中,上述第一存储器1101可以是易失性存储器(volatilememory),例如ram;或者非易失性存储器(non-volatilememory),例如rom,快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);或者上述种类的存储器的组合,并向第一处理器1102提供指令和数据。上述第一处理器1102可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。第六实施例在前述实施例提出的另一种设备控制方法的基础上,本公开实施例提出了一种受控设备。图12为本公开实施例的一种第一受控设备的组成结构示意图,如图12所示,所述设备包括接收模块1201和第二处理模块1202,其中,接收模块1201,用于接收终端的本地代理程序发送的用于控制所述第一受控设备工作的程序代码;所述程序代码是由所述本地代理程序收集的;第二处理模块1202,用于运行所述程序代码。在一实施方式中,所述第二处理模块1202,还用于运行所述程序代码生成反馈信息,并将所述反馈信息发送至所述终端。在一实施方式中,所述反馈信息包括所述程序代码的执行结果。在一实施方式中,所述第二处理模块1202,还用于:通过运行所述程序代码,生成第二受控设备的控制指令,其中,所述第一受控设备和所述第二受控设备形成通信连接;将所述第二受控设备的控制指令发送至第二受控设备,使所述第二受控设备执行所述第二受控设备的控制指令;接收所述第二受控设备发送的指令执行结果,根据所述指令执行结果,生成所述第一受控设备的控制指令,执行所述第一受控设备的控制指令;其中,所述指令执行结果是所述第二受控设备在执行所述第二受控设备的控制指令后得到的。在一实施方式中,所述第二处理模块1202,还用于获取工作模式切换信息;根据所述工作模式切换信息,控制所述第一受控设备切换工作模式;将所述工作模式切换信息发送至第二受控设备,使所述第二受控设备基于所述工作模式切换信息切换工作模式;所述工作模式切换信息用于指示所述第一受控设备和所述第二受控设备将当前工作模式切换为目标工作模式。在一实施方式中,所述第二受控设备的控制指令为图像检测指令,所述指令执行结果为图像检测结果;所述第二处理模块1202,用于根据所述图像检测结果,生成所述第一受控设备的控制指令,所述第一受控设备的控制指令为人体跟踪指令;根据所述人体跟踪指令,控制所述第一受控设备的运动状态。在一实施方式中,所述第二处理模块1202,用于响应于所述图像检测结果表示人体变小的情况,生成用于控制所述第一受控设备前进的控制指令;响应于所述图像检测结果表示人体变大的情况,生成用于控制所述第一受控设备保持静止的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的左侧的情况,生成用于控制所述第一受控设备左转的控制指令;响应于所述图像检测结果表示人体位于所述第一受控设备的右侧的情况,生成用于控制所述第一受控设备右转的控制指令。在一实施方式中,所述第一受控设备和所述第二受控设备通过有线连接方式进行连接。上述接收模块1201和第二处理模块1202均可由位于第一受控设备中的处理器实现,上述处理器为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。具体来讲,本实施例中的另一种设备控制方法对应的计算机程序指令可以被存储在光盘,硬盘,u盘等存储介质上,当存储介质中的与另一种设备控制方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述第四实施例的任意一种设备控制方法。基于前述实施例相同的技术构思,参见图13,其示出了本公开实施例提供的一种电子设备,可以包括:第二存储器1301和第二处理器1302;其中,所述第二存储器1301,用于存储计算机程序和数据;所述第二处理器1302,用于执行所述第二存储器中存储的计算机程序,以实现前述第四实施例的任意一种设备控制方法。在实际应用中,上述第二存储器1301可以是易失性存储器,例如ram;或者非易失性存储器,例如rom,快闪存储器,hdd或ssd;或者上述种类的存储器的组合,并向第二处理器1302提供指令和数据。上述第二处理器1302可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的电子设备,用于实现上述处理器功能的电子器件还可以为其它,本公开实施例不作具体限定。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本公开的保护之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1