CN117484491A - 机器人控制方法、装置、设备及介质 - Google Patents
机器人控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117484491A CN117484491A CN202311378588.XA CN202311378588A CN117484491A CN 117484491 A CN117484491 A CN 117484491A CN 202311378588 A CN202311378588 A CN 202311378588A CN 117484491 A CN117484491 A CN 117484491A
- Authority
- CN
- China
- Prior art keywords
- data
- robot
- correction
- pose
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012937 correction Methods 0.000 claims abstract description 139
- 230000009471 action Effects 0.000 claims abstract description 95
- 230000033001 locomotion Effects 0.000 claims abstract description 55
- 238000001914 filtration Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
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/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
- B25J13/00—Controls for manipulators
-
- 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
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
本申请实施例提供机器人控制方法、装置、设备及介质。该方法服务器实时接收机器人执行动作指令数据时反馈的位姿数据;基于所述机器人对应的所述位姿数据,判断是否需要修正;若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;将所述修正数据实时发送至所述目标机器人。通过上述方案,对机器人执行动作指令数据后产生的位姿数据与预期的动作指令数据是否符合预期,如不符合,则需要修正,进而基于位置数据和动作指令数据去计算修正数据。并将计算得到的修正数据精准的发送给目标机器人,以便目标机器人在下一个动作周期内进行修正或者下一个关键点内进行修正,解决无法及时修正的问题。
Description
技术领域
本申请涉及机器人控制技术领域,尤其涉及机器人控制方法、装置、设备及介质。
背景技术
随着机器人技术的发展,各式各样的机器人展现在人们面前。机器人逐步出现在各种应用场景中。为了满足各种应用场景的应用需求,出现了各种形态的机器人。比如,人形机器人,清洁机器人,工业装配机器人,配送机器人等等。
在一些应用场景中,可能需要多机器人共同协作完成某项任务。由于每个机器人都是一个独立的个体,都有其自己的控制器,在集群协作过程中,难免因为某些因素(比如,机器人硬件差异或者环境因素)导致机器人集群中同步效果不佳。
发明内容
本申请实施例提供机器人控制方法、装置、设备及介质,用以提升机器人协同控制同步效果的方案。
第一方面,本申请实施例提供一种机器人控制方法,所述方法
服务器实时接收机器人执行动作指令数据时反馈的位姿数据;
基于所述机器人对应的所述位姿数据,判断是否需要修正;
若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;
将所述修正数据实时发送至所述目标机器人。
可选地,所述位姿数据包括位置数据和姿态数据,所述基于所述机器人对应的所述位姿数据,判断是否需要修正,包括:
比较机器人对应的姿态数据和所述动作指令数据中的指令姿态数据;
若所述目标机器人的位置数据与指令位置数据的比较结果大于位置阈值,则确定所述目标机器人的位置需要修正;和/或,
若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正。
可选地,所述若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正,包括:
确定当前时刻的所述目标机器人的所述指令姿态数据与姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的姿态动作的姿态修正数据,所述姿态修正数据包括:姿态修正速度和姿态修正时间。
可选地,所述基于所述机器人对应的所述位姿数据,判断是否需要修正,包括:
当所述动作指令数据对应的动作类型为关键点动作时,则比较位置数据和所述动作指令数据中的指令位置数据,以及比较姿态数据和所述动作指令数据中的指令姿态数据;
若存在目标机器人的比较结果为大于位置差值阈值,则确定至少一个所述目标机器人需要修正。
可选地,所述若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据,包括:
确定关键点动作对应的关键时刻,以及所述关键时刻对应的所述位置数据与所述指令位置数据、姿态数据与指令姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的本体位姿的位置修正数据和姿态修正数据,所述位置修正数据包括:本体坐标,所述姿态修正数据包括姿态修正速度和姿态修正时间。
可选地,接收机器人执行动作指令数据时反馈的位姿数据之前,还包括:
向所述机器人发送用于执行目标子动作的动作指令数据。
可选地,接收机器人执行动作指令数据时反馈的位姿数据之后,还包括:
对通过惯性测量单元获取到的姿态数据和通过视觉传感器获取到的位置数据进行去噪、滤波处理。
第二方面,本申请实施例提供一种机器人控制装置,应用于服务器,所述装置包括:
接收模块,用于实时接收机器人执行动作指令数据时反馈的位姿数据;
判断模块,用于基于所述机器人对应的所述位姿数据,判断是否需要修正;
确定模块,用于若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;
发送模块,用于将所述修正数据实时发送至所述目标机器人。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括:存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现上述第一方面所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质被执行时能够实现第一方面方法中的步骤。
本申请实施例提供的机器人控制方法、系统、设备及介质中,接收机器人执行动作指令数据时反馈的位姿数据;基于所述机器人对应的所述位姿数据,判断是否需要修正;若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;将所述修正数据实时发送至所述目标机器人。通过上述方案,对机器人执行动作指令数据后产生的位姿数据与预期的动作指令数据是否符合预期,如不符合,则需要修正,进而基于位置数据和动作指令数据去计算修正数据。并将计算得到的修正数据精准的发送给目标机器人,以便目标机器人在下一个动作周期内进行修正或者下一个关键点内进行修正,解决无法及时修正的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提出的机器人控制方法的流程示意图;
图2为本申请实施例提供的机器人控制系统的示意图;
图3为本申请实施例提供的一种机器人控制装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
在现有技术中,随着机器人技术的发展,各式各样的机器人展现在人们面前。机器人逐步出现在各种应用场景中。为了满足各种应用场景的应用需求,出现了各种形态的机器人。比如,人形机器人,清洁机器人,工业装配机器人,配送机器人等等。在一些应用场景中,可能需要多机器人共同协作完成某项任务。由于每个机器人都是一个独立的个体,都有其自己的控制器,在集群或编队协作过程中,难免因为某些因素(比如,机器人硬件差异或者环境因素)导致机器人集群中同步效果不佳或协作效果不佳。例如,以舞蹈机器人集群跳舞为例,机器人在执行舞蹈动作时,可能会因为机器人自身的硬件误差、环境影响等因素,导致舞蹈动作的偏差。其次,由于没有对多机器人协同的有效管理,可能会导致多机器人之间的舞蹈动作不同步,影响舞蹈的整体效果。因此,需要一种能够有效提高多机器人动作协同效果的方案。
本申请实施例提出一种机器人控制方法。如图1为本申请实施例提出的机器人控制方法的流程示意图。从图1中可以看到,所述方法包括如下步骤:
步骤101:服务器实时接收机器人执行动作指令数据时反馈的位姿数据。
步骤102:基于所述机器人对应的所述位姿数据,判断是否需要修正。
步骤103:若从所述机器中确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据。
步骤104:将所述修正数据实时发送至所述目标机器人。
这里所说的机器人,可以是在地面移动的机器人、也可以是能够飞行的机器人(比如,各种形式的飞行器)。各种类型的机器人都能够根据需要组建集群或者编队。
需要说明的是,所述位姿数据包括位置数据和姿态数据。因此,在判断位姿数据是否需要修正的时候,分别针对位置数据和姿态数据分别进行判断。
容易理解的是,在由多个机器人组成的集群或者编队中,各个机器人都有自己的空间坐标(如两个机器人的坐标完全相同则会发生机器人碰撞的问题出现呢),也就是各个机器人都有其特有的位置数据和姿态数据;当然,在有的情况下,可能会存在多个机器人具有相同的姿态数据。
因此,与多个机器人进行交互的服务器在向机器人发送动作指令数据的时候,需要针对不同机器人发送其对应的动作指令数据。这里所说的动作指令数据,包括指示机器人接下来动作中如何走位(也就是移动到空间中哪个坐标位置),可以通过步数方式或者具体坐标方式控制机器人走位。该动作指令数据还包括机器人的姿态动作的角度、动作速度(通过机器人各轴电机参数实现控制)。
此外,针对不同类型位姿数据(包括位置数据和姿态数据)是否需要修正的判断方式不同,具体将在下述实施例中展开说明,这里就不再重复赘述。
在本申请的一个或者多个实施例中,接收多个机器人执行动作指令数据时反馈的位姿数据之前,还包括:向所述多个机器人发送用于执行目标子动作的动作指令数据。
在实际应用中,服务器会将各个机器人接下来要一套完整的动作拆分为一系类的多个目标子动作。进而,生成各目标子动作对应的动作指令数据。
在对一套完整动作进行拆分的时候,可以依据各种标准进行拆分,比如,根据物理空间关系拆分,可以按照动作的关键点拆分,也可以按照时间拆分等等。
根据物理空间拆分例如,在圆形舞台上,观众围绕舞台环形就坐,机器人举起电子显示屏绕场一周,要确保电子显示屏一直面向观众,也就意味着电子显示屏所在平面时刻保持与圆形舞台直径垂直,或者说,电子显示屏所在直线为圆形舞台的切线。那么,可以对机器人绕场一周的动作进行拆分。在拆分的时候,可以将360度拆分为36份,每10度为一组目标子动作,也就是拆分得到36组目标子动作。
按照动作的关键点拆分,例如,机器人从有一整套舞蹈动作中包括原地旋转,随后前空翻,进而原地跳跃三个关键动作,则可以将该整套舞蹈动作拆分为三个目标子动作,分别是原地旋转子动作、前空翻子动作和原地跳跃子动作。这个关键点对应的关键时刻可以是上一个动作结束的时刻或者下一个动作开始的时刻。
按照时间拆分,例如,若一整套舞蹈动作时长为10分钟,则可以拆分为2分钟一组的目标子动作。一共可以拆分得到5组的目标子动作。
那服务器在发送动作数据指令的时候,将按照目标子动作的先后顺序依次发送给对应的目标机器人。一般来说,会在上一个动作执行完之前,将下一个目标子动作对应的动作指令数据发送给该目标机器人。从而确保机器人动作连贯执行。并且,在发送下一个目标子动作之前可以对动作指令数据进行修正。具体修正方案将在下述实施例中展开说明,这里就不再重复赘述。
在实际应用中,所述基于所述多个机器人对应的所述位姿数据,判断是否需要修正,包括:比较机器人分别对应的姿态数据和所述动作指令数据中的指令姿态数据;若所述目标机器人的位置数据与指令位置数据的比较结果大于位置阈值,则确定所述目标机器人的位置需要修正;和/或,
若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正。
在实际应用中,服务器给机器人发送动作指令数据的时候,可以知道用于执行该动作指令数据对应指令姿态数据,以及机器人反馈的姿态数据。比如,电机转动的角度、速度等参数。若指令姿态数据与姿态数据一致,则认为不需要修正,若指令姿态数据与姿态数据之间的差值大于设定的姿态差值阈值,则认为误差较大,需要进行修正。
可以通过实时接收机器人反馈数据的方式,实时判断机器人的姿态动作是否需要修正,能够及时发现机器人动作一致性问题,快速调整修正。若节拍过快或者过慢,则需要对下一组子动作对应的数据做修正。若出现动作错误,则可以直接等到下一组子动作对用的动作指令数据自动完成动作纠正,而不需要进行数据修正。
机器人的位姿数据可以通过传感器采集得到,可以在机器人上安装有惯性测量单元(Inertial Measurement Unit,IMU)和视觉传感器。其中惯性测量单元IMU用于测量姿态数据,比如,角度、速度、加速度等。视觉传感器,比如摄像头或者激光雷达等,用于测量并确定机器人的空间定位。
在本申请的一个或者多个实施例中,所述若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正,包括:
确定当前时刻的所述目标机器人的所述指令姿态数据与姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的姿态动作的姿态修正数据,所述姿态修正数据包括:姿态修正速度和姿态修正时间。
在基于上述步骤确定需要对姿态动作进行修正之后,进一步,会根据指令姿态数据与姿态数据之间的差值,确定姿态修正数据。
需要说明的是,在本申请方案中,基于指令姿态数据和姿态数据可以知道这两个数据之间的差值,进而,基于差值计算得到的修正数据。比如,举例说明姿态动作节拍慢的例子,当前时刻接收到的姿态数据中某个机械臂上某个电机的转过角度为θ1,而对应的指令姿态数据应该为θ2,计算θ1-θ2=θ,电机正常驱动角速度为v。可知,机器人的姿态动作偏慢,则需要在下一个动作中及时修正。那么经过计算可以知道姿态修正时间为t=θ/v。假设,下一个子动作的动作时间长度为t1,角速度仍然为v。那么要在下一个动作周期内完成修正,则极端得到姿态修正速度为V1=v(t1+t)/t1。也就是在下一个动作周期内动作速度进行修正。
姿态动作快的情况下计算姿态修正速度和姿态修正时间与之类似,这里就不再重复赘述。
通过上述方案,在发现姿态动作节拍与实际要求不同的时候,可以通过下一组指令姿态数据及时修正,而不需要跳过节拍,解决无法及时修正的问题。
在本申请的一个或者多个实施例中,所述基于所述多个机器人对应的所述位姿数据,判断是否需要修正,包括:
当所述动作指令数据对应的动作类型为关键点动作时,则比较所述位置数据和所述动作指令数据中的指令位置数据,以及比较姿态数据和所述动作指令数据中的指令姿态数据;
若存在至少一个目标机器人的比较结果为大于位置差值阈值,则确定至少一个所述目标机器人需要修正。
如前文所述,服务器向机器人发送动作指令数据的时候,不是一次性发送一整套的动作指令数据,而是每次发送一个子动作的动作指令数据。因此,可以针对各子动作的复杂程度,从中选择至少部分或者全部的子动作作为关键点动作。比如,机器人发生跳跃、旋转、空翻等容易发生坐标偏移、姿态偏差的动作标记为关键点动作,机器人执行完这些动作之后,需要及时对机器人位置和姿态进行修正。
这里所说的位置数据可以包括在平面中的二维坐标数据,或者空间中的三维坐标数据等本体坐标。这里所说的指令位置数据可以是坐标数据或者位移数据。进而,将两个坐标数据进行比较,若两个坐标之间的差值大于位置差值阈值,则需要进行修正。
机器人在空间中的坐标位置不会频发或大幅度发生偏差错误,因此,不需要实时监控或检测,只需要在其中设置关键点对坐标进行修正就可以了。修正更加及时,避免出现累积偏差。同时,在机器人集群中及时修正,避免出现位置偏差、姿态偏差的机器人对集群中其他相邻机器人产生影响。
这里需要说明的是,机器人在当前平面空间中可以基于预设地图以及所移动的步数计算出机器人当前在地图中的坐标。此外,还可以通过在机器人上安装视觉传感器,通过对周围环境和相邻机器人检测,进而实现空间定位。此外,还可以在机器人活动场所设置至少一个全局视觉传感器,通过俯视角检测各个机器人在舞台中的位置,进而确定各个机器人的坐标。而机器人在各个时刻对应于舞台中的坐标则是可以通过动作指令数据预先设定的。此外,当多个机器人共同组成机器人集群的时候,可以结合多个机器人的位姿数据综合比较来判断机器人集群中是否存在某个目标机器人的位姿数据与其他机器人相比存在明显偏差。
在本申请的一个或者多个实施例中,所述若从所述多个机器中确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据,包括:
确定关键点动作对应的关键时刻,以及所述关键时刻对应的所述位置数据与所述指令位置数据、姿态数据与指令姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的本体位姿的位置修正数据和所述姿态修正数据,所述位置修正数据包括:本体坐标,所述姿态修正数据包括姿态修正速度和姿态修正时间。
需要说明的是,在本申请方案中,通过比较关键时刻位置数据与指令位置数据中的坐标,可以进一步判断机器人在舞台中的位置是否需要校正。比如,通过前文所述的方式,检测到位置数据中的坐标为A(x1,y1),对应的指令位置数据中的坐标为B(x2,y2)。计算A与B之间的距离大于本体阈值C,则认为需要修正。可以将坐标B作为位置修正数据中的本体坐标。当然,也可以基于A与B的差值计算步数,并将部署作为位置修正数据发送给机器人。需要说明的是,姿态修正数据包括:姿态修正速度和姿态修正时间,姿态数据修正方式在前文实施例中已经做了说明,这里就不再重复赘述。
通过上述方案,针对可以预见的关键点进行坐标修正,能够避免空间位置偏差过大的问题出现,同时又不会频繁修正。
在本申请的一个或者多个实施例中,接收机器人执行动作指令数据时反馈的位姿数据之后,还包括:对通过惯性测量单元获取到的姿态数据和通过视觉传感器获取到的位置数据进行去噪、滤波处理。
对传感器数据进行预处理,包括滤波和去噪声,是数据准确性非常重要的步骤。滤波:滤波是一种基于信号处理的技术,用来减少或消除数据中的噪声,以提取有用的信号。对于传感器数据,特别是IMU和视角传感器,滤波是非常重要的。以下是一些常用的滤波技术:
卡尔曼滤波:这是一种非常有效的滤波方法,特别适合处理具有不确定性的动态系统。它结合了系统的预测能力和测量更新,以产生精确的估计。
低通滤波器:低通滤波器会减少信号的频率分量,以消除噪声。例如,移动平均滤波器是一种简单但有效的低通滤波器。
适应性滤波器:适应性滤波器可以根据输入数据的特性自动调整其参数。例如,最小均方(LMS)算法是一种自适应滤波器,可以根据输入数据自动调整其权重。
去噪:去噪是消除数据中的噪声或干扰的过程。以下是一些常用的去噪技术:
阈值去噪:这种方法将那些小于某个特定阈值的信号视为噪声并消除。阈值可以根据数据的特性或经验值来设定。
小波去噪:小波去噪利用小波分析将信号分解为不同的频率组成部分,然后去除那些被认为是噪声的频率成分。
非局部均值去噪:这种方法将每个像素的值替换为其邻域像素的加权平均值,权值取决于像素之间的相似性。
通过上述滤波、去噪处理后得到的数据更加准确。
基于同样的思路,本申请实施例还提供一种机器人控制系统。如图2为本申请实施例提供的机器人控制系统的示意图。从图2中可以看到,该系统包括:
至少一个机器人,至少一个服务器。
这些机器人在舞台平面中都有各自的坐标位置,而且执行各自的姿态动作。
服务器会将一整套舞蹈动作中拆分后的子动作对应的动作指令数据发送给各个机器人,各个机器人执行动作指令数据的同时,会实时向服务器反馈当前姿态数据,以便服务器判断是否需要进行姿态动作的修正。
同时,服务器还针对其中一些动作标记上关键点,当执行关键点动作的时候,会进一步判断一下机器人是否需要进行坐标修正。
具体判断姿态修正、坐标修正的判断方式以及修正方式在前文实施例中已经展开说明,这里就不再重复赘述,具体可以参见前文所述各实施例。
需要说明的是,机器人硬件:具备人形的特性,设计有头部、手臂、腰部以及底盘,每个部位均可独立运动。底盘设计有导航和移动(轮子、履带等)功能,能够自行在空间内进行定位并移动。其中,机器人传感器配置:在机器人底盘上安装有IMU和视觉传感器。IMU负责测量和反馈机器人的位置和姿态数据,包括速度、加速度、角速度等。视觉传感器,如摄像头或激光雷达等,负责捕捉周围环境的视觉信息,提供额外的空间定位参考。数据上报:以上的位置和姿态数据以及视觉信息,通过云服务器实时上报,用于生成动画修正指令。
服务器可以是云服务器,在接收到机器人上报的数据后可以进行滤波、去噪等预处理工作。当然,还可以接收关键点对应关键时刻的数据。在判断需要修正之后,进一步生成修正指令。在计算位姿数据差值的时候,可以使用卡尔曼滤波、扩展卡尔曼滤波等算法,实时计算偏差值。采样云服务器对机器人控制实时效果更好,并且云服务器数据处理能力强,能够实现对多个机器人构成的群组的整体控制。
作为一可选方案,在服务器中可以运行动画驱动系统,同时利用动画驱动系统执行修正数据(姿态修正数据和/或位置修正数据)。具体来说,接收修正数据后,配合骨骼动画驱动指令:在骨骼动画编舞的过程中,当机器人本体的底盘不移动超过某个阈值,比如10s,可以在这10s中选出5s,打上标记flag1和flag2,其中flag1代表可以修正开始的关键时刻,flag2代表停止修正的关键时刻。换言之,当flag1事件发生时,结合缓存的修正数据,调整机器人的位置和姿态。当flag2事件发生时,停止修正指令,等待后续的下一组子动作的动作指令数据的下发。
基于同样的思路,本申请实施例还提供一种机器人控制装置。如图3为本申请实施例提供的一种机器人控制装置的结构示意图。从图3中可以看到,所述装置包括:
接收模块31,用于实时接收机器人执行动作指令数据时反馈的位姿数据。
判断模块32,用于基于所述机器人对应的所述位姿数据,判断是否需要修正。
确定模块33,用于若从所述机器中确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据。
发送模块34,用于将所述修正数据实时发送至所述目标机器人。
发送模块34,用于向所述机器人发送用于执行目标子动作的动作指令数据。
可选地,所述位姿数据包括位置数据和姿态数据。
判断模块32,用于比较机器人分别对应的姿态数据和所述动作指令数据中的指令姿态数据;
若所述目标机器人的位置数据与指令位置数据的比较结果大于位置阈值,则确定所述目标机器人的位置需要修正;和/或,
若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正。
确定模块33,用于确定当前时刻的所述目标机器人的所述指令姿态数据与姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的姿态动作的姿态修正数据,所述姿态修正数据包括:姿态修正速度和姿态修正时间。
判断模块32,用于当所述动作指令数据对应的动作类型为关键点动作时,则比较所述位置数据和所述动作指令数据中的指令位置数据,以及比较姿态数据和所述动作指令数据中的指令姿态数据;
若存在至少一个目标机器人的比较结果为大于位置差值阈值,则确定至少一个所述目标机器人需要修正。
确定模块33,用于确定关键点动作对应的关键时刻,以及所述关键时刻对应的所述位置数据与所述指令位置数据、姿态数据与指令姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的本体位姿的位置修正数据和所述姿态修正数据,所述位置修正数据包括:本体坐标,所述姿态修正数据包括姿态修正速度和姿态修正时间。
可选地,还包括预处理模块35,用于对通过惯性测量单元获取到的姿态数据和通过视觉传感器获取到的位置数据进行去噪、滤波处理。
本申请一个实施例还提供一种电子设备。该电子设备为计算单元中主节点电子设备。如图4为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括存储器401、处理器402及通信组件403;其中,
所述存储器401,用于存储程序;
所述处理器402,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:
实时接收机器人执行动作指令数据时反馈的位姿数据;
基于所述机器人对应的所述位姿数据,判断是否需要修正;
若从所述机器中确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;
将所述修正数据实时发送至所述目标机器人。
处理器402,用于向所述机器人发送用于执行目标子动作的动作指令数据。
可选地,所述位姿数据包括位置数据和姿态数据。
处理器402,比较机器人分别对应的姿态数据和所述动作指令数据中的指令姿态数据;
若所述目标机器人的位置数据与指令位置数据的比较结果大于位置阈值,则确定所述目标机器人的位置需要修正;和/或,
若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正。
处理器402,确定当前时刻的所述目标机器人的所述指令姿态数据与姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的姿态动作的姿态修正数据,所述姿态修正数据包括:姿态修正速度和姿态修正时间。
处理器402,当所述动作指令数据对应的动作类型为关键点动作时,则比较所述位置数据和所述动作指令数据中的指令位置数据,以及比较姿态数据和所述动作指令数据中的指令姿态数据;
若存在至少一个目标机器人的比较结果为大于位置差值阈值,则确定至少一个所述目标机器人需要修正。
处理器402,用于确定关键点动作对应的关键时刻,以及所述关键时刻对应的所述位置数据与所述指令位置数据、姿态数据与指令姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的本体位姿的位置修正数据和所述姿态修正数据,所述位置修正数据包括:本体坐标,所述姿态修正数据包括姿态修正速度和姿态修正时间。
处理器402,用于向所述机器人发送用于执行目标子动作的动作指令数据。
处理器402,用于对通过惯性测量单元获取到的姿态数据和通过视觉传感器获取到的位置数据进行去噪、滤波处理。
上述存储器401可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
进一步地,本实施例中的所述处理器402可以具体是:可编程交换处理芯片,该可编程交换处理芯片中配置有数据复制引擎,能对接收到的数据进行复制。
上述处理器402在执行存储器中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面各实施例的描述。进一步,如图4所示,电子设备还包括:电源组件404等其它组件。
本申请实施例还提供一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行图1和图3对应实施例所述的方法。
基于上述实施例可知,服务器实时接收多个机器人执行动作指令数据时反馈的位姿数据;基于所述多个机器人对应的所述位姿数据,判断是否需要修正;若从所述多个机器中确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;将所述修正数据实时发送至所述目标机器人。通过上述方案,对机器人执行动作指令数据后产生的位姿数据与预期的动作指令数据是否符合预期,如不符合,则需要修正,进而基于位置数据和动作指令数据去计算修正数据。并将计算得到的修正数据精准的发送给目标机器人,以便目标机器人在下一个动作周期内进行修正或者下一个关键点内进行修正,解决无法及时修正的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中创建的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中创建的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中创建的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪存储体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种机器人控制方法,其特征在于,应用于服务器,所述方法包括:
服务器实时接收机器人执行动作指令数据时反馈的位姿数据;
基于所述机器人对应的所述位姿数据,判断是否需要修正;
若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;
将所述修正数据实时发送至所述目标机器人。
2.根据权利要求1所述的方法,其特征在于,所述位姿数据包括位置数据和姿态数据,所述基于所述机器人对应的所述位姿数据,判断是否需要修正,包括:
比较机器人对应的姿态数据和所述动作指令数据中的指令姿态数据;
若所述目标机器人的位置数据与指令位置数据的比较结果大于位置阈值,则确定所述目标机器人的位置需要修正;和/或,
若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正。
3.根据权利要求2所述的方法,其特征在于,所述若所述目标机器人的姿态数据与指令姿态数据的比较结果大于姿态阈值,则确定所述目标机器人的姿态需要修正,包括:
确定当前时刻的所述目标机器人的所述指令姿态数据与姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的姿态动作的姿态修正数据,所述姿态修正数据包括:姿态修正速度和姿态修正时间。
4.根据权利要求1所述的方法,其特征在于,所述基于所述机器人对应的所述位姿数据,判断是否需要修正,包括:
当所述动作指令数据对应的动作类型为关键点动作时,则比较位置数据和所述动作指令数据中的指令位置数据,以及比较姿态数据和所述动作指令数据中的指令姿态数据;
若存在目标机器人的比较结果为大于位置差值阈值,则确定至少一个所述目标机器人需要修正。
5.根据权利要求4所述的方法,其特征在于,所述若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据,包括:
确定关键点动作对应的关键时刻,以及所述关键时刻对应的所述位置数据与所述指令位置数据、姿态数据与指令姿态数据之间的比较结果;
基于比较结果,确定用于修正所述目标机器人的本体位姿的位置修正数据和姿态修正数据,所述位置修正数据包括:本体坐标,所述姿态修正数据包括姿态修正速度和姿态修正时间。
6.根据权利要求1所述的方法,其特征在于,接收机器人执行动作指令数据时反馈的位姿数据之前,还包括:
向所述机器人发送用于执行目标子动作的动作指令数据。
7.根据权利要求1所述的方法,其特征在于,接收机器人执行动作指令数据时反馈的位姿数据之后,还包括:
对通过惯性测量单元获取到的姿态数据和通过视觉传感器获取到的位置数据进行去噪、滤波处理。
8.一种机器人控制装置,其特征在于,应用于服务器,所述装置包括:
接收模块,用于实时接收机器人执行动作指令数据时反馈的位姿数据;
判断模块,用于基于所述机器人对应的所述位姿数据,判断是否需要修正;
确定模块,用于若确定需要修正的目标机器人,则基于所述位姿数据与动作指令数据确定修正数据;
发送模块,用于将所述修正数据实时发送至所述目标机器人。
9.一种电子设备,其特征在于,所述电子设备包括:存储器及处理器;其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于实现上述权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,计算机可读存储介质被执行时能够实现如权利要求1至7中任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311378588.XA CN117484491A (zh) | 2023-10-23 | 2023-10-23 | 机器人控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311378588.XA CN117484491A (zh) | 2023-10-23 | 2023-10-23 | 机器人控制方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117484491A true CN117484491A (zh) | 2024-02-02 |
Family
ID=89681937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311378588.XA Pending CN117484491A (zh) | 2023-10-23 | 2023-10-23 | 机器人控制方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117484491A (zh) |
-
2023
- 2023-10-23 CN CN202311378588.XA patent/CN117484491A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9386209B2 (en) | Method and apparatus for estimating position | |
CN110546459A (zh) | 具有数据融合的机器人跟踪导航 | |
CN111376271B (zh) | 控制焊接机器人的方法、装置、焊接机器人和储存介质 | |
JP6907525B2 (ja) | 移動体の屋内位置検出及びナビゲーションシステム、屋内位置検出及びナビゲーション方法、及び屋内位置検出及びナビゲーションプログラム | |
CN106471546A (zh) | 在移动对象存在的情况下控制机器人 | |
CN108127661B (zh) | 机器人控制装置 | |
CN112262357A (zh) | 针对多个uav的编队确定控制参数 | |
US9200890B2 (en) | Machine vision systems and methods with predictive motion control | |
CN106851575B (zh) | 一种统一定位基站坐标系的方法和定位校准装置 | |
CN110849366A (zh) | 一种基于视觉和激光雷达融合的导航方法及系统 | |
CN113226668A (zh) | 用于生产线仿真的方法和装置 | |
US10035264B1 (en) | Real time robot implementation of state machine | |
Bobkov et al. | Vision-based navigation method for a local maneuvering of the autonomous underwater vehicle | |
CN113671523A (zh) | 机器人定位方法、装置、存储介质及机器人 | |
EP3542970A1 (en) | Method, device and system for replaying movement of robot | |
CN117484491A (zh) | 机器人控制方法、装置、设备及介质 | |
US20220143836A1 (en) | Computer-readable recording medium storing operation control program, operation control method, and operation control apparatus | |
Khan et al. | Sonar-based SLAM using occupancy grid mapping and dead reckoning | |
US11620846B2 (en) | Data processing method for multi-sensor fusion, positioning apparatus and virtual reality device | |
CN114593735A (zh) | 一种位姿预测方法及装置 | |
US11662742B2 (en) | Self-position estimation method | |
CN108548536A (zh) | 无人驾驶智能机器人的位置推算方法 | |
Henriksson et al. | Maximizing the use of computational resources in multi-camera feedback control | |
CN107443369A (zh) | 一种基于视觉测量模型逆辨识的机器臂无标定伺服控制方法 | |
Hofmann et al. | The Carologistics RoboCup Logistics Team 2018 |
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 |