KR102297735B1 - 로봇 제어 장치, 로봇 제어 방법, 프로그램 - Google Patents
로봇 제어 장치, 로봇 제어 방법, 프로그램 Download PDFInfo
- Publication number
- KR102297735B1 KR102297735B1 KR1020190026172A KR20190026172A KR102297735B1 KR 102297735 B1 KR102297735 B1 KR 102297735B1 KR 1020190026172 A KR1020190026172 A KR 1020190026172A KR 20190026172 A KR20190026172 A KR 20190026172A KR 102297735 B1 KR102297735 B1 KR 102297735B1
- Authority
- KR
- South Korea
- Prior art keywords
- section
- segment
- point
- acceleration
- deceleration
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J17/00—Joints
- B25J17/02—Wrist joints
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0081—Programme-controlled manipulators with master teach-in means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
- B25J9/12—Programme-controlled manipulators characterised by positioning means for manipulator elements electric
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1651—Programme controls characterised by the control loop acceleration, rate control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43033—Sinusoidal acceleration profile
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
본 발명의 일실시형태는 시점과 종점을 연결하는 직선 중 소정 각속도에 도달하기까지의 가속 구간, 소정 각속도를 유지하는 등속 구간, 및 소정 각속도로부터 감속하는 감속 구간을 설정하는 구간 설정부를 구비한다. 가속 구간, 등속 구간, 및 감속 구간을 각각 복수의 세그먼트로 분할하는 세그먼트 설정부로서, 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트의 거리를 설정하는 세그먼트 설정부를 구비한다. 가속 구간, 등속 구간, 및 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 각도 변화량에 의거하여 각 세그먼트에 있어서 PTP 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 각속도 설정부를 구비한다.
Description
본 발명은 로봇 제어 장치, 로봇 제어 방법, 프로그램에 관한 것이다.
종래부터 로봇의 암 선단(손끝)의 위치를 시점(교시점)으로부터 종점(교시점)까지 이동시킬 경우의 경로 제어 방식으로서 PTP(Point to Point) 제어가 알려져 있다. 또한, 로봇의 암의 선단의 위치를 직선 경로로 이동시키는 직선 보간 제어가 알려져 있다(특허문헌 1, 2).
특허문헌 1에는 로봇의 현재 위치 정보를 취득하는 수단과, 로봇의 관절의 정격 최고 속도 정보를 취득하는 수단과, 상기 로봇 현재 위치 정보와 상기 관절 정격 최고 속도에 의거하여 로봇 선단의 직선 보간 동작에 있어서 취할 수 있는 허용 한계 속도를 산출하는 수단을 구비하는 로봇의 속도 연산 장치가 기재되어 있다.
특허문헌 2에는 서로 전후하는 2개의 이동 구간의 보간 종별이 관절 보간 동작으로부터 직선 보간 동작으로 변해가는지, 직선 보간 동작으로부터 관절 보간 동작으로 변해가는지를 판별하고, 그 2개의 이동 구간의 연결점 또는 그 근방을 통과시킬 때에 속도의 결합 처리가 가능한지의 여부를 판정하여 속도의 결합 처리가 가능하다고 판정되었을 때 이종 보간 동작 간의 속도를 중합하는 것 같은 거동을 시키기 위한 보간점을 관절 변수에 의해 결정하는 것이 기재되어 있다.
로봇의 암 선단을 시점으로부터 종점까지 이동시킬 때에는 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 실시형태의 로봇 제어 장치에 의해 실행되는 플로우 차트이다.
도 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에 나타내어지는 사다리꼴의 면적에 상당한다.
직선(AB) 사이에서 각 관절의 각도는 선형으로 변화되기 때문에 점(p1)에 있어서의 로봇의 각 관절의 각도(p1[i])(i: 관절 번호 1~6)는 가속 구간 비율(acc_ratio)을 사용하여 이하 식(2)에 따라 구해진다.
또한, 식(2)에 있어서,
A[i]: 점(A)에 있어서의 관절 i의 각도(radian)
B[i]: 점(B)에 있어서의 관절 i의 각도(radian)이다.
식(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)가 산출된다.
이상, 가속 구간의 거리(acc_dst)의 산출 방법에 대해서 설명했지만, 감속 구간의 거리(dacc_dst)(도 5 참조)에 대해서도 점(p2)에 의거하여 마찬가지로 해서 산출할 수 있다.
또한, 직선 보간 동작에 의한 등속 구간의 거리는 직선(AB) 사이의 거리(L)로부터 가속 구간의 거리(acc_dst)와 감속 구간의 거리(dacc_dst)를 감산함으로써 얻어진다. 즉, 등속 구간의 거리(cst_dst)는 이하의 식(5)으로부터 산출된다.
(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)에 의해 산출한다.
그리고 가속 구간의 점(A)으로부터 점(p1s)을 향해서 각 세그먼트의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때에 각 세그먼트의 거리(acc_seg[j])를 이하의 식(7)과 같이 해서 설정한다.
(B) 감속 구간
이어서, 감속 구간에서는 각 세그먼트의 이동 시간이 최대한 일정해지도록 점(p2s)으로부터 점(B)을 향해서 서서히 세그먼트의 거리가 짧아지도록 이하의 설정을 행한다.
즉, 감속 구간의 거리(dacc_dst)가 90㎜ 이하일 경우에는 감속 구간의 세그먼트 수(dacc_seg_num)를 9로 하고, 감속 구간의 거리(dacc_dst)가 90㎜보다 클 경우에는 감속 구간의 세그먼트 수(dacc_seg_num)를 이하의 식(8)에 의해 산출한다.
그리고 감속 구간의 점(p2s)으로부터 점(B)을 향해서 각 세그먼트의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때에 각 세그먼트의 거리(dacc_seg[j])를 이하의 식(9)과 같이 해서 설정한다.
(C) 등속 구간
최후에 등속 구간에서는 각 세그먼트의 거리가 일정하며, 또한 20㎜ 이하가 되도록 설정한다.
구체적으로는 등속 구간의 거리(cst_dst)를 20으로 제산한 값이 1.25보다 작을 경우에는 등속 구간의 세그먼트 수(cst_seg_num)를 1로 한다. 등속 구간의 거리(cst_dst)를 20으로 제산한 값이 1.25 이상일 경우에는 등속 구간의 세그먼트 수(cst_seg_num)를 이하의 식(10)에 의해 산출한다. 각 세그먼트의 거리는 식(11)에 나타내는 바와 같다.
또한, 상술한 각 세그먼트의 거리의 설정은 일례에 지나지 않고, 적당히 변경 가능하다. 예를 들면, 상기 식(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)이다.
(B) 등속 구간
등속 구간에 있어서의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때 각 세그먼트의 종단 위치에서의 시각(t)은 이하의 식(13)에 따라 산출된다.
(C) 감속 구간
감속 구간에 있어서의 세그먼트 번호를 j(j=0, 1, 2, …)라고 했을 때 각 세그먼트의 종단 위치에서의 시각(t)은 이하의 식(14)에 따라 산출된다.
또한, 식(14)에 있어서,
total_dst: 전체(점(A)으로부터 점(B)까지)의 주관절의 각도 변화량
t2: 감속 시간 요구값(㎳ec)
tf: 총 이동 시간(㎳ec)이다. total_dst는 도 8의 굵은 선으로 나타내는 사다리꼴의 면적과 동일하다.
상술한 바와 같이 해서 가속 구간, 등속 구간, 및 감속 구간에 있어서의 각 세그먼트의 종단 위치에서의 시각(t)을 산출한 후 각 세그먼트에 있어서의 주관절의 각속도는 식(15)에 따라 산출된다. 또한, 식(15)에 있어서 j=0일 시에는 t[j-1]=0인 것으로 한다.
(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)이다.
세그먼트 조정 전의 가속 구간의 각 세그먼트의 거리에서는 각 세그먼트에 설정되는 각속도가 도 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 차분값의 일례이다.
본 실시형태의 로봇 제어 장치(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: 이동 평균에 사용하는 샘플 수이다.
이상, 본 발명의 로봇 제어 장치의 복수의 실시형태에 대해서 상세하게 설명했지만 본 발명은 상기 각 실시형태에 한정되지 않는다. 또한, 상기 실시형태는 본 발명의 주지를 일탈하지 않는 범위에 있어서 여러 가지의 개량이나 변경이 가능하다. 예를 들면, 각 실시형태에 대해서 언급한 기술적 사항은 기술적 모순이 발생하지 않는 한 상이한 실시형태의 사이에서 적당히 조합해도 좋다.
상술한 설명에 의해 도 3의 기능 블록도에 기재된 기능 중 적어도 일부의 기능을 컴퓨터에 실현시키기 위한 프로그램 및 상기 프로그램이 기록된 컴퓨터 가독 기억 매체(비휘발성의 기억 매체도 포함한다)가 개시되어 있는 것은 당업자에게 이해된다.
1: 로봇 시스템 2: 정보 처리 장치
21: 제어부 22: 스토리지
23: 입력 장치 24: 표시 장치
25: 통신 인터페이스부 3: 로봇 제어 장치
31: 제어부 311: 구간 설정부
312: 세그먼트 설정부 313: 각속도 설정부
314: 펄스 수 설정부 315: 펄스 생성부
32: 스토리지 33: 통신 인터페이스부
EC: 이더넷 케이블 WC: 케이블
R: 로봇 101: 모터 구동 회로
102: 모터
21: 제어부 22: 스토리지
23: 입력 장치 24: 표시 장치
25: 통신 인터페이스부 3: 로봇 제어 장치
31: 제어부 311: 구간 설정부
312: 세그먼트 설정부 313: 각속도 설정부
314: 펄스 수 설정부 315: 펄스 생성부
32: 스토리지 33: 통신 인터페이스부
EC: 이더넷 케이블 WC: 케이블
R: 로봇 101: 모터 구동 회로
102: 모터
Claims (5)
- 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 로봇 제어 장치로서,
상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하는 구간 설정부와,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하는 세그먼트 설정부로서, 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하는 세그먼트 설정부와,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 각속도 설정부를 구비하고,
상기 세그먼트 설정부는,
상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하고,
상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 로봇 제어 장치. - 제 1 항에 있어서,
상기 각속도 설정부에 의해 설정된 각 세그먼트의 각속도에 따른 소정 시간마다의 펄스 수를 설정하는 펄스 수 설정부와,
상기 펄스 수 설정부에 의해 설정된 펄스 수에 대하여 필터 처리를 행하는 필터 처리부와,
상기 로봇의 각 관절을 구동하는 모터에 대하여 공급되는 제어 펄스를 생성하는 펄스 생성부로서, 상기 제어 펄스의 펄스 수를 상기 필터 처리 후의 펄스 수로 설정하는 상기 펄스 생성부를 구비하는 로봇 제어 장치. - 제 2 항에 있어서,
상기 필터 처리는 소정 횟수의 상기 소정 시간에 대하여 설정된 펄스 수에 의거하는 이동 평균 필터의 처리인 로봇 제어 장치. - 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 로봇 제어 방법으로서,
상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하고,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하여 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하고,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하고,
상기 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하고,
상기 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 로봇 제어 방법. - 복수의 관절을 포함하는 다관절 로봇의 기준점을 시점으로부터 종점까지 직선 보간으로 이동시키는 프로그램으로서,
컴퓨터에,
상기 기준점이 상기 시점으로부터 가속해서 소정 각속도에 도달하기까지의 가속 시간의 요구값 및 상기 기준점이 상기 소정 각속도로부터 감속하여 상기 종점에 도달하기까지의 감속 시간의 요구값에 의거하여 상기 시점과 상기 종점을 연결하는 직선 중 가속 구간, 상기 기준점이 상기 소정 각속도를 유지하는 등속 구간, 및 감속 구간을 설정하는 순서,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간을 각각 복수의 세그먼트로 분할하여 상기 기준점의 각 세그먼트의 이동 시간이 실질적으로 동일해지도록 상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트의 거리를 설정하는 순서,
상기 가속 구간, 상기 등속 구간, 및 상기 감속 구간의 각 세그먼트에 대해서 각도 변화량이 최대가 되는 관절의 상기 각도 변화량에 의거하여 상기 기준점을 각 세그먼트에 있어서 PTP(Point to Point) 제어로 이동시킬 때의 각 세그먼트의 각속도를 설정하는 순서,
상기 설정된 각 세그먼트의 각속도에 의거하는 가속 시간과 상기 가속 시간의 요구값의 제 1 차분값이 제 1 역치보다 클 경우 상기 제 1 차분값이 상기 제 1 역치 이하가 되도록 상기 가속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 순서,
상기 설정된 각 세그먼트의 각속도에 의거하는 감속 시간과 상기 감속 시간의 요구값의 제 2 차분값이 제 2 역치보다 클 경우 상기 제 2 차분값이 상기 제 2 역치 이하가 되도록 상기 감속 구간의 세그먼트 수 또는 각 세그먼트의 거리를 재설정하는 순서를 실행시키기 위한 매체에 저장된 프로그램.
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 KR20190112644A (ko) | 2019-10-07 |
KR102297735B1 true 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)
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3341305B2 (ja) | 1992-06-30 | 2002-11-05 | ソニー株式会社 | 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法 |
KR100454341B1 (ko) | 2001-12-27 | 2004-10-26 | 두산메카텍 주식회사 | 다관절 로봇의 비대칭 가감속 속도 프로파일 생성방법 및이를 이용한 가감속 제어방법 |
JP5238885B2 (ja) | 2009-09-24 | 2013-07-17 | 株式会社東芝 | ロボット制御装置 |
Family Cites Families (18)
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 | ベンダのロボットハンドのゲージング方法及びゲージング装置 |
JP4060393B2 (ja) * | 1996-01-24 | 2008-03-12 | 三菱電機株式会社 | ロボットの速度演算装置、およびロボットの速度演算方法 |
JPH1063328A (ja) * | 1996-08-23 | 1998-03-06 | Denso Corp | ロボットコントローラ |
JPH10286788A (ja) * | 1997-04-09 | 1998-10-27 | Toyoda Mach Works Ltd | 軌跡制御装置 |
JP2004252814A (ja) | 2003-02-21 | 2004-09-09 | Daihen Corp | 多関節型ロボットの速度制御法および制御装置 |
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 | 西安精雕软件科技有限公司 | 一种直线运动模组精确控制方法 |
-
2018
- 2018-03-26 JP JP2018058534A patent/JP7047525B2/ja active Active
-
2019
- 2019-03-07 KR KR1020190026172A patent/KR102297735B1/ko active IP Right Grant
- 2019-03-14 US US16/352,988 patent/US20190291274A1/en not_active Abandoned
- 2019-03-26 CN CN201910232970.7A patent/CN110355753B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3341305B2 (ja) | 1992-06-30 | 2002-11-05 | ソニー株式会社 | 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法 |
KR100454341B1 (ko) | 2001-12-27 | 2004-10-26 | 두산메카텍 주식회사 | 다관절 로봇의 비대칭 가감속 속도 프로파일 생성방법 및이를 이용한 가감속 제어방법 |
JP5238885B2 (ja) | 2009-09-24 | 2013-07-17 | 株式会社東芝 | ロボット制御装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20190112644A (ko) | 2019-10-07 |
US20190291274A1 (en) | 2019-09-26 |
CN110355753A (zh) | 2019-10-22 |
JP7047525B2 (ja) | 2022-04-05 |
JP2019166623A (ja) | 2019-10-03 |
CN110355753B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102323069B1 (ko) | 로봇 제어 장치, 로봇 제어 방법, 프로그램 | |
KR102297735B1 (ko) | 로봇 제어 장치, 로봇 제어 방법, 프로그램 | |
JP6333795B2 (ja) | 学習による教示作業の簡易化及び動作性能向上機能を備えたロボットシステム | |
JP6717768B2 (ja) | 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法 | |
JP6386516B2 (ja) | 学習機能を備えたロボット装置 | |
US10254741B2 (en) | Robot apparatus having learning function | |
JP6392825B2 (ja) | 学習制御機能を備えたロボット制御装置 | |
JP6006277B2 (ja) | 産業用ロボットのプログラム修正装置及びプログラム修正方法 | |
JP2009053926A (ja) | 経路計画装置及び経路計画方法 | |
US10513034B2 (en) | Trajectory determination method for non-productive movements | |
CN107309873B (zh) | 机械臂运动控制方法和系统 | |
WO2015098085A1 (ja) | 動作プログラム作成方法およびロボットの制御方法 | |
US9975244B1 (en) | Real-time generation of trajectories for actuators of a robot | |
JP5573664B2 (ja) | 数値制御装置、移動制御方法、移動制御プログラム及び記憶媒体 | |
CN106826814B (zh) | 一种机器人的运动控制方法和运动控制系统 | |
CN112405531B (zh) | 位置域阻抗控制方法、装置、存储介质及作业机器人 | |
CN107735226B (zh) | 利用机器人驶过预设的轨迹 | |
JPH02257204A (ja) | 複数ロボット腕の衝突回避制御方式 | |
CN113858213B (zh) | 一种用于目标同步的机器人动态轨迹规划方法 | |
CN111670093A (zh) | 机器人的运动控制方法、控制系统和存储装置 | |
CN111331577B (zh) | 机器人的控制装置及控制方法 | |
CN115515760A (zh) | 机器人控制装置 | |
JP5414266B2 (ja) | 裁断方法及び裁断装置 | |
JP7357808B2 (ja) | 干渉チェック装置 | |
JPH09251320A (ja) | ロボット衝突防止システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |