CN116390835A - 系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统 - Google Patents

系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统 Download PDF

Info

Publication number
CN116390835A
CN116390835A CN202180070314.7A CN202180070314A CN116390835A CN 116390835 A CN116390835 A CN 116390835A CN 202180070314 A CN202180070314 A CN 202180070314A CN 116390835 A CN116390835 A CN 116390835A
Authority
CN
China
Prior art keywords
robot
information
library
robot controller
control device
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
Application number
CN202180070314.7A
Other languages
English (en)
Inventor
巽健人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kyocera Corp filed Critical Kyocera Corp
Publication of CN116390835A publication Critical patent/CN116390835A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40564Recognize shape, contour of object, extract position and orientation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

系统控制装置具备:与终端装置可通信地连接的第1接口;与控制至少一个机器人的至少一个机器人控制器可通信地连接的第2接口;和控制部。控制部取得基于输入信息生成的作业信息,该作业信息确定与使机器人执行的操作相应的程序库,并且能补足未定义部分。控制部基于作业信息,对至少一个机器人控制器输出操作的指示。

Description

系统控制装置、机器人控制方法、终端装置、终端控制方法以 及机器人控制系统
对关联申请的交叉参考
本申请主张日本专利申请2020-175506号(2020年10月19日申请)的优先权,将该申请的公开整体为了参考而引入于此。
技术领域
本公开涉及系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统。
背景技术
过去,已知如下方法:通过示教来作成定义机器人的坐标或输入输出的具体信息的程序,通过执行程序来使机器人动作。例如在专利文献1中记载一种系统控制装置,其通过各种类型的关节的轴以及执行对轴进行驱动控制的程序,来使机器人动作。
在先技术文献
专利文献
专利文献1:JP特开平5-4181号公报
发明内容
本公开的一实施方式所涉及的系统控制装置具备第1接口、第2接口和控制部。所述第1接口与接受用户所输入的输入信息的至少一个终端装置可通信地连接。所述第2接口与基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器可通信地连接。所述控制部取得基于输入信息生成的作业信息,该作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分。所述控制部基于所述作业信息来对所述至少一个机器人控制器输出所述操作的指示。
本公开的一实施方式所涉及的机器人控制方法包含:接受用户所输入的输入信息的至少一个终端装置、和基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器进行通信。所述机器人控制方法包含:从所述终端装置取得基于所述输入信息生成的作业信息,该作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分。所述机器人控制方法包含:基于所述作业信息来对所述至少一个机器人控制器输出所述操作的指示。
本公开的一实施方式所涉及的终端装置具备用户接口、通信接口和终端控制部。所述用户接口接受用户所输入的输入信息。所述通信接口与系统控制装置可通信地连接,该系统控制装置对基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器输出信息。所述终端控制部生成基于所述输入信息生成的作业信息,该作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分。所述通信接口将所述作业信息输出到所述系统控制装置。
本公开的一实施方式所涉及的终端控制方法包含:接受用户所输入的输入信息。所述终端控制方法包含:基于所述输入信息来生成并输出作业信息,该作业信息确定与基于表示机器人的动作并且包含未定义部分的至少一个程序库使被至少一个机器人控制器控制的至少一个机器人执行的操作相应的所述程序库,并且包含补足所述未定义部分的补足信息。
本公开的一实施方式所涉及的机器人控制系统具备至少一个机器人控制器、终端装置和系统控制装置。所述至少一个机器人控制器基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人。所述终端装置具有用户接口。所述用户接口接受用户所输入的输入信息。所述系统控制装置分别与所述机器人控制器以及所述终端装置可通信地连接。所述终端装置生成基于所述输入信息生成的作业信息,并输出到所述系统控制装置,该作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分。所述系统控制装置基于从所述终端装置取得的所述作业信息来对所述至少一个机器人控制器输出所述操作的指示。所述机器人控制器基于所述操作的指示来使所述机器人执行所述操作。
附图说明
图1是表示一实施方式所涉及的机器人控制系统的结构例的框图。
图2是表示一实施方式所涉及的机器人控制系统的其他结构例的框图。
图3是表示软件结构的一例的图。
图4是表示机器人控制系统所执行的机器人控制方法的步骤例的序列图。
图5是表示系统控制装置所执行的机器人控制方法的步骤例的流程图。
图6是表示终端装置所执行的终端控制方法的步骤例的流程图。
图7是表示机器人控制器所执行的机器人控制方法的步骤例的流程图。
具体实施方式
在通过示教来定义用于使机器人动作的坐标或输入输出的具体信息的情况下,为了进行示教要花费很大的工时以及成本。即,为了变更使机器人执行的操作内容,要花费很大的工时以及成本。谋求短时间且低成本地变更使机器人执行的操作内容。
本公开的目的在于,提供能短时间且低成本地变更使机器人执行的操作内容的系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统。
(机器人控制系统1的概要)
如图1所示那样,一实施方式所涉及的机器人控制系统1具备系统控制装置10和终端装置20。如后述那样,本实施方式所涉及的机器人控制系统1还具备控制机器人40的机器人控制器30(参考图2)。系统控制装置10、终端装置20、机器人40或机器人控制器30经由网络80相互可通信地连接。如后述那样,系统控制装置10、终端装置20、机器人40或机器人控制器30也可以不经由网络80地可通信地连接。网络80和机器人40或机器人控制器30可以经由接入点82可通信地连接。网络80和机器人40或机器人控制器30也可以不经由接入点82地可通信地连接。系统控制装置10以及终端装置20的数量并不限于例示的3台,也可以是两台以下,还可以是4台以上。
机器人控制系统1通过终端装置20从用户接受确定使机器人40执行的操作的信息的输入。机器人控制系统1从系统控制装置10对机器人控制器30输出指示使机器人40执行的操作的信息。机器人控制系统1通过机器人控制器30来使机器人40执行操作。
本实施方式所涉及的机器人控制系统1能通过抽象化的操作指示来使机器人40执行操作。用户例如能通过来自GUI(Graphical User Interface,图形用户接口)的抽象的设定来构成表示使机器人40执行的操作的内容的数据,并对机器人40指示操作的执行。即,本实施方式所涉及的机器人控制系统1能如哪个机器人40何时在何地对何物做什么这样的由人彼此执行的操作指示那样,以抽象的粒度定义或指示操作。
作为比较例,考虑用户通过利用示教操作细致地设定机器人的动作来使机器人执行操作的系统。根据比较例的系统,例如在使机器人执行物体的搬运操作的情况下,需要按使搬运的物体的每个种类、或每个状态进行示教操作。
另一方面,根据本实施方式所涉及的机器人控制系统1,能以抽象的粒度指示对机器人40的操作。由此一来,在使机器人40执行非例行操作的情况下,仅改编表示操作的内容的数据,就能使机器人40执行非例行操作。其结果,能以短时间且低成本实现操作内容的改编,能以更通用的用途活用机器人。
(机器人控制系统1的结构例)
如图2所示那样,机器人控制系统1还具备控制机器人40的机器人控制器30。系统控制装置10与终端装置20以及机器人控制器30分别可通信地连接。系统控制装置10可以与终端装置20以及机器人控制器30分别经由网络80可通信地连接。
<系统控制装置10>
系统控制装置10具备控制部11、第1接口13和第2接口14。虽然不是必须,但系统控制装置10还具备机器人模拟器50(后述)。
系统控制装置10经由第1接口13与终端装置20可通信地连接。系统控制装置10经由第2接口14与机器人控制器30可通信地连接。系统控制装置10可以与终端装置20以及机器人控制器30分别通过有线而可通信地连接,也可以通过无线而可通信地连接。机器人控制器30和机器人40可以通过有线而可通信地连接,也可以通过无线而可通信地连接。
机器人控制系统1的各结构部可以经由无线基站或接入点82(参考图1)可通信地连接,也可以不经由无线基站或接入点82地可通信地连接。接入点82是指用于将具备无线连接功能的终端相互连接或连接到其他网络的无线机,典型地,是以OSI(Open SystemInterconnect,开放系统互联)参考模型中的第1层(物理层)以及第2层(数据链路层)的通信协议工作的设备。机器人控制系统1的各结构部可以经由专用线路可通信地连接。机器人控制系统1的各结构部并不限于这些示例,也可以以其他各种形态相互可通信地连接。
控制部11为了实现系统控制装置10的各种功能,可以包含至少一个处理器来构成。处理器能执行实现系统控制装置10的各种功能的程序。处理器可以作为单一的集成电路而实现。集成电路也称作IC(Integrated Circuit)。处理器可以作为多个可通信地连接的集成电路以及分立电路来实现。处理器可以包含CPU(Central Processing Unit,中央处理器)来构成。处理器也可以包含DSP(Digital Signal Processor,数字信号处理器)或GPU(Graphics Processing Unit,图形处理器)来构成。处理器可以基于其他各种已知的技术来实现。
系统控制装置10还具备存储部12。存储部12可以包含磁盘等电磁存储介质来构成,也可以包含半导体存储器或磁存储器等存储器来构成。存储部12可以作为HDD(HardDisk Drive,硬盘驱动器)来构成,也可以作为SSD(Solid State Drive,固态硬盘)来构成。存储部12对由各种信息以及控制部11执行的程序等进行保存。存储部12可以作为控制部11的工作存储器发挥功能。存储部12的至少一部分可以含在控制部11中。
第1接口13或第2接口14可以包含通过有线或无线可通信地构成的通信设备来构成。通信设备可以以基于各种通信标准的通信方式可通信地构成。第1接口13或第2接口14能通过已知的通信技术来构成。第1接口13或第2接口14的硬件等的详细的说明省略。第1接口13以及第2接口14的功能可以通过一个接口实现,也可以分别通过分体的接口实现。
系统控制装置10可以通过第1接口13或第2接口14来与网络80可通信地连接。系统控制装置10可以经由网络80分别与终端装置20以及机器人控制器30可通信地连接。
在机器人控制系统1中,系统控制装置10可以构成为服务器装置。服务器装置可以包含至少一台信息处理装置来构成。服务器装置可以构成为使多个信息处理装置执行并列处理。服务器装置并不需要包含物理的壳体来构成,也可以基于虚拟机或容器编排系统等虚拟化技术来构成。服务器装置也可以使用云服务来构成。在服务器装置使用云服务构成的情况下,能通过组合托管服务来构成。即,系统控制装置10的功能能够作为云服务来实现。
服务器装置可以具备至少一个服务器群和至少一个数据库群。服务器群作为控制部11发挥功能。数据库群作为存储部12发挥功能。服务器群的数量可以是一个,也可以是两个以上。在服务器群的数量是一个的情况下,由一个服务器群实现的功能包含由各服务器群实现的功能。各服务器群相互通过有线或无线而可通信地连接。数据库群的数量可以是一个,也可以是两个以上。数据库群的数量可以基于服务器装置中管理的数据的容量和对服务器装置要求的可用性要件来适宜增减。数据库群与各服务器群通过有线或无线而可通信地连接。
系统控制装置10在图1以及图2中记载为一个结构,但能根据需要将多个结构视作一个系统来运用。即,系统控制装置10构成为容量可变的平台。通过使用多个结构作为系统控制装置10,在一个结构在天灾等不测的事态的发生时不再能运用的情况下,也可使用其他结构来继续系统的运用。在该情况下,多个结构分别通过不问有线或无线的线路而连接,相互可通信地构成。该多个结构也可以跨越云服务和本地部署环境来构建。
此外,系统控制装置10通过不问有线或无线的线路与终端装置20、机器人控制器30以及被机器人控制器30控制的机器人40分别连接。系统控制装置10、终端装置20和机器人控制器30相互具备利用了标准的协议的接口,能采取双方向的交流。
<终端装置20>
终端装置20具备终端控制部21、通信接口22和用户接口23。
终端控制部21可以包含至少一个处理器来构成。终端控制部21可以与系统控制装置10的控制部11相同或类似地构成。终端控制部21可以执行提供与后述的用户接口23对应的GUI(Graphical User Interface,图形用户接口)的应用。终端控制部21也可以通过在WEB浏览器上执行从系统控制装置10等其他装置发布的GUI的程序,来提供GUI。在WEB浏览器上提供GUI的情况下,终端控制部21构成为基于用户对WEB浏览器输入的请求来从系统控制装置10等其他装置接收GUI的程序,在WEB浏览器上进行描画。
另外,终端装置20可以跨越云服务和本地部署环境来构建。即,例如可以,用户接口23在本地部署环境中构建,终端控制部21构建为云服务。
通信接口22可以构成为与系统控制装置10的第1接口13或第2接口14相同或类似。
用户接口23构成为对用户提供上述的GUI。用户接口23包含对用户输出信息的输出设备、和接受来自用户的输入的输入设备来构成。
输出设备可以包含显示设备来构成。显示设备例如可以包含液晶显示器(LCD:Liquid Crystal Display)、有机EL(Electro-Luminescence,电致发光)显示器或无机EL显示器、或者等离子显示器(PDP:Plasma Display Panel)等来构成。显示设备并不限于这些显示器,可以包含其他各种方式的显示器来构成。显示设备可以包含LED(Light EmittingDiode,发光二极管)等发光设备来构成。显示设备可以包含其他各种设备来构成。输出设备也可以包含输出声音等听觉信息的扬声器等声音输出设备来构成。输出设备并不限于这些示例,可以包含其他各种设备来构成。
输入设备例如可以包含触控面板或触摸传感器、或者鼠标等指向设备来构成。输入设备也可以包含物理按键来构成。输入设备也可以包含麦克风等声音输入设备来构成。输入设备并不限于这些示例,可以包含其他各种设备来构成。
终端装置20可以包含至少一台信息处理装置来构成。机器人控制系统1所具备的终端装置20的数量并不限于一台,也可以是两台以上。在机器人控制系统1具备多个终端装置20的情况下,各终端装置20可以接受来自用户的输入。终端装置20可以作为平板终端来构成。终端装置20可以作为功能电话或智能手机等便携电话终端来构成。终端装置20可以作为桌面PC(Personal Computer,个人计算机)或笔记本PC等PC终端来构成。终端装置20并不限于这些示例,也可以构成为能提供GUI以及通信功能的各种设备。
终端装置20为了用户经由系统控制装置10对机器人控制器30以及机器人40指示操作而使用。
终端装置20例如可以为了经由浏览器或专用的应用来进行定义机器人40的动作的程序库群333(参考图3)的软件的追加或删除,或者指示机器人控制系统1的设定变更而使用。终端装置20可以为了监视机器人40的状态而使用。终端装置20并不限于这些示例,能提供其他各种功能。
<机器人控制器30>
机器人控制器30具备机器人控制部31。机器人控制部31可以包含至少一个处理器来构成。机器人控制部31可以构成为与系统控制装置10的控制部11相同或类似。
机器人控制器30能从系统控制装置10取得确定使机器人40执行的操作的操作(job)信息以及任务(task)信息。机器人控制器30基于作业信息以及任务信息来输出确定机器人40的动作的信息。使机器人40执行的操作例如可以包含使操作对象物在两个地点之间移动的操作。
机器人控制器30可以具有从系统控制装置10取得作业信息以及任务信息的接口。此外,机器人控制器30可以具备在与机器人40之间进行信号处理的接口。机器人控制器30的这些接口可以构成为与系统控制装置10的第1接口13或第2接口14相同或类似。机器人控制器30可以具备处理器,其基于作业信息以及任务信息来生成确定机器人40的动作的信息。机器人控制器30的处理器可以构成为与构成系统控制装置10的控制部11的处理器相同或类似。
在图2例示的结构中,一台机器人控制器30与一台机器人40连接。一台机器人控制器30也可以与两台以上的机器人40连接。一台机器人控制器30可以仅控制一台机器人40,也可以控制两台以上的机器人40。机器人控制器30以及机器人40的数量并不限于两台,可以是一台,也可以是3台以上。
另外,机器人控制器30可以跨越云服务和本地部署环境来构建。即,例如可以与机器人40的接口构建在本地部署环境,机器人控制部31构建为云服务。
<机器人40>
机器人40可以作为具备臂的机器人臂来构成。臂例如可以作为6轴或7轴的垂直多关节机器人来构成。臂可以作为3轴或4轴的水平多关节机器人或SCARA机器人来构成。臂可以作为2轴或3轴的正交机器人来构成。臂也可以作为并联杆式机器人等来构成。构成臂的轴的示例并不限于例示。
机器人40可以具备安装于臂的末端执行器。末端执行器例如可以包含构成为能握持操作对象物的握持手。握持手可以具有多个手指。握持手的手指的数量可以是两个以上。握持手的手指可以具有一个以上的关节。末端执行器可以包含构成为能吸附操作对象物的吸附手。末端执行器可以包含构成为能抓取操作对象物的抓取手。末端执行器可以构成为包含钻头等工具,能对操作对象物实施开孔的操作等各种加工。末端执行器并不限于这些示例,可以构成为能进行其他各种动作。
机器人40能通过使臂动作来控制末端执行器的位置。末端执行器可以具有成为对操作对象物作用的方向的基准的轴。在末端执行器具有轴的情况下,机器人40能通过使臂动作来控制末端执行器的轴的方向。机器人40控制末端执行器对操作对象物作用的动作的开始以及结束。机器人40通过控制末端执行器的位置或末端执行器的轴的方向并且控制末端执行器的动作,能使操作对象物活动,或对其进行加工。
机器人40可以作为无人运输车(AGV:Automated Guided Vehicle)来构成。机器人40也可以作为无人机来构成。机器人40并不限于机器人臂或AGV,也可以以交通工具、电子设备或控制机械等其他各种形态构成。
机器人40可以还具备检测机器人40的各结构部的状态的传感器。传感器可以检测与机器人40的各结构部的现实的位置或姿态、或者机器人40的各结构部的速度或加速度相关的信息。传感器也可以检测作用于机器人40的各结构部的力。传感器也可以检测在驱动机器人40的各结构部的电动机流过的电流或电动机的转矩。传感器能检测作为机器人40的实际的动作的结果而得到的信息。机器人控制器30通过取得传感器的检测结果,能掌握机器人40的实际的动作的结果。
(机器人控制系统1的动作例)
如上述那样,在机器人控制系统1中,终端装置20从用户接受输入,基于用户的输入来生成确定使机器人40执行的操作的信息,并输出到系统控制装置10。基于用户的输入来确定使机器人40执行的操作的信息被分为作业信息和任务信息。
作业信息确定使机器人40执行的操作的内容。作业信息相当于由人彼此指示操作时所用的确定操作对象或操作步骤的文件、即所谓的操作指示书中所记载的内容。
任务信息确定执行作业信息中确定的操作的机器人40,并确定在作业信息中确定的操作的开始条件和结束条件。任务信息相当于由人彼此指示操作的开始或结束的信息。
系统控制装置10将作业信息和任务信息输出到机器人控制器30。机器人控制器30基于作业信息和任务信息来调用定义机器人40的动作的动作程序库(action library),使机器人40执行操作。机器人控制器30取得使机器人40执行操作的结果作为反馈信息,输出到系统控制装置10。反馈信息也称作FB信息。
动作程序库可以是安装于机器人控制器30的程序模块。动作程序库包含在程序库群333中。机器人控制器30安装至少一个动作程序库。程序库群333包含通过机器人控制器30安装的动作程序库。
机器人控制器30能通过从程序库群333中所含的安装完毕的动作程序库中向程序库群333移交确定所调用的动作程序库的信息,来调用动作程序库。确定所调用的动作程序库的信息称作识别符。换言之,在机器人控制器30从程序库群333中调用动作程序库的情况下,所调用的动作程序库根据识别符来确定。
动作程序库定义用于控制机器人40的动作的一系列处理步骤。动作程序库在处理步骤中包含未定义部分。机器人控制器30能通过补足处理步骤中所含的未定义部分来使处理步骤完成。机器人控制器30能通过在调用动作程序库时将确定补足动作程序库的未定义部分的信息的参数移交到动作程序库,来使动作程序库的处理步骤完成。补足动作程序库的未定义部分的信息也称作补足信息。作业信息能构成为能通过包含补足信息而补足。
补足信息具有第1补足信息。第1补足信息例如可以是与进行操作的操作环境相关的信息。或者,第1补足信息可以是与操作对象物相关的信息。
第1补足信息例如可以确定为控制机器人40的各结构部的物理量。控制机器人40的各结构部的物理量例如可以包含臂等的移动量、或使驱动臂等的电动机输出的转矩等。第1补足信息例如在使机器人40握持操作对象物的情况下可以包含确定机器人40握持操作对象物的部分等使机器人40的力作用的点的信息。
第1补足信息并不限于这些示例,可以包含其他各种信息。第1补足信息可以用字符串、数值或真伪值等来表征。此外,在不补足第1补足信息、机器人40也能操作的情况下,第1补足信息也可以是NULL值。
补足信息也可以具有第2补足信息。第2补足信息在为了完成动作程序库的处理而需要在动作程序库中未定义的其他动作的情况下,是用于补足其他动作的信息。
第2补足信息例如可以确定为确定辅助地定义机器人40的动作的辅助程序库的识别符。辅助程序库例如可以定义机器人40识别操作对象物的步骤或条件等算法。在执行时自变量包含确定辅助程序库的识别符的情况下,机器人控制器30取得通过使机器人40执行以识别符确定的辅助程序库中定义的动作或处理而产生的结果的信息。机器人控制器30可以基于用辅助程序库的执行结果补足动作程序库的未定义部分而完成的动作程序库的处理步骤来控制机器人40的动作。
第2补足信息并不限于这些示例,可以包含其他各种信息。第2补足信息可以用字符串、数值或真伪值等来表征。此外,在不补足第2补足信息、机器人40也能操作的情况下,第2补足信息也可以是NULL值。
另外,补足信息可以在终端装置20根据用户的输入而从机器人控制器30取得。此外,机器人控制器30也可以使机器人40取得。即,例如,可以在用户进行输入时,经过设于机器人40的设备(例如摄像机)等取得操作对象物或操作环境等补足信息。此外,也可以在用户进行输入时,根据机器人40自身的信息、或设于机器人40的设备信息等来取得应执行的辅助程序库的识别符等补足信息。
此外,在取得补足信息时,在补足信息中可以包含第1补足信息以及第2补足信息这双方,也可以包含第1补足信息或第2补足信息的任一者。此外,也可以第1补足信息以及第2补足信息这双方是NULL值。
作业信息包含识别符和执行时自变量。识别符例如是识别动作程序库的ID(Identification)。作业信息的执行时自变量例如是在操作的执行时向其他程序移交的自变量,执行时自变量也可以包含补足上述的程序库的未定义部的补足信息。
作业信息可以包含多个识别符。在作业信息包含多个识别符的情况下,机器人控制器30调用以各识别符确定的动作程序库,来使机器人40执行操作。作业信息可以包含机器人控制器30确定多个动作程序库当中最初调用的动作程序库的信息。确定多个动作程序库当中最初调用的动作程序库的信息也称作入口点。即,可以在作业信息中定义入口点。入口点能表征为数值。
作业信息可以包含基于机器人40的动作的结果来确定机器人控制器30接下来调用的动作程序库的信息,其中,该机器人40的动作基于机器人控制器30最初调用的动作程序库来控制。即,作业信息可以包含基于机器人40最初执行的操作的结果来决定接下来机器人控制器30所调用的动作程序库的信息。此外,作业信息可以包含决定为了执行基于机器人40先执行的操作的结果而产生的下一次操作而接下来机器人控制器30所调用的动作程序库的信息。机器人40先执行的操作可以不仅包含前一个执行的操作,还包含两个以上之前执行的操作。
作业信息能说是包含定义机器人控制器30的后续处理的信息。后续处理能基于机器人控制器30控制机器人40的动作时输出的上下文信息来定义。上下文信息与机器人控制器30执行所调用的动作程序库的程序时对存储部等输出的一系列信息对应。上下文信息例如可以包含机器人40为了动作的判断而使用的数据、或表征机器人40所执行的操作(处理)的成功与否的信息。上下文信息并不限于这些信息,可以包含其他各种信息。上下文信息能基于动作程序库的安装来适宜确定。
换言之,作业信息可以包含定义基于机器人40的动作结果的条件分支的信息。
任务信息包含确定以作业信息确定的操作的开始条件和结束条件的信息。任务信息还包含作业信息、和确定执行该作业信息中确定的操作的机器人40的信息。执行操作的机器人40也称作指示对象。此外,作为与任务信息关联的信息,在机器人控制器30使多个机器人40执行操作的情况下,定义表征各机器人40的操作的进展的信息。作为与任务信息关联的信息,可以定义请求机器人40的操作的暂时停止的信息、或取消机器人40的操作的信息。
此外,任务信息可以包含定义机器人控制器30的后续处理的信息。即,机器人控制器30可以定义基于机器人40的动作结果的条件分支,基于该条件来输出确定接下来要实施的操作的作业信息。
程序库群333包含动作程序库和辅助程序库。动作程序库包含定义机器人40的一系列动作(处理的流程)的程序。动作程序库的程序包含未定义机器人40的动作的未定义部分。动作程序库包含定义能作为补足未定义部分的信息而接受的信息的形式的信息。即,动作程序库包含定义从机器人控制器30调用时从机器人控制器30移交的执行时自变量的形式的信息。定义执行时自变量的形式的信息也称作自变量定义信息。机器人控制器30能通过以按照以自变量定义信息定义的形式构成的执行时自变量确定的补足信息来补足所调用的动作程序库的未定义部分。例如,在通过自变量定义信息定义成能接受辅助程序库的识别符作为执行时自变量的形式的情况下,机器人控制器30移交辅助程序库的识别符作为执行时自变量,来调用动作程序库。
辅助程序库包含在动作程序库的执行时调用的程序。在将辅助程序库的识别符作为执行时自变量移交给动作程序库的情况下,机器人控制器30在动作程序库的程序的执行中调用以识别符确定的辅助程序库,并执行该程序。辅助程序库可以包含例如安装机器人40为了识别操作对象物而使用的AI(Artificial Intelligence,人工智能)推理算法的程序。辅助程序库并不限于该示例,可以包含其他各种程序。
另外,动作程序库或辅助程序库例如通过凭借用户或用户以外的第三者的输入而进行的编程、或AI的机器学习等来作成。此外,在动作程序库或辅助程序库的作成时利用机器人40的情况下,所作成的动作程序库等也可以在与作成时利用的机器人40不同的机器人40中被使用。
程序库群333可以通过元信息来管理。元信息可以包含动作程序库或辅助程序库的识别符。元信息可以包含动作程序库或辅助程序库的显示名称等附带的信息。
本实施方式所涉及的机器人控制系统1能以抽象化的操作指示使机器人40执行操作。用户例如能通过来自GUI(Graphical User Interface)的抽象的设定来构成表示使机器人40执行的操作的内容的数据,并对机器人40指示操作的执行。即,本实施方式所涉及的机器人控制系统1能如哪个机器人40何时在何地对何物做什么这样的由人彼此执行的操作指示那样,以抽象的粒度定义或指示操作。
<软件结构>
基于图3中作为概念而例示的处理进程群来说明本实施方式所涉及的机器人控制系统1中的处理。在图3中,将各结构部之间连起来的箭头表征输出数据的方向。
<<系统控制装置10的处理>>
系统控制装置10的控制部11所执行的软件包含操作内容管理进程322、操作指示管理进程323、操作指示输出进程326和反馈管理进程328。控制部11所执行的软件也称作内部模块。控制部11在执行软件时,参考数据库324、325以及329来登记数据,或取得数据。数据库324、325以及329被保存于存储部12。控制部11在数据库324中对作业信息进行登记、或置换、或删除。控制部11在数据库325中对任务信息进行登记、或置换、或删除。控制部11在数据库329中对反馈信息进行登记、或置换、或删除。
控制部11通过执行操作内容管理进程322,来基于输入到终端装置20中执行的应用或浏览器的请求,将作业信息登记到数据库324。具体地,控制部11通过执行操作内容管理进程322,来从终端装置20取得作业信息,并登记到数据库324。此外,控制部11通过执行操作内容管理进程322,来基于作业信息的取得请求从数据库324取得作业信息,对请求源输出作业信息。
控制部11通过执行操作指示管理进程323,来基于输入到终端装置20中执行的应用或浏览器的请求,将任务信息登记到数据库325。具体地,控制部11通过执行操作指示管理进程323,来从终端装置20取得任务信息,并登记到数据库325。此外,控制部11通过执行操作指示管理进程323,来基于任务信息的取得请求,从数据库325取得任务信息,将任务信息输出到请求源。
控制部11基于来自终端装置20的请求生成作业信息或任务信息,并登记到数据库324或325。
此外,控制部11能通过执行操作指示管理进程323,来基于来自终端装置20的请求,取消输出到机器人控制器30的任务信息,或使基于任务信息的机器人40的动作暂时停止。
控制部11通过执行操作指示输出进程326,来将数据库325中登记的任务信息输出到机器人控制器30,并对机器人40指示操作。机器人控制器30基于任务信息中确定的开始条件使机器人40开始操作,基于结束条件使操作结束。
控制部11也可以决定对机器人控制器30输出任务信息的定时。具体地,控制部11可以在任务信息中确定的基于操作的开始条件的定时对机器人控制器30输出任务信息。例如,在操作的开始条件是立刻开始操作的情况下,控制部11可以通过执行操作指示输出进程326,来在从终端装置20取得任务信息后,立即对机器人控制器30输出任务信息。例如,在操作的开始条件指定了开始时刻的情况下,控制部11可以通过执行操作指示输出进程326,来在所指定的开始时刻对机器人控制器30输出任务信息。操作的开始条件并不限于这些示例,可以以基于操作对象物的状态的条件等其他各种形态设定。
控制部11也可以为了基于任务信息中确定的操作的结束条件使机器人40的操作结束,而在基于结束条件的定时,将使机器人40的操作结束的指示作为任务信息输出到机器人控制器30。例如,在将操作的结束条件指定为执行作业信息中确定的操作的次数的情况下,控制部11可以通过执行操作指示输出进程326,来在操作执行所指定的次数后,对机器人控制器30输出使机器人40的操作结束的指示。例如,在操作的结束条件指定了结束时刻的情况下,控制部11可以通过执行操作指示输出进程326,来在所指定的结束时刻对机器人控制器30输出使机器人40的操作结束的指示。换言之,机器人控制器30可以以机器人控制器30的内部的时刻来决定机器人40的操作的结束时刻。由此一来,控制部11不管机器人控制器30的内部的时刻的可靠性如何,都能控制机器人40的操作的结束时刻。操作的结束条件并不限于这些示例,可以以基于操作对象物的状态的条件等其他各种形态设定。
控制部11也可以在从终端装置20取得取消任务信息的请求的情况下,将取消机器人40的操作的指示作为任务信息输出到机器人控制器30。控制部11也可以在从终端装置20取得暂时停止机器人40的操作的请求的情况下,将暂时停止机器人40的操作的指示作为任务信息输出到机器人控制器30。
控制部11也可以将使机器人40的操作结束的指示、取消指示或进行暂时停止的指示等作为与任务信息分开的信息输出到机器人控制器30。
<<机器人控制器30的处理>>
机器人控制器30的机器人控制部31所执行的软件包含操作指示取得进程331和操作执行进程332。机器人控制器30参考包含预先安装的动作程序库的程序库群333来执行操作执行进程332。
机器人控制器30通过执行操作指示取得进程331,来从系统控制装置10中执行的操作指示输出进程326取得作业信息和任务信息作为操作指示。机器人控制器30通过执行操作指示取得进程331,来对所取得的操作指示进行解析。
机器人控制器30通过执行操作执行进程332,来基于操作指示取得进程331的操作指示的解析结果对机器人40的动作进行控制。机器人控制器30在若取得开始机器人40的操作的指示作为任务信息则通过操作指示取得进程331进行解析的情况下,通过执行操作执行进程332来进行控制,以使机器人40开始操作。机器人控制器30可以通过执行操作执行进程332,来对开始机器人40的操作的指示进行排队(保存于队列(queue)),将排队的指示一件一件地取出,来使机器人40执行操作。在机器人40不能同时执行两个以上的动作的情况下,机器人控制器30可以通过排队来控制机器人40执行动作的顺序。例如,机器人控制器30可以在机器人40执行操作的期间取得开始机器人40的操作的指示的情况下,在机器人40完成先执行的操作后,使机器人40执行基于所取得的指示的操作。
机器人控制器30在若取得取消任务信息的指示则通过操作指示取得进程331进行解析的情况下,可以通过执行操作执行进程332,进行控制,以使得取消机器人40的操作。机器人控制器30在若取得暂时停止机器人40的操作的指示则通过操作指示取得进程331进行解析的情况下,可以通过执行操作执行进程332,来进行控制,以使机器人40暂时停止操作。在成为取消或暂时停止的对象的操作的指示正排队而未开始的情况下,机器人控制器30可以删除正排队的指示。机器人控制器30也可以取得暂时停止机器人40的操作的指示作为任务信息。
机器人控制器30通过执行操作执行进程332,来从队列取出开始机器人40的操作的指示。机器人控制器30通过执行操作执行进程332,来对构成指示的作业信息和任务信息进行解析,控制机器人40的硬件,以使机器人40执行操作。机器人控制器30通过执行操作执行进程332,来基于任务信息中确定的结束条件决定作业信息中确定的操作内容的执行进程。例如,在将结束条件指定为执行操作的次数的情况下,机器人控制器30通过执行操作执行进程332,来控制机器人40的硬件,以使其重复执行指定次数的作业中确定的操作内容。
机器人控制器30通过在操作执行进程332中调用并执行程序库群333中所含的程序,来使机器人40执行操作。程序库群333包含动作程序库。机器人控制器30通过在操作执行进程332中调用并执行以作业信息中所含的识别符确定的动作程序库,来使机器人40执行操作。程序库群333也可以进一步包含辅助程序库。在调用动作程序库时将辅助程序库的识别符作为执行时自变量进行移交的情况下,机器人控制器30在执行动作程序库时进一步调用并执行辅助程序库。
机器人控制器30通过执行操作执行进程332,来对系统控制装置10输出与机器人40的操作的状况相关的信息。与机器人40的操作的状况相关的信息也称作反馈信息(FB信息)。FB信息可以包含确定机器人40所执行的操作的信息。FB信息可以包含表征机器人40开始或结束操作的信息、或表征机器人40的操作的进展的信息。系统控制装置10的控制部11在第2接口14取得FB信息。控制部11通过执行反馈管理进程328,来将FB信息登记到数据库329,并且,将更新登记于数据库325的任务信息中确定的操作的执行状况的信息登记到数据库325。
本实施方式所涉及的机器人控制系统1也可以作为云机器人系统来构成。例如,机器人控制系统1可以包含图3例示的结构的至少一部分作为基本结构,并且包含与外部系统相互可通信的结构作为其他结构。机器人控制系统1可以构成为能从外部系统接受请求,或对外部系统输出请求。
系统控制装置10可以通过包含多个服务器装置来构成而冗余化。系统控制装置10能通过冗余化来配合各种要求构成。在该情况下,各服务器装置构成为相互可通信。
<基于序列图的动作例的说明>
基于图4例示的序列图来说明本实施方式所涉及的机器人控制系统1的动作例。图4例示的序列图表征以t1到t13表征的各时刻处的机器人控制系统1的各结构部的动作。在本例中,机器人40是臂型机器人且安装了摄像机。此外,机器人40被从用户请求利用了基于AI的物体识别的推理的拾放(pick and place)的动作的执行。机器人控制器30预先安装了用于执行拾放的动作的动作程序库和执行基于AI的物体识别的推理的辅助程序库。
在时刻t1到t2的期间,终端装置20从用户接受表示机器人操作的内容的定义信息即作业的数据的输入。终端装置20可以在安装于终端装置20的应用或WEB浏览器上使用从系统控制装置10等外部装置发布的应用的GUI来使用户输入作业的数据。在本例中,终端装置20接受指定使机器人40执行拾放的动作的动作程序库的输入。
此外,终端装置20根据需要来接受指定调用动作程序库时移交的执行时自变量的输入。如上述那样,关于如何指定执行时自变量,按每个动作程序库进行定义。在本例中,将调用拾放的动作的动作程序库时移交的执行时自变量定义为与操作对象物相关的信息。
终端装置20在接受到指定拾放的动作的动作程序库的输入的情况下,进一步接受与操作对象物相关的输入(第1补足信息)。在本例中,例如,终端装置20可以接受指定螺丝作为拾放的动作的对象物的输入。由此一来,由于在作业信息中加进螺丝这样的第1补足信息,因此,例如,能基于动作程序库中的与螺丝相关的代码,使机器人40进行适合螺丝的拾放的动作。
此外,作为其他示例,终端装置20在接受到指定拾放的动作的动作程序库的输入的情况下,进一步接受与识别操作场所的方法相关的输入。在本例中,终端装置20接受指定基于AI的物体识别的推理的输入作为识别操作场所的方法。在该情况下,终端装置20识别到输入了进行基于AI的物体识别的推理的辅助程序库的识别符(第2补足信息)作为执行时自变量。终端装置20可以接受指定辅助程序库的输入。终端装置20可以接受与从用安装于机器人40的摄像机识别到的容器的候补选择拾取操作对象物的容器和放置操作对象物的容器的条件相关的输入。例如,终端装置20可以使用户选择容器颜色作为容器的特征。终端装置20例如接受拾取操作对象物的容器是红色且放置操作对象物的容器是蓝色这样的条件的输入。
将以上改换说法的话,例如,终端装置20通过接受指定动作程序库的输入,能取得确定使机器人40如何动作的信息。此外,终端装置2通过接受与操作对象物相关的输入,能取得确定将何物作为机器人40的操作对象物的信息。此外,终端装置20通过接受到指定辅助程序库作为识别操作场所的方法的输入,能取得确定使机器人40在哪里动作的信息。具体地,终端装置20能从用户接受使机器人40执行将“螺丝”从“红色的”容器“拾放”到“蓝色的”容器这样的操作的请求。以下将该操作内容称作拾放作业。另外,在上述的示例中,接受对象物是螺丝这样的第1补足信息,但例如也可以接受指定能将螺丝识别为对象物的辅助程序库的第2补足信息。
在时刻t2,终端装置20基于用户在GUI的输入来生成确定拾放作业的作业信息,对系统控制装置10输出作业信息并且输出作业信息的登记请求。
在时刻t2到t3的期间,系统控制装置10确认和登记请求一起取得的作业信息的内容。系统控制装置10在作业信息的内容中没有不匹配等问题的情况下,将作业信息保存到数据库。换言之,系统控制装置10将作业信息登记到数据库并持久化。信息的持久化是指直到接受到删除信息的指示为止都持续保存,或者是指延续给定期间持续保存。系统控制装置10通过将作业信息保存在数据库,能在作业信息作为有效的信息保存的期间,该作业信息无论多少次都能调用。
在时刻t3,系统控制装置10输出包含作业信息的登记完成的报告的登记响应。终端装置20通过取得登记响应,来确认登记了作业信息。
在与时刻t1到t3的期间不一定连续的时间序列中所含的时刻t4到t5的期间,终端装置20接受对机器人40指示执行作业信息中确定的操作的信息即任务的数据的输入。终端装置20在安装于终端装置20的应用或WEB浏览器上使用从系统控制装置10等外部装置发布的应用的GUI来使用户输入任务的数据。在本例中,终端装置20接受如下输入作为任务,在该输入中,将执行拾放作业的机器人40指定为“X”,将开始条件指定为“立刻”,将结束条件指定为“指定次数的执行为止”,将指定次数指定为“5次”。即,终端装置20通过选择机器人40的输入来接受指定“谁”的信息,通过开始条件或结束条件的输入来接受指定“何时”的信息。具体地,终端装置20接受“X”这样的机器人40“立刻”执行“5次”拾放作业的任务的数据。“X”这样的机器人40“立刻”执行“5次”拾放作业的任务的数据相当于操作指示。以下将该操作指示称作拾放任务。
在时刻t5,终端装置20基于用户在GUI的输入来生成确定拾放任务的任务信息,对系统控制装置10输出任务信息,并且输出任务信息的登记请求。
在时刻t5到t6的期间,系统控制装置10确认和登记请求一起取得的任务信息的内容。系统控制装置10在任务信息的内容中没有不匹配等问题的情况下,将任务信息保存到数据库。换言之,系统控制装置10将任务信息登记到数据库中并持久化。系统控制装置10将任务信息作为从用户指示了机器人40的操作的证明,和机器人40的操作的执行日志一起进行保存。
在时刻t6,系统控制装置10输出包含任务信息的登记完成的报告的登记响应。终端装置20通过取得登记响应,来确认登记了任务信息。
在与时刻t1到的t6的期间不一定连续的时间序列中所含的时刻t7,系统控制装置10将登记于数据库的任务信息读出,对机器人控制器30输出操作指示。在本例中,系统控制装置10对控制拾放任务中指定的“X”这样的机器人40的机器人控制器30,按照开始条件是“立刻”这一情况,立即输出任务信息作为操作指示。
在时刻t7到t8的期间,机器人控制器30对作为所取得的操作指示的任务信息进行解析。机器人控制器30在任务信息的内容中没有不匹配等问题的情况下,前进到对机器人40指示基于任务信息的内容的操作的执行的步骤。
在时刻t8,机器人控制器30在任务信息的内容中没有不匹配等问题的情况下,没有问题地接受作为操作指示的任务信息,将报告机器人40的操作开始的反馈信息输出到系统控制装置10。
在时刻t8到t9的期间,机器人控制器30基于任务信息以及任务信息中所含的作业信息的内容来生成控制机器人40的硬件的信息,并输出到机器人40。在本例中,机器人控制器30基于拾放任务的内容来生成控制机器人40的硬件的信息,并输出到机器人40。机器人40通过基于从机器人控制器30取得的信息控制硬件,来使硬件的各结构部动作,执行拾放任务中确定的操作。
首先,机器人控制器30基于拾放任务中确定的结束条件来决定使机器人40执行的操作进程。接着,机器人控制器30基于所决定的操作进程来执行作业。在本例中,指定拾放操作作为作业。此外,指定“执行5次”作为结束条件。因此,机器人控制器30使机器人40执行重复5次拾放作业的操作。
接着,机器人控制器30基于确定拾放作业的作业信息中指定的动作程序库的识别符,来读入进行拾放的动作程序库作为执行模块。此外,机器人控制器30将拾放的动作中为了识别作为操作对象物的“螺丝”而使用的辅助程序库、和拾放的动作中为了识别拾取以及放置“螺丝”的容器而使用的辅助程序库读入。此外,机器人控制器30将指定红色的容器作为进行拾取的容器的信息、和指定蓝色的容器作为进行放置的容器的信息读入。机器人控制器30将指定辅助程序库的识别符和指定容器的特征的信息作为执行时自变量进行移交,从而调用动作程序库。机器人控制器30通过执行所调用的动作程序库,能使机器人40从红色的容器中找到螺丝并拾取,将所拾取的螺丝放置到蓝色的容器。
在时刻t9,机器人控制器30将报告使机器人40执行基于任务信息的操作的结果的反馈信息输出到系统控制装置10。反馈信息可以包含表征机器人40是开始操作的执行或是机器人40结束操作的执行的信息。反馈信息可以包含表征机器人40的操作的执行正常完成或是由于异常的产生而在中途中断的信息。机器人控制器30输出反馈信息的定时不一定限于时刻t8或t9。系统控制装置10在取得反馈信息的情况下,登记到数据库并进行持久化。此外,系统控制装置10基于反馈信息来更新登记于数据库的任务信息当中的与反馈信息对应的任务信息。系统控制装置10在反馈信息包含机器人40的异常产生的信息的情况下,可以对终端装置20输出异常产生的信息,来对用户通知错误。
在与时刻t1到t10的期间不一定连续的时间序列中所含的时刻t11,终端装置20从用户接受参考对机器人40指示的拾放任务的执行状况的请求的输入。终端装置20将参考请求输出到系统控制装置10。系统控制装置10基于反馈信息来更新登记于数据库的任务信息。因此,系统控制装置10能在时刻t11到t12的期间将登记于数据库的任务信息读出,来取得与拾放任务的执行状况相关的信息。
在时刻t12,系统控制装置10将与拾放任务的执行状况相关的信息作为针对任务的参考请求的参考响应,输出到终端装置20。在时刻t12到t13的期间,终端装置20能取得与拾放任务的执行状况相关的信息,来使用户参考。
≤终端控制方法的步骤例>
终端装置20的终端控制部21可以执行包含图5例示流程图的步骤的终端控制方法。终端控制方法可以作为使构成终端控制部21的处理器执行的终端控制程序来实现。终端控制程序可以保存于非临时性计算机可读的介质。
终端控制部21通过用户接口23来接受用户的输入(步骤S51)。
终端控制部21基于用户的输入来生成作业信息(步骤S52)。
终端控制部21基于用户的输入来生成任务信息(步骤S53)。
终端控制部21对系统控制装置10输出作业信息以及任务信息(步骤S54)。即,终端控制部21对系统控制装置10输出包含作业信息的任务信息。终端控制部21在步骤S54的步骤的执行后结束图5的流程图的步骤的执行。终端控制部21也可以重复图5的流程图的步骤的执行。终端控制部21也可以以将步骤S52的步骤和步骤S53的步骤替换的顺序执行。终端控制部21也可以仅执行步骤S52以及步骤S53的一者。
另外,例如,在要通过用户的输入而生成的作业信息已经存在的情况下,终端控制部21也可以取代生成该作业信息,基于用户的输入信息检索作业信息,从数据库取得。
此外,在上述的示例中,在步骤S52以及步骤S53,在终端控制部21生成作业信息以及任务信息,但也可以通过控制部11生成作业信息以及任务信息。在该情况下,在要生成的作业信息已经存在的情况下,也可以取代生成该作业信息,基于用户的输入信息检索作业信息,从数据库取得。此外,可以在终端控制部21作成作业信息的一部分或任务信息的一部分。可以在控制部11作成其他部分。
<机器人控制方法的步骤例>
系统控制装置10的控制部11可以执行包含图6例示的流程图的步骤的机器人控制方法。机器人控制方法可以作为使构成控制部11的处理器执行的机器人控制程序来实现。机器人控制程序可以保存于非临时性计算机可读的介质。
控制部11从终端装置20取得作业信息(步骤S41)。进而,控制部11可以将所取得的作业信息登记于数据库。
控制部11从终端装置20取得任务信息(步骤S42)。进而,控制部11可以将所取得的任务信息登记到数据库。
控制部11对机器人控制器30输出作业信息以及任务信息(步骤S43)。即,控制部11对机器人控制器30输出包含作业信息的任务信息。控制部11在步骤S43的步骤的执行后结束图6的流程图的步骤的执行。控制部11可以重复图6的流程图的步骤的执行。控制部11可以以将步骤S41的步骤和步骤S42的步骤替换的顺序执行。控制部11也可以仅执行步骤S41以及步骤S42的一者。例如,控制部11可以不再度取得已经取得的作业信息,仅取得任务信息。
机器人控制器30可以执行包含图7例示的流程图的步骤的机器人控制方法。机器人控制方法可以作为使构成机器人控制器30的处理器执行的机器人控制程序来实现。机器人控制程序可以保存于非临时性计算机可读的介质。
机器人控制器30从系统控制装置10取得作业信息以及任务信息(步骤S61)。即,机器人控制器30从系统控制装置10取得包含作业信息的任务信息。机器人控制器30也可以仅取得作业信息以及任务信息的一者。例如,机器人控制器30也可以不再度取得已经取得的作业信息,仅取得任务信息。
机器人控制器30对机器人40输出指示动作的信息(步骤S62)。
机器人控制器30从机器人40取得根据指示而动作的结果(步骤S63)。机器人控制器30在步骤S63的步骤的执行后,结束图7的流程图的步骤的执行。机器人控制器30可以重复图7的流程图的步骤的执行。
另外,在上述中,说明了控制部11对机器人控制器30输出作业信息以及任务信息的示例,但控制部11也可以不对机器人控制器30输出作业信息以及任务信息的任一者或全部。在该情况下,例如,控制部11对机器人控制器30输出识别任务信息的识别符,在来自机器人控制器30的请求时,进一步输出任务信息以及作业信息、或通过所述任务信息以及所述作业信息确定的程序库。
如以上述叙述的那样,本实施方式所涉及的机器人控制系统1实现了对使自主性提升的机器人40的抽象化的操作指示。用户主要通过来自GUI的设定来将表示使机器人40执行的操作内容的定义信息数据构成为作业信息,对机器人40指示操作内容。
作为比较例,设想将通过示教系统作成的程序安装于机器人控制器进行工作的系统。在比较例所涉及的系统中,为了使机器人动作,需要定义机器人的各结构部的坐标或机器人的输入输出的具体的信息。其结果,在用于作成对机器人指示操作内容的信息的操作中花费的时间以及费用增大。进而,如此示教的机器人仅能进行与所示教的动作相同的动作,例如即使是相同操作,在准备与平常不同环境(容器等)时,也难以使机器人执行该操作。因此,在比较例所涉及的系统中,机器人的活用范围变得限定。
此外,在比较例所涉及的系统中,示教成为需要由具有专业的技能的技术者执行的工序。即,示教的操作也并不容易,每次进行示教的操作都困难,成为机器人的活用用途的扩大的一个原因。
与此相对,根据本实施方式所涉及的机器人控制系统1,实现了机器人40自身的自主性的提升、和与自主性的提升相伴的操作指示的抽象化。即,通过在动作程序库中残留未定义部分,基于机器人40使用时的用户的输入信息补足该未定义部分,例如即使与所示教的环境不完全相同,也能使机器人40实施所示教的操作。并且,由于即使是与所示教的环境不同的环境,机器人40也能操作,因此,换言之,用户不再需要为了使机器人40操作而进行细致的设定,能进行操作指示的抽象化,进而,能减少示教操作的负担。其结果,能实现机器人40的操作范围的扩大、以及机器人40的活用用途的扩大。
此外,在比较例所涉及的系统中,通过示教定义的操作多是机器人的内部(机器人控制器)中管理的程序。在机器人的内部管理的程序为了经由网络对机器人控制器指示操作,需要固有的数据形式或协议,需要用于中继程序的专用的程序。固有或专用的结构难以进行与工厂等生产现场中运用的信息处理系统的协作。即,使用在机器人的内部中管理的程序的系统与工厂等生产现场中运用的信息处理系统的亲和性低。其结果,机器人的活用用途受到限定。
与此相对,本实施方式所涉及的机器人控制系统1例如能如哪个机器人40何时在何地对何物做什么这样的人对人指示操作那样,以抽象的粒度对机器人40定义并指示操作。由此一来,仅改编操作定义数据(作业信息)或操作指示数据(任务信息),就能使机器人40执行非例行操作。其结果,能以短时间且低成本改编使机器人40执行的操作内容。
在本实施方式所涉及的机器人控制系统1中,机器人40的自律功能通过程序库软件(程序库群333中所含的动作程序库或辅助程序库)和执行程序库的进程等软件群来实现。用户能在机器人控制器30追加安装程序库软件,或者从机器人控制器30删除程序库软件。通过程序库软件的安装,机器人40能掌握新的动作,或者掌握新的判断基准。
此外,根据本实施方式所涉及的机器人控制系统1,即使是用户不具有程序开发等专业的技能的运用担当者,用户也容易作成对机器人40的操作指示。
此外,通过在服务器装置中管理表示使机器人40执行的操作内容的操作定义数据(作业信息),能提高与工厂等生产现场所用的其他信息处理系统的亲和性。通过与其他信息处理系统的亲和性高,作为用户为了输入指示而使用的GUI等接口,能使用与其他信息处理系统亲和性高的接口。其结果,能将在生产的生命周期中使机器人40执行操作的系统作为一个服务组件,在工厂等生产现场装入。
(其他实施方式)
以下说明其他实施方式。
<机器人模拟器50>
虽然不是必须,但系统控制装置10还具备机器人模拟器50。系统控制装置10也可以不具备机器人模拟器50,而是与设置于外部的机器人模拟器50可通信地连接。
机器人模拟器50能通过信息处理来模拟作为硬件而实现的机器人40的动作。系统控制装置10的控制部11可以使机器人模拟器50输出任务信息来模拟机器人40的动作,并取得机器人40的动作的模拟结果。具体地,机器人模拟器50通过基于任务信息以及任务信息中所含的作业信息的信息处理来模拟机器人40的动作。机器人模拟器50将机器人40的动作的模拟结果输出到控制部11。
控制部11可以对模拟结果进行解析,来判定基于任务信息的机器人40的动作正常完成或是因异常而中途停止。控制部11可以构成为将的判定为机器人40的动作正常完成的任务信息输出到机器人控制器30。控制部11可以构成为将判定为机器人40的动作未正常完成的任务信息输出到机器人控制器30。通过控制部11预先取得基于任务信息的模拟结果,能减少机器人40的动作异常。
<基于反馈信息的任务信息的生成>
系统控制装置10的控制部11可以通过第2接口14从机器人控制器30取得与机器人40基于任务信息执行的操作的结果相关的反馈信息。控制部11可以基于所取得的反馈信息来更新登记于数据库325的任务信息。此外,控制部11也可以基于取得的反馈信息来生成新的任务信息,并登记到数据库325。控制部11可以将更新或生成的任务信息输出到机器人控制器30。即,控制部11可以基于反馈信息更新或生成任务信息,并输出到机器人控制器30。通过控制部11基于反馈信息更新或生成任务信息,能改善机器人40的动作。
<利用所保存的作业信息的任务信息的生成>
在上述的实施方式中,系统控制装置10的控制部11从终端装置20取得作业信息和任务信息,并登记到数据库。任务信息包含作业信息,确定使哪个机器人40何时执行作业信息中确定的机器人40的操作内容。用户有时请求再度执行使机器人40以前执行的某操作。在该情况下,作业信息不变更。因此,控制部11能利用以前的执行时保存在数据库324的作业信息。由此一来,控制部11不需要为了使机器人40执行相同操作而再度取得作业信息。其结果,容易在任意的定时重复执行相同操作。换言之,控制部11不仅将作业信息暂时保存,而是持久化地保存。或者,控制部11为了能对机器人控制器30指示,以使机器人40重复执行操作,至少保存与确定开始条件以及结束条件的任务信息建立关联的作业信息。由此一来,容易使机器人40再度执行相同的操作。将在任意的定时重复执行的相同操作也称作重复操作。
<程序库的安装>
机器人控制器30预先安装动作程序库或辅助程序库,从包含所安装的动作程序库或辅助程序库的程序库群333调用动作程序库或辅助程序库,来使机器人40执行操作。机器人控制器30从系统控制装置10取得动作程序库或辅助程序库的数据,并进行安装。系统控制装置10可以对机器人控制器30输出新的动作程序库或辅助程序库的数据,以使得机器人控制器30安装新的动作程序库或辅助程序库。通过系统控制装置10将新的动作程序库或辅助程序库的数据输出到机器人控制器30,机器人控制器30能掌握使机器人40执行的新的动作、或使机器人40执行的新的物体识别等各种新的功能。其结果,提高了机器人控制系统1的便利性。
另外,程序库群33的一部分或全部可以不安装在机器人控制器30。在该情况下,例如,系统控制装置10也可以基于作业信息以及任务信息,仅将必要的动作程序库输出到机器人控制器30。此外,也可以仅将辅助程序库安装在机器人控制器30。
<终端装置20与系统控制装置10的一体化>
终端装置20可以具有将作业信息以及任务信息登记到数据库的功能。在该情况下,机器人控制系统1也可以不具备系统控制装置10。
系统控制装置10也可以通过具有用户接口23的功能,来从用户直接接受输入。在该情况下,机器人控制系统1也可以不具备终端装置20。
以上说明了机器人控制系统1的实施方式,但作为本公开的实施方式,除了用于实施系统或装置的方法或程序以外,还能采取作为记录程序的存储介质(作为一例,光盘、光磁盘、CD-ROM、CD-R、CD-RW、磁带、硬盘或存储卡等)的实施方式。
此外,作为程序的安装形态,并不限定于通过编译器编译的目标码、通过解释器执行的程序代码等应用程序,也可以编入操作系统的程序模块等形态。进而,程序不一定非要仅在控制基板上的CPU中实施全部处理,也可以构成为根据需要,通过安装于附加在基板的扩展板或扩展单元的其他处理单元实施其一部分或全部。
关于本公开所涉及的实施方式,基于诸附图以及实施例进行了说明,但希望注意的是,只要是本领域技术人员,就能基于本公开进行各种变形或改变。因此,希望留意的是,这些变形或改变包含在本公开的范围中。例如,各结构部等中所含的功能等能逻辑上没有矛盾地再配置,能将多个结构部等组合成一个,或进行分割。
关于本公开记载的构成要件的全部及/或公开的全部方法、或处理的全部步骤,除了他们的特征相互排他的组合以外,都能以任意的组合进行组合。此外,本公开记载的各个特征只要没有明示的否定,就能置换成为了相同的目的、同等的目的或类似的目的而发挥作用的代替的特征。因此,只要没有明示的否定,所公开的各个特征就只是总体的一系列相同或等同的特征的一例。
进而,本公开所涉及的实施方式也并不限制在上述的实施方式的任意的具体的结构。本公开所涉及的实施方式能扩展到本公开记载的全部新的特征、或这些的组合、或所记载的全部新的方法、或处理的步骤、或这些的组合。
本公开中“第1”以及“第2”等记载是用于区别该结构的识别符。本公开中的以“第1”以及“第2”等记载进行区别的结构能交换该结构中的编号。例如,第1接口13能和第2接口14交换作为识别符的“第1”和“第2”。识别符的交换同时进行。在识别符的交换后也区别该结构。识别符可以删除。删除了识别符的结构以附图标记区别。不得仅基于本公开中的“第1”以及“第2”等识别符的记载,利用于该结构的顺序的解释、小编号的识别符存在的根据。
符号说明
1 机器人控制系统
10 系统控制装置(11:控制部、12:存储部、13:第1接口、14:第2接口)
20 终端装置(21:终端控制部、22:通信接口、23:用户接口)
30 机器人控制器
40 机器人
50 机器人模拟器
80 网络
82 接入点
322操作内容管理进程
323操作指示管理进程
326操作指示输出进程
328反馈管理进程
324、325、329数据库
331操作指示取得进程
332操作执行进程
333程序库群。

Claims (16)

1.一种系统控制装置,具备:
第1接口,与接受用户所输入的输入信息的至少一个终端装置可通信地连接;
第2接口,与基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器可通信地连接;和
控制部,
所述控制部取得基于所述输入信息生成的作业信息,所述作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分,
所述控制部基于所述作业信息,对所述至少一个机器人控制器输出所述操作的指示。
2.根据权利要求1所述的系统控制装置,其中,
所述控制部取得基于所述输入信息生成的任务信息,所述任务信息包含确定所述至少一个机器人当中的执行所述操作的机器人的信息,
所述控制部基于所述作业信息以及所述任务信息,对控制所述机器人的机器人控制器输出所述操作的指示。
3.根据权利要求2所述的系统控制装置,其中,
所述任务信息包含确定使机器人执行所述作业信息中确定的操作内容的开始条件以及结束条件的信息。
4.根据权利要求3所述的系统控制装置,其中,
所述控制部至少保存与确定开始条件以及结束条件的所述任务信息建立关联的所述作业信息,以使得能对所述机器人控制器指示使得所述机器人执行重复操作。
5.根据权利要求1~4中任一项所述的系统控制装置,其中,
所述控制部对所述机器人控制器输出新的程序库的数据,以使得所述机器人控制器能安装所述新的程序库。
6.根据权利要求1~5中任一项所述的系统控制装置,其中,
所述作业信息还包含与基于所述机器人先执行的操作的结果而产生的下一次操作相关的信息。
7.根据权利要求1~6中任一项所述的系统控制装置,其中,
所述作业信息具有补足所述未定义部分的补足信息,
所述补足信息包含与成为所述操作的对象的对象物相关的信息。
8.根据权利要求1~7中任一项所述的系统控制装置,其中,
所述作业信息具有补足所述未定义部分的补足信息,
所述补足信息包含与进行所述操作的操作环境相关的信息。
9.根据权利要求1~8中任一项所述的系统控制装置,其中,
所述作业信息具有补足所述未定义部分的补足信息,
所述控制部取得所述补足信息当中的对表示所述机器人的辅助性动作的辅助程序库进行指定的信息。
10.根据权利要求2~4中任一项所述的系统控制装置,其中,
所述控制部对所述机器人控制器输出识别所述任务信息的识别符,
所述控制部在来自所述机器人控制器的请求时,进一步输出通过所述任务信息以及所述作业信息、或所述任务信息以及所述作业信息确定的程序库。
11.根据权利要求2、3、4或10所述的系统控制装置,其中,
所述系统控制装置还具备:机器人模拟器,具有与包含所述程序库的软件同等的软件,
所述控制部对所述机器人模拟器输出所述任务信息,从所述机器人模拟器取得基于所述任务信息的所述机器人的动作的模拟结果,基于模拟结果来决定是否对所述机器人控制器输出所述任务信息。
12.根据权利要求2、3、4、10或11所述的系统控制装置,其中,
所述第2接口从所述机器人控制器取得与所述机器人基于所述任务信息执行的操作的结果相关的反馈信息,
所述控制部基于所述反馈信息来更新或生成所述任务信息,并输出到所述机器人控制器。
13.一种机器人控制方法,包含:
与接受用户所输入的输入信息的至少一个终端装置、和基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器进行通信;
从所述终端装置取得基于所述输入信息生成的作业信息,所述作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库并且能补足所述未定义部分;和
基于所述作业信息,对所述至少一个机器人控制器输出所述操作的指示。
14.一种终端装置,具备:
用户接口,接受用户所输入的输入信息;
通信接口,与系统控制装置可通信地连接,所述系统控制装置对基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人的至少一个机器人控制器输出信息;和
终端控制部,
所述终端控制部生成基于所述输入信息生成的作业信息,所述作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库并且能补足所述未定义部分,
所述通信接口将所述作业信息输出到所述系统控制装置。
15.一种终端控制方法,包含:
接受用户所输入的输入信息;
基于所述输入信息来生成并输出作业信息,所述作业信息确定程序库并且能补足未定义部分,所述程序库是与使基于表示机器人的动作并且包含所述未定义部分的至少一个程序库而由至少一个机器人控制器控制的至少一个机器人执行的操作相应的所述程序库。
16.一种机器人控制系统,具备:
至少一个机器人控制器,基于表示机器人的动作并且包含未定义部分的至少一个程序库来控制至少一个机器人;
终端装置,具有接受用户所输入的输入信息的用户接口;和
系统控制装置,分别与所述机器人控制器以及所述终端装置可通信地连接,
所述终端装置生成基于所述输入信息生成的作业信息并输出到所述系统控制装置,所述作业信息确定与使所述至少一个机器人执行的操作相应的所述程序库,并且能补足所述未定义部分,
所述系统控制装置基于从所述终端装置取得的所述作业信息,对所述至少一个机器人控制器输出所述操作的指示,
所述机器人控制器基于所述操作的指示来使所述机器人执行所述操作。
CN202180070314.7A 2020-10-19 2021-10-19 系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统 Pending CN116390835A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020175506A JP7278246B2 (ja) 2020-10-19 2020-10-19 ロボット制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム
JP2020-175506 2020-10-19
PCT/JP2021/038669 WO2022085699A1 (ja) 2020-10-19 2021-10-19 システム制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム

Publications (1)

Publication Number Publication Date
CN116390835A true CN116390835A (zh) 2023-07-04

Family

ID=81290561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070314.7A Pending CN116390835A (zh) 2020-10-19 2021-10-19 系统控制装置、机器人控制方法、终端装置、终端控制方法以及机器人控制系统

Country Status (5)

Country Link
US (1) US20230381962A1 (zh)
EP (1) EP4230361A1 (zh)
JP (3) JP7278246B2 (zh)
CN (1) CN116390835A (zh)
WO (1) WO2022085699A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7278246B2 (ja) * 2020-10-19 2023-05-19 京セラ株式会社 ロボット制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH054181A (ja) 1991-06-24 1993-01-14 Toshiba Corp ロボツト制御装置
JP2005011001A (ja) * 2003-06-18 2005-01-13 Ricoh Co Ltd バスモニター装置、プログラムおよび記録媒体
JP6181861B2 (ja) * 2014-05-01 2017-08-16 本田技研工業株式会社 多関節ロボットのティーチングデータ作成装置及び作成方法
JP6764796B2 (ja) 2017-01-26 2020-10-07 株式会社日立製作所 ロボット制御システムおよびロボット制御方法
JP6557282B2 (ja) * 2017-05-17 2019-08-07 ファナック株式会社 工作機械制御装置及び生産システム
JP2020138255A (ja) 2019-02-27 2020-09-03 セイコーエプソン株式会社 ロボット制御システム及びロボット制御方法
JP7278246B2 (ja) * 2020-10-19 2023-05-19 京セラ株式会社 ロボット制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム

Also Published As

Publication number Publication date
WO2022085699A1 (ja) 2022-04-28
JP7278246B2 (ja) 2023-05-19
JP2024023927A (ja) 2024-02-21
JP2022066906A (ja) 2022-05-02
JP2023038338A (ja) 2023-03-16
EP4230361A1 (en) 2023-08-23
US20230381962A1 (en) 2023-11-30
JP7478862B2 (ja) 2024-05-07

Similar Documents

Publication Publication Date Title
Sanfilippo et al. Controlling Kuka industrial robots: Flexible communication interface JOpenShowVar
JP5149258B2 (ja) ロボットコンポーネント管理装置
JP2024023927A (ja) ロボット制御装置、ロボット制御方法、端末装置、端末制御方法、及びロボット制御システム
KR20230012057A (ko) 로봇 데모 학습을 위한 스킬 템플릿들
Kootbally et al. Enabling robot agility in manufacturing kitting applications
Simonič et al. Modular ROS-based software architecture for reconfigurable, Industry 4.0 compatible robotic workcells
Vick et al. Using OPC UA for distributed industrial robot control
US11518024B2 (en) Extensible underconstrained robotic motion planning
KR20230002940A (ko) 분산형 로봇 데모 학습
KR102093775B1 (ko) 공정 레시피 기반의 자동 조립 장치 및 방법
US20240149448A1 (en) System control device, robot control method, terminal device, terminal control method, and robot control system
US11498211B2 (en) Composability framework for robotic control system
CN111571583B (zh) 机械手控制方法
WO2022191218A1 (ja) プログラム管理装置、ロボット制御システム、及びプログラム管理方法
CN111823277A (zh) 一种基于机器视觉的物体抓取平台及方法
US20080262652A1 (en) Method for an Industrial Robot
WO2023068341A1 (ja) 情報処理装置、ロボットコントローラ、ロボット制御システム、及び情報処理方法
CN118139730A (zh) 信息处理设备、机器人控制器、机器人控制系统和信息处理方法
EP4254098A1 (en) Controlling an automation system comprising a plurality of machines
EP4227044A1 (en) Robot system and control method
CN116056841A (zh) 机器人控制系统
Rosenstock et al. KUKA Robot Language Parser for Product Adaptive Manufacturing
CN114193459A (zh) 一种机械手臂的控制系统及其测试方法
CN115401694A (zh) 三轴机械手的控制方法、装置、终端设备及存储介质
ja hydrauliikka–Automation et al. Implementation of ROS-enabled Industrial Production Environment

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