CN110837388B - 机器人的软件升级方法、升级服务器、机器人及存储介质 - Google Patents
机器人的软件升级方法、升级服务器、机器人及存储介质 Download PDFInfo
- Publication number
- CN110837388B CN110837388B CN202010023057.9A CN202010023057A CN110837388B CN 110837388 B CN110837388 B CN 110837388B CN 202010023057 A CN202010023057 A CN 202010023057A CN 110837388 B CN110837388 B CN 110837388B
- Authority
- CN
- China
- Prior art keywords
- software
- robot
- platform
- upgrading
- package
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种机器人的软件升级方法、升级服务器、机器人及存储介质,其中方法包括:当检测到预设的软件升级触发条件时,将升级服务器中最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器,使构建服务器根据全平台应用软件升级包构建客户APK;若在预设时间段内接收到客户的应用程序构建服务器返回的客户APK,则根据客户APK和全平台应用软件升级包生成对机器人升级的完整包,将完整包发送至机器人,使机器人根据完整包进行软件升级;和/或,若在预设时间段内未接收到客户构建服务器返回的客户APK,则终止机器人的软件升级流程。本发明实施例可以同时对机器人全平台及客户软件进行升级,提高了机器人软件升级效率,节省人工成本。
Description
技术领域
本发明实施例涉及机器人技术领域,特别涉及一种机器人的软件升级方法、升级服务器、机器人及存储介质。
背景技术
随着智能化时代的到来,机器人已经逐渐走进人们的生活,从工厂产品线上的智能机械手到生活中的服务机器人,我们的社会即将进入智能机器人时代。由于机器人的开发和制造成本较高,频繁更换硬件成本高而且不方便,因此为了提高机器人的使用效能,就需要不断的在原有硬件基础上提升机器人的功能,常用的方式是不断地升级软件。目前,当顾客需要对出厂后的机器人进行软件升级时,需要通过机器人厂商的售前售后服务工程师来完成机器人的软件升级操作,效率较低,且人工成本较高。
发明内容
有鉴于此,本发明实施例的目的在于提供一种机器人的软件升级方法、升级服务器、机器人及存储介质,以解决上述现有技术中需要通过机器人厂商的售前售后服务工程师来完成机器人的软件升级操作,效率较低,且人工成本较高的问题。
本发明实施例解决上述技术问题所采用的技术方案如下:
根据本发明实施例的第一方面,提供一种机器人的软件升级方法,该方法应用于升级服务器,所述机器人的软件升级方法包括:
当检测到预设的软件升级触发条件时,将所述升级服务器中最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器,使所述构建服务器根据所述机器人全平台应用软件升级包构建客户APK;
若在预设时间段内接收到所述构建服务器返回的所述客户APK,则根据所述客户APK和所述机器人全平台应用软件升级包生成对机器人升级的完整包,将所述完整包发送至所述机器人,使所述机器人根据所述完整包进行软件升级;和/或,
若在预设时间段内未接收到所述构建服务器返回的客户APK,则终止所述机器人的软件升级流程。
其中,所述最新版本的机器人全平台应用软件升级包为一组确定版本的依赖软件包的集合,所述机器人全平台应用软件升级包和所述依赖软件包的版本规则均为:<主版本>.<次版本>.<增量版本>;
所述依赖软件包的版本号中的主版本号和次版本号分别与所述机器人全平台应用软件升级包的版本号中的主版本号和次版本号相同。
其中,所述预设的软件升级触发条件包括:
所述升级服务器上有新版本的机器人全平台应用软件升级包发布;或者,所述升级服务器接收到所述机器人发送的软件更新请求。
根据本发明实施例的第二方面,提供一种机器人的软件升级方法,该方法应用于机器人,所述机器人的软件升级方法包括:
通过Android平台接收升级服务器发送的对机器人升级的完整包,对所述完整包进行拆分,分别得到位于应用层的软件功能模块对应的软件升级包及位于底层的软件功能模块对应的软件升级包;所述完整包由所述升级服务器根据机器人全平台应用软件升级包及客户的应用程序构建服务器根据所述机器人全平台应用软件升级包构建的客户APK生成;
通过所述Android平台根据位于应用层的软件功能模块对应的软件升级包对位于应用层的软件功能模块进行软件升级;
通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于底层的软件功能模块进行升级。
其中,所述通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于底层的软件功能模块进行升级包括:
通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过Linux平台接收位于底层的软件功能模块对应的软件升级包,解析与位于底层的软件功能模块对应的软件升级包的第一版本号;
向低功耗嵌入式平台发送软件更新请求,使所述低功耗嵌入式平台根据所述软件更新请求将与位于底层的软件功能模块对应的软件的第二版本号返回至所述Linux平台;
所述Linux平台接收所述第二版本号,并将所述第一版本号与所述第二版本号进行比较,判断是否对位于底层的软件功能模块进行升级;
若所述第一版本号大于所述第二版本号,则将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级。
其中,将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级包括:
通过Linux平台创建与位于底层的软件功能模块对应的软件升级包的软链接,将软链接文件名称发送至所述低功耗嵌入式平台;
所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包;
所述低功耗嵌入式平台根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,并在升级完成后退出bootloader。
其中,所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包之后还包括:
当所述低功耗嵌入式平台读取完与位于底层的软件功能模块对应的软件升级包后,对所述升级包进行校验;
若校验成功,则所述低功耗嵌入式平台向所述Linux平台返回校验成功的提示信息,同时根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,在升级完成后退出bootloader;
若校验失败,则所述低功耗嵌入式平台向所述Linux平台返回校验失败的提示信息,同时删除与位于底层的软件功能模块对应的软件升级包,并退出bootloader;
所述Linux平台在接收到校验成功的提示信息后结束软件更新流程,在接收到校验失败的提示信息后重新向所述低功耗嵌入式平台发起软件更新请求。
根据本发明实施例的第三方面,提供一种升级服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如上述第一方面中任一项所述的机器人的软件升级方法的步骤。
根据本发明实施例的第四方面提供一种机器人,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如上述第二方面中任一项所述的机器人的软件升级方法的步骤。
根据本发明实施例的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面中任一项所述的机器人的软件升级方法的步骤;或者,实现上述第二方面中任一项所述的机器人的软件升级方法的步骤。
本发明实施例提供的机器人的软件升级方法、升级服务器、机器人及存储介质,由于采用升级服务器在检测到预设的软件升级触发条件时,将升级服务器上最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器,使所述构建服务器根据所述机器人全平台应用软件升级包构建客户APK;然后再接收构建服务器返回的所述客户APK,根据所述机器人全平台应用软件升级包及所述客户APK生成对机器人升级的完整包,将所述完整包发送至目标客户的机器人,使所述机器人根据所述完整包进行软件升级,从而可以使机器人实现远程自动化软件升级,无需机器人厂商的售前售后服务工程师介入机器人的软件升级流程,节省了人工成本,提高了软件升级效率;此外,本发明实施例中的升级服务器由于在向客户的应用程序构建服务器发送最新版本的机器人全平台应用软件升级包后,若在预设时间段内未接收到所述构建服务器返回的客户APK,则终止所述机器人的软件升级流程,这样可以保证机器人软件升级的可靠性,防止由于依赖版本冲突导致机器人端软件升级失败的情况发生;由于向机器人发送的完整包包括机器人全平台应用软件升级包及客户APK,从而可以同时完成机器人全平台软件及客户软件进行升级,给客户提供了更统一的软件升级体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中机器人的软件升级系统的架构图;
图2是本发明实施例一提供的机器人的软件升级方法的具体实现流程示意图;
图3是本发明实施例二提供的机器人的软件升级方法的具体实现流程示意图;
图4是本发明实施例三提供的升级服务器的结构示意图;
图5是本发明实施例四提供的机器人的结构示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅以解释本发明,并不用于限定本发明。
图1是本发明实施例中机器人的软件升级系统的架构图。为了便于说明仅仅示出了与本实施例相关的部分。
参见图1所示,本发明实施例中的机器人的软件升级系统包括机器人厂商的构建服务器1、机器人厂商的升级服务器2、客户的应用程序构建服务器3及机器人4;其中,所述升级服务器2分别与所述机器人厂商的构建服务器1、客户的应用程序构建服务器3及所述机器人4通信连接。
其中,所述机器人厂商的构建服务器用于生成Android SDK(SoftwareDevelopment Kit,软件开发工具包),并通过所述Android SDK开发机器人全平台应用软件包,在开发出新版本的机器人全平台应用软件升级包后将其发布至所述升级服务器。
其中,所述升级服务器2为OTA(Over the Air,空中下载)服务器,用于存储所述机器人厂商的构建服务器发布的最新版本的机器人全平台应用软件升级包;还用于根据客户的应用程序构建服务器3返回的客户APK及所述机器人全平台应用软件升级包构建对机器人升级的完整包。具体的,所述升级服务器在接收到客户的应用程序构建服务器3返回的客户APK后,利用编译工具对所述客户APK和所述机器人全平台应用软件包进行编译,然后利用打包工具将编译后的文件打包成所述完整包。
其中,所述客户的应用程序构建服务器3,可以由机器人厂商自己开发,也可以由机器人厂商的外部的客户开发。所述客户的应用程序构建服务器3,用于根据机器人全平台应用软件升级包构建客户APK(Android application package,Android应用程序包),并对所述客户APK进行测试。所述机器人中客户APP(Application,应用程序)的构建需要依赖机器人全平台应用软件。
需要说明的是,所述客户的应用程序构建服务器3可对应多个机器人,即所述升级服务器可利用根据客户的应用程序服务器3返回的客户APK及所述机器人全平台应用软件升级包构建的完整包对该客户的应用程序构建服务器3对应的多个机器人进行升级。进一步的,所述升级服务器可同时与多个客户的应用程序构建服务器建立通信连接,以同时对多个客户的机器人集群进行软件升级;当所述升级服务器与多个客户的应用程序构建服务器建立通信连接时,所述升级服务器会分别根据所述机器人全平台应用软件升级包和各客户的应用程序构建服务器返回的客户APK对应生成多个完整包,并将多个完整包分别下发至对应的客户的机器人集群,不同客户的应用程序构建服务器根据机器人全平台应用软件升级包构建的客户APK可以不同,对应的所述升级服务器根据不同的客户APK生成的完整包也不同。所述机器人包括但不限于智能移动机器人。
基于上述系统结构,提出本发明的以下实施例。
实施例一
图2是本发明实施例一提供的机器人的软件升级方法的具体实现流程示意图。该方法的执行主体为图1所示系统中的升级服务器2,参见图2所示,本实施例提供的机器人的软件升级方法包括:
步骤S201,当检测到预设的软件升级触发条件时,将所述升级服务器2中最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器3,使所述构建服务器3根据所述机器人全平台应用软件升级包构建客户APK。
其中,所述预设的软件升级触发条件包括但不限于:所述升级服务器2上有新版本的机器人全平台应用软件升级包发布;或者,所述升级服务器2接收到所述机器人4发送的软件更新请求。
在一具体实现示例中,当所述升级服务器2上有新版本的机器人全平台应用软件升级包发布时,所述升级服务器2会将主动将最新版本的机器人全平台应用软件升级包推送至至少一个客户的应用程序构建服务器3。
在另一具体实现示例中,所述目标客户的机器人4会定时查询所述升级服务器2上的机器人全平台应用软件升级包是否有更新,当检测到所述升级服务器2上的机器人全平台应用软件升级包有更新时会向所述升级服务器2发送操作系统更新请求,触发所述升级服务器2被动将最新版本的机器人全平台应用软件升级包发送至所述客户的应用程序构建服务器3。
在另一具体实现示例中,当所述目标客户的机器人4的操作系统发生故障时,所述目标客户的机器人4会向所述升级服务器2发送软件更新请求,触发所述升级服务器2被动将最新版本的机器人全平台应用软件升级包发送至所述客户的应用程序构建服务器3。
步骤S202,若在预设时间段内接收到所述构建服务器3返回的所述客户APK,则根据所述客户APK和所述机器人全平台应用软件升级包生成对机器人升级的完整包,将所述完整包发送至所述目标客户的机器人,使所述机器人根据所述完整包进行软件升级;
步骤S203,若在预设时间段内未接收到所述构建服务器3返回的所述客户APK,则终止所述机器人4的软件升级流程。
在本实施例中,所述客户的应用程序构建服务器3在接收到所述升级服务器2发送的最新版本的机器人全平台应用软件升级包后,会根据所述最新版本的机器人全平台应用软件升级包构建客户APK,然后对该客户APK进行测试,在测试通过后将该客户APK返回至升级服务器2,这样可以保证后续软件升级的可靠性。其中,所述客户的构建服务器有一个完整的pipeline(流水线),构建和测试过程中的每一个步骤均对应设置有一个超时时间,所述预设时间段等于pipeline中每个阶段对应的超时时间总和,与项目的代码数量和客户的构建服务器的性能相关,项目的代码数量越少,客户的构建服务器的性能越高,所述预设时间段越短。
在本实施例中,所述最新版本的机器人全平台应用软件升级包为一组确定版本的依赖软件包的集合,所述机器人全平台应用软件升级包和所述依赖软件包的版本规则均为:<主版本>.<次版本>.<增量版本>;
所述依赖软件包的版本号中的主版本号和次版本号分别与所述机器人全平台应用软件升级包的版本号中的主版本号和次版本号相同。
在本实施例中,机器人全平台应用软件包在发布前需要进行完备的测试,由于本实施例中的机器人全平台应用软件包是包括一组确定版本的依赖软件包的集合,这样发布前只需要对这个包含特定版本组合依赖软件包的机器人全平台应用软件升级包进行测试即可,无需测试所有可能软件包的排列组合,减少了测试成本。
在本实施例中,客户自定义APP需要依赖于机器人厂商提供的机器人4的操作系统中的一些依赖软件包,因此可能出现客户自定义的APP A需要V.10版本的依赖软件包B,客户自定义的APP C需要V.1.1版本的依赖软件包B的情况,因此在客户自定义APP升级过程中可能会出现依赖软件包版本冲突导致升级失败的情况,为克服该问题,本实施例中升级服务器2发布的机器人全平台应用软件升级包以机器人4本体上除客户自定义APP以外的所有依赖软件包为对象,不以每个依赖软件包为对象,即每次发布的新的机器人全平台应用软件升级包均为一个所有依赖软件包括的特定版本组合,这样在一个新的机器人全平台应用软件升级包中,每依赖软件包的版本号都是唯一的,这样后续通过将机器人全平台应用软件升级包发送至客户的应用程序构建服务器3,由客户的应用程序构建服务器3根据机器人全平台应用软件升级包构建客户APK,并对客户APK进行测试,在测试通过后将客户APK返回至升级服务器2,然后由升级服务器2根据是否接收到客户的应用程序构建服务器返回的经过完备测试的客户APK决定是否继续执行机器人4软件升级流程,可以避免由于依赖软件包版本冲突导致升级失败的问题。
在本实施例中,为了防止由于依赖软件包版本冲突导致机器人4上的客户自定义APP升级失败,升级服务器2在检测到机器人4预设的软件升级触发条件时,首先将最新版本的机器人全平台应用软件升级包发送至目标客户机器人4的构建服务器3,由目标客户机器人4的构建服务器3利用所述最新版本的机器人全平台应用软件升级包构建客户APK,若构建成功,且所述客户APK成功通过测试,则说明该版本的机器人全平台应用软件升级包不会和机器人4上的客户自定义APP发生依赖关系冲突,因此将所述客户APK返回至升级服务器2,使升级服务器2将所述客户APK发送至待升级的机器人4对待升级的机器人4进行软件升级;反之,则说明该版本的机器人全平台应用软件升级包会与机器人4上的客户自定义APP发生依赖关系冲突,因此向升级服务器2返回构建失败的提示信息,此时升级服务器2为避免机器人4软件升级失败,直接终止机器人4软件升级流程,并通知客户所述机器人全平台应用软件升级包与机器人4上的客户自定义APP存在依赖关系冲突,使客户做出相应的处理。
以上可以看出,本实施例提供的机器人的软件升级方法由于采用升级服务器2在检测到预设的软件升级触发条件时,将升级服务器2上最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器3,使所述构建服务器3根据所述机器人全平台应用软件升级包构建客户APK;然后再接收构建服务器3返回的所述客户APK,根据所述机器人全平台应用软件升级包和客户APK生成对机器人升级的完整包,将完整包发送至机器人4,使所述机器人4根据所述完整包进行软件升级,从而可以使机器人4实现远程自动化软件升级,无需机器人厂商的售前售后服务工程师介入机器人4的软件升级流程,提高了软件升级效率,且节省了人工成本;此外,本发明实施例中的升级服务器2由于在向客户的应用程序构建服务器3发送最新版本的机器人全平台应用软件升级包后,若在预设时间段内未接收到所述构建服务器3返回的客户APK,则终止所述机器人4的软件升级流程,这样可以保证机器人4软件升级的可靠性,防止由于依赖版本冲突导致机器人4端软件升级失败的情况发生;由于向机器人发送的完整包包括机器人全平台应用软件升级包及客户APK,从而可以同时完成机器人全平台软件及客户软件进行升级,给客户提供了更统一的软件升级体验。
实施例二
图3是本发明实施例二提供的机器人的软件升级方法的具体实现流程示意图。该方法的执行主体为图1所示系统中的机器人4,参见图3所示,本实施例提供的机器人的软件升级方法包括:
步骤S301,通过Android平台接收升级服务器发送的对机器人升级的完整包,对所述完整包进行拆分,分别得到位于应用层的软件功能模块对应的软件升级包及位于底层的软件功能模块对应的软件升级包;所述完整包由所述升级服务器根据机器人全平台应用软件升级包及客户的应用程序构建服务器根据所述机器人全平台应用软件升级包构建的客户APK生成。
在本实施例中,由于所述完整包是升级服务器基于最新版本的机器人全平台应用软件升级包和客户的应用程序构建服务器根据所述机器人全平台应用软件升级包构建的客户APK生成的,而该最新版本的机器人全平台应用软件升级包为一组确定版本的依赖软件包的集合,因此所述完整包不仅包括客户APP的软件升级包还包括所述最新版本的机器人全平台应用软件的升级包。所述机器人4在接收到所述完整包后可根据manifest.xml拆分出多个位于应用层的软件功能模块对应的升级包和多个位于底层的软件功能模块对应的软件升级包。
步骤S302,通过所述Android平台根据位于应用层的软件功能模块对应的软件升级包对位于应用层的软件功能模块进行软件升级。
在本实施例中,所述机器人4内包括Android平台、Linux平台及低功耗嵌入式平台,机器人4内一些软件功能模块位于应用层的Android平台内,一些软件功能模块位于底层的低功耗嵌入式平台内,Android平台和低功耗嵌入式平台分别由各自的OTA Service进程来维护各自的软件模块的升级。
在本实施例中,由所述Android平台通过第一OTA Service进程获取位于应用层中的软件功能模块对应的软件升级包,并根据获取到的软件升级包对位于Android平台中的软件功能模块进行软件升级。在本实施例中,所述Android平台在获取到应用层中软件功能模块的升级包后采用小修补的方式对所述软件功能模块进行升级。
优选的,在本实施例中,在进入步骤S302之前还包括:控制所述机器人4前往开机区,并进入到待机状态。由于导航技术软件包更新时,会重启软件包,导致无法定位,因此本实施例中在对机器人4进行升级前先提前将机器人4移动至开机区,以避免导航技术软件包升级时影响机器人4导航功能。
步骤S303,通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于底层的软件功能模块进行升级。
在本实施例中,所述机器人4通过所述Android平台将位于底层低功耗嵌入式平台中的软件功能模块对应的软件升级包发送到Linux平台,所述Linux平台通过第二OTAService进程获取位于 低功耗嵌入式平台中的软件功能模块对应的升级包,并根据获取到的软件升级包对位于低功耗嵌入式平台中的软件功能模块进行软件升级。进一步的,所述将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于低功耗嵌入式平台中的软件功能模块进行升级包括:
通过Linux平台接收位于底层的软件功能模块对应的软件升级包,解析与位于底层的软件功能模块对应的软件升级包的第一版本号;
向低功耗嵌入式平台发送软件更新请求,使所述低功耗嵌入式平台根据所述软件更新请求将与位于底层的软件功能模块对应的软件的第二版本号返回至所述Linux平台;
所述Linux平台接收所述第二版本号,并将所述第一版本号与所述第二版本号进行比较,判断是否对位于底层的软件功能模块进行升级;
若所述第一版本号大于所述第二版本号,则将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级。
进一步的,将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级包括:
通过Linux平台创建与位于底层的软件功能模块对应的软件升级包的软链接,将软链接文件名称发送至所述低功耗嵌入式平台;
所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader引导程序,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包;
所述低功耗嵌入式平台根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,并在升级完成后退出bootloader。
进一步的,所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包之后还包括:
当所述低功耗嵌入式平台读取完与位于底层的软件功能模块对应的软件升级包后,对所述升级包进行校验;
若校验成功,则所述低功耗嵌入式平台向所述Linux平台返回校验成功的提示信息,同时根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,在升级完成后退出bootloader;
若校验失败,则所述低功耗嵌入式平台向Linux平台返回校验失败的提示信息,同时删除与位于底层的软件功能模块对应的软件升级包,退出bootloader;
所述Linux平台在接收到校验成功的提示信息后结束软件更新流程,在接收到校验失败的提示信息后重新向所述低功耗嵌入式平台发起软件更新请求。
以上可以看出,本实施例提供的机器人的软件升级方法同样可以使机器人4实现远程自动化软件升级,无需机器人厂商的售前售后服务工程师介入机器人4的软件升级流程,提高了软件升级效率,且节省了人工成本;此外,本实施例中由于直接将机器人厂商机器人全平台应用软件升级包的OTA融入到客户自定义APP的OTA升级流程中,从而可以给客户提供更统一的OTA升级体验,进一步提升了机器人4的软件升级效率和用户体验。
实施例三
图4是本发明实施例三提供的升级服务器2的结构示意图。为了便于说明,仅仅示出了与本实施例相关的部分。
参见图4所示,本实施例提供的升级服务器2,包括存储器21、处理器22及存储在所述存储器21上并可在所述处理器22上运行的计算机程序23,该所述计算机程序23被所述处理器22执行时,实现如上述实施例一所述的机器人的软件升级方法的步骤。
本实施例的升级服务器2与上述实施例一的机器人的软件升级方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
实施例四
图5是本发明实施例四提供的机器人4的结构示意图。为了便于说明仅仅示出了与本实施例相关的部分。
参见图5所示,本实施例提供的机器人4包括存储器41、处理器42及存储在所述存储器41上并可在所述处理器42上运行的计算机程序43,该所述计算机程序43被所述处理器42执行时,实现如上述实施例二所述的机器人的软件升级方法的步骤。
本实施例的机器人4与上述实施例二的机器人的软件升级方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
实施例五
本发明实施例五提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述实施例一或实施例二所述的机器人的软件升级方法的步骤。
本实施例的计算机可读存储介质与上述实施例一或实施例二的机器人的软件升级方法属于同一构思,其具体实现过程详细见对应的方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (9)
1.一种机器人的软件升级方法,应用于机器人,其特征在于,所述机器人的软件升级方法包括:
通过Android平台接收升级服务器发送的对机器人升级的完整包,对所述完整包进行拆分,分别得到位于应用层的软件功能模块对应的软件升级包及位于底层的软件功能模块对应的软件升级包;所述完整包由所述升级服务器根据机器人全平台应用软件升级包及客户的应用程序构建服务器根据所述机器人全平台应用软件升级包构建的客户APK生成;
通过所述Android平台根据位于应用层的软件功能模块对应的软件升级包对位于应用层的软件功能模块进行软件升级;
通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于底层的软件功能模块进行升级;
所述通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过所述Linux平台对位于底层的软件功能模块进行升级包括:
通过所述Android平台将位于底层的软件功能模块对应的软件升级包发送到Linux平台,通过Linux平台接收位于底层的软件功能模块对应的软件升级包,解析与位于底层的软件功能模块对应的软件升级包的第一版本号;
向低功耗嵌入式平台发送软件更新请求,使所述低功耗嵌入式平台根据所述软件更新请求将与位于底层的软件功能模块对应的软件的第二版本号返回至所述Linux平台;
所述Linux平台接收所述第二版本号,并将所述第一版本号与所述第二版本号进行比较,判断是否对位于底层的软件功能模块进行升级;
若所述第一版本号大于所述第二版本号,则将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级。
2.如权利要求1所述的机器人的软件升级方法,其特征在于,将与位于底层的软件功能模块对应的软件升级包发送至所述低功耗嵌入式平台,使所述低功耗嵌入式平台根据所述软件升级包对位于底层的软件功能模块进行升级包括:
通过Linux平台创建与位于底层的软件功能模块对应的软件升级包的软链接,将软链接文件名称发送至所述低功耗嵌入式平台;
所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包;
所述低功耗嵌入式平台根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,并在升级完成后退出bootloader。
3.如权利要求2所述的机器人的软件升级方法,其特征在于,所述低功耗嵌入式平台接收到所述软链接文件名后跳转至bootloader,并根据所述软链接文件名从所述Linux平台读取与位于底层的软件功能模块对应的软件升级包之后还包括:
当所述低功耗嵌入式平台读取完与位于底层的软件功能模块对应的软件升级包后,对所述升级包进行校验;
若校验成功,则所述低功耗嵌入式平台向所述Linux平台返回校验成功的提示信息,同时根据与位于底层的软件功能模块对应的软件升级包对位于底层的软件功能模块进行升级,在升级完成后退出bootloader;
若校验失败,则所述低功耗嵌入式平台向所述Linux平台返回校验失败的提示信息,同时删除与位于底层的软件功能模块对应的软件升级包,退出bootloader;
所述Linux平台在接收到校验成功的提示信息后结束软件更新流程,在接收到校验失败的提示信息后重新向所述低功耗嵌入式平台发起软件更新请求。
4.一种机器人的软件升级方法,应用于机器人升级服务器,其特征在于,所述机器人的软件升级方法包括:
当检测到预设的软件升级触发条件时,将所述升级服务器中最新版本的机器人全平台应用软件升级包发送至客户的应用程序构建服务器,使所述构建服务器根据所述机器人全平台应用软件升级包构建客户APK,然后对所述客户APK进行测试,在测试通过后将所述客户APK返回至所述升级服务器;
若在预设时间段内接收到所述构建服务器返回的经过完备测试的所述客户APK,则根据所述客户APK和所述机器人全平台应用软件升级包生成对机器人升级的完整包,将所述完整包发送至所述机器人,使所述机器人根据所述完整包采用如权利要求1~3任一项所述的软件升级方法同时进行机器人全平台软件及客户软件升级;和/或,
若在预设时间段内未接收到所述构建服务器返回的客户APK,则终止所述机器人的软件升级流程。
5.如权利要求4所述机器人的软件升级方法,其特征在于,所述最新版本的机器人全平台应用软件升级包为一组确定版本的依赖软件包的集合,所述机器人全平台应用软件升级包和所述依赖软件包的版本规则均为:<主版本>.<次版本>.<增量版本>;
所述依赖软件包的版本号中的主版本号和次版本号分别与所述机器人全平台应用软件升级包的版本号中的主版本号和次版本号相同。
6.如权利要求4所述的机器人的软件升级方法,其特征在于,所述预设的软件升级触发条件包括:
所述升级服务器上有新版本的机器人全平台应用软件升级包发布;或者,所述升级服务器接收到所述机器人发送的软件更新请求。
7.一种升级服务器,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如权利要求4至6中任一项所述的机器人的软件升级方法的步骤。
8.一种机器人,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该所述计算机程序被所述处理器执行时,实现如权利要求1至3中任一项所述的机器人的软件升级方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1~3任一项所述的机器人的软件升级方法的步骤;或者,实现如权利要求4至6中任一项所述的机器人的软件升级方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010023057.9A CN110837388B (zh) | 2020-01-09 | 2020-01-09 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
PCT/CN2021/070669 WO2021139727A1 (zh) | 2020-01-09 | 2021-01-07 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010023057.9A CN110837388B (zh) | 2020-01-09 | 2020-01-09 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837388A CN110837388A (zh) | 2020-02-25 |
CN110837388B true CN110837388B (zh) | 2020-05-29 |
Family
ID=69578608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010023057.9A Active CN110837388B (zh) | 2020-01-09 | 2020-01-09 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110837388B (zh) |
WO (1) | WO2021139727A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837388B (zh) * | 2020-01-09 | 2020-05-29 | 炬星科技(深圳)有限公司 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
CN111309636B (zh) * | 2020-05-14 | 2020-09-08 | 炬星科技(深圳)有限公司 | 机器人自动化测试系统、方法、构建服务器及存储介质 |
CN111722861B (zh) * | 2020-06-17 | 2023-03-10 | 中国第一汽车股份有限公司 | 一种应用程序升级方法、装置、设备及存储介质 |
CN111857767B (zh) * | 2020-06-19 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种基于虚拟机自动迁移的虚拟化系统升级方法及装置 |
CN114090049A (zh) * | 2021-11-30 | 2022-02-25 | 上海有个机器人有限公司 | 机器人远程打包升级方法、系统及相关产品 |
CN113918196B (zh) * | 2021-12-10 | 2022-03-04 | 北京云迹科技有限公司 | 数据处理方法、升级方法、装置、服务器及移动机器人 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110003682A (ko) * | 2009-07-06 | 2011-01-13 | 주식회사 엘지유플러스 | 동일 연결세션에서 동기화 과정과 업그레이드 과정을 수행하는 이동통신 단말기 및 그 제어방법과, 해당 이동통신 단말기와 통신하는 업그레이드 서버 |
CN102098303A (zh) * | 2011-01-21 | 2011-06-15 | 汉柏科技有限公司 | 实现自动化升级的硬件防火墙及其升级方法 |
US9348573B2 (en) * | 2013-12-02 | 2016-05-24 | Qbase, LLC | Installation and fault handling in a distributed system utilizing supervisor and dependency manager nodes |
CN105005491B (zh) * | 2015-08-11 | 2018-06-29 | 上海斐讯数据通信技术有限公司 | 一种Linux内核和应用程序的升级方法及系统 |
KR20170104306A (ko) * | 2016-03-07 | 2017-09-15 | 주식회사 럭스로보 | 모듈 시스템 및 모듈기반 로봇 시스템, 그리고 모듈 시스템의 업데이트 방법 |
KR20180051001A (ko) * | 2016-11-07 | 2018-05-16 | 삼성전자주식회사 | 카메라와 연결되는 전자 장치 및 그 제어 방법 |
CN106897086B (zh) * | 2017-01-13 | 2021-02-26 | 北京光年无限科技有限公司 | 用于升级机器人操作系统的方法、装置及系统 |
CN107291511A (zh) * | 2017-06-30 | 2017-10-24 | 百度在线网络技术(北京)有限公司 | 用于车载安卓系统的应用程序升级的方法和装置 |
CN107566444A (zh) * | 2017-07-13 | 2018-01-09 | 塔米智能科技(北京)有限公司 | 一种机器人远程内容定制服务系统及工作方法 |
CN108377250A (zh) * | 2018-05-08 | 2018-08-07 | 山西乐博特机器人教育科技有限公司 | 教育机器人编程系统 |
CN108845562A (zh) * | 2018-06-09 | 2018-11-20 | 铠龙东方汽车有限公司 | 一种基于车联网的智能车载服务系统 |
CN109508249B (zh) * | 2018-11-15 | 2022-05-31 | 厦门美图之家科技有限公司 | 崩溃处理方法、装置及电子设备 |
CN110378153A (zh) * | 2019-07-18 | 2019-10-25 | 上海擎感智能科技有限公司 | 一种升级包安全下载方法及系统 |
CN110659049A (zh) * | 2019-09-24 | 2020-01-07 | 北京智行者科技有限公司 | 自动驾驶车辆的ota升级方法及终端设备 |
CN110837388B (zh) * | 2020-01-09 | 2020-05-29 | 炬星科技(深圳)有限公司 | 机器人的软件升级方法、升级服务器、机器人及存储介质 |
-
2020
- 2020-01-09 CN CN202010023057.9A patent/CN110837388B/zh active Active
-
2021
- 2021-01-07 WO PCT/CN2021/070669 patent/WO2021139727A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN110837388A (zh) | 2020-02-25 |
WO2021139727A1 (zh) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837388B (zh) | 机器人的软件升级方法、升级服务器、机器人及存储介质 | |
JPWO2009078285A1 (ja) | 無線端末、無線端末の不揮発性メモリ、および診断情報のフェイルセーフ保存方法 | |
JP7345921B2 (ja) | マスタースレーブアーキテクチャのota差分更新方法とシステム | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN110633091A (zh) | 一种电子模块及其软件无线升级方法 | |
CN112612524A (zh) | Linux系统启动的方法、装置、设备及存储介质 | |
CN110569053A (zh) | 电子设备中应用芯片的升级方法及电子设备 | |
WO2016116013A1 (zh) | 软件升级方法和系统 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
CN112015447A (zh) | 电子设备的系统更新方法及装置、电子设备及存储介质 | |
CN111459524A (zh) | 软件的升级方法、装置、系统 | |
CN114489711A (zh) | 终端升级方法、装置及存储介质 | |
CN114138296A (zh) | 一种多系统网关升级方法、设备以及存储介质 | |
CN112214413A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
CN115629777B (zh) | 一种bmc异构升级方法、系统、设备及可读存储介质 | |
US20220391192A1 (en) | Ota master, center, system, method, non-transitory storage medium, and vehicle | |
CN114296764A (zh) | 系统升级方法、装置、存储介质和电子设备 | |
CN113377425A (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN114995845A (zh) | Ota升级方法和设备 | |
CN115658120B (zh) | 微电脑通用的ota升级方法 | |
CN114064086B (zh) | 多级处理器系统及其升级方法 | |
CN112181466B (zh) | 一种语音空调固件云端升级方法及系统 | |
CN112015452B (zh) | 一种闸机系统的固件升级方法、装置及闸机系统 | |
CN114500532A (zh) | 可弹性伸缩集群服务中的应用部署方法及系统 | |
CN113867767A (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 | ||
CP02 | Change in the address of a patent holder |
Address after: 518055 Room 401, block D, building 7, Shenzhen International Innovation Valley, Dashi Road, Xili community, Xili street, Nanshan District, Shenzhen, Guangdong Patentee after: Juxing Technology (Shenzhen) Co., Ltd Address before: 518000 building 101, building R3b, Gaoxin industrial village, No.018, Gaoxin South 7th Road, community, high tech Zone, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Patentee before: Juxing Technology (Shenzhen) Co., Ltd |
|
CP02 | Change in the address of a patent holder |