CN111745650A - 一种机器人操作系统的运行方法和机器人的控制方法 - Google Patents
一种机器人操作系统的运行方法和机器人的控制方法 Download PDFInfo
- Publication number
- CN111745650A CN111745650A CN202010542203.9A CN202010542203A CN111745650A CN 111745650 A CN111745650 A CN 111745650A CN 202010542203 A CN202010542203 A CN 202010542203A CN 111745650 A CN111745650 A CN 111745650A
- Authority
- CN
- China
- Prior art keywords
- kernel
- linux
- linux kernel
- robot
- security
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 230000002159 abnormal effect Effects 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 39
- 230000009471 action Effects 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000003466 welding Methods 0.000 description 23
- 238000005520 cutting process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004080 punching Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/08—Programme-controlled manipulators characterised by modular constructions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及一种机器人操作系统的运行方法和机器人的控制方法。该机器人操作系统的运行方法包括:当机器人操作系统的安全内核和Linux内核均启动时,通过所述安全内核监测所述Linux内核的运行状态;当所述Linux内核运行异常或崩溃时,通过所述安全内核对所述Linux内核进行托管。本发明的技术方案有助于提高机器人运行的稳定性和安全性。
Description
技术领域
本发明涉及机器人技术领域,具体而言,涉及一种机器人操作系统的运行方法和机器人的控制方法。
背景技术
目前,大多数工业机器人操作系统都是针对特定的场景、特定的功能与特定的环境进行设计与开发的。不同的机器人操作系统所对应的需求并不一样,例如分别从通用性和实时性对操作系统的稳定性提出要求。但是,多数机器人操作系统对系统内部异常导致的系统运行故障,甚至是操作系统自身的崩溃缺乏有效的追踪手段,导致难以准确定位操作系统的故障,影响了机器人操作系统的稳定性。
发明内容
针对现有技术的不足,本发明提出一种机器人操作系统及其运行方法。
第一方面,本发明提供了一种机器人操作系统的运行方法,所述机器人操作系统包括安全内核和Linux内核,所述安全内核和所述Linux内核共享物理内存且分别运行于不同的物理内存地址,该方法包括如下步骤:
当所述机器人操作系统的所述安全内核和所述Linux内核均启动时,通过所述安全内核监测所述Linux内核的运行状态;
当所述Linux内核运行异常或崩溃时,通过所述安全内核对所述Linux内核进行托管。
进一步,所述安全内核和所述Linux内核的启动过程包括:
通过基本输入输出系统加载多操作系统启动程序;
通过所述多操作系统启动程序引导所述安全内核启动;
通过所述安全内核引导所述Linux内核启动。
进一步,所述通过所述多操作系统启动程序引导所述安全内核启动包括:
通过所述多操作系统启动程序解析所述安全内核的elf文件;
当确认所述elf文件的Multiboot首部的有效性后,根据所述elf文件的头信息,对所述elf文件的各个段进行重定位,使所述安全内核运行于物理内存的第一物理内存地址。
进一步,所述通过所述安全内核引导所述Linux内核启动包括:
通过所述安全内核加载所述Linux内核,从文件系统读取所述Linux内核的镜像文件,将所述Linux内核解压缩至物理内存的第二物理内存地址;
根据引导菜单的定义,通过所述安全内核加载所述Linux内核的初始RAM磁盘到所述第二物理内存地址。
进一步,当运行于多核处理器上时,其中,所述多核处理器包括主核和从核,所述通过所述安全内核引导所述Linux内核启动包括:
所述安全内核驻留在所述主核上,由所述主核引导所述从核加载所述Linux内核。
进一步,所述通过所述安全内核监测所述Linux内核的运行状态包括:
所述安全内核和所述Linux内核分别将进地址空间映射至各自的物理内存地址;
通过所述安全内核获取所述Linux内核的系统信息,其中,所述系统信息包括中断向量表、进程调度列表和初始进程的内存描述符,所述安全内核获取的所述系统信息用于推导所述Linux内核的运行状态。
进一步,所述通过所述安全内核对所述Linux内核进行托管包括:
当所述Linux内核运行异常或崩溃时,根据所述安全内核获取的所述Linux内核在异常或崩溃前的所述系统信息,由所述安全内核对所述Linux内核进行托管。
进一步,其还包括如下步骤:
所述Linux内核通过所述安全内核与外网进行通信。
进一步,所述Linux内核通过所述安全内核与外网进行通信包括:
所述安全内核接收来自所述Linux内核的指向外网的数据报文,并将所述数据报文转发至外网;
所述安全内核接收来自外网的指向所述Linux内核的数据报文,通过防火墙进行过滤后,将经过滤的数据报文转发至所述Linux内核。
本发明提供的机器人操作系统的运行方法的有益效果是,机器人操作系统包括安全内核和Linux内核,二者共享同一物理内存但分别运行于不同的内存区间,从而隔离二者的运行环境,并可通过安全内核监测Linux内核的运行状态,当Linux内核运行异常或崩溃时,安全内核并不会受影响。一方面,此时可通过安全内核对Linux内核进行托管,另一方面,可通过安全内核所记录的Linux内核的运行状态相关信息推导出Linux内核在异常或崩溃前的运行状态,从而实现对系统故障的有效追踪,进而提高系统整体运行的稳定性与安全性。
第二方面,本发明提供了一种机器人的控制方法,该方法包括如下步骤:
通过机器人操作系统的Linux内核执行机器人的设定动作;
当所述Linux内核运行异常或崩溃时,基于如上所述的机器人操作系统的运行方法,通过所述机器人操作系统的安全内核对所述Linux内核进行托管,以保持所述设定动作为所述Linux内核运行异常或崩溃前的状态,或者使所述机器人平缓回归至执行所述设定动作的初始位置。
其中,所述设定动作包括焊接机器人的焊接动作、冲压机器人的冲压动作和切割机器人的切割动作。
第三方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的机器人操作系统的运行方法或者如上所述的机器人的控制方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的机器人操作系统的运行方法的流程示意图;
图2为本发明实施例的实现系统启动的示意图;
图3为本发明实施例的实现系统监测的示意图;
图4为本发明实施例的实现系统托管的示意图;
图5为本发明实施例的实现系统信息收发的示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明实施例的一种机器人操作系统包括安全内核和Linux内核,所述安全内核和所述Linux内核共享物理内存且分别运行于不同的物理内存地址。
后文也可称安全内核为SafetyOS,称Linux内核为Linux。
其中,Linux主要运行应用程序,以执行机器人的设定动作。需要注意的是,目前主要采用的Windows为封闭式系统,在例如多节点机器人进行通信的应用场景时,需要花费大量精力基于Windows的相关协议开发应用程序。而采用开源的Linux,则可以灵活定制应用程序,且工作人员所需花费的精力更少,可以提高工作效率。
本发明另一实施例的一种机器人操作系统的运行方法应用于如上所述的机器人操作系统,如图1所示,该方法包括如下步骤:
当机器人操作系统的安全内核和Linux内核均启动时,通过所述安全内核监测所述Linux内核的运行状态。
当所述Linux内核运行异常或崩溃时,通过所述安全内核对所述Linux内核进行托管。
具体地,在机器人领域,例如工业焊接机器人,其焊接动作可通过Linux应用程序执行。但是,如果Linux内核发生异常或崩溃时,一方面,现有机器人操作系统的可视化界面主要将以蓝屏或黑屏的方式显示,不利于操作人员准确确定故障原因,另一方面,此时系统进程可能出现混乱的情况,这有可能导致焊接机器人的焊接机械臂失控,而这将对周边设备及人员造成极大的安全隐患。
在本实施例中,机器人操作系统包括安全内核和Linux内核,二者共享同一物理内存但分别运行于不同的内存区间,从而隔离二者的运行环境,并可通过安全内核监测Linux内核的运行状态,当Linux内核运行异常或崩溃时,安全内核并不会受影响。一方面,此时可通过安全内核对Linux内核进行托管,以实现例如保持焊接机械臂为系统发生故障前的状态,或者关闭焊枪并使焊接机械臂缓慢回归至进行焊接前的初始位置,另一方面,可通过安全内核所记录的Linux内核的运行状态相关信息推导出Linux内核在异常或崩溃前的运行状态,从而实现对系统故障的有效追踪,例如工作人员可通过安全内核所记载的发生故障前的Linux内核的各进程信息迅速推断故障原因,并调试升级相关应用程序,进而提高系统整体运行的稳定性与安全性。
可选地,所述安全内核和所述Linux内核的启动过程包括:
上电后,通过基本输入输出系统(BIOS,Basic Input Output System)完成外设、硬件的自检,并加载多操作系统启动程序(GRUB,GRand Unified Bootloader)。
通过所述多操作系统启动程序引导所述安全内核启动。
通过所述安全内核引导所述Linux内核启动。
其中,安全内核和Linux内核是相互独立的,但是安全内核的启动优先级高于Linux内核,故安全内核先于Linux内核启动,并且在GRUB加载安全内核后,由安全内核加载Linux内核。
可选地,所述通过所述多操作系统启动程序引导所述安全内核启动包括:
通过所述多操作系统启动程序解析所述安全内核的elf文件。
当确认所述elf文件的Multiboot首部的有效性后,根据所述elf文件的头信息,对所述elf文件的各个段进行重定位,使所述安全内核运行于物理内存的第一物理内存地址。
可选地,所述通过所述安全内核引导所述Linux内核启动包括:
通过所述安全内核加载所述Linux内核,从文件系统读取所述Linux内核的镜像文件(bzImage),并根据所述镜像文件将所述Linux内核解压缩至物理内存的第二物理内存地址,例如,将所述Linux内核解压缩至0x100000以上的内存地址,或者说指定内存地址。根据引导菜单的定义,通过所述安全内核加载所述Linux内核的初始RAM磁盘(initrd)到所述第二物理内存地址,也就是通过所述安全内核加载所述Linux内核的initrd到指定内存地址。
其中,为了保证安全内核与Linux内核运行环境的隔离,二者分别运行于不同物理内存段。
可选地,当运行于多核处理器上时,其中,所述多核处理器包括主核和从核,所述通过所述安全内核引导所述Linux内核启动包括:
所述安全内核驻留在所述主核上,由所述主核引导所述从核加载所述Linux内核。
具体地,如图2所示,当系统上电启动时,首先进行BIOS POST,也就是基本输入输出系统的上电自检,并通过BIOS加载GRUB进行引导启动。
然后通过GRUB引导SafetyOS启动。
更具体而言,该过程可包括:
GRUB读取磁盘第一个512字节(硬盘的0道0面1扇区,被称为MBR(主引导记录),也称为bootsect)。MBR由一部分Bootloader的引导代码、分区表和魔数三部分组成。
识别SafetyOS的文件系统格式。即GRUB识别到SafetyOS文件系统。
加载SafetyOS系统引导菜单(menu.lst或grub.lst),加载SafetyOS镜像,并且跳转至SafetyOS执行。
通过GRUB的kernel命令解析SafetyOS的elf文件,判断其Multiboot首部的有效性,在有效性完整判断结束之后,根据elf文件的头信息,对SafetyOS的elf文件的各个段进行重定位。SafetyOS可运行在例如内存高地址区域。
最后通过SafetyOS引导Linux启动。
更具体而言,该过程可包括:
SafetyOS启动后,从文件系统中读取Linux的bzImage,并解压缩内核到内存,地址可在1M(0x100000)以上。
SafetyOS根据引导菜单的定义,加载Linux的初始RAM磁盘initrd到指定内存位置。
另外,在多核CPU上,SafetyOS驻留在主核上,由主核引导从核加载Linux。更具体而言,需要首先向从核发送INIT IPI(interprocessor interrupt)命令,之后连续发送两次STARTUP IPI命令。INIT IPI命令与STARTUP IPI命令都是固定的带有参数的指令,通过核间中断的方式进行发送。INIT IPI命令可以使从核自动进行复位操作,并完成上电自检等硬件所需流程。STARTUP IPI命令可以指定从核跳转到实模式执行的指令内容和地址,此时使从核跳转到bzImage解压后的内存地址,在保护模式下执行Linux的启动。从而完成SafetyOS和Linux的启动。
可选地,所述通过所述安全内核监测所述Linux内核的运行状态包括:
所述安全内核和所述Linux内核分别将进地址空间映射至各自的物理内存地址。
通过所述安全内核获取所述Linux内核的系统信息,其中,所述系统信息包括中断向量表、进程调度列表和初始进程的内存描述符,所述安全内核获取的所述系统信息用于推导所述Linux内核的运行状态。
具体地,SafetyOS和Linux共享同一块物理内存,同时又分别运行在不同的物理内存段上。系统在运行时,将进地址空间映射到各自的内存块上,隔离二者的运行环境,以保证SafetyOS不受Linux的影响,同时又可以通过SafetyOS监测Linux的系统信息。
如图3所示,SafetyOS可通过监测模块实现系统监测服务,以获取Linux的各系统信息,例如,通过中断向量表模块获取Linux的中断向量表(IVT table),可通过进程调度列表模块获取Linux的进程调度列表(task_list Scheduler),可通过初始进程模块获取Linux的初始进程的内存描述符(Mm_struct Init Process),还可通过其他进程模块获取Linux的其他进程信息。其中,各模块均可为一段具有相应功能的程序。
SafetyOS可通过Linux的中断向量表、进程调度列表和初始进程的内存描述符实现推导Linux的运行状态。SafetyOS将Linux的上述系统信息映射到SafetyOS管理的内存段,这些信息以共享内存和核间中断的方式由Linux传递给SafetyOS。然后,SafetyOS可借助这些信息推导出Linux的运行情况。例如,SafetyOS比较从Linux获得的中断向量值,判断0x00-0x1F的值,即CPU保护模式下的默认中断向量是否发生变化,如果发生变化则认为Linux已经崩溃。
在机器人领域,例如工业焊接机器人,当确认用于控制机器人焊接动作的应用程序所运行的Linux发生崩溃时,SafetyOS已经记录了崩溃前一时刻的Linux的各进程信息,操作人员可根据SafetyOS记录的信息对故障发生原因进行推断,由于所记录信息包括Linux的中断向量表、进程调度列表和初始进程的内存描述符等,可以快速地确定故障发生原因,例如若确定故障是由机械臂上某一电机过载所致,则可以对针对该电机进行控制的应用程序进行更新与调试,提高后续运行的稳定性和安全性。可选地,所述通过所述安全内核对所述Linux内核进行托管包括:
当所述Linux内核运行异常或崩溃时,根据所述安全内核获取的所述Linux内核在异常或崩溃前的所述系统信息,由所述安全内核对所述Linux内核进行托管。
具体地,如图4所示,在通过监测模块实现系统监测服务以记录Linux的实时系统信息的同时,若检测到Linux出现崩溃或异常等故障时,SafetyOS可通过托管模块对Linux的中断向量表、进程调度列表、初始进程的内存描述符以及其他进程进行访问和控制,以实现托管。更具体而言,通过在Linux发生崩溃或异常前获取到的上述各系统信息,实现SafetyOS对Linux上运行的各应用程序的托管,确保整个系统的安全性。同时,通过SafetyOS记录的信息可以推测Linux出现异常或崩溃的原因,可帮助提升应用程序在机器人操作系统运行的稳定性。其中,监测模块包括中断向量表模块、进程调度列表模块、初始进程模块和其他进程模块等,且各模块均可为一段具有相应功能的程序。
在机器人领域,例如工业焊接机器人,当确认用于控制机器人焊接动作的应用程序所运行的Linux发生崩溃时,由SafetyOS根据已记录的信息对Linux上运行的应用程序进行托管,避免各应用程序因为系统崩溃而出现进程混乱等情况,例如用于控制机械臂运动速度的进程错误而导致机械臂随意摆动。由于SafetyOS已经记录了崩溃前一时刻的Linux的各进程信息,其中包括应用程序调用操作系统资源、操作系统下发给机械臂的指令、机械臂当时运动状态的信息,在托管过程中,可根据这些信息使机械臂保持当时运动状态,或者,从该运动状态所在的位置慢速、平稳地回归至开始焊接动作前的安全的初始位置。可选地,该方法还包括如下步骤:
所述Linux内核通过所述安全内核与外网进行通信。
可选地,所述Linux内核通过所述安全内核与外网进行通信包括:
所述安全内核接收来自所述Linux内核的指向外网的数据报文,并将所述数据报文转发至外网。
所述安全内核接收来自外网的指向所述Linux内核的数据报文,通过防火墙进行过滤后,将经过滤的数据报文转发至所述Linux内核。
具体地,如图5所示,SafetyOS可包括SafetyOS转发服务模块和SafetyOS网络安全模块,Linux可包括Linux应用模块和Linux网络服务模块。当Linux应用模块需要向外网发送数据报文时,由Linux网络服务模块将数据报文发送至SafetyOS网络安全模块,再由SafetyOS转发服务模块将该数据报文发送至外网。当Linux应用模块需要接收来自外网的数据报文时,首先由SafetyOS转发服务模块进行接收,然后通过SafetyOS网络安全模块进行处理,例如建立防火墙过滤各种受限制的数据报文,再将经过滤的数据报文发送至Linux网络服务模块,并最终传送至相应的Linux应用模块,可以有效防止网络攻击,保证系统整体的安全性。
其中,Linux应用模块对应运行于Linux上的各应用程序,在机器人领域,各应用程序可对应机器人所执行的不同设定动作。
本实施例中的机器人操作系统在系统启动时,先启动安全内核,即SafetyOS,SafetyOS启动后引导系统的Linux内核,由SafetyOS负责将整个系统的资源分配给Linux。在Linux启动的过程中,将中断向量表的地址和进程调度列表的地址等以约定的格式通过共享内存的方式传递给SafetyOS,SafetyOS可动态查看Linux的运行情况,并获取相关信息,同时,可以在Linux崩溃时托管整个系统的状态。另外,Linux和外部设备的通信经由SafetyOS接管、控制,通过SafetyOS可防止常见的网络攻击,同时建立防火墙过滤各种受限制的数据报文。
在本发明另一实施例中,一种机器人采用如上所述的操作系统,该机器人的控制方法包括如下步骤:
通过机器人操作系统的Linux内核执行机器人的设定动作。
当所述Linux内核运行异常或崩溃时,基于如上所述的机器人操作系统的运行方法,通过所述机器人操作系统的安全内核对所述Linux内核进行托管,以保持所述设定动作为所述Linux内核运行异常或崩溃前的状态,或者使所述机器人平缓回归至执行所述设定动作的初始位置。
其中,所述设定动作包括焊接机器人的焊接动作、冲压机器人的冲压动作和切割机器人的切割动作。
具体地,在机器人领域,例如工业机器人和武器机器人等,其所执行的往往是较为危险的动作。可通过应用程序控制机器人的设定动作,应用程序运行于操作系统,操作系统包括Linux内核和安全内核,更准确而言,应用程序运行于Linux内核。当机器人基于应用程序执行例如焊接、冲压和切割等动作时,若Linux内核运行异常或崩溃,此时应用程序的进程可能出现混乱,进而导致机器人的动作失控。由于安全内核可实时监测Linux内核的各进程信息,并可在Linux内核崩溃时,根据所记录的崩溃前的Linux内核进程信息对Linux内核上的各应用程序进行托管。
对于例如焊接机器人,一方面,此时可通过安全内核对Linux内核进行托管,以实现例如保持焊接机械臂为系统发生故障前的状态,或者关闭焊枪并使焊接机械臂缓慢回归至进行焊接前的初始位置,另一方面,可通过安全内核所记录的Linux内核的运行状态相关信息推导出Linux内核在异常或崩溃前的运行状态,从而实现对系统故障的有效追踪,例如工作人员可通过安全内核所记载的发生故障前的Linux内核的各进程信息迅速推断故障原因,并调试升级相关应用程序,进而提高系统整体运行的稳定性与安全性。
在本发明另一实施例中,一种计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的机器人操作系统的运行方法。
具体地,实现如上所述的机器人操作系统的运行方法也就是执行如下步骤:
当所述机器人操作系统的安全内核和Linux内核均启动时,通过所述安全内核监测所述Linux内核的运行状态。
当所述Linux内核运行异常或崩溃时,通过所述安全内核对所述Linux内核进行托管。
以及上述实施例中机器人操作系统的运行方法的可选步骤。
在本发明另一实施例中,一种计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上所述的机器人的控制方法。
具体地,实现如上所述的机器人操作系统的运行方法也就是执行如下步骤:
通过机器人操作系统的Linux内核执行机器人的设定动作。
当所述Linux内核运行异常或崩溃时,基于如上所述的机器人操作系统的运行方法,通过所述机器人操作系统的安全内核对所述Linux内核进行托管,以保持所述设定动作为所述Linux内核运行异常或崩溃前的状态,或者使所述机器人平缓回归至执行所述设定动作的初始位置。
其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种机器人操作系统的运行方法,其特征在于,所述机器人操作系统包括安全内核和Linux内核,所述安全内核和所述Linux内核共享物理内存且分别运行于不同的物理内存地址,所述机器人操作系统的运行方法包括:
当所述机器人操作系统的所述安全内核和所述Linux内核均启动时,通过所述安全内核监测所述Linux内核的运行状态;
当所述Linux内核运行异常或崩溃时,通过所述安全内核对所述Linux内核进行托管。
2.根据权利要求1所述的机器人操作系统的运行方法,其特征在于,所述安全内核和所述Linux内核的启动过程包括:
通过基本输入输出系统加载多操作系统启动程序;
通过所述多操作系统启动程序引导所述安全内核启动;
通过所述安全内核引导所述Linux内核启动。
3.根据权利要求2所述的机器人操作系统的运行方法,其特征在于,所述通过所述多操作系统启动程序引导所述安全内核启动包括:
通过所述多操作系统启动程序解析所述安全内核的elf文件;
当确认所述elf文件的Multiboot首部的有效性后,根据所述elf文件的头信息,对所述elf文件的各个段进行重定位,使所述安全内核运行于物理内存的第一物理内存地址。
4.根据权利要求3所述的机器人操作系统的运行方法,其特征在于,所述通过所述安全内核引导所述Linux内核启动包括:
通过所述安全内核加载所述Linux内核,从文件系统读取所述Linux内核的镜像文件,将所述Linux内核解压缩至物理内存的第二物理内存地址;
根据引导菜单的定义,通过所述安全内核加载所述Linux内核的初始RAM磁盘到所述第二物理内存地址。
5.根据权利要求2所述的机器人操作系统的运行方法,其特征在于,当运行于多核处理器上时,其中,所述多核处理器包括主核和从核,所述通过所述安全内核引导所述Linux内核启动包括:
所述安全内核驻留在所述主核上,由所述主核引导所述从核加载所述Linux内核。
6.根据权利要求1所述的机器人操作系统的运行方法,其特征在于,所述通过所述安全内核监测所述Linux内核的运行状态包括:
所述安全内核和所述Linux内核分别将进地址空间映射至各自的物理内存地址;
通过所述安全内核获取所述Linux内核的系统信息,其中,所述系统信息包括中断向量表、进程调度列表和初始进程的内存描述符,所述安全内核获取的所述系统信息用于推导所述Linux内核的运行状态。
7.根据权利要求6所述的机器人操作系统的运行方法,其特征在于,所述通过所述安全内核对所述Linux内核进行托管包括:
当所述Linux内核运行异常或崩溃时,根据所述安全内核获取的所述Linux内核在异常或崩溃前的所述系统信息,由所述安全内核对所述Linux内核进行托管。
8.根据权利要求7所述的机器人操作系统的运行方法,其特征在于,还包括:
所述Linux内核通过所述安全内核与外网进行通信。
9.根据权利要求8所述的机器人操作系统的运行方法,其特征在于,所述Linux内核通过所述安全内核与外网进行通信包括:
所述安全内核接收来自所述Linux内核的指向外网的数据报文,并将所述数据报文转发至外网;
所述安全内核接收来自外网的指向所述Linux内核的数据报文,通过防火墙进行过滤后,将经过滤的数据报文转发至所述Linux内核。
10.一种机器人的控制方法,其特征在于,包括:
通过机器人操作系统的Linux内核执行机器人的设定动作;
当所述Linux内核运行异常或崩溃时,基于如权利要求1至9任一项所述的机器人操作系统的运行方法,通过所述机器人操作系统的安全内核对所述Linux内核进行托管,以保持所述设定动作为所述Linux内核运行异常或崩溃前的状态,或者使所述机器人平缓回归至执行所述设定动作的初始位置。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1至9任一项所述的机器人操作系统的运行方法或者如权利要求10所述的机器人的控制方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542203.9A CN111745650B (zh) | 2020-06-15 | 2020-06-15 | 一种机器人操作系统的运行方法和机器人的控制方法 |
US17/031,903 US11360832B2 (en) | 2020-06-15 | 2020-09-25 | Operation method of robot operating system and a robot control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542203.9A CN111745650B (zh) | 2020-06-15 | 2020-06-15 | 一种机器人操作系统的运行方法和机器人的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111745650A true CN111745650A (zh) | 2020-10-09 |
CN111745650B CN111745650B (zh) | 2021-10-15 |
Family
ID=72675178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010542203.9A Active CN111745650B (zh) | 2020-06-15 | 2020-06-15 | 一种机器人操作系统的运行方法和机器人的控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11360832B2 (zh) |
CN (1) | CN111745650B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256350A (zh) * | 2020-10-26 | 2021-01-22 | 上海华东汽车信息技术有限公司 | 车载系统启动方法、装置、车载装置、车辆及存储介质 |
WO2024012603A1 (zh) * | 2022-07-11 | 2024-01-18 | 合肥杰发科技有限公司 | 基于多操作系统的车载系统及其控制方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138360B (zh) * | 2021-11-12 | 2024-03-26 | 上海华元创信软件有限公司 | DSP在Flash上的多核烧写启动方法及系统 |
CN114124644B (zh) * | 2021-11-17 | 2023-10-03 | 烽火通信科技股份有限公司 | 基于Linux内核态的以太网OAM告警方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204977A (zh) * | 2014-06-30 | 2015-12-30 | 中兴通讯股份有限公司 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
WO2016064433A1 (en) * | 2014-10-24 | 2016-04-28 | Mcafee, Inc. | Agent presence for self-healing |
CN106020932A (zh) * | 2015-05-21 | 2016-10-12 | 中国科学院计算技术研究所 | 一种用于kvm虚拟机系统的安全防护方法及系统 |
CN108762118A (zh) * | 2018-05-24 | 2018-11-06 | 哈工大机器人(合肥)国际创新研究院 | 一种通讯设备间的故障处理方法及装置 |
CN110000779A (zh) * | 2019-03-25 | 2019-07-12 | 上海科技大学 | 基于二维码的容错自校正工业机器人手臂控制方法 |
CN110712205A (zh) * | 2019-10-11 | 2020-01-21 | 深圳前海达闼云端智能科技有限公司 | 异常监控方法、电子设备及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10265848B2 (en) * | 2014-07-08 | 2019-04-23 | Beihang University | Robotic hybrid system application framework based on multi-core processor architecture |
WO2018119811A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机同时运行的方法、装置及电子设备 |
CN108064377B (zh) * | 2017-08-08 | 2023-01-24 | 深圳前海达闼云端智能科技有限公司 | 一种多系统共享内存的管理方法及装置 |
CN109597677B (zh) * | 2018-12-07 | 2020-05-22 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
-
2020
- 2020-06-15 CN CN202010542203.9A patent/CN111745650B/zh active Active
- 2020-09-25 US US17/031,903 patent/US11360832B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204977A (zh) * | 2014-06-30 | 2015-12-30 | 中兴通讯股份有限公司 | 一种系统异常的捕获方法、主系统、影子系统及智能设备 |
WO2016064433A1 (en) * | 2014-10-24 | 2016-04-28 | Mcafee, Inc. | Agent presence for self-healing |
CN106020932A (zh) * | 2015-05-21 | 2016-10-12 | 中国科学院计算技术研究所 | 一种用于kvm虚拟机系统的安全防护方法及系统 |
CN108762118A (zh) * | 2018-05-24 | 2018-11-06 | 哈工大机器人(合肥)国际创新研究院 | 一种通讯设备间的故障处理方法及装置 |
CN110000779A (zh) * | 2019-03-25 | 2019-07-12 | 上海科技大学 | 基于二维码的容错自校正工业机器人手臂控制方法 |
CN110712205A (zh) * | 2019-10-11 | 2020-01-21 | 深圳前海达闼云端智能科技有限公司 | 异常监控方法、电子设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
于振中,等.: "《基于MQTT的数据加密传输算法》", 《计算机系统应用》 * |
李晓瑜,等.: "《最新电脑组装/应用/故障排除技巧800例》", 31 October 2008 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256350A (zh) * | 2020-10-26 | 2021-01-22 | 上海华东汽车信息技术有限公司 | 车载系统启动方法、装置、车载装置、车辆及存储介质 |
WO2024012603A1 (zh) * | 2022-07-11 | 2024-01-18 | 合肥杰发科技有限公司 | 基于多操作系统的车载系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210011786A1 (en) | 2021-01-14 |
CN111745650B (zh) | 2021-10-15 |
US11360832B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111745650B (zh) | 一种机器人操作系统的运行方法和机器人的控制方法 | |
JP7510503B2 (ja) | 自動運転制御システム、制御方法及び装置 | |
US7721153B2 (en) | System, method and program product for recovering from a failure | |
US7984449B2 (en) | In-band communication with virtual machines via a hypervisor message bus | |
CN112092824B (zh) | 一种自动驾驶控制方法、系统、设备及存储介质 | |
JP6971016B2 (ja) | 制御装置、制御方法およびプログラム | |
US20220055637A1 (en) | Electronic control unit and computer readable medium | |
CN106997313B (zh) | 一种应用程序的信号处理方法、系统及终端设备 | |
CN115292077A (zh) | 内核异常处理方法及系统 | |
US10838815B2 (en) | Fault tolerant and diagnostic boot | |
CN112328297B (zh) | 一种在Linux上兼容运行的Android系统的升级方法与装置 | |
CN115904793B (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
CN108399330B (zh) | 监控可编程逻辑控制器的执行系统的系统和方法 | |
US10162724B2 (en) | Technique for inspecting a host computer | |
CN114826886A (zh) | 一种应用软件容灾方法、装置及电子设备 | |
JP4883492B2 (ja) | 仮想マシン管理システムおよび計算機、並びに、プログラム | |
JP2012181737A (ja) | 計算機システム | |
JP4633553B2 (ja) | デバッグシステム、デバッグ方法およびプログラム | |
US11652683B2 (en) | Failure notification system, failure notification method, failure notification device, and failure notification program | |
CN114036080B (zh) | 一种显示终端使用通信串口升级程序的方法及装置 | |
CN116389226A (zh) | 云服务器诊断方法、计算机集群系统、电子设备和介质 | |
CN117412319A (zh) | 异常检测程序的切换方法、装置、设备及存储介质 | |
CN117555751A (zh) | 一种用于ros2进程守护的软件系统 | |
CN116431289A (zh) | Docker容器维护系统、方法、设备及存储介质 | |
CN111158768A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221010 Address after: Room 316, Building 3, Zone C, Intelligent Science Park, No. 3963, Susong Road, Hefei Economic and Technological Development Zone, Anhui Province, 230051 Patentee after: Hefei Hagong Xuanyuan Intelligent Technology Co.,Ltd. Address before: 230000 Intelligent Technology Park 100m north of the intersection of Susong road and Guanhai Road, Shushan District, Hefei City, Anhui Province Patentee before: HRG INTERNATIONAL INSTITUTE FOR RESEARCH & INNOVATION |