KR102126729B1 - 로봇을 프로그래밍하기 위한 방법 및 시스템 - Google Patents
로봇을 프로그래밍하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR102126729B1 KR102126729B1 KR1020197022969A KR20197022969A KR102126729B1 KR 102126729 B1 KR102126729 B1 KR 102126729B1 KR 1020197022969 A KR1020197022969 A KR 1020197022969A KR 20197022969 A KR20197022969 A KR 20197022969A KR 102126729 B1 KR102126729 B1 KR 102126729B1
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- execution
- movement
- configuration
- programming
- 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
-
- 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
- B25J9/1666—Avoiding collision or forbidden zones
-
- 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/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert 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
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/39—Robotics, robotics to robotics hand
- G05B2219/39298—Trajectory learning
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40395—Compose movement with primitive movement segments from database
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40517—Constraint motion planning, variational dynamic programming
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40523—Path motion planning, path in space followed by tip of robot
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
로봇을 프로그래밍하는 방법, 특히, 로봇에 의해 수행될 동작이 로봇 프로그램에서, 바람직하게, 미리 정의된 운동 템플릿으로 설정되는 로봇 암을 포함하는 로봇에 있어서, 운동 템플릿은 복수의 운동 템플릿을 포함하는 데이터베이스로부터 선택되고, 운동 템플릿은 하나 이상의 파라미터화 가능한 실행 모듈 및 적어도 하나의 학습 모듈을 포함하고, 하나 이상의 실행 모듈은 로봇의 이동 또는 로봇의 부분적인 이동을 계획 및/또는 실행하기 위해 사용되며, 학습 모듈은 초기화 프로세스, 특히, 티칭(teaching) 프로세스의 형태로, 로봇의 하나 이상의 구성을 기록하고, 바람직하게는, 학습 모듈은 기계 학습 방법을 사용하여 기록된 로봇의 적어도 하나의 구성을 저장한다. 또한, 로봇을 프로그래밍하기 위한 대응하는 시스템이 제공된다.
Description
본 발명은 로봇을 프로그래밍하기 위한 방법 및 시스템에 관련이 있으며, 특히, 로봇 암을 포함하는 로봇과 관련이 있다.
논의되고 있는 타입의 방법 및 시스템은 관련 분야로부터 여러 해 동안 알려져 왔다. 결과적으로, 티치인(teach-in), 재생(playback), 센서 기반(sensor-based) 프로그래밍, CAD(computer-aided design) 프로그래밍, 및 대화 기반(dialog-based) 또는 텍스트 프로그래밍(textual programming)과 같은, 산업 로봇을 프로그래밍하기 위한 다양한 방법들이 존재한다.
본 발명의 분야에서 알려진 티치인 프로그래밍 방법에서, 로봇은 다양한 웨이포인트(waypoints)에 수동으로 접근함으로써 또는 다양한 웨이포인트를 저장함으로써 프로그램된다. 이러한 절차를 위한 도구는, 로봇의 상태 및 로봇 프로그램이 나타날 수 있는, 티치 패널(teach panel), 그래픽 디스플레이가 있는 원격 제어기이다. 사용자는, 예를 들어, 조이스틱으로, 3개 또는 6개의 공간적 방향으로 로봇의 마지막 조인트(joint)에 있는 정의된 지점인 도구 중심점(TCP)을 조향하여 로봇을 다른 지점들로 이동시킨다. 사용자는 이러한 정보에 접근하고 이러한 정보들을 로봇 프로그램에 통합하는 다양한 지점들의 좌표들을 저장한다. 이러한 경우에, 각각의 웨이포인트는 이동 명령(예를 들어, 지점에서 지점 이동, 선형 또는 원형 이동)의 목표 지점 또는 중간 지점으로 정의된다. 작업자는 수동으로 부가적인 경로 파라미터들(path parameters)(예를 들어, 속력, 가속 또는 이후의 명령과 혼합하여)을 입력한다. 로봇 프로그램(즉, 특히, 개별적인 운동 명령)의 구성은 일반적으로 목록에서 선택될 수 있으며 편집될 수 있다.
재생 프로그래밍(placyback programming) 방법이 본 분야에 알려진 경우에서, 개별적인 지점들이 저장될 뿐만 아니라, 큰 웨이 포인트 세트가 저장될 수 있도록, 사용자는 로봇 암을 연속적인 경로로 이동시킬 수 있다. 이러한 특징은, 예를 들어, 차량의 펜더를 따라, 자유형 경로를 이루도록 프로그래밍하는 것을 가능하게 하며, 그렇지 않을 경우, 티치인 프로그래밍의 개별적인 이동 명령을 프로그램하기가 어려울 것이다. 연속적인 리드 스루(lead-through)는 일반적으로 로봇 플랜지(robot flange)의 힘 토크 센서(FTS)에 의해 가능해진다. 인간, 또는, 더 구체적으로, 작업자는 로봇을 움켜쥐에 로봇에 힘을 가한다. 힘은 FTS에 의해 측정되며 로봇 제어기에 전달되며, 로봇 제어기는 힘을 보완하는 이동을 연속적으로 계산한다. 이후에, 이러한 경로는 로봇 프로그램 내 하나 이상의 이동 명령에 할당된다.
센서에 기초한 프로그래밍 방법에서, 연속적인 경로는 재생 방법과 동일한 방식으로 생성된다. 그러나, 예를 들어, 레이저 선의 구성 요소로의 투영, 카메라 시스템을 이용하여 이러한 선을 캡쳐링하는 것 및 검출된 선을 로봇의 이동 경로로 변환하는 것을 위한, 부가적인 센서들이 이러한 목적을 위해 사용된다. 이러한 경우에, 높은 정확성을 달성하는 것이 가능하다. 대형 로봇인 경우의 유리한 특징인 로봇은 직접 이동될 필요가 없다. 그러나, 카메라 및 로봇의 부가적인 하드웨어와 계측이 필요하다.
로봇이 현장에서 직접 프로그램되는 전술한 온라인 방법과는 대조적으로, CAD 프로그래밍 방법에서 작업 셀의 상세한 CAD 모델, 다루어져야 하는 로봇 및 구성요소들이 시뮬레이션 환경에서 로봇을 프로그램하기 위해 사용된다. 이러한 경우, 웨이포인트들이 마우스 상호작용에 의해, 예를 들어, 구성요소의 CAD 모델의 표면에서 결정된다. 그렇지 않을 경우, 완성된 경로들(예를 들어, CAD 모델의 경로들을 따르는 경로 또는 특정한 패턴을 따르는 경로, 예를 들어, 사행(meandering) 경로)이 표면에서 계산된다. 지점들은 지점 대 지점, 선형 또는 원형 이동 명령으로 매핑되며 로봇 프로그램에 저장된다. 부가적인 경로 파라미터들이 티치인 프로그래밍 방식과 동일한 방식으로 지정될 수 있다. 경로는 프로그래밍 작업 동안에 로봇을 사용하지 않고 CAD 모델의 직접적인 도움으로 계산될 수 있기 때문에, 이점들은 물체 표면을 따르는 경로를 결정하기 위한 최소의 노력을 포함한다. 그러나, 불리한 점은 실제 작업 셀과 시뮬레이션, CAD 모델의 제공 및 사소한 차이를 위한 필요한 조정 사이의 계측을 포함한다.
전술한 프로그래밍 방법의 공동분모는 다양한 방법에 의해 그래픽적으로 생성될 수 있는 웨이포인트 및 웨이포인트 (경로)의 순서에 의한 프로그래밍이다. 개별적인 웨이포인트들, 특히, 데카르트 웨이포인트(Cartesian waypoints)의 가장 큰 불리한 점은, 예를 들어, 장애물, 특이성 및/또는 사소한 편차가 있을 경우에 접근성의 부족 때문에, 로봇 프로그램이 작동하지 않는 결과와 함께, 이들에 접근할 수 없다는 것이다.
본 분야에서 알려진 대화 기반 및 텍스트 프로그래밍 방법에서, 완전한 로봇 프로그램들이 텍스트 편집기 또는 그래픽 키트(kit)를 이용하여 생성된다. 이러한 경우에, 로봇 제어기의 모든 기능이 이용될 수 있다. 특히, 예를 들어, 다루어져야 할 구성요소의 시각적인 현지화 또는 제조상의 차이에 의해 초래된 과정 변동에 응답하기 위해, 로봇 외부 센서들의 분석이 이용될 수 있다. 로봇 프로그래밍 언어에 직접 프로그래밍하는 것은 전술한 방법들(예를 들어, KUKA로부터 FTC제어를 이용하거나 또는 Adept로부터의 AdeptForce를 이용한 힘의 제어)에 의해 현재에는 프로그램될 수 없는 부가적인 이동 명령의 이용을 가능하게 한다. 힘을 제어하기 위해, 예를 들어, 피드백 제어, 힘/토크를 및 단순한 종결 제약을 위한 목표값을 위해 공간적 방향을 지정하는 것이 가능하다. 이러한 기본적인 명령으로부터, 아주 복잡한 로봇 프로그램들이 생성될 수 있다. 그러한 경우, 예를 들어, 실린더를 구멍에 삽입하는 단순한 작업 조차도 일부 이동 명령과 다양한 힘의 제어기들을 포함할 수 있다. 일반적인 조립 작업은 그러한 작업(예를 들어, 삽입, 스크류 삽입, 갈고리에 매다는 작업)의 규모에 기초한다. 따라서, 조립 작업의 구현은 상단한 노력과 관련된다. 또한, 로봇 프로그래밍 언어, 과정 및 로봇에 대한 전문가적인 지식이 필요하다는 불리한 점이 있다.
현재에서, 또다른 문제점은 자동화 구역에서 조차도 관련 업계의 자동화 정도가 상대적으로 낮다는 것이다. 로봇 암을 사용한 자동화된 응용의 대부분은, 차이에 대한 센서 기반 응답 없이, 로봇 암들이 고정적으로 프로그램된 운동 경로를 따라 이동한다는 사실에 의해 특징지어질 수 있다. 결과적으로, 예를 들어, 용접총과 같은 도구는 확고하게 프로그램된 운동 경로 상에서 이동한다. 예를 들어, 각각의 구성요소에 대한 특수 그리퍼(grippers) 및 특수 고정밀 피더(feeders)에 의한 현저한 공학적인 노력과 비용으로, 과정 내에서의 차이는 무시할 수 있는 수준으로 감소한다. 이러한 방법에 의해서만, 원한다면, 고정된 운동 경로를 생성하기 위해,티치인 또는 재생의 지원에 의한 프로그래밍 방법을 적용하는 것이 가능하다. 이러한 방법이 경제적으로 실행가능하지 않다면, 대부분의 경우에서, 종래의 관행은 더 복잡한 프로그래밍 방법에 의한 자동화를 생략하는 것이다. 이러한 전략의 문제점은, 예를 들어, 아래의 문제들로 인해 한계에 빨리 도달한다는 것이다.
- 짧은 생산 실행에는 빈번한 재 프로그램이 필요하기 때문에 많은 양의 공학적인 노력이 비 경제적이다. 예를 들어, 일주일을 주기로 변경되는 장비들의 품질 보장 테스트, 예를 들어, 세탁기의 장기간 테스트가 요구될 수 있다.
- 조립 작업은 종종 여유공간이 거의 없다. 따라서, 예를 들어, 구성 요소를 삽입하는 동안에, 힘의 상호작용이 불가피하다. 또한, 이러한 조립 작업은, 예를 들어, 그리핑(gripping), 결합, 접촉과 같은 다른 작업들이 대규모로 이루어진다.
- 탄성이 있는 구성요소들은 이들의 형상 기하학에 변형이 있다. 따라서, 이러한 형상 기하학적 변형이 과정에서 고려되어야 한다(예를 들어, 플라스틱 부분을 그리핑하거나 결합할 때 탄성 시트 금속판의 기하학적 변형이 고려되어야 한다).
- 시각적 센서들에 의해 검출되는 물체들(예를 들어, 스크류 고정용 스크류)은 항상 다른 위치에 있다. 따라서, 로봇의 위치는 유동적이어야 한다.
따라서, 현재에서, 인간의 노동에 의해서 대부분 수행되는 이러한 작업들은, 예를 들어, 조립 및 품질 보증 테스트를 하는 동안에, 고정된 운동 경로로 프로그램될 수 없다.
따라서, 본 발명의 목적은, 조작자 및/또는 조립 과정을 위한 로봇의 단순하고 강력한 프로그래밍이 가능하도록 하는, 본 명세서의 도입부에 서술된 타입의 로봇을 프로그래밍하기 위한 방법 및 시스템을 디자인하고 더 발전시키는 것이다.
본 발명에 따르면, 특허 청구항 제1항에 정의된 특징에 의해 전술한 공학적 목적이 달성된다. 제1항은 로봇을 프로그래밍하기 위한 방법, 특히, 로봇암을 포함하는 로봇을 프로그래밍하기 위한 방법을 개시하며, 방법에서는 로봇에 의해 행해져야 할 운동이 사전에 정의된 운동 템플릿(motion template)을 이용하여, 바람직하게는, 로봇 프로그램에 설정된다. 운동 템플릿은 복수의 운동 템플릿을 포함하는 데이터베이스로부터 선택된다. 운동 템플릿은 하나 이상의 파라미터, 및 적어도 하나의 학습 모듈이 있는 실행 모듈을 포함한다. 로봇의 이동을 계획하고/하거나 실행하기 위해 또는 로봇의 부분적인 이동을 위해, 하나 이상의 실행 모듈이 이용된다. 초기화 과정에서, 특히, 티칭 과정(teaching process)의 형태로, 학습 모듈은 로봇의 하나 이상의 구성들을 기록한다. 학습 모듈은 기록된 구성들에 기초하여, 바람직하게는 기계 학습 방법에 의하여, 하나 이상의 실행 모듈을 위한 파라미터들을 계산한다.
또한, 특허 청구항 제15항에 정의된 특징에 의해 전술한 공학적 목적이 달성된다. 제15항은 로봇을 프로그래밍하기 위한 시스템, 특히, 로봇암을 포함하는 로봇을 프로그래밍하기 위한 시스템을 개시하며, 시스템에서는 로봇에 의해 행해져야 할 운동이 사전에 정의된 운동 템플릿(template)을 이용하여, 바람직하게는, 로봇 프로그램에 설정된다. 운동 템플릿은 복수의 운동 템플릿을 포함하는 데이터베이스로부터 선택될 수 있다. 운동 템플릿은 하나 이상의 파라미터, 및 적어도 하나의 학습 모듈이 있는 실행 모듈을 포함한다. 로봇의 이동을 계획하고/하거나 실행하기 위해 또는 로봇의 부분적인 이동을 위해, 하나 이상의 실행 모듈이 이용된다. 초기화 과정에서, 특히, 티칭 과정(teaching process)의 형태로, 학습 모듈은 로봇의 하나 이상의 구성들을 기록한다. 학습 모듈은 기록된 구성들에 기초하여, 바람직하게는 기계 학습 방법에 의하여, 하나 이상의 실행 모듈을 위한 파라미터들을 계산한다.
마지막으로, 전술한 공학적 목적은 검퓨터 프로그램 제품과 관련된 특허 청구항 제16항에 개시된 특징들에 의해 달성된다.
유리한 방법으로, 본 발명의 교시를 디자인하고 추가로 발전시키기 위한 다양한 추가 옵션이 존재한다. 이를 위해, 한편으로는, 청구항 제1항에서 참조가 이루어지며, 다른 한편으로는, 도면에 대한 참조와 함께, 다른 바람직한 예시적인 실시예들의 서술과 함께 참조가 이루어진다. 도면을 참조하여, 본 발명의 바람직한 예시적인 실시예의 설명과 관련하여, 교시의 바람직한 실시예 및 부가적인 발전 또한 일반적으로 서술된다.
도 1은 로봇에 의한 스크류의 설정부터 미리 판단 가능한 토크까지 달성하기 위해 인간이 수동으로 로봇 프로그램을 제작하는 방법에 대한 예시의 개략도이다(종래 기술).
도 2는 본 발명의 방법 또는 시스템의 일 실시예의 개략도로서, 특히, 컴파일 프로세스 동안의 운동 템플릿의 계층적 구조이다.
도 3은 본 발명의 방법 또는 시스템의 예시적인 실시예에 따른 운동 템플릿의 구성 및 파라미터의 개략도이다.
도 4는 본 발명의 방법 또는 시스템의 예시적인 실시예에 따른 프로그래밍 과정의 개략도이다.
도 5는 본 발명의 방법 또는 시스템의 예시적인 실시예에 따라 교시된, 특히, 실행시간 및 목표제한으로, 로봇 프로그램을 프로그래밍하기 위한 개별 구성요소의 개략도이다.
도 6 내지 도 10은, 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 스크류를 죄는 동작에 대한 기록 구성을 위한, 초기화 프로세스, 또는 더 구체적으로, 티칭 프로세스의 개략도이며, 상기 구성은 작업자에 의해 생성된다.
도 11은 본 발명의 방법 또는 시스템의 예시적인 실시예에 대한 예시적인 타겟영역의 개략도이다.
도 12는 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 학습되거나, 더 구체적으로 기록될 구성을 생성하기 위한, 작업자를 위한 그래픽 명령의 일례이다.
도 13은 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 운동 템플릿에 대한 파라미터를 생성하는 학습 모듈에 의한, 초기화 프로세스의 이벤트 순서, 보다 구체적으로는, 티칭 프로세스의 순서의 개략도이다.
도 1은 로봇에 의한 스크류의 설정부터 미리 판단 가능한 토크까지 달성하기 위해 인간이 수동으로 로봇 프로그램을 제작하는 방법에 대한 예시의 개략도이다(종래 기술).
도 2는 본 발명의 방법 또는 시스템의 일 실시예의 개략도로서, 특히, 컴파일 프로세스 동안의 운동 템플릿의 계층적 구조이다.
도 3은 본 발명의 방법 또는 시스템의 예시적인 실시예에 따른 운동 템플릿의 구성 및 파라미터의 개략도이다.
도 4는 본 발명의 방법 또는 시스템의 예시적인 실시예에 따른 프로그래밍 과정의 개략도이다.
도 5는 본 발명의 방법 또는 시스템의 예시적인 실시예에 따라 교시된, 특히, 실행시간 및 목표제한으로, 로봇 프로그램을 프로그래밍하기 위한 개별 구성요소의 개략도이다.
도 6 내지 도 10은, 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 스크류를 죄는 동작에 대한 기록 구성을 위한, 초기화 프로세스, 또는 더 구체적으로, 티칭 프로세스의 개략도이며, 상기 구성은 작업자에 의해 생성된다.
도 11은 본 발명의 방법 또는 시스템의 예시적인 실시예에 대한 예시적인 타겟영역의 개략도이다.
도 12는 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 학습되거나, 더 구체적으로 기록될 구성을 생성하기 위한, 작업자를 위한 그래픽 명령의 일례이다.
도 13은 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라, 운동 템플릿에 대한 파라미터를 생성하는 학습 모듈에 의한, 초기화 프로세스의 이벤트 순서, 보다 구체적으로는, 티칭 프로세스의 순서의 개략도이다.
우선, 로봇 프로그램의 개발은 본 발명의 방식으로 인정된다. 본 발명의 로봇 프로그램은 물체의 위치 및 형상 기하학의 변형을 허용하며, 전술한 공학적 목적을 달성하기 위해, 또는 처리율(throughput), 반복성, 품질 등과 같은 관련된 가능성이 있는 작업의 자동화를 위하여 전술한 문제점들을 가능한 한 효율적으로 해결하기 위해, 대화 기반 및 텍스트 프로그램과 비교하여 현저히 단순화되어야 한다. 로봇 프로그램에서 편차에 대한 허용을 구현함으로써, 공학적 노력의 전체적인 양은 현저하게 감소될 수 있다. 예를 들어, 바람직하게, 단순하고 표준화된 공급장치 및 그리퍼 시스템은 또한 인간 작업자에게 적합하며, 따라서, 자동화가 경제적으로 가능해진다.
본 발명에 따르면, 로봇, 특히, 로봇 암을 포함하는 로봇을 프로그램하기 위해서는, 로봇에 의해 수행되어야 할 이동이, 바람직하게는, 사전에 정의된 운동 템플릿에 의해 로봇 프로그램에 설정되어야 한다. 운동 템플릿은 복수의 운동 템플릿들을 포함하는 데이터베이스로부터 선택된다. 본 발명에 따르면, 운동 템플릿은 하나 이상의 파라미터가 있는 실행 모듈 및 적어도 하나의 학습 모듈을 포함한다. 하나 이상의 실행 모듈이 로봇의 이동 또는 로봇의 부분적인 이동의 계획 및/또는 실행에 이용된다. 학습 모듈은 초기화 과정에서 로봇의 하나 이상의 구성을, 예를 들어, 티칭 과정의 형태로, 기록한다. 학습 모듈은, 바람직하게는, 예를 들어, RANSAC 알고리즘 또는 주성분 분석(principal component analysis)과 같은 기계 학습 방법을 이용하여, 기록된 구성들에 기초하여 하나 이상의 실행 모듈의 파라미터들을 계산한다.
종래의 티치인 및 재생 프로그래밍 방법의 단점은, 웨이포인트들과 경로들만이 생성될 수 있고, 편차를 허용하기 위한, 더 구체적으로, 편차를 보완하기 위한, 이러한 웨이포인트들과 경로들이 조정되어야 하는지 여부 및 조정되는 방법에 대한 정보가 없다는 것이다.
이동 통로를 정의함으로써, 운동 경로를 실행하는 동안의 편차를 고려하는 접근법과는 대조적으로, 본 발명의 독창적인 방법과 시스템 각각은 운동 경로의 편차 뿐만 아니라 다양한 다른 편차에서 고려될 수 있다 (예를 들어, 그리퍼 위치 및/또는 측정된 힘의 일시적인 변화로 인해 발생하는 편차와 다양한 과정 단계들 또한 고려되어야 한다).
결과적으로, 독창적인 컴퓨터 프로그램 제품 뿐만 아니라 독창적인 방법과 시스템은 로봇의 단순하고 강력한 프로그래밍을, 특히, 조작자 과정 및/또는 조립 과정을 위한 프로그래밍을, 가능하게 한다.
유리한 방식으로, 실행 모듈(들)의 파라미터들은 제한조건을 포함할 수 있다. 이러한 경우, 로봇의 이동 또는 로봇의 부분적 이동은 제한조건에 기초하여 계획되고/되거나 실행된다. 따라서, 결과는 로봇 이동의 가변적이고 동적인 계획이다. 따라서, 임의의 움직임의 변화에 대하여, 가능한 한 강력하고 유연한 로봇 움직임의 실행을 구현하는 것이 가능하다.
부가적인 유리한 방식에서, 제한조건은 제한함수(f) 및 제한영역(R)을 포함할 수 있다. 이러한 경우, 바람직하게, 제한함수(f)는 구성(k)를 실수 벡터 공간으로 매핑한다. 또한, 바람직하게, 제한영역(R)은 실수 벡터 공간의 부분집합에 대응한다. 만일 f(k)가 R 내에 있다면, 구성(k)를 위한 제한조건이 만족된다. 따라서, 아주 다른 종류의 제한조건들의 균일한 구현은, 로봇이 움직는 경로가 효율적인 방법으로 계획되게 하는 것을 가능하게 하는 측면의, 복잡한 방법으로 가능하다.
또한, 아래의 하나 이상의 타입들이 제한함수(f)를 위한 타입으로 이용될 수 있다.
- 로봇의 관절 또는 말단 작용체(end effector), 특히, 로봇 그리퍼의 각도, 속도 및/또는 가속도;
- 좌표 시스템에 대한 로봇의 위치, 배향 및/또는 도구 중심점의 위치;
- 좌표 시스템에 대하여 도구 중심점에서 측정된 속도, 각속도 및/또는 비틀림;
- 좌표 시스템에 대하여 도구 중심점에서 측정된 힘, 토크 및/또는 뒤틀림
- 충돌로부터의 자유도, 하나의 CAD 모델로부터 다른 CAD 모델까지의 거리의 크기 및/또는 거리 벡터;
- 말단 작용체, 특히, 로봇 및 CAD 모델 그리퍼의 그리핑 비율.
따라서, 위의 타입들 중 하나를 이용함으로써, 또는 하나 이상의 제한함수들에 대한 전술한 타입들의 일부를 결합함으로써, 로봇 움직임의 계획과 실행에 있어서, 가능한 한 다양한 종류의 변형들을 포괄적으로 고려하는 것과 보완하는 것이 가능하다.
하나의 유리한 실시예에서, 제한함수(R)을 위해 이용될 수 있는 타입은 축 정렬 큐브, 배향된 큐브, 실린더, 원뿔, 구, 볼록한 선체(convex hull), CAD 모델, ORing, ANDing, 및/또는 생산품 구성(product formation)을 포함한다. ORing, ANDing, 및 생산 구성은 적어도 두 개의 제한영역들을 하나의 제한영역으로 결합한다. 따라서, 제한함수의 적용 및 타입에 따라, 관련된 제한조건 영역에 대한 적절한 타입의 적절한 적용을 통하여 적절한 범위의 값들을 선택하는 것이 가능하다.
유리하게, 실행 모듈(들)의 파라미터들은 제한조건에 실행시간 제한조건을 포함할 수 있다. 이러한 경우, 실행시간 제한조건은 미리 정해질 수 있는 시간 간격 동안 만족되어야 할 제한조건을 정의하는 시간 의존적인 제한조건이다.
또한, 실행 모듈(들)의 파라미터들은 제한조건에 목표 제한조건을 포함할 수 있다. 이러한 경우, 목표 제한조건은 미리 정해질 수 있는 시간 간격의 상한 한도에서 또는 미리 정해질 수 있는 시간 간격 동안 만족되어야 할 제한을 정의하는 제한조건이다.
따라서, 제한조건에 기초한 움직임 서술의 실행시간 제한조건 설정 및 목표 제한조건 설정은, 조작 과정 또는 조립 과정의 실행 동안에 발생할 수 있는, 직접적으로 허용되는 편차의 모델일 수 있다. 또한, 실행시간 제한조건 및 목표 제한조건들은 더 큰 편차를 보완하기 위한 방법으로서의 정보를 구성한다. 이러한 측면은 그러한 정보를 제공하지 않는 종래의 프로그래밍 방법의 현저한 발전을 나타낸다.
하나의 유리한 실시예에서, 하나 이상의 실행 모듈은, 더 구체적으로, 실행시간 제한조건이 관측될 수 있는 방식으로 제어 알고리즘을 따르면서, 로봇의 움직임 또는 로봇의 부분적인 움직임을 조정할 수 있다. 또한, 목표 제한조건이 만족될 때, 로봇의 움직임 또는 로봇의 부분적인 움직임은 성공적으로 종료될 수 있다. 결과적으로, 운동 경로를 위한 구체화된 실행시간 및 목표 제한조건들 모두가 충족될 때, 로봇은 성공적으로 움직임을 수행한다. 로봇은 실행시간 제한조건이 관찰되는 방식으로 제어 알고리즘을 따르면서 로봇의 움직임을 조정할 것이다. 목표 제한조건이 충족되자마자, 움직임은 성공적으로 종료된다. 그렇지 않으면, 실행은 성공적이지 않다.
특별히 유리한 방식으로, 바람직하게는 경로 계획 알고리즘을 이용하여, 운동 템플릿의 실행 모듈(들)에 대한 움직임 경로는 제한조건들에 기초하여, 특히, 실행시간 및/또는 목표 제한조건들에 기초하여, 계산될 수 있다.
목표 시스템, 예를 들어, 로봇 제어기를 따름으로써, 하나 이상의 실행 모듈들은 유리한 방식으로 매핑될 수 있다. 이러한 목적을 위하여, 실행 가능한 로봇 코드가 실행시간 제한조건 및 목표 제한조건 뿐만 아니라 각각의 제어 타입, 계산된 운동 경로에 기초하여 생성될 수 있다. 이후에, 로봇 코드는 각각의 목표 시스템 내에서 완전히 독립적으로 실행될 수 있다.
또한, 초기화 과정에서, 다양한 인터페이스(예를 들어, 사용자에 의한 로봇의 수동 안내, 3D 시뮬레이션 환경 내 마우스 상호작용 및/또는 다른 적절한 제어 수단)에 의해서, 기록되어야 할 구성들이 사용자에 의해 생성될 수 있다는 것을 생각할 수 있다.
유리한 실시예에서, 사용자와의 상호작용은 초기화 과정에서 영향을 받을 수 있다. 이러한 경우, 기록되어야 할 구성들을 생성하기 위해, 질문 및/또는 명령이 사용자에게 전달된다. 결과적으로, 사용자는 초기화 과정 중에 또는, 더 구체적으로, 티칭 과정 중에 효율적으로 지원을 받을 수 있다.
단순하고 효율적인 구조화에 관하여, 하나 이상의 실행 모듈들은 실행 모듈이 분할될 수 없는 기본 연산자(즉, 원시 실행 모듈, 또는 하나 이상의 실행 모듈 및/또는 하나 이상의 운동 템플릿으로 구성)로 디자인되는 방식의 계층적인 구성으로 구성될 수 있다. 따라서, 임의의 이미 존재하고 파라미터가 된 운동 템플릿들 또는 실행 모듈들이 효율적으로 재사용될 수 있다.
독창적인 방법은 소재 및 이들의 형상 기하학을 위치시키는 데 있어서 변화량을 허용하는 로봇 프로그램의 강력한 설정을 가능하게 하며 산업에서 유리하게 이용될 수 있다.
그러한 로봇 프로그램들은 로봇 프로그래밍 언어(대화 기반, 텍스트 프로그래밍과는 반대)에서 명령의 형태로 직접 생성되지 않는다. 그러나, 그러한 로봇 프로그램들은 초기화 과정에서, 더 구체적으로, 티칭 과정에서, 미리 정의된 운동 템플릿의 데이터베이스에 기초하여 생성될 수 있다. 운동 템플릿은 주어진 과정의 약간의 구성들에 기초하여 티치인과 유사하게 생성될 수 있다.
운동 템플릿은, 바람직하게, 로봇에 의해 수행된 과정에서 임의의 변화량을 검출하고 선택적으로 편차를 보완하기 위한 실행가능한 규칙을 포함한다. 동시에, 티치인에서 이용된 웨이포인트들 사이에 운동 경로를 생성하기 위한 보간법(interpolation methods)은 (암시적으로 정의된) 웨이포인드 영역들 사이에 운동 경로들을 생성할 수 있는 경로 계획 방법에 의해 보완될 수 있다.
본 발명의 몇 가지 측면들이 예시적인 구현에 대한 참조와 함께 이하에서 더 세부적으로 서술된다. 이후의 서술은 단지 특정한 바람직한 실시이고, 본 발명의 교시는 이러한 예시적인 실시예들에 제한되지 않는다는 것이 명시적으로 주목되어야 한다.
초기화 과정으로서 티칭 과정은, 특히, 아래의 단계들을 포함할 수 있다.
1. 데이터베이스에서 로봇 프로그램에 (또는 비어있는 로봇 프로그램에) 운동 템플릿을 추가하는 단계(예를 들어, 삽입, 나선형 검색(spiral search), 진행 및 파악, 접촉). 각각의 운동 템플릿에 대하여, 실행 모듈의 하나의 세트와 하나의 학습 모듈이 있을 수 있다. 각각의 실행 모듈은, 바람직하게, 실행시간 및 목표 제한조건을 포함하는, 파라미터들을 가진다. 이러한 경우, 원시 실행 모듈은, 예를 들어, 하이브리드 힘/위치 제어와 같은, 알려진 제어기 구현이 확장되는 특정한 제어 알고리즘에 대응할 수 있다. 학습 모듈은 학습된 구성 및/또는 대화에 기초한 입력으로부터 파라미터를 생성하기 위해 기계 학습 방법을 구현한다.
2. 학습 모듈이 실행되는 단계. 특히, 실행시간 및 목표 제한조건의 생성을 포함하기 위해, 학습 모듈은 티치인 프로그래밍 방법의 확장으로 구성될 수 있다. 학습 모듈의 타입에 따라, 특정한 구성을 생성하기 위해, 학습 모듈은 사용자에게, 더 구체적으로, 운영자에게 (그래픽으로: 로봇 제어기/외부 PC에 대하여 3D 시각화, 대화 기반:2D 시각화) 질문을 전송할 수 있다. 이후에, 학습 모듈은 구성으로부터 실행 모듈의 파라미터들을 계산할 것이다. 사용자는, 예를 들어, 실제 로봇을 안내함으로써 또는 3D 시뮬레이션 환경에서 마우스 상호작용을 함으로써, 다양한 인터페이스 이용하여 이러한 구성들을 생성한다. 예를 들어, 실제 로봇은 사각형의4개의 코너들, 또는 CAD 모델에서 4개의 지점들에 대응하는 사용자 마커들을 정의하도록 되어 있는 4개의 구성들에서 움직인다. 예를 들어, 로봇암에 통합된 센서들, 및 외부 힘/토크 센서(FTS)에 의해서, 구성들은 기록된다.
3. 운동 템플릿의 학습 모듈에서 기계 학습 방법이 구현되는 단계. 이러한 기계 학습 방법은 기록된 구성들로부터 실행 모듈의 파라미터들을 계산한다. 기록된 구성들은 로봇암 위치, 및/또는 그리퍼 위치, 및/또는 힘/토크 측정, 및/또는 CAD 모델에서의 지점들을 포함할 수 있다.
4. 파라미터들에 기초하여, 바람직하게, 경로 계획 알고리즘(예를 들어, 빠른 랜덤 트리 알고리즘 탐색)을 사용하여, 운동 경로는 운동 템플릿의 각각의 실행 모듈에 대하여 계산될 수 있다. 이러한 단계는, 보간법의 타입들의 선택에 종속되는 웨이포인트들에 기초하여, 연속적인 경로(예를 들어, 두 개의 웨이 포인트들 사이의 선형 연결)가 생성되는 티치인 방법과 유사하다. 현재의 경우에서, 계획 알고리즘을 이용하여, 제한조건, 특히, 실행시간 및 목표 제한조건에 기초한 연속적인 경로가 생성된다.
5. 파라미터들을 가지는 실행 모듈들은 목표 시스템(즉, 예를 들어, 편집기를 이용한 로봇 제어기)에 매핑될 수 있다. 이러한 목적을 위해, 실행시간 및 목표 제한조건 뿐만 아니라 제어기 각각의 타입, 계산된 운동 경로에 기초한 실행 가능한 로봇 코드가 생성된다. 이후에, 로봇 코드는 각각의 목표 시스템에서 완전히 실행될 수 있다. 대안적인 실시예에서, 실행 모듈들, 특히, 원시 실행 모듈들은, 로봇 코드로 변환되지 않고, 컴퓨터, 또는 더 구체적으로, PC에 기초한 제어기에서 직접 실행될 수 있다.
종래의 티치인 또는 재생 방법과는 대조적으로, 실행 모듈들의 파라미터들은 웨이포인트 또는 운동 경로이어야 할 필요가 없다. 그보다는, 실행 모듈들의 파라미터들은 실행시간 및 목표 제한조건을 나타낼 수 있다. 실행시간 및 목표 제한조건 모두는 아래와 같이 균일하게 정의될 수 있다.
제한조건은 제한함수(f)(독일어로, Bedingungsfunktion)로 구성된다. 제한함수는 구성(k)을 실수 값 벡터 공간 및 제한영역(R)(독일어로, Bedingungsregion)으로 매핑한다. 제한영역(R)은 실수 값 벡터 공간의 부분집합에 대응한다. 만일, f(k)가 R 내에 있으면, 구성(k)에 대한 제한조건이 만족된다.
아래의 타입들은, 예를 들어, 제한함수(f)로 이용될 수 있다.
- 로봇 관절 또는 말단 작용체, 특히, 로봇의 그리퍼의 각도, 속도 및/또는 가속도;
- 좌표 시스템에 관련된, 위치, 배향 및/또는 로봇 중심점의 위치;
- 좌표 시스템에 관련된, 도구 중심점에서 측정된 속도, 각속도 및/또는 뒤틀림;
- 좌표 시스템에 관련된, 도구 중심점에서 측정된 힘, 토크 및/또는 비틀림;
- 충돌로부터의 자유도, 거리의 크기 및/또는 하나의 CAD 모델로부터 또다른 CAD 모델까지의 거리 벡터;
- 말단 작용체, 특히, 로봇의 그리퍼 및 CAD 모델의 그리핑 비율.
위치제한함수(position constraint function), 배향제한함수(orientation constaint), 또는 위치제한함수(location constaint function)(자세제약(pose constraint))와 관련하여, 제한함수(f)는, 3차원 벡터(위치(position)제약, 배향제약) 또는 6차원 벡터(위치(location) 제약)로서, 특정한 (미리 정의된) 좌표 시스템(K)에 대한 도구 지점(도구 중심점(TCP))의 현재의 위치를 구성한다.
하나의 예시적인 실시예의 맥락에서, 위치의 3차원 벡터를 포함하는 위치제한함수 및 배향 3차원 벡터의 계산은 아래와 같이 서술될 수 있다. 위치 및 배향 제한조건들은 단지 각각의 3차원 벡터만 중 하나만을 구성한다.
만일 H가 K에대한 TCP의 위치를 서술하는 균일한 변환 행렬이라면, 6방향 벡터가 H 및 H의 3차원 비례회전축(축의 각도를 나타낸다)의 3차원 변환 벡터에 의해 형성된다. H의 비례회전축은 아래와 같이 계산될 수 있다.
1. H의 3 x 3 회전행렬이 사원수(quaternion)(qx,qy,qz,qw)로 변환된다. qw는 실수 부분이다.
2. 회전 각도 a(alpha)는 2 * acos(qw)이다. Acos 은 아크코사인 함수이다.
3. 비례회전축은 a * 1/sin(a) * [qx,qy,qz]이다. [qx,qy,qz]는 qx,qy, 및 qz를 포함하는 3차원 벡터이다.
속도제한함수, 각속도제한함수, 및 비틀림제한함수가 유사한 방식(비틀림(twist) = 3차원 속도 벡터와 3차원 각속도 벡터로 구성된 6차원 벡터)으로 계산될 수 있다. 그러나, 이러한 경우에, 특정한 좌표 시스템(K)에 대한 TCP의 3차원 (변환) 속도 및 3차원 각속도는 속도 벡터들에 대한 변환 규칙에 따라 변환되어 제한함수의 값으로 저장된다.
힘, 토크 및 뒤틀림 제한조건들은 또한 이전의 영역에서와 같이 동일한 방식으로 다루어질 수 있다. 동시에, 힘, 토크 또는 힘과 토크 (뒤틀림)의 조합이 계산된다.
관절 각 제한함수, 관절속도 제한함수 및 관절 가속도 제한함수는 현재 위치, 속도 및 로봇 시스템 내 운동의 자유도 가속도의 n차원 벡터를 직접 나타낸다.
만일 로봇의 3D CAD 모델들과 로봇 주변 영역의 3D CAD 모델들이 충돌하거나 로봇 자체에서 충돌이 있다면, 충돌로부터의 자유 함수는 값으로 1을 출력하는 방식으로 구현될 수 있다. 이러한 충돌의 계산은, 특히, 3D CAD 모델의 삼각형 메시를 교차하여 수행할 수 있으며, 필요한 경우, 표준 라이브러리를 사용할 수 있다. 만일 충돌이 없다면 0이 반환된다.
거리 크기 제한함수는, 바람직하게는, 제1 및 제2 3D 모델의 2개의 포인트와 서로 가능한 가장 짧은 거리를 따르는 쌍의 포인트 사이의 거리로서의 제 2 3D CAD 모델로부터 3차원 CAD 모델의 유클리드 거리를 계산한다. 거리 벡터 제한함수는, 바람직하게, 동일한 지점들의 쌍의 제1 지점에서 제2 지점까지의 정규화 된 벡터를 계산한다.
위치 제한조건은 아래와 같은 예시를 따라 실현되거나 구현될 수 있다. 좌표시스템(K)이 물체의 무게중심에 정의되도록 한다. 이후에, 6차원 벡터로서, K에 대한 TCP의 관련된 위치가 전술한 식에 따라 계산된다. R은 중심점 벡터[m1 m2 m3 m4 m5 m6] 및 변화율 벡터[e1 e2 e3 e4 e5 e6]로서 주어진 6차원 큐브이다. 큐브는 (mi ei <= vi <= mi + ei)인 [v1 v2 v3 v4 v5 v6] 벡터 모두를 따른다. 제한조건은 도구 중심점과 로봇 팔 위치가 특정 영역, 예를 들어, 파악되어야 할 물체 위에 있어야 한다는 것을 의미한다. 이러한 경우에, 좌표 시스템(K)이 물체의 무게중심에 정의된다. 이러한 경우, R의 가능한 값은,
[m1 m2 m3 m4 m5 m6] = [0 0 0.05 1,5708 0 0] 및
[e1 e2 e3 e4 e5 e6] = [0.01 0.01 0 0 0 0] 이다.
제한조건 영역은, 대략 1.5708의 라디안에 상응하는 90도의 배향을 가지고 X 축에 대하여 회전된 물체의 무게 중심에서 0.05m 위에 위치한다. 이러한 지점에서의 허용 편차는 X 및 Y 방향으로 0.01m 이다.
힘 제한조건(독일어로, Kraftbedingung)은 아래와 같이 구현될 수 있다. FTS로 측정 된 힘은 3 차원 벡터 [fx fy fz]로 표시된다. 제한조건 영역(R)은 반경 r 및 중심점 벡터 [m1 m2 m3]를 갖는 3 차원 구(R)이다. 만일, [fx fy fz]가 R 내에 위치하면, 힘 제한조건이 만족된다.
즉, norm([fx-m1 fy-m2 fz-m3])<=r 이다.
이러한 경우에, 표준(norm)은 벡터의 유클리드 표준이다. 따라서, 만일, 힘의 총량이 r보다 작거나 r과 같다면, 힘 제한조건이 만족된다.
본 발명의 바람직한 실시예의 맥락에서, 제한조건은, K = 구성이고, r=R(k)의 차원과 동일한 차원을 가지는 실수값 벡터인, 아래의 계산식 중 적어도 하나를 만족해야 하거나 반드시 만족해야 한다.
1. f(k)=r, 즉, 함수(f)는 구성(k)에 적용될 수 있다. 모든 함수(f)가 만족되어야 한다.
2. f-1 (r, k') = k, 즉, r값과 참조 구성 k'이 주어진다면, f(k)=r을 만족시키는 구성(k)이 계산될 수 있다(계산 B.1).
3. f(k)는 r에 의해 증가할 수 있다. 즉, 구성(k)와 벡터(v)가 주어진다면, 구성(k')이 계산될 수 있다. 따라서, f(k')=f(f-1(f(k)+r))이다. 즉, 구성(k)는 변경이 R의 주어진 단계 r에 대응하는 방식으로 변경된다.
예시적인 실시 예에 따르면, 제한영역은 값 R의 실수 값 범위를 정의한다. 이러한 경우, R은 다음 계산 중 하나 이상을 가능하게 하거나 반드시 가능하게 해야 한다. r은 R의 차원과 동일한 차원을 갖는 실수 벡터이다.
1. r부터 R까지 실수값 거리 d>=0: r이 R에 있으면, d는 0, 그렇지 않으면, r부터 R의 표면까지의 최소거리이다(계산 B.2).
2. r에서 R의 표면까지의 실수 값 d: r이 R에 있으면 d는 r에서 R의 표면까지의 최소 거리의 음의 값이고, 그렇지 않으면, d는 r에서 R의 표면까지의 최소 거리이다.
3 e = 0 또는 1을 포함. r이 R에있는 경우에만 e가 1이다. 이러한 계산은 모든 제한조건 영역에 의해서 충족되어야 한다.
4. R의 중심점은 m. 이러한 계산은 모든 제한조건 영역에 의해서 충족되어야 한다.
5. 표면의 임의 지점 r. 임의의 벡터 r을 계산할 수 있으므로 r이 R의 표면에 놓인다.
6. 내부 공간으로부터 임의의 지점. 랜덤 벡터 r을 계산할 수 있으므로 r은 R이다(계산 B.3).
7. 임의의 방향(v)으로 R의 확장 계산(계산 B.4).
이러한 경우, R의 타입은 축 정렬 큐브(축 정렬 테두리 상자), 배향된 큐브(배향된 테두리 상자), 실린더, 원뿔, 구, 볼록한 선체, CAD 모델, ORing, ANDing 및/또는 투플 형성(tupel formation)을 포함하도록 이용될 수 있다.
결과적으로, 제한조건 기반 동작 서술의 실행시간 제한조건 및 목표 제한조건 세트는 로봇 프로그램을 실행하는 과정에서 발생할 수있는 허용 편차(예를 들어, 조립 프로세스)를 직접 모델링 할 수 있다. 또한, 실행시간 제한조건 및 목표 제한조건 세트는 이러한 정보를 제공하지 않는 종래의 프로그래밍 방법에 비해 크게 개선된 부분인, 더 큰 차이를 보완하는 방법에 대한 정보를 나타낸다.
더 큰 차이에 대한 가능한 보완은 아래에 자세히 서술된다. 이러한 경우, 운동 계획과 제어가 구별된다.
운동 계획의 맥락에서 ,목표는, 제약에 기초한 동작 서술을 만족하는, 동작 경로를 생성하는 것이다.
이러한 경우, Berenson et al. : "제약 매니 폴드에 대한 조작 계획"(IEEE 국제 로봇 공학 회의(ICRA'09), 2009 년 5 월)에 제시된 알고리즘 제한조건 기반의 양방향 고속 탐색 랜덤 트리(CBiRRT)가 Stilman, M:"로봇 관절 공간에서의 작업이 제한된 운동 계획"(Intelligent Robots and Systems, 2007)의 랜덤 그래디언트 디센트(RGD)의 투영 방법(the projection method randomized gradient descent)과 결합되어 실행시간 및 목표 제한조건에 적용될 수 있다. 이후에, 경로 계획 알고리즘은 다음의 단계들을 포함한다.
1. 목표 구성들을 생성하는 단계. 즉, 모든 목표 제한조건의 구성들이 총족된다. 타겟 구성 세트는 일반적으로 둘 이상의 구성요소를 포함하므로, 이러한 경우의 문제는, 예를 들어, 로봇 시스템이 물체를 내려 놓을 수 있는 곳에서 허용되는 편차에 관한 것이다.
2. 시작 구성에서 생성된 목표 구성으로, 구분적인 선형 연결을 탐색하는 단계. 이러한 단계에서, 시작 구성에서 목표 구성 중의 하나까지 실행되는 운동 경로가 생성된다. 결과적으로, 로봇 시스템은, 실행시간 제한조건의 형태로, 목표 지향적 방식으로, 주어진 편차 내에서 유효한 운동 경로를 독립적으로 생성할 수 있다.
그러나, 초기에는 목표 구성 및 탐색의 계산의 기초로서, 모든 제한조건이 충족되지 않는 구성을 모든 제한조건이 충족되는 유사한 구성으로 매핑하는, 투영 방법을 제공하는 것이 가능하다. 이를 위해, 랜덤 그레디언트 디센트(RGD(randomized gradient descent))가 투영 방법으로서의 제한조건을 가지고 구현될 수 있다. 목표는, 구성(k)을 구성(k')에 매핑하여, 주어진 k'의 제한조건 세트가 충족되고 k'가 d>0인 k값에서 멀리 떨어지지 않도록 하는 것이다. 즉, 제안 된 투영 방법은, 제한조건의 세트에 위반되는 구성(k)이 적어도 제한조건이 충족 될 때 까지 수정될 수 있음을 의미한다. 이러한 점에서, RGD 알고리즘은 특수한 거리 함수와 함께 이용된다.
거리 함수 dist()는 다음과 같이 정의될 수 있으며, 구성(k)와 제한조건(b1에서 bn)의 세트가 주어진다.
1. 각각의 bi에 대해 거리 값 di를 계산한다. f를 제한함수로 한다. 그리고, R은 bi의 구속조건 영역이다. R이 거리 계산을 지원하면(계산 B.2 참조), di = MAX의 최소값 및 f(k)에서 R까지의 거리를 유지한다. R이 거리 계산을 지원하지 않으면, di = 0, f(k)는 R에 포함된다. 그렇지 않으면, di = MAX이다. MAX는 상수>0이며, 이러한 경우에는 100,000이다.
2. 모든 거리 값(di)의 최대값 dmax를 형성한다.
3. 구성(k)에 대한 거리 함수값은 dmax이다.
RGD 알고리즘은 구성(k)를 구성(k')에 투영하며, 모든 제약(bi)은 랜덤 그라디언트 디센트를 수행함으로써 만족된다. 그러한 경우, 아래의 과정이 수행된다. e는 0보다 크다(e>0); 그리고, 최초에 k'을 k(k'=k)와 동일하게 한다.
Function bool RGD(k,bi,k'):
1. COUNTER = 0으로 세팅
2. COUNTER>MAXIMUM 이면, 반환값을 거짓(false)으로 하고 종료.
3. 균일한 분포 이후에, 구성(k)의 차원의 m 방향 벡터(si)를 생성. 구성 ki=k'+e*si 로 설정. 모든 ki에 대하여 vi=dist(ki)를 계산.
4. 모든 vi의 최소값(argmin 함수)으로 인수(j)를 판단.
5. vj=0이면, k'=kj로 설정하고, 반환값을 참(true)으로 하고 종료.
6. vj>= dist(k)이면, COUNTER = COUNTER + 1을 설정하고 2로 이동.
7. norm(k - k')> d이면, COUNTER = COUNTER + 1을 설정하고 2로 이동.
8. k'= kj로 설정.
9. 2로 이동.
이후에 다단계 프로세스에서 목표 구성이 생성될 수 있다. 주어진 bi=(fi, Ri)는 제한함수(fi)와 제한영역(Ri)에 주어진 목표 제한조건이다.
1. bi로부터 제한조건 bj를 판단하여, fj가 반전되고(계산 B.1 참조) Rj가 랜덤 벡터의 계산을 지원할 수 있다(계산 B.3 참조).
2. 모든 bj를 반복:
a. 계산 B.3에 따라 Rj에서 랜덤값(rj)을 계산.
b. kj = f- 1(rj,k)를 계산.
3. RGD(k,bi,k')가 참이면, 목표 구성 세트에 k'을 추가.
시작 구성(k0)에서 목표 구성(kj)까지의 세트에 대한 구분적인 선형 연결에 대한 탐색과 관련하여, CBiRRT 알고리즘을 다음과 같이 변경하여 사용될 수 있다.
ConstrainConfig(kold,knew) 단계는 RGD(kold, bi(t), knew)로 대체된다. 이러한 경우, bi(t)는 시점(t)에서의 실행시간 제한조건이며, 이는 계획 프로세스에 보조를 맞추기 위해 증가된다.
경로 계획 알고리즘의 최종 결과는, k1이 시작 구성에 대응하고 km이 목표 구성 세트 중 하나의 목표 구성에 대응하도록 하는, 구성(t1,k1),...,(tm,km)을 가지는 일련의 시점이다. 이러한 경우, k1에서 km-1까지의 실행시간 제한조건이 충족된다. km의 목표 제한조건이 충족된다.
예시적인 실시예에 따라 적절한 제어를 제공하기 위해, 제어 알고리즘 하이브리드 위치 및 힘 제어는, 실행시간 및 목표 제한조건에 기초하여, 파라미터화 되도록 더 발전될 수 있다.
이러한 경우, 실행시간 및 목표 제한조건의 해석은 다음과 같다.
1. 제어의 사용으로 관찰되어야하는 실행시간 제한조건.
2. 목표 제한조건이 충족되면, 목표 제한조건의 실행을 중단하는 목표 제한조건.
예시적인 실시예의 맥락에서, 제어 알고리즘은 x, y, z, rx, ry 및 rz의 6차원으로 구현된 비례 적분 미분 제어기(PID 제어기)로서 제공된다. 하이브리드 위치 제어기와 힘 제어기 사이의 주요 차이점은 오류 계산에 있으며, 오류 계산은 일반적으로 사용되는 선택 규칙을 대체한다. 제어 알고리즘은 위치, 방향, 위치, 힘, 토크 또는 비틀림 구속 조건 함수로 실행시간 제한조건을 지원한다. 이러한 제한 조건 함수는 일정한 구조를 가지며, 특정한 좌표 시스템(K)에 대한 TCP에서, 위치 또는 뒤틀림을 기초로 한다.
PID 제어기의 업데이트 단계는 아래와 같이 구현될 수 있다.
1. 모든 실행시간 제한조건을 반복.
2. 현재 실행시간 제한조건의 제약 함수(f)값 f(k)를 현재 구성(K)에 대해 계산.
3. PID 컨트롤러의 오차 계산은 x, y, z, rx, ry 및 rz의 각 차원에 대해 개별적으로 수행된다. 그렇게하는 과정에서 다음 단계가 각 차원(i)에서 수행된다.
a. 좌표(i)에서 f(k)에서 영역(m)의 중심점까지의 거리(d)를 계산.
b. 계산 B.4에 따라, i에 의해 주어진 방향으로 제한영역(R)의 확장(a)i를 계산. 동시에, 2D 평면의 경우와 같이, 확장이 무한대일 수 있음이 명시 적으로 가능하다.
c. di의 양이 ai보다 작다면, 에러 ei를 0으로 설정한다. 그렇지 않으면, 에러 ei = ai - di 이다.
d. 오류 ei에 PID 업데이트를 적용하고 원하는 값(si)을 계산.
4. 제한함수의 변환 규칙에 따라, 목표 벡터 s = [s1 s2 s3 s4 s5 s6]을 TCP로 변환.
5. 힘, 토크 또는 뒤틀림의 제한조건 함수가 주어지면, 스프링 힘의 원리에 따라, 주어진 스프링 상수를 가지는 목표 벡터를 목표 위치 벡터로 변환.
6. 모든 실행시간 제한조건의 목표 벡터와 변환된 목표 위치 벡터의 합을 계산.
7. 계산된 합을 기준으로 로봇을 이동시킨다.
따라서 로봇은, 현재의 실행시간 제한조건의 함수로서 주어진 차원(i)에서, 위치 제어, 힘 제어 또는 동시 위치 및 힘 제어 중 어느 하나를 수행한다.
현재 구성의 모든 목표 제한 조건이 충족되면 제어 프로세스가 종료된다.
또한, 제어 알고리즘은, 예를 들어, 관절각 공간 및/또는 데카르트 공간 또는 힘 제어에서의 위치 제어와 같은, 목표 제한조건의 이용으로 용이하게 확장될 수 있다. 이러한 경우, 현재의 구성(k)이 제어 루프에서 계산된다. k의 모든 목표 제한조건이 충족되면, 제어 프로세스가 성공적으로 종료된다.
본 발명의 예시적인 실시예에 따르면, 실행시간 및 목표 제한조건은, 허용 가능한 편차를 명시적으로 모델링 할 수 있는 경로 계획 및 제어를 통해, 운동 경로를 생성하기 위한 특히 유리한 파라미터를 구성하므로, 견고성이 향상 될 수 있다. 실행시간 및 목표 제한조건에 의한 프로그래밍은 알고리즘의 복잡성으로 인해 로봇 전문가들만의 영역이다. 따라서, 실행 모듈을 학습 모듈과 결합하는 운동 템플릿은 정교한 방식으로 이용된다. 실행 모듈은 제한조건에 의해, 특히, 실행시간 및 목표 제한조건에 의해 파라미터가 될 수 있다. 학습 모듈은, 실행모듈을 위한 파라미터로서 일부 구성들로부터 실행시간 및 목표 제한조건을 생성하기 위해, 간단한 기계 학습 알고리즘을 사용할 수 있다. 학습 모듈 자체는, 그 자체의 생성을 통해 몇 가지 구성의 도식적 표현의 도움을 받아, 단계적으로 작업자를 안내하는 프로세스를 나타낸다. 그 결과, 전문가가 아닌 사람들조차도, 종래에는 종료 기준이나 목표 기준에 대해 시간이 많이 걸리고 복잡한 텍스트 프로그래밍이 필요한 작업을 위한 로봇 프로그램을 쉽게 제작할 수 있다.
로봇의 움직임은 모션 템플릿을 통해 서술된다. 모션 템플릿은 하나 이상의 실행 모듈과 학습 모듈로 구성된다. 각각의 실행 모듈은 프리미티브 연산자(기본 연산자)이거나, 즉, 더 이상 분해 할 수 없거나, 다중 실행 모듈(매크로 연산자)로 구성된다. 그러한 경우에, 제어기(독일어로, Regler)와 경로 계획자(또한 운동 계획자)의 적어도 두 가지 실행 모듈 클래스가 있다.
경로 계획자는 실행시간 및 목표 제한조건에 따라 운동 경로를 생성한다. 제어기는 관절각 공간에서 서술된 위치 제어기 타입, 데카르트 공간에서의 위치 제어기, 힘 제어기 또는 확장된 하이브리드 위치/힘 제어기이다. 제어기 또는, 더 구체적으로, 폐루프 제어기는 운동 경로의 실행 중에 생성되는 실행시간 및 목표 제한조건을 처리한다.
실행 모듈은, 실행시간 및/또는 목표 제한조건 세트에 의해, 파라미터가 될 수 있다. 운동 템플릿에 저장된 실행시간 및 목표 제한조건은, 바람직하게, 부분적으로만 파라미터가 되는 것이 바람직하다. 각각의 제약조건에 대해, 제약 함수(f)의 타입 뿐만 아니라, 제한영역(R)의 타입도 고정되어 있다. 제한 함수의 파라미터는 자유함수이며, 따라서, 예를 들어, 위치 제한 조건에 대한 좌표 시스템(K) 또는 TCP 위치이다. 유사하게, 제한조건 영역의 파라미터는, 즉, 축에 배향된 큐브의 중심점, 배향 및 연장은, 자유 파라미터이다. 자유 파라미터는 학습 모듈에 의해 계산된다.
사용자, 또는 더 구체적으로, 초기화 프로세스 또는 티칭 프로세스의 일부로서 작업자와의 상호 작용에 관한 목표는 생성될 구성의 도식적 표현이므로, 사용자는, 실행 모듈의 자유 파라미터 계산을 위해, 의미론적으로 올바른 구성을 생성한다. 예를 들어, 사용자는 FTS로 힘 측정을 가능하게 하기 위해 물체와의 접촉을 설정해야 한다.
운동 템플릿은 느슨하게 정의되고 물체, 그리퍼 또는, 더 구체적으로, 로봇의 실제 모양은 독립적이므로, 프리젠테이션은 개략적인 형태로 수행된다.
개략적인 표현은 몇가지 방법으로 수행될 수 있다.
1. 실제 모션 템플릿 실행 및/또는 컴퓨터 애니메이션으로 표현된 모션 템플릿의 실행 및/또는 모션 템플릿의 프로토 타입의 예시에서 구성을 생성하는 프로세스의 비디오를 제공하는 단계. 후자의 경우, 개별 단계, 즉, 생성될 개별 구성이, 예를 들어, 비디오를 일시 정지함으로써 강조된다.
2. 대화 시스템을 사용하여, 구성을 생성하는 과정을 사용자에게 단계별로 안내하므로, 사용자는 이미 생성된 구성을 되돌릴 수 있고 과정의 일부를 반복할 수 있다. 1과 유사한 방식으로, 생성될 각각의 구성에 대한 적어도 하나의 대화 상자가 생성되어야 할 구성의 개략적인 시각화와 함께 생성된다.
자유 파라미터는 구성(Ti)에 기초한 학습 모듈에 의해 계산될 수 있다. 이러한 경우, 제한조건의 타입과 제한조건 함수가 주어진다.
T1 내지 Tn이 제한조건 b = (f,R)의 자유 파라미터를 계산하기 위한 구성이라면, 아래의 단계가 수행한다.
1. f(T1),...f(Tn)을 계산하는 단계.
2. 자유 파라미터 없이, 제한영역(Rp)에 숫자 값을 할당하는 품질 함수(g(Rp))>=0를 지정하는 단계. 논의중인 연구에서, g(R) = 체적 및 영역(R) 표면의 가중된 합.
3. 이후의 최적화 문제를 해결하기 위해, 예를 들어, Simplex 또는 Rosenbrock 알고리즘과 같은 비선형 최적화 방법을 사용하는 단계. g(R)에 대한 Rp가 최소가 되도록 R의 자유 파라미터에 대한 값을 찾고 f(T1) 내지 f(Tn)은 Rp에 포함된다.
바람직하게, 어느 정도 파라미터화 된 운동 템플릿에 대한 주어진 학습 모듈의 사용은, 단지 작은 구성 세트로 실행시간 및 목표 제한조건을 판단하는 것을 가능하게 하며, 프로그래밍 시간의 감소로 이어지는 측면이 있으며, 동시에, 견고한 산업적 용도로 요구되거나, 또는, 더 구체적으로 견고한 산업적인 용도에 유리한 특징인 과정 결과를 확인하는 것을 가능하게 한다.
텍스트 또는 대화 기반 프로그래밍과 비교하여, 프로그래머는 움직임 명령의 파라미터를 직접 입력할 필요가 없다. 대신에, 이러한 파라미터는 선행된 티칭 과정에서 자공으로 계산된다.
각각의 타입의 제어와 각각의 목표 시스템은 실행 모듈을 실행 가능한 로봇 코드로 변환하는 컴파일 규칙이 있을 수 있다. 이를 통해, 목표 제한조건 평가가 로봇 코드에서 직접 모델링된다. 실행시간 제한조건은 제어기 타입의 함수로 시뮬레이션된다. 위치 제어기의 경우, 로봇암의 위치 또는 관절의 각도에 영향을 주는 실행시간 제한조건만이 조정된다(예를 들어, 전술한 방법을 사용한다). 힘 제어기의 경우, 측정된 FTS 값에 대한 실행시간 제한조건이 조정된다. 하이브리드 위치/힘 제어의 경우, 실행시간 제약 조건은 위치 및 FTS 값으로 고려된다. 동시에, 제한영역(R)이 힘 또는 위치 제어되는 공간축을 판단하기 위해 분석된다. 임계값보다 큰 특정 공간축의 확장은 무한 확장으로 평가된다. 무한 확장자를 가지는 공간축은 위치 제한조건에서 위치가 제어되지 않으며 힘 제한조건에서 힘이 제어되지 않는다.
본 발명의 독창적인 방법 및/또는 시스템 및/또는 이들의 다양한 유리한 실시예는 편차를 고려할 필요가 있는 로봇 프로그램을 포함하는 종래의 티치인의 확장을 구성한다. 바람직하게, 결과는 티치 인의 경우처럼 이동 명령 뿐만 아니라 이동 명령이 여전히 실행시간 및 목표 제한조건을 포함하는 실행 가능한 프로그램이다. 통합된 제어 알고리즘은 실행시간 제한조건을 관찰하고 목표 제한조건을 달성하기 위해 제어기 타입에 따라 로봇 이동을 조정한다. 따라서, 전술한 가능한 유리한 실시예는, 한편으로는 수작업으로 생성될 수도 있으며 대화 기반 또는 텍스트 프로그래밍에 의해 매우 시간 소모적인 방식으로만 제작될 수도 있었던, 제어 전략을 갖는 로봇 프로그램을 제작하는 것을 용이하게한다.
따라서 가능한 프로세스 단계는, 템플릿 기반 티칭 구성, 실행시간 및 목표 제한조건의 계산, 프로토 타입의 운동경로 계산, 실행시간 및 목표 제한조건과 함께 프로세스 제어 매핑, 로봇 코드의 생성을 위한 컴파일 등을 포함한다.
전술한 내용은, 프로그래머가 프로그래밍 언어로 제어 프로세스를 개발하고 현재 작업에 대한 파라미터를 수동으로 정의하는 대화식 또는 텍스트 프로그래밍 방식의 유사한 프로세스를 대체한다. 프로그래머는 프로그래밍 언어로 목표 및 종료 제한조건을 생성하고 파라미터화 한다. 시작 자세와 중간 지점은 티치인에 의해 로봇에 생성된다.
대조적으로, 본 발명의 독창적인 방법 및 시스템 및/또는 유리한 실시예는 작업자에 대한 요구가 더 적은 빠른 방법 및, 동시에, 복잡한 로봇 프로그램을 생성할 수 있게 하여, 경제적 또는 복잡성의 이유로 인해 현재까지도 자동화되지 않은 애플리케이션들이 자동화될 수 있게 한다. 또한, 생성된 부분적인 해결책은, 즉 파라미터화 된 운동 템플릿 세트는, 학습 모듈로 개별 구성을 수정함으로써 쉽게 적용될 수 있기 때문에, 쉽게 재사용 될 수있다.
특히, 정의된 작업 프로파일의 경우에는, 예를 들어, 프로그래머가 다이얼로그 기반 또는 텍스트 프로그래밍 인터페이스를 이용하여 시간이 많이 걸리는 방식의 수작업으로 많은 수의 이동 명령에 대한 목표 및 종료 기준을 작성하는, 평균적인 조립 작업이 더 이상 필요하지 않다. 대신에, 이러한 절차는 일련의 운동 템플릿에서 간단하고 정교한 로봇 프로그램을 생성하고 각각의 학습 모듈에 대해 잘 정의된 일부의 구성을 가르치는 것으로 대체된다.
최종 로봇 프로그램은, 실행시간 및 목표 제한조건의 형태로, 목표 기준 및 종료 기준을 자동으로 포함한다. 따라서, 티치인 또는 재생과는 달리, 특정한 웨이 포인트에 접근할 필요가 없으며, 제약 조건이 충족되는 경우, 예를 들어, 웨이 포인트가 영역에서 접근될 수 있는 경우, 이동이 성공으로 실행될 수 있다. 그 결과 실행이 보다 유연해진다. 또한, 편차를 보완하는 방법에 대한 정보가 제한조건의 형태로 존재한다.
따라서, 로봇 프로그램은 제한조건 영역의 확장에 대응하는 편차를 허용한다.
본 발명의 바람직한 실시예의 맥락에서 이용하기에 유리한 정의의 일부 예가 아래에 제시된다.
경로 계획 문헌에서, 구성(독일어로, Konfiguration)은 로봇 시스템의 상태에 대한 독특하고 명확한 서술이다. 따라서, 현재의 경우, 다음의 정보를 포함하는 n 차원의 실수 벡터로서의 구성이 제공될 수 있다.
- 로봇 시스템에서 제어 가능한 모든 자유도 및 제어 불가능한 모든 자유도의 값, 즉, 6축 산업용 로봇의 6개의 관절 각도의 값.
- 로봇에 실장된 도구에서 제어 가능한 모든 자유도 및 제어 불가능한 모든 자유도의 값, 즉, 전기 죠 그리퍼(electric jaw gripper)에 대한 그리퍼 죠(gripper jaw) 위치의 값.
- 로봇에 실장된 센서의 기록된 센서 데이터 값, 즉, 6차원 힘 토크 센서의 경우, 토크, 공간 방향 x,y, 및 z에 대한 3개의 값 뿐만 아니라 공간 방향 x,y, 및 z에서 측정된 힘에 대한 3개의 값.
- 시점(t)의 값
구성 공간(독일어로, Konfigurationsraum)은 로봇 시스템을 점유할 수 있는 모든 구성의 세트이다. 이러한 경우, 예를 들어, 로봇을 자기 충돌로 이끄는 제어 가능한 관절 각도의 위치와 같은, 물리적인 경계 제한조건은 무시된다. 구성이 n 개의 좌표로 구성되고 각 좌표가 Li와 Ui 사이의 값을 취할 수 있는 경우, 구성 공간은 차원 n과 가장자리 길이 Ui - Li 및 중심점(Li + Ui)/2를 갖는 하이퍼 큐브로 정의된다.
운동경로(운동)는 0에서 1 사이의 닫힌 간격의 각 지점에 구성을 할당하고 연속적인 함수 b로 지정할 수 있다. 지점 0에 있는 b 값은 시작 구성이다. 지점 1의 b 값은 목표 구성이다. 따라서, 운동 경로는 구성 공간에서 연속적인 연결이다.
제한조건(독일어로, Bedingung)은 0 또는 1의 값을 구성(k)에 할당하는 함수 (g)로 지정될 수 있다. 제한조건(g)은 g(k) = 1 인 경우에만 구성(k)에서 만족된다고 가정한다. 그렇지 않으면, 제한조건은 만족되지 않는다.
실행시간 제한조건(독일어로, Wahrendbedingung)은 시간 종속 제한조건으로 지정될 수 있다. 즉, 실행시간 제한조건은 각 시점(t)에 대한 제한조건을 정의한다. 실행시간 제한조건은 0보다 크고 1보다 작은 지점에서 운동 경로의 값에 적용된다. t>=0 이고 t<1인 모두에 대해 g(t)(b(t)) = 1일 때에만, 운동 경로(b)의 실행시간 제한조건(g(t))이 만족된다.
목표 제한조건(독일어로, Zielbedingung)은 운동 경로의 지점(1)에 있는 값에 적용되는 제한조건으로 지정될 수 있다. g(b(1)) = 1 인 경우에만 모션 경로(b)의 목표 제한조건(g)이 충족된다.
제한조건에 기초한 운동 서술(또한 제한조건에 기초한 운동의 표시)은 실행시간 제한조건 세트와 목표 제한조건 세트로 정될 수 있다. 모든 실행시간 제한조건과 운동 경로의 모든 목표 제한조건이 충족되는 경우, 운동 경로는 제한조건에 기초한 동작의 서술을 충족시킨다.
실행시간 및 목표 제한조건을 이용하여 로봇 운동을 실행하는 과정에서, 운동 계획의 사용 및/또는 제어의 이용을 통해, 운동 경로를 생성할 수 있다.
움직임 계획의 경우, 로봇이 동작하기 전에 운동 경로가 생성된다. 제어의 경우, 실행 중에 제어 알고리즘을 통해 운동 경로가 생성된다. 따라서, 시작 구성은 일정하며 이동의 시작에 대응된다. 목표 구성은 항상 로봇 자체가 현재의 시간에서 발견되는 현재의 구성이다.
결과적으로, 제어 알고리즘으로 생성된 경로는 꾸준히 증가한다. 운동 경로에 대해 주어진 실행시간 및 목표 제한조건이 모두 충족되면, 로봇은 성공적으로 동작을 수행한다. 로봇은 실행시간 제한조건을 관찰하는 방식으로 제어 알고리즘을 따라ㄹ 동작을 조정한다. 목표 제한조건이 충족되면 이동이 성공적으로 종료된다. 그렇지 않으면, 실행이 성공적이지 않다.
도 1 내지도 12의 도면은, 일반적인 응용 예, 즉, 로봇에 의해 특정 토크까지, 소재의 스크류를 조이는 로봇의 프로그래밍을 포함한다.
도 1은 로봇에 의해 미리 판단 가능한 토크까지 스크류를 조이기 위해, 인간이 종래 기술에 따라 수동으로 생성하는 예시적인 로봇 프로그램(1)의 개략도를 도시한다. 특정한 경우에서, 도 1에 따라, 로봇 프로그램(1)은, 특히, 현재에는 사람이 수동으로 프로그래밍하거나 제작해야 하는 방식의, 전술한 작업을 실행/수행하기 위한 명령 또는 로봇 명령을 포함한다. 상자는 파라미터가 있는 개별 로봇 명령이다. P1, P2, P3 및 P4는 프로그래머에 의해 수동으로 파라미터로서 프로그램에 통합되는 학습된 포인트이다. 센서[2]는 로봇의 힘/토크 센서의 Z값을 판독하고, 센서[5]는 Z에 대한 토크를 판독하며, OUT[0] = 1 또는 0은 로봇에서 스크류 드라이버를 활성화 또는 비활성화한다.
도 1에 일례로서 도시된 로봇 프로그램(1)은 다음의 프로그램 명령(PA1 내지 PA14)을 포함한다.
PA1 : 스크류 위의 시작 위치 P1으로 신속하게 이동.
PA2 : 스크류 드라이버에서 P2까지, 즉, 스크류 위로 2mm로 전진.
PA3 : Z 방향의 측정된 힘의 값이 2뉴턴일 경우.
PA4 : 공구 중심점을 기준으로 Z방향으로 1mm 이동.
PA5 : 루프 종료.
PA6 : 스크류 드라이버 활성화.
PA7 : P4에 현재 공구 중심 위치 저장.
PA8 : 힘의 제어를 활성화하고 Z 방향으로 5N 조정.
PA9 : 위치 변화가 1cm보다 작고 Z축에 대한 측정 된 토크값이 10Nm 미만인 경우.
PA10 : 하나의 시간 단계만큼 대기.
PA11 : 루프의 종료.
PA12 : 토크값이 10Nm 이상이면, 스크류 조이기 성공.
PA13 : 스크류 드라이버 비활성화.
PA14 : 위치 P3에서 조여진 스크류로부터 벗어남.
도 1의 예시에 따르면, 프로그래머, 또는 더 구체적으로, 사람은 "<2", "<0.01", "<10"등과 같은 프로그램 및, 개별적인 파라미터의 구조를 고려하거나 선택해야 한다. 티치 패널은, 프로그래머가 중간지점에 접근하여 중간지점(특히 P1 ~ P4 지점)을 프로그램에 삽입할 수 있게 한다. 프로그램 구조를 정의하고 다양한 종료 기준을 정의하려면 많은 노력이 필요하다.
도 2는 본 발명의 방법 또는 시스템의 예시적인 실시 예의 개략도를 도시하며, 특히, 컴파일 프로세스 중에 모션 템플릿(2)의 계층 구조(스크류 고정)가 표시된다. 따라서, 도 2는 로봇 프로그래밍 소스 코드가 텍스트 프로그래밍 없이 컴파일 과정에서 모션 템플릿으로부터 단계적으로 자동 생성될 수 있는 방법을 보여준다. 일반적으로, 생성된 소스 코드는 사람이 작성/생성하는 것과 정확히 일치하지 않는다. 도 2에서의 상황은 단순성을 위해 가정되었다.
도 2의 오른쪽에 표시된 운동 템플릿(2)은 여러 실행 모듈(3)로 구성되어 있다. 원칙적으로, 실행 모듈들(3) 각각은 차례로 운동 템플릿 또는 하나 이상의 실행 모듈들(4)(계층적 표현)을 포함할 수 있다. 이러한 기능은 서브 루틴을 나타내고 재사용 할 수 있게 한다.
가장 낮은 수준에는 더 이상 분류되지 않는 실행모듈이 있다. 컨트롤러의 입력/출력과 같은 로봇 프로그램의 일반적인 명령이 포함된다. 컴파일 프로세스와 관련하여 사용되는 실행 모듈 컨트롤러가 있다. 유형은 제어기 타입, 특히, 위치 제어, 힘 제어 또는 하이브리드 위치/힘 제어를 참조한다. Ri와 Gi는 각각 실행시간 제한조건과 목표 제한조건이다. 각 유형의 제어기는 실행시간 제한조건(Ri)이 관측되고 목표 제한조건(Gi)이 달성되는 방식으로 구현된다. 이러한 레벨의 실행 모듈과 실행시간 및 목표 제한조건의 타입에 대해, 이러한 제약 조건을 각각의 목표 로봇 제어기의 실행 가능한 로봇 프로그램 소스 코드에 매핑하는 방법에 대한 규칙이 저장된다. 모든 파라미터를 계산한 후, 실행 가능한 소스코드를 생성하기 위해 이러한 규칙이 적용된다.
도 3은 본 발명의 방법 또는 시스템의 예시적인 실시예에 따른 운동 템플릿 (2)("스크류를 고정")의 구조 및 파라미터의 개략도를 도시한다. 운동 템플릿(2)은 실행 모듈(3), 실행 모듈(3) 및 학습 모듈(5)의 시퀀스에 관한 구조적 정보(그래프의 연결 위의 화살표 참조)로 구성된다. 실행 모듈(3)은 부가적인 실행 모듈 (또는 바람직하게는, 운동 템플릿)의 계층적으로 구성 될 수있다.
로봇 시스템(예를 들어, 팔 위치, 그리퍼 위치), 센서 데이터(예를 들어, 힘/토크 측정) 및 CAD 모델의 참조지점(예를 들어, 3D 모델의 접촉점)에서, 운동 템플릿(2)의 파라미터(T1 내지 T6)는 다양한 자유도, 바람직하게는, 다양한 자유도 모두를 포함하는 구성이다.
실행 모듈의 구조는 실행 모듈의 구조에서 생성되고 실제 실행 순서에 대응하는 로봇 프로그램 소스 코드의 실행 순서를 반영한다.
학습 모듈은 이들의 구조에 따라 실행되고, 실행 모듈의 파라미터, 즉, 구성 T1 - Tn으로부터, 특히, 실행시간 제한(Ri) 및 목표 제한(Gj)을 계산한다. 이러한 맥락에서, B.f는 제한(B)의 제한함수를 나타내고, B.R은 제한(B)의 제한영역을 나타낸다.
특정한 경우에, 도 3에 도시된 예시적인 실시예에 따라, 동작 모듈(3)로, 즉 MoveToState, MoveToContact, FastenScrew 및 Depart로 동작 템플릿(2)("스크류 고정")이 구성될 수 있다. 일반적으로, 실행 모듈(3)의 파라미터는 실행시간 제한(Ri) 및 목표제한(Gi)이다. 이러한 실행시간 및 목표 제한조건은 학습 모듈의 미리 정의된 기능을 통해 단계적으로 계산된다.
도 3의 실행 모듈(MoveToState)는 하나의 목표 제한(G1)을 가진다. 이러한 목표 제한조건은 관절각 제약 타입의 제한함수(f)를 갖는다. 즉, 구성(k), f(k)는 스크류 위의 학습된 형상(T1)에 대응하는 중심점 및 로봇 관절 위치 센서의 부정확성에 대응하는 반경, 예를 들어, 0.0001 RAD를 갖는 구형의 제한영역(R) 뿐만 아니라, 로봇의 모든 관절각 값으로 구성된 실수 벡터이다.
MoveToState는 내부적으로 경로 계획 실행 모듈인 "Motion Planner"(도 2 참조)와 제어기 실행 모듈 "Controller"로 구성된다. 경로 계획 실행 모듈은 정의 된 경로 계획 프로세스를 사용하여 시작 구성에서 목표 제한(G1)을 만족하는 구성까지의 동작 경로(P1)를 계산한다(즉, 로봇 조인트 위치 센서의 부정확성을 제외하고는 학습된 구성(T1)에 접근한다). 이후에, 계산된 운동 경로가 타입 위치 제어기의 제어기와 함께 실행되고 로봇 관절 위치 센서로 측정된 마지막 구성이 목표 제한조건을 충족할 때 성공한다. 결과적으로, 로봇은 현재 구성에서 스크류 드라이버가 스크류 위에 위치하는 구성으로 이동한다.
도 3에 따른 실행 모듈 MoveToContact는 실행시간 제한(R1) 및 목표제한(G2, G3)을 갖는다. 실행모듈은 하나의 경로 계획 실행 모듈과 두 개의 제어 실행 모듈로 구성된다. 실행시간 제한조건(R1)은 스크류 위의 구성에서 스크류 드라이버가 스크류와 접촉하는 구성으로의 선형 이동을 나타낸다. 제한조건 함수는 시작 구성에서 TCP 위치와 정확히 대응하는 좌표 시스템을 기준으로 TCP를 제한하는 위치 제한조건 함수이다. 제한조건 영역은 큐브이며 초기화 프로세스에서 학습되는 구성(T1,T2,T3)에서 계산된다. 즉, 스크류 방향의 확장은 스크류(T1) 위의 구성에서 스크류 (T2,T3)와 접촉하는 구성까지 이동한 경로의 길이에 대응한다. 직교 연장은 직선 운동으로부터 인간이 T1에서 T2 및 T3으로 학습시킨 편차에 대응한다. G2는 R1과 동일한 제한 함수가 있지만 다른 제한조건 영역이 있는 위치제한 함수이다. 제한 영역은 최소 확장자를 갖는 큐브이며 T2 및 T3에서 제한조건 함수의 값을 포함한다.
실행시간 및 목표 제한조건을 갖는 실행 모듈의 균일하고 복잡한 파라미터 화는 학습된 구성으로부터 이들 파라미터를 생성하는 균일한 기계학습 방법을 제공하는 것을 가능하게 한다.
운동 템플릿(2)의 모듈(5)을 학습하는 목적은, 몇 가지 구성으로부터 실행시간 및 목표제한의 형태로 주어진, 실행 모듈(3)의 파라미터를 생성하는 것이다. 여러개의 직관적인 입력 채널을 통해 구성을 생성할 수 있기 때문에, 최종 결과는 문자 프로그래밍 방식보다 프로그래밍 방법이 훨씬 간단하며, 기능적 측면에서 유사한 로봇 프로그램(종료 조건 및 컨트롤러 포함)을 생성 할 수 있다.
이 분야에서 알려진 종래의 방법에 비한 장점은 상대적으로 복잡한 로봇 프로그램을 생성하는 데 필요한 최소한의 구성(또는 기계 학습 문헌의 교육 사례까지도)에 있다. 이러한 측면은 동작 설명의 초기, 특히, 운동 템플릿의 설명에서 실행시간 자유 파라미터와 목표 제한조건을 계산하기 위한 명시적인 규칙을 저장함으로써 가능하다. 이러한 경우, 이러한 규칙은 학습 모듈(5)에서 실행되는 개별 프로세스 단계로 표현된다.
일련의 프로세스 단계가 학습 모듈에 정의된다. 이들 각각의 프로세스 단계는 구성 세트에 기초하여 도 3의 T1 내지 T6, 런타임 또는 목표 제약조건을 계산한다. 이후에, 이러한 런타임 및 목표 제약 조건이 실행 모듈의 입력으로 사용된다.
도 3의 예시에 따르면, 실행 모듈 MoveToContact는 런타임 제약 R1 및 목표 제약 G2 및 G3의 3개의 파라미터를 갖는다. R1은 실린터 타입의 제한영역의 위치 제한조건이다. R1의 자유 파라미터, 즉, 실린더의 중심점의 위치, 높이, 및 반경은 구성 T1, T2 및 T3으로부터 계산된다. 이를 위해, T1, T2 및 T2에 제약 조건 함수 (f)를 적용하여 결과 R1.f(T1), R1.f(T2), R1.f1(T3)을 얻는다. 동시에, 적용되는 함수 실린더(A1,A2,An)는 최적화 알고리즘을 사용하여 A1 내지 An 벡터로부터 구속 조건의 자유 파라미터를 계산한다. 계산된 실린더는 TCP가 접촉점으로 가는 도중에 수행해야 하는 움직임을 근사화한다.
본 발명의 방법의 예시적인 실시예의 접근에 따르면, 대부분의 구조는 운동 템플릿의 실행 모듈에 의해 생성된다. 종료 기준은 학습된 구성에서 계산된 실행시간 및 목표 제한조건의 도움으로 자동으로 정의된다.
도 4는 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따른 프로그래밍 프로세스의 리스트를 도시한다. 프로그래밍 프로세스는 TS1에서 TS6까지의 단계로 구성된다.
TS1 : 모션 템플릿을 전체 프로그램에 삽입.
TS2 : 학습 모듈 실행
TS3 : 사용자에게 키 구성 생성 질의.
TS4 : 실행시간 및 목표 제한조건 계산을 위한 규칙 실행.
TS5 : 경로 계획을 실행하여 실행시간 및 목표 제한조건에 따라 경로를 계산.
TS6 : 실행 가능한 로봇 프로그램 소스 코드로 컴파일.
도 5는 사용된 구성 요소의 시각화를 나타낸다. 작업자(6)는 로봇(7) 상에 및 컴퓨터/PC(CAD 모델상의 포인트들)에 의해 직접 구성을 생성한다. 로봇(7)은 주변 영역(예를 들어, 힘 또는 시각적으로)을 감지하기 위해 하나 이상의 센서(9) 및 스크류 드라이버(10)를 가진다. 컴퓨터/PC(8)의 도움으로, 로봇 제어기(11)에 대한 소스 코드가 생성되고, 이러한 소스 코드는 전술한 제어기 또는 로봇(7) 상에서 작동할 수 있다.
도 6, 도 7, 도 8, 도 9, 및 도 10은, 도 5에 도시된 적용 분야에 따라, 조작자에 의해 생성되어 스크류를 조이는 로봇(7)을 프로그래밍하기 위한 구성 T1 내지 T6의 시각화를 나타낸다.
도 6은 프로세스, 즉, 초기화 프로세스, 또는 더 구체적으로, 티칭 프로세스의 시작을 도시하며, 이러한 경우 작업 동작을 수행하기 위해, 로봇(7)은 스크류(12)가 센서(9)와 스크류 드라이버(10)를 포함하는 로봇(7)을 가지는 소재(13)에 조여지도록 프로그램 되어야 한다.
도 7에 따르면, 작업자는 스크루 드라이버(10)를 접촉없이 스크류(12) 바로 위에 안내하여 구성(T1)을 기록한다. 목표 제한사랑(G1)은, 사전에 정의된 타입의 제한함수(f) = 관절각 제한 함수, 및 제한영역(R) = 구가 구성(T1)으로부터 계산되는, 사전에 정의된 타입의 함수를 가진다. 함수 sphere는 품질 기준에 따라 구성 (T1)을 포함하는 최적의 구를 계산한다.
G1.R = Sphere(G1.f (T1))
목표제한(G1)은 로봇이 이러한 팔의 위치를 정확하게 잡아야 함을 의미한다.
도 8에 따르면, 작업자는 스크류(12)와 접촉하도록 로봇(7)을 안내한다. 작업자는 2 개의 여분의 구성(T2,T3)을 기록한다. 두 가지 (가능하면 더 많은) 구성은 스크류와 접촉하도록 이동하는 과정에서 힘에 대한 목표 구속 조건(G3)을 계산하는 데 사용된다. 구속 조건 함수의 타입은 스크류 드라이버(10)의 끝 및 시작 구성에서, 즉, T2에서, TCP의 위치에 정확하게 동일한 좌표 시스템에 도구 중심점(TCP)을 가지는 힘 제한조건이다. 이러한 타입의 제한조건은 큐브이다.
큐브 함수는, T2 및 T3에 대한 제한함수값, 즉, TCP로 변형되어 측정된 힘에 기초하여, 제한영역(G3)을 계산한다.
G3.R = Cube(G3.f (T2), G3.f (T3))
또한, 이동 방향은 이전 구성 T1과 T3의 차이로 계산되어 실행시간 제한조건으로 저장된다. 즉, 로봇(7)은 학습된 방향으로 이동해야 한다.
T1, T2, 및 T3의 제약 함수 값에 대해, 함수 실린더는 이러한 값을 포함하는 최적의 실린더를 계산한다. 이러한 경우, R1.f는 위치 제한 기능이다.
R1.R = Cylinder(R1.f(T1),R1.f(T2),F1.f(T3))
목표 제약 조건(G2)은 유사한 방식으로 계산된다. 그러나, 제한영역 타입은 큐브이다.
G2.R = Cube(G2.f (T2), G2.f (T3))
G2는 접촉점으로의 이동을 계산하는 데 사용된다. 실행시, 계산된 이동이 실행되고 G3가 충족되면 성공적으로 종료된다.
도 9에 따르면, 작업자는 스크루 드라이버(10)를 작동시켜 스크류(12)에 스크류를 조이고 스크류 드라이버(10)를 정지시킨다. 작업자는 이러한 과정을 반복하고 각각의 운동이 종료되면 두 개의 여분 구성(T4,T5)을 저장한다.
이전 구성(T2) 및 새로운 구성(T4)은 R1과 유사한 방식으로 스크류의 이동에 대한 실행시간 제한조건을 계산하는 데 사용된다.
R2.R = Cylinder(R2.f(T2),R2.f(T4))
즉, 스크류(12)가 조작자가 표시한 것 보다 더 멀리 이동하자마자 이동이 종료된다.
또한, 스크류 드라이버(10)가 스크류(12)에 가하는 힘에 대한 실행시간 제한이 계산된다. 프로세스는 G3와 유사하다.
R3.R = Cube(R3.f(T4),R3.f(T5))
동일한 구성이 목표 제약조건을 계산하는 데 사용된다. 즉, 토크가 작업자에 의해 학습되는 토크의 범위 내에 있는 경우, 이동은 성공적이다. 계산은 R3과 유사하지만 토크 제한 기능이 있다.
G4.R = Cube(G4.f(T4),G4.f(T5))
도 10에 따르면, 작업자는 로봇(7)을 스크류(12)로부터 구성(T6)까지 멀어지게 이동시킨다. 이전 구성(T5,T6)은 G2와 유사한 방식으로 목표 제한조건을 계산하는 데 사용된다.
G5.R = Cube(G5.f(T5),G5.f(T6))
즉, 로봇(7)은 T5에서 T6까지의 상향으로 거리에 대응하는 상대적인 이동을 할 것이다. 그렇게 함으로써, 로봇(7)은 스크류(12)로부터 안전한 거리를 이동한다.
도 11은 본 발명의 방법 또는 시스템의 예시적인 실시예에 대한 목표제한의 힘 제한함수에 대한 예시적인 제한영역의 개략도를 도시한다.
도 11은 구성(T2,T3)에 기초하여 G3.R=Cube(G3.f(T2),G3.f(T3))를 계산하기 위한, 도 8의 기록 단계와 유사하다. 구성(T2,T3)에서, 로봇(7)에 관한 모든 관련된 정보는 학습이 일어날 때 저장되고, 따라서, 측정된 힘의 값도 저장된다. 목표 제한조건(G3)의 경우, 함수(f)와 제한영역(R)은 여전히 판단되어야 하는 자유 파라미터와 함께 학습 모듈에 저장된다. 이러한 경우, f는 참조 좌표 시스템(F1)(현재의 경우에, 도구 중심점과 동일)에 대하여 공구 중심점(TCP)에서, 현재의 경우에, 스크류 드라이버(10)의 단부 지점에서, 3차원 벡터(fx fy fz)로 측정되어 힘으로 정의된 힘 제한함수이다. f의 두 개의 값은 T2 및 T3, 즉, f(T2) 및 f(T3)에 대해 계산된다.
이러한 예에서, 구속 영역(R)은 구 타입의 구속 영역, 즉, 중심점(M) 및 반경을 갖는 구이다. 구속 영역은 T2와 T3의 제한함수의 두 값으로부터 sphere() 함수로 계산된다. 결과적으로, 계산된 반경은 로봇 자체가 제어 프로세스 중에 허용 할 수 있는 학습된 힘 값의 평균값의 편차와 정확히 일치한다. 따라서, 작업자는 적절한 구성에 의해 실행의 견고성을 향상시킬 수 있다.
도 12는 본 발명의 방법 또는 시스템의 예시적인 실시예에 따라, 학습되거나 더 구체적으로, 기록될 구성을 생성하기 위한 작업자 또는 작업자보다는 사용자를 위한 그래픽 명령(14)의 예를 도시한다. 특정한 경우에, 그래픽 명령의 예시가 학습 과정에서 작업자/사용자에게 나타난다. 작업자는 유사한 응용 프로그램(2D 또는 3D)에서 학습되거나, 더 구체적으로, 바람직하게, 초기화 프로세스를 통해 단계적으로 기록되어야 하는 구성의 프로토 타입 예시를 얻는다.
도 13은 본 발명의 방법 또는 시스템의 예시적인 실시 예에 따라 운동 템플릿에 대한 파라미터를 생성하는 학습 모듈에 의한 초기화 프로세스의 이벤트 순서, 보다 구체적으로, 티칭 프로세스의 개략도를 도시한다. 도 13은 나선형 검색을 수행하는 운동 템플릿에 대한 학습 모듈의 이벤트 순서의 표현을 포함한다. 목표는 떨어 뜨린 물체(15)를 구멍(16)에 삽입하는 것이다. 구멍(16)의 위치가 정확하게 알려지지 않은 경우, 제1 단계는 구멍(16)을 찾는 것이다. 이를 위해, 운동 템플릿 나선형 탐색이 이용된다. 나선형 검색에서, 물체(15)를 가지는 로봇은 구멍(16)이 위치한 평평한 표면(17)과 접촉하게 된다. 이를 위해, 이미 설명된 실행 모듈 MoveToContact가 사용됩니다. 접촉시, 로봇은 헬리컬 운동(helical movement)(18)을 수행하고, 그렇게 함으로써, 표면에 힘을 가한다. 나선형이 구멍(16)을 통과하면, 물체(15)는 구멍(16) 내로 미끄러진다. 목표 제한사항에 의해 표현된 상태인 적어도 최소 및 최대의 밀리미터 만큼, 물체(15)가 구멍(16) 내로 미끄러지자마자, 이동이 종료된다.
a) 작업자는 구멍(16) 주위의 영역을 정의하는 4가지 구성을 연속하여 나타낸다. 작업자는 물체(15)가 구멍(16)(도 13a 참조) 내로 이동되는 영역을 정의하는 3개의 다른 구성을 나타낸다.
b) 처음의 네 가지 구성은 그림 2와 유사한 방식으로 MoveToContact에 대해 하나의 실행시간 제한조건과 두 개의 목표 제한조건을 생성하는 데 사용된다. 제한 조건 영역 큐브의 타입과 함께 생성된 목표 제한조건은 단계적인 나선 운동을 생성하는데 이용된다(도 13b 참조). 가장 큰 확장을 가지는 두 개의 공간 방향은, 예를 들어, 주성분 분석을 이용하여 계산된다. 예를 들어, 아르키메데스 나선형과 같은 나선형을 생성하는 알고리즘을 사용하면, 나선형이 생성되어 두 개의 가장 큰 확장 내에서 크기가 조정된다(도 13d 참조).
c) 마지막 두 가지 구성은 타입 위치 제한 함수 및 제한영역 타입 실린더 (도 9와 유사)의 목표 제한조건을 계산하는 데 이용된다(도 13c 참조).
d)도 13c에 따른 목표제한이 만족되면, 즉, 물체가 구멍 내로 미끄러지면, 로봇은 나선형으로 움직이고 성공적으로 이동을 정지한다.
본 발명의 방법의 다른 유리한 실시예 및 본 발명의 시스템과 관련하여, 반복을 피하기 위해 설명 및 청구 범위의 전반적인 부분이 참조된다.
최종적으로, 본 발명의 방법 및 본 발명의 시스템의 서술된 예시적인 실시 예는 단지 청구된 설명을 서술하기 위해 이용되었지만, 예시적인 실시예에 대한 교시를 제한하지 않는다는 것에 주의해야 하는 것은 분명하다.
1 로봇 프로그램
2 운동 템플릿
3 실행 모듈
4 실행 모듈
5 학습 모듈
6 작업자
7 로봇
8 컴퓨터
9 센서
10 스크류 드라이버
11 로봇 제어기
12 스크류
13 소재
14 그래픽 표시
15 물체
16 구멍
17 표면
18 나선형 이동
M 중심점
F1 참조 좌표 시스템
PA1 - PA14 프로그램 명령
TS1 - TS6 하위 단계
2 운동 템플릿
3 실행 모듈
4 실행 모듈
5 학습 모듈
6 작업자
7 로봇
8 컴퓨터
9 센서
10 스크류 드라이버
11 로봇 제어기
12 스크류
13 소재
14 그래픽 표시
15 물체
16 구멍
17 표면
18 나선형 이동
M 중심점
F1 참조 좌표 시스템
PA1 - PA14 프로그램 명령
TS1 - TS6 하위 단계
Claims (15)
- 로봇을 프로그래밍하기 위한 방법에 있어서,
로봇에 의해서 수행되어야 할 이동은 로봇 프로그램 내에서 미리 정의된 운동 템플릿(motion template)으로 설정되고,
상기 운동 템플릿은 복수의 운동 템플릿들을 포함하는 데이터베이스로부터 선택되며,
상기 운동 템플릿은 적어도 하나의 파라미터화 할 수 있는 실행 모듈 및 적어도 하나의 학습 모듈을 포함하고,
상기 적어도 하나의 실행 모듈은, 상기 로봇의 이동 계획, 상기 로봇의 이동의 실행, 상기 로봇의 부분적인 이동 계획, 및 상기 로봇의 부분적인 이동의 실행 중 적어도 하나에 이용되며,
상기 적어도 하나의 학습 모듈은, 초기화 과정에서, 상기 로봇의 구성을 기록하고,
상기 적어도 하나의 학습 모듈은, 기록된 구성들에 기초하여, 상기 적어도 하나의 실행 모듈을 위한 파라미터들을 기계 학습 방법을 사용하여 계산하며,
상기 적어도 하나의 실행 모듈의 파라미터들은 제한사항들을 포함하고,
상기 로봇의 이동 또는 부분적인 이동은 상기 제한사항들에 기초하여 계획되는 것과 실행되는 것 중 적어도 하나이며,
하나의 제한사항은 제한사항 함수(f) 및 제한영역(R)을 포함하고,
상기 제한사항 함수(f)는 구성(k)을 벡터 공간으로 매핑하며,
상기 제한영역(R)은 상기 벡터 공간의 부분집합에 대응하고,
f(k)가 R 내에 위치하면, 상기 구성(k)에 대한 상기 제한사항이 만족되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법. - 제1항에 있어서, 아래의 타입들:
- 로봇의 관절 또는 말단 작용체(end effector)의 각도, 속도, 및 가속도 중 적어도 하나;
- 좌표 시스템에 대한 로봇의 위치, 배향, 및 도구 중심점의 위치 중 적어도 하나;
- 좌표 시스템에 대하여, 도구 중심점에서 측정된 속도, 각속도, 및 비틀림 중 적어도 하나;
- 좌표 시스템에 대한 도구 중심점에서 측정된 힘, 토크, 및 뒤틀림 중 적어도 하나;
- 충돌로부터의 자유도, 하나의 CAD 모델로부터 또다른 CAD 모델까지의 거리의 크기, 및 하나의 CAD 모델로부터 또다른 CAD 모델까지의 거리 벡터 중 적어도 하나; 및
- CAD 모델과 상기 로봇의 말단 작용체의 그리핑 비율; 중 하나 이상의 타입들이 제한함수(f)로서의 타입으로 이용되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법. - 제1항에 있어서, 제한영역(R)으로 이용될 수 있는 타입은, 축 정렬된 큐브, 배향된 큐브, 실린더, 원뿔, 구, 볼록한 선체(convex hull), CAD 모델, ORing, ANDing 및 생산품 구성(product formation) 중 적어도 하나를 포함하는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제3항에 있어서, 상기 Oring, 상기 ANDing, 및 상기 생산품 구성은 적어도 2개의 제한 영역을 하나의 제한 영역으로 결합하는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 상기 적어도 하나의 실행 모듈의 파라미터들은 제한사항으로서 실행시간 제한사항을 포함하고, 실행시간 제한사항은 미리 정해진 시간 간격에 대하여 만족되어야 할 제한사항을 정의하는 시간 의존적인 제한사항인 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 상기 적어도 하나의 실행 모듈의 파라미터들은 제한사항으로서 목표 제한사항을 포함하고, 목표 제한사항은 미리 정해진 시간 간격의 상한(upper interval limit)에서 만족되어야 할 제한사항인 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 상기 적어도 하나의 실행 모듈은, 실행시간 제한사항이 관찰되는 방식의 제어 알고리즘에 따라, 로봇의 이동 또는 부분적인 이동을 조정하는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 상기 로봇의 이동 또는 부분적인 이동은 목표 제한사항이 만족될 때 성공적으로 종료되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 상기 제한사항에 기초하여, 경로 계획 알고리즘을 이용하는 상기 운동 템플릿의 상기 적어도 하나의 실행 모듈에 대한 운동 경로가 계산되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 컴파일링에 의해, 상기 하나 이상의 실행 모듈들은 목표 시스템으로 매핑되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 기록되어야 할 구성들을 초기화하는 과정은, 사용자에 의해 로봇을 수동으로 안내하는 수단, 및 3D 시뮬레이션 환경 내 마우스 상호작용 중 적어도 하나에 의해, 사용자에 의해 생성될 수 있는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항에 있어서, 사용자와의 상호작용은 상기 초기화 과정에서 영향을 받고,
기록되어야 할 구성들을 생성하기 위해, 질의 및 지시 중 적어도 하나가 사용자에게 전달되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법. - 제1항에 있어서, 실행 모듈이 프리미티브 연산자(primitive operator)로 디자인되는 방식으로, 또는 실행 모듈이 적어도 하나의 실행 모듈과 적어도 하나의 운동 템플릿 중 적어도 하나에 의해 형성되는 방식으로, 적어도 하나의 실행 모듈이 계층적으로 구성되는 것을 특징으로 하는, 로봇을 프로그래밍하기 위한 방법.
- 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하는 시스템에 있어서,
로봇에 의해서 수행되어야 할 이동은 로봇 프로그램 내에서 미리 정의된 운동 템플릿(motion template)으로 설정되고,
상기 운동 템플릿은 복수의 운동 템플릿들을 포함하는 데이터베이스로부터 선택될 수 있으며,
상기 운동 템플릿은 적어도 하나의 파라미터화 할 수 있는 실행 모듈 및 적어도 하나의 학습 모듈을 포함하고,
상기 적어도 하나의 실행 모듈은, 상기 로봇의 이동 계획, 상기 로봇의 이동의 실행, 상기 로봇의 부분적인 이동 계획, 및 상기 로봇의 부분적인 이동의 실행 중 적어도 하나에 이용되며,
상기 적어도 하나의 학습 모듈은, 초기화 과정에서, 상기 로봇의 구성을 기록하고,
상기 적어도 하나의 학습 모듈은, 기록된 구성들에 기초하여, 상기 적어도 하나의 실행 모듈을 위한 파라미터들을 기계 학습 방법을 사용하여 계산하며,
상기 적어도 하나의 실행 모듈의 파라미터들은 제한사항들을 포함하고,
상기 로봇의 이동 또는 부분적인 이동은 상기 제한사항들에 기초하여 계획되는 것과 실행되는 것 중 적어도 하나이며,
하나의 제한사항은 제한사항 함수(f) 및 제한영역(R)을 포함하고,
상기 제한사항 함수(f)는 구성(k)을 벡터 공간으로 매핑하며,
상기 제한영역(R)은 상기 벡터 공간의 부분집합에 대응하고,
f(k)가 R 내에 위치하면, 상기 구성(k)에 대한 상기 제한사항이 만족되는 것을 특징으로 하는, 시스템. - 프로그램 코드를 가지는 컴퓨터 프로그램을 저장한 기록매체로서, 상기 프로그램 코드는 기계 판독기에 저장되고, 상기 프로그램 코드는 제1항 내지 제13항 중 어느 한 항에 따른 로봇을 프로그래밍하기 위한 방법을 제공하는 것을 특징으로 하는, 컴퓨터 프로그램을 저장한 기록매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014210525.0 | 2014-06-03 | ||
DE102014210525 | 2014-06-03 | ||
DE102015204641.9A DE102015204641B4 (de) | 2014-06-03 | 2015-03-13 | Verfahren und System zur Programmierung eines Roboters |
DE102015204641.9 | 2015-03-13 | ||
PCT/DE2015/200313 WO2015185049A1 (de) | 2014-06-03 | 2015-05-15 | Verfahren und system zur programmierung eines roboters |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167034098A Division KR20160149290A (ko) | 2014-06-03 | 2015-05-15 | 로봇을 프로그래밍하기 위한 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190105039A KR20190105039A (ko) | 2019-09-11 |
KR102126729B1 true KR102126729B1 (ko) | 2020-06-26 |
Family
ID=54481690
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167034098A KR20160149290A (ko) | 2014-06-03 | 2015-05-15 | 로봇을 프로그래밍하기 위한 방법 및 시스템 |
KR1020197022969A KR102126729B1 (ko) | 2014-06-03 | 2015-05-15 | 로봇을 프로그래밍하기 위한 방법 및 시스템 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167034098A KR20160149290A (ko) | 2014-06-03 | 2015-05-15 | 로봇을 프로그래밍하기 위한 방법 및 시스템 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10279476B2 (ko) |
EP (1) | EP3013537B2 (ko) |
JP (1) | JP6580602B2 (ko) |
KR (2) | KR20160149290A (ko) |
CN (1) | CN106457565B (ko) |
DE (1) | DE102015204641B4 (ko) |
WO (1) | WO2015185049A1 (ko) |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10120364B2 (en) * | 2015-03-27 | 2018-11-06 | GM Global Technology Operations LLC | Self-corrective nut running for robotic applications |
FR3035961B1 (fr) * | 2015-05-04 | 2020-12-25 | Commissariat Energie Atomique | Procede, programme d'ordinateur et systeme pour la commande d'un deplacement d'un agent navigant dans un environnement organise en reseau |
EP3532916A4 (en) | 2016-10-26 | 2020-07-01 | Soroco Private Limited | SYSTEMS AND METHODS FOR DISCOVERING AUTOMATIC TASKS |
KR101764120B1 (ko) * | 2016-11-21 | 2017-08-14 | 한국과학기술정보연구원 | 3d 모델링 기반 삽입력과 이탈력 해석 방법 및 그 장치 |
JP6534126B2 (ja) * | 2016-11-22 | 2019-06-26 | パナソニックIpマネジメント株式会社 | ピッキングシステム及びその制御方法 |
JP6438450B2 (ja) * | 2016-11-29 | 2018-12-12 | ファナック株式会社 | レーザ加工ロボットの加工順序を学習する機械学習装置、ロボットシステムおよび機械学習方法 |
JP6877192B2 (ja) * | 2017-03-03 | 2021-05-26 | 株式会社キーエンス | 画像処理装置、画像処理方法、画像処理プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 |
JP6577527B2 (ja) * | 2017-06-15 | 2019-09-18 | ファナック株式会社 | 学習装置、制御装置及び制御システム |
JP6619395B2 (ja) | 2017-07-12 | 2019-12-11 | ファナック株式会社 | ロボットシステムおよびロボットの教示方法 |
EP3428754B1 (de) * | 2017-07-13 | 2023-02-15 | Siemens Aktiengesellschaft | Verfahren zum einrichten eines bewegungsautomaten und einrichtungsanordnung |
US11413748B2 (en) * | 2017-08-10 | 2022-08-16 | Robert Bosch Gmbh | System and method of direct teaching a robot |
US10828775B2 (en) * | 2017-09-26 | 2020-11-10 | Siemens Aktiengesellschaft | Method and system for automatic robot control policy generation via CAD-based deep inverse reinforcement learning |
KR101948558B1 (ko) * | 2017-09-28 | 2019-02-18 | 김종태 | 손으로 조작하여 프로그래밍 가능한 모듈러 로봇 |
CN107617877B (zh) * | 2017-10-13 | 2019-05-10 | 湘潭大学 | 一种多机器人装配单元及其优化方法 |
CN109895089A (zh) * | 2017-12-10 | 2019-06-18 | 湘潭宏远电子科技有限公司 | 一种机器人移动监测装置 |
CN109895087A (zh) * | 2017-12-10 | 2019-06-18 | 湘潭宏远电子科技有限公司 | 一种机器人交互系统 |
CN109895135A (zh) * | 2017-12-10 | 2019-06-18 | 湘潭宏远电子科技有限公司 | 一种机器人控制装置 |
US10800040B1 (en) | 2017-12-14 | 2020-10-13 | Amazon Technologies, Inc. | Simulation-real world feedback loop for learning robotic control policies |
US10792810B1 (en) * | 2017-12-14 | 2020-10-06 | Amazon Technologies, Inc. | Artificial intelligence system for learning robotic control policies |
US10926408B1 (en) | 2018-01-12 | 2021-02-23 | Amazon Technologies, Inc. | Artificial intelligence system for efficiently learning robotic control policies |
EP3518059B1 (de) * | 2018-01-24 | 2020-04-01 | Siemens Aktiengesellschaft | Verfahren zur rechnergestützten benutzerassistenz bei der in-betriebnahme eines bewegungsplaners für eine maschine |
DE102018203078B3 (de) * | 2018-03-01 | 2019-05-09 | Kuka Deutschland Gmbh | Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie und zugehöriges Computerprogrammprodukt |
US11084169B2 (en) * | 2018-05-23 | 2021-08-10 | General Electric Company | System and method for controlling a robotic arm |
JP7028092B2 (ja) * | 2018-07-13 | 2022-03-02 | オムロン株式会社 | 把持姿勢評価装置及び把持姿勢評価プログラム |
JP6826076B2 (ja) * | 2018-07-17 | 2021-02-03 | ファナック株式会社 | 自動経路生成装置 |
DE102018214417B3 (de) * | 2018-08-27 | 2019-07-25 | Volkswagen Aktiengesellschaft | Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm |
CN109032571A (zh) * | 2018-08-28 | 2018-12-18 | 苏州艾利特机器人有限公司 | 一种机器人工艺程序生成方法 |
DE102018218081A1 (de) * | 2018-10-23 | 2020-04-23 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Ansteuerung eines Robotersystems |
JP7184595B2 (ja) * | 2018-10-29 | 2022-12-06 | オークマ株式会社 | 工作機械システム |
SG11202104268YA (en) * | 2018-11-16 | 2021-05-28 | Liveperson Inc | Automatic bot creation based on scripts |
US20200160210A1 (en) * | 2018-11-20 | 2020-05-21 | Siemens Industry Software Ltd. | Method and system for predicting a motion trajectory of a robot moving between a given pair of robotic locations |
CN111670091B (zh) * | 2018-12-25 | 2022-12-13 | 深圳配天智能技术研究院有限公司 | 机器人程序指令编译方法、机器人控制系统及存储装置 |
DE102019201045B4 (de) * | 2019-01-28 | 2020-11-26 | Robert Bosch Gmbh | Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters |
CN113196193A (zh) * | 2019-02-13 | 2021-07-30 | Abb瑞士股份有限公司 | 用于管理机器人程序的方法和装置 |
US20200289889A1 (en) | 2019-03-11 | 2020-09-17 | Rom Technologies, Inc. | Bendable sensor device for monitoring joint extension and flexion |
US11471729B2 (en) | 2019-03-11 | 2022-10-18 | Rom Technologies, Inc. | System, method and apparatus for a rehabilitation machine with a simulated flywheel |
CN110216670B (zh) * | 2019-04-30 | 2022-04-15 | 武汉理工大学 | 一种基于损失场的工业机器人自动避障方法及装置 |
US11433276B2 (en) | 2019-05-10 | 2022-09-06 | Rehab2Fit Technologies, Inc. | Method and system for using artificial intelligence to independently adjust resistance of pedals based on leg strength |
US11904207B2 (en) | 2019-05-10 | 2024-02-20 | Rehab2Fit Technologies, Inc. | Method and system for using artificial intelligence to present a user interface representing a user's progress in various domains |
US11957960B2 (en) | 2019-05-10 | 2024-04-16 | Rehab2Fit Technologies Inc. | Method and system for using artificial intelligence to adjust pedal resistance |
US11801423B2 (en) | 2019-05-10 | 2023-10-31 | Rehab2Fit Technologies, Inc. | Method and system for using artificial intelligence to interact with a user of an exercise device during an exercise session |
CN110162052A (zh) * | 2019-05-27 | 2019-08-23 | 北京新能源汽车股份有限公司 | 自动驾驶决策的代码生成方法、系统及车辆 |
US20220339787A1 (en) * | 2019-07-01 | 2022-10-27 | Kuka Deutschland Gmbh | Carrying out an application using at least one robot |
CN112189185A (zh) * | 2019-07-31 | 2021-01-05 | 深圳市大疆创新科技有限公司 | 一种编程系统、方法及程序执行设备 |
CN110533969B (zh) * | 2019-08-05 | 2022-03-29 | 深圳市编玩边学教育科技有限公司 | 一种编程教学端及系统 |
DE102019121889B3 (de) * | 2019-08-14 | 2020-11-19 | Robominds GmbH | Automatisierungssystem und Verfahren zur Handhabung von Produkten |
WO2021041960A1 (en) * | 2019-08-30 | 2021-03-04 | X Development Llc | Splitting transformers for robotics planning |
US11747787B2 (en) | 2019-08-30 | 2023-09-05 | Intrinsic Innovation Llc | Combining transformers for robotics planning |
US11701548B2 (en) | 2019-10-07 | 2023-07-18 | Rom Technologies, Inc. | Computer-implemented questionnaire for orthopedic treatment |
US11071597B2 (en) | 2019-10-03 | 2021-07-27 | Rom Technologies, Inc. | Telemedicine for orthopedic treatment |
CN110666797B (zh) * | 2019-09-30 | 2023-01-06 | 东莞市李群自动化技术有限公司 | 一种机器人控制系统及方法 |
US20210134412A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | System and method for processing medical claims using biometric signatures |
US11075000B2 (en) | 2019-10-03 | 2021-07-27 | Rom Technologies, Inc. | Method and system for using virtual avatars associated with medical professionals during exercise sessions |
US11756666B2 (en) | 2019-10-03 | 2023-09-12 | Rom Technologies, Inc. | Systems and methods to enable communication detection between devices and performance of a preventative action |
US11887717B2 (en) | 2019-10-03 | 2024-01-30 | Rom Technologies, Inc. | System and method for using AI, machine learning and telemedicine to perform pulmonary rehabilitation via an electromechanical machine |
US11978559B2 (en) | 2019-10-03 | 2024-05-07 | Rom Technologies, Inc. | Systems and methods for remotely-enabled identification of a user infection |
US12020800B2 (en) | 2019-10-03 | 2024-06-25 | Rom Technologies, Inc. | System and method for using AI/ML and telemedicine to integrate rehabilitation for a plurality of comorbid conditions |
US11069436B2 (en) | 2019-10-03 | 2021-07-20 | Rom Technologies, Inc. | System and method for use of telemedicine-enabled rehabilitative hardware and for encouraging rehabilitative compliance through patient-based virtual shared sessions with patient-enabled mutual encouragement across simulated social networks |
US11282608B2 (en) | 2019-10-03 | 2022-03-22 | Rom Technologies, Inc. | Method and system for using artificial intelligence and machine learning to provide recommendations to a healthcare provider in or near real-time during a telemedicine session |
US11923065B2 (en) | 2019-10-03 | 2024-03-05 | Rom Technologies, Inc. | Systems and methods for using artificial intelligence and machine learning to detect abnormal heart rhythms of a user performing a treatment plan with an electromechanical machine |
US11337648B2 (en) | 2020-05-18 | 2022-05-24 | Rom Technologies, Inc. | Method and system for using artificial intelligence to assign patients to cohorts and dynamically controlling a treatment apparatus based on the assignment during an adaptive telemedical session |
US11915815B2 (en) | 2019-10-03 | 2024-02-27 | Rom Technologies, Inc. | System and method for using artificial intelligence and machine learning and generic risk factors to improve cardiovascular health such that the need for additional cardiac interventions is mitigated |
US11282604B2 (en) | 2019-10-03 | 2022-03-22 | Rom Technologies, Inc. | Method and system for use of telemedicine-enabled rehabilitative equipment for prediction of secondary disease |
US11325005B2 (en) | 2019-10-03 | 2022-05-10 | Rom Technologies, Inc. | Systems and methods for using machine learning to control an electromechanical device used for prehabilitation, rehabilitation, and/or exercise |
US12020799B2 (en) | 2019-10-03 | 2024-06-25 | Rom Technologies, Inc. | Rowing machines, systems including rowing machines, and methods for using rowing machines to perform treatment plans for rehabilitation |
US11830601B2 (en) | 2019-10-03 | 2023-11-28 | Rom Technologies, Inc. | System and method for facilitating cardiac rehabilitation among eligible users |
US11961603B2 (en) | 2019-10-03 | 2024-04-16 | Rom Technologies, Inc. | System and method for using AI ML and telemedicine to perform bariatric rehabilitation via an electromechanical machine |
US12062425B2 (en) | 2019-10-03 | 2024-08-13 | Rom Technologies, Inc. | System and method for implementing a cardiac rehabilitation protocol by using artificial intelligence and standardized measurements |
US11955223B2 (en) | 2019-10-03 | 2024-04-09 | Rom Technologies, Inc. | System and method for using artificial intelligence and machine learning to provide an enhanced user interface presenting data pertaining to cardiac health, bariatric health, pulmonary health, and/or cardio-oncologic health for the purpose of performing preventative actions |
US11139060B2 (en) | 2019-10-03 | 2021-10-05 | Rom Technologies, Inc. | Method and system for creating an immersive enhanced reality-driven exercise experience for a user |
US11515021B2 (en) | 2019-10-03 | 2022-11-29 | Rom Technologies, Inc. | Method and system to analytically optimize telehealth practice-based billing processes and revenue while enabling regulatory compliance |
US11282599B2 (en) | 2019-10-03 | 2022-03-22 | Rom Technologies, Inc. | System and method for use of telemedicine-enabled rehabilitative hardware and for encouragement of rehabilitative compliance through patient-based virtual shared sessions |
US11101028B2 (en) | 2019-10-03 | 2021-08-24 | Rom Technologies, Inc. | Method and system using artificial intelligence to monitor user characteristics during a telemedicine session |
US11515028B2 (en) | 2019-10-03 | 2022-11-29 | Rom Technologies, Inc. | Method and system for using artificial intelligence and machine learning to create optimal treatment plans based on monetary value amount generated and/or patient outcome |
US11270795B2 (en) | 2019-10-03 | 2022-03-08 | Rom Technologies, Inc. | Method and system for enabling physician-smart virtual conference rooms for use in a telehealth context |
US20210134432A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | Method and system for implementing dynamic treatment environments based on patient information |
US20210128080A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | Augmented reality placement of goniometer or other sensors |
US11955222B2 (en) | 2019-10-03 | 2024-04-09 | Rom Technologies, Inc. | System and method for determining, based on advanced metrics of actual performance of an electromechanical machine, medical procedure eligibility in order to ascertain survivability rates and measures of quality-of-life criteria |
US20210134425A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | System and method for using artificial intelligence in telemedicine-enabled hardware to optimize rehabilitative routines capable of enabling remote rehabilitative compliance |
US20210127974A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | Remote examination through augmented reality |
US20210142893A1 (en) | 2019-10-03 | 2021-05-13 | Rom Technologies, Inc. | System and method for processing medical claims |
US11955221B2 (en) | 2019-10-03 | 2024-04-09 | Rom Technologies, Inc. | System and method for using AI/ML to generate treatment plans to stimulate preferred angiogenesis |
US11317975B2 (en) | 2019-10-03 | 2022-05-03 | Rom Technologies, Inc. | Method and system for treating patients via telemedicine using sensor data from rehabilitation or exercise equipment |
US11955220B2 (en) | 2019-10-03 | 2024-04-09 | Rom Technologies, Inc. | System and method for using AI/ML and telemedicine for invasive surgical treatment to determine a cardiac treatment plan that uses an electromechanical machine |
US11915816B2 (en) | 2019-10-03 | 2024-02-27 | Rom Technologies, Inc. | Systems and methods of using artificial intelligence and machine learning in a telemedical environment to predict user disease states |
US20210134458A1 (en) | 2019-10-03 | 2021-05-06 | Rom Technologies, Inc. | System and method to enable remote adjustment of a device during a telemedicine session |
US11826613B2 (en) | 2019-10-21 | 2023-11-28 | Rom Technologies, Inc. | Persuasive motivation for orthopedic treatment |
WO2021148129A1 (en) * | 2020-01-24 | 2021-07-29 | Siemens Healthcare Gmbh | Machine-learned network for medical robot generation from configurable modules |
WO2021151066A1 (en) | 2020-01-24 | 2021-07-29 | The Cleveland Clinic Foundation | Compliance correction in a robotic system |
JP7375587B2 (ja) * | 2020-02-05 | 2023-11-08 | 株式会社デンソー | 軌道生成装置、多リンクシステム、及び軌道生成方法 |
DE102020103852B4 (de) | 2020-02-14 | 2022-06-15 | Franka Emika Gmbh | Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator |
US11707843B2 (en) | 2020-04-03 | 2023-07-25 | Fanuc Corporation | Initial reference generation for robot optimization motion planning |
US11816112B1 (en) | 2020-04-03 | 2023-11-14 | Soroco India Private Limited | Systems and methods for automated process discovery |
US11813756B2 (en) | 2020-04-16 | 2023-11-14 | Fanuc Corporation | Disassembly based assembly planning |
US11107591B1 (en) | 2020-04-23 | 2021-08-31 | Rom Technologies, Inc. | Method and system for describing and recommending optimal treatment plans in adaptive telemedical or other contexts |
US11717587B2 (en) | 2020-05-08 | 2023-08-08 | Robust AI, Inc. | Ultraviolet cleaning trajectory modeling |
US11679497B2 (en) | 2020-05-21 | 2023-06-20 | Intrinsic Innovation Llc | Distributed robotic demonstration learning |
US11986958B2 (en) | 2020-05-21 | 2024-05-21 | Intrinsic Innovation Llc | Skill templates for robotic demonstration learning |
US11472025B2 (en) | 2020-05-21 | 2022-10-18 | Intrinsic Innovation Llc | Robotic demonstration learning device |
US11820014B2 (en) | 2020-05-21 | 2023-11-21 | Intrinsic Innovation Llc | Simulated local demonstration data for robotic demonstration learning |
US11534913B2 (en) | 2020-05-21 | 2022-12-27 | Intrinsic Innovation Llc | Integrating sensor streams for robotic demonstration learning |
US11685047B2 (en) | 2020-05-21 | 2023-06-27 | Intrinsic Innovation Llc | Skill template distribution for robotic demonstration learning |
US11524402B2 (en) | 2020-05-21 | 2022-12-13 | Intrinsic Innovation Llc | User feedback for robotic demonstration learning |
JP7491374B2 (ja) * | 2020-06-05 | 2024-05-28 | 株式会社島津製作所 | 自動試料注入装置 |
DE102020209511B3 (de) | 2020-07-28 | 2021-08-19 | ArtiMinds Robotics GmbH | Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm |
CN113040915B (zh) * | 2021-03-12 | 2024-06-04 | 杭州柳叶刀机器人有限公司 | 机器人安全边界控制装置及方法、电子设备和存储介质 |
US12020046B1 (en) * | 2021-04-02 | 2024-06-25 | Soroco India Private Limited | Systems and methods for automated process discovery |
CN115056214A (zh) * | 2022-04-08 | 2022-09-16 | 福州大学 | 一种基于3d操纵杆的工业机器人示教编程系统及方法 |
CN115178944B (zh) * | 2022-08-04 | 2024-05-24 | 广东工业大学 | 一种安全强化学习的狭窄空间机器人作业规划方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010137357A (ja) * | 2008-02-28 | 2010-06-24 | Panasonic Corp | ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路 |
JP2011500349A (ja) * | 2007-10-26 | 2011-01-06 | 本田技研工業株式会社 | リアルタイム自己衝突および障害物回避 |
WO2013192490A2 (en) * | 2012-06-21 | 2013-12-27 | Rethink Robotics, Inc. | Training and operating industrial robots |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05127718A (ja) | 1991-11-08 | 1993-05-25 | Fujitsu Ltd | マニピユレータの手先軌道自動生成装置 |
JPH09325806A (ja) * | 1996-06-06 | 1997-12-16 | Nippon Telegr & Teleph Corp <Ntt> | ロボット教示再生方法及び装置 |
JP2000218576A (ja) * | 1999-02-04 | 2000-08-08 | Toshiba Corp | マニピュレータ |
JP2002189608A (ja) * | 2000-08-28 | 2002-07-05 | Sony Corp | 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置 |
EP1315087A4 (en) | 2000-08-28 | 2006-07-26 | Sony Corp | COMMUNICATION DEVICE AND METHOD, NETWORK SYSTEM, AND ROBOTIC DEVICE |
US6718229B1 (en) * | 2000-11-03 | 2004-04-06 | Smc Kabushiki Kaisha | Linear actuator palletizing system and method |
JP2005125475A (ja) * | 2003-10-24 | 2005-05-19 | Sunao Kitamura | 一回の成功試行で最良経路を学習するアーキテクチャ |
WO2005091090A2 (en) * | 2004-03-16 | 2005-09-29 | Abb Ab | Industrial robot system, method and computer program |
DE102004032996A1 (de) * | 2004-07-08 | 2006-02-16 | Abb Research Ltd. | Einfache Roboterprogrammierung |
JP3959415B2 (ja) | 2004-08-09 | 2007-08-15 | ファナック株式会社 | サーボツール切離し/結合方法及びロボット制御装置 |
EP1824647A1 (en) * | 2004-10-20 | 2007-08-29 | Abb Research Ltd. | A system and a method for programming an in¢ dustrial robot |
US7643907B2 (en) * | 2005-02-10 | 2010-01-05 | Abb Research Ltd. | Method and apparatus for developing a metadata-infused software program for controlling a robot |
CN100561491C (zh) * | 2005-02-25 | 2009-11-18 | Abb研究有限公司 | 自动路径学习的方法和设备 |
JP5052013B2 (ja) | 2005-03-17 | 2012-10-17 | ソニー株式会社 | ロボット装置及びその制御方法 |
EP1724676A1 (en) | 2005-05-20 | 2006-11-22 | ABB Research Ltd. | Method and apparatus for developing a software program |
DE102005033593B3 (de) † | 2005-07-19 | 2007-01-04 | Hirschmann Car Communication Gmbh | Kontaktfeder in einem Trägerrahmen eines Antennenverstärkers eines Fahrzeuges |
EP1996376B1 (en) * | 2006-03-03 | 2016-05-11 | Universal Robots A/S | Programmable robot and user interface |
JP2008087109A (ja) * | 2006-10-02 | 2008-04-17 | Toyota Motor Corp | ロボット制御システム |
US8170287B2 (en) | 2007-10-26 | 2012-05-01 | Honda Motor Co., Ltd. | Real-time self collision and obstacle avoidance |
CN101549495B (zh) * | 2008-03-31 | 2011-04-13 | 上海宝信软件股份有限公司 | 可避免奇异点发生的机器人控制方法 |
DE102008063680A1 (de) | 2008-10-10 | 2010-04-15 | Abb Ag | Verfahren zum Einlernen (Teachen) eines Industrieroboters sowie ein entsprechend ausgestatteter Industrieroboter |
WO2011036865A1 (ja) * | 2009-09-28 | 2011-03-31 | パナソニック株式会社 | ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路 |
DE102010012598A1 (de) | 2010-02-26 | 2011-09-01 | Kuka Laboratories Gmbh | Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses |
JP2011238104A (ja) * | 2010-05-12 | 2011-11-24 | Toyota Motor Corp | 移動ロボット |
JP5626775B2 (ja) * | 2010-07-21 | 2014-11-19 | 住友重機械工業株式会社 | 支援装置および支援方法 |
JP2012206219A (ja) | 2011-03-30 | 2012-10-25 | Seiko Epson Corp | ロボット制御装置及びロボットシステム |
US8843236B2 (en) * | 2012-03-15 | 2014-09-23 | GM Global Technology Operations LLC | Method and system for training a robot using human-assisted task demonstration |
CN102749919B (zh) * | 2012-06-15 | 2014-05-07 | 华中科技大学 | 一种多足机器人平衡控制方法 |
JP5862611B2 (ja) * | 2013-04-02 | 2016-02-16 | トヨタ自動車株式会社 | 作業変更装置、作業変更方法、及び作業変更プログラム |
US9403273B2 (en) * | 2014-05-23 | 2016-08-02 | GM Global Technology Operations LLC | Rapid robotic imitation learning of force-torque tasks |
-
2015
- 2015-03-13 DE DE102015204641.9A patent/DE102015204641B4/de active Active
- 2015-05-15 JP JP2016571289A patent/JP6580602B2/ja active Active
- 2015-05-15 WO PCT/DE2015/200313 patent/WO2015185049A1/de active Application Filing
- 2015-05-15 KR KR1020167034098A patent/KR20160149290A/ko active Search and Examination
- 2015-05-15 EP EP15736391.2A patent/EP3013537B2/de active Active
- 2015-05-15 KR KR1020197022969A patent/KR102126729B1/ko active IP Right Grant
- 2015-05-15 CN CN201580029953.3A patent/CN106457565B/zh active Active
- 2015-05-15 US US15/313,219 patent/US10279476B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011500349A (ja) * | 2007-10-26 | 2011-01-06 | 本田技研工業株式会社 | リアルタイム自己衝突および障害物回避 |
JP2010137357A (ja) * | 2008-02-28 | 2010-06-24 | Panasonic Corp | ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及びロボットアーム制御用集積電子回路 |
WO2013192490A2 (en) * | 2012-06-21 | 2013-12-27 | Rethink Robotics, Inc. | Training and operating industrial robots |
Also Published As
Publication number | Publication date |
---|---|
EP3013537B1 (de) | 2016-10-12 |
US10279476B2 (en) | 2019-05-07 |
EP3013537A1 (de) | 2016-05-04 |
CN106457565B (zh) | 2020-06-23 |
KR20190105039A (ko) | 2019-09-11 |
KR20160149290A (ko) | 2016-12-27 |
WO2015185049A1 (de) | 2015-12-10 |
DE102015204641B4 (de) | 2021-03-25 |
CN106457565A (zh) | 2017-02-22 |
JP2017520415A (ja) | 2017-07-27 |
EP3013537B2 (de) | 2020-02-19 |
JP6580602B2 (ja) | 2019-09-25 |
US20170190052A1 (en) | 2017-07-06 |
DE102015204641A1 (de) | 2015-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102126729B1 (ko) | 로봇을 프로그래밍하기 위한 방법 및 시스템 | |
Fang et al. | A novel augmented reality-based interface for robot path planning | |
Fang et al. | Interactive robot trajectory planning and simulation using augmented reality | |
Neto et al. | High‐level robot programming based on CAD: dealing with unpredictable environments | |
Gammieri et al. | Coupling of a redundant manipulator with a virtual reality environment to enhance human-robot cooperation | |
Stumm et al. | On-site robotic construction assistance for assembly using a-priori knowledge and human-robot collaboration | |
Fang et al. | Orientation planning of robot end-effector using augmented reality | |
De Maeyer et al. | Cartesian path planning for arc welding robots: Evaluation of the descartes algorithm | |
Haviland et al. | A purely-reactive manipulability-maximising motion controller | |
Pettinger et al. | Reducing the teleoperator’s cognitive burden for complex contact tasks using affordance primitives | |
Tarbouriech et al. | An admittance based hierarchical control framework for dual-arm cobots | |
Bhattacharya et al. | Tri-space operational control of redundant multilink and hybrid cable-driven parallel robots using an iterative-learning-based reactive approach | |
Pichler et al. | Towards robot systems for small batch manufacturing | |
Vidaković et al. | Procedure for definition of end-effector orientation in planar surfaces robot applications | |
Matour et al. | Intuitive Robot Path Planning through Augmented Reality | |
Ngo et al. | Model and simulation of tracking motion for accurate welding using a universal Cobot | |
Dàvila-Rìos et al. | On the Implementation of a robotic welding process using 3D simulation environment | |
Apostolescu et al. | Industrial Robotics for Spacecraft Rendezvous and Docking Simulation | |
Eckhoff et al. | Towards Connecting Control to Perception: High-Performance Whole-Body Collision Avoidance Using Control-Compatible Obstacles | |
Skuric et al. | Online task-space trajectory planning using real-time estimations of robot motion capabilities | |
Syrjänen | Task level robot programming: Background, methods and current state | |
Goller et al. | DMP-Based Path Planning for Model Predictive Interaction Control | |
Gittins | Tensegrity Robot Design and Control | |
Venkatesan | Flexible Automation for Meso and Micro-scale Manipulation and Assembly | |
Malik et al. | CAD based robot programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |