KR20070053223A - 이동기구들 간의 충돌방지를 위한 방법 및 시스템 - Google Patents

이동기구들 간의 충돌방지를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20070053223A
KR20070053223A KR1020077003726A KR20077003726A KR20070053223A KR 20070053223 A KR20070053223 A KR 20070053223A KR 1020077003726 A KR1020077003726 A KR 1020077003726A KR 20077003726 A KR20077003726 A KR 20077003726A KR 20070053223 A KR20070053223 A KR 20070053223A
Authority
KR
South Korea
Prior art keywords
machine
computer
components
freedom
points
Prior art date
Application number
KR1020077003726A
Other languages
English (en)
Inventor
프랑스와 보리외
벵쌍 브라쉬
장-클로드 빌르보
Original Assignee
소시에떼 드 마테리엘 엥뒤스트리엘 에 데뀌프망-스미
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소시에떼 드 마테리엘 엥뒤스트리엘 에 데뀌프망-스미 filed Critical 소시에떼 드 마테리엘 엥뒤스트리엘 에 데뀌프망-스미
Priority to KR1020077003726A priority Critical patent/KR20070053223A/ko
Publication of KR20070053223A publication Critical patent/KR20070053223A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40468Using polytree intersection method
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40492Model manipulator by spheres for collision avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 발명은 적어도 두 개의 물체(1, 2) 간의 충돌을 방지하는 방법에 관한 것인데, 이 물체를 구성하는 구성요소들은 디지털 형태로 인식가능한 포인트에 의해 정의되고, 이 포인트들은 적어도 1 자유도에 따라 동시적으로 이동할 수 있으며, 상기 동시적 이동들 각각은 해당 자유도의 정지 전 최소 변화량을 필요로 하고, 상기 포인트를 디지털 형태로 저장하고 처리하는 전산시스템(17)이 사용되며, 상기 전산시스템(17)은 포인트들을 디지털 형태로 저장하고 처리할 수 있게 해 준다. 여기서 특징적인 것으로서, 상기 전산시스템(17) 안에는 변형가능한 디지털 모델이 상기한 물체(1, 2)의 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) 각각에 대해 정의되어 있고, 이 변형가능한 모델에는 정지 전 최소 변화시 자유도에 따라 동시적 이동이 일어날 수 있는 모든 경우(조합)에 연계된 요소의 포인트들이 취할 수 있는 모든 위치들이 정의되어 있으며, 이 전산시스템(17)은 적어도 하나의 물체(1, 2)에 대해 이 물체(1, 2)의 구성요소(11, 12, 13, 14, 15, 16)들의 변형가능한 모델들 각각과 동일 물체(1, 2) 또는 타 물체(1, 2)의 구성요소들의 변형가능한 모델들 각각 사이의 거리를 계산하고, 상기 전산시스템(17)은 이렇게 계산된 거리들 중에서 적어도 하나가 미리 정의된 안전거리보다 짧을 때 충돌위험을 감지한다.

Description

이동기구들 간의 충돌방지를 위한 방법 및 시스템{Method and system for avoiding collisions between moveable devices}
본 발명은 충돌방지 장치에 관한 것으로서, 특히 적어도 두 개의 이동기계가 서로 충돌하지 않도록 하기 위한 충돌방지 방법 및 시스템에 관한 것이다.
크레인이나 인양기 등 공사현장에서 사용되는 기계들은 충돌방지 기술분야에서 익히 알려져 있는 이동기계 유형이다. 건설현장 등 공사장에서, 이 기계들은 공사장의 일정 지점으로부터 다른 한 지점으로 콘크리트나 건설재료 등의 원자재를 옮기는 역할을 하기도 하고, 항구 부두 같은 곳에서는 적재용 크레인을 사용하여 선박에 화물을 선적하거나 하역한다. 일반적으로 공업현장에서는 이동기계를 사용하여 적하물을 운반한다.
이러한 유형의 기계들은 모두 일정 자유도(degree of freedom)를 상호 조합하여, 현장의 특정 지점에 접근하게 되어 있다. 통상적으로 현장의 모든 공간에 접근하기 위해서는 일정 수량의 기계가 필요하며, 공사장 전체에서 운반업무를 수행하려면 다수의 기계들이 각기 접근해야 하는 구역 중에 서로 공통되는 접근구역이 존재하게 될 것이다. 그런데 이 공통 접근구역에서 기계 및/또는 기계 구성요소에 의해 운반되는 적하물들이 서로 충돌할 수 있다는 것이 문제점으로 지적된다.
따라서 가능한 한 이러한 충돌을 방지하기 위한 안전장치를 사용하고는 있으나, 종래의 기술에 의한 안전장치는 초음파 또는 기타 기법을 이용한 접근탐지장치 센서를 이용하여 접근 사실을 파악하거나, 기계 또는 적하물의 정적(static) 위치를 근거로 하여 정보를 교환함으로써 충돌 위험을 파악하는 정도에 그치고 있다.
이러한 장치를 사용하게 되면 여러가지로 애로사항이 있을 것인데 그 중 하나가 접근 센서에 소요되는 비용문제이다. 이동하는 모든 요소들에 센서를 장착해야 하기 때문이다. 또한 센서들을 정보획득센터에 케이블로 연결을 해야 하는데 이 또한 인건비 문제로 비용소모적이다. 게다가 케이블과 커넥터의 수가 많아질수록 전체적인 신뢰도는 감소하게 된다.
더욱이 정적 위치에만 의거하여 충돌위험을 파악하게 되면 여러 가지로 문제가 발생할 수 있다. 예를 들어 기존의 장비 대부분은 두 개의 기계가 매우 가깝게 서로 접근했다가 다시 멀어지게 되면 멀어지는 동안에도 계속해서 경보를 발생시킨다. 그렇게 되면 해당 기계는 소위 안전작동모드에서 운용되므로 운용속도가 느려지게 된다. 또 경보가 울리는 경보지속시간 중 절반은 합당한 이유 없이 소음을 일으키는 결과를 가져올 것이다.
정적 위치를 기준으로 삼는 대부분의 장치들은 충돌상태를 유발할 수 있는 다양한 요소들의 동적(동적) 특성을 감안하지 않은 채 정적인 안전 마진(margin)을 기준으로 함으로써 필요없이 경보를 울리는 경향이 있다.
위와 같은 부적절한 경보가 반복적으로 울리게 되면 운용자는 이러한 경보음에 바로 익숙해져 정당한 이유 때문에 울리는 경보까지도 부적절한 경보로 잘못 해 석하고 무시하게 될 위험이 있으며, 그런 경우 어떤 결과가 초래될 것인지는 쉽게 상상할 수 있을 것이다.
더욱이 부적절한 경보는 기계 운용자의 주의를 불필요하게 산만하게 하고, 존재하지도 않는 문제에 운용자의 주의를 집중시킴으로써 실제 존재하는 문제는 깨닫지 못하게 될 위험이 있다.
따라서 충돌위험을 알리는 경보를 울리기 전에 인양기계의 여러 구성요소들의 이동방향과 정지거리를 감안하여 실질적인 충돌위험을 보다 정교하게 평가할 수 있는 충돌방지 방법과 시스템이 필요하다고 하겠다.
본 발명은 최소 두 개의 물체 간 충돌을 방지하는 방법으로서, 이 두 개의 물체는 각각 구성요소들로 이루어지며, 이 구성요소들은 포인트(point)에 의해 정의되고, 이 포인트들은 디지털 형태로 인식된다. 이 포인트들은 적어도 1 자유도에 의하여 동시 이동이 이루어질 수 있으며, 이 동시 이동이 이루어지려면 해당 자유도의 정지 전 최소 변화량(variation)이 전제되어야 한다. 상기 포인트를 디지털 형태로 저장하고 처리하는 데에는 컴퓨터 타입의 시스템이 이용된다. 상기 포인트를 디지털 형태로 저장하고 처리하는 적어도 하나의 컴퓨터 타입의 전산시스템은, 그 내부에 변형가능한(deformable) 디지털 모델이 전술한 물체의 구성요소 각각에 대해 정의되어 있고, 상기 변형가능 모델에는 정지 전 최소의 변화량이 발생되어 적어도 1 자유도에 의해 동시 이동 조합이 발생할 때 상기 관련된 요소의 포인트들이 취할 수 있는 모든 위치가 모두 정의되어 있다는 것이 특징적이다. 상기 전산시스템은, 적어도 하나의 물체에 대해, 그 물체의 구성요소들의 변형가능한 모델들 각각과, 동일 물체 또는 다른 물체의 구성요소의 변형가능한 모델들 각각 간의 거리를 계산해낸다. 전산시스템은 이렇게 계산된 거리들 중에서 적어도 하나의 거리가 사전에 정의된 안전거리보다 짧을 때 충돌위험을 파악하게 되는 것이다.
본 발명 방법에 있어서 전술된 물체들은 예를 들어 공장, 건설현장, 공공사업장 또는 운송작업장, 또는 항구에서 사용될 수 있는 기계들일 것이다.
전기한 물체마다 하나의 전산시스템이 설치되는 것이 바람직하고, 이 적어도 하나의 전산시스템에는 운용자에게 변형가능 모델을 표시할 수 있는 표시장치가 보통 적어도 한 개 탑재되는 것이 일반적일 것이다.
경보는, 전술된 충돌위험이 탐지되었을 때 전술된 적어도 하나의 전산시스템에 의해 발생될 것이며, 이 경보는 음향 경보일 수도 있고 시각 경보일 수도 있다. 상기 경보는 다수의 기계 운용자들 중 적어도 한 사람에게 전달될 것이다.
본 발명 방법에 있어서 상기한 정지 전 최소 변화량은 상기 적어도 하나의 전산시스템에 의해 측정 또는 설정 가능하며, 이 경우에 있어서 정지 전 최소 변화량의 설정 또는 측정이 불가능한 경우에는 미리 정의된 값으로 배정될 수 있다.
본 발명의 방법에서는 이차원 또는 삼차원의 변형가능 모델이 사용될 수 있다. 삼차원의 경우, 이 변형가능 모델은 표면 요소(surface element)로 구성된 베이스(base)가 그 표면 밖으로 이동하는 동안 경유하게 되는 모든 포인트의 집합체로서 얻어지는 일종의 각기둥형 입체(primatic volume)로 근사화될 수 있다. 상기 베이스는 평면일 수 있으며, 특히 베이스의 윤곽은 선(line)과 호(arc)가 서로 연결되어 있는 선분들로 정의될 수 있겠다. 전술된 이동의 형태는 직선일 수 있으며, 특히 베이스가 속하는 평면과는 수직을 이룰 수 있다.
본 발명 방법에서는 적어도 두 개의 전산시스템을 사용하여 전술한 바와 같이 포인트들을 디지털 형태로 처리(processing)하고, 하나의 전산시스템에 상기한 물체들 각각을 연계(association)시킨다. 상기한 두 개의 전산시스템은 디지털 형태로 정보를 교환할 수 있으며, 가능한 한 전산식 커뮤니케이션(communication) 수단을 사용할 것이다. 일반적으로 전산식 커뮤니케이션 수단이란 전산 네트워크를 말한다.
본 발명 방법에서는 상기한 적어도 하나의 전산시스템이 최소 두 개의 물체 중 적어도 하나의 물체에 대해 적어도 1 자유도의 변화량을 통제할 수 있다. 상기 통제는, 예를 들어 적어도 1 자유도의 변화량에 대해 그 변화량을 차단(cutoff)시킬 것인가 또는 변수로 할 것인가의 여부와, 적어도 1 자유도의 변화속도(variation rate)을 감소시키는 것을 포함할 수 있다. 후자의 경우, 변화속도의 감소는 상기 물체들 간 거리들 중의 하나와 역비례할 수 있다.
본 발명의 방법에서는 전산시스템 안에 적어도 두 개의 물체 각각에 대하여 단순 총괄 범위(simple overall envelope)가 정의될 수 있으며, 그 적어도 두 개의 물체의 단순 총괄 범위들 간에 교차범위(intersection)가 없다면, 그 적어도 두 개의 물체는 서로 충돌할 수 없는 것으로 본다.
이 경우, 단순 총괄 범위는 베이스 표면(base surface)이 이동경로를 따라 이동하면서 형성되는 각기둥(prism) 형태가 될 것인데, 이 베이스 표면은 보통 평면으로서 예를 들어 원판 형태일 수 있다. 전기한 이동경로는 일반적으로 직선형을 이루며, 전기한 베이스 표면과는 수직을 이룰 것이다.
본 발명의 방법에 있어 적어도 하나의 전산시스템에는 비휘발성 기억장치(non-volatile memory)가 설치되어 있어, 최소 하나의 물체에 대한 구성(configuration)을 디지털 형태로 저장될 수 있고, 이 비휘발성 기억장치는 컴퓨터 하드디스크일 수 있다.
본 발명은 최소 두 개의 물체 간 충돌을 방지해주는 충돌방지 시스템도 제시한다. 두 개의 물체는 구성요소들로 구성되며, 이 구성요소들은 디지털 형태로 인식 가능한 포인트들에 의해 정의되며, 이 포인트들은 적어도 1 자유도에 의해 동시 이동이 가능하다. 동시 이동을 위해서는, 매번 정지 전 해당 자유도의 최소 변화량이 필요하다. 전산시스템을 사용하여 이 포인트들을 디지털 형태로 저장하고 처리하는데, 이처럼 디지털 형태로 포인트를 저장하고 처리할 수 있게 해주는 적어도 하나의 전산시스템이 있어 본 발명의 방법을 실행하게 되는 것이다.
이하에서는 하기 첨부된 도면과 도표들을 참조하여 본 발명 방법의 일 실시예를 설명한다.
- 도 1 은 본 발명의 방법에 의해 운용되는 공사현장의 고가 이동 기중기가 예시된 것이다.
- 도 2 는 도 1 의 전산시스템 내에서 본 발명의 방법을 구현하는 전산프로그램의 전체 플로우차트(flow chart)이다.
- 도 3 은 도 2 의 204 단계에 등장하는 Qpa계산 서브루틴(subroutine)의 플로우차트를 도시한 것이다.
- 도 4 는 도 2 의 205와 209 단계에 등장하는 기계모델링 서브루틴의 플로우차트를 도시한 것이다.
- 도 5 는 도 2 의 210 단계에 등장하는 충돌방지 프로세싱 서브루틴의 플로우차트를 도시한 것이다.
- 도 6 은 도 5 의 503 단계에 등장하는 Vz추가 함수의 플로우차트를 도시한 것이다.
- 도 7 은 도 6 의 603과 605 단계에 등장하는 Vz추가 함수의 플로우차트를 도시한 것이다.
- 도 8 은 도 5 의 506 단계에 등장하는 Vxy추가 서브루틴의 플로우차트를 도시한 것이다.
- 도 9 는 도 8 의 801 단계와 도 12 의 1201 단계에 등장하는 XY 서브루틴의 플로우차트를 도시한 것이다.
- 도 10 은 도 8 의 803, 805, 및 810 단계에 등장하는 Vxy추가 서브루틴의 플로우차트를 도시한 것이다.
- 도 11 은 도 2 의 213 단계에 등장하는 동적차단 생성 서브루틴의 플로우차트를 도시한 것이다.
- 도 12 는 도 11 의 1105 단계에 등장하는 동적차단 Vxy 서브루틴의 플로우차트를 도시한 것이다.
- 도 13 은 도 11 의 1109 단계에 등장하는 동적차단 Vz 서브루틴의 플로우차트를 도시한 것이다.
- 도 14 는 도 11 의 1112 단계에 등장하는 동적차단 전달 서브루틴의 플로우차트를 도시한 것이다.
- 도 15 는 도 1 의 기계 구성요소들 중 일 구성요소의 일 포인트에서 연계된 XY평면 상의 충돌방지 벡터를 도시한 것이다.
- 도 16 은 도 1 에 도시된 기계의 구성(configuration)을 도표화한 것이다.
- 도 17 은 도 1 에 도시된 기계의 동적 파라미터 Q 를 도표로 나타낸 것이다.
- 도 18 은 도 17 의 동적 파라미터와 연계된 QPA의 도표이다.
- 도 19 는 도 1 에 도시된 기계의 동적 파라미터 Q" 와 QPA를 도표로 나타낸 것이다.
- 도 20 은 도 1 의 기계의 기준 R (레퍼런스, reference)의 변경을 도표로 나타낸 것이다.
- 도 21a 와 도 21b 는 도 1 의 기계 구성요소의 변형가능 모델을 도표화한 것이다.
예시된 두 개의 기계는 광역 기준(global reference)의 YZ평면에 평행한 수직의 대칭평면을 가지고 있다. 따라서 예로 든 기계의 국소 기준점(local reference point)에서는 이 평면의 가로좌표가 0 으로 되어 있다. 또 XZ 평면은 기계(1)의 요소(11)과 기계(2)의 구성요소(21)의 근접면(proximal face)이고, XY 평면은 구성요소(11, 12, 21, 22)의 하부면(lower face)들의 공통 평면이다.
또한 기계(1)과 기계(2)의 구성요소들은 기계 "M"에 있어 서로 대각선으로 반대편에 있는 두 개의 포인트AM과 BM에 의해 정의되는 평행육면체로 구성된다. A 포인트와 B 포인트는 기계 "M" 의 기준점(reference point) 상에서 각각 작은 좌표와 큰 좌표의 포인트이다.
x, y, z 축에서의 평행육면체 구성요소들의 치수(dimension)는 그 값이 일정할 때 각각 LM ,e, FM ,e, HM ,e로 표시되며, 여기서 "M"은 해당 기계의 번호이고, "e"는 기계 "M"의 해당 구성요소 번호이다.
기계 "M"의 위치에 관한 동적 파라미터(dynamic parameter)는 dM, gM, hM으로 표시되며, 이들은 도 17 에 나오는 "기계의 동적 파라미터 Q 의 도표"의 "M" 줄에 저장된다. 기계 "M"에 대하여 이 파라미터들 각각은 기계의 대칭평면으로부터 광역 기준의 XY 평면까지의 거리와, 기계 "M"의 케이블(15, 25) 에서부터 기계 "M"의 첫 기둥(11, 21) 까지의 거리와, 케이블(15, 25)의 길이(케이블이 풀린 상태에서의 길이)를 나타낸다. 이 파라미터들은 기계(1)과 기계(2)가 공사현장에서 이동함에 따라 시간이 지나면서 어느 정도 변하게 된다.
도 16 의 도표에 나오는 dM, gM, hM 파라미터의 존재는, 문제의 기계 "M"이 이동할 때 표시되는 파라미터에 근거하여 해당 좌표가 변하게 됨을 의미한다.
도 2 을 참조하여, 기중기(1) 에 관련되어 있는 전산시스템(17) 내에서 본 발명의 방법을 실행하는 프로그램의 전체 플로우차트에 대하여 기술하고자 한다.
본 발명의 방법을 구현하는 프로그램은 201 단계에서 시작된다.
201 단계에서 컴퓨터(17)는 현장에 있는 기계들의 총수(總數) "NbM"과, 그 컴퓨터가 작동되고 있는 기계의 번호 "P", 기계 1과 기계 2의 구성요소들 간 최소 안전거리 "DS" (최소 안전거리 미만에서는 충돌위험이 탐지됨), 기계 1과 기계 2의 동적 파라미터 연속적 확인시간 간의 간격 "Δt", "NbM" 기계들의 구성(configuration) 파라미터들을 비휘발성 메모리로부터 읽어낸다.
본 발명의 방법을 실행하는 컴퓨터를 기계 1에 관련된 컴퓨터(17)라고 예시할 때, P라는 변수(variable)의 값은 1이 될 것이다.
이렇게 읽혀진 "NbM" 수(數)의 기계 1과 기계 2의 형상 파라미터는 도 16 에 도시된 "기계 구성의 도표" 안에 저장된다. 이 도표의 8개 열(column)에는 기계의 번호와, 기계 구성요소 번호, 구성요소를 정의하는 대각선 첫 번째 포인트 A 의 가로 좌표(x 좌표), 세로 좌표(y 좌표), 제3 좌표(z 좌표)와, 구성요소를 정의하는 대각선 두 번째 포인트 B 의 가로 좌표(x 좌표), 세로 좌표(y 좌표), 제3 좌표(z 좌표)가 각각 기록된다.
컴퓨터(17)는 "M"이라고 하는 각 기계의 구성요소 수 "NbElemM"과 동적 파라미터 수 "NbParamM"을 읽는다.
또한 컴퓨터(17)는 "NbParamp"의 값 "Cp"를 읽게 되는데, 이는 도 3과 관련하여 차후에 기술하게 될 것이다. 컴퓨터(17)는 기계"M"의 파라미터 "NbParamp"와 관련된 증가량(increments)를 나타내는 "NbParamp"의 값 "εP"를 읽는다. 이 증가량은 도 12와 관련하여 차후에 기술될 것이다.
그 후, 컴퓨터(17)는 기계자신 "P"의 동적 파라미터 "qP"의 "NbParamp"를 0 으로 초기화한 다음, 202 단계로 넘어간다.
202 단계에서 컴퓨터(17)는 기계 "P"의 동적 파라미터 "qP"의 현재값(current values)인 "NbParamp"를 저장한다. 도 17 에 나오는 "기계의 동적 파라미터 Q의 도표" 에서 "P" 칸에 기록되어 있는 이 값들은, 도표 "Q"와 동일한 구조를 가지고 있는 "기계의 이전 동적 파라미터 Q' 의 도표" (해당 도면 없음)의 "P"번호 칸 해당 자리에 그대로 복사기록된다. 그런 다음, 컴퓨터(17)는 203 단계로 넘어간다.
203 단계에서 컴퓨터(17)는 적정 센서(해당 도면 없음)를 이용하여 "P"라는 기계자신의 동적 파라미터 "qP"의 새로운 값인 "NbParamp"를 읽게 된다. 컴퓨터(17)는 이 값을 도 17 에 나오는 "기계의 동적 파라미터 Q 의 도표"의 "P" 번호 칸의 해당하는 자리에 저장한다. 도 1에 도시된 작업현장의 예에서 "Q"의 도표의 "P"번호 칸에 저장된 파라미터 "qP ,1", "qP ,2", "qP ,3"는 위에서 기술한 동적 파라미터 dp, gp, hp에 해당한다. 그 후, 컴퓨터(17)는 204 단계로 이동한다.
204 단계에서 컴퓨터(17)는 도 3과 관련하여 차후에 기술하게 될 "Qpa계산" 서브루틴을 호출하여 기계자신"P"의 동적 파라미터 "qP"에 해당하는 정지 전 이동량 "QPAp"를 계산해낸다. 그런 다음, 컴퓨터(17)는 205 단계로 넘어간다.
205 단계에서 컴퓨터(17)는 도 4와 관련하여 차후에 기술하게 될 기계"P"를 위한 "기계모델링" 서브루틴을 호출한다. 그런 다음 컴퓨터(17)는 206 단계로 넘어간다.
206 단계에서 컴퓨터(17)는 XY 평면과 Z 축에서의 충돌방지 벡터 수 "NbVxy"와 "NbVz"를 각각 0으로 초기화한다. 이는 도 5와 관련하여 차후에 기술될 것이다. 이와 마찬가지로, 컴퓨터(17)는 상대 기계의 루프 인덱스(loop index) "M"을 1 로 초기화한다. 그 후, 207 단계로 넘어간다.
207 단계에서 컴퓨터(17)는 인덱스"M"이 "P"와 동일한지 테스트한다. 이들이 동일하면 후술될 211 단계로 넘어간다. 이들이 동일하지 않으면, 다시 말해 기계"M"이 컴퓨터(17)에 의해 제어되고 있는 기계자신"P"가 아닌 경우에는 208 단계로 넘어간다.
208 단계에서 컴퓨터(17)는 네트워크(3)을 통해 상대기계 "M"으로부터 이 기계의 동적 파라미터 "qM"을 획득하여 "기계의 동적 파라미터 Q 의 도표"의 "M"칸에 해당하는 자리에 저장한다. 컴퓨터(17)는 또한 상대기계 "M"으로부터 상기한 "qM"에 대응하는 정지거리 "QPAM"을 획득하여 도 18에 도시된 "정지 전 기계의 이동량 QPA의 도표"의 "M"칸에 해당하는 자리에 그 정지거리를 저장한다. 그런 다음 컴퓨터(17)는 209 단계로 넘어간다.
209 단계에서 컴퓨터(17)는 도 4와 관련하여 차후에 기술될 기계"M"의 모델 링 서브루틴 "기계모델링"을 호출하고, 210 단계로 넘어간다.
210 단계에서 컴퓨터(17)는 도 5와 관련하여 차후에 기술될 기계"M"과 기계"P"의 "충돌방지 프로세싱" 서브루틴을 호출하고, 211 단계로 넘어간다.
211 단계에서 컴퓨터(17)는 상대기계에 대해 루프 인덱스(loop index) "M"을 한 단위 올리고, 212 단계로 넘어간다.
212 단계에서 컴퓨터(17)는 루프 인덱스(loop index) "M"이 기계 총수 "NbM"보다 큰 지를 테스트한다. 크지 않으면 컴퓨터(17)는 전술했던 207 단계로 되돌아 간다. 크면, 다시 말해 "NbM"기계들이 이미 처리된 상태이면, 컴퓨터(17)는 213 단계로 넘어간다.
213 단계에서 컴퓨터(17)는 차후 도 11와 관련하여 기술하게 될 "동적차단 생성" 서브루틴을 호출한 다음, 214 단계로 넘어간다.
214 단계에서 컴퓨터(17)는, 201 단계에서 인식된 시간간격 "Δt"이 202단계에서 시작된 루프 개시 시점으로부터 경과되기를 기다린다. 이처럼 대기하는 목적은 타 기계들을 위해 적절한 네트워크 대역(network bandwidth)을 제공하는 한편, 기계"P"의 동적 파라미터 연속된 2회의 연속 판독 사이에 일정 시간간격인 "Δt"가 경과되도록 하기 위함이다. 미리 정의된 "Δt"시간이 경과되고 나면 컴퓨터(17)는 전기한 202 단계로 되돌아 간다.
도 3과 관련하여, 이번에는 도 2의 204 단계에 등장하는 "Qpa계산" 서브루틴에 대해 기술하고자 한다.
이 서브루틴은 기계자신 "P"의 동적 파라미터 "NbParamp"를 위해 정지 전 이동량 "QPAp"를 계산한다. "QPAp" 값은 해당 파라미터 "qp"와 동일한 단위로 측정되는 이동량으로서, 해당 자유도에 따라 기계"P"의 이동을 정지시키는데 필요한 값이다.
본 발명의 바람직한 실시예에서, 기계"M"의 "qM"이라는 동적 파라미터 "NbParamM" 각각에 대한 정지 전 이동거리가 모델링되는데, 이 이동거리는 단일 동적 파라미터 "qM ,i"의 변화속도(variation rate)와 보수적으로(신중하게) 선정된 "cM,i"라는 계수의 곱으로서 모델링된다.
그러나 본 실시예에서 사용되는 센서들은 동적 파라미터의 현재값(current value)을 제공할 뿐, 원하는 변화속도는 제공하지 않는다. 이 문제를 해결하기 위해 본 발명의 방법을 실행하는 컴퓨터(17)는 각 동적 파라미터의 변화속도를 디지털 형태로 평가하는데, 이 변화속도는 최후와 그 직전에 측정한 두 값의 차를 두 측정 시점 간의 일정 시간 "Δt"로 나눈 값으로 나타낸다.
"Qpa계산" 서브루틴은 도 3 의 301 단계에서 시작된다. 이 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 1로 초기화한다. 그런 다음 302 단계로 넘어간다.
302 단계에서 컴퓨터(17)는 "cP ,i*(qP ,i-q'P ,i)/Δt" 식을 이용하여 "QPAP ,i" 값을 계산하는데, "cP ,i*(qP ,i-q'P ,i)/Δt"식에서 "cP ,i"는 도 2의 201 단계에서 읽은 상 수이고, "qP ,i" 와 "q'P ,i"는 기계"P"의 "i"번 동적 파라미터를 최후와 그 직전에 측정한 각각의 값이며, "Δt"는 도 2와 관련하여 위에서 기술한 바 있는 시간간격 상수이다. 따라서 "(qP ,i-q'P ,i)/Δt"는 "Δt" 시간 동안 기계"P"의 "qP ,i" 파라미터의 평균 변화속도를 디지털 형태로 표현한 값이다. 컴퓨터(17)는 이렇게 계산한 "QPAP,i" 값을 도 18 에 나오는 "기계 정지 전의 이동량 QPA 의 도표"의 해당 위치에 저장하고, 303단계로 넘어간다.
303 단계에서 컴퓨터(17)는 "i" 루프 인덱스를 한 단위 올린 다음, 304 단계로 넘어간다.
304 단계에서 컴퓨터(17)는 "i" 루프 인덱스가 기계"P"의 동적 파라미터 수 "NbParamP" 보다 높은 지를 테스트한다. 높지 않으면 컴퓨터(17)는 전술한 302 단계로 되돌아 간다. 높으면, 다시 말해 "NbParamP", 즉 "QPAP" 값이 기계"P"의 "qp" 동적 파라미터 "NbParamP"에 대해 이미 계산되었으면, "Qpa계산" 서브루틴은 여기서 종료된다.
도 4와 관련하여, 이번에는 도 2에 도시된 205 단계와 209 단계에서의 "기계모델링" 서브루틴에 대해 기술하기로 한다.
"기계모델링" 서브루틴은 모델링할 기계의 수 "M"을 파라미터로 수신한다. 이는 "기계모델링" 서브루틴이 도 2 의 205 단계에서 호출되는 경우에는, "기계모델링" 서브루틴 안에 "M"이라고 표시된 값이 호출 프로그램의 "P" 값을 가지게 될 것이고, 도 2 의 209 단계에서 호출되는 경우에는 호출 프로그램의 "M" 값을 가지게 될 것임을 의미한다.
"기계모델링" 서브루틴의 기능은 파라미터화 된 기계"M"의 구성요소 "e" 각각에 대해 하나의 변형가능한 모델을 정의하는 것인데, 이 모델은, "qM ,i"에서 "qM,i+QPAM,i"사이의 변화 간격(variation interval) 내에서 "qM" 파라미터 "NbParamM" 중 어느 파라미터든지 동시적이고 독립적으로 변화가 일어날 때 구성요소"e"가 공간 내에서 취할 수 있는 모든 위치로 구성되어 있다. 더 정확히 말하자면, "M" 기계의 "e" 구성요소에 관련된 변형가능 모델은 하나의 대각선 평행 6면체(AL, BL)로서, AL 포인트와 BL 포인트는 기계"M"의 "qM ,i" 파라미터 "NbParamM"이 각각 "qM , i" 에서 "qM ,i+QPAM ,i" 간격으로 변화를 일으킬 때 극소 좌표 지점과 극대 좌표 지점이 된다.
실제에 있어서는 동적 파라미터 qM 이 변화 범위에 의거하여 이미 정의된 평행육면체 안에서 주로 높은 상관관계를 가지고 변화하기 때문에, 동적 파라미터의 동시적 변화가 일어나는 만약의 경우를 예견한다는 것은 신중을 기하기 위한 조치라 하겠다. 더 정확하게 말하자면, 이 파라미터들은 동적 파라미터 변화 간격에 의해 정의되는 평행육면체의 대각선을 따라 선형을 그리며 변화한다. 그럼에도 불구하고, 본 발명의 바람직한 실시예에서는 변화 간격에 의거하여 정의된 평행육면체 안에서 일어날 수 있는 모든 동시적 변화의 가능성을 안전상의 이유로 배제하지 않았다.
도 1의 예시에서, 기계(1)과 기계(2)의 모든 구성요소 중 A포인트와 B 포인트 양극 좌표는 한 번에 단 하나의 파라미터에 의해서만 결정되기 때문에, 단일 파라미터를 변경시킴으로써 A 포인트 좌표의 극소값과 B 포인트 좌표의 극대값을 동시에 얻을 수 있다. A 포인트와 B 포인트의 극소 좌표, 극대 좌표 중 적어도 일부가 복수의 파라미터에 의해 결정되는 보다 일반적인 경우에는, A 포인트 좌표의 극소값과 B 포인트 좌표의 극대값을 설정하기 위해 해당 파라미터들의 동시적 변화의 모든 조합(combination)을 고려할 필요가 있을 것이다.
"기계모델링" 서브루틴은 401 단계에서 시작된다.
401 단계에서 컴퓨터(17)는 기계 "M"의 "NbElemM"개의 구성요소에 대한 루프 인덱스 "e" 를 1로 초기화한 다음 402 단계로 넘어간다.
402 단계에서 컴퓨터(17)는, 기계 "M"의 "qM ,i" 파라미터 "NbParamM" 의 현재값(current value)으로 도 16의 "기계 구성 도표"에 나오는 해당 정보를 평가하여, ALM,e 포인트와 BLM ,e 포인트를 기계"M"의 구성요소 "e" 의 AM ,e 포인트와 BM ,e 포인트로 각각 초기화한다. 그런 다음 컴퓨터(17)는 403 단계로 넘어간다.
403 단계에서 컴퓨터(17)는 기계 "M"의 파라미터 "NbParamM"에 대한 루프 인덱스 "i" 를 1로 초기화한 다음 404 단계로 넘어간다.
404 단계에서 컴퓨터(17)는 우선 "qM ,i" 파라미터를 "QPAM ,i" 만큼 증가시킨 다. 그런 다음, 도 16의 "기계 구성 도표"에 나오는 기계"M"의 구성요소"e"의 AM ,e 포인트 좌표 정보를 사용하여 ALM ,e 좌표의 현재값(current value) 극소치와 qM ,i 파라미터에 QPAM , i 를 증분하여 얻은 해당값의 극소치로서 ALM ,e 포인트의 국소 좌표 각각을 계산해낸다.
유사한 방식으로, 컴퓨터(17)는 도 16의 "기계 구성 도표"에 나오는 기계"M"의 구성요소"e"의 BM ,e 포인트 좌표 정보를 사용하여 BLM ,e 좌표의 현재값 극대치와 qM,i 파라미터에 QPAM , i 를 증분하여 얻은 해당값의 극대치로서 BLM ,e 포인트의 국소 좌표 각각을 계산해낸다. 그런 다음 컴퓨터(17)는 "qM ,i" 파라미터에서 증가시켰던 "QPAM ,i" 을 감소시킴으로써 "qM ,i" 파라미터를 초기값으로 회복시키고, 405 단계로 넘어간다.
405 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 한 단위 올린 다음 406 단계로 넘어간다.
406 단계에서 컴퓨터(17)는 루프 인덱스 "i"가 기계 "M"의 동적 파라미터 수 "NbParamM" 보다 높은지 테스트한다. 높지 않으면 전술한 404 단계로 되돌아 간다. 높으면, 다시 말해 "qM ,i" 파라미터 "NbParamM"이 이미 처리되었으면 407 단계로 넘어간다.
407 단계에서 컴퓨터(17)는 루프 인덱스 "e"를 한 단위 올린 다음 408 단계 로 넘어간다.
408 단계에서 컴퓨터(17)는 루프 인덱스 "e"가 기계 "M"의 구성요소 수 "NbElemM" 보다 높은지 테스트한다. 높지 않으면 전술한 402 단계로 되돌아간다. 높으면, 다시 말해 기계 "M"의 "NbElemM"개의 구성요소들이 이미 처리되었으면 410단계로 넘어간다.
410 단계에서 컴퓨터(17)는 기계 "M"의 "NbElemM"개의 구성요소들을 위한 루프 인덱스 "e"를 1로 초기화한 뒤 411 단계로 넘어간다.
411 단계에서 컴퓨터(17)는 기계 "M"의 국소 기준(local reference) 상에서의 ALM ,e 와 BLM ,e 포인트 좌표로부터 현장의 광역 기준 상에서의 기계 "M"의 구성요소 "e"의 AGM ,e 와 BGM ,e 양극 포인트 좌표를 계산해낸다. 주어진 예에서 기계(1)과 기계(2)의 기준 R1 과 R2 를 현장의 광역 기준을 평행이동(translation)시켜 획득한 바, 기계 "M"의 구성요소 "e"의 AGM ,e 와 BGM ,e 양극 포인트 좌표는, 기계 "M"의 국소 기준 상의 ALM ,e 와 BLM ,e 포인트 좌표에 기계 "M" 기준의 원(原)좌표 RM을 그대로 합산하여 획득한다. 그런 다음 컴퓨터(17)는 412 단계로 넘어간다.
412 단계에서 컴퓨터(17)는 루프 인덱스(loop index) "e"를 한 단위 올린 다음 413 단계로 넘어간다.
413 단계에서 컴퓨터(17)는 루프 인덱스 "e"가 기계 "M"의 구성요소 수 "NbElemM"보다 높은 지 테스트한다. 높지 않으면 컴퓨터(17)는 411 단계로 되돌아간다. 높으면, 다시 말해 기계 "M"의 "NbElemM"개의 구성요소들의 광역 좌표가 이미 모두 계산된 상태이면, 도 2의 205 단계와 209 단계에 등장하는 "기계모델링" 서브루틴은 여기서 종료된다.
411 단계에서 계산된 결과치는 도 22A와 22B의 "기계 구성요소의 변형가능 모델 도표"의 기계"M" 구성요소의 "NbElemM"에 해당하는 "NbElemM" 칸에 저장된다.
도 5와 관련하여, 도 2의 210 단계에 등장하는 "충돌방지 프로세싱" 서브루틴에 대해 기술하고자 한다.
"충돌방지 프로세싱" 서브루틴은 상대 기계 "M"을 뜻하는 "M"이라는 변수를 수신하게 되는데, 이 기계"M"과 기계자신"P" 사이에 충돌방지 프로세싱이 이루어져야 한다. "P"는 도 2와 관련하여 위에서 이미 기술한 바 있다. "충돌방지 프로세싱" 서브루틴은 501 단계에서 시작된다.
501 단계에서 컴퓨터(17)는 기계자신"P"의 구성요소 번호들을 기술하는 "EP" 루프 변수를 1 로 초기화한 다음 502 단계로 넘어간다.
502 단계에서 컴퓨터(17)는 "M"이라는 상대기계 구성요소들의 번호를 기술하는 "EM" 루프 변수를 1로 초기화한 다음 503 단계로 넘어간다.
503단계에서 컴퓨터(17)는 "EP "와 "M", "EM " 매개변수(arguments)로 "Vz추가" 함수를 호출한다. 도 6과 관련하여 차후 기술하게 될 "Vz추가" 함수는 Z축에 서의 충돌방지 벡터 Vz 도표(해당 도면 없음)에 새로운 충돌방지 벡터를 추가한 경우에 부울린 값(Boolean value)을 "참"으로 정의한다.
"Vz추가" 함수에 의해 적어도 하나의 충돌방지 벡터가 추가되었으면, 다시 말해 기계 "P"와 기계"M"이 수직으로 너무 근접해 있어 Z 축에서 충돌위험이 있는 경우에, 컴퓨터(17)는 아래에 기술되는 504 단계로 넘어가게 된다. Z축 상에 아무런 충돌방지 벡터가 추가되지 않은 경우에는 컴퓨터(17)가 차후에 기술될 511 단계로 넘어가는데, 이는 기계"P" 와 기계 "M" 사이에 충분한 수직 거리가 존재하므로 그러한 충돌이 일어날 수 없기 때문에 XY평면에서의 충돌 검색을 생략한다는 의미이다.
504 단계에서 컴퓨터(17)는 기계"P"의 구성요소"EP"의 직사각형 베이스(base)의 포인트 인덱스 "KP" 를 1로 초기화한 다음 505 단계로 넘어간다. "KP" 인덱스는 (xAL ,P, Ep, yAL ,P, Ep), (xBL ,P, Ep, yAL ,P, Ep), (xBL ,P, Ep, yBL ,P, Ep), 및 (xAL ,P, Ep, yBL ,P, Ep) 좌표 포인트에 대해 각각 1, 2, 3, 및 4 의 값을 취한다.
505 단계에서 컴퓨터(17)는 기계"M"의 구성요소"EM"의 직사각형 베이스(base)의 포인트 인덱스 "KM" 를 1로 초기화한 다음 506 단계로 넘어간다. "KM" 인덱스는 (xAL ,M, Em, yAL ,M, Em), (xBL ,M, Em, yAL ,M, Em), (xBL ,M, Em, yBL ,M, Em), 및 (xAL ,M, Em, yBL ,M, Em) 좌표 포인트에 대해 각각 1, 2, 3, 및 4 의 값을 취한다.
506 단계에서 컴퓨터(17)는 도 8과 관련하여 차후 기술하게 될 "Vxy추가" 서브루틴을 "EP", "KP", "M", "EM", "KM" 매개변수(arguments)를 이용하여 호출한 뒤 507 단계로 넘어간다.
507 단계에서 컴퓨터(17)는 기계 "M"의 "EM" 구성요소의 직사각형 베이스(base)의 포인트에 대한 루프 인덱스 "KM"를 한 단위 올린 다음 508 단계로 넘어간다.
508 단계에서 컴퓨터(17)는 루프 인덱스 "KM"이 4보다 높은지 테스트한다. 높지 않으면 전술한 506 단계로 되돌아 간다. 높으면, 다시 말해 기계 "M"의 "EM" 구성요소의 직사각형 베이스(base)의 포인트 4개가 이미 처리되었으면 509 단계로 넘어간다.
509 단계에서 컴퓨터(17)는 "P" 기계 "EP" 구성요소의 직사각형 베이스(base)의 포인트에 대한 루프 인덱스 "KP"를 한 단위 올린 다음 510 단계로 넘어간다.
510 단계에서 컴퓨터(17)는 루프 인덱스 "KP"가 4보다 높은지 테스트한다. 높지 않으면 전술한 505 단계로 되돌아 간다. 높으면, 다시 말해 "P" 기계 "EP" 구성요소의 직사각형 베이스(base)의 포인트 4개가 이미 처리되었으면 511 단계로 넘어간다.
511 단계에서 컴퓨터(17)는 기계 "M"의 구성요소에 대한 루프 인덱스 "EM" 을 한 단위 올린 다음 512 단계로 넘어간다.
512 단계에서 컴퓨터(17)는 루프 인덱스 "EM"이 기계 "M"의 구성요소 수 "NbElemM"보다 높은지 테스트한다. 높지 않으면 컴퓨터(17)는 전술한 503 단계로 되돌아간다. 높으면, 다시 말해 기계 "M"의 "NbElemM"개의 구성요소들이 이미 처리되었으면 513 단계로 넘어간다.
513 단계에서 컴퓨터(17)는 기계"P"의 구성요소를 위한 루프 인덱스 "EP"를 한 단위 올린 다음 512 단계로 넘어간다.
512 단계에서 컴퓨터(17)는 루프 인덱스 "EP"가 기계"P"의 구성요소 수 "NbElemp"보다 높은지 테스트한다. 높지 않으면 컴퓨터(17)는 전술한 502 단계로 되돌아간다. 높으면, 다시 말해 "P" 기계의 "NbElemp"개의 구성요소들이 이미 처리(processing)되었으면 "충돌방지 프로세싱" 서브루틴은 여기서 종료된다.
도 6과 관련하여 도 5의 503 단계에 등장하는 "Vz추가" 함수에 대해 기술하고자 한다.
"Vz추가" 함수는 호출 프로그램으로부터 "e", "M", "f" 파라미터를 수신하게 되는데, 여기서 "e"는 기계"P"에서 처리할 구성요소의 번호이며, "M"은 처리할 상대기계의 번호이고, "f"는 기계"M"에서 처리할 구성요소의 번호이다. 이는 Z 축에서 기계"P"와 기계"M" 각각의 구성요소들 "e"와 "f" 사이에 충돌위험이 있는 경우 "Vz"도표(해당 도 없음)에 Z축 상의 충돌방지 벡터를 추가하기 위함이다.
Z축 충돌방지 벡터 "Vz"도표에 적어도 하나의 충돌방지 벡터를 추가했으면 "참"의 부울린 값(boolean indicator(value))를 지정하고, 그렇지 않은 경우 "거짓"의 부울린 값을 지정한다. "Vz추가" 함수는 601 단계에서 시작된다.
601 단계에서 컴퓨터(17)는 "cr"변수를 "거짓"이라는 부울린 값으로 초기화하는데, 이 "cr" 변수는 "Vz추가" 함수에 의해 지정되는 부울린 값을 포함하고 있다. 그런 다음, 컴퓨터(17)는 602 단계로 넘어간다.
602 단계에서 컴퓨터(17)는 기계"M"의 구성요소"f"의 하부(Z)좌표가, 기계자신"P"의 구성요소"e"의 상부(Z)좌표에 "DS"라는 안전거리(도 2와 관련하여 전술한 바 있음)를 증분한 수치보다 낮은 지를 테스트한다. 낮지 않으면 컴퓨터(17)는 아래에 기술할 604 단계로 넘어가고, 낮으면, 다시 말해 기계"P"의 구성요소"e"의 상부와 기계"M"의 구성요소"f"의 하부가 충돌할 위험이 있으면 603 단계로 넘어간다.
603 단계에서, 컴퓨터(17)는 "e", "참", 및 "zAG ,M,f-zBG ,P,e" 매개변수(arguments)를 이용해서, 도 7과 관련하여 차후에 기술될 "Vz추가" 서브루틴을 호출한다. 상기 "참"이라는 매개변수는 기계"P"의 구성요소"e"의 상부가 충돌위험과 관련된 부분임을 뜻한다. 또한 컴퓨터(17)는 Z 축에 충돌방지 벡터가 추가되었음을 나타내기 위해 "cr" 변수 안에 "참"이라는 부울린 값을 저장하고, 604 단계로 넘어간다.
604 단계에서 컴퓨터(17)는 기계"M"의 구성요소"f"의 상부(Z)좌표가, 기계 자신"P"의 구성요소"e"의 하부(Z)좌표에서 "DS"라는 안전거리를 감한 수치보다 높은 지를 테스트한다. 높지 않으면 컴퓨터(17)는 호출프로그램에 "cr" 값을 보내고, "Vz추가" 서브루틴은 여기서 종료된다. 높으면, 다시 말해 기계"P"의 구성요소"e"의 하부와 기계"M"의 구성요소"f"의 상부가 충돌할 위험이 있으면 컴퓨터(17)는 605 단계로 넘어간다.
605 단계에서 컴퓨터(17)는 "e", "거짓", "zBG ,M,f-zAG ,P,e" 매개변수를 이용해 "Vz추가" 함수을 호출한다. "거짓"이라는 매개변수는 기계"P"의 구성요소"e"의 하부면이 충돌위험과 관련된 부분임을 뜻한다. 컴퓨터(17)는 Z 축에 충돌방지 벡터가 추가되었음을 나타내기 위해 "cr" 변수 안에 "참"이라는 부울린 값을 저장한다. 컴퓨터(17)는 호출 프로그램에 "cr" 값을 보내고, "Vz추가" 서브루틴은 여기서 종료된다.
도 7과 관련하여, 이번에는 도 6의 603 단계와 605 단계에 등장하는 "Vz추가" 서브루틴에 대해 기술하고자 한다.
"Vxy추가" 서브루틴은 호출 프로그램을 통해 "e", "h", "z" 변수를 수신한다. 이 서브루틴의 기능은 Z축과 평행한 3 열(column)의 충돌방지 벡터들을 갖는 도표 "Vz"(해당 도 없음)에 충돌방지 벡터를 추가하는 것이다.
"Vz추가" 서브루틴은 701 단계로만 구성된다.
701 단계에서 컴퓨터(17)는 Z 축의 충돌방지 벡터 수 "NbVz" 를 한 단위 올리고, "Vz" 도표의 "NbVz" 해당칸 3 자리에 호출프로그램을 통해 획득한 "e", "h", "z" 파라미터 3개를 저장한다.
그러면 "Vz추가" 서브루틴은 여기서 종료된다.
도 8과 관련하여, 이번에는 도 5의 506 단계에 등장하는 "Vxy추가" 서브루틴에 대해 기술하기로 하자.
"Vxy추가" 서브루틴은 호출 프로그램으로부터 파라미터 "e", "k", "M", "f", "l" 파라미터를 수신한다. 이 서브루틴의 기능은, XY평면 베이스의 "l"번 포인트에서 시작되는 기계"M"의 구성요소"f"의 베이스 선분(base segment)에 대하여, "P" 기계 "e" 구성요소의 XY 평면 베이스의 "k" 포인트와 연계하여 "DS"(안전거리) 보다 짧은 길이의 충돌방지 벡터를 결정하는 것이다. 이 벡터가 바로 도 15에 등장하는 SM0, SH, SM1 벡터이다. 여기서 S는 구성요소의 "k" 번 포인트이며, M0는 기계"M"의 구성요소"f"의 "l" 번 포인트이고, M1은 기계"M"의 구성요소"f" 베이스(base)의 닫힌 아웃라인(윤곽) 상의 M0다음에 있는 포인트이다. 또 H는S 포인트로부터 M0M1 선분 쪽으로 내려 그은 수선의 끝점(foot)이다.
"Vxy추가" 서브루틴은 801단계에서 시작된다.
801 단계에서 컴퓨터(17)는 도 9와 관련하여 차후에 기술될 "XY" 서브루틴을 이용하여 기계"P"의 구성요소"e"의 "k" 번 포인트 S의 "xP", "yP" 좌표를 찾아낸다. 또 동일 "XY" 서브루틴을 이용하여 기계"M"의 구성요소"f"의 평면 베이스 선분의 "l" 번 첫 포인트 M0의 좌표 "xM0", "yM0" 도 찾아낸다.
컴퓨터(17)는 "mod(l,4)+1" 식을 이용하여 기계"M"의 구성요소"f"의 베이스 선분 두 번째 포인트인 M1의 번호를 결정한다. 여기서 "mod"는 첫 번째 매개변수를 두 번째 매개변수로 분할한 나머지 값을 의미하는 모듈함수이다. 본 공식의 결과치는 변수 "l" 이 4에 해당할 때 1이 되며, 그 반대의 경우에는 "l+1"이 된다. 따라서 도 5의 505 단계와 관련하여 전술했던 포인트 번호결정 기법에 의거하여, 상기와 같이 결정된 포인트 번호는 기계"M"의 구성요소"f"의 베이스의 닫힌 아웃라인(윤곽) 상의 M0포인트 다음의 M1이다.
컴퓨터(17)는 동일한 "XY"서브루틴을 사용하여 기계"M"의 구성요소"f"의 평면 베이스 선분 두 번째 포인트인 M1의 좌표 "xM1"과 "yM1" 를 이 번호를 이용해서 찾아낸 다음 802 단계로 넘어간다.
802 단계에서 컴퓨터(17)는 상기한 "xP", "yP", "xM0", "yM0" 좌표 각각의 M0 포인트와 S 포인트 간 XY 평면에서의 유클리드 거리가 "DS" 안전거리보다 짧은 지를 테스트한다. 짧지 않으면 컴퓨터는 후술할 804 단계로 넘어간다. 짧은 경우에는 S 포인트와 M0M1선분 간 충돌위험이 있으므로 컴퓨터는 803 단계로 넘어간다.
803 단계에서 컴퓨터(17)는 도 10과 관련하여 차후에 기술될 "Vxy추가" 서브루틴을 "e", "k", "xM0-xP", "yM0-yP" 매개변수를 이용하여 호출하고, 804 단계로 넘어간다.
804 단계에서 컴퓨터(17)는 "xM1" 와 "yM1"좌표의 M1포인트와 "xP", "yP" 좌표 의 S포인트 사이의 XY평면 상 유클리드 거리가 "DS" 안전거리보다 짧은 지를 테스트한다. 짧지 않으면 컴퓨터는 후술할 806 단계로 넘어간다. 짧은 경우에는 S 포인트와 M0M1선분 간 충돌위험이 있으므로 컴퓨터는 805 단계로 넘어간다.
805 단계에서 컴퓨터(17)는 "Vxy추가" 서브루틴을 "e", "k", "xM1-xP", "yM1-yP" 매개변수를 이용하여 호출한 다음 806 단계로 넘어간다.
806 단계에서 컴퓨터(17)는 M0M1선분의 파라미터 방정식에서 H 포인트를 정의하는 "λ" 파라미터(parameter)를 계산한다:
SH = (1-λ)*SM0 + λ*SM1, 0 ≤ λ ≤ 1
SH 벡터와 M0M1벡터의 내적(scala product)이 0 일 경우에만 SH 벡터는 M0M1벡터에 대해 수직을 이룬다. 따라서 본 발명이 속하는 분야의 기술자의 기본 해석에 의거할때 806 단계에 등장하는 "λ" 값에 있어서 SH 선분은 M0M1선분과 수직을 이루게 되는 것이다. 이때 컴퓨터(17)는 807 단계로 넘어간다.
807 단계에서 컴퓨터(17)는 806 단계에서 정해진 "λ" 값이 0 에서 1 사이인지를 테스트한다. 0 에서 1 사이가 아닌 경우, H 포인트는 M0M1선분의 밖에 위치하게 되는데, 이는 S 포인트가 M0M1선분의 다른 어떠한 포인트 보다도 M0또는 M1포인트에 더 가까이 있음을 뜻하며 따라서 이 선분 안에 있는 포인트와 S 포인트가 서로 충돌할 위험은 없다는 의미가 된다. 이 경우 "Vxy추가" 서브루틴은 종료된다. "λ" 값이 0 에서 1 사이이면 컴퓨터(17)는 808 단계로 넘어간다.
808 단계에서 컴퓨터(17)는 SH 선분의 파라미터 방정식에서 "λ" 파라미터를 806 단계에서 획득한 값으로 대체하여 "hx"와 "hy" 좌표를 계산해 낸다. 그런 다음 809단계로 넘어간다.
809 단계에서 컴퓨터(17)는 SH 선분의 길이가 "DS" 안전거리 미만인지를 테스트한다. 미만이 아니면 충돌 위험이 없으므로 "Vxy추가" 서브루틴은 종료되며, 미만인 경우에는 810 단계로 넘어간다.
810 단계에서 컴퓨터(17)는 "e", "k", "hx", "hy" 매개변수로 "Vxy추가" 서브루틴을 호출하고, "Vxy추가" 서브루틴은 여기서 종료된다.
도 9과 관련하여, 이번에는 도 8의 801 단계에 등장하는 "XY" 서브루틴에 대해 기술하고자 한다.
"XY" 서브루틴은 호출 프로그램의 "M", "e", k", "x", "y" 파라미터들을 수신한다. "XY" 서브루틴의 기능은, 기계 "M"의 구성요소"e"의 평면 베이스에서 "k" 번 포인트의 "x"와 "y" 좌표를 찾아내는 것이다. "XY" 서브루틴은 901 단계에서 시작된다.
901 단계에서 컴퓨터(17)는 기계"P"의 구성요소"e"의 베이스에서 포인트 번호를 지시해 주는 "k" 파라미터 값이 1 또는 4인지를 테스트한다. 1 또는 4가 아닌 경우에는 차후에 기술될 903 단계로 이동하며, 1 또는 4인 경우에는 902 단계로 넘어간다.
902 단계에서 컴퓨터(17)는 도 5의 505 단계에서 정의된 번호부여 원칙에 의거하여 "k=1 또는 k=4"의 경우에 상응하는 극소값 "xAG ,M,e"를 파라미터화된 "x" 변수에 배정하고 904단계로 넘어간다.
901 단계에서의 테스트 결과가 1 또는 4가 아니라서 넘어온 903 단계에서, 컴퓨터(17)는 "x" 변수에 "xBG ,M,e" 라는 극대값을 배정한 뒤 904 단계로 넘어간다.
904 단계에서 컴퓨터(17)는 "P"기계의 구성요소"e"의 베이스에서 S 포인트 번호를 지시해주는 "k" 파라미터 값이 1 또는 2인지를 테스트한다. 1 또는 2가 아닌 경우에 컴퓨터(17)는 후술될 906 단계로 넘어가고, 1 또는 2인 경우에는 905단계로 이동한다.
905 단계에서 컴퓨터(17)는 도 5의 505 단계에서 정의된 번호부여 원칙에 의거하여 "k=1 또는 k=2"인 경우에 상응하는 극소값 "yAG ,M,e"를 파라미터화된 "y" 변수에 배정한다. 여기서 "XY" 서브루틴은 종료된다.
904 단계에서의 테스트 결과가 1 또는 2가 아니어서 넘어온 906 단계에서, 컴퓨터(17)는 "y" 변수에 "yBG ,M,e" 극대값을 부여한다. 여기서 "XY" 서브루틴은 종료된다.
도 10과 관련하여, 이번에는 도 8의 803, 805, 810 단계에 등장하는 "Vxy추가" 서브루틴에 대해 기술하고자 한다.
"Vxy추가" 서브루틴은 호출 프로그램을 통해 "e", "k", "x", "y" 파라미터들을 수신한다. 4개의 열(column)로 된, XY 평면에서의 충돌방지 벡터 도표 "Vxy" (해당 도면 없음)에 충돌방지 벡터를 추가하는 것이 이 서브루틴의 기능이다.
"Vxy추가" 서브루틴은 1001 단계 만으로 구성된다.
이 단계에서, 컴퓨터(17)는 XY 평면의 충돌방지 벡터 수 "NbVxy"를 한 단위 올린 다음, "Vxy" 도표의 "NbVxy" 해당 줄 4자리에 호출 프로그램으로부터 수신한 "e", "k", "x", "y" 파라미터 4개를 저장한다.
그러면 "Vxy추가" 서브루틴은 여기서 종료된다.
도 11과 관련하여, 도 2의 213 단계에 등장하는 "동적차단 생성" 서브루틴에 대해 기술하고자 한다.
이 서브루틴은, 전술된 충돌방지 벡터가 증가되는 것을 막기 위하여, 즉 충돌이 일어나기 전에 기계 동작을 중단시키기 위해 기계"P"의 어느 자유도를 어느 방향으로 정지시켜야 할 지 결정하는 기능을 가지고 있다.
"동적차단 생성" 서브루틴은 1101 단계에서 시작된다.
1101 단계에서 컴퓨터(17)는 XZ 평면에서의 충돌방지 벡터 수 "NbVxy"와 Z 축에서의 충돌방지 벡터 수 "NbVz"가 둘 다 0인지를 테스트한다. 0 이면, 다시 말해 충돌방지 벡터가 없고, 따라서 충돌 위험이 없으면, "동적차단 생성" 서브루틴은 종료된다. 0 이 아니면 컴퓨터(17)는 1102 단계로 넘어간다.
1102 단계에서 컴퓨터(17)는 통제 중인 기계자신 "P"의 운용자에게 음향 또는 시각 경보를 발생시키고 1103 단계로 넘어간다.
1103 단계에서 컴퓨터(17)는 기계자신"P"의 "NbParamP" 자유도에 대한 동적 차단을 +방향 "C+"과 -방향 "C-" 모두에 대해 0 으로 놓은 다음 1104 단계로 넘어간 다.
1104 단계에서 컴퓨터(17)는 XY 평면에서의 충돌방지 벡터의 루프 인덱스 "n"를 1로 초기화하고, 1105 단계로 넘어간다.
1105 단계에서 컴퓨터(17)는, XY 평면에서의 동적차단을 결정해주는 "동적차단Vxy" 서브루틴에게 처리(processing)할 충돌방지 벡터 "Vxy"의 번호 "n" 을 매개변수로 주면서 "동적차단Vxy" 서브루틴을 호출하고, 1106 단계로 넘어간다. "동적차단Vxy" 서브루틴에 대해서는 도 12 와 관련하여 차후에 기술할 것이다.
1106 단계에서 컴퓨터(17)는 루프 인덱스 "n"을 한 단위 올린 뒤 1107 단계로 넘어간다.
1107 단계에서 컴퓨터(17)는 루프 인덱스 "n"이 XY 평면에서의 충돌방지 벡터 "Vxy"의 수 "NbVxy" 보다 높은 지를 테스트한다. 높지 않으면 전술한 1105 단계로 되돌아 가고, 높으면, 다시 말해 XY 평면에서의 충돌방지 벡터 "Vxy"의 수 "NbVxy" 가 이미 처리되었으면 1108 단계로 넘어간다.
1108 단계에서 컴퓨터(17)는 Z축을 따른 충돌방지 벡터의 루프 인덱스 "n" 을 1로 초기화 한 뒤 1109 단계로 넘어간다.
1109 단계에서 컴퓨터(17)는, Z 축의 동적차단을 결정하는 "동적차단Vz" 서브루틴에게 처리할 충돌방지 벡터 "Vz"의 번호 "n" 을 매개변수로 주면서 "동적차단Vz" 서브루틴을 호출하고, 그런 다음 1110 단계로 넘어간다. "동적차단Vz"에 대해서는 도 13 과 관련하여 차후에 기술할 것이다.
1110 단계에서 컴퓨터(17)는 루프 인덱스 "n"을 한 단위 올린 뒤 1111단계 로 넘어간다.
1111 단계에서 컴퓨터(17)는 루프 인덱스 "n"이 Z 축과 평행하는 충돌방지 벡터 "Vz"의 수 "NbVz" 보다 높은 지를 테스트한다. 높지 않으면 전술한 1109 단계로 되돌아 가고, 높으면, 즉 Z 축과 평행하는 충돌방지 벡터 "Vz" 가 이미 모두 처리되었으면 1112 단계로 이동한다.
1112 단계에서 컴퓨터(17)는 도 14와 관련하여 차후에 기술하게 될 "동적차단 전달" 서브루틴을 호출하며, "동적차단 생성" 서브루틴은 여기서 종료된다.
도 12와 도 15와 관련하여, 이번에는 도 11의 1105 단계에 등장하는 "동적차단Vxy" 서브루틴에 대해 기술하고자 한다.
이 서브루틴의 기능은 "P"라는 기계자신의 "qP" 파라미터 "NbParamP" 에 대하여, 파라미터화된 "n" 번의 벡터 "Vxy"에 필요한 동적차단을 생성하는 것인데, 이는 상기 파라미터들 각각과 연계된 기계"P"의 자유도의 양방향 모두에 적용된다.
"동적차단Vxy" 서브루틴은 1201 단계에서 시작된다.
1201 단계에서 컴퓨터(17)는 임시 변수 "e" 를 "Vxy" 도표 "n" 줄의 첫째 위치에 나오는 값으로 초기화한다. 다시 말해 변수 "e" 는 충돌방지 벡터 "n"의 원점 S가 속해 있는 기계"P"의 구성요소의 번호를 - 도 10의 1001 단계에서 저장됐던 그대로 - 받게 된다. 마찬가지로 컴퓨터(17)는 임시 변수 "k"를 "Vxy" 도표 "n"줄의 두 번째 위치에 나오는 값으로 초기화한다. 다시 말해 변수 "k" 는 "P" 기계의 구성요소 "e" 안에 있는 충돌방지 벡터 "n"의 원점 S의 번호를 받게 된다.
컴퓨터(17)는 도 9와 관련하여 전술한 바 있는 "XY" 서브루틴을 매개변수 "P", "e", "k", "x", "y"를 이용해 호출한다. 그렇게 하면 "x" 와 "y" 변수를 기계"P"의 구성요소"e"의 베이스에 있는 "k" 포인트의 XY 좌표 값으로 초기화하게 된다. 다시 말해, 컴퓨터(17)는 기계"P"의 파라미터"qP"의 현재값(current value)으로서, 충돌방지 벡터 "Vxyn"의 원점 S의 좌표를 찾아낸다.
컴퓨터(17)는 루프 인덱스 "i" 를 1로 초기화한 다음 1202 단계로 넘어간다.
1202 단계에서, 컴퓨터(17)는 파라미터 "qP ,i" 값에 도 2의 201 단계에서 읽어낸 양의 값 "εP,i"를 증가시킨다. 파라미터 "qP ,i"와 관련된 "εP,i" 값은, 파라미터 "qP , i" 의 증가량과 관련된 "P" 기계 구성요소의 이동이 여전히 미미한 수준에서 제한될 수 있도록 충분히 낮은 값으로 사전 설정된 값이지만, 차후의 계산에서는 적정한 디지털 정밀도를 보장해 준다.
컴퓨터(17)는 매개변수 "P", "e", "k", "x'", "y'"로 "Vxyn" 서브루틴을 호출함으로써, "P" 기계 "i" 파라미터의 "qP ,iP,i" 값으로 "Vxyn" 충돌방지 벡터의 원점(최초 포인트) S'의 "x'" 와 "y'" 좌표를 찾아낸다. 그런 다음, 파라미터 "qP,i"로부터 "εP,i"를 제함(뺌)으로써 파라미터 "qP ,i"를 현재값(current value)으로 회복시키고, SS' 벡터와 "Vxyn" 충돌방지 벡터의 내적(scalar product) "PS" 를 계 산한다. 그럼 다음 컴퓨터(17)는 1203 단계로 넘어간다.
1203 단계에서 컴퓨터(17)는 1202 단계에서 결정된 내적(scalar product) "PS" 가 양수인지 테스트한다. 양수가 아니면 컴퓨터(17)는 후술하게 될 1205 단계로 넘어간다. 양수인 경우에는 "qP ,i" 파라미터의 양변화(positive variation)가 충돌방지 벡터 "Vxyn"를 감소시키는 경향이 있을 것인데, 이는 충돌 위험을 증가시키는 경향을 의미한다. 이 경우에 컴퓨터(17)는 1204 단계로 넘어가며, 이 단계에서 "P" 기계의 "i" 자유도에 의한 +방향으로의 이동이 금지되어야 한다는 의미에서 차단 지표(cutoff indicator) "C+ i"를 "참"값에 놓는다. 그런 다음 컴퓨터(17)는 1205 단계로 넘어간다.
1205 단계에서, 컴퓨터(17)는 1202 단계에서 결정된 내적(scalar product) "PS" 가 음수인지 테스트한다. 음수가 아닌 경우, 컴퓨터(17)는 후술될 1207 단계로 넘어간다. 음수인 경우에는 "qP ,i" 파라미터의 음변화(negative variation)가 충돌방지 벡터 "Vxyn"를 감소시키는 경향이 있을 것인데, 이는 충돌 위험을 증가시킨다는 의미이다. 이 경우에 컴퓨터(17)는 1206 단계로 넘어간다. 1206 단계에서 "P" 기계의 "i" 자유도에 의한 -방향으로의 이동이 정지되어야 한다는 의미에서 차단 지표 "C- i"를 "참"값에 놓는다. 그런 다음 컴퓨터(17)는 1207 단계로 넘어간다.
1207 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 한 단위 올린 다음 1208 단계로 넘어간다.
1208 단계에서 컴퓨터(17)는 루프 인덱스 "i" 가 기계"P"의 파라미터 수 "NbParamP"보다 높은 지를 테스트한다. 높지 않으면 컴퓨터(17)는 전술한 바 있는 1202 단계로 되돌아 간다. 높으면, 즉 기계자신"P"의 "qP" 파라미터 수 "NbParamP"가 이미 처리되었으면 "동적차단Vxy" 서브루틴은 종료된다.
도 13과 관련하여 이번에는 도 11의 1109 단계에 등장하는 "동적차단Vz" 서브루틴에 대해 기술하도록 한다.
이 서브루틴의 기능은 기계자신"P"의 "qP" 파라미터 "NbParamP" 에 대해, 파라미터화된 "n" 번의 벡터 "Vz"에 필요한 동적차단을 생성하는 것인데, 이는 상기 파라미터들 각각에 관련된 "P" 기계의 양방향 자유도에 대해 모두 적용된다.
"동적차단Vz" 서브루틴은 1301단계에서 시작된다.
1301 단계에서 컴퓨터(17)는 임시 변수 "e" 를 "Vz" 도표 "n" 줄의 첫째 위치에 나오는 값으로 초기화한다. 다시 말해 변수 "e" 는 충돌방지 벡터 "n"의 원점(최초 포인트) S가 속해 있는 기계"P"의 구성요소의 번호를 - 도 7의 701 단계에서 저장됐던 그대로 - 받게 된다. 또 컴퓨터(17)는 루프 인덱스 "i" 를 1로 초기화한 다음 1302 단계로 이동한다.
1302 단계에서 컴퓨터(17)는 충돌방지 벡터 "Vz" 도표의 "n"줄 두 번째 줄에 저장돼 있는 부울린 변수의 값을 테스트한다. 도 7의 701 단계에서 저장된 이 값 은, 충돌위험이 "e" 구성요소의 상부면에 관한 것이면 부울린 값 "참"을 가지게 되고, 충돌위험이 "e" 구성요소의 하부면에 관한 것이면 부울린 값 "거짓"을 가지게 된다. "Vzn ,2" 값이 부울린 값으로 "참" 이면 컴퓨터(17)는 후술될 1304 단계로 넘어간다. 그렇지 않을 경우는 1303 단계로 이동한다.
"Vzn ,2" 변수가 부울린 값으로 "거짓"이면, 다시 말해 "Vzn ,"이 지시하는 충돌위험이 기계"P"의 구성요소"e"의 하부면에 대한 것일 때 넘어오는 1303 단계에서, 컴퓨터(17)는 충돌방지 벡터 "Vzn ,"의 최초 포인트S의 제3좌표(Z축 좌표)를 나타내는 임시변수"z"를 기계"P"의 구성요소"e"의 하부면 Z좌표 값 "zAG ,P,e"로 초기화한다. 그런 다음, 컴퓨터(17)는 파라미터 값 "qP ,i"에 도 2의 201 단계에서 판독한 양의 량(positive amount) "εP, i" 를 추가한다. 파라미터 "qP ,i" 와 관련된 "εP,i" 값은 도 12의 1202 단계와 관련하여 위에서 기술한 값과 동일하다. 이때 컴퓨터(17)는, 기계"P"의 파라미터"i"의 "qP ,iP,i" 값으로 충돌방지 벡터"Vzn ,"의 최초 포인트 S'의 Z축 좌표를 나타내는 임시변수"z'"를 기계"P"의 파라미터"i"의 값 "qP ,iP, i" 으로 획득했던 기계"P"의 구성요소"e"의 하부면 Z축 좌표값 "zAG ,P, e" 으로 초기화한다. 그런 다음 컴퓨터(17)는 파라미터"qP ,i"에서 "εP,i" 양(amount)를 제함(뺌)으로써 파라미터 "qP ,i"를 초기값으로 환원시킨다. 그리고 1305 단계로 넘어간다.
"Vzn ,2" 변수의 부울린 값이 "참"이면, 다시 말해 "Vzn"이 지시하는 충돌위험이 기계"P"의 구성요소"e"의 상부면에 관한 것일 경우 넘어온 1304단계에서, 컴퓨터(17)는 충돌방지 벡터 "Vzn"의 최초 포인트S의 Z축 좌표를 나타내는 임시변수 "z"를 기계"P"의 구성요소"e"의 상부면 Z좌표 값 "zBG ,P,e"로 초기화한다. 그런 다음 컴퓨터(17)는 파라미터 값 "qP ,i"에 "εP,i" 양(amount)를 추가한다. 그 후, 컴퓨터(17)는, "P" 기계 "i" 파라미터의 "qP ,iP,i" 값으로 충돌방지 벡터 "Vzn ,"의 최초 포인트 S'의 Z축 좌표를 나타내는 임시변수 "z'"를, 기계"P"의 파라미터"i"의 값 "qP ,iP,i"을 위해 획득했던 기계"P"의 구성요소"e"의 하부면 Z축 좌표값 "zAG,P,e"로 초기화한다. 그런 다음 컴퓨터(17)는 파라미터 "qP ,i"에서 "εP,i" 양(amount)를 제함으로써 파라미터 "qP ,i"를 초기값으로 환원시킨다. 그리고 1305 단계로 넘어간다.
1305 단계에서 컴퓨터(17)는, "(z'-z)*Vzn ,3"의 결과 - 여기서 "z" 와 "z'" 는 1302 단계 또는 1303 단계에서 결정된 값이고, "Vzn ,3"는 도 7의 701 단계에서 결정된 그대로의 충돌방지 벡터의 길이임 - 가 양(positive)의 값인지 테스트한다. 양의 값이 아닌 경우, 컴퓨터(17)는 후술될 1307 단계로 넘어간다. 양의 값이면, 벡터 SS'는 충돌방지 벡터 "Vzn"와 동일한 방향을 가진다. 다시 말해 파라미터 "qP,i"의 양변화(positive variation)는 충돌방지 벡터 "Vzn"를 감소시키는 경향이 있을 것이며, 따라서 충돌위험은 증가되는 경향을 보일 것이다. 결과적으로 컴퓨터(17)는 1306 단계로 이동하게 되며, 이 단계에서 기계"P"의 "i" 이동을 파라미터 "qP,i"의 양의 방향으로는 금지시켜야 한다는 의미에서
차단 지표(cutoff indicator) "C+ i"을 "참" 값에 놓는다. 그런 다음 컴퓨터(17)는 1307 단계로 넘어간다.
1307 단계에서 컴퓨터(17)는 "(z'-z)*Vzn ,3" 결과가 음(negative)의 값인지를 테스트한다. 음의 값이 아닌 경우, 컴퓨터(17)는 후술될 1309 단계로 넘어간다. 음의 값인 경우, 벡터 SS'는 충돌방지 벡터 "Vzn"와 반대 방향을 갖는다. 다시 말해 파라미터 "qP ,i"의 음변화(negative variation)는 충돌방지 벡터 "Vzn"를 감소시키는 경향이 있을 것이며, 따라서 충돌위험은 증가되는 경향을 보일 것이다. 결과적으로 컴퓨터(17)는 1308 단계로 이동하게 되며, 이 단계에서 파라미터 "qP ,i"의 음의 방향으로는 기계"P"의 "i" 이동을 금지시켜야 한다는 의미에서 차단지표 "C- i"을 "참" 값에 놓는다. 그런 다음 컴퓨터(17)는 1309 단계로 넘어간다.
1309 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 한 단위 올리고 1310 단계로 넘어간다.
1310 단계에서 컴퓨터(17)는 루프 인덱스 "i"가 기계"P"의 파라미터의 수 "NbParamP" 보다 높은 지를 테스트한다. 높지 않으면 컴퓨터(17)는 전술한 1302 단계로 되돌아간다. 높으면, 다시 말해 기계자신"P"의 "qP" 파라미터 "NbParamP" 가 이미 처리되었으면 "동적차단Vz" 서브루틴은 여기서 종료된다.
도 14와 관련하여 이번에는 도 11의 1112 단계에 등장하는 "동적차단 전달" 서브루틴에 대해 기술하고자 한다.
"동적차단 전달" 서브루틴은 1401 단계에서 시작된다.
1401 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 1로 초기화한 뒤 1402 단계로 넘어간다.
1402 단계에서 컴퓨터(17)는 변수 "C+ i"가 부울린 값으로 "참"인지 테스트한다. "참"이 아니면 컴퓨터(17)는 후술하게 될 1404 단계로 넘어간다. "참"이면 1403 단계로 넘어간다.
변수 "C+ i"의 값이 "참"일 때, 다시 말해 전술했던 방법에 의거하여 기계"P"의 파라미터"qP ,i"의 양변화 방향으로의 "i" 자유도 이동을 금지시켜야 한다는 결정을 함으로써 도달하게 된 1403 단계에서, 컴퓨터(17)는 기계"P"의 해당 엑츄에이터(actuator) "i" 에 양의 방향으로의 이동 정지명령을 보낸다. 그런 다음 1404 단계로 넘어간다.
1404 단계에서 컴퓨터(17)는 변수 "C- i"의 부울린 값이 "참"인지를 테스트한 다. 참이 아니면 컴퓨터(17)는 후술될 1406 단계로 넘어간다. 참이면 1405 단계로 이동한다.
변수 "C- i"의 값이 "참"일 때, 다시 말해 전술했던 방법에 의거하여 기계"P"의 파라미터"qP ,i"의 음변화 방향으로의 "i" 자유도 이동을 금지시킬 것을 결정함으로써 도달하게 된 1405 단계에서, 컴퓨터(17)는 기계"P"의 해당 엑츄에이터(actuator) "i" 에 음의 방향으로의 이동 정지명령을 보낸다. 그런 다음 1406 단계로 넘어간다.
1406 단계에서 컴퓨터(17)는 루프 인덱스 "i"를 한 단위 올린 뒤 1407 단계로 넘어간다.
1407 단계에서 컴퓨터(17)는 루프 인덱스 "i"가 기계자신"P"의 파라미터의 수 "NbParamP"보다 높은 지를 테스트한다. 높지 않으면 컴퓨터(17)는 전술했던 1402 단계로 되돌아간다. 높으면, 즉 모든 동적차단이 해당 엑츄에이터(actuator)에 이미 보내졌으면 "동적차단 전달" 서브루틴은 종료된다.
전산시스템(27)에 의해 실행되는 프로그램도 모든 면에서 상기한 전산시스템(17)의 실행 프로그램과 유사하다. 따라서 상기한 내용을 반복 기술하지 않도록 한다.
이제까지는 동일 작업현장에 배치된 기계 구성요소들 간의 충돌위험을 탐지할 수 있는 본 발명 방법의 바람직한 실시예에 대해 기술하였다.
상기한 발명 방법의 실시예는 실전에서 본 발명이 속하는 기술분야의 기술 자에 의해 쉽게 수정 및/또는 개량될 수 있을 것이다.
특히 명쾌한 이해를 도모하고자 의도적으로 두 개의 기계로만 구성된 단순 사례를 인용하였다. 동일한 이유에서 상기한 예의 데이터 구조도 단순화시켰으며, 취급 기계유형도 5개의 평행 6면체 구성요소로 모델링된 고가 이동식 기중기에 제한시켰다. 기준(reference) 변경 역시 병진이동(translation)에 국한시켰고, 동적 파라미터의 수는 기계 당 3 개로 제한하였다.
실제에 있어서, 본 발명이 속하는 기술분야의 기술자는 동일 작업현장에 있는 많은 프리즘형 또는 실린더형 등의 기계 구성요소를 포함하여 다수의 기계에 대하여 상기한 예를 쉽게 확대 적용할 수 있을 것이다. 이와 유사하게, 회전식 기중기, 인양 기중기, 레일 머신, 굴착기, 핸드 트럭, 오버헤드 크레인 등 타 유형의 기계들도 적용 대상이 될 수 있으며, 기준(reference)의 임의적 변경도 일반화될 수 있을 것이다. 각 기계의 동적 파라미터 수는 사용하는 기계의 유형에 따라 감소 또는 증가될 수 있다.
또한 위에서 인용한 예에서는 서로 다른 기계에 속해 있는 구성요소들에 대해서만 충돌위험을 검색하는데 그쳤다. 그러나 본 발명의 방법은 동일한 기계에 속해 있는 구성요소에 대해서도 확대 적용될 수 있다. 예를 들어 기중기 적하물(load)과 이 기중기 구성요소 간 충돌을 피하기 위한 목적으로도 사용될 수 있다.
따라서 본 발명 방법은 상기한 설명 및/또는 실시예의 내용에만 국한되지 않음을 분명히 밝혀둔다. 본 발명 방법은 첨부된 청구범위에 의해서 정해져야 할 것 이다.
본 발명은 적어도 두 개의 이동기계가 사용되는 작업현장에서 이용될 수 있다.

Claims (34)

  1. 적어도 하나의 인양기계(1, 2)의 적어도 두 개의 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) 간의 충돌을 방지하는 방법으로서, 상기 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)은 상기 적어도 하나의 인양기계(1, 2) 자체의 구성요소이거나 상기 적어도 하나의 인양기계(1, 2)에 의해 운반되어지는 적하물일 수 있고, 상기 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)은 포인트에 의해 정의되며, 상기 포인트들은 디지털 형태로 인식가능하며, 상기 포인트들은 적어도 1 자유도에 의하여 동시적 이동이 가능하고, 상기 적어도 1 자유도 각각에 따른 이동량은 디지털 형태로 인식가능하고, 상기 동시적 이동 각각은 해당 자유도의 정지 전 최소 변화량을 필요로 하며, 상기 포인트와 이동량을 디지털 형태로 저장하고 처리하는 적어도 하나의 전산시스템(17, 27)이 사용되고, 상기 기계(1, 2)의 구성요소(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) 각각에 관한 변형 가능한 디지털 모델이 상기 전산시스템(17, 27) 내에 정의되어 있는 것이 특징적이며, 상기 변형 가능한 모델은 상기 정지 전 최소 변화 중에 적어도 1 자유도에 따라 일어나는 동시적 이동의 모든 경우에 상기 관련된 구성요소(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)의 포인트들이 취할 수 있는 모든 위치들을 포함하고, 상기 적어도 하나의 전산시스템(17, 27)은 적어도 하나의 기계(1, 2)에 대해 그 적어도 하나의 기계(1, 2)의 구성요소(11, 12, 13, 14, 15, 16)의 변형가능한 모델들 각각과 동일 기계(1, 2) 또는 다른 기 계(1, 2)의 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)의 변형가능 모델들 각각 간의 거리를 계산하며, 상기 적어도 하나의 전산시스템(17, 27)은 이렇게 계산된 거리들 중에서 적어도 하나가 미리 정의된 안전거리보다 짧을 때 충돌위험을 감지하는 방법.
  2. 제 1 항에 있어서, 상기 적어도 하나의 기계(1, 2) 각각에는 전산시스템(17, 27)이 구비된 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 적어도 하나의 전산시스템(17, 27)에는 운용자에게 상기 변형가능한 모델을 표시하는 것을 가능하게 하는 적어도 하나의 표시장치가 구비된 방법.
  4. 선행하는 청구항들 중 임의의 청구항에 있어서, 상기 충돌위험 감지시 상기 적어도 하나의 전산시스템(17, 27)에 의해 경보가 발생되는 방법.
  5. 제 4 항에 있어서, 상기 경보는 음향 경보인 방법.
  6. 제 4 항에 있어서, 상기 경보는 시각 경보인 방법.
  7. 제 4 항 내지 제 6 항 중의 어느 한 항에 있어서, 상기 경보는 상기 적어도 하나의 기계(1, 2)의 적어도 한 명의 운용자에게 전달되는 방법.
  8. 선행하는 청구항들 중 임의의 청구항에 있어서, 상기 정지 전 최소 변화량은 적어도 하나의 전산시스템(17, 27)에 의해 결정 또는 측정되는 방법.
  9. 제 8 항에 있어서, 상기 정지 전 최소 변화량을 결정 또는 측정할 수 없는 경우에는 상기 정지 전 최소 변화량에 미리 정해진 값이 배정되는 방법.
  10. 선행하는 청구항들 중 임의의 청구항에 있어서, 상기 변형가능 모델은 2차원 형태인 방법.
  11. 제 1 항 내지 제 10 항 중의 어느 한 항에 있어서, 상기 변형가능 모델은 3차원 형태인 방법.
  12. 제 11 항에 있어서, 상기 변형가능 모델은 표면 요소로 구성된 베이스가 그 표면 밖으로 이동하는 동안 경유하게 되는 모든 포인트의 집합체로서 얻어지는 각기둥형 입체로 근사화되는 방법.
  13. 제 12 항에 있어서, 상기 베이스는 편평한 방법.
  14. 제 13 항에 있어서, 상기한 평편한 베이스의 윤곽이 호와 선분의 연결로 정의된 방법.
  15. 제 12 항 내지 제 14 항 중의 어느 한 항에 있어서, 상기 이동은 직선형인 방법.
  16. 제 15 항에 있어서, 상기 직선형의 이동은 상기 베이스의 평면에 수직을 이루는 방법.
  17. 선행하는 청구항들 중 임의의 청구항에 있어서, 적어도 두 개의 전산시스템(17, 27)이 적어도 두 개의 기계(1, 2)와 각각 대응하여 연결되어, 상기 포인트와 이동량을 디지털 형태로 처리하는 방법.
  18. 제 17 항에 있어서, 상기 적어도 두 개의 전산시스템(17, 27)은 정보를 디지털 형태로 교환하는 방법.
  19. 제 18 항에 있어서, 상기 정보는 상기 적어도 두 개의 전산시스템(17, 27)에 의해 전산식 통신수단(3)을 통하여 교환되는 방법.
  20. 제 19 항에 있어서, 상기 전산식 통신수단(3)은 전산 네트워크인 방법.
  21. 선행하는 청구항들 중 임의의 청구항에 있어서, 상기 적어도 하나의 전산시스템(17, 27)은 상기 적어도 하나의 기계(1, 2) 중의 적어도 하나의 적어도 1 자유도의 변화를 통제할 수 있는 방법.
  22. 제 21 항에 있어서, 상기 통제는 적어도 1 자유도의 변화의 차단을 포함하는 방법.
  23. 제 21 항에 있어서, 상기 통제는 적어도 1 자유도의 변화속도의 감소를 포함하는 방법.
  24. 제 23 항에 있어서, 상기 속도 감소는 상기 적어도 하나의 기계(1, 2)에 관하여 계산된 상기 거리 중 하나와 반비례하는 방법.
  25. 선행하는 청구항들 중 임의의 청구항에 있어서, 적어도 두 개의 전산시스템(17, 27) 내에 적어도 두 개의 대응하는 기계들(1, 2)에 대하여 단순 총괄 범위가 정의되고, 상기 적어도 두 개의 대응하는 기계들(1, 2) 중의 임의의 두 개의 단순 총괄 범위들 간에 교차범위가 없으면 그 적어도 두 개의 기계는 서로 충돌할 수 없는 것으로 보는 방법.
  26. 제 25 항에 있어서, 상기 단순 총괄 범위는 베이스 표면이 이동경로를 따라 이동함으로써 얻어지는 각기둥 형태인 방법.
  27. 제 26 항에 있어서, 상기 베이스 표면은 평편한 방법.
  28. 제 27 항에 있어서, 상기 편평한 베이스 표면은 원판인 방법.
  29. 제 26 항 내지 제 28 항 중의 어느 한 항에 있어서, 상기 이동경로는 직선 형태인 방법.
  30. 제 27 항 또는 제 28 항에 있어서, 상기 이동경로는 직선 형태이며 상기 평편한 베이스에 수직을 이루는 방법.
  31. 선행하는 청구항들 중 임의의 청구항에 있어서, 상기 적어도 하나의 전산시스템(17, 27) 중 적어도 하나는 비휘발성 기억장치를 포함하는 방법.
  32. 제 31 항에 있어서, 상기 비휘발성 기억장치는 상기 기계들(1, 2) 중 적어도 한 기계의 구성을 디지털 형태로 저장하는 방법.
  33. 제 31 항 또는 제 32 항에 있어서, 상기 비휘발성 기억장치는 컴퓨터의 하드 디스크인 방법.
  34. 적어도 하나의 인양기계(1, 2)의 적어도 두 개의 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) 간의 충돌을 방지하는 시스템으로서, 상기 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)은 상기 적어도 하나의 인양기계(1, 2) 자체의 구성요소이거나 상기 적어도 하나의 인양기계(1, 2)에 의해 운반되는 적하물일 수 있고, 상기 구성요소들(11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26)은 포인트에 의해 정의되며, 상기 포인트들은 디지털 형태로 인식될 수 있고, 상기 포인트들은 적어도 1 자유도에 따라 동시적으로 이동할 수 있으며, 상기 적어도 1 자유도 각각에 따른 이동량은 디지털 형태로 인식될 수 있고, 상기 동시적 이동 각각은 해당 자유도의 정지 전 최소 변화량을 필요로 하며, 상기 포인트와 이동량을 디지털 형태로 저장하고 처리하는 적어도 하나의 전산시스템(17, 27)이 사용되고, 이 전산시스템은 선행하는 청구항들 중 임의의 청구항의 방법을 실행에 옮기는 시스템.
KR1020077003726A 2007-02-15 2004-07-19 이동기구들 간의 충돌방지를 위한 방법 및 시스템 KR20070053223A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077003726A KR20070053223A (ko) 2007-02-15 2004-07-19 이동기구들 간의 충돌방지를 위한 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077003726A KR20070053223A (ko) 2007-02-15 2004-07-19 이동기구들 간의 충돌방지를 위한 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20070053223A true KR20070053223A (ko) 2007-05-23

Family

ID=38275597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077003726A KR20070053223A (ko) 2007-02-15 2004-07-19 이동기구들 간의 충돌방지를 위한 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20070053223A (ko)

Similar Documents

Publication Publication Date Title
EP3410246B1 (en) Robot obstacle avoidance control system and method, robot, and storage medium
CN102189552B (zh) 机器人系统
EP3037376B1 (en) Crane 3d workspace spatial techniques for crane operation in proximity of obstacles
US20080119960A1 (en) Method and System for Avoiding Collisions Between Moveable Devices
US8235229B2 (en) Methods and systems for double-pendulum crane control
Ren et al. Real-time anticollision system for mobile cranes during lift operations
KR20160144321A (ko) 기계, 특히 로봇을 작동하기 위한 그리고/또는 감시하기 위한 방법 및 시스템
CN111660314B (zh) 机器人停止缓冲区划分方法、设备及存储装置
KR20070053223A (ko) 이동기구들 간의 충돌방지를 위한 방법 및 시스템
JPS62272366A (ja) 図形情報処理装置
WO2022023797A1 (en) Method and apparatus for emulating automated guided vehicle (agv) system
CN113199484B (zh) 机器人安全运行方法、设备及存储介质
JPS6151204A (ja) ロボツトの動作空間識別システム
CN112053339B (zh) 一种基于机器视觉的棒材成品库行车安全监测方法、装置及设备
KR20230118915A (ko) 로봇을 작동하기 위한 방법 및 시스템
EP3530607B1 (en) Crane 3d workspace spatial techniques for crane operation in proximity of obstacles
Fragkopoulos et al. Dynamic efficient collision checking method of robot arm paths in configuration space
KR20220120009A (ko) 로봇의 충돌 감지 장치 및 그 방법
JP2000015595A (ja) 物体衝突検出方法およびその装置
JP3092420B2 (ja) ロボットの干渉検出方法
KR101494323B1 (ko) 연속식 하역기의 충돌방지방법 및 그 장치
EP2107035B1 (en) A collision sensor arrangement, a method for detecting collision and a computer program product
Thomas et al. Trajectory sequence generation and static obstacle avoidance for automatic positioning tasks with a tower crane
CN118270656A (zh) 行走距离实时监控装置及方法
WO2023066465A1 (en) Methods of handling safety of industrial robot, control systems, and robot system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application