KR20190112644A - 로봇 제어 장치, 로봇 제어 방법, 프로그램 - Google Patents

로봇 제어 장치, 로봇 제어 방법, 프로그램 Download PDF

Info

Publication number
KR20190112644A
KR20190112644A KR1020190026172A KR20190026172A KR20190112644A KR 20190112644 A KR20190112644 A KR 20190112644A KR 1020190026172 A KR1020190026172 A KR 1020190026172A KR 20190026172 A KR20190026172 A KR 20190026172A KR 20190112644 A KR20190112644 A KR 20190112644A
Authority
KR
South Korea
Prior art keywords
section
segment
angular velocity
point
acceleration
Prior art date
Application number
KR1020190026172A
Other languages
English (en)
Other versions
KR102297735B1 (ko
Inventor
낫탄 도안
마사히로 요시다
하루히로 츠네타
Original Assignee
니혼 덴산 가부시키가이샤
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 니혼 덴산 가부시키가이샤 filed Critical 니혼 덴산 가부시키가이샤
Publication of KR20190112644A publication Critical patent/KR20190112644A/ko
Application granted granted Critical
Publication of KR102297735B1 publication Critical patent/KR102297735B1/ko

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/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
    • B25J17/00Joints
    • B25J17/02Wrist joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • B25J9/12Programme-controlled manipulators characterised by positioning means for manipulator elements electric
    • 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/1651Programme controls characterised by the control loop acceleration, rate control
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43033Sinusoidal acceleration profile

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

본 발명의 일실시형태는 시점과 종점을 연결하는 직선 중 소정 각속도에 도달하기까지의 가속 구간, 소정 각속도를 유지하는 등속 구간, 및 소정 각속도로부터 감속하는 감속 구간을 설정하는 구간 설정부를 구비한다. 가속 구간, 등속 구간, 및 감속 구간을 각각 복수의 세그먼트로 분할하는 세그먼트 설정부로서, 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트의 거리를 설정하는 세그먼트 설정부를 구비한다. 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 각도 변화량에 의거하여 각 세그먼트에 있어서 PTP 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 각속도 설정부를 구비한다.

Description

로봇 제어 장치, 로봇 제어 방법, 프로그램{ROBOT CONTROL APPARATUS, ROBOT CONTROL METHOD, AND PROGRAM}
본 발명은 로봇 제어 장치, 로봇 제어 방법, 프로그램에 관한 것이다.
종래부터 로봇의 암 선단(손끝)의 위치를 시점(교시점)으로부터 종점(교시점)까지 이동시킬 경우의 경로 제어 방식으로서 PTP(Point to Point) 제어가 알려져 있다. 또한, 로봇의 암의 선단의 위치를 직선 경로로 이동시키는 직선 보간 제어가 알려져 있다(특허문헌 1, 2).
특허문헌 1에는 로봇의 현재 위치 정보를 취득하는 수단과, 로봇의 관절의 정격 최고 속도 정보를 취득하는 수단과, 상기 로봇 현재 위치 정보와 상기 관절 정격 최고 속도에 의거하여 로봇 선단의 직선 보간 동작에 있어서 취할 수 있는 허용 한계 속도를 산출하는 수단을 구비하는 로봇의 속도 연산 장치가 기재되어 있다.
특허문헌 2에는 서로 전후하는 2개의 이동 구간의 보간 종별이 관절 보간 동작으로부터 직선 보간 동작으로 변해가는지, 직선 보간 동작으로부터 관절 보간 동작으로 변해가는지를 판별하고, 그 2개의 이동 구간의 연결점 또는 그 근방을 통과시킬 때에 속도의 결합 처리가 가능한지의 여부를 판정하여 속도의 결합 처리가 가능하다고 판정되었을 때 이종 보간 동작 간의 속도를 중합하는 것 같은 거동을 시키기 위한 보간점을 관절 변수에 의해 결정하는 것이 기재되어 있다.
일본 특허공개 1997-265313호 공보 일본 특허공개 2004-252814호 공보
로봇의 암 선단을 시점으로부터 종점까지 이동시킬 때에는 PTP 제어를 적용함으로써 이동 시간이 최속으로 되지만, PTP 제어에서는 이동 경로가 보증되지 않기 때문에 로봇의 작업 스페이스에 있어서 다른 물체나 벽 등에 충돌할 가능성이 있다.
직선 보간 제어에서는 로봇의 암 선단을 직선 경로로 이동시킬 수 있고, 시점으로부터 종점까지의 경로를 보증할 수 있지만, 종래는 고속으로 이동시킬 수 없었다.
그래서 본 발명은 로봇을 직선 이동시킬 때에 종래보다 고속으로 이동시키는 것을 목적으로 한다.
본원의 예시적인 제 1 발명은 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 로봇 제어 장치로서, 상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하는 구간 설정부를 구비한다. 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하는 세그먼트 설정부로서, 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하는 세그먼트 설정부를 구비한다. 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 각속도 설정부를 구비한다. 상기 세그먼트 설정부는 상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하고, 상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정한다.
(발명의 효과)
본 발명에 의하면 로봇을 직선 이동시킬 때에 종래보다 고속으로 이동시킬 수 있다.
도 1은 제 1 실시형태의 로봇 시스템의 개략 구성을 나타내는 도면이다.
도 2는 제 1 실시형태의 로봇 시스템의 내부 구성을 나타내는 도면이다.
도 3은 제 1 실시형태의 로봇 제어 장치의 기능 블록도이다.
도 4는 PTP 제어로 이동했을 경우에 시간의 경과에 대한 주관절의 각속도의 변화를 나타내는 도면이다.
도 5는 가속 구간 및 감속 구간에 대하여 설명하는 도면이다.
도 6은 PTP 제어에 의한 시간의 경과에 대한 각속도 변화를 나타내는 도면이다.
도 7은 가속 구간의 산출 방법에 대해서 설명하는 도면이다.
도 8은 제 1 실시형태의 로봇 제어 방법에 의한 시간의 경과에 대한 각속도 변화를 나타내는 도면이다.
도 9는 제 1 실시형태의 로봇 제어 장치에 의해 실행되는 플로우 차트이다.
도 10은 PTP 제어와 제 1 실시형태의 제어에 있어서의 시간의 경과에 대한 제어 펄스의 수의 변화를 설명하는 도면이다.
도 11은 제 2 실시형태의 로봇 제어 방법에 있어서 세그먼트 조정 전후의 시간의 경과에 대한 각속도 변화를 나타내는 도면이다.
도 12는 제 1 실시형태의 로봇 제어 장치에 의해 실행되는 플로우 차트이다.
이하, 본 발명의 실시형태에 의한 로봇 제어 장치를 포함하는 로봇 시스템에 대해서 설명한다.
각 실시형태에 의한 로봇 시스템에서는 로봇의 기준점으로서 로봇의 암 선단, 즉 엔드 이펙터의 부착의 기준이 되는 위치를 시점으로부터 종점까지 이동시킬 때에 직선 보간 제어로 이동시키도록 제어된다. 직선 보간 제어에서는 시점과 종점을 연결하는 직선이 복수의 세그먼트로 분할되고, 각 세그먼트에서는 로봇을 PTP 제어로 동작시킨다. 이때 각 세그먼트에서의 PTP 동작은 일정 각속도로 하여 각 세그먼트의 각속도를 최적으로 결정함으로써 고속인 의사(疑似) 직선 동작을 실현한다.
이하의 설명에 있어서 로봇의 기준점이란 로봇의 어프로치점, 목표점, 디파쳐점 등의 로봇의 교시점의 기준이 되는 로봇의 위치를 의미하고, 예를 들면 로봇의 작용점(TCP: Tool Center Point)이다.
이하의 설명에 있어서 로봇을 2점 간에서 이동시키는 것은 로봇의 기준점을 상기 2점 간에서 이동시키는 것을 의미한다.
(1) 제 1 실시형태
(1-1) 로봇 시스템(1)의 구성
우선, 제 1 실시형태의 로봇 시스템(1)의 구성에 대해서 도 1 및 도 2를 참조하여 설명한다. 도 1은 본 실시형태의 로봇 시스템(1)의 개략 구성을 나타내는 도면이다. 도 2는 본 실시형태 로봇 시스템(1)의 내부 구성을 나타내는 도면이다.
도 1에 나타내는 바와 같이 로봇 시스템(1)은 정보 처리 장치(2), 로봇 제어 장치(3), 및 로봇(R)을 구비한다. 정보 처리 장치(2)와 로봇 제어 장치(3)는, 예를 들면 이더넷(등록 상표) 케이블(EC)에 의해 통신 가능하게 접속된다.
정보 처리 장치(2)는, 예를 들면 공장의 라인에 설치된 로봇(R)에 대하여 동작을 교시하기 위한 장치이다. 정보 처리 장치(2)는 오퍼레이터에 의한 티칭을 행하기 위해 설치되어 있으며, 로봇(R)이 설치되는 공장 등으로부터 떨어진 위치(예를 들면, 공장으로부터 떨어진 오퍼레이터의 작업 장소)에 배치되어 있어도 좋다.
정보 처리 장치(2)는, 예를 들면 퍼스널 컴퓨터 장치, 태블릿형 컴퓨터 장치이며, 오퍼레이터에 의한 오프라인 티칭 또는 온라인 티칭을 행하기 위해 설치되어 있다. 소정 교시 프로그램을 실행함으로써 로봇(R)의 교시점이나 동작 파라미터가 결정된다.
로봇 제어 장치(3)는 정보 처리 장치(2)로부터 송신되는 로봇(R)의 교시점이나 동작 파라미터를 바탕으로 로봇 프로그램을 실행함으로써 로봇(R)을 제어한다. 로봇 프로그램의 실행 결과로서 로봇 제어 장치(3)는 로봇(R)의 각 관절을 동작시키는 복수의 모터에 대한 제어 펄스를 로봇(R)에 대하여 송출한다.
로봇(R)은 복수의 관절을 포함하는 다관절 로봇이다. 로봇(R)은 로봇 제어 장치(3)로부터 수신하는 제어 펄스에 의거하여 각 관절의 모터를 구동하고, 정보 처리 장치(2)에 의해 결정된 교시점이나 동작 파라미터에 따른 동작을 행한다.
도 2를 참조하면 정보 처리 장치(2)는 제어부(21)와, 스토리지(22)와, 입력 장치(23)와, 표시 장치(24)와, 통신 인터페이스부(25)를 구비한다.
제어부(21)는 CPU(Central Processing Unit), ROM(Read Only Memory), 및 RAM(Random Access Memory)을 포함한다. ROM에는 교시 소프트웨어가 기억되어 있다. CPU는 ROM에 기억되는 교시 소프트웨어를 RAM에 전개해서 실행한다. 오퍼레이터에 의해 교시 소프트웨어를 통해 설정된 로봇(R)의 교시점이나 동작 파라미터는 로봇 프로그램에 장착된다.
스토리지(22)는 HDD(Hard Disk Drive) 또는 SSD(Solid State Drive) 등의 대용량 기억 장치이며, 제어부(21)의 CPU에 의해 순차 액세스 가능하게 구성된다. 스토리지(22)에는 로봇 프로그램이 저장된다.
입력 장치(23)는 오퍼레이터에 의한 조작 입력을 접수하기 위한 디바이스이며, 포인팅 디바이스를 포함한다.
표시 장치(24)는 교시 소프트웨어의 실행 결과를 표시하기 위한 디바이스이며, 표시 구동 회로 및 표시 패널을 포함한다.
통신 인터페이스부(25)는 로봇 제어 장치(3)와의 사이에서 이더넷 통신을 행하기 위한 통신 회로를 포함한다. 제어부(21)는 오퍼레이터에 의한 로봇의 시뮬레이션의 실행 요구 또는 로봇의 실기를 동작시키는 요구에 따라 로봇(R)의 교시점이나 동작 파라미터를 포함하는 로봇 프로그램을 통신 인터페이스부(25)를 통해 로봇 제어 장치(3)에 송신한다.
도 2에 나타내는 바와 같이 로봇 제어 장치(3)는 제어부(31)와, 스토리지(32)와, 통신 인터페이스부(33)를 구비한다.
제어부(31)는 CPU, ROM, 및 RAM을 포함한다. CPU는 정보 처리 장치(2)로부터 수신해서 스토리지(32)에 기억되는 로봇 프로그램을 RAM에 전개해서 실행한다. 제어부(31)의 CPU가 로봇 프로그램을 실행함으로써 후술하는 각 기능이 실현된다.
제어부(31)는 소정 시간마다(예를 들면, 1㎳마다) 로봇(R)의 각 관절의 모터를 동작시키기 위한 제어 펄스를 생성하여 로봇(R)에 공급한다.
스토리지(32)는 HDD 또는 SSD 등의 대용량 기억 장치이며, 제어부(31)의 CPU에 의해 순차 액세스 가능하게 구성된다. 스토리지(32)에는 정보 처리 장치(2)로부터 수신하는 로봇 프로그램이 저장됨과 아울러, 로봇 프로그램의 실행 기록인 실행 로그 데이터가 저장된다.
통신 인터페이스부(33)는 정보 처리 장치(2)와의 사이에서 이더넷 통신을 행하기 위한 통신 회로를 포함한다.
도 2에 나타내는 바와 같이 로봇(R)은 모터 구동 회로(101) 및 모터(102)를 포함한다. 모터 구동 회로(101)는 로봇 제어 장치(3)로부터 공급되는 제어 펄스에 의거하여 모터(102)를 구동하는데에 필요한 구동 전압을 생성한다. 모터(102)는 로봇(R)을 동작시키는 관절의 수만큼 설치된다.
이하에서는 로봇(R)이 6축의 수직 다관절 로봇일 경우에 대해서 설명한다. 이 경우, 로봇(R)에는 6개의 관절 각각을 구동하는 모터(102)가 설치되고, 각 모터(102)에 대하여 모터 구동 회로(101)로부터 구동 전압이 공급된다.
(1-2) 로봇 제어 장치(3)의 기능
이어서, 도 3~도 8을 참조하여 로봇 제어 장치(3)의 제어부(31)가 로봇 프로그램을 실행하여 실현되는 기능에 대해서 설명한다. 도 3은 본 실시형태의 로봇 제어 장치(3)의 기능 블록도이다.
도 3에 나타내는 바와 같이 로봇 제어 장치(3)에 의해 실현되는 기능에는 구간 설정부(311), 세그먼트 설정부(312), 각속도 설정부(313), 펄스 수 설정부(314), 및 펄스 생성부(315)가 있다. 이하, 각 부가 구비하는 기능에 대해서 순서대로 설명한다.
이하에서는 로봇의 기준점이 시점(A)으로부터 종점(B)까지 의사적으로 직선 이동시킬 경우에 대해서 설명한다. 시점(A), 종점(B)은 이하에 있어서 적당히 점(A), 점(B)이라고 한다.
상술한 바와 같이 로봇 제어 장치(3)가 정보 처리 장치(2)로부터 수신하는 로봇 프로그램에는 로봇(R)의 교시점이나 동작 파라미터가 설정되어 있다. 본 실시형태에서는 로봇 프로그램에 있어서 교시점으로서 시점(A) 및 종점(B)이 설정되어 시점(A)으로부터 종점(B)까지의 이동에 있어서 동작 파라미터로서 가속 시간, 최대 각속도, 감속 시간이 설정되어 있다.
이하의 설명에서는 동작 파라미터로서 설정되어 있는 가속 시간, 최대 각속도, 및 감속 시간을 각각 「가속 시간 요구값」, 「최대 각속도 요구값」, 및 「감속 시간 요구값」이라고 한다. 가속 시간 요구값은 로봇의 기준점이 시점(A)으로부터 가속해서 최대 각속도(상기 최대 각속도 요구값; 소정 각속도의 일례)에 도달하기까지의 가속 시간의 요구값이다. 감속 시간 요구값은 로봇의 기준점이 최대 각속도로부터 감속해서 종점(B)에 도달하기까지의 감속 시간의 요구값이다.
이하의 설명에 있어서 로봇의 6개의 관절 중 각 관절의 중심축 주위의 각도 변화량이 최대가 되는 관절을 「주관절」이라고 한다. 6개의 관절 중 주관절이 되는 관절은 점(A)으로부터 점(B)까지의 직선 이동에 있어서 주목하는 시간 또는 범위에 따라 상이한 경우가 있다.
(1-2-1) 구간 설정
구간 설정부(311)는 시점(A)과 종점(B)을 연결하는 직선 중 로봇의 기준점이 시점(A)으로부터 가속해서 최대 각속도에 도달하기까지의 가속 구간, 로봇의 기준점이 최대 각속도를 유지하는 등속 구간, 및 로봇의 기준점이 최대 각속도로부터 감속해서 종점(B)에 도달하기까지의 감속 구간을 설정하는 기능을 구비한다.
본 실시형태의 일례에서는 구간 설정부(311)는 상술한 가속 시간 요구값 및 감속 시간 요구값에 의거하여 가속 구간, 등속 구간, 및 감속 구간을 설정한다. 이하, 도 4를 참조하여 각 구간의 설정 방법에 대해서 설명한다.
본 실시형태에서는 로봇을 직선(AB) 사이에 있어서 고속으로 이동시키는 것을 목적으로 하여 만약 로봇이 AB 사이를 PTP 제어로 이동했을 경우의 시간의 경과에 대한 주관절의 속도 변화를 모의한다.
도 4는 만약 AB 사이를 PTP 제어로 이동했을 경우에 AB 사이에 있어서의 시간의 경과에 대한 주관절의 각속도의 변화를 나타내는 도면이다. 도 4에 있어서 로봇이 점(A)을 이동 개시하고 나서 최대 각속도 요구값(Vm)에 도달하기까지의 시간이 가속 시간 요구값(t1)에 상당하고, 로봇이 시각(t2)으로부터 감속을 개시하여 시각(tf)에 있어서 점(B)에 도달하기까지의 시간(tf-t2)이 감속 시간 요구값에 상당한다.
도 4에 있어서 tf는 PTP 제어로 이동했을 경우의 총 이동 시간을 의미한다.
도 5에 로봇이 AB 사이를 만약 PTP 제어에 의해 이동할 경우의 경로(Tptp)와, 로봇이 AB 사이를 본 실시형태의 직선 보간 제어로 이동할 경우의 경로(Tsln)를 나타낸다.
도 5에 나타내는 바와 같이 로봇이 AB 사이를 PTP 제어에 의해 이동할 경우의 경로(Tptp)는 직선형상이 되지 않고 만곡한 경로가 된다. 경로(Tptp)상에 있어서 점(A)으로부터 점(p1)까지의 구간은 PTP 제어에 있어서의 가속 구간이며, 점(p1)으로부터 점(p2)까지의 구간은 PTP 제어에 있어서의 등속 구간이며, 경로(Tptp)상에 있어서 점(p2)으로부터 점(B)까지의 구간은 PTP 제어에 있어서의 감속 구간이다.
점(p1, p2)은 도 4의 시각(t1, t2)에 대응하고 있다. 즉, PTP 제어에서는 점(A)으로부터 점(p1)에 도달하기까지의 시간이 가속 시간 요구값(t1)이 되고, 점(p2)으로부터 점(B)에 도달하기까지의 시간이 감속 시간 요구값(tf-t2)이 된다.
직선 보간 제어에 있어서도 점(A)으로부터 점(B)까지의 직선에 있어서의 가속 구간 및 감속 구간은 가속 시간 요구값 및 감속 시간 요구값을 충족하도록 설정할 필요가 있다. 그래서 점(A)으로부터 점(B)까지를 만약 PTP 제어로 이동했을 경우의 가속 종료 위치인 점(p1)과 감속 개시 위치인 점(p2)을 직선(AB)상에 투영함으로써 직선 보간 제어에 있어서의 직선상의 가속 구간, 감속 구간을 설정한다. 도 4에 있어서 PTP 제어의 경로(Tptp)상의 점(p1, p2)을 직선(AB)상에 투영한 점이 각각 점(p1s, p2s)이다.
본 실시형태의 직선 보간 제어에 의한 경로(Tsln)에 있어서 점(A)으로부터 점(p1s)까지의 구간이 가속 구간으로서 설정되고, 점(p2s)으로부터 점(B)까지의 구간이 감속 구간으로서 설정된다.
여기에서 가속 구간의 거리(acc_dst)의 직선(AB) 사이의 거리에 대한 비율은 PTP 제어에 의한 경로(Tptp)상의 가속 구간의 거리(점(A)과 점(p1)의 거리)의 경로(Tptp)의 경로 길이에 대한 비율과 동일해지도록 설정된다. 마찬가지로 감속 구간의 거리(dacc_dst)의 직선(AB) 사이의 거리에 대한 비율은 PTP 제어에 의한 경로(Tptp)상의 감속 구간의 거리(점(p2)과 점(B)의 거리)의 경로(Tptp)의 경로 길이에 대한 비율과 동일해지도록 설정된다.
예를 들면, 경로(Tsln)에 있어서의 가속 구간의 직선(AB) 사이의 거리(Tsln)에 대한 비율을 가속 구간 비율(acc_ratio)로 하면 가속 구간 비율(acc_ratio)은 식(1)과 같이 해서 산출된다.
또한, 식(1)에 있어서,
t1: 가속 시간 요구값(㎳ec)
Vm: 최대 각속도 요구값(radian)
maxdst: 주관절의 각도 변화량이다. 주관절의 각도 변화량(maxdst)은 도 4에 나타내어지는 사다리꼴의 면적에 상당한다.
Figure pat00001
직선(AB) 사이에서 각 관절의 각도는 선형으로 변화되기 때문에 점(p1)에 있어서의 로봇의 각 관절의 각도(p1[i])(i: 관절 번호 1~6)는 가속 구간 비율(acc_ratio)을 사용하여 이하 식(2)에 따라 구해진다.
또한, 식(2)에 있어서,
A[i]: 점(A)에 있어서의 관절 i의 각도(radian)
B[i]: 점(B)에 있어서의 관절 i의 각도(radian)이다.
Figure pat00002
식(2)에 의해 각 관절의 점(p1)에 있어서의 각도를 알 수 있기 때문에 순운동학에 의해 점(p1)의 직교 좌표를 산출할 수 있다. 또한, 직선(AB)상의 가속 구간의 거리(acc_dst)(도 5 참조)는 점(A), 점(p1), 및 점(B)의 직교 좌표의 값으로부터 이하와 같이 해서 산출된다.
도 6에 나타내는 바와 같이 점(p1)과 점(p1s)의 거리를 h1이라고 하면 h1은 하기 식(3)에 따라 점(A)으로부터 점(p1)을 향하는 벡터(이하의 식(3)의 굵은 글씨의 p1)와, 점(A)으로부터 점(B)을 향하는 벡터(식(3)의 굵은 글씨의 AB)의 외적의 크기를 직선(AB) 사이의 거리(L)에 의해 제산함으로써 산출된다.
또한, 점(A)으로부터 점(p1)을 향하는 벡터의 크기를 n1이라고 하면 식(4)에 따라 가속 구간의 거리(acc_dst)가 산출된다.
Figure pat00003
Figure pat00004
이상, 가속 구간의 거리(acc_dst)의 산출 방법에 대해서 설명했지만, 감속 구간의 거리(dacc_dst)(도 5 참조)에 대해서도 점(p2)에 의거하여 마찬가지로 해서 산출할 수 있다.
또한, 직선 보간 동작에 의한 등속 구간의 거리는 직선(AB) 사이의 거리(L)로부터 가속 구간의 거리(acc_dst)와 감속 구간의 거리(dacc_dst)를 감산함으로써 얻어진다. 즉, 등속 구간의 거리(cst_dst)는 이하의 식(5)으로부터 산출된다.
Figure pat00005
(1-2-2) 세그먼트 설정
도 3에 있어서 세그먼트 설정부(312)는 구간 설정부(311)에 의해 설정된 가속 구간, 등속 구간, 및 감속 구간을 각각 복수의 세그먼트로 분할하는 기능을 구비한다. 이때 세그먼트 설정부(312)는 로봇의 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트의 거리를 설정한다.
이하, 도 7을 참조하여 본 실시형태의 직선 보간 제어에 있어서의 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트의 거리의 설정 방법에 대하여 설명한다.
각 세그먼트의 거리를 설정하는 것에 있어서는 로봇의 기준점의 궤도의 이상적인 직선과의 오차와, 동작 시간을 고려해서 결정하는 것이 바람직하다. 즉, 세그먼트의 거리가 클 경우에는 각 세그먼트에 있어서 PTP 제어가 이루어지는 점에서 각 세그먼트에 있어서의 로봇의 기준점의 궤적이 이상적인 직선으로부터 괴리하여 오차가 커지기 쉽다. 한편, 로봇에 대한 제어가 기준 시간(예를 들면, 1㎳)마다 행해지기 때문에 세그먼트의 거리를 작게 했을 경우에는 각 세그먼트에서 반올림 오차가 발생하고, 그 반올림 오차가 세그먼트의 수만큼 적산됨으로써 동작 시간이 증가하게 된다.
그래서 가속 구간의 거리(acc_dst), 감속 구간의 거리(dacc_dst), 및 등속 구간의 거리(cst_dst)를 각각 복수의 세그먼트로 분할할 때의 바람직한 예에서는 1개의 세그먼트의 거리의 최대값을 20㎜ 이하로 하면서 각 세그먼트의 거리가 20㎜와 비교해서 현저하게 짧은 거리가 되지 않도록 분할한다.
(A) 가속 구간
우선, 가속 구간에서는 각 세그먼트의 이동 시간이 최대한 일정해지도록 점(A)으로부터 점(p1s)을 향해서 서서히 세그먼트의 거리가 길어지도록 이하의 설정을 행한다.
즉, 가속 구간의 거리(acc_dst)가 90㎜ 이하일 경우에는 가속 구간의 세그먼트 수(acc_seg_num)를 9로 하고, 가속 구간의 거리(acc_dst)가 90㎜보다 클 경우에는 가속 구간의 세그먼트 수(acc_seg_num)를 이하의 식(6)에 의해 산출한다.
Figure pat00006
그리고 가속 구간의 점(A)으로부터 점(p1s)을 향해서 각 세그먼트의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때에 각 세그먼트의 거리(acc_seg[j])를 이하의 식(7)과 같이 해서 설정한다.
Figure pat00007
(B) 감속 구간
이어서, 감속 구간에서는 각 세그먼트의 이동 시간이 최대한 일정해지도록 점(p2s)으로부터 점(B)을 향해서 서서히 세그먼트의 거리가 짧아지도록 이하의 설정을 행한다.
즉, 감속 구간의 거리(dacc_dst)가 90㎜ 이하일 경우에는 감속 구간의 세그먼트 수(dacc_seg_num)를 9로 하고, 감속 구간의 거리(dacc_dst)가 90㎜보다 클 경우에는 감속 구간의 세그먼트 수(dacc_seg_num)를 이하의 식(8)에 의해 산출한다.
Figure pat00008
그리고 감속 구간의 점(p2s)으로부터 점(B)을 향해서 각 세그먼트의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때에 각 세그먼트의 거리(dacc_seg[j])를 이하의 식(9)과 같이 해서 설정한다.
Figure pat00009
(C) 등속 구간
최후에 등속 구간에서는 각 세그먼트의 거리가 일정하며, 또한 20㎜ 이하가 되도록 설정한다.
구체적으로는 등속 구간의 거리(cst_dst)를 20으로 제산한 값이 1.25보다 작을 경우에는 등속 구간의 세그먼트 수(cst_seg_num)를 1로 한다. 등속 구간의 거리(cst_dst)를 20으로 제산한 값이 1.25 이상일 경우에는 등속 구간의 세그먼트 수(cst_seg_num)를 이하의 식(10)에 의해 산출한다. 각 세그먼트의 거리는 식(11)에 나타내는 바와 같다.
Figure pat00010
Figure pat00011
또한, 상술한 각 세그먼트의 거리의 설정은 일례에 지나지 않고, 적당히 변경 가능하다. 예를 들면, 상기 식(7)에 나타낸 바와 같이 가속 구간의 각 세그먼트의 거리는 인접하는 세그먼트 간의 거리가 2배씩 증가하도록 설정되어 있지만, 그것에 한정되지 않는다. 인접하는 세그먼트 간의 거리의 비율은 적당히 조정해도 좋다. 감속 구간의 각 세그먼트의 거리에 대해서도 마찬가지이다.
(1-2-3) 각 세그먼트의 각속도 설정
각속도 설정부(313)는 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 각도 변화량에 의거하여 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 기능을 구비한다.
이하, 세그먼트 설정부(312)에 의해 설정된 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트의 주관절의 각속도의 설정 방법에 대해서 도 8을 참조해서 설명한다. 도 8은 본 실시형태의 로봇 제어 방법에 의한 시간의 경과에 대한 주관절의 각속도 변화를 나타내는 도면이며, 각 세그먼트의 주관절의 각속도를 막대형상으로 나타내고 있다.
이미 설명한 바와 같이 본 실시형태의 직선 보간 제어에서는 로봇을 직선(AB) 사이에 있어서 고속으로 이동시키는 것을 목적으로 하여 만약 로봇이 AB 사이를 PTP 제어로 이동했을 경우의 시간의 경과에 대한 주관절의 속도 변화를 모의한다. 도 8에 있어서 사다리꼴형상의 굵은 선은 도 4에 나타낸 것과 동일하며, 로봇을 AB 사이에 있어서 PTP 제어로 동작시켰을 때의 주관절의 속도 변화를 나타내고 있으며, 이 속도 변화가 본 실시형태의 직선 보간 동작에 있어서 모의된다. 즉, 본 실시형태에 있어서 각 세그먼트의 주관절의 각속도는 PTP 제어일 경우의 주관절의 각속도의 변화와 일치하도록 설정된다.
또한, 각 세그먼트 내의 주관절의 각속도는 일정하게 한다.
본 실시형태의 직선 보간 제어에서는 세그먼트마다 주관절(즉, 세그먼트에 있어서 각도 변화량이 최대가 되는 관절)이 특정된다. 상술한 바와 같이 각 세그먼트의 거리가 설정되어 기지이기 때문에 각 세그먼트의 종단 위치에서의 로봇의 각 관절의 각도는 역운동학으로 구해지고, 그것에 의해 각도 변화량이 최대가 되는 주관절이 특정된다.
(A) 가속 구간
가속 구간에 있어서의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때 각 세그먼트의 종단 위치에서의 시각(t)은 이하의 식(12)에 따라 산출된다.
또한, 식(12)에 있어서,
maxdst_seg[j]: 세그먼트 번호가 j인 세그먼트에 있어서의 주관절의 각도 변화량
jcur: 현재의 세그먼트 번호
t1: 가속 시간 요구값(㎳ec)
Vm: 최대 각속도 요구값(radian)이다.
Figure pat00012
(B) 등속 구간
등속 구간에 있어서의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때 각 세그먼트의 종단 위치에서의 시각(t)은 이하의 식(13)에 따라 산출된다.
Figure pat00013
(C) 감속 구간
감속 구간에 있어서의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때 각 세그먼트의 종단 위치에서의 시각(t)은 이하의 식(14)에 따라 산출된다.
또한, 식(14)에 있어서,
total_dst: 전체(점(A)으로부터 점(B)까지)의 주관절의 각도 변화량
t2: 감속 시간 요구값(㎳ec)
tf: 총 이동 시간(㎳ec)이다. total_dst는 도 8의 굵은 선으로 나타내는 사다리꼴의 면적과 동일하다.
Figure pat00014
상술한 바와 같이 해서 가속 구간, 등속 구간, 및 감속 구간에 있어서의 각 세그먼트의 종단 위치에서의 시각(t)을 산출한 후 각 세그먼트에 있어서의 주관절의 각속도는 식(15)에 따라 산출된다. 또한, 식(15)에 있어서 j=0일 시에는 t[j-1]=0인 것으로 한다.
Figure pat00015
(1-2-4) 제어 펄스의 펄스 수의 설정
도 3에 있어서 펄스 수 설정부(314)는 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 따른 소정 시간마다의 펄스 수를 설정하는 기능을 갖는다. 펄스 생성부(315)는 로봇의 각 관절을 구동하는 모터에 대해서 공급되는 제어 펄스를 생성하는 기능을 갖는다. 이때 제어 펄스의 펄스 수를 펄스 수 설정부(314)에 의해 설정된 펄스 수로 한다.
즉, 각 세그먼트의 각속도가 결정되면 결정된 각속도에 따른 제어 펄스의 펄스 수가 로봇에 대한 제어가 기준 시간(예를 들면, 1㎳)마다 설정된다. 펄스 수의 결정 방법은 결정된 각속도가 얻어지는 제어 펄스의 수이면 어떠한 결정 방법이어도 좋다. 예를 들면, 제어 펄스의 수는 결정된 각속도를 변수로 한 소정 함수 연산에 의해 산출해도 좋고, 소정 룩업 테이블을 참조함으로써 얻도록 해도 좋다.
(1-3) 본 실시형태의 로봇 제어 장치(3)의 처리 플로우
이어서, 본 실시형태의 로봇 제어 장치(3)의 처리 플로우에 대해서 도 9를 참조해서 설명한다. 도 9는 본 실시형태의 로봇 제어 장치(3)에 의해 실행되는 플로우 차트이다.
이미 설명한 바와 같이 로봇 제어 장치(3)는 정보 처리 장치(2)로부터 로봇 프로그램을 취득하고, 로봇 제어 장치(3)의 제어부(31)는 취득한 로봇 프로그램을 실행함으로써 도 9에 나타내는 각 처리가 행해진다. 로봇 프로그램에는 교시점으로서 시점(A) 및 종점(B)이 설정되어 시점(A)으로부터 종점(B)까지의 이동에 있어서 동작 파라미터로서 가속 시간, 최대 각속도, 감속 시간의 요구값이 설정되어 있다.
로봇 제어 장치(3)의 제어부(31)는 상기 동작 파라미터에 의거하여 시점(A)으로부터 종점(B)까지 로봇의 기준점을 직선으로 이동시키는 직선 보간 제어를 실행한다. 이때 직선(AB) 사이의 주관절의 각속도 변화가 만약 AB 사이를 PTP 제어에 의해 이동시켰을 경우의 주관절의 각속도 변화와 일치하도록 하여 각 세그먼트에 있어서의 주관절의 각속도가 결정된다.
로봇 제어 장치(3)의 제어부(31)는 우선 로봇 프로그램에 설정된 가속 시간 요구값, 감속 시간 요구값, 및 최대 각속도 요구값에 의거하여 가속 구간, 등속 구간, 및 감속 구간을 설정한다(스텝(S10)). 가속 구간, 등속 구간, 및 감속 구간의 설정은 직선(AB) 사이에 있어서의 가속 구간, 등속 구간, 및 감속 구간의 비율이 만약 AB 사이를 PTP 제어로 이동했을 경우의 경로에 있어서의 각 구간의 비율과 동일해지도록 해서 결정된다.
이어서, 제어부(31)는 스텝(S10)에서 설정한 가속 구간, 등속 구간, 및 감속 구간의 각 구간에 대해서 복수의 세그먼트를 설정한다(스텝(S12)). 즉, 직선(AB)에 있어서의 가속 구간, 등속 구간, 및 감속 구간의 각 구간이 각각 복수의 세그먼트로 분할되어 각 세그먼트의 거리가 결정된다. 이때 제어부(31)는 상술한 바와 같이 각 세그먼트의 이동 시간이 실질적으로 일정해지도록 해서 각 세그먼트의 거리를 결정한다. 가속 구간에서는 점(A)으로부터 점(B)을 향해 각 세그먼트의 거리가 속도의 상승에 따라 길어지도록 설정되고, 감속 구간에서는 점(B)을 향해 각 세그먼트의 거리가 속도의 감소에 따라 짧아지도록 설정된다.
이어서, 제어부(31)는 각 세그먼트의 주관절의 각속도를 설정한다(스텝(S14)). 각 세그먼트의 주관절의 각속도는 상술한 바와 같이 만약 AB 사이를 PTP 제어에 의해 이동시켰을 경우의 주관절의 각속도 변화와 일치하도록 해서 결정된다.
이상의 스텝(S10~S14)의 처리에 의해 시점(A)으로부터 종점(B)까지 로봇의 기준점을 직선 보간으로 이동시킬 때의 각 세그먼트에 있어서의 주관절의 속도가 설정된 것이 된다. 로봇 제어 장치(3)의 제어부(31)는 이어서 스텝(S14)에서 설정한 각 세그먼트의 주관절의 각속도가 얻어지도록 제어 펄스의 수를 결정하고(스텝(S16)), 상기 수의 제어 펄스를 생성해서(스텝(S18)) 로봇(R)으로 송출한다.
이상 설명한 바와 같이 본 실시형태의 로봇 시스템(1)에서는 로봇 제어 장치(3)는 로봇의 기준점을 직선 보간에 의해 이동시킬 경우에 로봇의 주관절의 각도 변화를 만약 상기 직선을 PTP 제어로 이동시켰을 경우의 주관절의 각도 변화와 동일해지도록 제어한다. 그 때문에 로봇을 직선 이동시킬 때에 고속으로 이동시킬 수 있다.
도 10에 예시적인 2점 간에 있어서 로봇을 PTP 제어로 이동시킬 경우와, 동일한 2점 간에 있어서 로봇을 본 실시형태의 직선 보간에 의해 이동시킬 경우의 시간의 경과에 따라 변화되는 제어 펄스의 수의 시뮬레이션 결과를 나타낸다. 도 10에서는 로봇의 6개의 관절 중 각속도가 높은 관절(J1~J3)에 대한 1㎳마다의 제어 펄스의 수가 나타내어진다. 도 10에 나타내는 바와 같이 PTP 제어의 경우의 주관절(J1)에 대한 제어 펄스의 수와, 본 실시형태의 직선 보간의 경우의 주관절(J1)(약 500㎳까지) 및 주관절(J2)(약 500㎳ 이후)에 대한 제어 펄스의 수가 대략 동일해져 있으며, 2점 간의 이동 시간이 같은 정도로 되어 있는 것을 알 수 있다. 즉, 본 실시형태의 직선 보간 제어에서는 전체를 PTP 제어로 이동시켰을 경우와 동등한 이동 속도를 달성할 수 있는 것이 확인되었다.
(2) 제 2 실시형태
이어서, 제 2 실시형태에 대해서 설명한다.
제 1 실시예에서는 가속 구간 및 감속 구간은 만약 시점으로부터 종점까지의 전체를 PTP 제어로 이동했을 경우의 주관절의 각도 변화량을 바탕으로 설정된다. 그러나 가속 구간 및 감속 구간에서는 주관절이 세그먼트 단위로 특정되고, 특정된 주관절이 전체를 PTP 제어로 이동시켰을 경우의 주관절과 일치하지 않는 경우가 발생할 수 있다. 그러한 경우 전체를 PTP 제어로 이동시켰을 경우의 주관절의 이동량에 대하여 세그먼트 단위의 주관절의 이동량을 모든 세그먼트에서 합계한 이동량이 커져 본 실시형태에 의한 총 이동 시간이 길어져버리는 경우가 있다. 즉, 상기 식(12) 및 식(14)에 있어서 Σ의 항이 커지고, 각 세그먼트의 종단 위치에서의 시각(t)이 늦어지는 점에서 결과적으로 총 이동 시간이 길어져버리는 경우가 있다.
그래서 본 실시형태에서는 가속 시간 요구값 및 감속 시간 요구값을 충족하도록 각 세그먼트의 주관절의 각도 변화량에 의거하여 가속 구간 및/또는 감속 구간의 세그먼트를 재설정하는 것을 특징으로 한다.
본 실시형태의 세그먼트 설정부(312)는 각속도 설정부(313)에 의해 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 가속 시간 요구값의 제 1 차분값이 제 1 역치보다 클 경우 제 1 차분값이 제 1 역치 이하가 되도록 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정한다.
또한, 본 실시형태의 세그먼트 설정부(312)는 각속도 설정부(313)에 의해 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 감속 시간 요구값의 제 2 차분값이 제 2 역치보다 클 경우 제 2 차분값이 제 2 역치 이하가 되도록 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정한다.
또한, 제 1 역치 및 제 2 역치는 각각 가속 시간 요구값 및 감속 시간 요구값과의 괴리 정도가 시스템상 허용 가능한 레벨에 따라 적당히 설정 가능하다.
이하, 본 실시형태의 세그먼트 설정부(312)에 의해 행해지는 세그먼트 수 또는 각 세그먼트의 거리의 재설정의 예를 도 11을 참조해서 설명한다. 도 11은 본 실시형태의 로봇 제어 방법에 있어서 세그먼트 조정 전후의 시간의 경과에 대한 주관절의 각속도 변화를 나타내는 도면이다.
도 11에 있어서 세그먼트 조정 전의 경우에는 가속 구간은 각 세그먼트에 대하여 특정된 주관절이 전체를 PTP 제어로 이동시켰을 경우의 주관절과 일치하지 않는 점에서 직선 보간 제어에 의한 가속 시간이 가속 시간 요구값(t1)보다 길어져 있다. 그 때문에 총 이동 시각(tf)이 길어져 있다.
그것에 대해서 본 실시형태에서는 세그먼트 설정부(312)는 가속 구간의 각 세그먼트의 거리를 짧게 하거나 또는 세그먼트 수를 적게 하여 그것에 의해 가속 구간이 이하의 조건식(16)을 충족하도록 한다. 예를 들면, 각 세그먼트의 거리의 조정은 상기 식(6), 식(7)의 정수를 변경함으로써 가능하다.
또한, 조건식(16)에 있어서,
maxdst_seg[j]: 세그먼트 번호가 j의 세그먼트에 있어서의 주관절의 각도 변화량
jcur: 현재의 세그먼트 번호
t1: 가속 시간 요구값(㎳ec)
Vm: 최대 각속도 요구값(radian)이다.
Figure pat00016
세그먼트 조정 전의 가속 구간의 각 세그먼트의 거리에서는 각 세그먼트에 설정되는 각속도가 도 11의 PTP 제어에 의한 굵은 선으로 나타내는 각속도보다 빨라 조건식(16)을 충족하지 않는다.
그래서 가속 구간의 각 세그먼트의 거리를 짧게 하거나 또는 가속 시간의 세그먼트 수를 적게 함으로써 조건식(16)을 충족하는 것이 가능해진다. 그 결과, 세그먼트 조정 후의 가속 구간에서는 도 11에 나타내는 바와 같이 세그먼트 조정 전과 비교해서 가속이 완만해져 가속 시간 요구값을 충족하도록 되는 것을 알 수 있다.
상기 식(16)의 우변으로부터 좌변을 뺀 값이 제 1 차분값의 일례이다.
마찬가지로는 세그먼트 조정 전의 감속 구간에서는 각 세그먼트에 대하여 특정된 주관절이 전체를 PTP 제어로 이동시켰을 경우의 주관절과 반드시 일치하지 않는 점에서 가속 구간과 마찬가지로 본 실시형태에 의한 총 이동 시간이 길어져버리는 경우가 있다.
그래서 세그먼트 설정부(312)는 감속 구간의 각 세그먼트의 거리를 짧게 하거나 세그먼트 수를 적게 함으로써 이하의 조건식(17)을 충족하도록 한다. 예를 들면, 각 세그먼트의 거리의 조정은 상기 식(8), 식(9)의 정수를 변경함으로써 가능하다.
또한, 조건식(17)에 있어서,
maxdst_seg[j]: 세그먼트 번호가 j의 세그먼트에 있어서의 주관절의 각도 변화량
jcur: 현재의 세그먼트 번호
t2: 감속 시간 요구값(㎳ec)
tf: 총 이동 시간(㎳ec)
Vm: 최대 각속도 요구값(radian)이다.
상기 식(17)의 우변으로부터 좌변을 뺀 값이 제 2 차분값의 일례이다.
Figure pat00017
본 실시형태의 로봇 제어 장치(3)의 처리 플로우를 도 12에 나타낸다. 도 12는 본 실시형태의 로봇 제어 장치(3)에 의해 실행되는 플로우 차트이다.
도 12에 나타내는 플로우 차트가 도 9와 상이한 것은 스텝(S15)이 추가된 점이다.
로봇 제어 장치(3)의 제어부(31)는 각 세그먼트의 주관절의 각속도를 설정하면(스텝(S14)) 가속 시간 요구값 및 감속 시간 요구값을 충족하는지의 여부(즉, 식(16) 및 식(17)을 충족하는지의 여부)를 판단한다(스텝(S15)). 충족하지 않을 경우에는 스텝(S12)으로 리턴되어 가속 구간 및/또는 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 변경한다. 스텝(S12), 스텝(S14)의 처리는 스텝(S15)의 조건식이 충족될 때까지 행해진다.
이때 스텝(S15)에서는 상기 식(16)의 우변으로부터 좌변을 뺀 값이 소정 제 1 역치 이하이며, 또한 상기 식(17)의 우변으로부터 좌변을 뺀 값이 소정 제 2 역치 이하인 것을 집속 조건으로 해도 좋다.
(3) 제 3 실시형태
이어서, 제 3 실시형태에 대해서 설명한다.
제 1 실시형태의 로봇 제어 장치(3)에 있어서 설정되는 주관절의 각속도는 각 세그먼트 내에서는 일정하기 때문에 세그먼트 사이에 있어서 주관절의 각속도가 크게 변화될 경우가 있다. 그러나 큰 각속도의 변화는 로봇에 진동을 발생시키는 경우가 있어 바람직하지 않다. 그래서 본 실시형태에서는 로봇에 진동이 발생하기 어려워지도록 주관절의 각속도의 변화를 평활화한다.
상기 관점으로부터 본 실시형태의 로봇 제어 장치(3)는 펄스 수 설정부(314)에 의해 설정된 펄스 수에 대하여 필터 처리를 행하는 필터 처리부를 더 구비한다. 그리고 펄스 생성부(315)는 제어 펄스의 펄스 수를 필터 처리 후의 펄스 수로 설정한다.
필터 처리의 방법은 특별히 한정하지 않지만, 예를 들면 소정 횟수의 기준 시간(예를 들면, 1㎳)에 대하여 설정된 펄스 수에 의거하는 이동 평균 필터를 이용할 수 있다. 이동 평균 필터에 사용하는 펄스 수의 샘플의 수는 상관없지만 평활화의 효과를 높이기 위해서는 샘플 수가 충분히 많은 것이 바람직한 한편, 샘플 수가 지나치게 많으면 이동 시간이 길어진다. 적합한 일례에서는 샘플 수 n은 10이다.
구체적으로는 관절 번호 i(i=1~6)의 관절에 대한 k번째의 제어 펄스의 수를 pls_new[i][k]라고 하면 펄스 수(pls_new[i][k])는 식(18)에 따라 구해진다.
또한, 식(18)에 있어서,
pls_new: 이동 평균 필터 적용 후의 제어 펄스의 수
pls: 이동 평균 필터 적용 전의 제어 펄스의 수
i: 관절 번호(1, 2, 3, 4, 5, 6)
k: 동작 펄스의 생성 횟수
n: 이동 평균에 사용하는 샘플 수이다.
Figure pat00018
이상, 본 발명의 로봇 제어 장치의 복수의 실시형태에 대해서 상세하게 설명했지만 본 발명은 상기 각 실시형태에 한정되지 않는다. 또한, 상기 실시형태는 본 발명의 주지를 일탈하지 않는 범위에 있어서 여러 가지의 개량이나 변경이 가능하다. 예를 들면, 각 실시형태에 대해서 언급한 기술적 사항은 기술적 모순이 발생하지 않는 한 상이한 실시형태의 사이에서 적당히 조합해도 좋다.
상술한 설명에 의해 도 3의 기능 블록도에 기재된 기능 중 적어도 일부의 기능을 컴퓨터에 실현시키기 위한 프로그램 및 상기 프로그램이 기록된 컴퓨터 가독 기억 매체(비휘발성의 기억 매체도 포함한다)가 개시되어 있는 것은 당업자에게 이해된다.
1: 로봇 시스템 2: 정보 처리 장치
21: 제어부 22: 스토리지
23: 입력 장치 24: 표시 장치
25: 통신 인터페이스부 3: 로봇 제어 장치
31: 제어부 311: 구간 설정부
312: 세그먼트 설정부 313: 각속도 설정부
314: 펄스 수 설정부 315: 펄스 생성부
32: 스토리지 33: 통신 인터페이스부
EC: 이더넷 케이블 WC: 케이블
R: 로봇 101: 모터 구동 회로
102: 모터

Claims (5)

  1. 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 로봇 제어 장치로서,
    상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하는 구간 설정부와,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하는 세그먼트 설정부로서, 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하는 세그먼트 설정부와,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 각속도 설정부를 구비하고,
    상기 세그먼트 설정부는,
    상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하고,
    상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 로봇 제어 장치.
  2. 제 1 항에 있어서,
    상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 따른 소정 시간마다의 펄스 수를 설정하는 펄스 수 설정부와,
    상기 펄스 수 설정부에 의해 설정된 펄스 수에 대하여 필터 처리를 행하는 필터 처리부와,
    상기 로봇의 각 관절을 구동하는 모터에 대하여 공급되는 제어 펄스를 생성하는 펄스 생성부로서, 상기 제어 펄스의 펄스 수를 상기 필터 처리 후의 펄스 수로 설정하는 상기 펄스 생성부를 구비하는 로봇 제어 장치.
  3. 제 2 항에 있어서,
    상기 필터 처리는 소정 횟수의 상기 소정 시간에 대하여 설정된 펄스 수에 의거하는 이동 평균 필터의 처리인 로봇 제어 장치.
  4. 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 로봇 제어 방법으로서,
    상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하고,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하여 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하고,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하고,
    상기 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하고,
    상기 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 로봇 제어 방법.
  5. 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 프로그램으로서,
    컴퓨터에,
    상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하는 순서,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하여 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하는 순서,
    상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 순서,
    상기 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 순서,
    상기 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 순서를 실행시키기 위한 프로그램.
KR1020190026172A 2018-03-26 2019-03-07 로봇 제어 장치, 로봇 제어 방법, 프로그램 KR102297735B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2018-058534 2018-03-26
JP2018058534A JP7047525B2 (ja) 2018-03-26 2018-03-26 ロボット制御装置、ロボット制御方法、プログラム

Publications (2)

Publication Number Publication Date
KR20190112644A true KR20190112644A (ko) 2019-10-07
KR102297735B1 KR102297735B1 (ko) 2021-09-03

Family

ID=67984585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190026172A KR102297735B1 (ko) 2018-03-26 2019-03-07 로봇 제어 장치, 로봇 제어 방법, 프로그램

Country Status (4)

Country Link
US (1) US20190291274A1 (ko)
JP (1) JP7047525B2 (ko)
KR (1) KR102297735B1 (ko)
CN (1) CN110355753B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11278997B2 (en) * 2019-09-27 2022-03-22 Fanuc Corporation Machine system performing workpiece transport control
CN112532146B (zh) * 2020-11-16 2023-02-28 深圳市科曼医疗设备有限公司 加减速运动控制方法、装置、设备和介质
CN113282078B (zh) * 2021-04-12 2022-11-11 西南大学 移动机器人直接导航移动到指目标点的方法、系统及应用

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265313A (ja) 1996-01-24 1997-10-07 Mitsubishi Electric Corp ロボットの速度演算装置、およびロボットの速度演算方法
JP3341305B2 (ja) * 1992-06-30 2002-11-05 ソニー株式会社 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
JP2004252814A (ja) 2003-02-21 2004-09-09 Daihen Corp 多関節型ロボットの速度制御法および制御装置
KR100454341B1 (ko) * 2001-12-27 2004-10-26 두산메카텍 주식회사 다관절 로봇의 비대칭 가감속 속도 프로파일 생성방법 및이를 이용한 가감속 제어방법
JP5238885B2 (ja) * 2009-09-24 2013-07-17 株式会社東芝 ロボット制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59114604A (ja) * 1982-12-22 1984-07-02 Yaskawa Electric Mfg Co Ltd 産業用ロボツトの加減速制御方式
US4774445A (en) * 1986-11-20 1988-09-27 Unimation, Inc. Multiaxis robot control having capability for executing timed moves
JP3194829B2 (ja) * 1993-12-27 2001-08-06 豊田工機株式会社 ロボットの動作プログラム生成装置
JPH07223185A (ja) * 1994-02-07 1995-08-22 Daikin Ind Ltd 産業用ロボット制御方法およびその装置
US5602968A (en) * 1994-05-02 1997-02-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Task space angular velocity blending for real-time trajectory generation
JPH08115118A (ja) * 1994-10-17 1996-05-07 Amada Co Ltd ベンダのロボットハンドのゲージング方法及びゲージング装置
JPH1063328A (ja) * 1996-08-23 1998-03-06 Denso Corp ロボットコントローラ
JPH10286788A (ja) * 1997-04-09 1998-10-27 Toyoda Mach Works Ltd 軌跡制御装置
JP4736607B2 (ja) 2005-08-05 2011-07-27 株式会社デンソーウェーブ ロボット制御装置
JP2009082945A (ja) 2007-09-28 2009-04-23 Daihen Corp アーク溶接ロボットシステムの制御方法及びアーク溶接ロボットシステム
JP5198930B2 (ja) 2008-04-25 2013-05-15 ファナック株式会社 サイクルタイム短縮のためのロボットの移動制御装置及び移動制御方法
JP5318727B2 (ja) * 2009-10-30 2013-10-16 本田技研工業株式会社 情報処理方法及び装置並びにプログラム
CN106662860B (zh) * 2014-08-12 2019-01-08 三菱电机株式会社 数控装置
CN104133424B (zh) * 2014-08-19 2017-01-18 福州大学 一种基于可编程控制器的工业机器人直线插补方法
JP6379853B2 (ja) * 2014-08-22 2018-08-29 株式会社デンソーウェーブ ロボットの制御装置及び制御方法
CN107160394B (zh) * 2017-05-27 2019-12-10 西安精雕软件科技有限公司 一种直线运动模组精确控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3341305B2 (ja) * 1992-06-30 2002-11-05 ソニー株式会社 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
JPH09265313A (ja) 1996-01-24 1997-10-07 Mitsubishi Electric Corp ロボットの速度演算装置、およびロボットの速度演算方法
KR100454341B1 (ko) * 2001-12-27 2004-10-26 두산메카텍 주식회사 다관절 로봇의 비대칭 가감속 속도 프로파일 생성방법 및이를 이용한 가감속 제어방법
JP2004252814A (ja) 2003-02-21 2004-09-09 Daihen Corp 多関節型ロボットの速度制御法および制御装置
JP5238885B2 (ja) * 2009-09-24 2013-07-17 株式会社東芝 ロボット制御装置

Also Published As

Publication number Publication date
KR102297735B1 (ko) 2021-09-03
JP7047525B2 (ja) 2022-04-05
CN110355753B (zh) 2022-11-25
CN110355753A (zh) 2019-10-22
US20190291274A1 (en) 2019-09-26
JP2019166623A (ja) 2019-10-03

Similar Documents

Publication Publication Date Title
KR20190112644A (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
KR20190112643A (ko) 로봇 제어 장치, 로봇 제어 방법, 프로그램
US11000949B2 (en) Robot for controlling learning in view of operation in production line, and method of controlling the same
US10254741B2 (en) Robot apparatus having learning function
CN108687767B (zh) 离线编程装置以及离线编程方法
JP2017127964A (ja) 学習機能を備えたロボット装置
WO2019071107A1 (en) TELEOPERATING SYSTEMS, METHOD, APPARATUS, AND COMPUTER-READABLE INFORMATION MEDIUM
JP6548830B2 (ja) 指令値生成装置
US11822313B2 (en) Synchronization control device, synchronization control system, synchronization control method, and simulation device
JP3853752B2 (ja) シミュレーション装置
CN107309873B (zh) 机械臂运动控制方法和系统
CN112405531B (zh) 位置域阻抗控制方法、装置、存储介质及作业机器人
JPH02257204A (ja) 複数ロボット腕の衝突回避制御方式
CN112975120A (zh) 扫描仪控制器和扫描仪控制系统
JP6823032B2 (ja) プログラム修正装置
JPH09251320A (ja) ロボット衝突防止システム
JP7414849B2 (ja) 移動経路描画装置
CN113459103B (zh) 一种机械手自动运行时的转角轨迹控制方法及装置
US20240094736A1 (en) Robot navigation in dependence on gesture(s) of human(s) in environment with robot
KR20040060825A (ko) 모션 제어의 실시간 응답을 위한 궤적발생방법 및 시스템
JP2001154719A (ja) 自由曲線補間方法
JP3797998B2 (ja) モータ制御装置
KR100724494B1 (ko) 모션 제어기의 연속 보간 운전 장치 및 방법
CN116677025A (zh) 挖掘机械的控制方法及控制装置
JP2007007779A (ja) ロボット制御装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant