用于多机器人协同作业的通信方法、装置和通信中间件与流程

未命名 09-01 阅读:166 评论:0


1.本技术涉及机器人通信技术领域,例如涉及一种用于多机器人协同作业的通信方法、装置和通信中间件。


背景技术:

2.目前,多个机器人已具备协同作业的能力,例如多个搬运机器人协同作业,或者,旋翼飞行器集群协同作业等。在机器人协同作业过程中,各机器人本身控制器通常与中央控制器通信连接,由中央控制器对多个机器人进行协调,使多个机器人实现协同作业。
3.在实现本技术实施例的过程中,发现相关技术中至少存在如下问题:
4.协同作业的搬运机器人或协同作业的旋翼飞行器的机器人类型相同,各机器人控制器采集自身状态参数(如运动状态、受力状态等)的采样频率相同,在各机器人的时间同步后,中央控制器可获得各机器人在相同时刻的状态参数,并据此实现对各机器人的协调。
5.在不同类型的机器人协同作业时,各机器人控制器采集自身状态参数的采样频率不同,即使各机器人实现了时间同步,中央控制器所获得的各机器人的状态参数也难以是相同时刻的,中央控制器根据各机器人在不同时刻的状态参数对各机器人进行协调,导致对各机器人的协调效果较差,进而导致不同类型的机器人的协同作业效果差。


技术实现要素:

6.为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
7.本技术实施例提供了一种用于多机器人协同作业的通信方法、装置和通信中间件,以将不同类型的机器人状态参数同步为相同时刻的状态参数,提高对各机器人的协调效果,提高不同类型的机器人的协同作业效果。
8.在一些实施例中,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,用于多机器人协同作业的通信方法包括:获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;将多个第二状态参数封装为状态参数帧,并将所述状态参数帧发送至上层软件;通过所述上层软件获得与所述状态参数帧对应的控制指令帧;根据所述控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。
9.可选地,对多个第一状态参数以及第一时间戳进行时间戳同步,包括:根据预设采样频率确定数据采集时刻;根据一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数;其中,所述历史状态参数包括第一状态参数,所述第一历史时间戳包括第一时间戳,第一时间戳为所述一个控制器发送的与所述数据采集时刻最接近的时间戳;所述一个控制器
为多个控制器中任一个。
10.可选地,根据一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数,包括:在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,将所述一个控制器发送的第一状态参数,作为所述数据采集时刻的第二状态参数。
11.或者,根据一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数,包括:在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,获得所述一个控制器在所述数据采集时刻之前发送的历史状态参数和历史时间戳所对应的第一拟合曲线或第一神经网络模型,将所述数据采集时刻代入所述第一拟合曲线或所述第一神经网络模型,获得所述第一拟合曲线或所述第一神经网络模型输出的所述数据采集时刻的第二状态参数;其中,所述第一拟合曲线或所述第一神经网络模型用于表示时间戳和状态参数的对应关系。
12.或者,根据一个控制器在所述数据采集时刻之前发送的历史状态参数和历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数,包括:在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率不相同的情况下,获得所述一个控制器在所述数据采集时刻之前发送的历史状态参数和历史时间戳所对应的第一拟合曲线或第一神经网络模型,将所述数据采集时刻代入所述第一拟合曲线或所述第一神经网络模型,获得所述第一拟合曲线或所述第一神经网络模型输出的所述数据采集时刻的第二状态参数;其中,所述第一拟合曲线或所述第一神经网络模型用于表示时间戳和状态参数的对应关系。
13.可选地,根据所述控制指令帧,向每个控制器反馈对应的控制指令,包括:获得预设控制频率,并根据所述预设控制频率确定多个机器人的控制时刻;所述预设控制频率小于或等于预设采样频率;根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定所述控制时刻对应的多个第一控制指令,并将每个第一控制指令发送至对应的控制器,使每个控制器能够控制其对应的机器人;其中,所述历史控制指令包括所述控制指令帧中的第二控制指令,所述第二历史时间戳包括第二控制指令对应的第二时间戳,第二时间戳为所述上层软件发送的与所述控制时刻最接近的时间戳。
14.可选地,根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令,包括:将所述控制指令帧中的第二控制指令作为所述控制时刻的第一控制指令。
15.或者,根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令,包括:获得在所述控制时刻之前获得的历史控制指令和第二历史时间戳所对应的第二拟合曲线或第二神经网络模型,将所述控制时刻代入所述第二拟合曲线或所述第二神经网络模型,获得所述第二拟合曲线或所述第二神经网络模型输出的所述控制时刻的第一控制指令;其中,所述第二拟合曲线或所述第二神经网络用于表示时间戳和控制指令的对应关系。
16.可选地,将每个第一控制指令发送至对应的控制器,包括:获得第二设定时长内的与所述一个控制器相关的多组具有对应关系的第一状态参数和第一控制指令;分别根据每
组第一状态参数和第一控制指令计算所述一个控制器对应的机器人的动作方向;如果第一时间戳相邻的两组第一状态参数和第一控制指令所计算的机器人的两个动作方向不同,则确定机器人改变一次动作方向;如果所述第二设定时长内机器人动作方向改变的次数小于或等于设定次数阈值,则确定所述一个控制器对应的第一控制指令为非易抖动指令,并将第一控制指令发送至所述一个控制器。
17.可选地,将每个第一控制指令发送至对应的控制器,还包括:如果将要发送的第一控制指令导致机器人改变一次动作方向,且所述第二设定时长内机器人动作方向改变的次数多于所述设定次数阈值,则确定所述一个控制器对应的第一控制指令为易抖动指令;重新根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定所述一个控制器对应的第一控制指令,或者,将静止指令作为所述一个控制器对应的第一控制指令,并将第一控制指令发送至所述一个控制器。
18.可选地,根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定所述控制时刻对应的多个第一控制指令,包括:根据所述一个控制器在发送时刻前第一设定时长内发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的通信链路的短期延迟时长;所述发送时刻为向所述一个控制器发送第一控制指令的时刻;如果所述短期延迟时长短于全部控制器对应的通信链路的平均延迟时长,则根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定在所述控制时刻之前的时刻,所述一个控制器所对应的第一控制指令;如果所述短期延迟时长长于全部控制器对应的通信链路的平均延迟时长,则根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定在所述控制时刻之后的时刻,所述一个控制器所对应的第一控制指令。
19.在一些实施例中,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,用于多机器人协同作业的通信装置包括第一通信模块、同步模块、第二通信模块、第三通信模块和第四通信模块。
20.所述第一通信模块用于获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;所述同步模块用于对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;所述第二通信模块用于将多个第二状态参数封装为状态参数帧,并将所述状态参数帧发送至上层软件;所述第三通信模块用于通过所述上层软件获得与所述状态参数帧对应的控制指令帧;所述第四通信模块用于根据所述控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。
21.在一些实施例中,用于多机器人协同作业的通信中间件,包括处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行前述实施例提供的用于多机器人协同作业的通信方法。
22.本技术实施例提供的用于机器人协同作业的通信方法、装置和通信中间件,可以实现以下技术效果:
23.在获得不同控制器发送的机器人的状态参数及其时间戳之后,对多个状态参数和时间戳进行同步,同步后的状态参数的时间戳相同,时间戳相同的多个状态参数能够表示各机器人在相同时刻的状态,上层软件(或中央控制器)基于这样的状态参数对各机器人进行协调,能够获得较佳协调效果,进而提高不同类型的机器人的协同作业效果。
24.以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本技术。
附图说明
25.一个或一个以上实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件视为类似的元件,并且其中:
26.图1是本技术实施例提供一种多机器人协同作业的通信关系示意图;
27.图2是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意图;
28.图3是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意图;
29.图4是本技术实施例提供的一种数据采集时刻和控制时刻在时间轴上的分布示意图;
30.图5是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意图;
31.图6是本技术实施例提供的一种用于多机器人协同作业的通信装置的示意图;
32.图7是本技术实施例提供的一种用于多机器人协同作业的通信装置的示意图。
具体实施方式
33.为了能够更加详尽地了解本技术实施例的特点与技术内容,下面结合附图对本技术实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本技术实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或一个以上实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
34.本技术实施例的说明书和权利要求书及上述附图中的术语“第一”“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
35.除非另有说明,术语“多个”表示两个以上。
36.本技术实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
37.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
38.图1是本技术实施例提供一种多机器人协同作业的通信关系示意图。
39.结合图1所示,多机器人协同作业系统为虚拟运动系统,用户可借助该虚拟运动系统完成跑步等运动。该虚拟运动系统包括六轴平台机器人11和外骨骼机器人12,六轴平台机器人11对应控制器13,外骨骼机器人12对应控制器14,控制器13和控制器14均与通用通信接口(universal communication interface,uci)15连接,uci 15与上层软件16通信连接。该上层软件16包括运动场景的相关参数,并基于运动场景的相关参数,对各机器人的配合状态进行协调。控制器13能够控制六轴平台机器人11动作,控制器14能够控制外骨骼机
器人12动作。该虚拟运动系统可为用户提供虚拟运动场景,并且六轴平台机器人11和外骨骼机器人12可将虚拟运动场景中的受力状态、运动状态反馈给用户,为用户提供虚拟运动体验。
40.该虚拟运动系统还包括一些周边配套设备17以及对应的其他传感器18,例如用于检测用户运动状态或生理参数的相关传感器,以及用于提供虚拟环境的相关配套设备等。
41.上层软件16可在终端中实现,例如,可在该虚拟运动系统的控制终端中实现,该控制终端可固定设在六轴平台机器人11上,或固定设置在外骨骼机器人12上,或者固定设置在其他支撑架上,还可为移动式控制终端;或者,该上层软件17可在服务器中实现,例如,用户可在控制终端对服务器中的相关参数进行设定,再由服务器运行该上层软件16。
42.六轴平台机器人11可为万向跑步机,借助该六轴平台机器人11,用户可实现多方向的跑步运动。
43.在本技术实施例中,将不同机器人的控制器按照不同采样频率采集的机器人的状态参数,同步为相同时刻(时间戳相同)的状态参数,并将这些状态参数发送至上层软件,使上层软件基于不同机器人在相同时刻状态参数,对多个机器人进行协调,使多个机器人之间协同作业的效果更佳。
44.在本技术实施例中,各机器人、uci以及上层软件的时间同步。
45.图2是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意图。该用于多机器人协同作业的通信方法能够在通信中间件中实现,例如在uci中实现,还能够在类似于通信中间件的其他软件、硬件或二者结合中实现。在该通信方法的应用场景中,机器人的数量为多个,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,例如跑步运动场景。
46.结合图2所示,用于多机器人协同作业的通信方法包括:
47.s201、获得每个控制器采集的机器人的第一状态参数和第一时间戳。
48.第一状态参数和第一时间戳一一对应。
49.机器人自身设置有多个传感器,例如外骨骼机器人设置有用于检测机器人各关节角度数据以及受力数据的传感器,多个传感器按照一定的采样频率采集机器人各关节角度数据、受力数据等状态参数,多个传感器与机器人的控制器连接,各传感器将自身采集的状态参数上传至控制器,控制器按照机器人的状态参数对机器人进行控制,使机器人完成预期动作。
50.控制器接收到传感器采集的机器人的状态参数之后,为各状态参数添加时间戳;或者,将全部状态参数封装,再添加时间戳。该时间戳可用来表示该状态参数的发生时刻。
51.上述第一状态参数为机器人的控制器采集的状态参数,上述第一时间戳为机器人的控制器为获得机器人的状态参数添加的时间戳。机器人的数量为多个,控制器的数量为多个,上述第一状态参数和第一时间戳的数量为多个。
52.第一状态参数和第一时间戳一一对应,指的是一个控制器采集的状态参数和为状态参数添加的时间戳是一一对应的,可以是机器人中设置的每个传感器所采集的状态参数均对应一个时间戳,可以是机器人中设置的全部传感器所采集的状态参数封装后形成的整体,对应一个时间戳。
53.在本技术实施例中,以uci作为实现该用于多机器人协同作业的通信方法的载体,
对该用于多机器人协同作业的通信方法进行示例性说明。
54.每个控制器在获得第一状态参数和第一时间戳后,均将第一状态参数和第一时间戳发送到uci,uci可获得每个控制器采集的机器人的第一状态参数和第一时间戳。
55.不同机器人的控制器通过传感器采集机器人的状态参数的采样频率不同,所获得的各控制器采集的机器人的第一状态参数的第一时间戳不同。
56.s202、对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数。
57.时间戳相同的多个第二状态参数能够用于表示多个机器人在相同时刻的状态参数。
58.s203、将多个第二状态参数封装为状态参数帧,并将状态参数帧发送至上层软件。
59.状态参数帧可包括校验值,用于保证状态参数帧的完整性。本领域技术人员可根据实际需求,选择合适的数据校验算法,这里不再一一赘述。
60.s204、通过上层软件获得与状态参数帧对应的控制指令帧。
61.状态参数帧中包括多个第二状态参数以及每个第二状态参数所对应的机器人或控制器;控制指令帧中包括多个控制指令以及每个控制指令所对应的机器人或控制器。
62.上层软件能够协调多个机器人以完成协同作业。本领域技术人员可根据实际需求,选择合适的上层软件。
63.s205、根据控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。
64.在获得不同控制器发送的机器人的状态参数及其时间戳之后,对多个状态参数和时间戳进行同步,同步后的状态参数的时间戳相同,时间戳相同的多个状态参数能够表示各机器人在相同时刻的状态,上层软件(或中央控制器)基于这样的状态参数对各机器人进行协调,能够获得较佳协调效果,进而提高不同类型的机器人的协同作业效果。
65.另外,相比于多个搬运机器人协同作业的场景、旋翼飞行器集群协同作业的场景,在多个机器人协同作业的运动场景中,对各机器人实时动作的协同要求比较高,需要各机器人实时协同动作以顺畅的完成运动场景,否则将会导致运动场景卡顿、不流畅,导致用户体验差。
66.采用本技术实施例中的方案,将多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数,上层软件再基于该时间戳相同的多个第二状态参数对多个机器人进行协调,能够以损失一定的准确性(在对多个第一状态参数以及第一时间戳进行同步的过程会损失一定的准确性,本领域技术人员需确保时间戳同步过程所损失的准确性满足机器人协同作业需求)为代价,使上层软件能够基于各机器人在同一时刻的状态参数,匹配下一时刻各机器人之间的协作状态,而获得包含各机器人/控制器对应的控制指令,如此获得的控制指令,有利于多机器人构成的整体由当前时刻的协作状态,顺利的转换到下一时刻的协作状态,提高运动场景的流畅,提高用户使用体验。
67.以下对时间戳同步过程进行示例性说明。
68.可选地,对多个第一状态参数以及第一时间戳进行时间戳同步,包括:根据预设采样频率确定数据采集时刻;根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数;其中,历史
状态参数包括第一状态参数,第一历史时间戳包括第一时间戳,第一时间戳为一个控制器发送的与数据采集时刻最接近的时间戳;一个控制器为多个控制器中任一个。
69.预设采样频率大于或等于确保运动场景能够顺利实现的最小采样频率,在运动场景中,各机器人的动作速度越快,确保运动场景能够顺利实现的最小采样频率越高;在运动场景中,表示各机器人精度的数值越小,确保运动场景能够顺利实现的最小采样频率越高;在运动场景中,各机器人的动作越复杂,确保运动场景能够顺利实现的最小采样频率越高。本领域技术人员可根据实际运动场景,确定符合实际运动场景的预设采样频率。
70.数据采集时刻指的是通过预设采样频率和上一次数据采集时刻确定的,例如,通过预设采样频率计算上次数据采集时刻和本次数据采集时刻之间的时间间隔(采样周期),通过上一次数据采集时刻与时间间隔之和,确定本次数据采集时刻。
71.上述历史状态参数和第一历史时间戳是一一对应的。上述历史状态参数和第一历史时间戳可为各控制器在数据采集时刻之前发送的,且与数据采集时刻之间的时间间隔最小的多个状态参数和时间戳。与数据采集时刻之间的时间间隔最小,指的是各控制器在数据采集时刻之前发送的其他任一状态参数和时间戳,其时间戳与数据采集时刻之间时间间隔长于第一历史时间戳中任一时间戳与数据采集时刻之间的时间间隔。
72.上述历史状态参数和第一历史时间戳,可为按照时间戳由后到先的顺序,在每个控制器于数据采集时刻之前发送的多个状态参数和时间戳中间隔选取的状态参数以及时间戳。
73.在本技术实施例中,术语“第一状态参数”指的是任一控制器发送的未经时间戳同步的状态参数,术语“第二状态参数”指的是已进行时间戳同步的状态参数。
74.进一步地,根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数,可包括:在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,将一个控制器发送的第一状态参数,作为数据采集时刻的第二状态参数。
75.例如,多个机器人的控制器通过传感器采集机器人的状态参数的采样频率存在倍数关系,可将较低的采样频率作为预设采样频率;或者,多个机器人的控制器通过传感器采集机器人的状态参数的采样频率不存在倍数关系,也可将其中任一个采样频率作为预设采样频率。如果一个控制器采集其对应机器人的状态参数的采样频率与预设采样频率相同,且该一个控制器获得的第一时间戳与数据采集时刻吻合,可将该一个控制器发送的第一状态参数,作为数据采集时刻的第二状态参数。
76.即使一个控制器采集其对应机器人的状态参数的采样频率与预设采样频率相同,但该一个控制器获得的第一时间戳与数据采集时刻不吻合,仍需对该一个控制器发送的第一状态参数和第一时间戳进行时间戳同步。
77.此时,可通过如下方式确定一个控制器对应的机器人在数据采集时刻的第二状态参数:在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,获得一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将数据采集时刻代入第一拟合曲线或第一神经网络模型,获得第一拟合曲线或第一神经网络模型输出的数据采集时刻的第二状态参数;其中,第一拟合曲线或第一神经网络模型用于表示时间戳和状态参数的对应关系。
78.一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,指的是对一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳进行数据拟合,而获得的第一拟合曲线,或者,利用一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳对第一预置神经网络模型进行训练所获得的第一神经网络模型。本领域技术人员根据经验选择满足实际运动场景准确度需求的数据拟合方式或第一预置神经网络。
79.前述实施例提到,预设采样频率大于或等于确保运动场景能够顺利实现的最小采样频率,即,预设采样频率是与运动场景相关的,各机器人的控制器采集其对应机器人的状态参数的采样频率是与机器人自身特性相关的,在机器人的类型不同的情况下,各机器人的控制器采集其对应机器人的状态参数的采样频率难以相同。故,预设采样频率与控制器采集其对应机器人的状态参数的采样频率不同的现象出现较多。
80.这种情况下,可通过如下方式确定一个控制器对应的机器人在数据采集时刻的第二状态参数,包括:在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率不相同的情况下,获得一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将数据采集时刻代入第一拟合曲线或第一神经网络模型,获得第一拟合曲线或第一神经网络模型输出的数据采集时刻的第二状态参数;其中,第一拟合曲线或第一神经网络模型用于表示时间戳和状态参数的对应关系。
81.同样,一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,指的是对一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳进行数据拟合,而获得的第一拟合曲线,或者,利用一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳对第一预置神经网络模型进行训练所获得的第一神经网络模型。本领域技术人员根据经验选择满足实际运动场景准确度需求的数据拟合方式或第一预置神经网络。
82.采用上述实施例提供的时间戳同步方案,可获得时间戳同步的多个第二状态参数。uci将该多个第二状态参数封装为状态参数帧并发送至上层软件,上层软件可获得对应该状态参数帧的控制指令帧。状态参数帧反映了各机器人所构成的整体,在协同作业时形成的运动场景的某一时刻的状态参数,例如,上层软件存储有该运动场景各时刻的状态参数,可匹配出该运动场景下一时刻各机器人所构成整体的状态参数,并基于某一时刻各机器人所构成整体的状态参数和下一时刻各机器人所构成整体的状态参数的状态参数差值,计算出每个机器人对应的控制指令。本领域技术人员可根据实际需求,选择计算每个机器人对应的控制指令的计算方式。
83.当然,上述列举的上层软件获得与状态参数帧对应的控制指令帧的方式仅为示例性说明,本领域技术人员可根据应用场景的需求,选择合适的方式确定与状态参数帧对应的控制指令帧。
84.控制指令帧中包含多个控制指令以及每个控制指令所对应的机器人或控制器,在uci获得控制指令帧后,可直接依据控制指令与机器人或控制器的对应关系,将控制指令发送至其对应的机器人或控制器。
85.进一步地,可根据按照预设控制频率,向每个控制器反馈对应的控制指令。
86.图3是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意
图,用于对根据按照预设控制频率向每个控制器反馈对应的控制指令的过程进行示例性说明。
87.结合图3所示,用于多机器人协同作业的通信方法包括:
88.s301、获得每个控制器采集的机器人的第一状态参数和第一时间戳。
89.第一状态参数和第一时间戳一一对应。
90.s302、根据预设采样频率确定数据采集时刻。
91.s303、根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数。
92.其中,历史状态参数包括第一状态参数,第一历史时间戳包括第一时间戳,第一时间戳为一个控制器发送的与数据采集时刻最接近的时间戳,一个控制器为多个控制器中任一个。
93.s304、将多个第二状态参数封装为状态参数帧,并将状态参数帧发送至上层软件。
94.s305、通过上层软件获得与状态参数帧对应的控制指令帧。
95.s306、获得预设控制频率,并根据预设控制频率确定多个机器人的控制时刻。
96.预设控制频率小于或等于预设采样频率。
97.控制频率指的是上层软件向控制器发送控制指令的频率。
98.预设控制频率大于或等于确保运动场景能够顺利出现的最小控制频率。在运动场景中,各机器人的动作速度越快,确保运动场景能够顺利实现的最小控制频率越高;在运动场景中,表示各机器人精度的数值越小(精度越高),确保运动场景能够顺利实现的最小控制频率越高;在运动场景中,各机器人的动作越复杂,确保运动场景能够顺利实现的最小控制频率越高。
99.s307、根据在控制时刻之前通过上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令,并将每个第一控制指令发送至对应的控制器,使每个控制器能够控制其对应的机器人。
100.其中,历史控制指令包括控制指令帧中的第二控制指令,第二历史时间戳包括第二控制指令对应的第二时间戳,第二时间戳为上层软件发送的与控制时刻最接近的时间戳。
101.在本技术实施例中,uci对控制器发送的第一状态参数和第一时间戳进行时间戳同步,能够使上层软件获得各机器人在同一时刻的状态参数,并基于各机器人在同一时刻的状态参数生成能够更好地协调各机器人的控制指令帧,之后,uci对接收到控制指令帧中的第二控制指令和第二时间戳进行时间戳同步,将第二控制指令和第二时间戳同步为控制时刻对应的第一控制指令,能够使控制指令按照相对固定的频率达到控制器或机器人。
102.该相对固定的频率与预设控制频率相关,在不考虑uci与各控制器之间的通信延迟的情况下,该相对固定的频率与预设控制频率相同;在考虑uci与控制器之间的通信延迟的情况下,获得每个控制器对应的第一状态参数和第一时间戳的过程中存在延迟抖动,即,uci与各控制器之间的通信延迟存在抖动,延迟大小会发生变化,该相对固定的频率在预设控制频率上下波动。
103.预设控制频率小于或等于预设采样频率的情况可分为两种:预设控制频率低于预设采样频率,以及预设控制频率等于预设采样频率。
104.在预设控制频率低于预设采样频率的情况下,机器人在相邻两个数据采集时刻之间或未被第一控制指令调整,或已被第一控制指令调整。机器人在相邻两个数据采集时刻之间未被第一控制指令调整时,uci根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳确定的该一个控制器在数据采集时刻的第二状态参数比较准确;机器人在相邻两个数据采集时刻之间已被第一控制指令调整时,根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳确定的该一个控制器在数据采集时刻的第二状态参数的准确度降低。
105.即,在根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数的过程中,机器人被第一控制指令的调整时刻,使机器人的自由运动轨迹被干扰,导致被干扰时刻前后的第一状态参数不符合简单的运动模型,增加了历史状态参数和第一历史时间戳所构成的实际运动模型的复杂度,在确定第二状态参数时,容易导致确定的第二状态参数的准确度降低。
106.根据相对固定的频率控制机器人,能够使机器人的自由运动轨迹被干扰的时刻节点均匀分布,在一定程度上降低历史状态参数和第一历史时间戳所构成的实际运动模型的复杂度,在确定第二状态参数时,容易提高所确定的第二状态参数的准确度。
107.机器人被第一控制指令调整的时刻,容易导致之后所确定的第二状态参数的准确度稍差;在机器人获得第二状态参数的时刻之前,所采集的历史状态参数的数量越多,越容易使在机器人所获得第二状态参数的准确度高。这样容易使多个数据采集时刻的第二状态参数的准确度按照比较稳定的规律周期波动,使多个数据采集时刻的第二状态参数在整体上比较稳定地呈现出各机器人的运动状态。
108.结合图4所示,数据采集时刻分别为col1、col2、col3、col4、col5和col6;该一控制器控制机器人的时刻分别为con1、con2、con3和con4。
109.在控制时刻con1之后,机器人的自由运动状态被干扰,在此之后且在数据采集时刻col2之前的获得的状态参数和时间戳所构成的实际运动模型相对比较复杂,在数据采集时刻col2所获得的第二状态参数的准确度较差,在数据采集时刻col2时刻之后数据采集时刻col3之前,机器人的自用运动状态未被干扰,在该期间获得的状态参数和时间戳所构成的实际运动模型相对比较简单,在数据采集时刻col3所获得的第二状态参数的准确度较高;同理,在数据采集时刻col4获得的第二状态参数的准确度较低,在数据采集时刻col5获得的第二状态参数的准确度较低,在数据采集时刻col6获得的第二状态参数的准确度较高。如此,多个数据采集时刻的第二状态参数的准确度按照比较稳定的规律周期波动,使多个数据采集时刻的第二状态参数在整体上比较稳定地呈现出各机器人的运动状态。
110.另外,多个数据采集时刻的第二状态参数的准确度按照比较稳定的规律周期波动,基于每个数据采集时刻的第二状态参数所获得控制指令帧(或各机器人的控制指令)与各机器人的实际状态参数的匹配程度也按照比较稳定的规律周期波动,使机器人控制误差比较均匀地分布,相比于采用非相对固定的频率控制机器人,采用相对固定的频率控制机器人能够使机器人更好地按照预期运动。
111.在预设控制频率等于预设采样频率的情况下,机器人在任意相邻两个数据采集时刻之间均被第一控制指令调整,uci再根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳确定该一个控制器在数据采集时刻的第二状态参数,所获得的每
个第二状态参数的准确度均相当。
112.在每个数据采集时刻的第二状态参数的准确度均相当,基于每个数据采集时刻的第二状态参数所获得控制指令帧(或各机器人的控制指令)与各机器人的实际状态参数的匹配程度也均相当,使机器人的控制误差均匀分布。
113.准确度比较稳定的第二状态参数,以及与各机器人的实际状态参数的匹配程度比较稳定的控制指令帧,能够减少对协同作业的各机器人的精确度的影响因素,尤其是运动速度相对较快、对多机器人的动作协调度要求较高运动场景,对协同作业的各机器人的精确度的影响因素较少,本领域技术人员能够容易地调整各机器人的动作精确度,以呈现比较协调的运动场景。
114.以下对根据历史控制指令和第二历史时间戳确定控制时刻对应的多个第一控制指令进行示例性说明。
115.可选地,根据在控制时刻之前通过上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令,包括:将控制指令帧中的第二控制指令作为控制时刻的第一控制指令。
116.本技术实施例中的术语“第二控制指令”,指的是uci通过上层软件直接获得的未被uci调整、确认过的控制指令;本技术实施例中的术语“第一控制指令”,指的是uci通过上层软件获得控制指令帧后,再对控制指令帧中的控制指令进行一定的变换、调整或确认维持不变而获得的控制时刻的控制指令。
117.在控制指令帧中的第二时间戳与控制时刻相同或二者之间差值满足忽略条件的情况下,可将控制指令帧中的第二控制指令作为控制时刻的第一控制指令。第二时间戳与控制时刻二者之间的差值满足忽略条件,指的是二者之间的差值小于或等于设定忽略阈值。预设控制频率越高,设定忽略阈值越小,预设控制频率越低,设定忽略阈值可越大,本领域技术人员可根据预设控制频率,确定符合条件的设定忽略阈值。
118.在控制指令帧中的第二时间戳与控制时刻之间的差值不满足忽略条件的情况下,可按照如下方式确定多个时刻的第一控制指令:获得在控制时刻之前获得的历史控制指令和第二历史时间戳所对应的第二拟合曲线或第二神经网络模型,将控制时刻代入第二拟合曲线或第二神经网络模型,获得第二拟合曲线或第二神经网络模型输出的控制时刻的第一控制指令;其中,第二拟合曲线或第二神经网络用于表示时间戳和控制指令的对应关系。
119.在控制时刻之前获得的历史控制指令和第二历史时间戳所对应的第二拟合曲线或第二神经网络模型,指的是对控制时刻之前获得的历史控制指令和第二历史时间戳进行数据拟合,而获得的第二拟合曲线,或者,利用控制时刻之前获得的历史控制指令和第二历史时间戳对第二预置神经网络模型进行训练所获得第二神经网络模型。本领域技术人员可根据经验选择满足实际运动场景的准确度需求的数据拟合方式或第二预置神经网络。此处第二预置神经网络可与前述第一预置神经网络相同,也可与前述第一预置神经网络不同。
120.在具体应用场景中,uci与上层软件的通信过程存在一定的延迟,并且在进行数据传输过程中,uci与上层软件的通信延迟存在抖动,即,延迟大小会发生变化。
121.在机器人的运动速度趋近于零的情况下,uci与上层软件的通信延迟所存在的抖动,会导致机器人抖动,其外在表现为机器人在原位置振动,这种机器人抖动容易为用户带来不良体验。即,在通过上层软件获得控制指令帧的过程存在延迟抖动。
122.在上述技术方案中,即使上层软件按照预设控制频率向uci发送控制指令帧,由于uci与上层软件的通信延迟存在抖动,uci获得控制指令帧的频率存在以预设控制频率为中心的抖动,通过计算控制时刻的第一控制指令,能够降低甚至消除机器人的控制频率的抖动,进而减少甚至避免出现机器人抖动的现象。
123.另外,前述实施例提到,uci与各控制器之间的通信延迟也存在抖动(获得每个控制器对应的第一状态参数和第一时间戳的过程中存在延迟抖动),采用前述实施例提供利用第一状态参数和第一时间戳获得第二状态参数的技术方案,也能够降低甚至消除uci与各控制器之间的通信延迟所存在的抖动所造成的不良影响,使数据采集时刻的多个第二状态参数更能反映各机器人在同一时刻的运动状态。
124.uci与各控制器之间的通信延迟存在抖动,也会对uci向各控制器发送第一控制指令的过程产生不良影响,即,向每个控制器反馈对应的控制指令的过程存在延迟抖动。例如,uci在同一时刻向各控制器发送第一控制指令,但由于uci与各控制器之间的通信延迟存在抖动,导致各控制器接收到第一控制指令的时刻不同,进而导致各控制器不能按照运动场景同步地控制各自对应的机器人,最终导致各机器人协同作业的效果较差。控制指令帧是基于某一时刻各机器人的状态参数和下一时刻各机器人的状态参数计算出来的,其目的将各机器人作为一个整体,由某一时刻的状态参数同步地调整至下一时刻的状态参数,由于uci与各控制器之间的通信延迟,导致各控制器不能同时接收到uci同时发送的第一控制指令,进而导致各机器人无法同步地控制各自对应的机器人,导致各机器人不能由某一时刻的状态参数同步地运动至下一时刻的状态参数,降低了各机器人的协同作业效果。
125.对此,可按照如下方式确定控制时刻对应的多个第一控制指令:
126.根据一个控制器在发送时刻前第一设定时长内发送的历史状态参数和第一历史时间戳,确定一个控制器对应的通信链路的短期延迟时长;发送时刻为向一个控制器发送第一控制指令的时刻;
127.如果短期延迟时长短于全部控制器对应的通信链路的平均延迟时长,则根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定在控制时刻之前的时刻,一个控制器所对应的第一控制指令;
128.如果短期延迟时长长于全部控制器对应的通信链路的平均延迟时长,则根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定在控制时刻之后的时刻,一个控制器所对应的第一控制指令。
129.由于uci与各控制器之间的通信链路的延迟不同,uci向各控制器发送的第一控制指令到达各控制器的时刻也不同。
130.对于上述问题,在一个控制器的短期延迟时长短于平均延迟时长的情况下,获得控制时刻之前的时刻,一个控制器所对应的第一控制指令,这样的第一控制指令会提前到达该一个控制器,该一个控制器按照该第一控制指令执行动作;在控制时刻之后且与控制时刻的时长间隔为平均延迟时长的时刻,第一控制指令到达其他控制器,其他控制器根据对应的第一控制指令控制其对应机器人;控制时刻之前的时刻对应的第一控制指令,先到达该一个控制器,在控制时刻之后且与控制时刻的时长间隔为平均延迟时长的时刻,该一个控制器对应的机器人的运动状态,与其他控制器对应的机器人的运动状态,更加贴近于运动场景所需求的各机器人在同一时刻运动状态,使各机器人具备较佳的协同作业效果。
131.在一个控制器的短期延迟时长长于平均延迟时长的情况下,获得控制时刻之后的时刻,一个控制器所对应的第一控制指令,这样的第一控制指令能够偏后到达该一个控制器,该一个控制器按照该第一控制指令执行动作;在控制时刻之后且与控制时刻的时长间隔为平均延迟时长的时刻,第一控制指令到达其他控制器,其他控制器根据对应的第一控制指令控制其对应机器人;控制时刻之后的时刻对应的第一控制指令,后到达该一个控制器,在控制时刻之后且与控制时长的时长间隔为平均延迟时长的时刻,该一个控制器对应的机器人的运动状态,与其他控制器对应的机器人的运动状态,更加贴近于运动场景所需求的各机器人在同一时刻运动状态,使各机器人具备较佳的协同作业效果。
132.上述第一设定时长可大于或等于一个控制器采集对应的机器人的状态参数的一个采样周期,且小于两个采样周期;或者,上述第一设定时长可为两个以上一个控制器的采样周期的时间长度。这种情况下,不同控制器可对应不同的第一设定时长,本领域技术人员可根据各控制器的采样周期获得与采样周期对应的第一设定时长。
133.或者,各控制器可设置相同的第一设定时长。例如,可确定数据采集时刻对应的第二状态参数,确定与该第二状态参数对应的控制指令帧对应的控制时刻,计算数据采集时刻与控制时刻的时长差值,并确定与该时长差值正相关的第一设定时长。或者,本领域技术人员还可根据计算网络延迟的需求,确定符合实际情况的第一设定时长。
134.在上述实施例中,在第一设定时长内仅可接收到一个状态参数和一个时间戳(历史状态参数只包括第一状态参数,第一历史时间戳只包括第一时间戳)的情况下,可将接收一个控制器发送的第一状态参数和第一时间戳的时刻,与第一时间戳的时间差值,作为短期延迟时长。
135.在第一设定时长内可接收到两个以上状态参数和时间戳(历史状态参数包括两个以上状态参数,第一历史时间戳包括两个以上时间戳)的情况下,可计算接收一个控制器发送的每个状态参数和时间戳的时刻,与时间戳的时间差值,将两个以上时间差值的平均值作为短期延迟时长。
136.平均延迟时长为全部控制器对应的通信链路的平均延迟时长,例如可计算每个控制器对应的通信链路的短期延迟时长,将全部短期延迟时长的平均值作为平均延迟时长。
137.可实时计算全部控制器对应的通信链路的平均延迟时长。
138.图5是本技术实施例提供的一种用于多机器人协同作业的通信方法的流程示意图。
139.结合图5所示,用于多机器人协同作业的通信方法包括:
140.s501、获得每个控制器采集的机器人的第一状态参数和第一时间戳。
141.第一状态参数和第一时间戳一一对应。
142.s502、根据预设采样频率确定数据采集时刻。
143.s503、根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数。
144.其中,历史状态参数包括第一状态参数,第一历史时间戳包括第一时间戳,第一时间戳为一个控制器发送的与数据采集时刻最接近的时间戳,一个控制器为多个控制器中任一个。
145.s504、将多个第二状态参数封装为状态参数帧,并将状态参数帧发送至上层软件。
146.s505、通过上层软件获得与状态参数帧对应的控制指令帧。
147.s506、获得预设控制频率,并根据预设控制频率确定多个机器人的控制时刻。
148.预设控制频率小于或等于预设采样频率。
149.s507、根据在控制时刻之前通过上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令。
150.其中,历史控制指令包括控制指令帧中的第二控制指令,第二历史时间戳包括第二控制指令对应的第二时间戳,第二时间戳为上层软件发送的与控制时刻最接近的时间戳。
151.s508、获得第二设定时长内的与一个控制器相关的多组具有对应关系的第一状态参数和第一控制指令。
152.第二设定时长与机器人出现抖动现象所需的时长相关。机器人抖动现象的直观现象为机器人在原地振动;其实际控制过程为:在机器人的实际位置(实际位移或实际角度)未达到设定位置(设定位移或设定角度)的情况下,机器人的执行器按一个方向动作一个最小动作单位(例如步进电机的最小步进角),机器人的实际位置超过设定位置,机器人的执行器再按照反方向动作一个或两个以上最小动作单位,机器人的实际位置再次切换为未达到设定位置,如此往复。机器人的这种抖动现象容易为用户带来不良体验。
153.机器人的抖动现象通常出现在机器人的速度趋近于零的场景中。机器人机械结构的传动精度越高,第二设定时长越短,机器人机械结构的传动精度越低,第二设定时长越长。
154.本领域技术人员可根据机器人的实际情况,确定符合实际情况的第二设定时长。
155.本步骤的第一状态参数可为第一时间戳与数据采集时刻最接近的第一状态参数。
156.第一状态参数和第一控制指令的对应关系,指的是该第一控制指令,是根据基于第一状态参数获得第二状态参数获得的,每一次计算第二状态参数,获得控制指令帧,并获得第一控制指令,均可获得一组具有对应关系第一状态参数和第一控制指令。各组具有对关系的第一状态参数和第一控制指令在时序上存在先后顺序。
157.s509、分别根据每组第一状态参数和第一控制指令计算一个控制器对应的机器人的动作方向。
158.例如,在已定义的正方向上,如果一个控制器对应的第一状态参数小于第一控制指令所指代的状态参数,则可确定该一个控制器对应的机器人向正方向运动;如果一个控制器对应的第一状态参数大于第一控制指令所指代的状态参数,则可确定该一个控制器对应的机器人向反方向运动。
159.上述正方向,可表示角度转动方向,还可表示直线移动方向。
160.s510、如果第一时间戳相邻的两组第一状态参数和第一控制指令所计算的机器人的两个动作方向不同,则确定机器人改变一次动作方向。
161.s511、如果第二设定时长内机器人动作方向改变的次数小于或等于设定次数阈值,则确定一个控制器对应的第一控制指令为非易抖动指令,并将第一控制指令发送至一个控制器。
162.其中,设定次数阈值与对机器人抖动的容忍度相关,对机器人抖动的容忍度越高,越允许机器人出现偶尔的振动,设定次数阈值越大;对机器人抖动的容忍度越低,越不允许
机器人出现偶尔的振动,设定次数阈值越小。本领域技术人员可根据实际对机器人的要求,确定符合实际情况的设定次数阈值。
163.前述实施例中提到,第二设定时长与机器人机械结构的传动精度相关,在第二设定时长和设定次数阈值二者结合以判断一个第一控制指令是否为非易抖动指令的步骤中,第二设定时长还与设定次数阈值正相关,设定次数阈值越大,第二设定时长越长;设定次数阈值越小,第二设定时长越短。
164.采用上述技术方案,uci向控制器发送第一控制指令前,对该第一控制指令是否易造成机器人抖动进行一定的预判,并将非易抖动指令发送至机器人。
165.控制器控制机器人的过程中,控制器基于一些算法向机器人发送控制指令,这些算法本身不容易造成机器人抖动,并且,控制器与机器人是相互匹配的,控制器的算法与机器人执行器的最小动作单位、机器人机械结构的传动精度,也是相互匹配的;控制器正常控制机器人的过程中,机器人出现抖动的概率比较低。
166.在上层软件对各机器人进行协调的过程中,上层软件基于一些算法向各机器人的控制器发送的控制指令,这些算法本身也不容易造成机器人抖动,并且,上层软件所选择的协调算法,通常情况下也是本领域技术人员根据各机器人特性、控制器特性,所选择的符合机器人特性、控制器特性的协调算法,在上层软件正常协调机器人的过程中,机器人出现抖动的概率比较低。
167.在本技术实施例中,为使上层软件能够基于各机器人在同一时刻的状态参数对各机器人进行协调,将一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数,这个过程中将第一状态参数调整为第二状态参数;与之对应地,为使各机器人能够更加同步地动作,确定了控制时刻,并将控制指令帧中的第二控制指令调整为第一控制指令。在将第一状态参数调整为第二状态参数的过程中,机器人的状态参数出现了一次误差,在将控制指令帧中的第二控制指令调整为第一控制指令的过程中,控制指令出现了一次误差;通常情况下,控制器通过uci向上层软件反馈各机器人的状态参数,以及上层软件获得用于协调各机器人的控制指令,并通过uci向各控制器反馈控制指令的过程,是一个比较短暂的过程,上述两个误差(机器人状态参数出现的误差和机器人控制指令出现的误差)对机器人的实际运动状态的影响较小,但在机器人的运动速度趋近于零的情况下,容易使机器人的控制过程出现抖动现象(如前述机器人抖动现象对应的实际控制过程)。
168.因此,在上述技术方案中,利用真实的不存在误差的第一状态参数和存在一定误差的第一控制指令,计算机器人的抖动情况,第一状态参数和第一控制指令是贴近机器人侧的参数和指令,能够比较准确地判断该第一控制指令是否为易抖动指令,进而将非易抖动指令发送至一个控制器,减少机器人出现抖动现象。
169.上述技术方案对确定一个控制器对应的第一控制指令为非易抖动指令的过程进行了示例性说明。
170.对应地,如果将要发送的第一控制指令导致机器人改变一次动作方向,且第二设定时长内机器人动作方向改变的次数多于设定次数阈值,则确定一个控制器对应的第一控制指令为易抖动指令;重新根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定一个控制器对应的第一控制指令,或者,将静止指令作为一个控制器对应的第一控制
指令,并将第一控制指令发送至一个控制器。
171.在上述技术方案中,进一步的以损失控制指令的准确度为代价,减少机器人出现抖动现象的可能性。机器人的抖动现象通常出现在机器人的运动速度趋近于零的场景中,在机器人的运动速度趋近于零的场景中,即使控制指令损失一定的准确度,对各机器人之间协同作业效果的不利影响也可几乎忽略不计,因此,采用上述技术方案,能够减少机器人出现抖动现象的可能性。
172.图6是本技术实施例提供的一种用于多机器人协同作业的通信装置的示意图。该用于多机器人协同作业的通信方法能够以通信中间件的形式实现,也能够类似于通信中间件的其他软件、硬件或二者结合的形式实现。在该通信装置的应用场景中,机器人的数量为多个,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,例如跑步运动场景。
173.结合图6所示,用于多机器人协同作业的通信装置包括第一通信模块61、同步模块62、第二通信模块63、第三通信模块64和第四通信模块65。
174.第一通信模块61用于获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;
175.同步模块62用于对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;
176.第二通信模块63用于将多个第二状态参数封装为状态参数帧,并将状态参数帧发送至上层软件;
177.第三通信模块64用于通过上层软件获得与状态参数帧对应的控制指令帧;
178.第四通信模块65用于根据控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。
179.可选地,同步模块62包括第一确定单元和第二确定单元;第一确定单元用于根据预设采样频率确定数据采集时刻;第二确定单元用于根据一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定一个控制器对应的机器人在数据采集时刻的第二状态参数;其中,历史状态参数包括第一状态参数,第一历史时间戳包括第一时间戳,第一时间戳为一个控制器发送的与数据采集时刻最接近的时间戳;一个控制器为多个控制器中任一个。
180.可选地,第二确定单元具体用于在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,将一个控制器发送的第一状态参数,作为数据采集时刻的第二状态参数。
181.或者,第二确定单元可具体用于在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,获得一个控制器在数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将数据采集时刻代入第一拟合曲线或第一神经网络模型,获得第一拟合曲线或第一神经网络模型输出的数据采集时刻的第二状态参数;其中,第一拟合曲线或第一神经网络模型用于表示时间戳和状态参数的对应关系。
182.或者,第二确定单元还可具体用于在预设采样频率与一个控制器采集其对应机器人的状态参数的采样频率不相同的情况下,获得一个控制器在数据采集时刻之前发送的历
史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将数据采集时刻代入第一拟合曲线或第一神经网络模型,获得第一拟合曲线或第一神经网络模型输出的数据采集时刻的第二状态参数;其中,第一拟合曲线或第一神经网络模型用于表示时间戳和状态参数的对应关系。
183.可选地,第四通信模块65包括第三确定单元、第四确定单元和发送单元;第三确定单元用于获得预设控制频率,并根据预设控制频率确定多个机器人的控制时刻;预设控制频率小于或等于预设采样频率;第四确定单元用于根据在控制时刻之前通过上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令;发送单元用于将每个第一控制指令发送至对应的控制器,使每个控制器能够控制其对应的机器人;其中,历史控制指令包括控制指令帧中的第二控制指令,第二历史时间戳包括第二控制指令对应的第二时间戳,第二时间戳为上层软件发送的与控制时刻最接近的时间戳。
184.可选地,第四确定单元具体用于将控制指令帧中的第二控制指令作为控制时刻的第一控制指令。
185.或者,第四确定单元可具体用于获得在控制时刻之前获得的历史控制指令和第二历史时间戳所对应的第二拟合曲线或第二神经网络模型,将控制时刻代入第二拟合曲线或第二神经网络模型,获得第二拟合曲线或第二神经网络模型输出的控制时刻的第一控制指令;其中,第二拟合曲线或第二神经网络用于表示时间戳和控制指令的对应关系。
186.可选地,发送单元具体用于获得第二设定时长内的与一个控制器相关的多组具有对应关系的第一状态参数和第一控制指令;分别根据每组第一状态参数和第一控制指令计算一个控制器对应的机器人的动作方向;如果第一时间戳相邻的两组第一状态参数和第一控制指令所计算的机器人的两个动作方向不同,则确定机器人改变一次动作方向;如果第二设定时长内机器人动作方向改变的次数小于或等于设定次数阈值,则确定一个控制器对应的第一控制指令为非易抖动指令,并将第一控制指令发送至一个控制器。
187.可选地,发送单元还具体用于:如果将要发送的第一控制指令导致机器人改变一次动作方向,且第二设定时长内机器人动作方向改变的次数多于设定次数阈值,则确定一个控制器对应的第一控制指令为易抖动指令;重新根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定一个控制器对应的第一控制指令,或者,将静止指令作为一个控制器对应的第一控制指令,并将第一控制指令发送至一个控制器。
188.可选地,第四确定单元还具体用于:根据一个控制器在发送时刻前第一设定时长内发送的历史状态参数和第一历史时间戳,确定一个控制器对应的通信链路的短期延迟时长;发送时刻为向一个控制器发送第一控制指令的时刻;如果短期延迟时长短于全部控制器对应的通信链路的平均延迟时长,则根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定在控制时刻之前的时刻,一个控制器所对应的第一控制指令;如果短期延迟时长长于全部控制器对应的通信链路的平均延迟时长,则根据在控制时刻之前获得的历史控制指令和第二历史时间戳,确定在控制时刻之后的时刻,一个控制器所对应的第一控制指令。
189.在一些实施例中,用于多机器人协同作业的通信装置包括处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行前述实施例提供的用于多机器人协同作业的通信方法。
190.图7是本技术实施例提供的一种用于多机器人协同作业的通信装置的示意图。
191.结合图7所示,本技术实施例提供的一种用于多机器人协同作业的通信装置包括:
192.处理器(processor)71和存储器(memory)72,还可以包括通信接口(communication interface)73和总线74。其中,处理器71、通信接口73、存储器72可以通过总线74完成相互间的通信。通信接口73可以用于信息传输。处理器71可以调用存储器72中的逻辑指令,以执行前述实施例提供的用于多机器人协同作业的通信方法。
193.此外,上述的存储器72中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
194.存储器72作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本技术实施例中的方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
195.存储器72可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器。
196.本技术实施例提供了一种用于多机器人协同作业的通信中间件,包含前述实施例提供的用于多机器人协同作业的通信装置。
197.本技术实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行前述实施例提供的用于多机器人协同作业的通信方法。
198.本技术实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行前述实施例提供的用于多机器人协同作业的通信方法。
199.上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
200.本技术实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或一个以上指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术实施例中方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机读取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
201.以上描述和附图充分地示出了本技术的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本技术中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。另外,当用于本技术中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组
的存在或添加。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
202.本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
203.本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
204.附图中的流程图和框图显示了根据本技术实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或一个以上用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

技术特征:
1.一种用于多机器人协同作业的通信方法,其特征在于,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,所述通信方法包括:获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;将多个第二状态参数封装为状态参数帧,并将所述状态参数帧发送至上层软件;通过所述上层软件获得与所述状态参数帧对应的控制指令帧;根据所述控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。2.根据权利要求1所述的通信方法,其特征在于,对多个第一状态参数以及第一时间戳进行时间戳同步,包括:根据预设采样频率确定数据采集时刻;根据一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数;其中,所述历史状态参数包括第一状态参数,所述第一历史时间戳包括第一时间戳,第一时间戳为所述一个控制器发送的与所述数据采集时刻最接近的时间戳;所述一个控制器为多个控制器中任一个。3.根据权利要求2所述的通信方法,其特征在于,根据一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的机器人在所述数据采集时刻的第二状态参数,包括:在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,将所述一个控制器发送的第一状态参数,作为所述数据采集时刻的第二状态参数;或者,在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率相同的情况下,获得所述一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将所述数据采集时刻代入所述第一拟合曲线或所述第一神经网络模型,获得所述第一拟合曲线或所述第一神经网络模型输出的所述数据采集时刻的第二状态参数;其中,所述第一拟合曲线或所述第一神经网络模型用于表示时间戳和状态参数的对应关系;或者,在所述预设采样频率与所述一个控制器采集其对应机器人的状态参数的采样频率不相同的情况下,获得所述一个控制器在所述数据采集时刻之前发送的历史状态参数和第一历史时间戳所对应的第一拟合曲线或第一神经网络模型,将所述数据采集时刻代入所述第一拟合曲线或所述第一神经网络模型,获得所述第一拟合曲线或所述第一神经网络模型输出的所述数据采集时刻的第二状态参数;其中,所述第一拟合曲线或所述第一神经网络模型用于表示时间戳和状态参数的对应关系。4.根据权利要求2所述的通信方法,其特征在于,根据所述控制指令帧,向每个控制器
反馈对应的控制指令,包括:获得预设控制频率,并根据所述预设控制频率确定多个机器人的控制时刻;所述预设控制频率小于或等于预设采样频率;根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定所述控制时刻对应的多个第一控制指令,并将每个第一控制指令发送至对应的控制器,使每个控制器能够控制其对应的机器人;其中,所述历史控制指令包括所述控制指令帧中的第二控制指令,所述第二历史时间戳包括第二控制指令对应的第二时间戳,第二时间戳为所述上层软件发送的与所述控制时刻最接近的时间戳。5.根据权利要求4所述的通信方法,其特征在于,根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定控制时刻对应的多个第一控制指令,包括:将所述控制指令帧中的第二控制指令作为所述控制时刻的第一控制指令;或者,获得在所述控制时刻之前获得的历史控制指令和第二历史时间戳所对应的第二拟合曲线或第二神经网络模型,将所述控制时刻代入所述第二拟合曲线或所述第二神经网络模型,获得所述第二拟合曲线或所述第二神经网络模型输出的所述控制时刻的第一控制指令;其中,所述第二拟合曲线或所述第二神经网络用于表示时间戳和控制指令的对应关系。6.根据权利要求4所述的通信方法,其特征在于,将每个第一控制指令发送至对应的控制器,包括:获得第二设定时长内的与所述一个控制器相关的多组具有对应关系的第一状态参数和第一控制指令;分别根据每组第一状态参数和第一控制指令计算所述一个控制器对应的机器人的动作方向;如果第一时间戳相邻的两组第一状态参数和第一控制指令所计算的机器人的两个动作方向不同,则确定机器人改变一次动作方向;如果所述第二设定时长内机器人动作方向改变的次数小于或等于设定次数阈值,则确定所述一个控制器对应的第一控制指令为非易抖动指令,并将第一控制指令发送至所述一个控制器。7.根据权利要求6所述的通信方法,其特征在于,还包括:如果将要发送的第一控制指令导致机器人改变一次动作方向,且所述第二设定时长内机器人动作方向改变的次数多于所述设定次数阈值,则确定所述一个控制器对应的第一控制指令为易抖动指令;重新根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定所述一个控制器对应的第一控制指令,或者,将静止指令作为所述一个控制器对应的第一控制指令,并将第一控制指令发送至所述一个控制器。8.根据权利要求4所述的通信方法,其特征在于,根据在所述控制时刻之前通过所述上层软件获得的历史控制指令和第二历史时间戳,确定所述控制时刻对应的多个第一控制指令,包括:
根据所述一个控制器在发送时刻前第一设定时长内发送的历史状态参数和第一历史时间戳,确定所述一个控制器对应的通信链路的短期延迟时长;所述发送时刻为向所述一个控制器发送第一控制指令的时刻;如果所述短期延迟时长短于全部控制器对应的通信链路的平均延迟时长,则根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定在所述控制时刻之前的时刻,所述一个控制器所对应的第一控制指令;如果所述短期延迟时长长于全部控制器对应的通信链路的平均延迟时长,则根据在所述控制时刻之前获得的历史控制指令和第二历史时间戳,确定在所述控制时刻之后的时刻,所述一个控制器所对应的第一控制指令。9.一种用于多机器人协同作业的通信装置,其特征在于,每个机器人对应一个控制器,多个机器人协同完成一个运动场景,所述通信装置包括:第一通信模块,用于获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;同步模块,用于对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;第二通信模块,用于将多个第二状态参数封装为状态参数帧,并将所述状态参数帧发送至上层软件;第三通信模块,用于通过所述上层软件获得与所述状态参数帧对应的控制指令帧;第四通信模块,用于根据所述控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。10.一种用于多机器人协同作业的通信中间件,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至8任一项所述的用于多机器人协同作业的通信方法。

技术总结
本申请涉及机器人通信技术领域,公开了一种用于多机器人协同作业的通信方法。该通信方法包括:获得每个控制器采集的机器人的第一状态参数和第一时间戳;第一状态参数和第一时间戳一一对应;对多个第一状态参数以及第一时间戳进行时间戳同步,以获得时间戳相同的多个第二状态参数;将多个第二状态参数封装为状态参数帧,并将状态参数帧发送至上层软件;通过上层软件获得与状态参数帧对应的控制指令帧;根据控制指令帧,向每个控制器反馈对应的控制指令,使每个控制器能够控制其对应的机器人。采用该通信方法能够提高不同类型机器人的协同作业效果。本申请还公开一种用于多机器人协同作业的通信装置和通信中间件。作业的通信装置和通信中间件。作业的通信装置和通信中间件。


技术研发人员:陈鑫 顾捷
受保护的技术使用者:上海傅利叶智能科技有限公司
技术研发日:2023.05.15
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐