CN110154018B - 机器人的控制器和控制方法 - Google Patents

机器人的控制器和控制方法 Download PDF

Info

Publication number
CN110154018B
CN110154018B CN201910111920.3A CN201910111920A CN110154018B CN 110154018 B CN110154018 B CN 110154018B CN 201910111920 A CN201910111920 A CN 201910111920A CN 110154018 B CN110154018 B CN 110154018B
Authority
CN
China
Prior art keywords
section
force
information
data
robot
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.)
Active
Application number
CN201910111920.3A
Other languages
English (en)
Other versions
CN110154018A (zh
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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority claimed from JP2018227346A external-priority patent/JP7483321B2/ja
Application filed by Canon Inc filed Critical Canon Inc
Priority to CN202310781806.8A priority Critical patent/CN116604589A/zh
Publication of CN110154018A publication Critical patent/CN110154018A/zh
Application granted granted Critical
Publication of CN110154018B publication Critical patent/CN110154018B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/421Teaching successive positions by mechanical means, e.g. by mechanically-coupled handwheels to position tool head or end effector

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

本发明涉及机器人的控制器和控制方法。该机器人包括:操纵部,其在教示机器人臂的操作时被操纵;第一传感器,其获取作用在机器人臂的末端上的第一力的数据;第二传感器,其获取作用在操纵部上的第二力的数据;以及第三传感器,其获取机器人臂的末端的位置和取向数据。机器人的控制器配置成基于在教示机器人臂时的第一和第二力数据的分析结果生成具有第一阶段和第二阶段的教示数据。在第一阶段中基于第三传感器的位置和取向数据通过位置和取向控制来控制机器人臂。在第二阶段中基于第一力数据和第二力数据通过力控制来控制机器人臂。

Description

机器人的控制器和控制方法
技术领域
本发明涉及机器人的控制器和控制方法,其使得教员能够进行直接教示,通过手动操纵机器人臂而教示机器人臂的操作。
背景技术
至今为止,在教示机器人臂的操作时,教员过去常常通过使用诸如教示器的操作部而执行将末端执行器等移动到教示位置的操作,并且在视觉确认位置的同时存储教示位置。在这种情况下,在教员需要重复通过在教示器中输入坐标或者通过操作教示器而精密地移动机器人臂的操作的时候,教员不能有效地进行教示,因为这些作业很麻烦。
然后,作为改进教示操作性的一种方法,有一种称作直接教示的技术。直接教示是:教员保持机器人的预定部分以手动操作机器人臂,从而获取机器人臂的末端在此时的位置和取向数据,以基于该数据生成机器人臂的操作指令值,并且复制在教示时的组装操作。直接教示使得能够生成简单操作机器人臂而没有麻烦作业的教示数据,因为其使得能够仅仅通过手动引导机器人臂而直观地教示。在教员手动操纵机器人臂的情况下,机器人控制器执行通常称作顺应性控制或阻抗控制的控制。例如,机器人控制器通过控制机器人臂而沿着教员施加力的方向操作机器人臂,使得施加到机器人臂末端的力归零。
日本专利申请特开No.2008-134903公开了一种方法,该方法在教员手动操纵机器人臂以生成与接触力相关的力教示数据时获取力矩数据以及位置和取向数据的时间序列数据。
然而,日本专利申请特开No.2008-134903中公开的方法生成与接触力相关的力教示数据。因此,即使根据日本专利申请特开No.2008-134903描述的力教示数据再现地操作机器人臂,在需要诸如组装作业的精细作业的部分,机器人臂也不一定按照教员指示那样操作。
发明内容
根据本发明的第一方面,提供一种机器人控制器,其包括:操纵部,其在教示机器人臂的操作时被操纵;第一传感器,其配置成获取作用在机器人臂的末端上的第一力数据;第二传感器,其配置成获取作用在操纵部上的第二力数据;以及第三传感器,其配置成获取机器人臂的末端的位置和取向数据,该控制器包括:生成部,其配置成在教示机器人臂时基于第一力数据和第二力数据的分析结果生成具有第一阶段和第二阶段的教示数据,第一阶段是通过基于第三传感器的位置和取向数据进行的位置和取向控制来控制机器人臂的阶段,第二阶段是通过基于第一力数据和第二力数据进行的力控制来控制机器人臂的阶段;以及存储部,其配置成存储生成的教示数据。
根据本发明的第二方面,提供一种控制机器人的控制器的控制方法,该机器人设有在教示机器人臂的操作时被操纵的操纵部,该控制方法包括:通过使用第一传感器获取作用在机器人的末端上的第一力数据;通过使用第二传感器获取作用在操纵部上的第二力数据;通过使用第三传感器获取机器人臂的末端的位置和取向数据;以及基于在教示机器人臂时第一力数据和第二力数据的分析结果生成具有第一阶段和第二阶段的教示数据,第一阶段是通过基于第三传感器的位置和取向数据进行的位置和取向控制来控制机器人臂的阶段,第二阶段是通过基于第一力数据和第二力数据进行的力控制来控制机器人臂的阶段。
本发明的其他特征将从以下参照附图对示例性实施例的描述中变得明显。
附图说明
图1示出了本公开的第一实施例的机器人系统。
图2是示出了第一实施例的机器人系统的控制系统的框图。
图3示出了通过第一实施例的传感器测量的力。
图4是在图2中示出的控制系统的控制框图。
图5示出了第一实施例的操作力和接触力的时间序列数据。
图6示出了第一实施例的第三区段。
图7A是表示第三区段中的操作力的数据的曲线图。
图7B是在条件与图7A不同的情况下,表示第三区段中的操作力的数据的曲线图。
图7C是在条件仍然与图7A不同的情况下,表示第三区段中的操作力的数据的曲线图。
图8示出了在教示通过第一实施例的机器人进行连接器连接时进行重试操作的情况。
图9示出了图4所示的比较部的处理。
图10是示出第一实施例的一个示例性机器人教示方法的流程图。
图11是示出图10中的力指令值生成处理的流程图。
图12A示出了如何教示第一实施例的机器人臂的探测操作。
图12B示出了在机器人臂的探测操作中工件接近插入孔的情况。
图12C示出了工件进入插入孔的情况。
图12D示出了工件从图12C的情况进一步进入插入孔的情况。
图13示出了第一实施例的补充轨迹的具体示例。
图14示出了第二实施例的机器人系统。
图15示出了第三实施例的机器人系统。
图16是示出第四实施例的机器人系统的控制系统的框图。
图17是图16中的控制系统的控制框图。
图18A是示出操纵器的显示区域的示意图。
图18B是示出操纵器的操纵部的示意图。
图19是示出第五实施例的操纵器的显示区域的示意图。
具体实施方式
下面参照附图描述实施本公开的实施例。
第一实施例
图1示出了本公开的第一实施例的机器人系统。图1中的机器人系统100包括机器人200和控制系统300,控制系统300是控制机器人200的一个示例性控制器。控制系统300包括机器人控制器350和伺服控制器360。
机器人200是有关节的竖直工业机器人。机器人200包括机器人臂201、手202和操纵部203,手202是一个示例性末端执行器。操纵部203附接到机器人臂201的末端。手202通过操纵部203被支撑在机器人臂201的末端处。即,操纵部203设置在机器人臂201的末端和手202之间。操纵部203是在直接教示机器人臂201的操作时由教员操纵的部分,并且形成为使得教员能够抓持并操纵的形状。
机器人臂201包括多个(例如7个)串联连接的连杆210至216,其基端(固定端)固定到基座B,例如作业目标对象置于基座B上。在本实施例中,7个连杆210至216通过6个关节J1至J6连接。注意,连杆的数量不限于7个。每个关节J1至J6是线性运动关节、摆动关节或旋转关节(也称作扭转关节)。在本实施例中,关节J2、J3和J5是摆动关节,关节J1、J4和J6是旋转关节。连杆210是机器人臂201的基端。连杆216是机器人臂201的远端(自由端)。手202包括多个指状部220,并且能够通过操作多个指状部220而抓持工件等。
作为一个示例性第一传感器的力传感器251被置于手202和操纵部203之间。手202被力传感器251支撑,力传感器251被操纵部203支撑。力传感器251内置于手202中。注意,尽管在本实施例中力传感器251内置于手202中,但是力传感器251可置于手202和操纵部203之间或者可内置于操纵部203中。力传感器251用于测量作用在手202上的六轴力。六轴力是在彼此正交的三个轴线方向上的平移力和围绕每个轴线的旋转力,即旋转力矩。作用在手202上的力是在手202或被手202抓持的被抓持体与作业目标对象接触时产生的反作用力(下文称作“接触力”)。接触力也是手202施加到作业目标对象的力。
力传感器251以预定频率向控制系统300的机器人控制器350输出与作用于其自身的力(即,接触力)对应的信号。基于从力传感器251获得的信号,机器人控制器350执行获得作用于手202的力的处理。因而,控制系统300(即,机器人控制器350)能够通过使用力传感器251测量作用于手202的力。即,力传感器251配置成获取作用于机器人200的末端的第一力F1的数据。注意,如上所述,在本实施例中包括末端执行器的装置被称作机器人。因此,如果附接末端执行器,末端执行器的末端就是机器人的末端。
驱动器230置于机器人臂201的每个关节J1至J6中。每个驱动器230包括旋转驱动对应关节的马达231。能够通过操作置于每个关节J1至J6中的马达231而改变机器人臂201的取向。通过改变机器人臂201的取向,被支撑在机器人臂201的末端处的手202能够改变到任意位置和取向。在机器人臂201的末端处的“位置和取向”将在下文简称为“位置”。
每个驱动器230还包括转矩传感器252。即,多个转矩传感器252(第二传感器的一个示例)置于关节J1至J6中。每个转矩传感器252以预定频率向机器人控制器350输出与作用于每个关节J1至J6的转矩(即,作用于将每个关节J1至J6连接的一对连杆之间的转矩)对应的信号。基于从多个转矩传感器252获取的信号,机器人控制器350执行获得作用于机器人臂201的末端(即,作用于附接到连杆216的操纵部203)的力的处理。从而,机器人控制器350能够通过使用多个转矩传感器252测量作用于机器人臂201的末端(即,作用于操纵部203)的力。即,转矩传感器252配置成获取作用于操纵部203的第二力F2的数据。在教员保持并操纵操纵部203时作用于操纵部203的力除了施加到操纵部203的操作力以外还包括接触力。注意,用作第一传感器的力传感器251布置成比用作第二传感器的转矩传感器252更靠近机器人的末端(更靠近末端执行器)。
每个驱动器230还包括编码器253。也就是说,多个编码器253(第三传感器的一个示例)置于机器人臂201的关节J1至J6中。每个编码器253是旋转编码器,并以预定频率向机器人控制器350和伺服控制器360输出与马达231的旋转轴的旋转角对应的信号。基于从多个编码器253获取的信号,机器人控制器350执行获得机器人臂201的末端位置的处理。从而,机器人控制器350能够通过使用多个编码器253测量机器人臂201的末端的位置。即,编码器253配置成获取机器人臂201的末端的位置和取向数据。
图2是示出第一实施例的机器人系统100的控制系统的框图。机器人控制器350由计算机构成并包括CPU(中央处理单元)301,CPU 301是一个示例性处理单元。机器人控制器350还包括ROM(只读存储器)302、RAM(随机存取存储器)303和HDD(硬盘驱动器)304。机器人控制器350还包括记录磁盘驱动器305和I/O 311至314,I/O 311至314是输入/输出接口。
CPU 301、ROM 302、RAM 303、HDD 304、记录磁盘驱动器305和I/O 311至314通过总线310连接而能够彼此通信。I/O 311与伺服控制器360连接,I/O 312与编码器253连接。I/O313与转矩传感器252连接,I/O 314与力传感器251连接。
与每个关节J1至J6对应的马达231和编码器253与伺服控制器360连接。注意,尽管图2示出了仅仅一个关节的马达231、编码器253和转矩传感器252,但是在第一实施例中有6个关节。因此,尽管未示出,有6组图2中的马达231、编码器253和转矩传感器252。
CPU 301通过借助伺服控制器360对驱动机器人臂201的每个关节J1至J6的马达231进行控制而控制机器人臂201的操作。HDD 304(一个示例性存储单元)存储控制和计算程序325和教示数据320。记录磁盘驱动器305能够读出在记录磁盘326中记录的各种数据和程序。程序325使得CPU 301能够执行后述的各种算术操作和各种控制。
教示数据320在教示机器人臂201时由CPU 301生成,并且是以例如1ms的预定频率给出的操作指令值的时间序列数据。CPU 301通过未示出的切换器设定为教示模式或再现操作模式,切换器设置在机器人控制器350中并由人员操纵。
在CPU 301设定为教示模式的情况下,CPU 301通过对机器人臂201进行阻抗控制来控制机器人臂201,从而遵循作用于机器人臂201的力的方向进行操作。然后,CPU 301生成教示数据320并将其存储在HDD 304中。在CPU 301设定为再现操作模式的情况下,CPU301遵循存储在HDD 304中的教示数据320操作机器人臂201。教示数据320也称作轨迹数据。
在教示数据320中包括的操作指令值是位置指令值或力指令值。位置指令值由指示位置的三个参数和指示取向的三个参数构成。力指令值由指示平移力的三个参数和指示力矩的三个参数构成。
在本实施例中,位置指令值的时间序列数据是位置教示数据321,力指令值的教示数据是力教示数据322。CPU 301基于位置教示数据321控制机器人臂201的位置和取向,并基于力教示数据322控制机器人臂201的力。注意,“位置和取向控制”在下文将称作“位置控制”。还注意,取代位置指令值,位置教示数据321可以由指示每个关节J1至J6的目标角度的角度指令值或者指示每个马达231的目标角度的角度指令值的时间序列数据构成。
将描述位置控制中的一个示例性反馈控制。CPU 301将教示数据320的位置指令值转换成指示每个关节J1至J6的角度的目标值的角度指令值。CPU 301还将每个关节J1至J6的角度指令值转换成指示置于每个关节J1至J6中的马达231的旋转角度的目标值的角度指令值。然后,CPU 301以预定频率向伺服控制器360输出每个关节J1至J6的马达231的角度指令值。伺服控制器360控制供应到马达231的电流,使得由编码器253检测的角度接近角度指令值。通过上述位置控制,使得机器人臂201的末端位置更接近位置指令值。
将描述力控制中的一个示例性反馈控制。CPU 301对于每个马达231计算转矩指令值,使得在机器人臂201末端处产生的力与教示数据320的力指令值平衡,并向伺服控制器360输出计算的转矩指令值。伺服控制器360基于每个编码器253的角度值控制供应到马达231的电流,使得在每个关节中产生的转矩接近转矩指令值。每个马达231通过被电流激励而产生驱动力,从而在每个关节中产生转矩,使得在机器人臂201的末端处产生力。每个编码器253向CPU 301输出指示每个马达231的角度值的信号。每个转矩传感器252向CPU 301输出指示每个转矩值的信号。从而,每个编码器253的角度值和每个转矩传感器252的转矩值被反馈至CPU 301。CPU 301基于后述的机器人模型和编码器253的角度值计算每个关节J1至J6的角度值。CPU 301还基于机器人模型和每个关节J1至J6的角度值计算机器人臂201的末端位置。CPU 301基于每个关节的角度值和每个关节的转矩值计算在机器人臂201的末端处产生的力。通过上述的力控制,在机器人臂201的末端处产生的力接近力指令值。
从CPU 301向伺服控制器360输出的角度指令值和转矩指令值是驱动指令值。CPU301能够通过从教示数据320生成与机器人臂201的每个关节J1至J6的马达231对应的驱动指令值,借助反馈控制执行位置控制和力控制。
图3示出了在使用力传感器251测量的力F1和使用转矩传感器252测量的力F2之间的关系。教员操纵操纵部203所需的操作力由F表示,在手202或由手202支撑的支撑结构与作业目标对象接触时产生的接触力由f表示。注意,多个转矩传感器252一起作为一个传感器操纵,如图3所示。
如图3所示,力传感器251和转矩传感器252布置成在传感器之间具有指示操作部203的操作点P。使用力传感器251测量的力F1是自身与作业目标对象的接触力f。同时,使用转矩传感器252测量的力F2是接触力f和操作力F的合力(f+F)。即,除了由教员施加的操作力F以外,接触力f也作用于操作部203。
机器人控制器350能够基于接触力f和操作力F执行力反馈控制,改变与每个关节J1至J6的马达231对应的驱动指令值。更具体地,机器人控制器350能够通过改变与每个关节J1至J6的马达231对应的驱动指令值,使得接触力f变为预定力,执行以预定力将抓持对象压向作业目标对象的控制。机器人控制器350还基于操作力F的信息、有效粘度和惯性的阻抗模型,改变与每个关节J1至J6的马达231对应的驱动指令值。这一布置使得人员可以基于施加到操纵部203的操作力F移动机器人臂201。也就是说,机器人控制器350对机器人臂201执行阻抗控制,使得机器人臂201遵循作用于机器人臂201的操作力F的方向操作。
下面将描述对机器人臂201执行直接教示的情况。图4是图2中控制系统300的控制框图。图2示出的CPU 301通过执行程序325而用作图4所示的每个部分331至334。图2中的HDD 304用作图4中的存储单元346。机器人模型347是机器人臂201的诸如形状和尺寸的信息(数据),并且预先存储在HDD 304中。手信息348是手202的诸如形状和尺寸的信息,并且预先存储在HDD 304中。
在执行直接教示时,机器人控制器350对机器人臂201执行阻抗控制,使得机器人臂201遵循作用于机器人臂201的操作力F的方向操作。作为直接教示还有一种方法:通过在手动操纵机器人臂201的同时在主要点处按下确定按钮而确定由教员确定的教示点,并且通过将这些教示点连接,生成教示数据。同时,在本实施例的直接教示中,机器人控制器350完全获取在教员操纵机器人臂201时生成的一系列操作数据,并且在获取该一系列时间序列数据之后基于该数据生成教示数据320。这一布置使得可以在遵循教示数据320复制地操作机器人臂201的自动操作中改进复制已经由教员教示的机器人臂201的操作的可复制性。
下面将描述生成教示数据320的过程。当教示机器人控制器350时,即当机器人控制器350设定为教示模式时,机器人控制器350以预定频率(例如1ms)接收从力传感器251、转矩传感器252和编码器253输出的信号。第一测量部分331基于来自力传感器251的信号测量第一力F1,即计算力F1的数据,并将力F1的数据存储在存储单元346中。第二测量部分332基于来自多个转矩传感器252的信号测量第二力F2,即计算力F2的数据,并将力F2的数据存储在存储单元346中。第三测量部分333基于来自多个编码器253的每个的信号获得多个马达231的每个旋转角,并将多个马达231的每个旋转角的数据存储在存储单元346中。存储在存储单元346中的力F1的数据、力F2的数据和旋转角的数据是例如每隔1ms的时间序列数据。相应的数据被同步从而在时间轴上彼此对应。
取向计算部334基于存储在机器人模型347和存储单元346中的每个编码器253的旋转角的数据计算机器人臂201的取向。机器人臂201的取向被理解为机器人臂201的每个关节J1至J6的角度。手计算部335基于机器人臂201的取向数据和手信息348计算机器人臂201的末端(即,操纵部203)的坐标。即,取向计算部334和手计算部335以时间序列的方式测量机器人臂201的末端的位置。注意,机器人臂201的末端的位置测量不限于通过使用编码器253执行的情况。例如,可以布置成使得通过使用围绕机器人臂201布置的视觉传感器测量机器人臂201的末端的位置。
接触力计算部336根据使用力传感器251测量的力F1来计算接触力f。在本实施例中,使用力传感器251测量的力F1是接触力f。操作力计算部337计算在使用力传感器251测量的力F1的数据和使用转矩传感器252测量的力F2的数据之间的差值(F2-F1)。在本实施例中,差值(F2-F1)是操作力F的数据。从而,可以仅仅通过差值(F2-F1)提取操作力F的数据。
基于机器人臂201的位置的测量结果,设定部338将时间序列数据的整个区段划分为第一区段和第二区段,在第一区段中,在再现操作的同时控制机器人臂201的位置,在第二区段中,在再现操作的同时控制机器人臂201的力。在本实施例中,设定部338根据计算的接触力f的大小是否归零来划分时间序列数据的整个区段。更具体地,设定部338设定接触力f的大小为零的第一区段和接触力f的大小不为零的第二区段。注意,在本实施例中,第一区段可以称作第一阶段,其中控制机器人臂201的位置和取向,使得上述第三传感器(本实施例中的编码器253)的位置和取向数据被再现。进一步地,第二区段可以称作第二阶段,其中控制机器人臂201的力,使得上述第一力数据和第二力数据被再现。第一阶段和第二阶段由设定部338基于上述第一力数据和第二力数据的分析结果设定。注意,在本实施例中的术语“再现”的概念范围中,不仅包括执行完全相同的机器人运动而且包括执行不同的机器人运动,只要这些运动基于教示的机器人运动。也就是说,只要能够通过第一阶段中的位置控制和第二阶段中的力控制适当地操作机器人,机器人的操作可以与教示操作不同。
图5示出了操作力和接触力的时间序列数据。图5示出了组装操作,其中使得手202抓持连接器W1(一个示例性的第一零件)并将连接器W1与连接器W2(一个示例性的第二零件)组装。图5还基于X-Y-Z轴的正交坐标系示出了操作力和接触力。注意,为了简化以下描述,操作力将仅仅由操作力Fx、Fy和Fz表示,Fx、Fy和Fz是沿X、Y和Z方向的平移力。以相同方式,接触力将仅仅由接触力fx、fy和fz表示,fx、fy和fz是沿X、Y和Z方向的平移力。设定部338将测量时间序列数据的整个区段划分为区段S1和区段S2,区段S1是三个接触力fx、fy和fz的大小都归零的第一区段,区段S2是三个接触力fx、fy和fz的大小不归零的第二区段。也就是说,没有接触力的情况是区段S1,有接触力的情况是区段S2。
在区段S1中,不产生接触力。也就是说,三个接触力fx、fy和fz归零。特别地,这是在连接器W1和W2彼此接触之前的情况。操作力Fx、Fy和Fz与操作员施加到操纵部203的力对应地波动。在组装连接器W1和W2时,重要的是在连接器W1和W2彼此接触之后的行为。在连接器W1和W2彼此接触之前,运动的轨迹和力的波动是不重要的。在本实施例中,力被划分为接触力f和操作力F。因此,可以将整个区段划分为连接器W1和W2彼此不接触的区段S1和连接器W1和W2彼此接触的区段S2。
因为如上所述在连接器W1和W2彼此接触之前不产生接触力,所以不必对机器人臂201执行力控制。因此,图4所示的位置教示数据生成部339在区段S1中基于机器人臂201的末端位置数据生成位置教示数据321。在本实施例中,位置教示数据生成部339通过利用预定的插值法(例如线性插值和联合插值)在区段S1中的起点位置数据与终点位置数据这两个点之间插值而生成位置教示数据321。这一布置使得可以简化沿路轨迹并且加速机器人臂201的运动。注意,位置教示数据321可以是测量的时间序列位置的数据自身。即使在这种情况下,与执行力控制的情况相比,机器人臂201的运动也可以加速。进一步地,因为在本实施例中机器人控制器350自动划分成区段S1和S2,所以教员能够节省劳动。注意,尽管优选的是将要插值的起点和终点这两个点设定为区段S1的起点和终点,但是本公开不限于此,这两个点可以是区段S1的起点之前或之后的点以及区段S1的终点之前或之后的点。
因为在区段S2中产生接触力,即,三个平移力fx、fy和fz中的任一个不为零,所以必须对机器人臂201执行力控制。图4中所示的力教示数据生成部342生成力教示数据322,使得在区段S2中的再现操作期间,机器人臂201以与差值(F2-F1)(即,操作力F)对应的力(第三力)操作。
教示数据生成部343以时间序列方式连接如上所述生成的位置教示数据321和力教示数据322以生成教示数据320,并将生成的教示数据320存储在用作存储单元的HDD 304中。在本实施例中,教示数据生成部343和位置教示数据生成部339、力教示数据生成部342、校正部340、比较部341等一起构成生成具有上述第一阶段和第二阶段的教示数据的生成部。
当设定再现操作模式时,操作指令部344读出存储在HDD 304中的教示数据320以生成操作指令值,并将其输出到伺服控制器360。通过根据力教示数据322再现地操作机器人臂201,每个关节J1至J6的马达231产生转矩,该转矩产生与在机器人臂201的末端处的操作力F对应的力。这一布置可以使得机器人臂201再现与教员(专家)已经操纵机器人臂201的操作相同的操作。即,在机器人臂201的一系列操作当中需要精密作业的部分处,由教员教示的机器人臂的操作能够正确地再现。也就是说,可以基于教员教示的机器人臂的操作而以期望的模式控制机器人臂。
虽然操作力F的数据可原样用作力教示数据322,即,不校正差值(F2-F1),但是一系列时间序列数据包括无用的操作(例如教员的摆手)和在进行重试操作时的在先操作。因而,校正部340和比较部341校正操作力F的数据从而去除无用的操作。在校正操作力F的数据的情况下,力教示数据生成部342从校正后的操作力F的数据生成在力教示数据322中包含的力指令值。
下面将具体描述用于生成力教示数据322(即,力指令值)的方法。校正部340将执行力控制的区段S2划分为多个区段S3-1、S3-2和S3-3。
图5中的S3-1表示刚好在连接器W1和W2彼此接触之后的情况。在区段S3-1中,接触力fx、fy和fz突然改变。之后,沿Y方向的操作力Fy显著改变,意味着教员试图沿Y方向移动机器人臂201。进一步注意操作力Fy,尽管该力大多数时候沿+Y方向施加,力也临时沿-Y方向施加。教员在沿+Y方向移动机器人臂201一次之后故意使机器人臂201沿-Y方向返回。操作力Fy在区段S3-1的终点附近稳定,表示沿+Y方向施加恒定力的情况。教员通常在力稳定的这种情况下获得组装所需的力。
在区段S3-2中,沿x方向的操作力Fx和接触力fx突然变化。操作力Fx的方向频繁地变化,表示教员正在向操纵部203振动地施加操作力。因为存在通过在振动连接器W1的同时执行组装作业而能够容易地组装连接器W1和W2的情况,所以在这种情况下教员故意振动地操作操纵部203。在记录的力的数据中操作力的方向反转并且连续的情况下,确定为故意操作并且在不排除这段时间期间的操作力数据的情况下生成力教示数据322。因而,在再现操作时可以反映教员预期的操作。如果通过移动平均数等简单地校正该情况中的操作力,则生成操作力未改变的数据,从而不能再现教员预期的操作。注意,尽管在以上描述中通过操作力的方向反转并连续来进行确定,但是可以通过操作力的反转频率水平来进行确定。因为几KHz以上的响应不是人类操作的,所以在人员故意振动地操作操纵部203的情况中可以通过提供大约几Hz频率前后的阈值来决定是否进行校正。
在区段S3-3中,完成连接器W1和W2的对接和组装,在接触力突然变化之后操作力消失,表示教示操作已经结束。
操作力F的数据、接触力f的数据和位置数据是连续的不分割数据组。将具体描述用于将区段S2分区为多个区段S3-1、S3-2和S3-3的方法。
人类的作业速度在精密作业中趋于降低。因此,快速操作机器人臂201的区段被认为是不需要精密或受控振荡的操作。然后,在本实施例中,校正部340分析在区段S2中操作力F的数据频率,并且基于分析结果将区段S2划分成多个区段S3-1、S3-2和S3-3。具体地,CPU 301对操作力F的数据执行频率分析,并且提取频率的改变点以将频率的改变点设定为将区段分区的点。这一布置可以对教员操作的改变点取样,即,通过教员操作的改变点将区段S2划分为多个区段。注意,还可以根据操作力Fx、Fy和Fz的主要力分量的改变以及各个力的正负方向的改变来提取教员操作的改变点。例如,如果情况从仅仅沿x方向施加操作力的情况变为沿y方向施加力的情况,那么可以看到教员在某种程度上故意改变了操作。
区段S3是从区段S2分区的三个区段中的一个区段。图6示出了区段S3,即第三区段。如图6所示,CPU 301将区段S3进一步划分为多个子区段SA。每个子区段SA具有相同的时间间隔,并且在本实施例中设定为例如1ms的数据提取阶段。
校正部340在多个子区段SA的每个中在终点处获得相对于起点操作力F改变的大小,并且将其存储在用作存储单元的HDD 304中。操作力F改变的大小与图6曲线图中箭头所示的矢量的角度成比例。在操作力F改变的大小低于预先设定的阈值的情况下赋予标号“S”,在该大小高于阈值的情况下赋予标号“L”,从而通过与操作力F改变的大小的数据相关而存储在HDD 304中。进一步地,对于操作力F改变的方向,在远离零的方向上赋予标号“+”,在接近零的方向上赋予标号“-”。对于存储的标号,其中赋予标号“S”的子区段SA持续预先设定的预定数量的一区段将表示为连续区段SB。除了连续区段之外的区段将表示为区段SC。
校正部340通过平均化处理等将在连续区段SB中包含的操作力F的数据平滑化。即,校正部340将在教示期间从操纵部203施加的操作力F在通过分析第一力数据和第二力数据设定的第二阶段内的特定阶段中平滑化。力教示数据生成部342根据平滑化的数据(操作力)生成力教示数据322。从而,校正部340和力教示数据生成部342生成力教示数据322,使得在机器人臂201中产生的力在连续区段SB中平滑化。通过这样将微小的改变平滑化,可以去除无用的操作,例如教员的摆手。
校正部340在除了连续区段SB以外的区段SC中进行如下处理。图7A、7B和7C示出了在区段S3中操作力的数据。虚线表示在校正之前操作力F的数据,实线表示在校正之后操作力F的数据。虚线与实线重叠的部分表示操作力F的数据未校正。
在操作力F如图7A所示经过零的情况下,校正部340未校正操作力F的数据。因此,力教示数据生成部342将操作力F的数据原样设定为力教示数据322。这是因为当操作力的正负反转时存在教员故意振动机器人臂201的可能性。在此,操作力F的数据经过零意味着操作力F的数据的正负号切换。
即使在如图7B所示操作力F在区段SC中不经过零的情况下,在连续区段SB的端点处的操作力F存在于包括零的预定范围R中的情况下校正部340也不校正操作力F的数据。因此,力教示数据生成部342将操作力F的数据原样设定为力教示数据322。这是因为在连续区段SB中操作力F处于零附近的情况下,如果通过将数据平滑化而生成力教示数据,则生成全部忽略操作力的力教示零数据。为了避免这一点,在图7B的情况下在区段SC中未校正操作力F的数据。
在如图7C所示操作力F不经过零并且在连续区段SB的终点处的操作力F存在于包括零的预定范围R之外的情况下,校正部340校正操作力F的数据并将其平滑化。具体地,在区段SC中,校正部340在相对于前半区段的后半区段处将操作力F的数据平滑化,导致与连续区段SB的起点相同的操作力。力教示数据生成部342根据校正后的操作力F的数据生成力教示数据322。在此,区段SC是在连续区段SB之前的一组子区段。从而,在本实施例中校正部340和力教示数据生成部342生成力教示数据322,使得在连续区段SB之前的区段中由机器人臂201产生的力(第三力)被平滑化。在图7C的情况下,生成力教示数据322,使得操作力F在区段SC的前半部增加而具有力矢量的最大倾斜,并且将连续区段SB中的力教示数据设定为区段SC的后半部中的最终指令值。这一布置使得可以在教员试错期间去除力的波动,并且从开始反应最终操作力的结果。
接下来,将描述比较部341的处理。图8示出了在教示连接器的连接时进行重试操作的情况。在图8所示的连接器W1和W2彼此连接的情况下以及在诸如柔性扁平线缆的柔性对象W被手202抓持的情况下,如果施加过大的力,则柔性对象W较大地变形,或者连接器W1的取向相对于组装方向较大地偏移。在这种情况下,教员执行返回初始位置的操作并且执行重试操作以调节待施加的力。
图9示出了比较部341的处理。如图9所示,在返回操作完成时的位置数据值等于在进行组装作业之前的位置数据值。因此,在进行后半部中的重试操作的情况下,前半部中的操作都是不必要的。
然后,在本实施例中,比较部341移除具有相等值的两个时间序列位置数据之间的数据,并且将与移除的位置数据同步的操作力数据移除出时间序列操作力数据。换言之,比较部341参照与由校正部340校正的操作力数据同步的位置数据,以确定是否存在类似的时间序列位置数据。在存在类似的时间序列位置数据的情况下,比较部341移除类似的时间序列位置数据以及同步的力教示数据。力教示数据生成部342从部分移除的操作力数据生成力教示数据322。从而,比较部341和力教示数据生成部342生成力教示数据322,使得在区段S2中的时间序列位置数据当中在呈现相等值的两个位置数据之间的机器人臂201的操作省略。在此,“相等值”包括在诸如HDD 304的存储单元中预先设定的公差内位置数据彼此偏移的情况。例如,在公差设定为0.1mm的情况下,认为坐标值X:200.0mm、Y:200.0mm和Z:200.0mm与坐标值X:199.9mm、Y:200.0mm和Z:200.0mm相等。注意,在省略两个位置数据之间的机器人臂201的操作的情况下,优选的是省略与两个位置数据当中的任一位置数据对应的操作,留下与另一位置数据对应的操作。在图9的情况下,省略了组装作业失败的区段S4中的操作。即,生成部(341,342)基于由第三传感器获取的位置和取向数据确定在教示机器人臂时是否进行重试操作,在确定已经进行重试操作的情况下,生成不会再现失败操作的教示数据。从而,可以通过与位置数据一起进行数据处理而有效地移除无用操作。
以上沿图4所示的框图描述了机器人控制器350的操作。图10是概述机器人控制器350的处理序列的流程图。即,图10是示出第一实施例的一个示例性机器人教示方法的流程图。
首先,CPU 301在步骤S101中获取在教示时机器人臂201的时间序列位置数据、操作力数据和接触力数据。注意,CPU 301读取预先手动设定的教示数据的区段的分区设定、在标记子区段时的阈值、在确定位置数据等的类似性时的设定。
接下来,CPU 301在步骤S102中根据教示期间的读取每个数据的设定执行分区处理。具体地,CPU 301如图5所示划分为区段S1、S3-1、S3-2和S3-3等。
CPU 301在步骤S103中以时间序列方式向分区的数据赋予区段编号1至Nmax。之后,CPU 301生成每个区段的教示数据。CPU 301在步骤S104中限定区段处理编号N并且首先设定N=1。
CPU 301在步骤S105中确定在第N个分区中是否存在接触力。如果没有接触力,即,步骤S105中为否,则CPU 301基于步骤S106中的位置控制在步骤S107中执行生成位置指令值的处理。在步骤S107中,CPU 301通过预定的插值法连接第N个区段的起点和终点的位置,即,校正位置数据以生成位置指令值。即,用作生成部的CPU 301通过利用预定插值法在由第三传感器获取的位置和取向数据的两个点之间插值而生成再现第一阶段(第一区段)的位置教示数据。
在存在接触力,即步骤S105中为是的情况下,CPU 301基于步骤S108中的力控制在步骤S109中执行生成力指令值的处理。在生成位置指令值或力指令值之后,CPU 301在步骤S110中确定是否N<Nmax。在N<Nmax,即步骤S110中为是的情况下,CPU 301在步骤S111中使N增加1并且回到步骤S105中的处理。在N=Nmax的情况下,CPU 301在步骤S112中生成教示数据320,其中整个区段的指令值以时间序列方式排列。
下面将具体描述图10中的步骤S109中的处理。图11是示出力指令值生成处理的流程图。CPU 301在步骤S121中确定在位置数据中是否有类似部分。在有类似部分,即步骤S121中为是的情况下,CPU 301在步骤S122中执行删除被确定为类似的部分的位置数据(除了类似部分的最终数据之外)以及相同时间序列的力数据的删除处理。
接下来,CPU 301在步骤S123中以力传感器的每个提取频率将第N个区段的数据进一步划分,以限定为子区段。然后,CPU 301在步骤S124中向各个子区段赋予编号1至nmax。注意,CPU 301确定在子区段中的操作力数据的改变大小是大于还是小于阈值并且赋予标号。此时,CPU 301将改变小的子区段连续的一组子区段设定为连续区段。
CPU 301在步骤S125中限定子区段处理编号n并且首先设定n=1。CPU 301在步骤S126中确定第n个区段的子区段是否是连续区段。如果是连续区段,即步骤S126中为是,则CPU 301在步骤S127中通过对操作力数据实施平均化处理而生成平滑力指令值。
在不是连续区段,即步骤S126中为否的情况下,CPU 301在步骤S128中确定操作力F是否经过零。如果操作力F经过零,即步骤S128中为是,则CPU 301在不处理操作力数据的情况下生成力指令值。在操作力F不经过零,即步骤S128中为否的情况下,CPU 301在步骤S129中执行操作力的数据处理。在如上所述在第N个区段中存在连续区段的情况下,CPU301生成以在开始连续区段时的值为目标的力指令值。
然后CPU 301在步骤S130中确定是否n<nmax。在n<nmax,即步骤S130为是的情况下,CPU 301在步骤S131中使n增加1并且回到步骤S126中的处理。在n=nmax,即步骤S130为否的情况下,CPU 301转向图10中的步骤S110中的处理。
虽然以上已经描述了将图5所示的连接器W1和W2彼此组装的组装操作,但是还存在使机器人臂201执行例如探测操作作为由机器人臂200执行的作业的情况。
存在人类在不依赖于视力的情况下通过手的感测执行组装作业的情况。在视觉设定大致目标位置之后,人员通过依赖于手的感测而执行组装作业。因为认为更有效地是找到一种在将零件抵接在大致位置的同时并且在将零件沿一定方向按压的同时将零件安置在一定条件下的组装方法,而不是在对应于零件视觉校正目标位置的同时组装零件。这同样应用于使用机器人200的组装作业。
图12A至12D示出了在教示机器人臂时的探测操作。在沿着工件W12的上表面的方向上的轴线表示为X和Y,沿着正交于X和Y方向的方向的轴线表示为Z。如图12A所示,在将杆工件W11插入工件W12的插入孔H12时使得机器人臂执行探测操作(搜索位置)。在将用手抓持的工件W11抵接工件W12(即,插入目标)的上表面的同时以及沿Z方向用一定力压靠上表面的同时在X和Y方向上探测插入位置。在如图12B所示工件W11靠近插入孔H12的情况下,人员感测接触力的改变,改变操作力并将组装作业前进到下一阶段,如图12C和12D所示。在操作力改变期间存在接触力改变的情况下,通过在操作的步进允许条件下设定接触力的改变而再现能够吸收间隙等的组装操作。然而,在与探测操作(搜索位置)类似尽管操作力连续波动但是接触力不改变或者改变较少的情况下,需要与传统处理不同的处理。在再现操作期间在工件W11靠近插入孔H12的操作范围内存在间隙的情况下,尽管能够通过将接触力的改变设定为操作的步进允许条件来再现组装操作,但是不能在教示期间在零件的间隙存在于操作范围之外时再现操作。对于探测操作,必须补足从教示时开始的操作,从而能够应对零件的间隙。
然后,根据本实施例,CPU 301将即使操作力连续波动接触力也不改变或改变较少的操作判断为探测操作,并且根据操作的趋势补足再现操作。图13示出了补足轨迹的具体示例。图13示出了三个探测操作α、β和γ。即,CPU 301能够在到达插入孔H12之前(即,直到接触力改变时)通过从各个坐标的移位分析探测操作的趋势,并且通过补足在教示时不包括的操作,来应对零件的间隙等并且改进通用性。
第二实施例
图14示出了第二实施例的机器人系统100A。在第一实施例中,已经描述了第二传感器是多个转矩传感器并且置于机器人臂201的每个关节中的情况。在第二实施例中,第二传感器是力传感器252A。优选地,力传感器252A置于机器人臂201的末端和操纵部203之间。在本实施例中,力传感器252A内置于操纵部203中。力传感器252A以与力传感器251相同的方式构造。力传感器252A以预定频率将对应于施加到操纵部203的力的信号输出到机器人控制器350。在第二实施例中,与第一实施例类似,也能够通过从使用力传感器252A测量的力F2减去使用力传感器251测量的力F1而计算操作力F。
第三实施例
图15示出了第三实施例的机器人系统100B。在第一实施例中,已经描述了在机器人200中安装用作第一传感器的力传感器251的情况。在第三实施例中,第一传感器是设置在基座B上的力传感器251B,作业目标对象W22置于基座B上。力传感器251B以与第一实施例描述的力传感器251相同的方式构造。
在手202抓持工件W21的情况下,W21与作业目标对象W22接触。此时的接触力作用于力传感器251B。力传感器251B以预定频率将与已经作用于其自身的力对应的信号输出到机器人控制器350。从而,机器人控制器350能够通过使用力传感器251B来测量接触力。
第四实施例
接下来,将参照图16至18B描述第四实施例。在第四实施例中,将仅仅描述与第一实施例不同的点,与第一实施例相同的构造将用相同的附图标记表示并且在此将省略其描述。图16是示出第四实施例的机器人系统的控制系统的框图。如图16所示,操作部254通过I/O 315与总线310连接。即,操作部254与机器人控制器350连接,并且布置成能够通过机器人控制器350获取机器人200的位置和取向信息和来自力传感器251、转矩传感器252等的力传感器信息。
如图17所示,操作部254包括显示区域256、操作部257、外部输入/输出部258、显示控制器259和通信接口部260。操作部254处理从机器人控制器350获取的数据以显示在显示区域256上,并且向机器人控制器350通知操作部257的状态改变。在此,操作部257是控制部,进行控制以通过从用户(教示操作者)接收操作而对在显示区域256上显示的显示信息执行改变操作。外部输入/输出部258是用于从/向外部输入/输出任意传感器信号、触发器信号等的接口。显示控制器259是用于在显示区域上输出与由教示数据生成部343生成的教示数据对应的显示信息的输出部。显示控制器259在显示区域256上显示作为可识别为第一区段(第一阶段)和第二区段(第二阶段)的时间序列信息的显示信息。
接下来,将详细描述显示区域256的构造。显示区域256渲染屏幕并且在教示时显示数据,如图18A的教示数据确认屏幕所示。教示数据确认屏幕可以一直显示在显示区域256上,或者可以通过进行屏幕转换而切换成另一屏幕。在教示时机器人200的位置信息和机器人200的力传感器信息在教示数据确认屏幕中被显示为时间序列数据(时间序列原始数据)。从力传感器信息自动生成的位置信息和教示数据也与时间序列(时间序列教示数据)一起显示。通过将这样获得的时间序列原始数据与作为生成的教示数据的时间序列教示数据相比较,可以辨别和确认忠实反应操作者意图的区域和进行省略、平滑化和删除的区域。显示区域256也可以布置成使得能够在确认显示的同时校正教示数据。注意,尽管为了方便数据显示在图18A中的上下曲线图中,但是可以通过将曲线图彼此重叠来显示数据。
如上所述将时间序列原始数据自动分区和分割,并且与每个区段的特征对应地执行数据处理以生成教示数据。区段至少以第一区段(第一阶段)和第二区段(第二阶段)为单位被分割,并且操作部257能够在这些分割区段中独立地执行选择操作和改变操作。更具体地,根据本实施例,第一和第二区段通过上述区段分割被进一步再分和显示。即,第一区段被进一步再分的第一子区段(第一短阶段)和/或第二区段被进一步再分的第二子区段(第二短阶段)显示在显示区域256上,这些第一子区段和第二子区段布置成使得选择操作和改变操作分别独立。注意,尽管本实施例布置成使得第一区段和第二区段被自动分割为子区段,但是也可以布置成使得这些区段被手动分割成子区段,当然,这些子区段可布置成被选择、编辑或删除。
在教示数据确认屏幕上,分别显示时间序列原始数据和时间序列数据,使得区段的划分是可识别的。在设置于操作部254的显示区域256和操作部257上的按钮形成在触控面板中的情况下,能够通过直接点击屏幕而选择被分割的区段。选中区段通过半色调点状网格、通过反转、通过另一颜色等显示而被表示,使得能够看到区段已经被选择以能够选择和指定用于在选中区段中生成教示数据的方法。然而,表示如何在未选择区段的情况下已经从时间序列原始数据生成教示数据的该信息可以一直显示。
更进一步,如果选择特定区段,显示选择UI以能够在预先设定的各种处理当中选择期望处理。例如,可以重新选择教示数据生成方法,例如平均化处理、线性近似、零值化、省略、最快轨迹生成、无校正(教示数据忠实再现)等,以再现教示数据。在重新选择教示数据生成方法的情况下,显示询问是否要再现教示数据的确认屏幕。然而,可以在确认屏幕不询问是否要再现教示数据的情况下自动执行再现。在教示数据再现的情况下,时间序列教示数据更新并显示在显示区域256上。即,如果通过操作部257对显示在显示区域256上的显示信息执行改变操作,则通过用作更新部的显示控制器259基于上述改变操作来更新教示数据。教示数据生成方法的重新选择和再现的确认屏幕可以通过显示弹出屏幕或者通过分配给操作部257的按钮等选择而形成。
在设置于操作部254的显示区域256和操作部257上的按钮被渲染成触控面板的情况下,通过直接点击屏幕,不仅可以选择区段而且可以划分上述区段自身。还布置成使得可以进行在时间轴上自动处理和产生的区段分区的移动、分区的删除和增加,使得能够改变区段的时间宽度。通过与上述选择区段时相同的方式进行区段分区的选择。对于分区的增加,额外的屏幕可以通过选择在屏幕上没有分区的位置来弹出,或者可以通过分配给操作部257的按钮来形成。注意,在显示区域256渲染在触控面板中的情况下,操作部257与显示区域256一体构成。更进一步,上述改变操作布置成能够基于操作部257上的按钮或触控面板的操作来执行。除此之外,操作部257上的按钮或切换器可以是物理按钮和/或切换器,或者可以是在触控面板上显示为图像的按钮/切换器。
接着,将参照图18B详细描述操作部257的构造。注意,操作部257将被描述为在图16中的操作部254上显示在显示区域256上的按钮的示例,其可以是设置在操作部254上的物理按钮。
操作部257包括用于切换教示工作有效还是无效的教示有效/无效切换器257a,当教示有效/无效切换器257a是有效时,更新并显示时间序列原始数据。尽管时间序列原始数据可以一直更新并显示在显示区域256上,提供教示有效/无效切换器257a以避免控制器的负载由于除教示工作以外不必要的绘画等而增加。虽然可以预先任意设定更新和显示的周期,但是周期应当由操作员适当设定,因为如果周期太长数据显示密度增加,操作员难以观察。
操作部257还包括教示数据获取按钮257b,并且布置成使得正在显示的时间序列原始数据被重设,并且可以通过操作外部输入/输出部258b从开始进行显示。即,操作部257通过能够选择是否在操作操纵部203时获取第一和第二力数据的选择部而实现了教示数据获取按钮257b的功能。在教示数据获取按钮257b被按下或者教示数据获取按钮257b被松开的情况下,机器人立刻停止在该位置。教示数据获取按钮257b也可以设置在机器人侧的操纵部203中。
操作部257还包括再现并操作时间序列教示数据的执行按钮257c,当按下执行按钮257c时,机器人200(机器人臂201)基于所选的时间序列教示数据操作。
接下来,将详细说明在教示时的流程。通过使教示有效/无效切换器257a有效,开始机器人200的教示。当教示有效/无效切换器257a有效时,时间序列原始数据在操作部254的显示区域256上显示预先设定的任意阶段。然后,教示操作员在观察时间序列原始数据的同时推进检查,例如工件的组装作业。然后,当检查到达试错操作完成并且要实际生成教示数据的状态时,教示操作员按下教示数据获取按钮257b以开始积累时间序列原始数据。
积累的时间序列原始数据如上所述分开显示在多个区段中,即使在评估教示作业时教员也能够选择或删除数据。可以从被删除区段的开始再次获取教示数据,并且在选择被删除区段的情况下通过按下教示数据获取按钮257b连接教示数据。
然而,在就在被删除区段之前的区段的最终时间序列原始数据(尤其是位置和取向信息)和再次获取的时间序列原始数据之间的差多于预先设定的阈值的情况下,指出警告以避免数据连接。还可以提供辅助操作员使得数据能够适当连接的功能。例如,功能是自动低速操作以追踪就在被删除区段之前的区段,并且在追踪操作到达区段的最终部分附近时通知操作者到达。在这种情况下,操作员在收到通知后按下教示数据获取按钮257b以继续教示作业。而且,可以具有以下功能:以如上所述相同的方式辅助与刚好在被删除区段之后的下一区段连接;在教示数据获取按钮257b松开时的时刻在刚好在被删除区段之后的下一区段开始处对位置和取向自动插值。即,重要的是在教示数据的连接部分处不产生位置和取向的突然改变。然而需要小心,因为力信息的连续性丢失。
当按下教示数据获取按钮257b时,时间序列教示数据从获取的时间序列原始数据自动生成并显示在操作部254的显示区域256上。操作员确认显示的时间序列教示数据,适当地编辑并存储教示数据。
接下来,将描述教示数据再现操作。通过按下执行按钮257c再现教示数据。操作员在执行教示作业时布置各种条件(例如组装目标对象的初始位置、机器人的初始位置和取向),并且按下执行按钮257c。在时间轴上的位置在时间序列教示数据中显示在操作部254的显示区域256上,使得能够看到被再现的部分。例如,其指示或者高亮地指示垂直于时间轴的条随着时间消逝而移动。这一布置使得操作员可以确认在教示作业中成功或有问题的部分,并且更容易地编辑教示数据。
可以将机器人控制器350的存储单元中的时间序列原始数据和时间序列教示数据作为设定数据管理,使得它们能够从操作单元254被再次读取并且再次编辑,并且可以向待存储的教示数据赋予任意的文件名。上述操作可以通过用于教示机器人的教示器执行,或者可以通过任意计算机上的预定应用程序执行。
对于上述功能,可以简单容易地自动生成和校正教示数据。因此,可以提供UI,使得从初级使用者到惯于操纵机器人的人才的人员能够简单地生成和校正教示数据。更进一步地,因为惯于操纵机器人的人才能够在确认教示数据的同时教示机器人,并且能够在试错中操作机器人以生成教示数据,所以可以用简单的操作以高水平教示机器人。
第五实施例
接下来,将参照图19描述第五实施例。在第五实施例中,将仅仅描述与第四实施例不同的点,与第四实施例相同的构造将用相同的附图标记表示并且在此将省略其描述。本实施例布置成使得通过匹配时间轴,时间序列原始数据和时间序列教示数据不并行显示在显示区域256上。例如,如图19所示,时间序列教示数据的时间轴的一部分(例如不必要的操作)被压缩,对应的线400被指出,使得能够识别区段的对应部分,并且使得能够容易地看到数据在时间轴上的压缩量。
注意,本公开不限于上述实施例并且可以在本公开的技术思想内修改。在各个实施例中描述的本发明也可以以任何方式组合。更进一步,实施例中描述的效果仅仅是本公开带来的最优选效果的列举,本公开的效果不限于实施例中所述。
其他实施例
本公开也可以通过一过程实现,通过该过程借助网络或存储介质将程序供应给系统或设备并且在系统或设备的计算机中的一个或多个处理器读取并执行该程序,该程序实现上述实施例的一个或多个功能。还可以通过实现一个或多个功能的电路(例如ASIC)实现。
更进一步,已经描述了计算机可读存储介质是HDD 304的情况,本公开不限于该情况,可以使用诸如记录磁盘326的任何存储介质。更具体地,诸如软盘、光盘(例如CD-ROM和DVD-ROM)、磁光盘、磁带和非易失性存储器(例如USB存储器、ROM等)的各种存储介质可以用作存储介质。上述实施例中的程序325也可以通过网络下载以由计算机执行。
本公开也不限于通过执行由计算机读出的程序代码来实现上述实施例的功能。本公开还包括在计算机上运行的OS(操作系统)等基于程序代码指令执行一部分或全部实际处理的情况,或者通过这些处理实现上述实施例的功能的情况。
更进一步,从存储介质读出的程序代码可以被写入设置于插入计算机的功能扩展板中或者与计算机连接的功能扩展单元中的存储器。即,本公开还包括设置在功能扩展板或功能扩展单元中的CPU等实际执行一部分或全部实际处理并且通过这些处理实现上述实施例的功能的情况。
其他实施例
本发明的实施例还可通过系统或设备的计算机以及由系统或设备的计算机实施的方法实现,该计算机读出并执行记录在存储介质(也可更完整地称作“非易失性计算机可读存储介质”)上的计算机可执行指令(例如一个或多个程序)以实施一个或多个上述实施例的功能,并且/或者包括用于实施一个或多个上述实施例的功能的一个或多个电路(例如,专用集成电路(ASIC)),所述方法从存储介质读出并执行计算机可执行指令以实施一个或多个上述实施例的功能,并且/或者控制一个或多个电路以实施一个或多个上述实施例的功能。计算机可包括一个或多个处理器(例如中央处理单元(CPU)、微处理单元(MPU)),并且可包括单独计算机或单独处理器的网络以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质提供给计算机。存储介质可以包括例如以下中的一个或多个:硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(例如压缩磁盘(CD)、数字多功能磁盘(DVD)或蓝光光盘(BD)TM)、闪存装置、存储卡等。
其他实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然已经参照示例性实施例描述了本发明,但是要理解本发明不限于公开的示例性实施例。以下权利要求的范围应基于最宽的解释,从而涵盖所有此类修改和等同的结构和功能。

Claims (19)

1.一种机器人的控制器,该机器人包括:机器人臂;操纵部,其被操作者操纵;第一传感器,其配置成获取作用在机器人臂的预定部分上的力的第一信息;第二传感器,其配置成获取作用在操纵部上的力的第二信息;以及第三传感器,其配置成获取机器人臂的所述预定部分的位置和取向的第三信息,所述控制器包括处理部,所述处理部执行:
第一获取处理,在操作者操纵操纵部时在预定阶段期间获取第一信息、第二信息和第三信息;
第二获取处理,在操作者操纵操纵部时在预定阶段期间基于第一信息获取与由机器人臂的所述预定部分与周边对象的接触产生的接触力相关的信息;
设定处理,基于与接触力相关的信息在预定阶段期间设定第一区段和第二区段,第一区段是用于基于第三信息执行机器人臂的位置控制的区段,第二区段是用于基于第一信息和第二信息执行机器人臂的力控制的区段;
第三获取处理,基于第一信息和第二信息在预定阶段期间获取通过操作者的操作赋予操纵部的操作力的信息;以及
第四获取处理,基于操作力的信息在第二区段中获取执行机器人臂的力控制的力控制数据,
其中在第一区段中不进行力控制。
2.根据权利要求1所述的控制器,其中,所述处理部还执行:
第五获取处理,基于第三信息在第一区段中获取执行机器人臂的位置控制的位置控制数据。
3.根据权利要求2所述的控制器,其中,所述处理部基于位置和取向数据确定在教示机器人臂时是否已经进行重试操作,在已经进行重试操作的情况下所述处理部更新位置控制数据和力控制数据从而不会复制失败操作。
4.根据权利要求1所述的控制器,其中,第一传感器是设置在由机器人臂支撑的末端执行器和操纵部之间的力传感器,第二传感器是设置在机器人臂和操纵部之间的力传感器。
5.根据权利要求1所述的控制器,其中,所述处理部配置成将与接触力相关的信息被确定为零的区段设定为第一区段,并且
所述处理部配置成将与接触力相关的信息被确定为非零的区段设定为第二区段。
6.根据权利要求1所述的控制器,其中,所述处理部配置成通过分析第二区段中的操作力的信息频率而将第二区段分成多个区段,并且
其中,所述处理部配置成将通过频率分析获取的频率的改变点位置限定为将第二区段分成多个区段的位置。
7.根据权利要求1至6中任一项所述的控制器,还包括输出部,该输出部输出与第一区段和第二区段对应的显示信息,
其中输出部将显示信息显示为时间序列信息,使得第一区段和第二区段在显示区域上可识别。
8.根据权利要求1所述的控制器,其中,所述处理部配置成基于第二区段中操作力的信息改变大小而将第二区段分成多个区段,并且
其中,所述处理部配置成在连续区段中校正操作力的信息,在所述连续区段处改变大小低于阈值的多个区段持续预定的数量。
9.根据权利要求7所述的控制器,还包括:
操作部,其使得能够通过接收来自使用者的操作而进行改变显示在显示区域上的显示信息的显示操作;和
更新部,其基于改变操作更新第一区段和第二区段,
其中操作部能够独立地选择第一区段和第二区段,并且能够对每个选定的区段执行改变操作。
10.根据权利要求1所述的控制器,其中,所述预定阶段是机器人臂的取向改变并且机器人臂的所述预定部分被操纵操纵部的操作者移动的阶段。
11.根据权利要求9所述的控制器,其中,操作部能够独立地选择从第一区段再分的第一短区段和从第二区段再分的第二短区段,并且能够对每个选定的阶段执行改变操作。
12.根据权利要求1所述的控制器,其中,所述处理部配置成不校正在第二区段中操作力的信息方向反转并且反转连续的区段中操作力的信息、在第二区段中操作力的正负反转的区段中操作力的信息、以及在操作力的正负不反转的区段中操作力的信息,并且在区段端点处操作力的信息处于第二区段中的预定范围内。
13.根据权利要求1所述的控制器,其中,所述处理部配置成校正在操作力的正负不反转的区段中操作力的信息,并且在区段端点处操作力的信息处于第二区段中的预定范围外。
14.根据权利要求1所述的控制器,其中,所述处理部配置成将第二区段中操作力信息连续波动并且改变次数是预定数量以下的区段确定为探测操作的区段。
15.根据权利要求2所述的控制器,
其中,所述处理部配置成基于位置控制数据和第三信息执行第一区段中机器人臂的位置控制,并且
其中,所述处理部配置成基于位置控制数据、力控制数据、第一信息和/或第二信息执行第二区段中机器人臂的力控制。
16.一种机器人系统,包括:
机器人,该机器人包括:机器人臂;操纵部,其被操作者操纵;第一传感器,其配置成获取作用在机器人臂的预定部分上的力的第一信息;第二传感器,其配置成获取作用在操纵部上的力的第二信息;第三传感器,其配置成获取机器人臂的所述预定部分的位置和取向的第三信息;以及包括处理部的控制器,
所述处理部执行:
第一获取处理,在操作者操纵操纵部时在预定阶段期间获取第一信息、第二信息和第三信息;
第二获取处理,在操作者操纵操纵部时在预定阶段期间基于第一信息获取与由所述预定部分与周边对象的接触产生的接触力相关的信息;
设定处理,基于与接触力相关的信息在预定阶段期间设定第一区段和第二区段,第一区段是用于基于第三信息执行机器人臂的位置控制的区段,第二区段是用于基于第一信息和第二信息执行机器人臂的力控制的区段;
第三获取处理,基于第一信息和第二信息在预定阶段期间获取通过操作者的操作赋予操纵部的操作力的信息;以及
第四获取处理,基于操作力的信息在第二区段中获取执行机器人臂的力控制的力控制数据,
其中在第一区段中不进行力控制。
17.一种控制机器人的控制器的控制方法,该机器人包括机器人臂和由操作者操纵的操纵部,该控制方法包括:
在操作者操纵操纵部时在预定阶段期间通过使用第一传感器获取作用在机器人臂的预定部分上的力的第一信息,通过使用第二传感器获取作用在所述操纵部上的力的第二信息,并且通过使用第三传感器获取机器人臂的所述预定部分的位置或取向的第三信息;
在操作者操纵操纵部时在预定阶段期间基于第一信息获取与由机器人臂的所述预定部分与周边对象的接触产生的接触力相关的信息;
基于与接触力相关的信息在预定阶段期间设定第一区段和第二区段,第一区段是用于基于第三信息执行机器人臂的位置控制的区段,第二区段是用于基于第一信息和第二信息执行机器人臂的力控制的区段;
第三获取处理,基于第一信息和第二信息在预定阶段期间获取通过操作者的操作赋予操纵部的操作力的信息;以及
第四获取处理,基于操作力的信息在第二区段中获取执行机器人臂的力控制的力控制数据,
其中在第一区段中不进行力控制。
18.一种非易失性计算机可读介质,其存储使得计算机执行权利要求17所述的控制方法的程序。
19.一种产品制造方法,其通过操作使用权利要求17所述的控制方法控制的机器人组装工件而制造产品。
CN201910111920.3A 2018-02-13 2019-02-13 机器人的控制器和控制方法 Active CN110154018B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310781806.8A CN116604589A (zh) 2018-02-13 2019-02-13 机器人的控制器和控制方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018023368 2018-02-13
JP2018-023368 2018-02-13
JP2018-227346 2018-12-04
JP2018227346A JP7483321B2 (ja) 2018-02-13 2018-12-04 制御装置、制御方法、ロボットシステム、物品の製造方法、表示装置、プログラム及び記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310781806.8A Division CN116604589A (zh) 2018-02-13 2019-02-13 机器人的控制器和控制方法

Publications (2)

Publication Number Publication Date
CN110154018A CN110154018A (zh) 2019-08-23
CN110154018B true CN110154018B (zh) 2023-07-21

Family

ID=67540708

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910111920.3A Active CN110154018B (zh) 2018-02-13 2019-02-13 机器人的控制器和控制方法
CN202310781806.8A Pending CN116604589A (zh) 2018-02-13 2019-02-13 机器人的控制器和控制方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310781806.8A Pending CN116604589A (zh) 2018-02-13 2019-02-13 机器人的控制器和控制方法

Country Status (3)

Country Link
US (2) US11872698B2 (zh)
JP (1) JP2024028392A (zh)
CN (2) CN110154018B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6484265B2 (ja) * 2017-02-15 2019-03-13 ファナック株式会社 学習制御機能を備えたロボットシステム及び学習制御方法
JP7427358B2 (ja) 2017-07-20 2024-02-05 キヤノン株式会社 ロボットシステム、物品の製造方法、制御方法、制御プログラム、および記録媒体
JP6969447B2 (ja) * 2018-03-05 2021-11-24 日本電産株式会社 ロボット制御装置、記録の作成方法およびプログラム
DE102019107975B3 (de) * 2019-03-28 2020-08-13 Franka Emika Gmbh Einlernen einer Haltekraft für einen Gegenstand in einem robotischen Greifer
JP7375345B2 (ja) * 2019-06-27 2023-11-08 セイコーエプソン株式会社 ロボット
JP7451940B2 (ja) * 2019-10-31 2024-03-19 セイコーエプソン株式会社 制御方法および算出装置
WO2021147034A1 (en) * 2020-01-22 2021-07-29 Abb Schweiz Ag System and method for controlling the robot, electronic device and computer readable medium
KR102386009B1 (ko) * 2020-07-30 2022-04-13 네이버랩스 주식회사 로봇 작업의 학습 방법 및 로봇 시스템
US20220134557A1 (en) * 2020-10-30 2022-05-05 Sintokogio, Ltd. Control device, robot control system, program, and control method
US11673264B2 (en) * 2021-03-25 2023-06-13 Mitsubishi Electric Research Laboratories, Inc. System and method for robotic assembly based on adaptive compliance
US12032352B2 (en) * 2021-06-14 2024-07-09 Mantis Robotics, Inc. Servo joint safety position monitoring apparatus and method
CN113771044B (zh) * 2021-10-09 2022-11-11 北京卫星环境工程研究所 一种机器人末端负载动态受力感知方法
WO2023245600A1 (en) * 2022-06-24 2023-12-28 Abb Schweiz Ag Method, device and computer readable media for use with robot

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0259287A (ja) 1988-08-26 1990-02-28 Nippon Telegr & Teleph Corp <Ntt> マニピュレータの制御方法
JP3235535B2 (ja) * 1997-09-26 2001-12-04 松下電器産業株式会社 ロボット制御装置とその制御方法
JPH11231925A (ja) 1998-02-10 1999-08-27 Yaskawa Electric Corp ダイレクトティーチング用ロボットの手先
JP2003136450A (ja) * 2001-10-26 2003-05-14 Communication Research Laboratory 聴覚情報提示によるロボットアームの遠隔操作システム
WO2008004487A1 (fr) 2006-07-04 2008-01-10 Panasonic Corporation Appareil et procédé de commande de bras robotisé, robot et programme de commande de bras robotisé
JP2008134903A (ja) 2006-11-29 2008-06-12 Yaskawa Electric Corp ロボットの教示再生装置
JP5338297B2 (ja) 2008-12-19 2013-11-13 株式会社安川電機 ロボットの制御装置
US20170028557A1 (en) * 2015-07-28 2017-02-02 Comprehensive Engineering Solutions, Inc. Robotic navigation system and method
WO2013035244A1 (ja) 2011-09-06 2013-03-14 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、制御プログラム、並びに、集積電子回路
CN104552291B (zh) * 2013-10-10 2018-05-18 精工爱普生株式会社 机器人控制装置、机器人系统、机器人以及机器人控制方法
JP6100727B2 (ja) 2014-04-09 2017-03-22 ファナック株式会社 リードスルー機能を有する人協調型産業用ロボット
JP6379874B2 (ja) 2014-08-29 2018-08-29 株式会社安川電機 ティーチングシステム、ロボットシステムおよびティーチング方法
JP6052918B2 (ja) 2015-02-27 2016-12-27 株式会社神戸製鋼所 設定支援装置、設定支援方法及びプログラム
JP6648469B2 (ja) 2015-10-07 2020-02-14 セイコーエプソン株式会社 ロボットシステム、及びロボット制御装置
JP2017124455A (ja) 2016-01-12 2017-07-20 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP6434446B2 (ja) * 2016-04-28 2018-12-05 ファナック株式会社 加工システム

Also Published As

Publication number Publication date
CN110154018A (zh) 2019-08-23
US11872698B2 (en) 2024-01-16
JP2024028392A (ja) 2024-03-04
CN116604589A (zh) 2023-08-18
US20190248006A1 (en) 2019-08-15
US20240042603A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
CN110154018B (zh) 机器人的控制器和控制方法
JP7483321B2 (ja) 制御装置、制御方法、ロボットシステム、物品の製造方法、表示装置、プログラム及び記録媒体
JP5545534B2 (ja) ロボットの教示再生装置、教示再生方法、及び教示データ作成方法
US11685042B2 (en) Working robot and control method for working robot
JP5176790B2 (ja) ロボットの教示再生装置および教示再生方法
JP5338297B2 (ja) ロボットの制御装置
CN108235696B (zh) 机器人控制方法和设备
JP5311294B2 (ja) ロボットの接触位置検出装置
US7149602B2 (en) Correction data checking system for rebots
KR20180059888A (ko) 로봇교시방법 및 로봇 암 제어장치
CN103909516A (zh) 机器人示教系统、机器人示教辅助装置和机器人示教方法
JP2006110702A (ja) 学習制御機能を備えたロボット及びロボットの制御方法
JP2018167334A (ja) 教示装置および教示方法
US20190022859A1 (en) Robot apparatus, control method for the robot apparatus, assembly method using the robot apparatus, and recording medium
JP2012020348A (ja) ロボットによるバリ除去方法
JP2007249524A (ja) ロボット制御装置
JP3287151B2 (ja) 組立用ロボットの力制御装置
JPH08281584A (ja) ジョイスティック信号処理装置
JP2709001B2 (ja) 力制御ロボットにおける作業対象物の位置検出装置
JP2577003B2 (ja) ロボットの制御方法
JP6814441B2 (ja) 駆動機械の学習制御装置及び学習制御方法
WO2023145309A1 (ja) 動作経路生成装置、方法、及びプログラム
JP3722549B2 (ja) 座標測定機のプローブ駆動制御方法
JP7335096B2 (ja) ロボットシステムの障害物探索装置
US20240109188A1 (en) Operation apparatus, robot system, manufacturing method, control method, and recording medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant