CN109483526A - 虚拟环境和真实环境下机械臂的控制方法和系统 - Google Patents
虚拟环境和真实环境下机械臂的控制方法和系统 Download PDFInfo
- Publication number
- CN109483526A CN109483526A CN201710823728.8A CN201710823728A CN109483526A CN 109483526 A CN109483526 A CN 109483526A CN 201710823728 A CN201710823728 A CN 201710823728A CN 109483526 A CN109483526 A CN 109483526A
- Authority
- CN
- China
- Prior art keywords
- message
- virtual
- environment
- virtual machine
- processing module
- 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 41
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000012549 training Methods 0.000 claims abstract description 20
- 230000033001 locomotion Effects 0.000 claims description 32
- 238000005538 encapsulation Methods 0.000 claims 1
- 238000013135 deep learning Methods 0.000 abstract description 21
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 239000011800 void material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000010358 mechanical oscillation Effects 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012546 transfer Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种虚拟环境和真实环境下机械臂的控制方法和系统。其中方法包括:消息处理模块在主控制器对真实环境下的真实机械臂进行控制的同时,接收主控制器对真实机械臂的第一控制消息;对第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息;将第二控制消息发送至虚拟机械臂,其中,虚拟机械臂根据第二控制消息运动至目标位置上,并控制虚拟环境下的虚拟摄像装置进行拍摄;接收虚拟机械臂和虚拟摄像装置的第二反馈消息,并将第二反馈消息发送至主控制器,其中,主控制器在接收第二反馈消息时,接收真实机械臂反馈的第一反馈消息,并根据第一反馈消息和第二反馈消息进行深度学习的训练以得到下一步的控制决策。
Description
技术领域
本发明涉及虚拟现实领域,尤其涉及一种虚拟环境和真实环境下机械臂的控制方法和控制系统。
背景技术
在利用机械臂携带摄像头进行数据采集时,需要控制机械臂的运动与停止以实现在不同位姿下图像数据采集。相关技术中,数据采集方式主要通过真实机械臂进行,即,首先通过程序控制机械臂运动到某个特定位置,然后控制摄像头进行拍照和图片保存,所得到的数据用于真实机械臂运动的深度学习;或者,在虚拟环境下进行图像数据采集,方法类似于真实机械臂,也是在虚拟环境下控制机械臂运动到某个位置,然后控制虚拟摄像头进行拍照和图片保存,所得到的数据用于虚拟机械臂运动的深度学习。
但是,目前存在的问题是:在真实条件下由于电机加速度和机械振动等因素的限制,机械臂不能以较高的速度进行数据采集,而虚拟环境下获取的数据只能用于虚拟机械臂运动控制的学习,在真实机械臂下效果较差。因此,相关技术需要改进。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种虚拟环境和真实环境下机械臂的控制方法。该方法实现了真实机械臂和虚拟机械臂的无缝衔接,在保证高速获取数据的同时,可以使得真实机械臂和虚拟机械臂能够同步运动,并利用真实机械臂和虚拟机械臂的反馈数据进行混合训练深度学习网络,可以得到适用于真实和虚拟环境下的较好的训练效果。
本发明的第二个目的在于提出一种虚拟环境和真实环境下机械臂的控制系统。
为达到上述目的,本发明第一方面实施例提出的虚拟环境和真实环境下机械臂的控制方法,包括:消息处理模块在主控制器对真实环境下的真实机械臂进行控制的同时,接收所述主控制器对所述真实机械臂的第一控制消息;所述消息处理模块对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息;所述消息处理模块将所述第二控制消息发送至所述虚拟机械臂,其中,所述虚拟机械臂根据所述第二控制消息运动至目标位置上,并控制所述虚拟环境下的虚拟摄像装置进行拍摄,其中,所述虚拟摄像装置设置于所述虚拟机械臂上;所述消息处理模块接收所述虚拟机械臂和虚拟摄像装置的第二反馈消息,并将所述第二反馈消息发送至所述主控制器,其中,所述主控制器在接收所述第二反馈消息时,接收所述真实机械臂反馈的第一反馈消息,并根据所述第一反馈消息和所述第二反馈消息进行深度学习的训练以得到下一步的控制决策。
根据本发明实施例的虚拟环境和真实环境下机械臂的控制方法,通过消息处理模块接收主控制器对真实机械臂的第一控制消息,并对该第一控制消息封装成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将该第二控制消息发送给虚拟机械臂,以实现虚拟机械臂的运动控制,其中,主控制器在接收到虚拟机械臂和真实机械臂的反馈信息时,可根据两者的反馈信息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练,实现了真实机械臂和虚拟机械臂的无缝衔接,在保证高速获取数据的同时,可以使得真实机械臂和虚拟机械臂能够同步运动,并利用真实机械臂和虚拟机械臂的反馈数据进行混合训练深度学习网络,可以得到适用于真实和虚拟环境下的较好的训练效果。
根据本发明的一个实施例,所述消息处理模块对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息,包括:所述消息处理模块确定所述虚拟机械臂中用于消息接发的接口,并确定所述接口的类型;所述消息处理模块根据所述接口的类型确定适用于所述接口的消息类型;所述消息处理模块根据所述消息类型对所述第一控制消息进行封装,以生成与所述消息类型对应的第二控制消息。
根据本发明的一个实施例,所述消息处理模块与所述主控制器之间的消息以发布-订阅的方式进行传递。
根据本发明的一个实施例,所述消息处理模块与所述主控制器之间的消息以ROS框架下的消息分发的方式进行传递。
为达到上述目的,本发明第二方面实施例提出的虚拟环境和真实环境下机械臂的控制系统,包括:主控制器、虚拟环境下的虚拟机械臂、真实环境下的真实机械臂和消息处理模块,其中,所述消息处理模块设置于所述虚拟环境中,所述消息处理模块,用于在所述主控制器对所述真实环境下的真实机械臂进行控制的同时,接收所述主控制器对所述真实机械臂的第一控制消息,并对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将所述第二控制消息发送至所述虚拟机械臂,其中,所述虚拟机械臂根据所述第二控制消息运动至目标位置上,并控制所述虚拟环境下的虚拟摄像装置进行拍摄,其中,所述虚拟摄像装置设置于所述虚拟机械臂上,以及接收所述虚拟机械臂和虚拟摄像装置的第二反馈消息,并将所述第二反馈消息发送至所述主控制器;所述主控制器向所述真实环境下的真实机械臂发送第一控制消息,并将所述第一控制消息发送至所述消息处理模块,并接收所述真实机械臂反馈的第一反馈消息和所述消息处理模块发送的所述第二反馈消息,并根据所述第一反馈消息和所述第二反馈消息进行深度学习的训练以得到下一步的控制决策。
根据本发明实施例的虚拟环境和真实环境下机械臂的控制系统,通过消息处理模块接收主控制器对真实机械臂的第一控制消息,并对该第一控制消息封装成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将该第二控制消息发送给虚拟机械臂,以实现虚拟机械臂的运动控制,其中,主控制器在接收到虚拟机械臂和真实机械臂的反馈信息时,可根据两者的反馈信息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练,实现了真实机械臂和虚拟机械臂的无缝衔接,在保证高速获取数据的同时,可以使得真实机械臂和虚拟机械臂能够同步运动,并利用真实机械臂和虚拟机械臂的反馈数据进行混合训练深度学习网络,可以得到适用于真实和虚拟环境下的较好的训练效果。
根据本发明的一个实施例,所述消息处理模块具体用于:确定所述虚拟机械臂中用于消息接发的接口,并确定所述接口的类型,并根据所述接口的类型确定适用于所述接口的消息类型,以及根据所述消息类型对所述第一控制消息进行封装,以生成与所述消息类型对应的第二控制消息。
根据本发明的一个实施例,所述消息处理模块与所述主控制器之间的消息以发布-订阅的方式进行传递。
根据本发明的一个实施例,所述消息处理模块与所述主控制器之间的消息以ROS框架下的消息分发的方式进行传递。
根据本发明的一个实施例,所述虚拟环境用于指示在机器人操作系统ROS Gazebo环境下搭建的虚拟机械臂运动环境,其中,所述虚拟机械臂运动环境包括虚拟机械臂本体、虚拟摄像装置和周围的仿真环境。
根据本发明的一个实施例,当所述虚拟环境下的虚拟机械臂为多个,且所述消息处理模块为多个时,每个所述消息处理模块对应一个所述虚拟机械臂。
根据本发明的一个实施例,当所述虚拟环境下的虚拟机械臂为多个,且所述消息处理模块为一个时,所述主控制器与所述消息处理模块之间的消息中包含有待控制的虚拟机械臂的标识信息。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的控制节点订阅和发布消息的模型示例图;
图2是本发明实施例的在ROS Gazebo环境下搭建虚拟的机械臂运动环境的示例图;
图3是根据本发明一个实施例的虚拟环境和真实环境下机械臂的控制方法的流程图;
图4是根据本发明一个实施例的将第一控制消息转换为第二控制消息的流程图;
图5为本发明实施例的虚拟环境和真实环境下机械臂同步运动控制的系统框架的示例图;
图6是根据本发明一个实施例的虚拟环境和真实环境下机械臂的控制系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的虚拟环境和真实环境下机械臂的控制方法和控制系统。
首先,为了能够使得本领域技术人员能够更加清楚地了解本发明,可先对本发明所涉及到的ROS(Robot Operating System,开源机器人操作系统)相关概念信息进行介绍说明:
开源机器人操作系统ROS,用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库,用以获取、建立、编写和运行多机整合的程序。ROS被设计为适用于有机械臂和运动传感器的移动平台(例如,倾角激光、云台、机械臂传感器等)。
节点:节点就是一些执行运算任务的进程。ROS利用规模可增长的方式是代码模块化:一个系统就是典型的由很多节点组成的。在这里,节点也可以被称之为“软件模块”。本发明使用“节点”使得基于ROS的系统在运行的时候更加形象化:当许多节点同时运行时,可以很方便地将端对端的通讯绘制成一个图表,在这个图表中,进程就是图中的节点,而端对端的连接关系就是其中弧线连接。
消息:节点之间是通过传送消息进行通讯的。每一个消息都是一个严格的数据结构。原来标准的数据类型(比如整数型、浮点型、布尔型等)都是支持的,同时也支持原始数组类型。消息可以包含任意的嵌套结构和数组,其很类似于C语言的结构structs。
主题:消息以一种发布/订阅的方式传递。一个节点可以在一个给定的主题中发布消息。一个节点针对某个主题关注与订阅特定类型的数据。可能同时有多个节点发布或者订阅同一个主题的消息。总体上,发布者和订阅者不了解彼此的存在。
服务:虽然基于话题的发布/订阅模型是很灵活的通讯模式,但是它广播式的路径规划对于可以简化节点设计的同步传输模式并不适合。在ROS中,我们称之为一个服务,用一个字符串和一对严格规范的消息定义:一个用于请求,一个用于回应。这类似于web服务器,web服务器是由URIs(即统一资源定位器)定义的,同时带有完整定义类型的请求和回复文档。需要注意的是,不像话题,只有一个节点可以以任意独有的名字广播一个服务:只有一个服务可以称之为“分类象征”,比如说,任意一个给出的URI地址只能有一个web服务器。
在上面概念的基础上,需要有一个控制器可以使所有节点有条不紊的执行,这就是一个ROS的控制器(ROS Master)。
ROS Master通过RPC(Remote Procedure Call Protocol,远程过程调用)提供了登记列表和对其他计算图表的查找。没有控制器,节点将无法找到其他节点、交换消息或调用服务。
例如,控制节点订阅和发布消息的模型如图1所示,ROS的控制器(即ROS Master)给ROS的节点存储了主题和服务的注册信息。节点与控制器通信从而报告它们的注册信息。当这些节点与控制器通信时,它们可以接收关于其他节点以及注册的信息并且建立与其它注册节点之间的联系。当这些注册信息改变时控制器也会回馈这些节点,同时允许节点动态创建与新节点之间的连接。
节点与节点之间的连接是直接的,控制器仅仅提供了查询信息,就像一个DNS服务器。节点订阅一个主题将会要求建立一个与出版该主题的节点的连接,并且将会在同意连接协议的基础上建立该连接。
为此,基于上述相关概念信息,本发明是在ROS Gazebo(一种模拟器)环境下搭建虚拟的机械臂运动环境,如图2所示,可包括机械臂本体、摄像头和周围的环境。建立虚拟机械臂的运动控制器,以优傲六轴机械臂为例,确定机械臂六轴电机转角为被控变量。在ROS框架下,建立消息处理的中间层(即本发明中的消息处理模块),所述消息处理模块利用本发明实施例提出的虚拟环境和真实环境下机械臂的控制方法,既能够高速获取数据,又同时可以通过统一的控制架构同步控制虚拟环境和真实环境下的机械臂。
图3是根据本发明一个实施例的虚拟环境和真实环境下机械臂的控制方法的流程图。需要说明的是,本发明实施例的控制方法可应用于本发明实施例的虚拟环境和真实环境下机械臂的控制系统中。其中,该控制系统可包括主控制器、虚拟环境下的虚拟机械臂、真实环境下的真实机械臂和消息处理模块,其中,虚拟机械臂和真实机械臂都分别相当于一个节点。
如图3所示,该虚拟环境和真实环境下机械臂的控制方法可以包括:
S310,消息处理模块在主控制器对真实环境下的真实机械臂进行控制的同时,接收主控制器对真实机械臂的第一控制消息。
可选地,主控制器可对真实环境下的真实机械臂进行运动控制,比如,主控制器可向真实环境下的真实机械臂电机发送控制消息,以驱动真实机械臂进行运动。在主控制器对真实环境下的真实机械臂进行运动控制的过程中,消息处理模块可接收主控制器对该真实机械臂的第一控制消息。
可以理解,在本发明的实施例中,消息处理模块与主控制器之间的消息传递方式可以有很多种,比如发布-订阅的方式,或者,ROS框架下的消息分发的方式等,下面将给出两个不同实现方式的示例:
作为一种实现方式的示例,所述消息处理模块与所述主控制器之间的消息以发布-订阅的方式进行传递。也就是说,消息处理模块可向主控制器订阅主控制器在对真实机械臂进行运动控制时所发送的第一控制消息,这样,主控制器在向真实机械臂发送第一控制消息时,可将该第一控制消息发送到消息处理模块,从而该消息处理模块可以获得主控制器对真实机械臂的第一控制消息。
作为另一种实现方式的示例,所述消息处理模块与所述主控制器之间的消息以ROS框架下的消息分发的方式进行传递。也就是说,主控制器在向真实机械臂发送第一控制消息时,可通过ROS框架下的消息分发的方式分发该第一控制消息,这样,消息处理模块可以接收到所述主控制器对真实机械臂的第一控制消息。
需要说明的是,在本发明的实施例中,主控制器在向真实环境下的真实机械臂电机发送第一控制消息,以驱动真实机械臂进行运动时,真实机械臂可根据该第一控制消息运动到对应位置上,并控制位于该真实机械臂上的摄像装置进行拍摄,以得到真实环境下的图像数据,从而实现真实环境下图像数据的采集功能。
S320,消息处理模块对第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息。
可选地,消息处理模块在接收到主控制器对真实机械臂的第一控制消息时,可对该第一控制消息进行封装,以得到虚拟环境下的虚拟机械臂可以接收的消息类型。例如,消息处理模块可根据预先设定的消息封装规则,将该第一控制消息封装成虚拟机械臂可以接收的消息类型,其中,该消息类型可以是预先设定好的。
可选地,上述消息类型还可以是根据虚拟机械臂的消息接发接口的实际类型来决定。作为一种示例,如图4所示,上述消息处理模块对第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息的具体实现方式可包括:
S3201,消息处理模块确定虚拟机械臂中用于消息接发的接口,并确定所述接口的类型;
可选地,消息处理模块可先确定虚拟机械臂中哪个或哪些接口是用于消息接收和发送的,并确定各个接口的类型。可以理解,由于该虚拟机械臂是在虚拟环境下搭建的,所以,该虚拟机械臂中用于消息接发的接口也应为虚拟接口。
S3202,消息处理模块根据所述接口的类型确定适用于所述接口的消息类型;
S3203,消息处理模块根据所述消息类型对第一控制消息进行封装,以生成与所述消息类型对应的第二控制消息。
这样,消息处理模块在确定虚拟机械臂中用于消息接发的接口的类型之后,可根据该接口的类型确定适用于所述接口的消息类型,进而可根据该消息类型对第一控制消息进行封装,以得到与该消息类型对应的第二控制消息。可以理解,该第二控制消息适用于虚拟环境下的虚拟机械臂。
S330,消息处理模块将第二控制消息发送至虚拟机械臂,其中,虚拟机械臂根据第二控制消息运动至目标位置上,并控制虚拟环境下的虚拟摄像装置进行拍摄,其中,虚拟摄像装置设置于虚拟机械臂上。
可选地,消息处理模块在对所述第一控制消息进行封装,以得到适用于虚拟环境下的第二控制消息之后,可将该第二控制消息发送给虚拟机械臂。虚拟机械臂在接收到该第二控制消息时,可进行相应的运动,以使得自身运动到所述第二控制消息中所指示的目标位置上,并控制位于虚拟机械臂上的虚拟摄像装置进行拍摄,以得到虚拟环境下的图像数据,从而实现虚拟环境下图像数据的采集功能。
S340,消息处理模块接收虚拟机械臂和虚拟摄像装置的第二反馈消息,并将第二反馈消息发送至主控制器,其中,主控制器在接收第二反馈消息时,接收真实机械臂反馈的第一反馈消息,并根据第一反馈消息和第二反馈消息进行深度学习的训练以得到下一步的控制决策。
可选地,虚拟机械臂上的虚拟摄像装置在完成拍摄操作时,虚拟机械臂可生成第二反馈消息,并通过虚拟机械臂中的消息接发接口发送该第二反馈消息。消息处理模块在接收到该虚拟机械臂发送的第二反馈消息时,可将该第二反馈消息转发给主控制器。真实机械臂上的摄像装置在完成拍摄操作时,真实机械臂也会生成第一反馈消息,并将该第一反馈消息反馈给主控制器。
主控制器在接收到所述第一反馈消息和第二反馈消息时,可根据第一反馈消息和所述第二反馈消息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练。也就是说,主控制器在接收到虚拟机械臂和真实机械臂的双重反馈后,再进行后续动作从而实现虚拟和现实的同步运动,并利用虚拟和真实环境下的两种数据进行深度学习的训练。
为了使得本领域技术人员能够更加清楚地了解本发明,下面将举例说明。
举例而言,如图5所示,假设虚拟环境和真实环境下的消息采用ROS系统进行传输,当主控制器向真实环境下的真实机械臂电机发送第一控制消息,以驱动真实机械臂进行运动的同时,消息处理模块可接收该主控制器对真实机械臂的第一控制消息,并将该第一控制消息进行封装以转换成适用于虚拟环境下的虚拟机械臂的第二控制消息。当真实机械臂和虚拟机械臂完成运动指令时,真实机械臂的第一反馈消息和虚拟机械臂的第二反馈消息可通过ROS系统传递给主控制器。主控制器在接收到所述第一反馈消息和第二反馈消息时,可根据第一反馈消息和所述第二反馈消息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练。
综上,本发明实施例的控制方法实现了真实机械臂和虚拟机械臂的无缝衔接,使得真实机械臂和虚拟机械臂能够同步运动,比如获取大量的图片采集。在虚拟环境中,虚拟机械臂的运动和效率会非常高,相对来说真实机械臂的控制和运动会产生延迟,虚拟机械臂获取图片的效率更高,同时为了获取海量图片用于训练,虚拟环境中的环境、光线等条件可以随时改变,获取到的图片多样性,更有利于深度学习的训练。
由于机械臂最终识别和抓取物体是要在真实环境中,因此真实环境获取图片对实际训练十分重要,但是,真实机械臂获取图片效率低下,且需要人工看护,而虚拟机械臂获取图片效率高,且可以模拟物理调节,获取多样性的图片。本发明实施例中的虚拟机械臂和真实机械臂的无缝衔接,不仅体现在获取图片中,也可以同时进行深度学习。
需要说明的是,在本发明的实施例中,虚拟环境中的虚拟机械臂可为多个,可以同步控制多台虚拟机械臂,从而极大的提高数据采集速度。作为一种示例,该虚拟机械臂为多个时,本发明实施例中的消息处理模块可为一个或多个。例如,当所述消息处理模块为一个时,所述主控制器与所述消息处理模块之间的消息中包含有待控制的虚拟机械臂的标识信息;当所述消息处理模块为多个时,每个所述消息处理模块对应一个所述虚拟机械臂。
也就是说,多个虚拟机械臂的结构可以平行地有多个消息处理模块,每个消息处理模块对应一个虚拟机械臂;还可以是一个消息处理模块对应多个虚拟机械臂,只要在消息中指明每个虚拟机械臂的标识信息(如ID号)即可。
根据本发明实施例的虚拟环境和真实环境下机械臂的控制方法,通过消息处理模块接收主控制器对真实机械臂的第一控制消息,并对该第一控制消息封装成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将该第二控制消息发送给虚拟机械臂,以实现虚拟机械臂的运动控制,其中,主控制器在接收到虚拟机械臂和真实机械臂的反馈信息时,可根据两者的反馈信息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练,实现了真实机械臂和虚拟机械臂的无缝衔接,在保证高速获取数据的同时,可以使得真实机械臂和虚拟机械臂能够同步运动,并利用真实机械臂和虚拟机械臂的反馈数据进行混合训练深度学习网络,可以得到适用于真实和虚拟环境下的较好的训练效果。
与上述几种实施例提供的虚拟环境和真实环境下机械臂的控制方法相对应,本发明的一种实施例还提供一种虚拟环境和真实环境下机械臂的控制系统,由于本发明实施例提供的虚拟环境和真实环境下机械臂的控制系统与上述几种实施例提供的虚拟环境和真实环境下机械臂的控制方法相对应,因此在前述虚拟环境和真实环境下机械臂的控制方法的实施方式也适用于本实施例提供的虚拟环境和真实环境下机械臂的控制系统,在本实施例中不再详细描述。图6是根据本发明一个实施例的虚拟环境和真实环境下机械臂的控制系统的结构示意图。如图6所示,该虚拟环境和真实环境下机械臂的控制系统600可以包括:主控制器610、虚拟环境下的虚拟机械臂620、真实环境下的真实机械臂630和消息处理模块640。
具体地,消息处理模块640设置于虚拟环境中,消息处理模块640,用于在主控制器610对真实环境下的真实机械臂630进行控制的同时,接收主控制器610对真实机械臂630的第一控制消息,并对第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂620的第二控制消息,并将第二控制消息发送至虚拟机械臂620,其中,虚拟机械臂620根据第二控制消息运动至目标位置上,并控制虚拟环境下的虚拟摄像装置进行拍摄,其中,虚拟摄像装置设置于虚拟机械臂620上,以及接收虚拟机械臂620和虚拟摄像装置的第二反馈消息,并将第二反馈消息发送至主控制器610。
主控制器610向真实环境下的真实机械臂630发送第一控制消息,并将第一控制消息发送至消息处理模块640,并接收真实机械臂630反馈的第一反馈消息和消息处理模块640发送的第二反馈消息,并根据第一反馈消息和第二反馈消息进行深度学习的训练以得到下一步的控制决策。
作为一种示例,消息处理模块640对第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂620的第二控制消息的具体实现过程可如下:确定虚拟机械臂620中用于消息接发的接口,并确定接口的类型,并根据接口的类型确定适用于接口的消息类型,以及根据消息类型对第一控制消息进行封装,以生成与消息类型对应的第二控制消息。
可以理解,在本发明的实施例中,消息处理模块640与主控制器610之间的消息传递方式可以有很多种,比如发布-订阅的方式,或者,ROS框架下的消息分发的方式等,下面将给出两个不同实现方式的示例:
作为一种实现方式的示例,消息处理模块640与主控制器610之间的消息以发布-订阅的方式进行传递。
作为另一种实现方式的示例,消息处理模块640与主控制器610之间的消息以ROS框架下的消息分发的方式进行传递。
可选地,上述虚拟环境可用于指示在机器人操作系统ROS Gazebo环境下搭建的虚拟机械臂620运动环境,其中,虚拟机械臂620运动环境可包括虚拟机械臂620本体、虚拟摄像装置和周围的仿真环境。
为了极大地提高数据采集速度,可选地,在本发明的一个实施例中,该虚拟环境下的虚拟机械臂620可为多个。在本示例中,当虚拟环境下的虚拟机械臂620为多个,且消息处理模块640为多个时,每个消息处理模块640对应一个虚拟机械臂620。
作为另一种示例,当虚拟环境下的虚拟机械臂620为多个,且消息处理模块640为一个时,主控制器610与消息处理模块640之间的消息中包含有待控制的虚拟机械臂620的标识信息。
也就是说,多个虚拟机械臂620的结构可以平行地有多个消息处理模块640,每个消息处理模块640对应一个虚拟机械臂;还可以是一个消息处理模块640对应多个虚拟机械臂620,只要在消息中指明每个虚拟机械臂620的标识信息(如ID号)即可。由此,在虚拟环境中存在多个虚拟机械臂时,可以实现同步控制多台虚拟机械臂的目的,从而极大地提高了数据采集速度。
根据本发明实施例的虚拟环境和真实环境下机械臂的控制系统,通过消息处理模块接收主控制器对真实机械臂的第一控制消息,并对该第一控制消息封装成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将该第二控制消息发送给虚拟机械臂,以实现虚拟机械臂的运动控制,其中,主控制器在接收到虚拟机械臂和真实机械臂的反馈信息时,可根据两者的反馈信息进行下一步的运动决策,所获取的数据和控制方式可以用于深度学习训练,实现了真实机械臂和虚拟机械臂的无缝衔接,在保证高速获取数据的同时,可以使得真实机械臂和虚拟机械臂能够同步运动,并利用真实机械臂和虚拟机械臂的反馈数据进行混合训练深度学习网络,可以得到适用于真实和虚拟环境下的较好的训练效果。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种虚拟环境和真实环境下机械臂的控制方法,其特征在于,包括以下步骤:
消息处理模块在主控制器对真实环境下的真实机械臂进行控制的同时,接收所述主控制器对所述真实机械臂的第一控制消息;
所述消息处理模块对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息;
所述消息处理模块将所述第二控制消息发送至所述虚拟机械臂,其中,所述虚拟机械臂根据所述第二控制消息运动至目标位置上,并控制所述虚拟环境下的虚拟摄像装置进行拍摄,其中,所述虚拟摄像装置设置于所述虚拟机械臂上;
所述消息处理模块接收所述虚拟机械臂和虚拟摄像装置的第二反馈消息,并将所述第二反馈消息发送至所述主控制器,其中,所述主控制器在接收所述第二反馈消息时,接收所述真实机械臂反馈的第一反馈消息,并根据所述第一反馈消息和所述第二反馈消息进行深度学习的训练以得到下一步的控制决策。
2.如权利要求1所述的方法,其特征在于,所述消息处理模块对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息,包括:
所述消息处理模块确定所述虚拟机械臂中用于消息接发的接口,并确定所述接口的类型;
所述消息处理模块根据所述接口的类型确定适用于所述接口的消息类型;
所述消息处理模块根据所述消息类型对所述第一控制消息进行封装,以生成与所述消息类型对应的第二控制消息。
3.如权利要求1所述的方法,其特征在于,所述消息处理模块与所述主控制器之间的消息以发布-订阅的方式进行传递。
4.如权利要求1所述的方法,其特征在于,所述消息处理模块与所述主控制器之间的消息以ROS框架下的消息分发的方式进行传递。
5.一种虚拟环境和真实环境下机械臂的控制系统,其特征在于,包括:主控制器、虚拟环境下的虚拟机械臂、真实环境下的真实机械臂和消息处理模块,其中,
所述消息处理模块设置于所述虚拟环境中,所述消息处理模块,用于在所述主控制器对所述真实环境下的真实机械臂进行控制的同时,接收所述主控制器对所述真实机械臂的第一控制消息,并对所述第一控制消息进行封装以生成适用于虚拟环境下的虚拟机械臂的第二控制消息,并将所述第二控制消息发送至所述虚拟机械臂,其中,所述虚拟机械臂根据所述第二控制消息运动至目标位置上,并控制所述虚拟环境下的虚拟摄像装置进行拍摄,其中,所述虚拟摄像装置设置于所述虚拟机械臂上,以及接收所述虚拟机械臂和虚拟摄像装置的第二反馈消息,并将所述第二反馈消息发送至所述主控制器;
所述主控制器向所述真实环境下的真实机械臂发送第一控制消息,并将所述第一控制消息发送至所述消息处理模块,并接收所述真实机械臂反馈的第一反馈消息和所述消息处理模块发送的所述第二反馈消息,并根据所述第一反馈消息和所述第二反馈消息进行深度学习的训练以得到下一步的控制决策。
6.如权利要求5所述的系统,其特征在于,所述消息处理模块具体用于:确定所述虚拟机械臂中用于消息接发的接口,并确定所述接口的类型,并根据所述接口的类型确定适用于所述接口的消息类型,以及根据所述消息类型对所述第一控制消息进行封装,以生成与所述消息类型对应的第二控制消息。
7.如权利要求5所述的系统,其特征在于,所述消息处理模块与所述主控制器之间的消息以发布-订阅的方式进行传递。
8.如权利要求5所述的系统,其特征在于,所述虚拟环境用于指示在机器人操作系统ROS Gazebo环境下搭建的虚拟机械臂运动环境,其中,所述虚拟机械臂运动环境包括虚拟机械臂本体、虚拟摄像装置和周围的仿真环境。
9.如权利要求5所述的系统,其特征在于,当所述虚拟环境下的虚拟机械臂为多个,且所述消息处理模块为多个时,每个所述消息处理模块对应一个所述虚拟机械臂。
10.如权利要求5所述的系统,其特征在于,当所述虚拟环境下的虚拟机械臂为多个,且所述消息处理模块为一个时,所述主控制器与所述消息处理模块之间的消息中包含有待控制的虚拟机械臂的标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710823728.8A CN109483526A (zh) | 2017-09-13 | 2017-09-13 | 虚拟环境和真实环境下机械臂的控制方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710823728.8A CN109483526A (zh) | 2017-09-13 | 2017-09-13 | 虚拟环境和真实环境下机械臂的控制方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109483526A true CN109483526A (zh) | 2019-03-19 |
Family
ID=65687870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710823728.8A Pending CN109483526A (zh) | 2017-09-13 | 2017-09-13 | 虚拟环境和真实环境下机械臂的控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109483526A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109910018A (zh) * | 2019-04-26 | 2019-06-21 | 清华大学 | 具有视觉语义感知的机器人虚实交互操作执行系统及方法 |
CN112338920A (zh) * | 2020-11-04 | 2021-02-09 | 中国联合网络通信集团有限公司 | 数据处理方法、装置及设备 |
CN112394912A (zh) * | 2019-08-16 | 2021-02-23 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
CN112445728A (zh) * | 2020-11-30 | 2021-03-05 | 中科院软件研究所南京软件技术研究院 | 一种支持多种硬件接口的机器人开发板ros通讯系统 |
CN113034668A (zh) * | 2021-03-01 | 2021-06-25 | 中科数据(青岛)科技信息有限公司 | 一种ar辅助的机械模拟操作方法和系统 |
CN113386133A (zh) * | 2021-06-10 | 2021-09-14 | 贵州恰到科技有限公司 | 一种强化学习机器人控制方法 |
CN114761182A (zh) * | 2019-09-30 | 2022-07-15 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870665A (zh) * | 2014-04-08 | 2014-06-18 | 哈尔滨工业大学 | 空间机械臂辅助对接过程三维动态仿真方法 |
CN104067781A (zh) * | 2014-06-16 | 2014-10-01 | 华南农业大学 | 基于虚拟机器人与真实机器人集成的采摘系统及方法 |
CN104626208A (zh) * | 2015-01-07 | 2015-05-20 | 北京卫星环境工程研究所 | 航天器机械臂辅助装配安全工作空间建立及干涉预警方法 |
KR20160083392A (ko) * | 2014-12-30 | 2016-07-12 | 현대중공업 주식회사 | 산업용 로봇 시스템 |
CN106779045A (zh) * | 2016-11-30 | 2017-05-31 | 东南大学 | 基于虚拟场景交互的康复训练机器人系统及其使用方法 |
CN106826822A (zh) * | 2017-01-25 | 2017-06-13 | 南京阿凡达机器人科技有限公司 | 一种基于ros系统的视觉定位及机械臂抓取实现方法 |
-
2017
- 2017-09-13 CN CN201710823728.8A patent/CN109483526A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870665A (zh) * | 2014-04-08 | 2014-06-18 | 哈尔滨工业大学 | 空间机械臂辅助对接过程三维动态仿真方法 |
CN104067781A (zh) * | 2014-06-16 | 2014-10-01 | 华南农业大学 | 基于虚拟机器人与真实机器人集成的采摘系统及方法 |
KR20160083392A (ko) * | 2014-12-30 | 2016-07-12 | 현대중공업 주식회사 | 산업용 로봇 시스템 |
CN104626208A (zh) * | 2015-01-07 | 2015-05-20 | 北京卫星环境工程研究所 | 航天器机械臂辅助装配安全工作空间建立及干涉预警方法 |
CN106779045A (zh) * | 2016-11-30 | 2017-05-31 | 东南大学 | 基于虚拟场景交互的康复训练机器人系统及其使用方法 |
CN106826822A (zh) * | 2017-01-25 | 2017-06-13 | 南京阿凡达机器人科技有限公司 | 一种基于ros系统的视觉定位及机械臂抓取实现方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109910018A (zh) * | 2019-04-26 | 2019-06-21 | 清华大学 | 具有视觉语义感知的机器人虚实交互操作执行系统及方法 |
CN109910018B (zh) * | 2019-04-26 | 2024-01-30 | 清华大学 | 具有视觉语义感知的机器人虚实交互操作执行系统及方法 |
CN112394912A (zh) * | 2019-08-16 | 2021-02-23 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
CN112394912B (zh) * | 2019-08-16 | 2022-03-25 | 北京大学 | 一种基于ros计算图的机器人应用数据动态提取方法 |
CN114761182A (zh) * | 2019-09-30 | 2022-07-15 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
CN114761182B (zh) * | 2019-09-30 | 2024-04-12 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
CN112338920A (zh) * | 2020-11-04 | 2021-02-09 | 中国联合网络通信集团有限公司 | 数据处理方法、装置及设备 |
CN112338920B (zh) * | 2020-11-04 | 2022-04-15 | 中国联合网络通信集团有限公司 | 数据处理方法、装置及设备 |
CN112445728A (zh) * | 2020-11-30 | 2021-03-05 | 中科院软件研究所南京软件技术研究院 | 一种支持多种硬件接口的机器人开发板ros通讯系统 |
CN112445728B (zh) * | 2020-11-30 | 2023-07-21 | 中科院软件研究所南京软件技术研究院 | 一种支持多种硬件接口的机器人开发板ros通讯系统 |
CN113034668A (zh) * | 2021-03-01 | 2021-06-25 | 中科数据(青岛)科技信息有限公司 | 一种ar辅助的机械模拟操作方法和系统 |
CN113386133A (zh) * | 2021-06-10 | 2021-09-14 | 贵州恰到科技有限公司 | 一种强化学习机器人控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109483526A (zh) | 虚拟环境和真实环境下机械臂的控制方法和系统 | |
Newman | A systematic approach to learning robot programming with ROS | |
CN108170428A (zh) | 页面搭建处理方法、装置及系统 | |
EP2776951A1 (en) | Image annotation method and system | |
CN108255614A (zh) | 一种基于微服务架构的接口调用系统及方法 | |
GB2430328A (en) | Modelling/simulating a network node including a plurality of protocol layers with selectively configurable switches disposed between and coupling the layers | |
CN103345410B (zh) | 移动作业业务客制化界面实现方法和系统 | |
CN106600306A (zh) | 一种在三维环境中进行广告投放的系统与方法 | |
US9764583B2 (en) | Method to transform a virtual object into a real physical object | |
Hattwick et al. | The vibropixels: A scalable wireless tactile display system | |
US20120162207A1 (en) | System and terminal device for sharing moving virtual images and method thereof | |
Oyekoya et al. | Supporting interoperability and presence awareness in collaborative mixed reality environments | |
WO2002097616A1 (en) | Collaborative virtual enivonment system and method | |
CN110391969A (zh) | 基于多媒体的聊天方法及装置、存储介质、电子装置 | |
WO2016053029A1 (ko) | 가상 공간 및 가상 객체를 포함하는 메시지를 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
CN107786367A (zh) | 一种虚拟网元的配置方法和装置 | |
JP2004530317A (ja) | Mpeg−4規格における相互作用の管理方法および設備 | |
US11677833B2 (en) | Methods for visualizing and interacting with a three dimensional object in a collaborative augmented reality environment and apparatuses thereof | |
KR20190069960A (ko) | 산업용 통신 시스템 및 방법 | |
Jang et al. | A heterogeneous coupling scheme of OPRoS component framework with ROS | |
CN107547684A (zh) | 一种IPv6地址分配方法和装置 | |
KR102558871B1 (ko) | Devs를 적용한 3d 물리엔진 계층구조 프레임워크 시스템 | |
CN109309634A (zh) | 一种报文处理系统及网络设备 | |
Fiedler et al. | Introduction to ROS | |
CN109600274A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190319 |
|
RJ01 | Rejection of invention patent application after publication |