KR20230124704A - 모션 디바이스의 모션 제어 - Google Patents

모션 디바이스의 모션 제어 Download PDF

Info

Publication number
KR20230124704A
KR20230124704A KR1020237025293A KR20237025293A KR20230124704A KR 20230124704 A KR20230124704 A KR 20230124704A KR 1020237025293 A KR1020237025293 A KR 1020237025293A KR 20237025293 A KR20237025293 A KR 20237025293A KR 20230124704 A KR20230124704 A KR 20230124704A
Authority
KR
South Korea
Prior art keywords
trajectory
acceleration
velocity
constraint
magnitude
Prior art date
Application number
KR1020237025293A
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
Priority claimed from GBGB2020680.1A external-priority patent/GB202020680D0/en
Priority claimed from GBGB2020681.9A external-priority patent/GB202020681D0/en
Priority claimed from GBGB2020668.6A external-priority patent/GB202020668D0/en
Priority claimed from GBGB2020684.3A external-priority patent/GB202020684D0/en
Application filed by 오카도 이노베이션 리미티드 filed Critical 오카도 이노베이션 리미티드
Publication of KR20230124704A publication Critical patent/KR20230124704A/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/0464Storage devices mechanical with access from above
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/0478Storage devices mechanical for matrix-arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G43/00Control devices, e.g. for safety, warning or fault-correcting
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G43/00Control devices, e.g. for safety, warning or fault-correcting
    • B65G43/02Control devices, e.g. for safety, warning or fault-correcting detecting dangerous physical condition of load carriers, e.g. for interrupting the drive in the event of overheating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G59/00De-stacking of articles
    • B65G59/02De-stacking from the top of the stack
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • G05D1/0066Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements for limitation of acceleration or stress
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/02Control or detection
    • B65G2203/0266Control or detection relating to the load carrier(s)
    • B65G2203/0283Position of the load carrier
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/02Control or detection
    • B65G2203/0266Control or detection relating to the load carrier(s)
    • B65G2203/0291Speed of the load carrier
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2203/00Indexing code relating to control or detection of the articles or the load carriers during conveying
    • B65G2203/04Detection means
    • B65G2203/042Sensors
    • B65G2203/044Optical
    • G05D2201/0216

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Mathematical Physics (AREA)
  • Numerical Control (AREA)
  • Warehouses Or Storage Devices (AREA)
  • Control Of Position Or Direction (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Programmable Controllers (AREA)
  • Hydraulic Clutches, Magnetic Clutches, Fluid Clutches, And Fluid Joints (AREA)
  • Vehicle Body Suspensions (AREA)
  • Feedback Control In General (AREA)
  • Regulating Braking Force (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)

Abstract

모션 디바이스의 이동을 제어하기 위한 궤적을 생성하기 위한 방법으로서, i) 상기 궤적의 사양을 수신하는 단계 - 상기 사양은 명령된 위치를 포함함 -, ii) 적어도 하나의 저크 제약(jerk constraint)을 수신하는 단계; 및 iii) 상기 적어도 하나의 저크 제약에 기반하여 하나 이상의 궤적 세그멘트들의 시퀀스를 생성하는 단계 - 상기 하나 이상의 궤적 세그멘트들 각각은 저크 레퍼런스, 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스 중 적어도 하나를 시간의 함수로서 규정하는 상기 궤적의 각각의 부분임 - 를 포함하고, 상기 궤적 세그멘트들의 시퀀스 중 하나 이상의 궤적 세그멘트는, 상기 하나 이상의 궤적 세그멘트의 속도 레퍼런스의 크기를 주어진 시간 내에 요구되는 최종 속도 레퍼런스로 이동시키는 것을 포함하는 속도 천이 알고리즘을 적용함으로써 생성되며, 상기 요구되는 최종 속도 레퍼런스와 상기 속도 레퍼런스 사이의 차이는 속도 델타를 정의하고, 상기 속도 천이 알고리즘은 상기 속도 델타의 함수인 크기를 가지는 피크 가속도를 계산하는 것을 포함하는, 궤적 생성 방법.

Description

모션 디바이스의 모션 제어
본 발명은 빈 또는 컨테이너들의 스택이 격자 프레임워크 구조체 내에 배치된 보관 또는 불출 시스템의 분야에 관한 것이고, 특히 보관 또는 불출 시스템 내에 보관된 하나 이상의 컨테이너를 이동시키도록 동작하는 로드 핸들링 디바이스의 모션의 생성 및 제어에 관한 것이다.
그 안에 보관 컨테이너/빈들이 다층으로 적층된 3-차원 보관 격자 구조체를 포함하는 보관 시스템이 주지되어 있다. PCT 공개 번호 제 WO2015/185628A(Ocado)는 빈 또는 컨테이너의 격자 스택이 격자 프레임워크 구조체 내에 배치되는 공지된 보관 및 실현 시스템을 기술한다. 빈 또는 컨테이너는 격자 프레임워크 구조체의 상단에 위치된 트랙에서 동작하는 로드 핸들링 디바이스(또는 "봇(bot)"이라고도 알려져 있음)에 의해 액세스된다. 이러한 타입의 시스템은 개략적으로 첨부 도면 중 도 1 내지 도 3에 예시된다.
도 1 및 도 2에 도시된 바와 같이, 보관 컨테이너 또는 토트(tote) 또는 빈(10)이라고 알려져 있는 적층가능 컨테이너가 서로의 위에 적층되어 스택(12)을 형성한다. 스택(12)은 창고 또는 제조 환경에서 격자 프레임워크 구조체(14) 내에 배치된다. 격자 프레임워크 구조체는 복수 개의 보관 칼럼 또는 격자 칼럼으로 이루어진다. 격자 프레임워크 구조체 내의 각각의 격자는 컨테이너의 스택의 보관을 위한 적어도 하나의 격자 칼럼을 가진다. 도 1은 격자 프레임워크 구조체(14)의 개략적인 사시도이고, 도 2는 프레임워크 구조체(14) 내에 배치된 빈(10)의 스택(12)을 보여주는 평면도이다. 각각의 빈(10)은 통상적으로 복수 개의 제품 아이템(미도시)을 수용하고, 어떤 빈(10) 내의 제품 아이템은 애플리케이션에 따라서 동일할 수도 있고 또는 상이한 제품 타입일 수도 있다.
격자 프레임워크 구조체(14)는 수평 부재(18, 20)를 지지하는 복수 개의 직립 부재(16)를 포함한다. 평행 수평 격자 부재(18)의 제 1 세트는 평행 수평 부재(20)의 제 2 세트에 수직으로 격자 패턴으로 배치되어 직립 부재(16)에 의해 지지되는 복수 개의 수평 격자 구조체(15)를 형성한다. 부재(16, 18, 20)는 통상적으로 금속으로 제조된다. 빈(10)은 격자 프레임워크 구조체(14)의 부재(16, 18, 20) 사이에서 적층되어, 격자 프레임워크 구조체(14)가 빈(10)의 스택(12)의 수평 이동을 방지하고, 빈(10)의 수직 이동을 유도하게 한다.
격자 프레임워크 구조체(14)의 상단 레벨은 스택(12)의 상단에 걸쳐서 격자 패턴으로 배치된 레일(22)을 포함하는 격자 또는 격자 구조체(15)를 포함한다. 도 3을 더욱 참조하면, 레일 또는 트랙(22)은 복수 개의 로드 핸들링 디바이스(30)를 가이드한다. 평행 레일(22)의 제 1 세트(22a)는 격자 프레임워크 구조체(14)의 상단에 걸친 제 1 방향(예를 들어, X-방향)에서의 로드 핸들링 디바이스(30)의 이동을 유도하고, 제 1 세트(22a)에 수직으로 배열된 평행 레일(22)의 제 2 세트(22b)는 제 1 방향에 수직인 제 2 방향(예를 들어, Y-방향)에서의 로봇식 로드 핸들링 디바이스(30)의 이동을 유도한다. 이러한 방식으로, 레일(22)은 로봇식 로드 핸들링 디바이스(30)가 수평 X-Y 평면에서 두 차원으로 측방향으로 이동하게 함으로써, 로드 핸들링 디바이스(30)가 스택(12)의 위의 임의의 위치로 이동될 수 있게 한다.
도 4 및 도 5에 도시되는 공지된 로드 핸들링 디바이스(30)는 본 명세서에서 원용에 의해 통합되는 PCT 특허 공개 번호 제 WO2015/019055(Ocado)에서 설명된 차량 보디(32)를 포함하는데, 각각의 로드 핸들링 디바이스(30)는 격자 프레임워크 구조체(14)의 하나의 격자 공간만을 커버한다. 여기에서, 로드 핸들링 디바이스(30)는 제 1 세트의 레일 또는 트랙과 결속되어 디바이스의 제 1 방향으로의 이동을 유도하기 위한, 차량 보디(32)의 전면에 있는 휠들의 쌍 및 차량 보디(32)의 후면에 있는 휠들의 쌍(34)으로 이루어진 제 1 세트의 휠들(34), 및 제 2 세트의 레일 또는 트랙과 결속되어 디바이스의 제 2 방향으로의 이동을 유도하기 위한, 차량(32)의 각 측면에 있는 휠들의 쌍(36)으로 이루어진 제 2 세트의 휠들(36)을 포함하는 휠 어셈블리를 포함한다. 휠들의 세트들 각각은 차량이 레일을 따라서 X 및 Y 방향 각각으로 이동할 수 있게 하도록 구동된다. 휠들의 하나 또는 양자 모두의 세트는 각각의 세트의 휠을 각각의 레일로부터 떨어지도록 들어올리도록 수직으로 이동될 수 있어서, 차량이 격자 상에서 소망되는 방향으로 이동할 수 있게 격자 한다.
로드 핸들링 디바이스(30)에는 보관 컨테이너를 위로부터 상승시키기 위한 리프팅 디바이스 또는 크레인 메커니즘이 장착된다. 크레인 메커니즘은 스풀 또는 릴(미도시) 주위에 감겨있는 윈치, 테더(tether) 또는 케이블(38), 및 그래버(grabber) 디바이스(39)를 포함한다. 리프팅 디바이스는, 수직 방향으로 연장되고, 보관 컨테이너(10)에 분리되도록 연결되기 위한 그래버 디바이스라고도 알려져 있는 리프팅 프레임(39)의 네 개의 코너 근처에 또는 네 개의 코너에 연결된 리프팅 테더들(38)의 세트를 포함한다(그래버 디바이스의 네 개의 코너 각각 근처에 하나의 테더가 있음). 그래버 디바이스(39)는 보관 컨테이너(10)의 상단을 분리가능하게 파지하고 이것을 도 1 및 도 2에 도시되는 타입의 보관 시스템 내의 컨테이너들의 스택으로부터 들어올리도록 구성된다. 리프팅 디바이스에 전력을 공급하기 위해서 하나 이상의 모터가 사용될 수 있다.
휠(34, 36)은 컨테이너-수용 리세스(40)라고 알려져 있는 캐비티 또는 리세스의 주변부 주위에 배치된다. 리세스는 컨테이너(10)가 도 5의 (a) 및 도 5의 (b)에 도시된 바와 같이 크레인 메커니즘에 의해서 들어올려질 때에 컨테이너를 수용하도록 크기가 결정된다. 리세스 내에 있는 경우, 컨테이너는 그 아래의 레일로부터 떨어지게 들어올려져서, 차량이 측방향으로 상이한 위치까지 이동할 수 있게 된다. 목표 위치, 예를 들어 다른 스택, 보관 시스템 내의 접근 포인트 또는 콘베이어 벨트에 도달하면, 빈 또는 컨테이너는 컨테이너 수용부로부터 하강되고 그래버 디바이스로부터 분리될 수 있다.
통상적으로, 격자 구조체 상에서 원격으로 동작가능한 하나 이상의 로드 핸들링 디바이스는 마스터 제어기로부터 명령을 수신하고, 격자 프레임워크 구조체 내의 특정 보관 위치로부터 보관 컨테이너를 취출하도록 구성된다. 마스터 제어기로부터 하나 이상의 기지국을 통해 격자 구조체 상에서 동작하는 하나 이상의 로드 핸들링 디바이스로의 통신 기반구조를 제공하기 위해서 무선 통신 및 네트워크가 사용될 수 있다. 로드 핸들링 디바이스 내의 제어기는 명령을 수신하는 것에 응답하여, 로드 핸들링 디바이스의 이동을 제어하기 위해서 다양한 구동 메커니즘을 제어하도록 구성된다. 예를 들어, 로드 핸들링 디바이스는 격자 구조체 상의 특정 위치에 있는 보관 칼럼으로부터 컨테이너를 취출하도록 명령될 수 있다. 이러한 명령은 격자 구조체 상에서의 X-Y 방향으로의 다양한 이동을 포함할 수 있다. 보관 칼럼에 있게 되면, 리프팅 메커니즘은 이제 보관 컨테이너를 잡고 이것을 로드 핸들링 디바이스의 보디 내의 컨테이너 수용 공간 안으로 상승시키도록 동작되고, 거기에서 이것은 일반적으로 드롭 오프 포트(drop off port)라고 알려져 있는 격자 구조체 상의 다른 위치로 후속하여 수송된다. 보관 컨테이너는 보관 컨테이너로부터의 아이템의 취출을 허용하기 위해서 적절한 픽 스테이션까지 하강된다. 격자 구조체 상에서의 로드 핸들링 디바이스의 이동은, 로드 핸들링 디바이스가 보통 격자 구조체의 주변에 위치되는 충전 스테이션까지 이동하도록 지시받는 것을 더 수반한다.
제어기가 격자 구조체에 상대적인 로드 핸들링 디바이스의 위치를 결정할 수 있게 하기 위해서, 각각의 로드 핸들링 디바이스에는 하나 이상의 RFID 태그 리더기 또는 스캐너가 제공될 수 있고, 복수 개의 RFID 태그가 격자 구조체의 상단에 걸쳐서 제공될 수 있다. 격자 구조체 상의 일련의 레퍼런스 포인트를 제공하기 위해서, RFID 태그는 격자 구조체에 상대적으로 고정될 수 있다. 로드 핸들링 디바이스가 격자 구조체에 걸쳐서 이동할 때, 로드 핸들링 디바이스의 각각의 RFID 태그 리더기는 격자 구조체 상의 다양한 위치에 고정된 RFID 태그 중 하나 이상으로부터의 신호를 판독한다. 통상적으로, RFID 태그는 각각의 격자 셀에서의 트랙들의 정션 또는 교차로에 고정된다.
로드 핸들링 디바이스를 격자 구조체 상의 하나의 목적지로부터 다른 목적지로 이동시키기 위해서, 로드 핸들링 디바이스들 각각에는 로드 핸들링 디바이스의 휠을 구동하기 위한 모터가 장착된다. 휠의 회전은 휠에 연결된 하나 이상의 벨트를 통해서 구동되거나, 휠 내에 통합된 모터에 의해서 개별적으로 구동될 수 있다. 통상적으로, 로드 핸들링 디바이스의 점유공간이 단일 격자 셀을 점유하는 단일 셀 로드 핸들링 디바이스의 경우에, 그리고 차량 내의 공간의 이용가능성이 제한되기 때문에, 휠을 구동하기 위한 모터는 휠 내에 통합된다. 단일 셀 로드 핸들링 디바이스의 휠들은 허브 모터에 의해서 구동된다. 각각의 허브 모터는 내부 고정자를 형성하는 코일을 포함하는 휠 허브 주위에서 회전하도록 배치되는 복수 개의 영구 자석을 포함하는 외부 회전자를 포함한다.
단일 셀 로드 핸들링 디바이스의 주된 단점들 중 하나는 트랙 상에서 이동할 때의 로드 핸들링 디바이스의 안정성인데, 안정성은 로드 핸들링 디바이스를 트랙 상에서 가속/감속하는 도중에 특히 문제가 된다. 트랙 상에서의 높은 가속 또는 감속은 로드 핸들링 디바이스가 진동하거나 심지어는 넘어지게 할 수도 있다. 통상적으로, 로드 핸들링 디바이스의 휠들의 회전은, 로드 핸들링 디바이스가 요현상(yawing) 또는 그 의도된 코스로부터 벗어나지 않고서 트랙 상에서 직선으로 구동되게 하기 위해서 개별적으로 제어된다.
휠들의 크기가 유사하기 때문에, 이들은 로드 핸들링 디바이스가 트랙 위에서 이동할 때에 개략적으로 동일한 속도로 회전할 것이다. 그러나, 트랙 위에서의 로드 핸들링 디바이스의 부드러운 이동에 영향을 주고 이것이 요현상을 겪거나 오프-리드(off-lead) 각도에서 구동될 가능성이 있게 하는 여러 인자들이 존재한다. 이러한 인자들은 하나 이상의 휠의 미끄러짐, 휠들 중 하나 이상을 다르게 가이드 및/또는 로딩하는 것을 포함할 수 있다 - 이들 모두는 휠들 중 하나 이상이 상이한 속도로 회전하게 하는데 기여한다. 추가적으로, 저크(jerk)라고도 알려져 있는 트랙 상에서의 로드 핸들링 디바이스의 가속의 급격한 변화가 트랙 위에서의 로드 핸들링 디바이스의 부드러운 이동에 영향을 준다. 식료품 아이템과 같이 쉽게 상처를 입거나 손상을 입을 수 있는 아이템을 운반할 때에는, 가속 또는 감속할 때에 로드 핸들링 디바이스의 이동의 이러한 갑작스러운 이동은 아이템이 보관 컨테이너 내에서 이리저리 던져지게 할 수 있다.
EP3535633(Autostore Technology AS) 은 시작 위치로부터 정지 위치까지의 로봇의 이동을 제어하기 위한 방법 및 제어기를 교시하는데, 로봇은 로컬 제어기에 의해서 제어되는 구동 수단을 가지는 휠들의 쌍을 가진다. 여기에서, 마스터 제어기는 각각의 휠의 현재 속도 및 각도 위치, 로봇의 현재 광역 위치 및 로봇의 시작 및 중지 위치에 기반하여 휠들의 쌍에 대해서 개별적인 속도 구동 시퀀스를 설정하도록 구성된다. 속도 구동 시퀀스는 휠들의 쌍을 제어함으로써 각각의 휠의 가속 및 감속을 개별적인 구동 수단을 통해서 제어하는 로컬 제어기로 송신된다. EP3535633(Autostore Technology AS)에서, 로컬 제어기는 휠들의 쌍의 속도가 동기화되게 유지되는 것을 보장한다. 따라서, EP3535633(Autostore Technology AS)에서의 교시 내용은 휠들의 개별적인 속도를 제어하는 것 및 휠들의 쌍의 속도가 동기화되게 보장하는 것에 주로 중점을 두고 있다.
따라서, 본 발명의 목적은 시작 위치로부터 중지 위치까지의 로드 핸들링 디바이스의 이동을 격자 구조체 상에서 상이한 속도들 사이에서 전환할 때에 부드럽게 되도록 보장하는 목적을 가지고 제어하기 위한 방법 및 디바이스를 제공하는 것이다.
본 출원은 모두 2020 년 12월 24일에 출원되고 그 전체 내용이 본 명세서에서 원용에 의해 통합되는 영국 출원 번호 GB2020680.1, GB2020668.6, GB2020681.9, 및 GB2020684.3 대한 우선권을 주장한다.
본 발명은 제약에 기반하고 시간에 최적화된 모션 제어 프로파일을 효율적으로 생성하기 위한 시스템 및 방법, 특히 시간에 최적화된 점대점 모션을 실시간으로 제공하기 위한 모션 제어 프로파일을 제어 시스템 내에서 제공함으로써 이러한 문제점을 완화시켰다. 부드럽고 정확한 점대점 모션을 달성하기 위해서, 본 발명은 궤적 또는 모션 제어 프로파일을 S-곡선 프로파일에 기반하여 계산하는 궤적 생성기 또는 모션 제어 생성기를 제공한다. 궤적 생성기는 모션 제어 프로파일의 적어도 하나의 가속도 또는 감속도 세그멘트에 대해서 시간에 걸친 연속적인 저크 레퍼런스를 가지는 프로파일을 생성한다. 시변 저크 레퍼런스를 포함하는 모션 제어 프로파일을 계산함으로써, 본 발명의 궤적 생성기는 부드럽고 안정한 모션을 제공할 수 있다.
좀 더 구체적으로는, 본 발명은 모션 디바이스의 이동을 제어하기 위한 궤적을 생성하기 위한 방법으로서,
i) 상기 궤적의 사양을 수신하는 단계 - 상기 사양은 명령된 위치를 포함함 -,
ii) 적어도 하나의 저크 제약(jerk constraint)을 수신하는 단계; 및
iii) 상기 적어도 하나의 저크 제약에 기반하여 궤적 세그멘트들의 시퀀스를 생성하는 단계 - 상기 하나 이상의 궤적 세그멘트들 각각은 저크 레퍼런스, 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스 중 적어도 하나를 시간의 함수로서 규정하는 상기 궤적의 각각의 부분임 -
를 포함하고,
상기 궤적 세그멘트들의 시퀀스 중 하나 이상의 궤적 세그멘트는, 상기 하나 이상의 궤적 세그멘트 크기 또는 속도 레퍼런스를 주어진 시간 내에 요구되는 최종 속도 레퍼런스로 이동시키는 것을 포함하는 속도 천이 알고리즘을 적용함으로써 생성되며,
상기 요구되는 최종 속도 레퍼런스와 상기 속도 레퍼런스 사이의 차이는 속도 델타를 정의하고,
상기 속도 천이 알고리즘은 상기 속도 델타의 함수인 크기를 가지는 피크 가속도를 계산하는 것을 포함하는, 궤적 생성 방법을 제공한다.
본 발명의 목적을 달성하기 위하여, "위치 레퍼런스" 및 "위치"라는 용어는 동일한 특징을 의미하도록 상호교환가능게 사용된다. 유사하게, 용어 "속도" 및 "속도 레퍼런스"라는 용어는 상호교환가능하도록 사용되고, 용어 "가속도" 및 "가속 레퍼런스"도 상호교환가능하도록 사용되며, 용어 "위치" 및 "위치 레퍼런스"도 상호교환가능하도록 사용된다.
유한-저크("S-곡선") 궤적을 생성하는 프로세스는 본 발명에서 속도 천이 알고리즘이라고 불리는 것을 풀이하는 것에 주로 의존한다. 궤적은 S-곡선 방정식을 사용하여 적어도 하나의 저크 제약에 기반하여 생성된다. 본 발명의 목적을 위하여, 용어 "이동(moving)"은 "맞춤(fitting)"을 커버한다. 유한-저크("S-곡선") 궤적을 생성하는 프로세스는 본 발명에서 속도 천이 알고리즘이라고 불리는 것을 풀이하는 것에 주로 의존한다. 궤적을 생성할 때에 하나 이상의 궤적 세그멘트를 생성하는 프로세스는 S-곡선 궤적 방정식을 적용하는 것을 수반한다. 궤적 가속도의 크기 및 궤적이 명령된 위치를 오버슈트 또는 언더슈트할지 여부를 고려하면서 점대점 이동을 위한 모션 제어 프로파일 또는 궤적 프로파일을 고안함으로써, 본 발명은 궤적을 궤적 포인트로부터 요구되는 최종 속도 vf에 도달되고 궤적 가속도의 크기가 실질적으로 0인 포인트로 옮기기 위해서 요구되는 궤적 세그멘트를 결정하기 위한 속도 천이 알고리즘을 고안하였다. 요구되는 최종 속도 vf에 도달하기 위해서, 궤적 가속도의 크기는 실질적으로 0이 될 필요가 있을 것이고, 그렇지 않으면 궤적은 요구되는 최종 속도 vf로부터 멀어지게 가속될 것이다.
바람직하게는, 이러한 방법은 적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 및/또는 적어도 하나의 감속 제약 중 적어도 하나를 수신하는 단계를 더 포함하고, 상기 적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 적어도 하나의 감속 제약, 및 적어도 하나의 저크 제약은 하나 이상의 궤적 세그멘트들의 시퀀스를 생성하기 위한 복수 개의 제약을 정의한다.
선택적으로, 상기 복수 개의 제약 중 적어도 하나의 값은 상기 로드 핸들링 디바이스의 총 질량의 함수이다.
선택적으로, 상기 적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 및/또는 적어도 하나의 감속 제약 중 임의의 하나의 값은 상기 로드 핸들링 디바이스의 총 질량에 반비례한다.
바람직하게는, 상기 하나 이상의 궤적 세그멘트들 각각의 시작점이 초기 위치 레퍼런스, 초기 속도 레퍼런스 및 초기 가속 레퍼런스를 포함하고, 상기 하나 이상의 궤적 세그멘트들 각각의 종점이 종점 위치 레퍼런스, 종점 속도 레퍼런스 및 종점 가속 레퍼런스를 포함하도록, 상기 하나 이상의 궤적 세그멘트들 각각은 각각의 시작점 및 각각의 종점을 가진다.
속도 천이 알고리즘의 본질적인 특징은, 속도 델타의 특징인데, 이것은 요구되는 최종 속도 레퍼런스의 크기 vf의 크기와 속도 레퍼런스 v0의 차이이고, 즉 △v = vf - v0이다. 속도 레퍼런스 v0의 값은 궤적을 따라서 임의의 포인트에 있을 수 있고, 속도 천이 알고리즘이 적용되는 궤적 내의 포인트에 따라 달라진다. 예를 들어, 궤적의 시작 시의 처음에는, 속도 레퍼런스 v0가 초기 속도 레퍼런스일 수 있다. 요구되는 최종 속도 vf로 천이하기 이전에 하나 이상의 궤적 세그멘트가 생성되도록 요구된다면(즉, i) 과다한 가속도; ii) 요구되는 최종 속도 레퍼런스 vf로부터 멀어지게 가속되는 궤적, iii) 요구되는 최종 속도 레퍼런스 vf를 오버슈트하는 궤적을 해결하기 위하여), 그러면 속도 델타 v를 결정할 때의 속도 레퍼런스는 요구되는 최종 속도 레퍼런스 vf로 천이할 때의 종점 속도 레퍼런스 vE이다.
따라서, 속도 델타 △v의 값은 궤적 중 어디에 본 발명에 따른 속도 천이 알고리즘이 적용되고 있는지에 따라서 변할 수 있다. 바람직하게는, 속도 델타는 요구되는 최종 속도 레퍼런스 및 하나 이상의 궤적 세그멘트의 초기 또는 종점 속도 레퍼런스 사이의 차이에 기반한다.
본 발명은 속도 델타 △v가 피크 가속도 apeak를 계산하기 위해서 사용될 수 있게 했다. 피크 가속도는 초기 가속 레퍼런스 a0로부터 실질적으로 0인 가속도까지의 가상 삼각 가속도 궤적으로부터 다음과 같이 결정되는데
여기에서:
apeak는 피크 가속도이고;
jinc는 가속도의 크기를 증가시키기 위한 저크 제약의 값이며;
jdec는 가속도의 크기를 감소시키기 위한 저크 제약의 값이고;
△v는 속도 델타이다.
속도 델타의 함수로서 정의된 계산된 피크 가속도의 크기를 가짐으로써, 초기 속도 레퍼런스 v0로부터 소망되는 속도 레퍼런스 vf까지 천이하기 위한 요구된 궤적 세그멘트가 결정될 수 있다. 요구되는 최종 속도 vf는 궤적을 속도 v0로부터 요구되는 최종 속도 vf까지 이동시키기 위한 임의의 값일 수 있다.
예를 들어, 점대점 이동을 위하여, 속도 천이 알고리즘은 두 개 이상의 요구되는 최종 속도 레퍼런스 vf로 천이하기 위해서 두 번 이상 채용될 수 있다. 본 발명의 목적을 위하여, 용어 "이동(moving)"은 "맞춤(fitting)"을 커버한다. 유한-저크("S-곡선") 궤적을 생성하는 프로세스는 본 발명에서 속도 천이 알고리즘이라고 불리는 것을 풀이하는 것에 주로 의존한다. 이것은 제로 속도로 천이하기 이전에 소망되는 피크 속도 vpeak로 천이하는 것, 즉 백투백 속도 천이를 수반할 수 있다. 주어진 이동에 대한 마지막 속도 천이는 궤적이 중지되도록 하기 위해서 vf = 0를 가질 수 있다.
바람직하게는, 상기 복수 개의 제약은 가속 제약을 포함하고,
상기 하나 이상의 궤적 세그멘트를 생성하는 단계는,
i) 상기 궤적의 가속 레퍼런스의 크기가 계산된 피크 가속도와 실질적으로 같은지 여부, 및/또는
ii) 계산된 피크 가속도가 상기 가속 제약보다 작거나 실질적으로 같은지 여부, 및/또는
iii) 계산된 피크 가속도가 상기 가속 제약을 실질적으로 초과하는지 여부에 기반한다.
피크 가속도 apeak의 크기가 계산되었으면, 바람직하게는 요구되는 최종 속도 레퍼런스의 크기에 도달되도록 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트가 생성된다. 선택적으로, 요구되는 최종 속도 레퍼런스 vf는 실질적으로 0이다. 그러나, 위에서 정의된 세 가지 가능성 중 하나는 참일 수 있다. 이러한 세 가지 가능성을 다루기 위해서, 하나 이상의 궤적 세그멘트를 생성하기 위해서 후속하는 단계들이 계산된다.
바람직하게는, 상기 하나 이상의 궤적 세그멘트는, 요구되는 최종 속도 레퍼런스가 실질적으로 0이 되도록 상기 적어도 하나의 저크 제약을 적용함으로써 생성된다.
궤적 가속 레퍼런스의 크기가 피크 가속도의 크기와 실질적으로 같으면, 즉 |a0| = |apeak|이면, 궤적은 이미 피크 가속도에 있는 것이고, 따라서 궤적은 궤적 가속도의 크기를 0으로 램핑 다운하여 궤적 속도 레퍼런스의 크기가 요구되는 최종 속도 vf에 도달하게 하기만 하면 된다. 궤적의 가속 레퍼런스의 크기가 계산된 피크 가속도와 실질적으로 같은 것을 다루기 위해서, 상기 하나 이상의 궤적 세그멘트를 생성하는 단계는
i) 상기 하나 이상의 궤적 세그멘트의 초기 가속 레퍼런스가 계산된 피크 가속도와 실질적으로 같은 크기를 가지고, 상기 하나 이상의 궤적 세그멘트의 각각의 종점 가속도가 실질적으로 0과 같은 크기를 가지며, 상기 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 상기 적어도 하나의 저크 제약을 적용하는 단계를 포함하는 것이 바람직하다.
피크 가속도의 크기가 가속 제약의 크기보다 실질적으로 작거나 같으면, 즉 |apeak| ≤ amax이면, 궤적 가속도의 크기는 여전히 |apeak|로 증가될 수 있고, 그러면 이것은 0으로 다시 램핑 다운될 필요가 있는데, 이러한 포인트에서는 요구되는 최종 속도 vf가 만족될 것이다. 궤적 세그멘트들의 시퀀스 중 하나 이상의 궤적 세그멘트의 계산된 피크 가속도가 상기 가속 제약보다 작은 것을 해결하기 위하여, 상기 방법은,
i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 피크 가속도와 실질적으로 같은 크기를 가지도록 상기 적어도 하나의 저크 제약을 적용하여 제 1 궤적 세그멘트를 생성하는 단계; 및
ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속도의 크기가 실질적으로 0과 같으며, 상기 제 2 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 상기 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계에 의해서 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함한다.
계산된 피크 가속도가 가속 제약의 크기보다 큰 경우에는, 궤적 가속도의 크기가 가속 제약까지 계속 증가되어야 한다. 이것은 가속 제약에서 한동안 유지되어야 하고, 그 후에 최종적으로 실질적으로 0으로 램핑 다운되어 요구되는 최종 속도 vf를 만족시킬 필요가 있다. 이러한 경우에, 궤적 가속 레퍼런스의 크기가 가속 제약과 같아지도록 취해지는지 여부 또는 이것이 가속 제약보다 작은지 여부에 의존하여, 적어도 하나의 저크 제약을 적용함으로써 두 개 또는 세 개의 궤적 세그멘트가 생성될 수 있다. 궤적 가속 레퍼런스의 크기가 가속 제약보다 작아지도록 취해지는 경우, 궤적 가속은 사다리꼴처럼 보일 것인데, 그 이유는 궤적이 amax(가속 제약)까지 계속 증가되어야 하고, 한동안 amax에서 유지되어야 하며, 그 후에 최종적으로 최종 속도 vf를 만족하도록 시간에 맞춰서 0으로 다시 램핑 다운될 필요가 있기 때문이다. 계산된 피크 가속도의 크기가 가속 제약을 실질적으로 초과하는 것을 해결하기 위하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 상기 가속 제약과 실질적으로 같은 크기를 가지도록, 상기 적어도 하나의 저크 제약을 적용하여 제 1 궤적 세그멘트를 생성하는 단계;
ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 상기 가속 제약과 실질적으로 같아지도록, 실질적으로 0인 크기를 가지는 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계; 및
iii) 상기 제 2 궤적 세그멘트의 종점이 제 3 궤적 세그멘트의 시작점에 할당되고, 상기 제 3 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같으며, 상기 제 3 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록, 적어도 하나의 저크 제약을 적용하여 상기 제 3 궤적 세그멘트를 생성하는 단계를 포함하는 것이 바람직하다.
바람직하게는, 상기 하나 이상의 궤적 세그멘트는, 상기 궤적 가속 레퍼런스의 크기가 상기 가속 제약보다 실질적으로 작은 것에 응답하여 생성된다.
계산된 피크 가속도가 상기 가속 제약을 초과하는 것을 해결하기 위하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 상기 가속 제약과 실질적으로 같은 크기를 가지도록 실질적으로 0인 크기를 가지는 적어도 하나의 저크 제약을 적용하여 상기 제 1 궤적 세그멘트를 생성하는 단계; 및
ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같으며, 상기 제 2 궤적 세그멘트의 종점 속도가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계를 포함하는 것이 바람직하다.
바람직하게는, 상기 하나 이상의 궤적 세그멘트는, 상기 궤적 가속 레퍼런스의 크기가 상기 가속 제약과 실질적으로 같은 것에 응답하여 생성된다.
하나 이상의 궤적 세그멘트를 시퀀스에서 생성하기 위해서 속도 천이 알고리즘이 적용될 때마다, 속도 델타 △v의 값이 변하는데, 그 이유는 속도 델타 △v를 계산하기 위해서 사용되는 속도 레퍼런스가 시퀀스 내에 생성되는 각각의 연속적인 궤적 세그멘트에 대해서 변하기 때문이다. 예를 들어, 궤적 가속도가 가속 제약의 크기보다 작거나 같은 문제를 해결할 때에, 생성된 궤적 세그멘트는 요구되는 최종 속도 레퍼런스 vf에 도달될 때까지 다음 또는 후속 문제에 대한 속도 레퍼런스를 변경한다.
본 발명에 따르면, 속도 천이 알고리즘을 적용하는 것은,
a) 궤적 가속도의 크기가 가속 제약보다 크다는 점, 즉 |a0| > |amax라는 점에서 궤적 가속도의 크기가 과다한 문제점.
b) 궤적이 요구되는 최종 속도 vf로부터 멀어지게 가속된다는 문제점.
c) 궤적이 요구되는 최종 속도 vf를 오버슈트하고 있다는 문제점을 극복하는 것을 포함한다.
조건 (a) 내지 (c) 중 임의의 하나가 참이라면, 피크 가속도가 계산될 수 있기 이전에 이러한 문제점을 해결하기 위해서 정정 조치가 수행될 필요가 있다.
바람직하게는, 상기 속도 천이 알고리즘을 적용하는 단계는,
i) 상기 가속 레퍼런스의 크기가 상기 가속 제약을 초과하는 것; 및/또는
ii) 상기 궤적이 요구되는 최종 속도 레퍼런스 값으로부터 멀어지게 가속되는 것; 및/또는
iii) 상기 궤적이 요구되는 최종 속도 레퍼런스 값을 오버슈트하는 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함한다.
만일, 속도 천이 알고리즘을 적용하기 이전에, 궤적 가속 레퍼런스의 크기가 가속 제약보다 크다는 점, 즉 |a0| > |amax|라는 점에서 궤적 가속 레퍼런스의 크기가 과다하다면, 궤적 가속 레퍼런스의 크기는 가속 제약까지 감소될 필요가 있다. 바람직하게는, 궤적 가속 레퍼런스의 크기가 가속 제약을 초과하는 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 것은,
i) 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스가 가속 제약의 크기와 실질적으로 같은 크기를 가지도록 적어도 하나의 저크 제약을 적용하는 단계를 포함한다.
궤적 가속 레퍼런스가 요구되는 최종 속도 vf로부터 멀어지게 가속된다는 것이 추후에 발견되면, 궤적 가속도의 크기는 apeak를 계산하기 이전에 실질적으로 0까지 감소될 필요가 있다. 바람직하게는, 상기 방법은,
i) 속도 델타의 크기가 실질적으로 0과 같고 상기 궤적 가속 레퍼런스의 크기가 실질적으로 0과 같지 않은지 여부를 결정하는 단계; 및/또는
ii) 상기 속도 델타의 크기 및 상기 궤적 가속 레퍼런스의 크기의 곱이 실질적으로 0보다 작은지 여부를 결정하는 단계; 및
단계 (i) 또는 단계(ii) 중 임의의 단계가 예이면, 상기 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스가 실질적으로 0과 같은 크기를 가지도록 상기 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계에 의하여, 상기 궤적이 요구되는 최종 속도 레퍼런스 값으로부터 멀어지게 가속되고 있는지 여부를 결정하는 단계를 더 포함한다.
후속하여 궤적 속도의 크기가 요구되는 최종 속도 vf를 오버슈트한다면, 가속 레퍼런스의 크기를 실질적으로 0으로 램핑하기 위해서 하나 이상의 궤적 세그멘트가 생성되어야 한다. 바람직하게는, 상기 궤적이 요구되는 최종 속도를 오버슈트하는 것에 응답하여 하나 이상의 궤적 세그멘트를 생성하는 단계는,
i) 잠정적(tentative) 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0이 되도록 상기 적어도 하나의 저크 제약을 적용하여 상기 잠정적 궤적 세그멘트를 계산하는 단계 - 상기 잠정적 궤적 세그멘트는 초기 위치 레퍼런스, 초기 속도 레퍼런스 및 초기 가속 레퍼런스를 포함하는 시작점, 및 종점 위치 레퍼런스, 종점 속도 레퍼런스 및 종점 가속 레퍼런스를 포함하는 종점을 가짐 -;
ii) 요구되는 최종 속도 레퍼런스와 상기 잠정적 궤적 세그멘트의 종점 속도 레퍼런스 사이의 차이에 대응하는 보조 속도 델타를 계산하는 단계; 및
iii) 상기 속도 델타 및 상기 보조 속도 델타의 곱이 실질적으로 0보다 작으면 상기 잠정적 궤적 세그멘트를 궤적 세그멘트들의 시퀀스 내에 포함시키고, 그렇지 않으면 상기 잠정적 궤적 세그멘트를 무시하는 단계를 포함한다.
잠정적 궤적 세그멘트가 요구되는 최종 속도 vf의 크기를 오버슈트하지 않으면, 즉 속도 델타 및 보조 속도 델타의 곱이 실질적으로 0 이상이라면, 그러면 잠정적 궤적 세그멘트를 생성하는 단계는 무시된다.
전술된 문제 (a) 내지 (c)를 해결하기 위한 방법 단계는 새로운 궤적 세그멘트가 생성되게 하고, 각각의 새로운 궤적 세그멘트가 생성되는 것은 속도 델타 △v의 새로운 값을 초래하는데, 그 이유는 더 많은 궤적 세그멘트가 궤적 세그멘트들의 시퀀스 내에 생성됨에 따라서 초기 및 종점 속도 레퍼런스가 달라지기 때문이다. 그러면, 속도 델타 △v의 새로운 값이 apeak를 결정하는 데에 사용된다. 본 발명에 따른 속도 천이 알고리즘을 적용할 때에, 이러한 방법은 궤적 세그멘트들의 시퀀스 내의 하나 이상의 궤적 세그멘트들 각각의 종점을 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점에 할당하는 단계를 더 포함한다. 따라서, 생성되는 하나 이상의 궤적 세그멘트들의 시퀀스 내에서, 궤적 세그멘트의 종점은 시퀀스 내의 후속 궤적 세그멘트의 시작점으로 할당된다. 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스, 종점 속도 레퍼런스 및 종점 가속 레퍼런스가 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점 위치 레퍼런스, 시작점 속도 레퍼런스 및 시작점 가속 레퍼런스로 할당된다. 이것은 다음의 하위 문제를 해결할 때에 시퀀스 내에서 기초가 된다. 그러면 연속적으로 변하는 속도 델타 △v가 얻어지는데, 그 이유는 시퀀스 내의 최근에 생성된 궤적 세그멘트의 시작점이 변하기 때문이다. 예를 들어, 제 1 궤적 세그멘트의 종점은 제 2 궤적 세그멘트의 시작점에 할당되고, 즉(p0, v0, a0 ← pE, vE, aE)이다. 문제 (i) 내지 (iii)을 해결할 때에 계산된 속도 델타 △v가 이제 피크 가속도의 계산에 적용된다.
바람직하게는, 상기 복수 개의 제약은 가속 제약을 포함하고, 상기 가속 레퍼런스는 감속 레퍼런스를 더 포함하며, 궤적 세그멘트들의 시퀀스 내의 하나 이상의 궤적 세그멘트가 상기 감속 제약의 상단 및 하단 제약 사이에 속하거나 이들 중 어느 하나와 같은 적어도 하나의 감속 레퍼런스를 시간의 함수로서 더 규정하도록, 상기 가속 제약은 상단 감속 제약 및 하단 감속 제약을 가지는 감속 제약을 더 포함한다. 하나 이상의 궤적 세그멘트들 각각의 시작점은 초기 감속 레퍼런스를 더 포함하고, 하나 이상의 궤적 세그멘트의 종점은 종점 감속 레퍼런스를 더 포함한다.
복수 개의 제약은 상단 제약 및 하단 제약을 가지는 감속 제약을 더 도입함으로써, 궤적이 상단 및 하단 제약 사이에 속하거나 상단 제약 또는 하단 제약 중 어느 하나와 같은 감속 레퍼런스를 더 규정하게 한다. 정의에 의하면 가속도인 속도 레퍼런스를 증가시키는 것에 추가하여, 가속 레퍼런스는 속도 레퍼런스를 감소시킨 결과로서 감속 레퍼런스를 더 포함한다. 속도 레퍼런스가 감소되는 레이트는 상단 및 하단 감속 제약을 적용함으로써 결정된다.
바람직하게는, 상기 적어도 하나의 저크 제약은,
i) 상기 가속 레퍼런스의 크기를 증가시키기 위한 제 1 저크 제약,
ii) 상기 가속 레퍼런스의 크기를 감소시키기 위한 제 2 저크 제약,
iii) 상기 감속 레퍼런스의 크기를 증가시키기 위한 제 3 저크 제약, 및
iv) 상기 감속 레퍼런스의 크기를 감소시키기 위한 제 4 저크 제약
을 포함한다.
본 발명의 다른 양태에서, 강제 감속 알고리즘이 궤적에 적용되어 궤적을 멈춤 상태가 되게 하는데, 즉 궤적 속도는 실질적으로 0이 된다. 강제 감속 알고리즘은 명령된 위치가 바뀐 경우, 즉 더 가까워진 경우에 적용될 수 있다. 그러나, 속도 레퍼런스의 크기가 증가하고 있고 및/또는 가속 레퍼런스의 크기가 감속 제약보다 커지는 정도까지 과다한 경우에는 강제 감속 알고리즘이 적용될 수 없다.
바람직하게는, 상기 방법은,
i) 상기 궤적 속도의 크기가 증가하는 것에 응답하여, 상기 하나 이상의 궤적 세그멘트의 종점 감속 레퍼런스가 실질적으로 0과 같은 크기를 가지도록 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계; 및/또는
ii) 상기 감속 레퍼런스의 크기가 상기 상단 감속 제약보다 실질적으로 큰 것에 응답하여, 상기 하나 이상의 궤적 세그멘트의 종점 감속 레퍼런스가 상기 상단 감속 제약과 실질적으로 같은 크기를 가지도록 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계에 의하여, 강제 감속 알고리즘을 상기 궤적에 적용하는 단계를 더 포함한다.
궤적이 속도가 증가하지 않고 있고 감속 제약을 초과하는 과다한 가속을 가지지 않는 위치에 있다면, 궤적 속도의 크기를 시작점으로부터 종점으로 천이시켜서 종점 궤적 속도가 명령된 위치에서 요구되는 최종 속도 레퍼런스와 실질적으로 같은 크기를 가지게 하도록, 속도 천이 알고리즘이 적용될 수 있다. 선택적으로, 상기 방법은, i) 상기 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔, 상기 상단 감속 제약과 실질적으로 같은 크기를 가지는 상기 감속 제약에 기반하여 하나 이상의 궤적 세그멘트를 생성하도록 속도 천이 알고리즘을 적용하는 단계를 더 포함한다. 이상적으로, 종점 속도 레퍼런스는 명령 위치에서의 요구되는 최종 속도와 같다.
그러나, 속도 천이 알고리즘에서 상단 감속 제약을 사용하면 생성된 하나 이상의 궤적 세그멘트가 명령된 위치를 오버슈트하게 되면, 즉 종점 위치의 크기가 명령된 위치를 오버슈트한다면, 위치 레퍼런스가 명령된 위치를 오버슈트하게 하기 위한 하나 이상의 궤적 세그멘트를 생성하기 위하여 속도 천이 알고리즘을 적용하는 것에 추가하여, 궤적을 오버슈트로부터 역진시키기 위해서 추가적인 또는 제 2 속도 천이 알고리즘이 적용되어, 제 2 속도 천이 알고리즘을 적용한 결과로서 생성된 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스 및 종점 속도 레퍼런스의 크기는 명령된 위치에서 실질적으로 0이 되게 된다.
본 발명의 목적을 위하여, "역진(reverse back)"은 위치 레퍼런스의 크기가 명령된 위치보다 크다는 점에서 위치 레퍼런스의 크기가 명령된 위치를 오버슈트하는 경우에 적용된다. 결과적으로, 속도 천이 알고리즘이 역방향으로 적용되어, 가속 레퍼런스의 크기 및 속도 레퍼런스의 크기가 명령된 위치에서 실질적으로 0이 되게 한다.
바람직하게는, 상기 방법은,
i) 대응하는 종점 감속 레퍼런스의 크기가 실질적으로 0과 같고, 대응하는 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같으면, 궤적들 중 상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스가 명령된 위치를 오버슈트하는지 여부를 결정하는 단계; 및
ii) 상기 궤적이 명령된 위치를 오버슈트하는 것에 응답하여, 상기 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스가 명령된 위치에서의 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔 하나 이상의 궤적 세그멘트를 생성하도록 속도 천이 알고리즘을 적용함으로써, 하나 이상의 궤적 세그멘트를 생성하도록 "역진(reverse back)"을 적용하는 단계를 더 포함한다.
그러나, 상단 감속 제약을 사용하여 속도 천이 알고리즘을 적용하는 것이, 계산된 위치 레퍼런스가 명령된 위치보다 작다는 점에서 생성된 궤적이 명령된 위치를 언더슈트하기에는 너무 공격적이라면, 그러면 덜 공격적인 감속이 사용될 수 있다. 바람직하게는, 상기 방법은,
i) 대응하는 종점 감속 레퍼런스의 크기가 실질적으로 0과 같고, 대응하는 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같으면, 상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스가 명령된 위치를 오버슈트하는지 여부를 결정하는 단계; 및
ii) 상기 궤적이 명령된 위치를 오버슈트하는 것에 응답하여, 하단 감속 제약과 실질적으로 같은 크기를 가지는 감속 제약에 기반하여 상기 하나 이상의 궤적 세그멘트를 생성하도록 상기 속도 천이 알고리즘을 적용하는 단계에 의하여 하나 이상의 궤적 세그멘트를 생성하는 단계
를 더 포함한다.
하단 감속 제약을 사용하여 속도 천이 알고리즘을 적용할 때에, 궤적이 여전히 명령된 위치에서 언더슈트하면, 이것은 궤적을 멈춤 상태로 만들기 위해서 달성될 수 있는 가장 낮은 가속이라고 여겨진다. 그러나, 속도 천이 알고리즘을 적용할 때에 상단 감속 제약을 사용하는 것은 너무 공격적이어서 궤적이 명령 위치를 언더슈트하게 되지만, 하단 감속 제약을 사용하면 궤적이 명령된 위치를 오버슈트하게 되고, 그러면 종점 속도 레퍼런스의 크기가 명령된 위치에서 실질적으로 0이 되도록 하나 이상의 궤적 세그멘트를 생성하기 위해서 상단 및 하단 감속 제약 사이의 감속 제약이 속도 천이 알고리즘에서 사용될 수 있다.
바람직하게는, 상기 방법은,
i) 목적 함수의 근을 찾기 위한 근 탐색 알고리즘을 사용하여 강제 감속 제약을 예측하는 단계 - 상기 목적 함수는 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스 및 종점 가속 레퍼런스의 크기가 실질적으로 0인 경우에 상기 명령된 위치로부터의, 상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스의 위치 편차의 양이고, 상기 근은 상기 명령된 위치로부터의 위치 편차의 양이 미리 결정된 임계보다 작은 경우에 상기 종점 위치 레퍼런스의 값에 대응함 -;
ii) 상기 명령된 위치로부터의 상기 하나 이상의 궤적 세그멘트의 종점 레퍼런스의 위치 편차의 크기가 미리 결정된 임계보다 작으면, 상기 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔, 예측된 강제 감속 제약과 실질적으로 같은 감속 제약을 사용하여 상기 하나 이상의 궤적 세그멘트를 생성하도록 상기 속도 천이 알고리즘을 적용하는 단계에 의하여, 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함한다.
바람직하게는, 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스 및 종점 속도 레퍼런스의 크기가 명령된 위치에서 실질적으로 0이 되도록, 미리 결정된 임계는 실질적으로 5mm 미만, 더 바람직하게는 1mm 미만, 더 바람직하게는 0.5mm 미만이다. 본 발명의 목적을 위하여, 용어 "위치 편차"는 명령된 위치(목적지)로부터의 오버슈트 또는 언더슈트의 정도를 커버한다.
본 발명의 일 양태에서, 상단 감속 제약 및 하단 감속 제약 사이의 최적 감속 제약을 결정하기 위하여 근 탐색 알고리즘이 적용됨으로써, 최적 감속 제약이 속도 천이 알고리즘을 적용할 경우에 사용되면, 생성된 하나 이상의 궤적 세그멘트가 실질적으로 0인 크기를 가지는 종점 속도(요구되는 최종 속도 레퍼런스 값은 실질적으로 0과 같음) 및 명령된 위치에서 실질적으로 0인 크기를 가지는 종점 가속도를 포함하게 된다.
바람직하게는, 예측된 강제 감속 제약은 실질적으로 상기 상단 강제 감속 제약과 상기 하단 강제 감속 제약 사이에 있는 크기를 가진다.
바람직하게는, 속도 천이 알고리즘은 근 탐색 알고리즘 내에 내포되어, 속도 천이 알고리즘이 근 탐색 알고리즘에 의해 예측된 각각의 연속적인 감속 제약에 대한 하나 이상의 궤적 세그멘트를 생성하게 하고, 즉 속도 천이 알고리즘은 근 탐색 알고리즘에 의해서 예측되는 감속 제약의 각각의 후보에 대해서 반복적으로 적용된다.
바람직하게는, 상기 방법은,
상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스, 종점 속도 레퍼런스, 및 종점 가속 레퍼런스가 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 그들 각각의 시작점 위치 레퍼런스, 시작점 속도 레퍼런스 및 시작점 가속 레퍼런스에 할당되도록, 상기 하나 이상의 궤적 세그멘트들 각각의 종점을 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점에 할당하는 단계를 더 포함한다.
바람직하게는, 상기 하나 이상의 궤적 세그멘트가 S-곡선 방정식을 사용하여 생성되도록, 상기 궤적은 S-형 또는 유한 저크 궤적 프로파일이다. 더 바람직하게는, 적어도 하나의 저크 제약을 적용하여 상기 하나 이상의 궤적 세그멘트를 생성하는 것은, 궤적 세그멘트들의 시퀀스 내의 하나 이상의 궤적 세그멘트에 대하여 시간의 함수로서 연속적으로 변하는 가속 레퍼런스를 정의하는 궤적을 생성한다.
바람직하게는, 미리 결정된 임계는 실질적으로 0과 같다.
본 발명은 모션 디바이스의 이동을 제어하기 위한 궤적을 생성하기 위한 궤적 생성기로서,
i) 메모리; 및
ii) 메모리에 저장된 컴퓨터-실행가능 명령을 실행하도록 구성된 프로세서를 포함하고,
상기 프로세서는 명령된 위치를 수신하면, 본 발명에 따른 방법에 의하여 모션 제어 프로파일을 생성하도록 구성된, 궤적 생성기를 더 제공한다.
바람직하게는, 모티브(motive) 디바이스는 휠들의 제 1 및 제 2 쌍을 포함하는 휠 어셈블리, 상기 휠 어셈블리를 구동하기 위한 구동 메커니즘, 및 본 발명의 방법에 의하여 생성된 모션 제어 프로파일에 따라서 상기 휠 어셈블리를 구동하도록 지시받는, 상기 구동 메커니즘에 연결된 제어기를 포함하는, 로드 핸들링 디바이스이다.
본 발명은, 휠들의 제 1 및 제 2 쌍을 포함하는 휠 어셈블리, 상기 휠 어셈블리를 구동하기 위한 구동 메커니즘, 및 전술된 속도 천이 알고리즘에 따르는 방법에 의하여 생성된 모션 제어 프로파일에 따라서 상기 휠 어셈블리를 구동하도록 지시받는, 상기 구동 메커니즘에 연결된 제어기를 포함하는, 로드 핸들링 디바이스를 제공한다.
본 발명은 비-일시적 컴퓨터 매체로서, 실행되는 것에 응답하여, 컴퓨터 시스템이 본 발명에 따른 동작을 수행하게 하는 컴퓨터-실행가능 명령을 가지는, 비-일시적 컴퓨터 매체를 제공한다.
본 발명의 추가적인 특징 및 양태는 첨부 도면을 참조하여 상세히 설명된 후속하는 예시적인 실시형태로부터 명백해 질 것이다:
도 1은 공지된 시스템에 따른 격자 프레임워크 구조체의 개략도이다.
도 2는 도 1의 프레임워크 구조체 내에 배치된 빈들의 스택을 보여주는 평면도의 개략도이다.
도 3은 격자 프레임워크 구조체 상에서 로드 핸들링 디바이스를 보여주는 알려진 보관 시스템의 개략도이다.
도 4는 컨테이너를 위로부터 파지하는 리프팅 디바이스를 보여주는 로드 핸들링 디바이스의 개략적인 사시도이다.
도 5의 (a) 및 (b)는 도 4의 로드 핸들링 디바이스의 개략적인 분해 사시도이고, (a)는 로드 핸들링 디바이스의 컨테이너 수용 공간 내에 수용된 컨테이너를 보여주고, (b)는 로드 핸들링 디바이스의 컨테이너 수용 공간을 보여준다.
도 6은 본 발명의 일 실시형태에 따른 격자 구조체의 일부 위에 있는 로드 핸들링 디바이스의 개략적인 사시도이다.
도 7은 본 발명의 일 실시형태에 따르는, 중앙 회전축을 보여주는 로드 핸들링 디바이스의 휠의 개략적인 사시도이다.
도 8은 본 발명의 일 실시형태에 따르는, 중앙 회전축 중심으로 휠을 구동하기 위해서 사용되는 허브 모터의 전개도이다.
도 9는 본 발명의 일 실시형태에 따르는 휠 어셈블리 제어 및 인터페이스 아키텍쳐이다.
도 10은 본 발명의 실시형태에 따르는, 네트워크를 통한 로드 핸들링 디바이스 및 마스터 제어기의 통신의 개략도이다.
도 11의 (a) 내지 (c)는 사다리꼴 궤적 프로파일의 개략도이다.
도 12의 (a) 내지 (d)는 S-곡선 궤적 프로파일의 개략도이다.
도 13은 본 발명의 일 실시형태에 따르는 궤적 또는 모션 프로파일 생성기를 포함하는 모션 제어 시스템의 블록도이다.
도 14는 본 발명의 일 실시형태에 따르는 위치 센서를 포함하는 로드 핸들링 디바이스의 사시도이다.
도 15는 본 발명의 일 실시예에 따른 궤적 프로파일을 생성하기 위한 방법론의 일 예의 흐름도이다.
도 16은 본 발명의 일 실시형태에 따르는 예시적인 모션 프로파일 생성기의 입력 및 출력을 보여주는 블록도이다.
도 17은 본 발명의 일 실시형태에 따르는 예시적인 위치 제어기의 입력 및 출력을 보여주는 블록도이다.
도 18은 본 발명의 일 실시예에 따른 궤적 프로파일을 생성하기 위한 방법론의 일 예의 흐름도이다.
도 19는 도 18에서의 강제 감속의 단계이다.
도 20은 가속도의 크기를 도 18에서 명령된 가속도까지 램핑하는 교정 단계이다.
도 21은 속도의 크기를 도 18에서 실질적으로 0까지 램핑 다운하는 교정 단계이다.
도 22는 도 18에서 오버슈트로부터의 되돌아가기(reverse back)를 적용하는 교정 단계이다.
도 23은 가속도의 크기를 실질적으로 0까지 램핑 다운(ramp down)하고 도 18의 오버슈트로부터 되돌아가기를 적용하는 교정 단계이다.
도 24는 궤적 가속도의 크기가 명령된 속도보다 큰 교정 단계이다.
도 25는 현재 궤적 속도의 크기가 명령된 속도와 실질적으로 동일한 교정 단계이다.
도 26은 현재 궤적 속도의 크기를 명령된 속도까지 증가시키는 교정 단계이다.
도 27a 내지 도 27c는 본 발명의 일 실시형태에 따른 제 1 속도 천이 서브 알고리즘의 예시적인 방법론의 흐름도이다.
도 28a 내지 도 28c는 본 발명의 일 실시형태에 따른 제 2 속도 천이 서브 알고리즘의 예시적인 방법론의 흐름도이다.
도 29는 본 발명의 일 실시형태에 따르는 백투백 속도 천이를 보여주는 궤적 가속도의 크기의 개략적인 가상 삼각형이다.
도 30은 본 발명의 일 실시형태에 따르는 다중 속도 천이를 보여주는 궤적 가속도의 크기의 개략적인 가상 사다리꼴이다.
도 31a 내지 도 31d는 본 발명의 일 실시형태에 따르는, 상이한 소망되는 속도 vf에 대한 속도 천이 알고리즘을 적용하는 경우의 궤적 프로파일이다.
도 32a 내지 도 32c는 본 발명의 일 실시형태에 따르는, 상이한 피크 속도 vpeak, 에 대한 천이 알고리즘과 공동으로 근 탐색 알고리즘을 적용할 경우의 궤적 프로파일이다.
도 33은 본 발명의 일 실시형태에 따르는, 근 탐색 알고리즘 대 도 32a 내지 도 32c의 상이한 피크 속도의 목적 함수의 그래프이다.
도 34a 및 도 34b는 본 발명의 일 실시형태에 따른 강제 감속 알고리즘의 예시적인 방법론의 흐름도이다.
도 35a 내지 도 35c는 궤적 프로파일의 일 예의 개략도이다.
도 36은 호이스트 모터의 평균 전류가 모터에 의해서 호이스팅되는 보관 컨테이너 콘텐츠의 질량에 따라서 어떻게 변하는지를 보여주는 그래프이다.
도 1 내지 도 5를 참조하여 설명된 전술된 격자 프레임워크 구조체 및 로드 핸들링 디바이스와 같은 보관 시스템의 알려진 특징과 다르게, 본 발명이 고안되었다. 본 발명은 격자 구조체 상의 로드 핸들링 디바이스 또는 "봇(bot)"의 이동을 제어하기 위한 방법 및 시스템에 의해서 정의된다.
로드 핸들링 디바이스(130)는 토트(tote)라고도 알려져 있는 보관 컨테이너 또는 빈을 아래로부터 상승시키기 위한 윈치 또는 크레인 메커니즘을 포함하는 리프팅 메커니즘(미도시)이 장착된 차체(132)를 포함한다. 크레인 메커니즘은 스풀 또는 릴 주위에 감겨있는 윈치 케이블, 및 그래버(grabber) 디바이스를 포함한다. 그래버 디바이스는 보관 컨테이너의 상단을 파지하여 이것을 도 4 및 도 5에 도시되는 타입의 보관 시스템 내의 컨테이너들의 스택으로부터 상승시키도록 구성된다.
차체(132)는 상부 및 하부를 포함한다. 하부는 보관 시스템의 격자 프레임워크 구조체 상단에 있는 레일 위에서 굴러가는 두 개의 세트의 휠(134, 136)을 포함하는 휠 어셈블리를 포함한다. 본 발명을 설명하기 위하여, 휠들의 두 세트는 휠들의 제 1 세트(134) 및 휠들의 제 2 세트(136)라고 정의된다. 휠들의 제 1 세트(134) 및 제 2 세트(136)는 로드 핸들링 디바이스(130)의 주변부 주위에 배치된다. 휠들의 제 1 세트(134) 및 제 2 세트(136)는 차체(132)의 하부에서 마주보는 측면에 배치되고, 차체의 마주보는 측면들 상에 휠들의 쌍을 포함하며, 즉 휠들의 제 1 및 제 2 세트 각각은 총 개의 휠을 포함한다. 도 6에 도시되는 본 발명의 특정 실시형태에서, 휠들의 제 1 세트(134) 및 제 2 세트(136) 각각은 로드 핸들링 디바이스가 트랙 또는 레일을 따라서 X 및 Y 방향 각각으로 이동할 수 있게 하기 위해서 차체(132)의 하부 내의 차량 프레임에 회전가능하게 장착된다. 본 발명의 특정 실시형태가 차량의 마주보는 측면에 장착된 휠들의 쌍을 보여주지만, 본 발명은 차량의 양측의 휠들의 쌍 위에 장착된 로드 핸들링 디바이스로 한정되지 않는다. 차량의 마주보는 측면에 장착된 휠들의 쌍 대신에, 로드 핸들링 디바이스의 안정성은 차체의 마주보는 측면 상에 있고 서로 대각선으로 마주보게 배치된 적어도 하나의 휠에 의해서 달성될 수 있다. 따라서, 휠들의 제 1 및 제 2 세트는 이들이 대각선으로 서로 마주보도록 차체의 마주보는 측면에 장착된 적어도 하나의 휠을 각각 포함한다.
본 발명의 특정 실시형태에서, 휠들의 제 1 세트(134) 및 제 2 세트(136)는 하부에 있고 컨테이너-수용 리세스라고 알려져 있는 캐비티 또는 리세스의 주변부 주위에 배치된다(도 4 및 도 5 참조). 리세스는 컨테이너(10)가 도 5의 (a) 및 도 5의 (b)에 도시된 바와 같이 크레인 메커니즘에 의해서 들어올려질 때에 보관 컨테이너 또는 컨테이너를 수용하도록 크기가 결정된다. 특정 실시형태가, 예를 들어 WO 2015/019055(Ocado Innovation Limited)에 설명된 바와 같이 차체 내에 배치된 컨테이너 수용 공간을 기술하지만, 차체는 컨테이너 수용 공간이 로드 핸들링 디바이스의 캔틸레버 아래에 위치된, WO2019/238702(Autostore Technology AS)에 의해 설명된 바와 같은 캔틸레버를 포함할 수 있다. 이러한 경우에, 그래버 디바이스는, 그래버 디바이스가 스택으로부터 콘테이너를 결속하고 들어올려서 아래 캔틸레버 아래의 컨테이너 수용 공간로 이동시킬 수 있도록 캔틸레버에 의해서 호이스팅된다.
차체(132)의 상부는 로드 핸들링 디바이스의 다수의 대형 컴포넌트를 수용할 수 있다. 통상적으로, 차량의 상부는 리프팅 메커니즘을 구동하기 위한 구동 메커니즘을 구동 메커니즘 및 리프팅 메커니즘에 전력을 제공하기 위한 온-보드 재충전가능 전력원과 함께 수용한다. 재충전가능 전력원은 비한정적으로 리튬 배터리 또는 심지어 커패시터와 같은 임의의 적절한 배터리일 수 있다.
도 6에 도시된 바와 같이, 격자 구조체(115)는, 복수 개의 셀을 포함하는 격자 패턴으로 배치되는, 제 1 방향으로 연장되는 평행 격자 부재의 제 1 세트 및 제 2 방향으로 연장되는 격자 부재의 제 2 세트를 포함한다. 본 발명을 쉽게 설명하기 위하여, 상기 로드 핸들링 디바이스의 수평면에서의 제 1 방향으로의 이동은 X-방향으로의 이동을 나타내고, 제 2 방향으로의 이동은 격자 구조체 상의 Y 방향으로의 이동을 나타낸다. 하나 이상의 로드 핸들링 디바이스가 격자 구조체 상에서 이동할 수 있게 하기 위해서, 격자 부재의 제 1 세트는 트랙들의 제 1 세트(122a)를 포함하고 격자 부재의 제 2 세트는 트랙들의 제 2 세트(122b)를 포함한다. 선택적으로, 격자 부재의 제 1 세트는 트랙 지지대들(미도시)의 제 1 세트를 포함하고 격자 부재의 제 2 세트는 트랙 지지대들(미도시)의 제 2 세트를 포함한다. 선택적으로, 트랙들의 제 1 세트(122a)는 트랙 지지대들의 제 1 세트에 스탭 맞춤되고, 트랙들의 제 2 세트(122b)는 트랙 지지대들의 제 2 세트에 스탭 맞춤된다. 본 발명에서는, 격자 구조체의 격자 부재가 트랙 및 트랙 지지대 양자 모두를 포함하도록, 복수 개의 트랙(122a, 122b)이 트랙 지지대들 제 1 및 제 2 세트 내에 통합될 수 있는 것도 마찬가지로 가능하다.
격자 구조체 상에서 방향을 변경하고, 이를 통하여 차량 또는 로드 핸들링 디바이스가 직교 방향으로 이동하게 하기 위해서, 휠들의 제 1 세트(134) 및 제 2 세트(136) 각각은 그들의 각각의 트랙 또는 레일로부터 벗어나게 상승되도록 수직으로 이동되도록 배치된다. 예를 들어, 격자 구조체(115) 상에서 방향을 바꾸기 위해서(예를 들어 X-방향으로의 이동으로부터 Y-방향으로의 이동으로 변경하기 위하여), 휠들의 제 1 세트(134)는 격자 부재 또는 트랙(122a)의 제 1 세트로부터 벗어나게 상승되고 휠들의 제 2 세트(136)는 격자 부재 또는 트랙(122b)의 제 2 세트와 결속된다. 모터와 같은 구동 메커니즘(미도시)은 휠들의 제 1 세트(134) 또는 제 2 세트(136) 중 어느 하나를 격자 구조체(115) 상에서 X 방향 또는 Y 방향으로 구동한다. 본 발명의 특정 실시형태에서, 차체(132)의 하부에 있는 휠들의 제 1 세트(134) 및 제 2 세트(136)의 각각의 휠은 허브 모터에 의해서 개별적으로 구동되어 격자 구조체(115) 상의 로드 핸들링 디바이스(130)의 사륜구동 성능을 제공한다. 다르게 말하면, 휠들의 제 1 및 제 2 세트 내의 모든 휠들은 개별적인 허브 모터에 의해서 구동된다. 이것은, 세트(134, 136) 내의 휠들 중 어느 것이 레일 또는 트랙 상에서 미끄러지더라도 로드 핸들링 디바이스가 격자 구조체(115) 상의 레일 또는 트랙(122a, 122b)을 따라서 이동할 수 있게 하기 위한 것이다. 도 7 및 도 8은 본 발명의 일 실시형태에 따르는 로드 핸들링 디바이스(130)의 휠(150)의 사시도를 도시한다.
자세하게 설명하면, 도 7 및 도 8에 도시되는 허브 모터(160)는 격자 구조체(예를 들어 트랙)와 결속되도록 구성된 외면 및 허브 모터(160)의 고정자를 포함하는 휠 허브 또는 내부 허브(166) 주위에서 회전하도록 구성된 링형 영구자석(164)을 포함하는 내면을 포함하는 외부 회전자(162)를 포함한다. 통상적으로, 고정자는 허브 모터의 코일을 포함한다. 휠들의 제 1 또는 제 2 세트의 각각의 휠(150)을 구동하고, 따라서, 로드 핸들링 디바이스를 격자 구조체 상에서 제 1 방향 또는 제 2 방향으로 이동시키기 위해서, 허브 모터(160)의 외부 회전자(162)는 각각의 휠의 중심축에 대응하는 회전축 A-A 중심으로 회전하도록 구성된다. 회전자(162)의 외면은 트랙 또는 레일과 결속되기 위한 타이어(168)를 선택적으로 포함할 수 있다. 도 8에 도시되는 특정 실시형태에서, 외부 회전자(162)는 자신의 회전축 중심으로 베어링(미도시) 상에서 회전하고, 그 위에서 영구 자석(164)이 그 내면에 결합되는 외부 회전자(162)를 포함한다. 외부 회전자(162)가 휠 허브(166)에 상대적으로 회전하게 하기 위해서, 휠들(150) 각각은, 내부 허브 또는 허브 모터의 고정자를 포함하는 허브(166)를 차체에 커플링함으로써 로드 핸들링 디바이스의 차체에 커플링된다. 특정 실시형태가 휠들의 제 1 세트(134) 및 제 2 세트(136)의 휠들(150) 각각의 구동 메커니즘이 허브 모터를 포함하도록 설명하지만, 휠을 회전가능하게 구동하기 위한 다른 수단도 본 발명에 적용될 수 있다. 예를 들어, 로드 핸들링 디바이스의 전면 및 후면 및 양측에 있는 휠들의 쌍은 적절한 풀리 또는 기어 메커니즘에 연결된 하나 이상의 모터에 의해서 구동될 수 있다.
도 9에 도시되는 휠 어셈블리의 블록도에서, 휠들의 제 1 세트(134) 및 제 2 세트(136)의 휠들의 쌍 각각은 제어 모듈 또는 제어기(170)에 의해서 그들의 각각의 회전축들 중심으로 회전하도록 명령된다. 제어 모듈(170)은, 하나 이상의 프로세서 및 하나 이상의 프로세서에 의해서 실행되면 하나 이상의 프로세서가 휠들의 제 1 또는 제 2 세트에게 동기화되어 그들의 각각의 회전축들 중심으로 회전하게끔 명령하게 하는 명령을 저장하는 메모리를 포함하는 컴퓨터 시스템을 포함할 수 있다. 메모리는 당업계에 널리 공지된 임의의 보관 디바이스일 수 있고, 비한정적으로 RAM, 컴퓨터 판독가능 매체, 자기 보관 매체, 광학 보관 매체 또는 데이터를 저장하기 위해 사용되고 프로세서에 의해 액세스될 수 있는 다른 전자적 보관 매체를 포함할 수 있다. 하나 이상의 처리 디바이스는 당업계에 공지된 임의의 처리 디바이스일 수 있다. 하지만, 통상적인 예는 마이크로프로세서를 포함하지만 이것으로 한정되는 것은 아니다. 휠들의 제 1 세트(134) 및 제 2 세트(136)의 횔들 각각의 구동 메커니즘 및 휠 위치설정은 임의의 적절한 통신 유닛(172)을 통하여 제어 모듈에 통신가능하게 커플링된다. 이것은 당업계에 공지된 임의의 유선 또는 무선 통신을 포함하지만 이것으로 한정되는 것은 아니다.
제어기(170)는 제어 명령을 구동 메커니즘으로 전송하고, 이것은 제어 명령을 제어 명령에 따라서 휠 모터로 가는 적절한 구동 전류 출력 신호로 전환하여, 트랙의 상의 로드 핸들링 디바이스의 제어된 이동이 가능해지게 한다. 제어 신호는 휠 모터로 전달되는 전력을 변경함으로써 윌 모터의 속도 및 방향을 제어하는 휠 모터 또는 모터 드라이브에 직접 제공될 수 있다. 구동 메커니즘이 로드 핸들링 디바이스를 그 현재 위치로 새로운 위치까지 이동시키거나 그 속도를 변경해야 한다고 제어기(170)가 결정하면, 제어기(170)는, 로드 핸들링 디바이스를 구동 메커니즘을 통해서 그 현재 위치 또는 속도로부터 목표 위치 또는 명령된 중지 위치까지 구동하기 위한 적절한 제어 신호로 전환되는, 모션 제어 프로파일이라고도 알려져 있는 궤적을 생성한다. 로드 핸들링 디바이스가 그 현재 상태로부터 명령된 중지 위치까지 이동할 때에, 모션 제어 프로파일은 시간에 걸친 속도, 가속도 및/또는 위치와 같은 로드 핸들링 디바이스의 운동학적 상태를 정의한다. 현재 위치는, 격자 구조체 상의 로드 핸들링 디바이스의 초기 속도 및 가속도 양자 모두가 실질적으로 0인 경우인 멈춤 또는 휴식 상태로부터 얻어질 수 있고, 또는 로드 핸들링 디바이스가 0보다 큰 초기 속도를 가지는 경우인 움직이는 상태이다. 명령된 위치는, 예를 들어 보관 컨테이너를 취출 또는 퇴적시킬 때의 격자 구조체 상의 소망되는 보관 위치 또는 격자 셀일 수 있다. 대안적으로, 예를 들어 로드 핸들링 디바이스가 재충전가능 전력원을 재충전하도록 지시받는 경우에는, 명령된 위치가 하나 이상의 충전 포인트에 인접한 격자 구조체 상의 위치 또는 격자 셀일 수도 있다. 통상적으로, 충전 포인트는 격자 구조체의 주변부 주위에 위치된다.
이러한 모션 제어 프로파일이 생성되면, 제어기는 모션 제어 프로파일을 모션 제어 프로파일에 의해서 정의된 궤적을 따라서 로드 핸들링 디바이스를 이동시키기 위한 적절한 제어 신호로 전환한다. 모션 제어 프로파일의 다양한 세그멘트(또는 스테이지)가 구동 메커니즘의 기계적 제한사항에 대응하는 하나 이상의 미리 결정된 제약에 기반하여 계산된다. 하나 이상의 미리 결정된 제약은 최대 속도, 최대 가속도, 및 최대 감속도를 포함하지만 이것으로 한정되는 것은 아니다. 예를 들어, 본 발명의 일 실시형태에 따르는 로드 핸들링 디바이스는 최대 4 m/s의 속도에서 이동하고 2 m/s2로 가속하도록 기대된다. 이러한 제약 및 소망되는 명령된 위치가 주어지면, 제어기는 소망되는 이동을 수행하기 위한 모션 제어 프로파일을 계산할 것이다. 소망되는 이동은, 격자 구조체 상의 X 및 Y 방향으로의 복수 개의 위치를 포함할 수 있는데, 이것은 로드 핸들링 디바이스가 소망되는 보관 칼럼에 도달하게 하기 위해서 함께 혼합되거나 순차적으로 실행될 수 있다. 복수 개의 위치들 각각은 격자 구조체 상의 X 방향 또는 Y 방향 중 어느 하나의 방향으로의 단일 이동(single move)을 포함할 수 있다. 본 발명의 목적을 달성하기 위하여, "명령된 속도(commanded velocit)" 및 "속도 제약(velocity constraint)"이라는 용어는 동일한 기능을 의미하도록 상호교환가능게 사용된다. 이와 유사하게, "명령된 가속도("commanded acceleration)" 및 "가속 제약(acceleration constraint)"의 용어들은 동일한 기능을 의미하도록 상호교환가능하게 사용된다.
본 발명은 로드 핸들링 디바이스 상에서의 격자 구조체의 점대점 이동을 위한, 제약에 기반한 시간 최적 모션 제어 프로파일을 생성하는 것에 관한 것이다. 본 발명의 콘텍스트에서 점대점 이동은 시작 위치로부터 명령된 중지 위치까지의 이동을 가리킨다. 최종 가속도 및 속도는 로드 핸들링 디바이스가 프로그래밍된 목적지 또는 명령된 중지 위치에 도달하는 순간에 제로로 취해진다. 본 발명의 특정 실시형태에서, 제어기로 들어가는 입력은 마스터 제어기(174)를 통하여 수신된다. 제어기는 도 10에 도시된 바와 같이 네트워크(176)를 거쳐서 마스터 제어기(174)에 커플링될 수 있다. 제어기는 도 10에서 로드 핸들링 디바이스(130) 내에 포함되게 도시된다. 네트워크(176)는 여러 가지 중에서 LAN(근거리 네트워크), WAN(광역 네트워크), 인터넷 또는 인트라넷을 포함하는 다양한 타입 중 임의의 것일 수 있다. 하나 이상의 기지국(미도시)은 입력 정보를 제어기로 송신할 수 있다. 본 발명의 특정 실시형태에서, 입력은 하나 이상의 제약 및 격자 구조체 상의 명령된 위치 또는 목표 위치를 포함할 수 있다. 하나 이상의 제약은 명령된 위치로부터 독립적으로 수신될 수 있다. 예를 들어, 마스터 제어기(174)는 명령된 위치 및 하나 이상의 제약을 로드 핸들링 디바이스(130)의 제어기 내에 저장된 모션 제어 프로파일 또는 궤적 생성기로 별개로 통신할 수 있다.
모션 제어 프로파일은 하나 이상의 제약 및 격자 구조체 상의 소망되는 위치에 대응하는 명령된 위치의 수신에 기반하여 생성되거나 계산되는데(예를 들어 제어기에 의해서 자동으로), 이것은 격자 구조체 상의 소망되는 보관 위치 또는 충전 위치일 수 있다. 본 발명에 따르면, 모션 제어 프로파일 또는 궤적은 위치, 속도 및 가속도 및/또는 저크 신호의 콜렉션을 포함한다. 명령된 위치가 획득되고 남은 신호(속도, 가속도, 저크)가 정밀하게 제로라면, 궤적은 종단된다(또는 그 종점에 도달한다).
결과적으로 얻어지는 모션 제어 프로파일은 제어기가 생성하도록 구성되는 프로파일의 타입의 함수이다. 이들은 S-곡선 프로파일 및 그 더 간단한 사촌인 사다리꼴 프로파일이다.
1.0 사다리꼴 및 S-곡선 궤적 프로파일
점대점의 콘텍스트에서, 사다리꼴 프로파일은 통상적으로 삼각 모션 프로파일에서 3 가지 별개의 모션 페이즈로 이루어진다. 사다리꼴 프로파일의 가장 간단한 형태가 도 11의 (a) 내지 (c)에 도시되고, 최대 속도까지의 등가속도의 기간 이후에 제로로 돌아가는 상수 감속의 기간으로 이루어진다. 양의 가속도의 기간은 "가속 페이즈(acceleration phase)"라고 불리고, 음의 가속도의 기간은 "감속 페이즈(deceleration phase)"라고 불린다. 도 11의 (c)의 가속도 세그멘트로서 도시되는 바와 같이, 가속도 및 감속도는 거의 순간적으로 증가하고 감소한다. 이러한 위치들에서, 가속도의 변화율(da/dt)은 정의되지 않고, 무한대와 같은 것으로 여겨진다. 시간에 대한 가속도의 변화율에는 저크(Jerk)라는 이름이 주어지고, j = da/dt이며, 고쓰루풋 애플리케이션에서는 정의되지 않은 저크가 충격 적재(impact loading), 격자 구조체 상의 로드 핸들링 디바이스의 발진, 및 가능하게는 가청 노이즈를 초래할 것이다. 시간의 함수인 생성된 모션 제어 프로파일은 (i) 가속 레퍼런스(도 11의 (c); (i) 속도 레퍼런스(도 11의 (b)); 및 (iii) 위치 레퍼런스(도 11의 (a))의 콜렉션을 포함한다. 결과적으로, 도 11의 (a) 내지 (c)에 도시되는 사다리꼴 궤적은 위치, 속도, 및 가속도에 관련된 신호들로 이루어진다. 사다리꼴 프로파일에 기반하여 모션 제어 프로파일을 생성하는 경우의 주된 입력들은 (i) 명령된 위치(궤적의 끝에서 획득되어야 하는 위치); (ii) 명령된 속도(허용된 최대 속도) 및 (iii) 명령된 가속도(허용된 최대 가속도)이다. 명령된 속도 및 명령된 가속도는 사다리꼴 프로파일에 기반하여 모션 제어 프로파일을 생성하는 중의 하나 이상의 제약을 나타낸다. 따라서, 사다리꼴 프로파일에서의 속도 레퍼런스는 가속 레퍼런스를 조작함으로써 제어된다.
시간 t=0에서의 초기 조건인 v(t) = v0 및 위치 p(t) = p0가 주어지고 이제 사다리꼴 궤적 프로파일에 대해서 조작 변수인 가속 레퍼런스 a를 상수로 유지시키면(시간 t ≥ t(0)에 대하여), 시간의 함수인 속도 레퍼런스 및 위치 레퍼런스는 다음 수학식에 의해서 주어진다:
조작 변수(가속도)의 값이 변하는 임의의 시점 에서, 수학식 1 및 수학식 2은 시간 에서의 궤적 포인트 값을 초기 조건, 예를 들어 v0 ← v( ), p0 ← p( )이 되게 하고 시간을 (t- )로 리셋함으로써 간단하게 다시 적용될 수 있다. 궤적 포인트는 특정 시간에서의 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스 상의 포인트의 값을 가리킨다 - 이것은 후술되는 바와 같이 궤적 세그멘트의 시작점 또는 종점일 수 있다.
여기에서, "조작 변수(manipulated variable)"는 그 값이 제어 시스템에 의해서 설정되는 변수를 의미한다. 사다리꼴 프로파일의 경우, 조작 변수는 가속도이고, 따라서 가속도의 값이 제어 시스템에 의해서 설정된다. 조작 변수가 아닌 다른 변수(위치 및 속도)는 위의 수학식에 따라서 조작 변수의 값으로부터 계산된다.
도 12의 (a) 내지 (d)에 도시된 바와 같은 S-곡선 가속도 프로파일은 전통적인 사다리꼴 프로파일에 대한 대안이고, 통상적으로 일곱 개의 개별 모션 페이즈로 이루어진다. 가속도 프로파일은 광범위하게는 다음 세 가지 부분들로 분할될 수 있다: 가속 페이즈(페이즈 I, II, 및 III), 등속 페이즈(페이즈 IV), 및 감속 페이즈(페이즈 V, VI, 및 VII). S-곡선 프로파일 내의 가속, 등속, 및 감속 페이즈는 도 11의 (a) 내지 (c)를 참조하여 전술된 바와 같은 사다리꼴 프로파일 내의 가속, 등속, 및 감속 페이즈와 등가이지만, 저크가 인가되기 때문에 프로파일이 더 복잡해지고, 궤적을 완전하게 기술하기 위해서는 가속 및 감속 페이즈의 하위 분할이 필요하다. 페이즈 I은 로드 핸들링 디바이스를 최대 가속도에 도달할 때까지 양의 값의 저크를 가지고 가속 페이즈 내의 휴식 또는 시작 위치로부터 이동시키면서 시작한다. 페이즈 II에서는, 최대 속도에 근접함에 따라 감속하기 시작해야 할 때까지, 프로파일이 자신의 최대 가속도 레이트로 가속한다. 도 12의 (c)에 도시되는 궤적 프로파일에서, 궤적은 페이즈 II 도중에 제로 저크로 천이한다. 페이즈 III에서는, 가속도가 제로에 도달할 때까지 감소하고, 즉 저크는 제로 가속도가 소망되는 속도에서 도달될 때까지 음의 값의 저크로 천이한다. 등속 페이즈인 페이즈 IV에서는, 소망되는 속도가 상수이고 가속도 및 저크 양자 모두는 0이다. 페이즈 V, VI, 및 VII은 프로파일이 페이즈 I, II 및 III에 대칭적인 방식으로 감속하는 감속 페이즈이다. 감속 페이즈에서, S-곡선 프로파일은 페이즈 V에서는 음의 값의 저크를, 페이즈 VI에서의 제로 저크를 적용함으로써 시작하고, 최종적으로 저크를 페이즈 VII에서의 양의 값까지 증가시켜서 제로 속도에 도달될 때까지 궤적을 감속한다.
사다리꼴 프로파일에 기반하여 모션 제어 프로파일을 생성하는 것과 반대로, S-곡선 프로파일에 기반하여 모션 제어 프로파일을 생성하는 경우의 주된 입력들은 (i) 명령된 위치(궤적의 끝에서 획득되어야 하는 위치); (ii) 명령된 속도(허용된 최대 속도 vmax); iii) 명령된 가속도(허용된 최대 가속도 amax); 및 (iv) 명령된 저크이다. 따라서, 모션 제어 프로파일을 생성할 때의 하나 이상의 제약은 명령된 속도, 명령된 가속도 및 명령된 저크를 포함한다. 명령된 가속도는 가속 페이즈 중의 최대 양의 가속도 및 감속 페이즈 중의 최대 음의 가속도를 포함할 수 있다. 대안적으로, 가속에 관련된 제약이 가속 페이즈 및 감속 페이즈에서의 가속도를 구별하기 위해서 명령된 가속도 및 명령된 감속도로 분할될 수 있는 경우에는, 다른 용어가 사용될 수 있다. 본 발명을 설명하기 위하여, 명령된 속도 및 속도 제약이라는 용어는 동일한 함수를 의미하도록 상호교환가능하게 사용되고, 명령된 가속 및 가속 제약이라는 용어도 마찬가지로 동일한 함수를 의미한다. 시간의 함수로서 생성된 모션 제어 프로파일은 (i) 저크 레퍼런스; (ii) 가속 레퍼런스; (iii) 속도 레퍼런스; 및 (iv) 위치 레퍼런스의 콜렉션을 포함한다. 결과적으로, 도 12에 S-곡선 궤적은 위치, 속도, 가속도 및 저크에 관련된 신호들로 이루어진다.
천이 등속 및 가속 사이의 천이가 급격한 사다리꼴 프로파일과 반대로, S-곡선 모션 프로파일 내의 하나 이상의 명령된 저크에 의해서 제공된 속도 프로파일의 에지 또는 "코너"가 부드러워지면 가속의 급격한 변화가 감소되고, 이를 통하여 격자 구조체 상의 로드 핸들링 디바이스의 모션이 부드러워지며, 즉 S-곡선 프로파일은 훨씬 더 적은 진동 에너지를 로드 핸들링 디바이스의 연결 메커니즘 및 로드에 주입한다. 이것은, 특히 구동 휠 어셈블리를 위한 구동 메커니즘이 서보 모터 또는 스테퍼 모터인 경우이다. 사다리꼴 프로파일과 비교하면, S-곡선 프로파일은 등가속 페이즈에 대한 프로파일의 천이 페이즈들의 비율을 조절함으로써, 로드 핸들링 디바이스 내의 발진을 상쇄하기 위한 제어 메커니즘을 제공한다. 저크라는 용어에서, 저크가 클수록 더 많은 양의 원치 않는 진동이 생성될 것이고 진동의 스펙트럼이 더 넓어질 것이다. 이것은 가속도의 변화가 빨라질수록 진동이 더 강력해질 것이라는 것을 의미한다. 저크를 감소시킴으로써, 가속도가 속도 프로파일의 에지 또는 "코너"에서 등가속도로 천이하는 구역에서의 가속도의 급격한 변화가 감소된다. 이것은 속도 프로파일의 에지 또는 "코너"를 부드럽게 함으로써 명백해질 것이다.
가속도가 조작 변수인 사다리꼴 프로파일과 비교할 때, S-곡선 프로파일 내의 위치, 속도, 및 가속도 모두는 하나 이상의 저크 값을 조작함으로써 제어된다. 천이 시간(또는 천이)을 조작 변수가 그 값을 변경하는 시간이라고 명명하면, 조작 변수가 자신의 값을 변경하는 적어도 네 개의 천이가 존재한다. 간단히 말하자면, 조작 변수는 각각의 쌍의 연속적 천이들 사이에서 일정하게 유지된다. 사다리꼴 궤적의 경우에는 조작 변수가 가속도이고, S-곡선 궤적의 경우에는 조작 변수가 저크이다. 천이할 때의 궤적의 값은 천이점이라고 불린다. 사다리꼴 프로파일 및 S-곡선 프로파일 양자 모두의 용어를 위해서, 궤적 세그멘트는 조작 변수(사다리꼴 프로파일의 경우에는 가속도이고 s-곡선 프로파일의 경우에는 저크임)가 일정하게 유지되는 프로파일의 섹션이다. 다르게 말하면, 궤적 세그멘트는 천이점에서 시작하고 끝난다. 도 11 및 도 12를 참조하는 사다리꼴 및 S-곡선 궤적에 대한 앞선 설명에서는, 사다리꼴 궤적의 세 개의 페이즈 및 S-곡선 궤적의 일곱 개의 페이즈도 역시 궤적 세그멘트라고 설명될 수 있다. 본 발명을 설명하기 위하여, 궤적 세그멘트는 궤적 포인트(p0, v0, a0)에 의해 주어진 시작점 및 종점(pE, vE, aE)을 가지는데, 여기에서 p0, v0, a0는 각각 초기 위치 레퍼런스, 초기 속도 레퍼런스(v0), 및 초기 가속 레퍼런스(a0)이고, 여기에서 pE, vE, aE는 각각 종점 위치 레퍼런스(pE), 종점 속도 레퍼런스(vE), 및 종점 가속 레퍼런스(aE)이다. 모션 제어 프로파일 또는 궤적은 조작 변수를 변경한 결과인 이러한 궤적 세그멘트의 콜렉션 또는 시퀀스이다.
t=0에서의 초기 조건 및 시작 가속도 a(t) = a0가 주어지면, 시작 속도 v(t) = v0, 시작 위치 p(t) = p0가 주어지고 조작 변수인 저크 (j)를 t ≥ 0 동안에 상수로 유지하면, S-곡선 궤적 프로파일의 경우, 시간의 함수인 저크 레퍼런스, 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스 사이의 관계는 다음의 수학식들에 의해서 주어진다:
사다리꼴 프로파일의 경우에서와 같이, 조작 변수의 값이 변하는 임의의 시점 에서, 수학식 3 내지 수학식 5는 시간 에서의 궤적 포인트의 값을 초기 조건으로 만들고, 예를 들어 a0 ← a( ), v0 ← v( ), p0 ← p( )이 되게 하고, 시간을 리셋하여(t ← )이 되게 함으로써 다시 적용될 수 있다.
도 11 및 도 12의 궤적 프로파일은 사다리꼴 궤적의 경우에는 불연속성이 위치의 제 2 도함수, 즉 가속도에서 발생하고, S-곡선 궤적의 경우에는 불연속성이 위치의 제 3 도함수, 즉 저크에서 발생한다는 것을 보여준다. S-곡선 궤적 대신에 사다리꼴 궤적이 흔히 사용되는데, 그 이유는 이것이 시스템의 모션의 충분히 양호한 근사화를 제공하고, 그 수학적인 복잡도(그리고 따라서, 소프트웨어 구현)에 있어서 더 가볍기 때문이다. 그러나, 사다리꼴 프로파일에 따라서 생성된 모션 제어 프로파일은 로드 핸들링 디바이스의 안정성 때문에, 격자 구조체 상의 로드 핸들링 디바이스의 운동학적 상태를 제어하는데 있어서 이상적이지 않다. 궤적의 생성에 영향을 주기 위해서, 사다리꼴 궤적의 경우에 조작 변수인 가속도가 불연속적인 방식으로 변하게 허용된다. 사다리꼴 프로파일과 반대로, S-곡선 궤적의 경우에는 조작 변수인 저크가 불연속적인 방식으로 변하도록 허용된다. 조작 변수가 자신의 값을 변경하는, 천이 시간이라고도 알려져 있는 시간은 격자 구조체 상의 로드 핸들링 디바이스의 부드러움(smoothness)에 영향을 준다. 가속도에서의 변화가 격자 구조체 상의 로드 핸들링 디바이스의 주행의 부드러움에 영향을 주기 때문에, 사다리꼴 프로파일에서의 조작 변수의 천이 시간은 너무 급격하고, 결과적으로 격자 구조체 상의 로드 핸들링 디바이스에 발진, 즉 불연속적인 방식인 가속도 변경을 초래한다. S-곡선 프로파일에서 조작 변수인 저크가 불연속적인 방식으로 변하도록 허용하면, 가속도가 더 연속적인 방식으로 변하게 되어 더 부드러운 주행이 허용된다.
본 발명의 특정 실시형태에서, 모션 제어 프로파일을 생성하는 것이 S-곡선 프로파일을 참조하여 설명될 것이다.
2.0 궤적 생성기의 컴포넌트
위에서 논의된 바와 같이, 격자 구조체 상의 로드 핸들링 디바이스의 휠 어셈블리의 구동 메커니즘을 제어하기 위하여 사용되는 모션 제어 프로파일의 생성 또는 계산은, 마스터 제어기로부터 격자 구조체 상의 궤적의 하나 이상의 제약 및 소망되는 사양(명령된 위치)이 수신되는 것에 응답하여 주로 로드 핸들링 디바이스 내의 제어기에 의해서 수행된다. 도 13은 격자 구조체의 상의 로드 핸들링 디바이스의 점대점 이동을 위한 모션 프로파일을 생성할 수 있는 예시적인 비한정적인 모션 제어 프로파일 생성 시스템(180)의 블록도이다. 모션 제어 시스템은 모션 제어 신호를 생성하기 위한 모션 프로파일 생성기 또는 궤적 생성기(182) 및 모션 제어 신호를 본 발명의 하나 이상의 실시형태에 따라서 구동 메커니즘(186)을 구동하기 위한 적절한 토크 신호로 전환하는 위치 제어기(184)를 포함한다. 이러한 설명에서, "모션 프로파일 생성기" 및 "궤적 생성기"라는 용어는 상호교환가능하도록 사용된다.
모션 프로파일 생성기(182)는, 예를 들어 프로그래밍가능 로직 제어기(PLC) 또는 로드 핸들링 디바이스의 구동 메커니즘을 모니터링 및 제어하는 그 외의 이러한 제어기일 수 있다. 이러한 예에서, 모션 프로파일 생성기는 제어기의 운영 체제의 기능성 컴포넌트 및/또는 제어기 내에 상주하는 하나 이상의 프로세서에 의해서 실행되는 제어 소프트웨어일 수 있다. 모션 프로파일 생성기(182)는 제어기의 다른 기능성 요소와 데이터를 교환하는 회로 보드 또는 집적 회로와 같은, 제어기 내에 상주하는 하드웨어 컴포넌트일 수도 있다. 모션 제어 프로파일의 다른 적절한 구현형태도 역시 본 발명의 범위에 속한다. 비록, 도 13에서는 모션 프로파일 생성기(182)가 제어기 또는 제어 시스템의 집적된 컴포넌트인 것으로 예시되지만, 모션 프로파일 생성기(182)는 제어기로부터 분리된 컴포넌트일 수도 있다. 이러한 구성에서, 모션 프로파일 생성기는 데이터를 모션 제어 생성 시스템의 제어기 또는 다른 컴포넌트와 유선 또는 무선 네트워킹, 하드와이어드 데이터 링크, 또는 다른 적절한 통신 링크를 포함하지만 이들로 한정되는 것은 아닌 임의의 적절한 통신 수단을 통해서 교환할 수 있다. 본 발명의 특정 실시형태에서, 제어기 및 따라서 모션 프로파일 생성기는 로드 핸들링 디바이스 내에 상주한다.
생성된 모션 프로파일은 로드 핸들링 디바이스의 모션을 현재 상태(제 1 위치) 또는 속도로부터 명령된 위치(제 2 위치)까지 제어하기 위한 궤적 또는 모션 제어 프로파일을 정의하는데, 여기에서 모션 제어 프로파일은 시간의 함수인 위치 레퍼런스, 속도 레퍼런스, 가속 레퍼런스 및 저크 레퍼런스 중 하나 이상으로 정의된다(S-곡선 프로파일의 경우). 명령된 위치에 있게 될 때, 로드 핸들링 디바이스는 명령된 위치로부터 미리 결정된 임계 거리에 있을 수 있다. 바람직하게는, 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스 및 종점 속도 레퍼런스의 크기가 명령된 위치에서 실질적으로 0이 되도록, 미리 결정된 임계는 실질적으로 5mm 미만, 더 바람직하게는 1mm 미만, 더 바람직하게는 0.5mm 미만이다. 바람직하게는, 미리 결정된 임계는 실질적으로 0이고, 즉 명령된 위치에 있게 된다.
도 15는 모션 프로파일 생성기(182) 내에서의 위치 기반 이동에 대한 모션 제약(188)을 적응하고, 모션 제어 프로파일을 로드 핸들링 디바이스의 천이에 영향을 주기 위해서 구동 메커니즘으로 전송되는 제어 신호로 전환하는 메인 스테이지를 보여주는 흐름도(200)이다. 동작은 궤적 생성기가 그 현재 위치로부터 명령된 위치(이러한 경우에는 특정한 보관 칼럼 또는 격자 셀임)로 이동하라는 로드 핸들링 디바이스(130)에 대한 명령을 수신함으로써 시작한다(204). 궤적 생성기(182)는 정의된 제약 및 명령된 위치가 주어지면 궤적 또는 모션 제어 프로파일을 생성한다(206). 본 발명의 특정 실시형태에서, 궤적 생성기(182)는 로드 핸들링 디바이스(130)를 구동하기 위한 휠의 모션 토크 수요를 계산하기 위해서 모션 프로파일을 따라서 주기적으로 진행한다(208).
다시 도 13을 참조하면, 동작 시에, 목적지 위치(190)가 선택적으로 이동 관리자(192)를 통하여 마스터 제어기(174)에 의해서 모션 프로파일 생성기(182)로 제공된다. 목적지 위치(190)는 격자 구조체 상의 로드 핸들링 디바이스의 현재 위치 또는 상태로부터 명령된 위치로 이동하기 위한 명령을 포함한다. 로드 핸들링 디바이스의 현재의 상태는 격자 구조체 상의 로드 핸들링 디바이스의 휴식 위치 또는 격자 구조체 상의 로드 핸들링 디바이스의 현재 운동학적 상태(예를 들어, 속도)일 수 있다. 격자 구조체 상의 로드 핸들링 디바이스의 현재 상태로부터, 모션 프로파일 생성기(182)는 하나 이상의 모션 제약의 함수로서 모션 제어 프로파일을 계산하는데, 이것은 구동 메커니즘(186)의 기계적 제약 또는 모션 제약(188) 또는 구동 메커니즘의 동작에 관련된 사용자 선호사항을 나타낼 수 있다. 도 16에 도시된 바와 같이, 모션 프로파일 생성기(182)는 제약들(188)의 세트의 입력을 수신한다. 이러한 제약은 속도(188a), 가속도(188b), 감속(188c) 및 저크(188d)에 대한 상한을 포함한다. 이러한 제약(188)은 모션 프로파일 생성기를 전개하는 동안에 한 번 설정될 수 있고, 또는 격자 구조체 상의 로드 핸들링 디바이스의 각각의 이동에 대해서 재구성될 수도 있다. 예를 들어, 모션 프로파일 생성기(182)는 새로운 명령된 위치를 수신할 때에 또는 다른 제약 중 하나에 대한 상이한 값을 수신할 때에 업데이트될 수 있다. 모션 프로파일 생성기는 비대칭 가속 및 감속을 가지는 모션 제어 프로파일을 수용하기 위해서 가속 및 감속 한계가 개별적으로 구성될 수 있게 한다. 명령된 위치를 수신하는 것에 응답하여, 모션 프로파일 생성기는 로드 핸들링 디바이스를 그 현재 위치로부터 명령된 위치로 이동시키기 위한 궤적을 정의하는 제약에 기반한 시간 최적 모션 제어 프로파일(194)을 계산한다.
도 15에 도시된 바와 같이, 모션 제어 프로파일을 생성하는 것은, S-곡선 프로파일의 경우에는 저크인 조작 변수를 적용하여 모션 제어 프로파일의 가속 페이즈 및 감속 페이즈에서 가속도를 연속적인 방식으로 증가 및/또는 감소시키는 것(206)을 수반한다. 도 12 및 도 16에 도시된 바와 같이, 모션 제어 프로파일은 하나 이상의 저크 레퍼런스, 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스를 포함한다. 레퍼런스들은 시간의 함수인 수학적 도함수로서 서로 관련된다. 저크 레퍼런스는 가속도의 도함수이고, 가속도는 속도의 도함수이며, 속도는 위치의 도함수이다. 모션 프로파일 생성기는 모션 제어 프로파일의 별개의 궤적 세그멘트들 각각에 대한 하나 이상의 저크 레퍼런스, 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스를 계산하면서 모션 제어 프로파일을 주기적으로 진행시킨다. 통상적으로는, 도 12를 참조하여 전술된 바와 같이 S-곡선 모션 프로파일에는 최대 일곱 개의 별개의 스테이지가 존재한다. 모션 제어 생성기는 이러한 레퍼런스들을 해당 모션 제어 프로파일의 정의된 모션 프로파일 스테이지들의 세트들 각각에 대해서 시간의 함수로서 정의한다. 본 발명은 S-곡선 모션 프로파일의 일곱 개의 별개의 스테이지로 한정되지 않고, 최소 네 개의 스테이지로부터 일곱 개가 넘는 개수의 스테이지까지의 임의의 개수의 스테이지일 수 있다. 예를 들어, 네 개의 스테이지의 환경에서는, 페이즈 III에서의 등속 스테이지가 존재하지 않을 수 있고, 로드 핸들링 디바이스는 최대 제약에 도달하지 않는다. 마찬가지로, 스테이지들의 개수는 하나 이상의 제약 또는 명령된 위치에 대한 변경의 결과로서 궤적 도중에 적어도 하나의 변경이 있다면 일곱 보다 많을 수 있다. 본 발명의 일 실시형태에 따르는 모션 제어 프로파일의 생성에 대한 추가적인 세부사항은 다음 섹션(섹션 3.0)에서 후술된다. 본 발명의 목적을 달성하기 위하여, "모션 제어 프로파일", "모션 프로파일" 및 "궤적"이라는 기능은 동일한 피쳐를 의미하도록 상호교환가능하도록 사용된다.
도 14에 도시된 바와 같이, 격자 구조체에 상대적인 상기 로드 핸들링 디바이스의 위치는 하나 이상의 위치 센서(198a, b)에 의해서 측정된다. 본 발명의 특정 실시형태에서, 이러한 실시형태에서 횔들의 제 1 및 제 2 세트 각각이 로드 핸들링 디바이스의 전면에 한 쌍 및 후면에 한 쌍인 네 개의 휠로 이루어지고, 따라서 위치 센서 휠이 "제 5" 휠이 된다는 점에서, 위치 센서(198a, b)는 소위 "제 5" 휠을 포함한다. 추가적인 "제 5" 휠은 격자 구조체 상에서 제 1 방향 및 제 2 방향으로의 로드 핸들링 디바이스의 위치를 각각 모니터링하기 위해서 휠들의 제 1 및 제 2 세트 사이에 존재한다. 도 14에 도시된 바와 같이, 첫 번째 "제 5" 휠(198a)은 휠들의 제 1 세트 중 하나에 인접하게 장착되고, 두 번째 "제 5" 휠(198b)은 휠들의 제 2 세트 중 하나에 인접하게 장착된다. 제 1 위치 센서에 대응하는 첫 번째 "제 5" 휠(198a)은 로드 핸들링 디바이스가 제 1 방향으로 이동 중일 때에 트랙과 결속되도록 구성되어, 첫 번째 "제 5" 휠의 회전축이 시간에 대한 로드 핸들링 디바이스의 위치 및 이동 방향의 표시가 되게 한다. 이와 유사하게, 제 2 위치 센서에 대응하는 두 번째 "제 5" 휠(198b)은 로드 핸들링 디바이스가 제 2 방향으로 이동 중일 때에 트랙과 결속되도록 구성되어, 두 번째 "제 5" 휠의 회전축이 시간에 대한 로드 핸들링 디바이스의 제 2 방향으로의 위치 및 이동 방향의 표시가 되게 한다. 제 1 방향 및 제 2 방향은 각각 트랙과 나란한 X 및 Y 방향일 수 있다. 본 발명의 특정 실시형태에서, 하나 이상의 위치 센서는 "제 5" 휠이 격자 구조체에 대한 로드 핸들링 디바이스의 변위로 전환될 수 있는 회전축의 위치 및 방향을 나타내면서 회전할 때에 펄스를 생성하는 회전식 전기기계 디바이스를 포함하는 증분 인코더를 포함한다. "제 5" 휠은 암에 장착되고 트랙과 결속되기 위해서 하향으로 편향될 수 있다. 하나 이상의 위치 센서(예를 들어 "제 5" 휠)로부터의 측정치에 추가하여, 마스터 제어기(174)에서 정의된 격자 구조체 상의 소망되는 명령된 위치가 이동 관리자(192)로 통신되고, 여기에서 모션 제어 프로파일의 생성에 영향을 주기 위해서 모션 프로파일 생성기로 통신되기 이전에, 이것은 이동 관리자(192)에 의해서 관련된 위치 단위로 전환된다. 예를 들어, 이동 관리자(192)는 로드 핸들링 디바이스가 격자 구조체 상에서 이동하도록 명령된 격자 셀들의 개수로서 표현된, 마스터 제어기로부터의 명령된 위치를, 제어기 또는 모션 프로파일 생성기가 이해하고 하나 이상의 위치 센서(198)("제 5" 휠)의 판독치에 대응하는 "위치 단위(position unit)"로 전환한다. 그러면, 제어기 또는 모션 프로파일 생성기(182)는 마스터 제어기로부터의 요청된 명령된 위치를 "제 5" 휠 또는 하나 이상의 위치 센서로부터의 위치 판독치 또는 모션 제어 프로파일에 의해서 제공된 위치 레퍼런스 중 어느 하나와 상관시킬 수 있게 된다. 격자 구조체 상의 로드 핸들링 디바이스의 점대점 이동의 모션 제어 프로파일 또는 궤적을 생성하는 것의 추가적인 세부사항이 후술된다.
모션 제어 프로파일이 생성되면, 위치 제어기(184)는 모션 제어 프로파일(194)과 연관된 데이터를, 로드 핸들링 디바이스를 명령된 위치로 천이시키는 것에 영향을 주기 위해서 구동 메커니즘(186)으로 직접 전송될 수 있는 제어 신호로 전환한다. 위에서 논의된 바와 같이, 제어기 또는 제어 시스템이 궤적 생성기(182) 및 위치 제어(184)에 관련된 기능성 컴포넌트를 포함한다는 점에서, 위치 제어기(184)는 로드 핸들링 디바이스의 제어기 또는 제어 시스템(170)의 일부를 형성할 수 있다. 도 13은 본 발명의 일 실시형태에 따르는 예시적인 위치 제어기의 입력 및 출력을 예시하는 블록도이다. 궤적 생성기에 의해서 생성된 모션 제어 프로파일 데이터는 위치 제어기(184)로 통신되고 거기에서 휠 어셈블리의 휠들을 구동하기 위한 제어 신호로 전환된다. 모션 제어 프로파일에 따르면, 위치 제어기(184)는 구동 메커니즘으로 전달되는 전력을 변경하여 격자 구조체에 대한 로드 핸들링 디바이스의 속도를 변경한다. 모션 제어 생성기의 경우에서와 같이, 위치 제어기(184)는 제어기와 함께 상주하는 기능성 컴포넌트이거나, 대안적으로는 자기 자신의 제어 시스템을 가지는 모션 프로파일 생성기에게는 별개의 컴포넌트일 수 있다. 예를 들어, 휠 어셈블리의 휠들의 쌍은 로컬 제어기에 연결될 수 있고, 모션 프로파일 생성기로부터의 모션 제어 신호를 전환하도록 구성된다. 모션 제어 신호를 전환하는 것은 모션 제어 데이터를 휠의 구동 메커니즘 또는 모터를 구동하기 위한 적절한 토크 제어 신호로 변환하는 것을 포함하지만 이것으로 한정되는 것은 아니다.
위에서 논의되고 도 16에 도시된 바와 같이, 모션 제어 프로파일은 시간에 걸친, 격자 구조체에 대한 로드 핸들링 디바이스의 점대점 이동의 궤적을, 위치 레퍼런스, 속도 레퍼런스, 가속 레퍼런스 및 저크 레퍼런스(S-곡선 프로파일의 경우) 중 하나 이상에 대하여 정의한다. 이러한 레퍼런스들은 구동 메커니즘의 각각의 모션 속성이 주어진 점대점 이동을 위하여 시간의 함수로서 어떻게 제어될 것인지를 정의하는 궤적 생성기에 의한 함수 계산을 나타낸다. 이러한 레퍼런스들은 도함수로서 서로에 수학적으로 관련된다. 모션 제어 프로파일을 모션 제어 프로파일에 따른 소망되는 점대점 이동을 수행하라고 로드 핸들링 디바이스에 명령하는 제어 신호로 전환하는 것은, 위치 제어기가 모션 제어 프로파일로부터 피드포워드 신호를 생성하는 것, 좀 더 구체적으로는 모션 제어 프로파일로부터 유도된 가속 레퍼런스를 생성하는 것을 수반한다.
도 17은 궤적 또는 모션 프로파일 생성기로부터의 신호를 로드 핸들링 디바이스의 구동 메커니즘으로 전환하기 위한 위치 제어기의 아키텍처를 보여주는 예시적인 위치 제어기(184)이다. 로드 핸들링 디바이스의 질량을 알고 있으면, 피드포워드 신호(210)(도 17에서 FFs로 표시됨)는 모션 제어 프로파일로부터 유도된 가속 레퍼런스, 좀 더 구체적으로는 속도 레퍼런스의 도함수에 비례하는 계산된 토크 수요를 나타낸다. 피드포워드 신호(210)는 휠 어셈블리의 휠들을 구동하기 위한 적절한 신호로 전환될 수 있다. 그러나, 격자 구조체 정렬 상의 로드 핸들링 디바이스의 점대점 이동이 모션 제어 프로파일의 궤적 세그멘트와 정렬되도록 보장하기 위하여, 계산된 피드포워드 신호(210)는 격자 구조체에 대한 로드 핸들링 디바이스의 실제 운동학적 상태를 표시하는 피드백 신호(212)(17에서 FBs로 표시됨)에 의해서 보상된다. 격자 구조체 상의 상기 로드 핸들링 디바이스의 운동학적 상태는 격자 구조체에 상대적인 로드 핸들링 디바이스의 위치 및 로드 핸들링 디바이스의 속도를 포함할 수 있지만 이들로 제한되는 것은 아니다. 로드 핸들링 디바이스의 속도는 하나 이상의 위치 센서(198)로부터의 위치 측정치의 시간에 대한 제 1 도함수로부터 유도될 수 있다.
피드백 신호(212)에 기반하여, 위치 제어기(184)는 로드 핸들링 디바이스가 가능한 가깝게 모션 제어 프로파일에 따라서 이동하는 것을 보장하기 위해서 필요한, 하나 이상의 위치 센서(198)로부터의 제어 신호를 조절하거나 보상할 것이다. 본 발명의 특정 실시형태에서, 하나 이상의 위치 센서로부터의 피드백 신호(212)는 격자 구조체에 상대적인 로드 핸들링 디바이스의 참 상태를 반영하기 위해서 위치 제어기로 피드백된다. 하나 이상의 위치 센서로부터 데이터 신호를 수신하는 것에 응답하여, 로드 핸들링 디바이스가 자신의 명령된 위치에 언더슈트 또는 오버슈트가 없이, 즉 가속도 및 속도가 명령된 위치에서 0이 되는 경우를 보장하기 위해서, 위치 제어기는 조작 변수인 저크를 변경함으로써 모션 제어 프로파일의 하나 이상의 궤적 세그멘트를 재생성하도록 명령될 수 있다.
본 발명의 특정 실시형태에서, 하나 이상의 위치 센서로부터의 피드백 신호(212)는 피드포워드 신호(210)와 조합되어 휠 또는 해당 휠을 구동하는 구동 메커니즘에 대한 총 토크 수요를 생성한다. 이러한 비교는 모션 제어 프로파일로부터 유도된 궤적 위치 및 하나 이상의 위치 센서로부터의 측정된 위치 사이에서 이루어진다. 이러한 비교는 위치 오차, 즉 시간의 함수로서 궤적 위치 레퍼런스 및 측정된 위치 사이의 차이를 나타낸다. 위치 오차는 PID(비례, 적분 및 미분) 제어기 또는 PI 제어기(214)로 공급되고, 이것은 위치를 PID 또는 PI에 기반하여, 모션 제어 프로파일에 의해서 표현되는 세트 포인트가 되게 정정한다. PID 또는 PI(214)로부터의 출력은 정정 토크인데, 이것은 적용되면 위치 오차를 정정하고 로드 핸들링 디바이스의 실제 궤적이 다시 모션 제어 프로파일과 일치하게 할 것이다. 피드포워드 신호(210)는 궤적 생성기에 의해서 요구된 속도/가속도를 만족시키기 위해서 필요한 토크를 나타낸다. PID 또는 PI(214)로부터의 정정 토크는 피드포워드 신호(210)의 토크 수요와 조합되어 총 토크 수요를 생성한다. 도 17에서 통신 경로 내에 표시된 바와 같이, "가속도 피드포워드" 신호 및 "속도 피드포워드" 신호 양자 모두는 피드포워드 계산에서 조합되고, 룩업 테이블 내에 저장될 수 있다. 실무에서, 가속도 피드포워드 토크 수요 항 및 속도 피드포워드 토크 수요 항은 상수 토크 수요 항인 0차 토크 수요와 함께 합산되는데, 이것은 고정된 값이다(그 부호는 sign(궤적 속도)임). 가속도 피드포워드 토크 수요 항 및 피드포워드 토크 수요 항의 크기는 생성된 모션 제어 프로파일 또는 궤적의 가속도 및 속도 각각으로부터 결정된다.
일 예에서, 총 토크 수요는 다음과 같이 계산된다:
총 토크 수요 = 피드포워드 토크 수요 + 피드백 토크 수요
여기에서;
피드포워드 토크 수요 = 가속도 피드포워드 토크 수요 + 피드포워드 토크 수요 + 0차 토크 수요 값
이다.
여기에서,
가속도 피드포워드 토크 수요 = 궤적 가속도 × 가속도 피드포워드 이득
속도 피드포워드 토크 수요 = 궤적 × 피드포워드 이득
0차 피드포워드 토크 수요 = sign(궤적 속도) × 0차 토크 수요 값
이고, 여기에서 다음 세 가지의 값들은 경험적으로 결정된 바 있다:
- 로드 핸들링 디바이스가 더 무거운 컨테이너를 운반할 경우에 더 높은 이득 값을 갖도록, 가속도 피드포워드 이득은 컨테이너 및 그 콘텐츠를 포함하는 로드 핸들링 디바이스의 추정된 총 질량에 따라 달라진다.
- 피드포워드 이득도 로드 핸들링 디바이스의 추정된 총 질량에 따라 달라진다.
- 0차 토크 수요 값은 로드 핸들링 디바이스가 제로 속도 근처에서 일정하게 유지하게만 하기 위해서 요구되는 총 토크 수요의 값이고, 즉 이것은 비례인자이다.
이러한 세 개의 컴포넌트 - 가속도 피드포워드 토크 수요 항, 피드포워드 토크 수요 항, 및 0차 토크 수요 값 - 는 합산되어 피드포워드 토크 수요를 구성하고, 룩업 테이블에 저장된다. 계산된 피드포워드 토크 수요를 피드백 토크 신호로써 보상할 때에, 제어기는 피드포워드 토크 수요를 룩업 테이블로부터 취출하여 피드백 토크 측정치와 조합한다.
대안적으로, 가속도 피드포워드 이득, 속도 피드포워드 이득, 및 0차 토크 수요의 값들이 경험적으로 결정되는 것이 아니라 계산될 수 있다.
가속도 피드포워드 토크 수요 항은 로드 핸들링 디바이스가 궤적의 요청된 가속도와 매칭되게 하기 위한 토크를 제공하는 총 토크 수요의 성분이다. 요청된 가속도를 만족시키기 위한 추진력은 요청된 가속도를 보관 컨테이너 및 콘텐츠를 포함하는 로드 핸들링 디바이스의 총 질량으로 승산함으로써 계산될 수 있다. 이러한 추진력은 휠 반경으로 승산함으로써 토크 수요로 변환될 수 있다(토크 = 힘 x 반경). 로드 핸들링 디바이스의 총 질량이 알려져 있는 예들에서, 가속도 피드포워드 이득은 경험적으로 결정되는 것이 아니라 계산될 수 있다:
가속도 피드포워드 이득 = 로드 핸들링 디바이스의 총 질량 x 휠 반경.
피드포워드 토크 수요 항 및 0차 토크 수요 항은 로드 핸들링 디바이스가 항력을 극복하게 하기 위한 토크를 제공하는 총 토크 수요의 성분들이다. 항력을 계산하는 다양한 상이한 모델들이 당업계에 공지되어 있는데, 이들은 속도에 비례하는 성분, 속도의 제곱에 비례하는 성분, 및 상수 성분을 가질 수 있다. 항력은 공기 저항, 트랙 상의 휠의 구름 저항, 및/또는 트랙들이 완전히 수평이 아니라면 그레디언트 저항에 기인할 수 있다. 이러한 애플리케이션에서는, 항력의 속도-제곱항이 중요하지 않을 수 있고, 토크 수요의 계산을 더 빠르고 계산을 많이 소요하지 않게 만들기 위해서 생략될 수 있다.
구름 저항을 극복하기 위해서 요구되는 추진력은, 법선력(normal force)(보관 컨테이너 및 콘텐츠를 포함하는 로드 핸들링 디바이스의 총 중량) 및 휠 및 트랙의 속성인 구름 저항 계수를 승산함으로써 계산될 수 있다. 이러한 추진력 항은 휠 반경으로 승산함으로써 토크 수요로 변환될 수 있다(토크 = 힘 x 반경). 로드 핸들링 디바이스의 총 질량이 알려져 있고, 트랙 위의 휠의 구름 저항 계수가 알려져 있는 예들에서, 속도 피드포워드 이득은 경험적으로 결정되는 것이 아니라 계산될 수 있다:
피드포워드 이득 = 로드 핸들링 디바이스의 총 질량 x 중력 가속도 x 구름 저항 계수 x 휠 반경.
실무에서는, 속도 피드포워드 이득 및 0차 토크 계수를 계산하기보다는 경험적으로 결정하는 것이 더 쉬울 수 있다.
임의의 보관 컨테이너 및 콘텐츠의 질량이 고려되어야 하기 때문에, 로드 핸들링 디바이스의 총 질량을 결정하는 것은 어려울 수 있다. 통상적으로, 로드 핸들링 디바이스는 마스터 제어기로부터 명령을 수신하고, 격자 프레임워크 구조체 내의 특정 보관 위치로부터 보관 컨테이너를 취출하도록 구성된다. 일부 예들에서는, 마스터 제어기가 격자 프레임워크 구조체 내의 보관 컨테이너들 모두의 위치 및 콘텐츠에 대한 데이터를 저장하기 위해서 데이터베이스를 사용할 것이고, 따라서 각각의 보관 컨테이너의 질량에 대한 정보를 이미 가지고 있을 것이다. 로드 핸들링 디바이스가 격자 프레임워크 구조체로부터 보관 컨테이너를 픽업할 때, 마스터 제어기는 보관 컨테이너의 질량을 로드 핸들링 디바이스에 있는 제어기로 통신함으로써, 이러한 질량이 로드 핸들링 디바이스의 총 질량을 계산하는 데에 사용될 수 있게 한다. 이와 유사하게, 로드 핸들링 디바이스가 보관 컨테이너를 격자 프레임워크 구조체에 반환할 때에, 마스터 제어기는 로드 핸들링 디바이스에 있는 제어기에게 고려할 보관 컨테이너 질량이 존재하지 않는다는 것을 통신할 것이다. 마스터 제어기는 각각의 보관 컨테이너 및 콘텐츠의 질량을 추적하고, 이것을 지속적으로 업데이트해야 한다(예를 들어, 고객 주문을 불출하기 위해서 아이템이 보관 컨테이너로부터 픽업될 때에). 그러면, 로드 핸들링 디바이스에 의해서 운반되는 임의의 보관 컨테이너 및 콘텐츠의 질량이 로드 핸들링 디바이스 자체의 질량에 추가되어 총 질량을 계산할 수 있다.
보관 컨테이너 및 그 콘텐츠의 질량을 결정하기 위한 대안적 방법은, 리프팅 디바이스를 동작시키고 보관 컨테이너를 로드 핸들링 디바이스의 컨테이너 수용 공간 내로 호이스팅하기 위해서 사용되는 모터의 전류 인출(current draw)을 측정하는 것이다. 전류 인출은 보관 컨테이너의 질량과 거의 선형으로 변하고, 따라서 질량을 결정하기 위한 간단하고 편리한 방법을 가지며, 마스터 제어 시스템으로 하여금 모든 단일 보관 컨테이너의 질량을 추적하고 이러한 정보를 로드 핸들링 디바이스에 있는 제어기로 통신하도록 요구하지 않는 장점을 가진다. 도 36은 보관 컨테이너의 콘텐츠의 질량에 대해서 작성된 호이스트 모터의 측정된 평균 전류 인출을 나타낸 그래프이다. 데이터 포인트들이 직선에 속한다는 것을 알 수 있다. 교점은 빈 보관 컨테이너를 상승시키기 위해서 요구되는 전류를 나타낸다(약 6kA). 데이터 포인트가 직선에 속하기 때문에, 전류 인출 및 보관 컨테이너의 질량 사이의 관계를 캡쳐하기 위하여 선형 근사화가 사용될 수 있고, 따라서 측정된 전류가 컨테이너 및 그 콘텐츠를 쉽고 정확하게 추정하기 위하여 사용될 수 있다.
전술된 토크 수요의 계산은 토크 수요가 어떻게 계산될 수 있는지의 하나의 예이다. 당업자는 가속력(accelerative force) 및 항력을 계산 또는 추정 또는 측정하는 다른 방법도 본 발명에 적용될 수 있다는 것을 인정할 것이다.
일부 예들에서, 속도, 가속도 및/또는 저크 제약은 보관 컨테이너 및 콘텐츠의 질량에 변경될 수 있다.
가속도 피드포워드 토크 수요가 궤적 가속도 및 가속도 피드포워드 이득의 곱이고, 가속도 피드포워드 이득이 로드 핸들링 디바이스(임의의 보관 컨테이너 및 콘텐츠를 포함함)의 총 질량에 비례하기 때문에, 로드 핸들링 디바이스 및 그 화물의 총 질량이 변하면 가속도 피드포워드 토크 수요가 변경될 것이다. 일부 예들에서 가속도 피드포워드 수요는 총 토크 수요의 가장 중요한 성분이다. 휠 모터가 주어진 최대 토크를 제공하는 등급을 가지지만, 특히 무거운 로드를 운반하는 로드 핸들링 디바이스는 휠 모터가 제공할 수 있는 것보다 많은 토크를 휠 모터로부터 요구할 것이고, 따라서 로드 핸들링 디바이스는 자신의 명령된 가속도를 유지할 수 없게 될 것이거나, 휠 모터는 그들의 정격 토크보다 높게 동작하는 것으로 인한 과열의 위험을 겪게 될 것이다. 또는 대안적으로, 이러한 이슈를 극복하기 위해서 휠 모터가 더 높은 등급이라면, 휠 모터의 풀 토크는 오직 가끔씩만 이용될 것이고, 따라서 휠 모터는 애플리케이션에 대해서 실질적으로 과다하게 설계되고, 따라서 필요한 것보다 더 무겁고 더 비싸게 될 것이다.
이러한 이슈를 극복하기 위해서, 일부 예들에서는 가속 제약이 로드 핸들링 디바이스 및 그 화물의 총 질량에 따라서 이루어질 수 있다. 예를 들어, 가속 제약의 값이 로드 핸들링 디바이스 및 그 화물의 총 질량에 반비례한다면, 가속도 피드포워드 토크 수요는 실질적으로 상수가 될 것이고, 및 로드 핸들링 디바이스가 운반하는 임의의 보관 컨테이너 및 콘텐츠와 실질적으로 독립적이 될 것이다. 이것은, 휠 모터의 토크 등급이 기대된 가속도 피드포워드 토크 수요에 매칭되도록 선택될 수 있고, 토크 수요가 질량에 따라서 크게 변하지 않을 것이라는 장점을 가진다.
이와 유사하게, 속도 피드포워드 토크 수요가 궤적 속도 및 속도 피드포워드 이득의 곱이고, 속도 피드포워드 이득이 로드 핸들링 디바이스(임의의 보관 컨테이너 및 콘텐츠를 포함함)의 총 질량에 비례하기 때문에, 로드 핸들링 디바이스 및 그 화물의 총 질량이 변하면 속도 피드포워드 토크 수요가 변경될 것이다. 가속 제약의 경우와 같이, 속도 제약이 (예를 들어) 로드 핸들링 디바이스 및 그 화물의 총 질량에 반비례한다면, 속도 피드포워드 토크 수요는 실질적으로 상수가 될 것이고, 및 로드 핸들링 디바이스가 운반하는 임의의 보관 컨테이너 및 콘텐츠와 실질적으로 독립적이 될 것이다. 가속 제약 및 속도 제약 양자 모두가 로드 핸들링 디바이스의 총 질량에 의존하게 하면(예를 들어, 반비례하게 하면), 피드포워드 토크 수요 수학식의 세 항 중 어느 것도 질량에 의존하지 않게 되고, 따라서 토크는 로드 핸들링 디바이스 및 그 화물의 질량에 대해서 실질적으로 일정해진다.
일부 예들에서, 저크 제약의 값은 로드 핸들링 디바이스 및 로드 핸들링 디바이스의 컨테이너 수용 공간 내에 위치된 임의의 보관 컨테이너 및 콘텐츠의 총 질량에 의존할 수 있다. 예를 들어, 무거운 보관 컨테이너를 운반하는 로드 핸들링 디바이스는 무게 중심이 낮아서 더 안정적일 수 있고, 따라서 로드 핸들링 디바이스가 격자 상에서 뒤집힐 위험이 없이 더 높은 값의 저크를 견딜 수 있다. 저크 제약의 절대 값은 로드 핸들링 디바이스의 총 적재 질량(total laden mass)의 함수로서, 연속 함수 또는 이산 값들의 세트로 정의될 수 있다.
다른 예들에서, 저크 값 제약은 보관 컨테이너의 콘텐츠에 따라 달라질 수 있다. 예를 들어, 로드 핸들링 디바이스가 보관 컨테이너를 민감하거나 파손가능한 아이템을 포함하는 그 컨테이너 수용 공간 내에서 운반한다면, 더 낮은 값의 저크가 사용될 수 있다. 로드 핸들링 디바이스가 더 견실한 아이템, 또는 뒤집히거나 컨테이너의 측면에 부딪힐 가능성이 더 적은 아이템을 보관하는 그 컨테이너 수용 공간 내에 보관 컨테이너를 운반한다면 더 높은 값의 저크가 사용될 수 있다.
저크 제약의 값을 결정하기 위하여 사용될 수 있는 하나의 방법은, 부하-처리 디바이스를 사다리꼴 프로파일(이론적으로 무한대인 저크)에 노출시키고, 명령된 위치를 달성하는데 걸린 시간을 측정하며, 로드 핸들링 디바이스의 실제 모션의 저크를 측정하는 것이다. 그러면, S-곡선 프로파일이 측정된 저크 주위의 저크 값들의 범위에서 실행될 수 있고, 그 효과는 사다리꼴 프로파일에 대한 위치 오차 및 명령된 위치에 도달하는데 걸린 총 시간에 대해서 평가될 수 있다.
저크 제약, 가속 제약, 및 속도 제약이 로드 핸들링 차량의 질량에 대해서 어떻게 변경될 수 있는지에 대해서 특정한 예들이 설명되었지만, 본 발명의 범위가 다른 변형예를 망라하면, 다른 값 또는 개수의 저크 제약, 가속 제약, 및/또는 속도 제약이 적용될 수도 있다는 것이 이해될 것이다.
계산된 총 토크 수요는 휠을 구동하기 위한 적절한 제어 신호로 전환된다. 본 발명의 특정 실시형태에서, 총 토크 수요는 휠들의 제 1 세트가 격자 구조체 또는 트랙과 결속되는지 또는 휠들의 제 2 세트가 격자 구조체와 결속되는지 여부에 따라서 휠들의 제 1 또는 제 2 세트 사이에서 공유된다. 전술된 바와 같은 본 발명의 특정 실시형태에서, 휠들의 제 1 및 제 2 세트의 각각의 휠은 허브 모터(220)에 의해서 개별적으로 구동된다. 휠들의 제 1 세트는 로드 핸들링 디바이스의 차체의 전면에 있는 휠들의 쌍 및 로드 핸들링 디바이스의 차체의 후면에 있는 휠들의 쌍을 포함한다. 휠들의 유사한 쌍들이 휠들의 제 2 세트에 대해서도 존재하고, 즉 휠들의 제 1 및 제 2 쌍은 로드 핸들링 디바이스의 차체의 양측에 있다. 동작 시에, 휠들의 쌍은 그들이 "가상 또는 가상의(virtual or imaginary)" 차축 상에서 구동되는 것처럼 구동된다. 예를 들어, 휠들의 전면 쌍은 동일한 차축 상에서 구동되는 것처럼 동기되어 구동되고, 및 휠들의 후면 쌍은 이들이 동일한 차축 상에서 구동되는 것처럼 동기되어 구동된다. 휠들의 제 2 세트가 개별적인 허브 모터에 의해서 구동된다고 해도, 동일한 원리가 휠들의 제 2 세트에도 적용된다. 이와 동일하고 본 발명에 적용될 수 있는 것은 휠들의 제 1 세트의 네 개의 휠 모두가 동기되어 구동되는 경우이다. 이와 유사하게, 휠들의 제 2 세트의 네 개의 휠 모두도 동기되어 구동될 수 있다. 휠 어셈블리의 휠들을 허브 모터에 의해서 개별적으로 구동하는 것의 장점은, 휠로 전달되는 토크가 횔들 각각에 대해서 상이하게 분배될 수 있다는 것이고, 이것은 휠이 미끄러지는 중에는 특히 중요하다.
모터 제어 프로파일 또는 보상된 총 토크 수요로부터 유도된 토크는 바이어싱 메커니즘(biasing mechanism; 216)에 의해서 휠 어셈블리의 휠들 사이에서 분배된다. 바이어싱 메커니즘(216)은 총 토크 수요를 격자 구조체 상에서의 로드 핸들링 디바이스의 임의의 하중 전달을 고려하도록 전면 및 후면 "차축들" 사이에서 "분할(split)"하거나 나눈다. 예를 들어, 로드 핸들링 디바이스가 격자 구조체 상에서 가속하고 있으면, 계산된 총 토크 수요 중 더 큰 비율이 전면 "차축"으로 전달된다. 반대로, 로드 핸들링 디바이스가 격자 구조체 상에서 감속하고 있으면, 총 토크 수요는 후면 "차축"에 더 많이 전달된다. 따라서, 바이어싱 메커니즘 제 1 및 후면 "차축"으로 전달되는 양을 변경시켜, 격자 구조체 상에서 가속 또는 감속할 때에 로드 핸들링 디바이스의 무게를 이에 따라서 로드 핸들링 디바이스의 전면부 및 후면부 사이에 전달한다.
바이어싱 메커니즘(216)은 휠, 더 구체적으로는 모터 구동 휠들에 모션 제어 프로파일의 궤적 가속 레퍼런스에 따라서 차동 토크 수요를 적용한다. 모션 제어 프로파일의 궤적 가속 레퍼런스 및/또는 궤적 속도 레퍼런스는 로드 핸들링 디바이스가 격자 구조체 상에서 가속 또는 감속하고 있는지 여부에 대한 표시 또는 레퍼런스 포인트를 제공한다. 다르게 말하면, 휠들에 적용된 차동 토크는 모션 제어 프로파일의 궤적 가속 레퍼런스를 따라가고, 즉 토크를 휠들에 분배한 것과 모션 제어 프로파일의 궤적 가속 레퍼런스 사이에는 비례적인 관계가 존재한다. 모션 제어 프로파일 생성기로부터의 가속하라는 것을 표시하는 신호에 응답하여, 바이어싱 메커니즘은 계산된 총 토크 수요 중 더 많은 것을 전면 차축으로 전달하고, 반대로, 감속하도록 지시받는 경우에는, 총 토크 수요 중 더 많은 것이 후면 차축으로 천이되며, 또는 "제동"력을 제공하기 위해서 총 토크 수요가 감소된다. 이와 동일하게, 격자 구조체 상에서 주행중일 때에는, 총 토크 수요가 전면 및 후면 "차축" 사이에서 실질적으로 동등하게 분할된다.
전면 및 후면 "차축"에 적용된 차동 토크와 함께, 휠 모터로 전달되는 토크 수요도, 격자 구조체 상의 로드 핸들링 디바이스의 요현상(yawing) 또는 선회(turning)를 제어하기 위해서 로드 핸들링 디바이스의 차체의 양측에서 제어될 수 있다. 예를 들어, 격자 구조체 상의 로드 핸들링 디바이스의 이동 방향에 의존하여, 토크 수요는 휠들의 좌측 또는 우측 세트의 속도를 제어하기 위하여 사용될 수 있고, 이를 통하여 격자 구조체 상의 로드 핸들링 디바이스의 요현상 각도 또는 선회각을 제어한다. 이상적으로, 횡방향으로 또는 X-Y 방향으로 연장되는 격자 부재들의 배열체에서, 로드 핸들링 디바이스가 트랙 위에서 요현상 또는 선회하는 것을 방지하도록, 즉 실질적으로 직선으로 이동하도록 좌측 및 우측 휠으로 전달되는 차동 토크가 제어된다.
모션 제어 프로파일을 구동 메커니즘을 구동하기 위한 제어 신호로 전환하는 것에 추가하여, 바이어싱 메커니즘(216)은 트랙 위에서의 휠의 슬립을 제어하고, 로드 핸들링 디바이스에 장착된 하나 이상의 위치 센서 및/또는 하나 이상의 위치 트랙 센서로부터 위치 신호를 수신하는 것에 응답하여 모션 제어 프로파일을 주기적으로 보상하기 위해서도 구성될 수 있다. 트랙 위의 휠들의 제 1 및 제 2 세트 중 임의의 것의 슬립을 결정하기 위해서 하나 이상의 위치 센서가 더 사용될 수 있다. 이것은 도 17에서 위치 제어기 내의 별개의 슬립 컴포넌트(218)로서 도시된다. 휠의 슬립은 휠들 중 임의의 것의 회전 속도가 격자 구조체 상의 로드 핸들링 디바이스의 운동학적 상태보다 클 경우에 일어난다. 격자 구조체 상기 로드 핸들링 디바이스의 운동학적 상태는 시간의 함수로서 하나 이상의 위치 센서의 제 1 도함수로부터 결정되거나 유도될 수 있고, 예를 들어 제 1 또는 제 2 "제 5" 휠의 회전 속도는 로드 핸들링 디바이스가 제 1 방향 또는 제 2 방향으로 이동하고 있는지 여부에 따라 달라진다. 휠들의 제 1 및 제 2 세트의 각각의 휠의 개별적인 회전 속도는 각각의 휠에 인접하게 배치된 하나 이상의 휠 인코더에 의해서 결정된다. 하나 이상의 휠 인코더는 휠의 회전 속도를 표시하는 펄스를 생성하는 회전식 전기기계 디바이스를 포함하는 증분 인코더일 수 있다. 본 발명의 특정 실시형태에서, 슬립 제어 관리자는 격자 구조체 상의 로드 핸들링 디바이스의 이동 방향에 의존하여 휠들의 회전 속도를, 제 1 "제 5" 휠 또는 제 2 "제 5" 휠로부터 결정된 격자 구조체 상의 로드 핸들링 디바이스의 운동학적 상태와 개별적으로 비교함으로써 휠 어셈블리의 휠들 각각의 슬립을 관리한다. 본 발명의 특정 실시형태에서, 슬립 제어 관리자는 도 17의 위치 제어기의 개략적인 블록도에 도시된 바와 같이 위치 제어기 내에 상주한다.
휠들 중 임의의 하나의 회전 속도가 격자 구조체 상의 로드 핸들링 디바이스의 운동학적 상태보다 크면, 슬립 제어 관리자는 해당 휠의 회전 속도가 로드 핸들링 디바이스의 운동학적 상태를 따라잡을 때까지 해당 휠로 전달되는 토크 수요의 바이어싱을 제어함으로써, 해당 휠로 전달되는 토크를 제거하거나 감소시킨다. 예를 들어, 바이어싱 메커니즘을 통해서 위치 제어기는 미끄러지는 휠에 대한 토크 수요를 변경하고, 즉 미끄러지는 휠의 회전 속도를 감소시키기 위해서 토크 수요를 감소시키거나, 심지어 해당 휠에 대한 토크 수요를 전체적으로 제거할 수 있으며, 즉 휠의 회전은 더 패시브하게 된다. 대안적으로, 격자 구조체 상의 로드 핸들링 디바이스의 운동학적 상태와 매칭되도록 휠 어셈블리의 휠들의 속도를 밸런싱하기 위해서, 슬립 제어 관리자는 토크를 미끄러지는 휠로부터 다른 휠로 재분배할 수 있다.
도 17에 도시되는 아키텍처가 오직 예시적인 것이 의도되고, 위치 제어의 컴포넌트들의 다른 구성도 본 발명의 범위에 속한다는 것이 이해되어야 한다. 예를 들어, 위치 제어기는 모션 제어 프로파일 또는 궤적을 생성하기 위해서 제어기 내에 통합될 수 있고, 또는 대안적으로 이들은 별개의 제어기일 수도 있다.
3.0 궤적의 생성
궤적 또는 모션 제어 프로파일의 생성은, 궤적 세그멘트들을 서로 "이어붙이면(stich)" 가속도 및 속도가 명령된 위치에서 실질적으로 0이 되도록, 궤적 세그멘트들의 개수 및 지속시간을 제어하는 것을 수반한다. 본 발명에 따르면, 궤적 세그멘트를 생성하는 것은, 궤적 내에서 하나 이상의 상황을 식별하는 것 또는 궤적의 하나 이상의 조건이 만족되는 것에 따라서 하나 이상의 저크 레퍼런스를 적용하는 것에 의존한다. 이러한 상황은 제약 및/또는 명령된 위치 중 하나 이상에서의 변경일 수 있다. 궤적을 생성할 때에, 궤적 생성기는 궤적이 그 현재 포인트에서 시작해서 그 종점에 도달하기 위해서는 어떤 궤적 세그멘트가 요구되는지에 대해서 판정할 수 있어야 한다. 이러한 상황을 식별할 때에, 생성기는 현재 궤적 포인트와 무관하게 이러한 의사결정 프로세스를 수행할 수 있어야 하는데(즉 궤적을 생성함), 그 이유는 이것의 입력(특히, 명령된 위치이지만 꼭 이것만은 아님)이 임의의 시간에 변할 수 있기 때문이다. 예를 들어, 명령된 위치는 제 5 휠 및/또는 격자 센서로부터의 피드백에 기반하여 격자 셀을 통과하는 동안에 개략적으로 수정된다.
궤적이 종단되거나 여전히 진행중인지 여부에 따라서, 그 가장 간단한 형태에서 생성기에게 궤적을 재생성하라고(즉 자신의 입력을 수정함으로써) 요청한 결과는 다음을 각각 포함하는 하나 이상의 궤적 세그멘트를 생성하는 것을 수반한다:
- 이러한 시점부터 계속 적용될 조작 변수의 값,
- 조작된 값을 적용할 시간 길이(즉 궤적 세그멘트의 지속기간 - 천이 시간), 및
- 세그멘트의 종점(이것이 캐싱하기에 유용한 정보이기 때문임).
결과적으로, 이미 진행중인 궤적 세그멘트는 재생성된 궤적 세그멘트에 의해서 대체될 것이고, 또는 그렇지 않으면 궤적이 종단되었으면 진행중인 궤적 세그멘트가 될 것이다.
조작 변수의 값은, 궤적을 재생성하라는 요청 이전의 그 값과 무관하게 임의의 값을 취할 수 있다(후술되는 규칙 내에서). 유한 저크 궤적(S-곡선 궤적)의 경우, 궤적 세그멘트의 개수는 모션 제어 프로파일의 상이한 스테이지 도중에 가속도의 크기를 증가 또는 감소시키기 위해서 하나 이상의 저크 제약을 적용함으로써 제어된다. 본 발명을 쉽게 설명하기 위하여, 저크 제약은 가속 페이즈(양의 가속도) 및 감속 페이즈(음의 가속도)에서 적용된다. 가속 페이즈는 궤적 속도 레퍼런스가 증가하고 있는 궤적에 대응한다. 반대로, 감속 페이즈는 궤적 속도 레퍼런스가 감소하고 있는 궤적에 대응한다. 따라서, 가속 페이즈에서 가속도를 변경하기 위한 저크 제약들의 세트 및 감속 페이즈에서의 저크 제약들의 세트가 존재한다. 이들은 다음과 같이 요약된다:
가속 페이즈
저크 1 - 속도를 증가시키고 싶을 때에는 가속도의 크기를 증가시킨다.
저크 2- 속도를 시키고 싶을 때에는 가속도의 크기를 감소시킨다.
감속 페이즈
저크 3 - 속도를 감소시키고 싶을 때에는 가속도의 크기를 증가시킨다.
저크 4 - 속도를 감소시키고 싶을 때에는 가속도의 크기를 감소시킨다.
저크 1, 저크 2, 저크 3, 및 저크 4는 각각 J1, J2, J3, 및 J4라고도 불릴 수 있다. 본 발명의 특정 실시형태에서는 0이 아닌 네 개의 저크 제약들이 사용된다. 저크 1 및 저크 2는 가속 페이즈에서 가속도를 증가 및 감소시키기 위해서 각각 사용되고, 저크 3 및 저크 4는 감속 페이즈(감속)에서 가속도의 크기를 증가 및 감소시키기 위해서 각각 사용된다. 본 발명의 특정 실시형태에서, 궤적이 가능한 최단 시간 안에 명령된 위치에 도달하는 것, 즉 가속도 및 속도가 소망되는 명령된 위치에서 실질적으로 0이 되는 것을 목적으로, 모션 제어 생성기는 하나 이상의 스위칭 패턴에서 저크 1 및 저크 2 사이에서 스위칭하여 가속 페이즈 내의 궤적 세그멘트의 개수 및 지속기간을 제어하고, 하나 이상의 스위칭 패턴에서 저크 3 및 저크 4 사이에서 스위칭하여 모션 제어 프로파일 내의 궤적 세그멘트의 개수 및 지속기간을 제어하도록 구성된다. 가속 페이즈에서 소망되는 가속도를 또는 감속 페이즈에서 소망되는 감속도를 유지하기를 원하는 경우에는 제로 값의 저크 제약이 사용된다.
본 발명의 특정 실시형태에서, 저크 제약 1, 2,3 및 4의 절대 값은 동일하고, 모션 제어 생성기는 가속 페이즈에서 가속도의 크기를 증가하거나 감소시키고 싶을 경우에는 부호 S(+ 또는 -)를 스위칭하도록 구성된다. 양의 부호, "+"는 가속도의 크기를 증가시키고 싶을 때에 사용되고, 음의 부호 "-"는 가속도의 크기를 감소시키고 싶을 때에 사용된다. 선택된 저크 1, 2, 3 및 4의 절대 값은 격자 구조체 상에서 넘어지거나 뒤집히지 않고서 가속도의 급격한 변화를 견딜 수 있는 로드 핸들링 디바이스의 능력에 따라 달라지는데, 이것은 격자 구조체 상의 로드 핸들링 디바이스의 안정성에 의존한다. 상대적으로 낮은 무게 중심을 가지는 매우 안정한 로드 핸들링 디바이스의 경우, 로드 핸들링 디바이스는 상대적으로 덜 안정한 로드 핸들링 디바이스와 비교할 때 훨씬 더 높은 저크를 견딜 수 있다. 단일 격자 셀의 점유공간을 가지는 로드 핸들링 디바이스의 경우, 저크의 절대값은 로드 핸들링 디바이스가 쓰러지거나 넘어지지 않고서 제약에 의해 정의된 최대 속도까지 소정의 속도로 증가할 수 있도록 선택된다. 본 발명의 특정 실시형태에서, 저크의 절대 값은 20 m/s3이다. 따라서, 저크 1 및 2는 각각 +20m/s3 및 -20m/s3의 값을 가질 것이다. 이와 유사하게, 저크 3 및 저크 4는 +20m/s3 및 -20m/s3 각각의 값을 가질 것이다. 그러나, 저크 1, 2, 3, 및 4는 다수의 궤적 세그멘트를 제어하기 위해서 동일한 값을 가져야 하는 것은 아니다. 저크 제약은 상이한 절대 값을 가질 수 있다. 대안적으로, 저크 제약은 가속 페이즈 및 감속 페이즈 양자 모두에서 가속도의 크기를 각각 증가 또는 감소시키기 위해서 사용되는 두 가지 값일 수 있다.
전술된 바와 같이, 일부 예들에서, 저크 제약의 값은 로드 핸들링 디바이스 및 로드 핸들링 디바이스의 컨테이너 수용 공간 내에 위치된 임의의 보관 컨테이너 및 콘텐츠의 총 질량에 의존할 수 있다.
모션 제어 프로파일의 생성할 때에, 저크의 값은 궤적을 재생성하라는 요청 이전의 그 값과 무관하게 위에서 논의된 저크 제약 중 임의의 것 사이에서 스위칭할 수 있다. 예를 들어, 궤적이 가속 페이즈에 있고(즉, 속도를 명령된 속도까지 램핑 업함), 명령된 위치가 시작 위치로 다시 조절되면, 생성기는 궤적을 감속하는(즉 속도를 0까지 램핑 다운함) 새로운 궤적 세그멘트(들)를 즉시 생성하여야 한다; 궤적이 가속 페이즈에 있었다는 사실은 궤적을 감속하기 위한 새로운 궤적 세그멘트를 생성하는 의사결정에 아무런 영향도 조지 않는다.
다른 예: 궤적 속도 이미 명령된 속도 한계에 있고 궤적 위치가 여전히 명령된 위치로부터 멀리 있다면, 그러면 명령된 또는 제약 속도(의 값)가 증가되고 궤적 생성기 입력의 제약들 중 다른 모든 것이 변하지 않고 남아 있다면, "가능한 최단 시간"의 요구 사항을 이행하기 위해서, 궤적 생성기는 명령된 위치의 새로운 값에 의존하여, 증가된 궤적 속도에서 시작해서 가능하게는 새로운 명령된 속도 값에 도달할 때까지 진행해야 한다. 속도 제약 또는 명령된 속도를 증가시키라는 명령 이전에 궤적이 등속 페이즈에 있었다는 사실은 이러한 결정에 아무런 영향을 주지 않는다.
궤적을 생성하는 것은, 궤적이 그 현재 포인트로부터 시작하여 소망되는 목적지(명령된 위치일 수 있음)에 도달할 수 있도록, 주어진 시간에 궤적의 상황 또는 상태를 구축하고, 해당 시간에 궤적의 상황에 의존하여 하나 이상의 궤적 세그멘트를 생성하는 것을 수반한다. 궤적은 다수의 궤적 세그멘트를 포함할 수 있고, 각각의 궤적 세그멘트는 궤적 또는 모션 제어 프로파일을 함께 나타내는 각각의 궤적 세그멘트 종점을 가진다. 본 발명의 목적을 달성하기 위하여, 용어 "종점"은 주어진 궤적 세그멘트의 끝에서의 궤적 포인트를 반영한다.
주어진 시간 안에 궤적의 상황을 구축하는 프로세스는, 소거 프로세스를 통한 의사결정 프로세스에 의해서 이루어지는데, 여기에서는 답변 중 하나가 새로운 생성기 입력 값을 수용하기 위해서 동작의 어떤 다음 코스가 취해져야 하는지를 분명하게 밝힐 때까지 일련의 질문이 특정 순서로 제어기 또는 제어 시스템에 제어기에 가해진다. 전술된 첫 번째 예에서, 명백한 동작 코스는 하나 이상의 궤적 세그멘트를 생성함으로써 속도를 제로까지 램핑 다운하는 것을 시작하는 것인데, 그 이유는 이것이 오래 걸릴수록 궤적이 그 소망되는 위치로부터 멀리 이동할 것이기 때문이다. 두 번째 예에서, 명백한 동작 코스는 속도를 증가시키는 것인데, 그 이유는 이렇게 하지 않으면(즉 등속을 유지하면) 궤적이 그 소망되는 위치에 도달하는데 오래 걸릴 것이기 때문이다.
궤적을 생성하는 프로세스에서, 생성기는 다수의 궤적 세그멘트를 생성할 수 있는데, 이러한 경우에 이것은 첫 번째 것을 사용하고 나머지는 후속 사용을 위해서 캐싱할 수 있다. 다수의 궤적 세그멘트 각각은 하나 이상의 속도 천이를 나타낼 수 있다. 간단히 말하자면, 저크 제약을 사용하는 궤적 방정식을 적용함으로써 궤적을 시작점(p0, v0, a0)으로부터 종점(pe, ve, ae)까지 보내기 위해서 단일 궤적 세그멘트를 생성하는 것은 적절하지 않을 수 있는데, 그 이유는 궤적이 명령된 위치로부터 가속하고 있을 수 있고 궤적이 궤적을 명령된 위치를 향해서 제자리로 되돌려두도록 요구되고 있기 때문이고 및/또는 궤적을 오버슈트가 없이 명령된 위치로 보내기에는 궤적이 너무 많이 가속되고 있을 수 있기 때문이다. 이러한 조건들 모두는 소망되는 최종 값 vf로 천이할 때에 고려되어야 하고, 이것은 다수의 궤적 세그멘트를 생성하는 것을 포함할 수 있다. 궤적이 명령된 위치까지의 점대점 이동이고 제어 시스템이 명령된 위치에서의 최종 속도 값이 실질적으로 0이 되도록 점대점 이동을 위한 궤적을 생성하도록 명령된다는 점에서, 소망되는 최종 값 vf는 실질적으로 0일 수 있다. 궤적을 재생성하라는 새로운 요청이 생길 때마다(역시 생성기의 입력에 대한 변경의 결과로서), 생성기는 캐싱된 모든 궤적 세그멘트를 지워야 하는데, 그 이유는 이들이 새로운 생성기 입력에서는 무효가 될 수 있기 때문이다; 궤적을 스스로 재생성하는 동작은 새로운 궤적 세그멘트를 재계산할 것이다.
후속하는 섹션들과 도 18에 도시되는 흐름도(300)는 공동으로 본 발명의 일 실시형태에 따르는 유한-저크 궤적을 생성하는 것과 연관된 의사결정 프로세스를 개략적으로 보여준다. 각각의 섹션은 일련의 질문(진한 글씨)-- 답변을 생성하기 위해서 수행되는 논리적 점검을 나타냄 -- 및 질문에 대한 답변에 따라서 취해져야 하는 동작 코스의 형태로 조직화된다. 각각의 동작 코스는 19 내지 도 26에 도시되는 흐름도에 의해서 표현된다. 질문 각각은 동작 코스를 적용하기 이전에 현재 궤적이 처한 상황을 구축하는 것을 목적으로 한다. 궤적을 생성할 때의 일련의 질문은 다음과 같다:
A) 강제 감속이 진행 중인가(또는 방금 요청되었나)(302)?
강제 감속은, 예를 들어 명령된 위치에 변경이 있었고, 궤적이 업데이트된 명령된 위치에 도달하기 위해서 상이한 궤적 세그멘트가 생성될 필요가 있는 경우, 즉 궤적이 더 빨리 종단되도록 요청된 경우에 적용된다. 프로세스는 더 상세히 후술되는 강제 감속 알고리즘을 사용하여 업데이트된 명령된 위치에 도달하기 위한 감속 궤적 세그멘트를 찾는데, 즉 가속도 및 속도는 업데이트된 명령된 위치에서는 실질적으로 제로이다. 궤적이 오버슈트가 없이 그리고 명령된 감속을 초과하지 않으면서 업데이트된 명령된 위치에 도달하도록 감속 궤적을 선택하는 것은, 새로운 제약을 포함하지만 이들로 한정되는 것은 아는 새로운 입력을 생성하는 제어기 시스템으로 하여금 궤적의 더 많은 강제 감속을 허용할 것을 요구할 수 있다. 후술되는 강제 감속 시에 진술되는 바와 같은 방법론은 강제 감속 제약을 궤적에 적용하는 것을 수반한다. 일부 경우에, 궤적의 적절한 감속 제약을 결정하기 위하여 알고리즘, 특히 근 탐색 알고리즘이 적용될 수 있다. 목적 함수는 감속이 선택된 감속 제약 하에 수행된다면 궤적이 경험할 업데이트된 명령된 위치로부터의 오버슈트의 정도이고, 근은 목적 함수가 실질적으로 0이 되는 감속이다. 알고리즘은 근에 대한 더 정확한 근사화를 연속적으로 생성하는데, 이것은 궤적이 업데이트된 명령된 위치에 도달할 수 있기 위한 감속 값에 대응한다. 예를 들어, 감속 페이즈 내의 궤적은 이전에 요청된 명령된 위치보다 더 근접한 새로운 명령된 위치에 도달하도록 요청될 수 있다. 강제 감속 알고리즘을 적용할 경우, 본 발명에 따른 속도 천이 알고리즘이 속도 레퍼런스를 초기 시작점으로부터, 실질적으로 0인 크기를 가지는 소망되는 최종 속도 vf로 천이시키기 위해서 수행될 수 있다. 속도의 크기를 초기 값으로부터 이러한 경우에는 실질적으로 0인 소망되는 최종 속도 vf로 천이시키는 것은, 시작점의 상황 또는 궤적의 현재 상황에 의존하여 하나 이상의 궤적 세그멘트를 생성하는 것을 수반할 수 있다.
질문 A에 대한 답변이 예이면(303),다음의 강제 감속 섹션에서 설명되고 도 34a 및 도 34b에 도시되는 방법론을 따라서 궤적을 명령된 위치까지 보내기 위한 요구된 궤적 세그멘트를 생성한다; 그렇지 않으면, 궤적의 상황이 존재하지 않으면(즉, 강제 감속이 진행중이지 않고 요청된 바 없다면), 제어 시스템은 다음 질문으로 이동한다.
B) 현재 궤적 가속도(의 절대값)가 명령된 가속도를 초과하나(304)?
이러한 상황에서, 현재 궤적 가속도의 절대 값은 명령된 가속도(가속 제약)와 비교된다. 현재 궤적 가속도의 절대 값이 명령된 가속도보다 크면, 궤적 가속도의 크기가 명령된 가속도까지 감소되게끔 새로운 궤적 세그멘트가 계산되도록 요구된다. 이러한 상황에서, 궤적 가속도를 감소시키기 위해서 하나 이상의 저크 값이 궤적에 적용되는데(도 20을 참조한다), 즉 가속 레퍼런스의 종점은 명령된 가속도와 등가인 감소된 종점 가속도를 가진다. 궤적 가속도가 명령된 가속도로 감소될 때까지, 궤적 가속도의 크기는 저크가 적용될 때마다 명령된 가속도와 비교된다. 이것은 시작점(p0, v0, a0) 및 종점(pe, ve, ae)을 가지는 아래의 궤적 세그멘트 생성에 의해서 예시된다:
- 사용된 조작 변수(저크) 값은 J = J2(궤적 가속 레퍼런스)이다.
- 궤적 세그멘트 지속기간은 에 의해 주어진다,
- 종점 가속도 ae 및 종점 속도 ve 및 종점 위치 pe는 궤적 방정식 3, 4, 및 5를 시작점(p0, v0, a0), J2, 및 세그멘트 지속기간 T를 사용하여 직접 적용함으로써 획득된다.
상황이 현재 궤적 가속도가 명령된 가속도를 초과하지 않는 것이면, 제어 시스템은 다음 질문으로 이동한다.
C) 궤적이 지금 즉시 시작하여 정지 위치(제로 속도 & 가속도)로 보내져야 한다면, 이러한 정지 위치가:
a) 명령된 위치와 본질적으로 같은지(즉 최대 0.5 위치 단위인지)(306)?
b) 궤적의 현재 위치가 있는 곳으로부터 명령된 위치의 반대편에 있는지(308)(즉 오버슈트)?
c) 궤적의 현재 위치가 있는 곳보다 명령된 위치로부터 더 멀리 있는지(310)?(즉 명령된 위치로부터 멀어지게 이동하고 있는지)?
궤적 가속도의 크기가 명령된 가속도를 초과하지 않는 것을 알고 있으면, 제어 시스템은 궤적이 멈춰지게 된다면 궤적이 명령된 위치에 있는지를 점검한다. 이것은 궤적이 명령된 위치로부터 얼마나 멀리 있는지 또는 이것이 명령된 위치를 오버슈트할 것인지 여부에 대한 표시를 더 제공할 것이다. 일련의 질문이 제어 시스템에게 제기되고, 소거 프로세스를 통하여, 현재 상태에서의 궤적의 상황이 구축될 수 있고, 궤적이 점대점 이동의 코스에 있다는 것을 보장하기 위해서 요구된 교정이 궤적에 적용될 수 있다.
질문 (a)에 대한 답변이 예이면, 제어 시스템은 현재 궤적 포인트(p0, v0, a0)로부터 종점까지의 하나 이상의 궤적 세그멘트를 생성함으로써 궤적이 명령된 위치에서 정지 위치가 되도록, 제로 속도까지 램핑 다운하기 위한 필요한 단계들을 수행하는데, 여기에서 종점 가속도 ae 및 종점 속도 ve는 명령된 위치에서 실질적으로 0이다(도 21을 참조한다). 이것은 시작점(p0, v0, a0) 및 종점(pe, ve, ae)을 가지는 단일 아래의 단일 궤적 세그멘트의 생성에 의해서 예시된다:
- 사용된 조작 변수(저크) 값은 J = J2(궤적 가속 레퍼런스)이다.
- 궤적 세그멘트 지속기간은 에 의해 주어진다,
- 종점 가속도 ae 및 종점 속도 ve는 실질적으로 0이고, 종점 위치 pe는 궤적 방정식 3, 4, 및 5를 시작점(p0, v0, a0), J2, 및 세그멘트 지속기간 T를 사용하여 직접 적용함으로써 획득된다.
그러나, 질문 (a)에 대한 답변이 '아니오'이지만 마지막 두 가지 질문인 (b) 및 (c)에 대해서 '예'이면(308, 310)(도 22 및 도 23 참조), 상황은 궤적이 명령된 위치를 오버슈트하고 있는 것이다. 그러면, 교정 동작은 궤적 속도를 "리버스(reverse)" 값이 되게 해서 궤적이 명령된 위치를 향해서 "역진(reversing back)"함으로써 복원될 수 있게 하는 것일 것이다. 명령된 위치를 향한 순방향 궤적의 경우와 같이, 역진으로 동작하는 로드 핸들링 디바이스와 같은 모티브(motive) 디바이스가 명령된 위치를 향해서 이동하게 되도록, 하나 이상의 저크 값을 적용함으로써 하나 이상의 역진 궤적 세그멘트들이 제공된다. 역진 궤적 세그멘트의 지속기간 또는 길이는 명령된 위치로부터의 오버슈트의 정도에 의존한다. 예를 들어, 오버슈트의 정도가 크면, 궤적은 명령된 위치에서 0까지 램핑 다운되기 이전에 명령된 속도에 도달하기 위해서 충분한 시간을 가질 것이다. 반대로, 오버슈트의 정도가 짧으면, 궤적 속도는 명령된 속도에 도달하지 않을 수 있고, 따라서, 역진인 궤적이 명령된 위치에 가능한 최단 시간 내에 도달할 소망되는 피크 vpeak가 요구된다. 양자 모두의 경우에, "속도 천이 알고리즘"이 속도의 크기를 초기 값 또는 현재 값으로부터 최종 값 vf로 천이시키기 위해서 적용된다. 속도 천이 알고리즘은 더 상세히 후술될 것이다. 본질적으로, 궤적을 초기(현재) 상태 또는 궤적 포인트로부터 소망되는 피크 vpeak에 대응하는 주어진 궤적 세그멘트의 종점 속도 vE에 도달되는 궤적 포인트로 이동시키기 위해서 제 1 속도 천이 알고리즘이 적용된다. 여기에는 궤적 가속 레퍼런스의 크기를 증가 또는 감소시키기 위해서, 초기 궤적 포인트(p0, v0, a0), 종점(vE), 명령된 가속도(amax) 및 저크 제약의 특정한 값이 제공된다. 제 1 천이 알고리즘의 종점(pE, vE, aE)을 시작점(p0, v0, a0)에 할당하기 위하여, 제 2 천이 알고리즘이 속도 레퍼런스의 크기를 소망되는 피크 vpeak에 대응하는 초기 속도 v0로부터 소망되는 최종 속도 vf에 대응하고 실질적으로 0인 값을 가지는 새로운 종점 속도 vE 및 실질적으로 0에 대응하는 종점 가속도 aE로 이동시킨다. 천이 알고리즘의 추가적인 세부사항은 후술된다. 궤적이 명령된 위치로부터 멀어지게 이동 중이면, 천이 알고리즘을 명령된 위치에서의 소망되는 최종 속도 vf에 적용하기 이전에, 현재 궤적 가속도의 크기를 실질적으로 0까지 램핑 다운할 필요가 있다. 도 23에 도시되는 흐름도에 도시된 바와 같이, 명령된 위치에서의 실질적으로 0인 소망되는 최종 속도 vf에 역진을 적용하기 이전에, 궤적 가속도의 크기는 실질적으로 0까지 램핑 다운된다.
그러나, 세 가지 질문 모두에 대한 답변이 '아니오'이면, 상황은, 제로 속도까지 즉시 램핑 다운함으로써 궤적이 명령된 위치를 언더슈트하게 하는 것일 것이다. 이러한 상황에서, 제어 시스템은 다음 질문으로 진행하고, 궤적 생성의 다음 스테이지를 구축한다.
D) 궤적이 명령된 속도를 초과하나(312)?
본 발명의 일 실시형태에 따르면, 모션 제어 프로파일의 생성은, 로드 핸들링 디바이스가 명령된 위치를 오버슈트하게 하지 않고서 로드 핸들링 디바이스가 격자 구조체 상에서 가속 페이즈 동안에 가능한 최대 속도를 획득할 수 있는 것에 의존한다. 반대로, 속도가 너무 낮으면 로드 핸들링 디바이스가 명령된 위치를 서 언더슈트할 것이다. 그러나, 로드 핸들링 디바이스가 이동할 수 있는 피크 또는 최대 속도는, 위에서 논의된 최대 속도 한계 제약 또는 명령된 속도 중 하나에 의해서 정의되는 것으로 매우 한정된다. 구동 메커니즘의 명령된 속도에 더 가까운 피크 속도 vpeak에 도달할 수 있는 능력은 격자 구조체 상에서의 이동 길이에 따라 달라진다. 이동 길이가 길면, 감속 페이즈에 진입하기 속도가 이전에 명령된 속도에 도달하기 위한 충분한 시간이 존재한다. 이동 길이가 짧으면, 명령된 위치를 오버슈트하지 않고서 감속 페이즈에 진입하기 이전에 속도가 명령된 속도에 진입하기에 충분한 시간이 존재하지 않을 것이다.
점대점 이동을 완성하기 위한 가능한 최단 시간을 제공하기 위해서, 제어기는 언제나 제약에 의해서 정의된 명령된 속도에 도달하는 것을 목적으로 한다. 이동 길이가 너무 짧은 경우에는 명령된 속도에 도달하는 것이 가능하지 않을 수도 있다. 로드 핸들링 디바이스가 명령된 속도에 도달해야 하는 상황에서는, 로드 핸들링 디바이스가 명령된 위치를 오버슈트할 것이다. 따라서, 로드 핸들링 디바이스가 가능한 최단 시간 내에 궤적을 완료하게 하는, 로드 핸들링 디바이스가 명령된 속도와 초기 속도 v0 사이에서 도달할 수 있는 최적 피크 속도 vpeak를 선택하는 것이 요구된다.
이러한 특정 상황에서, 제어 시스템은 궤적 속도가 명령된 속도를 초과하는지 여부를 판정한다. 질문 D)에 대한 답변이 예이면(313)(도 24를 참조한다), 제어 시스템은 궤적 세그멘트의 종점이 명령된 속도에 대응하도록 하나 이상의 궤적 세그멘트를 생성함으로써 궤적 속도 레퍼런스의 크기를 명령된 속도까지 낮추기 위해서 속도 천이 알고리즘을 수행한다; 그렇지 않으면 제어 시스템은 다음 질문으로 이동한다. 후술되는 바와 같이, 천이 알고리즘의 원리는, 시작점으로부터 속도의 크기가 최종 속도 vf이고 종점 가속도가 실질적으로 0인 궤적 포인트까지 궤적을 보내기 위해서 요구되는 하나 이상의 궤적 세그멘트를 생성하는 것이다.
명령된 위치를 오버슈트 또는 언더슈트하지 않으면서 궤적이 도달할 수 있는 소망되는 피크 속도 vpeak를 찾기 위해서 근 탐색 알고리즘이 사용된다. 본 발명의 일 실시형태에 따르는 속도 천이 알고리즘은 속도의 크기를 피크 속도 vpeak로 천이시키고, 그 후에 실질적으로 0까지 낮추기 위해서 필요한 궤적 세그멘트들을 생성한다. 목적 함수는 오버슈트 또는 언더슈트의 정도이고, 근은 목적 함수가 실질적으로 0이 되는 소망되는 피크 속도이다.
E) 현재 궤적 속도의 크기가 명령된 속도와 동일한가(314)?
질문 E)에 대한 답변이 아니오이면, 다음 질문 F로 이동한다. 현재 궤적 속도의 크기가 명령된 속도와 동일한 상황에 대해서 답변이 예이면(315)(도 25를 참조한다), 제어 시스템은 등속 페이즈의 나머지에 대한 하나 이상의 궤적 세그멘트를 계산할 것이다. 등속 페이즈 또는 순항(cruise) 페이즈의 나머지에 대한 하나 이상의 궤적 세그멘트를 계산하기 위하여, 제로 속도로 램핑 다운하기 시작할 때에 궤적에 의해 이동된 거리가 계산될 필요가 있을 것이다. 이것은 일반적으로 이전의 질문 중 하나, 특히 위의 질문 C에 답변하는 결과로서 계산될 것이다.
등속 페이즈의 나머지에 대한 하나 이상의 궤적 세그멘트의 지속기간, 및 따라서 등속 페이즈에 있는 동안에 궤적이 여전히 커버할 수 있는 거리는, 제로 속도까지 램핑 다운하기 시작할 때에 궤적에 의해서 이동된 거리를 현재 잔여 거리로부터 감산함으로써 결정된다. 이것은 다음과 같이 설명될 수 있다:
(1) 궤적은 일정 시간 T 동안에 명령된 속도에서 유지될 수 있고, 거기에서 궤적 위치는 △pcruise만큼 진행할 수 있다, 그리고
(2) 시간 T 이후에, 궤적은 천이 알고리즘을 적용함으로써 명령된 속도로부터 제로 속도(즉 vf = 0)까지의 속도 천이를 수행해야 하고, 여기에서 궤적 위치는 추가적으로 △pdecel만큼 이동할 것이다.
(3) 그러므로: 잔여 거리 = △pcruise, + △pdecel
이다
궤적이 그 현재 위치에서 어디에 있는지를 보면, 잔여 거리가 명령된 위치 - 현재 위치(p0)로부터 계산된다.
△pcruise, △pdecel 및 T의 값은 제어 시스템에 의해서 다음과 같이 계산된다:
△pdecel을 찾기 위해서: 속도 천이(2)가 수행될 때에 궤적에 의해서 이동된 거리가 수행된다. 이것은 속도 천이 알고리즘에 의해서 수행되는데, 이것은 자신의 보통 출력인 궤적 세그멘트 + 이동된 거리를 생성한다. 이러한 거리는 감속 페이즈(명령된 속도로부터 제로 속도까지) 도중에 궤적이 얼마나 많이 이동할 것인지, 즉 △pdecel과 등가이다.
수학식 3에 의하여, 제어 시스템은 이제 다음을 계산할 수 있다: △pcruise = 잔여 거리 - △pdecel.
마지막으로, 순항 페이즈에서의 궤적 세그멘트의 지속기간 T가 다음으로부터 결정된다:
여기에서:
△pcruise는 등속 명령에서 이동된 거리이고,
vmax는 명령 속도이다.
등속 페이즈 궤적 세그멘트 지속기간은 거리 △pcruise의 절대 값을 명령된 속도 vmax로 나눔으로써 획득된다. 등속 페이즈 궤적 세그멘트에서의 조작 변수인 저크의 값은 0이다. 궤적 속도가 등속 페이즈 세그멘트 동안에 일정하기 때문에, 제어 시스템은 궤적 가속도의 크기가 이러한 포인트에서 0이라고 단정지을 것이다; 그렇지 않다면, 이전의 질문(C)("속도 오버슈트")에 의해서 수행되는 처리가 정확하게 수행되지 않았고, 이러한 계산이 질문(C)에서의 계산의 점검으로서 사용될 수 있다.
전술된 질문들(A) 내지(E) 모두가 거짓이면, 궤적 속도가 증가될 수 있다고 결정될 수 있다.
소거 프로세스에 의해서, 궤적의 상황은, 궤적이 정지 위치로 이동되면 오버슈트가 생기지 않을 것이고, 이것이 명령 속도 또는 명령 가속도 중 어느 하나를 초과하지 않으며, 이것이 아직 명령 속도에서 이동하고 있지 않다는 결론에 도달할 수 있다. 그러므로, 속도의 크기가 증가될 수 있는 것이 분명하다. 질문들을 이러한 순서로 구성함으로써, 점대점 이동을 위한 가능한 최단 시간이 획득된다.
F) 궤적 속도의 크기가 명령된 속도까지 증가될 수 있는가(316)?
이러한 상황에서 그리고 소거 프로세스를 통하여, 궤적 속도의 크기는 명령된 속도까지 증가될 수 있는 상태에 있다. 여기에서, 제어 시스템은 궤적 속도의 크기가 명령된 속도가 되게 하기 위한 제 1 속도 천이 알고리즘을 적용하고, 그 직후에 궤적을 정지 위치, 즉 속도의 크기가 실질적으로 0인 경우로 이동시키기 위한 제 2 천이 알고리즘을 적용한다. 두 번의 백투백 속도 천이로부터 초래되는 궤적 위치가 명령된 위치를 오버슈트하지 않으면, 이러한 질문에 대한 답변은 예이고(316)(도 26을 참조한다), 이러한 경우에 제 1 천이 계산의 일부로서 생성된 궤적 세그멘트가 즉각적인 솔루션으로서 채택된다.
그러나, 일 궤적 속도가 명령된 위치를 오버슈트하지 않고서는 명령된 속도까지 증가될 수 없으면, 따라서 대응하는 피크 속도 vpeak에 대응하는 소망되는 최종 속도 vf가 요구되는데, 여기에서 궤적 속도는, 제 2 속도 천이가 후속되면 궤적 속도가 명령된 위치에서 정지 위치가 되게 되도록 증가될 수 있다. 본 발명에 따르면, 이것은 최적 피크 속도 vpeak를 찾는 동안에 근 탐색 알고리즘을 목적 문제(objective problem)에 적용함으로써 풀이되는데, 여기에서 후보 피크 속도는 횡좌표이고 오버슈트 거리의 정도는 세로좌표이다. 따라서, 목적 함수 f(t)는 명령된 위치로부터의 편차라고도 알려져 있는 오버슈트 또는 언더슈트의 정도이다. 근은 명령된 속도 vmax 및 초기 속도 v0 사이의 피크 속도 vpeak이고, 여기에서 명령된 위치로부터의 편차는 실질적으로 0이며, 즉 f(t) = 0이다. 근 탐색 알고리즘은 최종 피크 속도 vpeak의 하나 이상의 초기 추측들과 함께 시작하고, 최종 피크 vpeak로의 속도 천이를 달성하기 위해 필요한 궤적 세그멘트를 속도 천이 알고리즘을 적용하여 결정한다. 명령된 위치로부터의 편차 또는 오버슈트는 궤적 방정식 3 내지 수학식 5를 적용함으로써 결정된다. 이것이 근 탐색 알고리즘을 적용할 때 선택된 각각의 피크 vpeak에 대해서 반복된다. 근 탐색 알고리즘의 각각의 반복은 근에 대한 연속적으로 더 정확한 근사화를 생성한다. 이러한 반복은, 이러한 경우에는 피크 속도 선택인 숫자의 시퀀스가 근을 향해 수렴할 때까지, 즉 근의 목적 함수가 실질적으로 0과 같을 경우까지 반복된다. 피크 속도 vpeak 선택에 대한 명백한 후보는 다음이다:
- 초기 궤적 속도의 크기,
- 명령된 속도
- 앞선 두 가지의 가중된 조합.
근 탐색 알고리즘을 적용하는 것의 추가적인 세부사항은 섹션 5.0에서 후술된다. 근 탐색알고리즘은 뉴턴의 근-탐색 방법, 시컨트(secant) 근-탐색 방법, 이등분 근-탐색 방법, 보간-기반 근-탐색 방법, 역-보간-기반 근-탐색 방법, 브렌트의 근-탐색 방법, 부단(Budan)-푸리에-기반 근-탐색 방법, 및 스트룸(Strum)-체인-기반 근-탐색 방법 중 임의의 것일 수 있다. 속도 천이(현재 속도로부터 솔루션의 상단 속도까지)로부터 얻어지는 궤적 세그멘트들은 보유된다.
궤적 또는 모션 제어 프로파일의 생성의 최종 스테이지에 있으면, 속도의 크기는 명령된 속도 또는 속도 제약까지 증가될 필요가 없고, 그러면 궤적을 명령된 위치에서 제로 속도가 되게 하기 위해서 속도 천이 알고리즘(318)이 적용된다.
4.0 속도 천이 알고리즘
유한-저크("S-곡선") 궤적을 생성하는 프로세스는 본 발명에서 속도 천이 알고리즘이라고 불리는 것을 풀이하는 것에 주로 의존한다. 속도 천이 알고리즘은 궤적을 위치 p0, 속도 vo 및 가속도 a0의 초기 궤적 포인트로부터, 최종 가속도의 크기가 실질적으로 0인 상태로 소망되는 최종 속도 vf로 이동시키기 위해서 요구되는 궤적 세그멘트를 결정하는 것에 중점을 두고 있다. 최종 속도 vf는 소망되는 임의의 값일 수 있다. 예를 들어, 로드 핸들링 디바이스가 멈춤 상태가 되도록 명령될 필요가 있는 경우, vf는 실질적으로 0으로 설정될 수 있고, 속도 천이 알고리즘은 궤적을 현재 궤적 포인트로부터 멈춤 상태가 되게 하기 위해 필요한 궤적 세그멘트를 수행할 것이다. 이것은 명령된 가속도(amax)의 제약, 명령된 속도(vmax), 및 하나 이상의 저크 제약(J1, J2, J3, J4)에 노출된다. 설명을 쉽게 하고 속도 천이 알고리즘을 이해하기 위해서, 하나 이상의 저크 제약은 가속도의 크기를 증가시키기 위한 jinc 및 가속도의 크기를 감소시키기 위한 jdec로 명명된다.
속도 천이 알고리즘은 다음 서브-알고리즘들로 나누어진다; 제 1 속도 천이 서브 알고리즘 및 제 2 속도 천이 서브 알고리즘 - 이들 양자 모두는 본 발명에 따른 속도 천이 알고리즘이 완료될 수 있기 이전에 수행될 필요가 있다. 제 1 속도 천이 서브 알고리즘은 궤적의 유효성 또는 상태 및 제 2 속도 천이 서브 알고리즘을 정확하게 적용하기 위해서 하나 이상의 궤적 세그멘트가 필요한지 여부를 점검한다. 제 2 속도 천이 서브 알고리즘은 vf의 값과 무관하게 소망되는 최종 속도 vf로의 천이(속도 천이)를 실제로 수행하는 알고리즘이다. 의심을 피하기 위하여, "속도" 및 "속도 레퍼런스"라는 용어는 동일한 기능을 의미하도록 상호교환가능하도록 사용된다. 이와 동일하게, "가속도" 및 "가속 레퍼런스"라는 용어들은 동일한 기능을 의미하도록 상호교환가능하게 사용된다.
제 2 속도 천이 서브 알고리즘을 적용할 때에, i) 궤적 가속도가 과다하지 않다는 것, ii) 최종 속도 vf로부터 멀리 가속되는 궤적을 다루는 것, 및 iii) 최종 속도 vf의 오버슈트를 다루는 것을 보장하는 것이 필수적이다. 이러한 조건 중 임의의 것이 만족되지 않으면, 제어 시스템은 제 1 서브 속도 천이 알고리즘을 적용하여, 제 2 속도 천이 서브 알고리즘으로 진행하기 이전에 이러한 이상상황(anomalies) 또는 상황을 처리할 하나 이상의 궤적 세그멘트를 생성한다. 다르게 말하면, 속도 천이 알고리즘의 일반적인 경우를 처리하기 위하여, 제어 시스템은 처음에 그러한 세 가지 점검, 즉, 과다한 가속, 잘못된 방향으로의 가속, 및 궤적 속도가 소망되는 최종 속도 vf를 오버슈트하는 것을 수행할 필요가 있다. 이러한 교정 단계를 제공하거나 서브-문제점이 궤적에서 생기는 경우에 이러한 서브-문제점을 해결하기 위한 궤적 세그멘트들을 생성함으로써, 이러한 문제는 제 2 속도 천이 서브 알고리즘이 풀이할 수 있는 간단한 문제로 축소된다.
도 28a 내지 도 28c는 본 발명의 구현된 일 실시형태에 따른 제 2 속도 천이 서브 알고리즘 및 제 2 속도 천이 서브 알고리즘이 구현되기 위해서 필요한 점검을 적용하는 것을 상세히 나타내는 흐름도를 도시한다.
하나 이상의 궤적 세그멘트를 생성하는 것의 출력 변수는 저크 값 J, 및 궤적 세그멘트의 시간 지속기간 T이다. 속도 천이 알고리즘을 설명하기 위하여, 소망되는 최종 속도 vf와 주어진 시점 에서의 v0 사이의 차이로서 정의되는 속도 델타 △v가 궤적의 상황을 평가할 때에 사용될 것이다. 속도 또는 속도 델타 △v의 값은 궤적 중 어디에 본 발명에 따른 속도 천이 알고리즘이 적용되고 있는지에 따라서 변할 수 있다. 이것은, 속도 레퍼런스 v(t)가 궤적 중 어디에서 속도 레퍼런스가 취해지는지, 즉 소정 궤적 포인트에서의 속도 궤적의 값에 따라 달라지기 때문이다. 바람직하게는, 속도 델타는 소망되는 최종 속도 레퍼런스 및 하나 이상의 궤적 세그멘트의 초기 또는 종점 속도 레퍼런스 사이의 차이에 기반한다.
이러한 프로세스는 궤적 세그멘트의 출력 목록을 초기화하고, 상태가 속도 천이 알고리즘을 시작하기에 맞는지 여부를 결정하는 것으로부터 시작된다.
4.1 제 1 속도 천이 서브 알고리즘의 적용
그러나, 제 2 속도 천이 서브 알고리즘은 특정 조건이 만족되지 않으면 또는 해결해야 할 이상상황 또는 상태가 궤적에 존재한다면 시작될 수 없다. 제 2 속도 천이 서브 알고리즘의 유효한 시작을 위한 조건은 다음 중 하나이다:
a) 제로 궤적 가속도 a0로부터 시작해서 궤적이 이미 소망되는 최종 속도 vf에 도달해 있다. 수학적으로, 이것은 다음 조건에 의해서 주어진다:
△v = 0 AND a0 = 0
b) 궤적이 아직 소망되는 최종 속도 vf에 있지 않고 궤적이 vf를 향해서 가속되고 있지만, 궤적 가속도가 명령 가속도의 제약을 초과하지 않거나 초기 가속도가 0이다. 수학적으로, 이것은 다음 조건에 의해서 주어진다:
(Δv ≠ 0) AND(Δv × a0 ≥ 0) AND(|a0| ≤ amax)
c) 궤적이 아직 소망되는 최종 속도 vf에 도달하지 않고, 초기 가속도 a0가 0이다. 수학적으로, 이것은 다음 조건에 의해서 주어진다:
(Δv ≠ 0) AND(a0 = 0) AND(|a0| ≤ amax)
이러한 조건은 도 28a 내지 도 28c에서 의사결정 블록(504, 506, 508, 및 510)으로서 도시된다. 제 2 속도 천이 서브 알고리즘의 조건을 만족시키는 것과 반대로, 제 2 속도 천이 서브 알고리즘은 궤적 가속도와 같은 궤적 내의 특정 이상상황 또는 상태가 해결되어야 할 필요가 없다면 수행될 수 없다. 이러한 서브 문제들은 제 1 속도 천이 서브 알고리즘에 의해서 해결된다. 이러한 이상상황 또는 상태를 해결하지 않으면, 제 2 속도 천이 서브 알고리즘은 속도를 소망되는 최종 속도 vf로 천이시킬 수 없다. 이것들은 무효한 시작 조건이라고 명명되고, 도 28a 내지 도 28c의 흐름도에서 "무효한 시작 조건"(512)으로 참조되는 박스로서 도시되며, 다음을 포함한다:-
a) 궤적이 이미 소망되는 최종 속도vf에 도달했지만, 초기 가속도 a0가 0이 아니다. 다르게 말하면, 궤적은 최종 속도 vf로부터 멀어지게 가속되고 있다. 이러한 이상상황을 정정하기 위해서, 다음의 세 개 또는 네 개의 궤적 세그멘트가 필요하다: 하나는 궤적 가속도의 크기를 0으로 만들고, 그러면 속도 천이 서브 알고리즘은 궤적 속도의 크기를 다시 소망되는 최종 속도 vf가 되게 하기 위한 두 개 또는 세 개의 추가적인 궤적 세그멘트를 생성할 수 있다. 수학적으로, 무효한 시작 조건의 조건은 다음에 의해서 주어진다:
Δv = 0 AND a0 ≠ 0
b) 궤적은 소망되는 최종 속도 vf로부터 멀어지게 가속되고 있다. 이러한 실례에서, △v 및 a0는 반대 부호를 가지고(즉 △v가 양수이고 a0가 음수이거나 속도 v가 음수이고 a0가 양수임), 세 개 또는 네 개의 궤적 세그멘트가 요구될 것이다: 하나는 궤적 가속도의 크기를 0으로 만들기 위한 것이고, 그러면 속도 천이 서브 알고리즘은 궤적 속도의 크기를 다시 소망되는 최종 속도 vf가 되게 하기 위한 두 개 또는 세 개의 추가적인 궤적 세그멘트를 생성할 수 있다. 수학적으로, 무효한 조건은 다음 조건에 의해서 주어진다:
Δv × a0 < 0
c) 초기 가속도 a0가 제약 최대 또는 명령된 가속도 amax를 초과한다. 궤적 가속도를 명령된 가속도 amax가 되게 하기 위해서는 하나 이상의 궤적 세그멘트가 요구된다. 수학적으로, 무효한 조건은 다음에 의해서 주어진다:
|a0| > amax
속도 천이 알고리즘을 완성하기 이전에, 궤적을 제 2 속도 천이 서브 알고리즘의 적용을 위한 조건이 되게 하기 위해서, 이러한 조건을 만족하지 않거나 제 2 속도 천이 서브 알고리즘을 적용하기 위해서 필요한 궤적 내의 이상상황이 우선 논의된다. 이러한 조건은 제 1 속도 천이 서브 알고리즘에 의해서 해결되고, 도 27a 내지 도 27c에 도시되는 흐름도(400)에서 문서화된 것과 같은 특정 순서로 해결될 필요가 있는 서브-문제라고 설명된다. 이러한 이상상황을 해결하면 하나 내지 다섯 개의 궤적 세그멘트들의 시퀀스가 생성될 것인데, 이들은 속도 천이 알고리즘에 대한 솔루션을 함께 구성한다.
서브-문제를 해결하고 하나 이상의 궤적 세그멘트를 생성할 때에, 일부 예들에서는 Jinc 및 Jdec에 추가하여 표 1에 표시된 바와 같이 선제적 저크 값 Jred가 입력(402)에 도입된다.
제 1 속도 천이 서브 알고리즘
입력:
- 초기 속도 v0
- 초기 가속도 a0
- 최대 가속도 amax(amax > 0)
- 가속도 크기 절감(reduction) 저크 Jred(Jred > 0)
- 가속도 크기 증가 저크 Jinc(Jinc >0)
- 가속도 크기 감소 저크 Jdec(Jdec > 0)
- 최종 속도 vf
출력:
- 다음에 의해 각각 특성화되는 근접한 궤적 세그멘트들의 목록
- - 저크 값(J), 및
- - 시간 지속기간(T)
-, 세그멘트의 목록에 따르는, 궤적에 의해 횡단된 총 거리(ΔP)
정의:
- Δv = vf - v0
표 1: 제 1 속도 천이 서브 알고리즘을 적용하는 입력 및 출력.
선제적 저크 Jred가 Jdec와 달리 가속도의 크기를 실질적으로 0까지 절감하도록 요구된다는 점에서 Jred는 Jdec와 다르다. 다르게 말하면, Jred는 가속도의 크기를 Jdec와 다른 레이트에서 감소시키고, 후술되는 두 가지 초기 점검(과도한 가속 및 최종 속도로부터 멀어지게 가속하는 것)을 처리할 때에 필요하다. 따라서, 과다한 가속이 존재하거나 궤적이 소망되는 최종 속도 vf로부터 멀어지게 가속되고 있으면, 제어 시스템은 선제적 Jred를 적용하여 가속도를 실질적으로 0으로 감소시킨다. 위의 설명은 Jred 및 Jdec가 상이한 값을 가지는 예들에도 적용된다. 다른 예들에서, Jred 및 Jdec의 값은 같을 수도 있다.
도 27a 내지 도 27c에 도시되고 이하 설명되는 흐름도(400)는 제 1 속도 천이 서브 알고리즘의 풀이 및 본 발명에 따른 제 2 속도 천이 서브 알고리즘이 궤적을 생성하기 위해서 적용되기 이전에 이들이 해결되는 순서를 상세히 보여준다. 서브-문제들은 하나 이상의 블록으로 나누어지는데, 하나 이상의 블록의 각각은 제 1 속도 천이 서브 알고리즘에 의해서 해결된 서브-문제의 솔루션을 나타낸다. 서브-문제에 대한 각각의 솔루션은 출력 목록으로 입력되는 하나 이상의 궤적 세그멘트를 생성한다. 처음에, 궤적 세그멘트의 출력 목록은 비어 있다. 속도 천이 알고리즘을 설명하기 위하여, 그러한 콘텍스트에서의 용어 "적분(integrate)"은 "궤적 방정식 3, 4 및 5를 적용하여(시작점, 궤적 세그멘트 저크 및 세그멘트 지속기간을 사용함) 세그멘트 종점에 도달하는 것"을 의미한다.
A) 과다한 가속도의 처리
의사결정 프로세스에서 그리고 본 발명의 제 2 속도 천이 서브 알고리즘을 적용하기 이전에, 제어 시스템은 초기 가속도의 크기 가 제약 명령된 가속도 amax보다 큰지 여부를 결정한다. 이것이 도 27a에서 블록(404)에 의해 표현된다. 답변이 긍정적이면, 제어 시스템은 궤적 세그멘트(406)를 출력 목록에 추가한다. 제 2 속도 천이 서브 알고리즘을 풀이하려고 시도하기 이전에, 새로운 궤적 세그멘트는 궤적 가속도를 amax로 감소시키는데, 이러한 경우에 궤적 세그멘트가 다음에 대해서 생성되어야 한다:
- 사용된 조작 변수인 저크 값은 J = -sign(a0) × Jred이다. 가속도를 초기 가속도 a0로부터 감소시키기 위해서는 음의 부호가 필요하다.
- 궤적 세그멘트 지속기간은 T1 = |amax - |a0|| / Jred에 의해서 주어진다
- 조작 변수인 저크 J를 적용함으로써, 종점 궤적 가속도 aE1이 aE1 = sign(a0) x amax에 의해서 주어진다.
- 초기 위치 p0 및 속도 v0로부터 시작하여, 따라서 종점 속도 vE1 및 위치 pE1이 시작점(a0, v0, p0), 저크 J 및 궤적 세그멘트 지속기간 T1을 사용하여 궤적 방정식 3, 4 및 5을 직접 적용함으로써 획득된다. 이것이, 출력 목록에 있는 모든 세그멘트를 사용하여 궤적을 시작점(v0, a0)로부터 적분(408)하여 결과적으로 얻어지는 속도 및 가속도 vE1 및 aE1을 계산하는 것으로서 흐름도에 표시된다.
궤적 세그멘트가 이러한 단계에서 생성되면, 그 종점은 다음 서브-문제에 대한 초기 궤적 포인트가 되고, (a0, v0, p0) ←(aE1, vE1, pE1)이며, 속도 델타(412)는 이에 따라서 다시 계산되어 △v ← vf - vE1이 된다. 다르게 말하면, 생성된 궤적 세그멘트의 종점이 후속 궤적 세그멘트의 시작점에 할당된다. 이것이 도 27a에서 블록(410)에 의해 표현된다.
그러나, 과다한 가속도를 amax까지 낮추기 위한 새로운 궤적 세그멘트를 생성하는 단계는, 초기 가속도 a0의 크기가 amax 이하이고, 제어 시스템이 다음 서브-문제로 이동한다면 필요하지 않다.
결정 블록(404)의 결과가 어떤 것인지(즉 가속도 a0의 크기가 amax보다 큰지 여부)와 무관하게, 알고리즘은 단계들(408 및 410)로 진행한다. 단계(408)는 출력 목록 내의 궤적 세그멘트들 모두를 포함하여, 시작점으로부터 전체 궤적을 적분한다. 가속도가 과다하고 새로운 궤적 세그멘트가 단계(406)에서 생성된 경우에, 이러한 세그멘트는 적분된다. 가속도가 과다하지 않고 새로운 궤적 세그멘트가 생성된 바 없으면, 궤적 세그멘트의 출력 목록은 비어 있고, 적분 단계(408)는 여전히 진행할 것이지만 아무런 효과도 가지지 않고, 따라서 결과적으로 얻어지는 속도 vE1 및 가속도 aE1은 초기 속도 v0 및 가속도 a0와 같아질 것이다.
단계(408)와 유사하게, 단계(420 및 436)에서 궤적을 적분하는 추후의 단계들이 이전의 의사결정 블록의 결과와 무관하게 적용된다. 새로운 궤적 세그멘트가 이전의 단계에서 출력 목록에 추가되었는지 여부와 무관하게, 적분하는 단계는 시작점으로부터 전체 궤적에 적용된다.
B) 소망되는 최종 속도 vf로부터 멀어지게 가속되는 궤적의 처리.
이것이 도 27a에서 블록(414 및 416)에 의해 표현된다. 제어 시스템은, 속도의 크기가 vf가 되지만 vf로부터 멀어지게 가속되는 이상상황(414) 및/또는 속도가 vf가 되지 않고 이것으로부터 멀어지게 가속되고 있는 이상상황(416)을 해결하기 위해서 의사결정 프로세스를 적용한다. 전자(414)에서, 제어 시스템은 속도 델타 △v가 0인지, 즉 △v = 0인지, 그리고 초기 가속도 a0, 의 크기가 0이 아닌지, 즉 a0 ≠ 0인지 판정한다. 이러한 조건 양자 모두가 존재하면, 이것은 궤적이 소망되는 최종 속도 vf로부터 멀어지게 가속되고 있다는 표시이다. 양자 모두의 조건이 존재하지 않으면, 제어 시스템은 의사결정 블록(416)으로 이동하고, 궤적이 vf로부터 멀어지게 가속되고 있는지 여부를 판정한다. 이러한 경우인지 여부를 결정하기 위하여, 제어 시스템은 초기 궤적 가속도 a0의 크기 및 속도 델타 △v의 곱이 음수인지 여부를 결정한다(Δv x a0 < 0)(416). 곱이 음수이면, 이것은 궤적이 소망되는 최종 속도 vf로부터 멀어지게 가속되고 있다는, 즉 반대 방향으로 이동하고 있다는 표시이다. 가속도 a0의 부호가 속도 델타 Δv의 부호의 반대라면, 즉 궤적이 최종 속도에 도달하기 위해서 요구되는 방향과 반대 방향으로 가속하고 있다면, 곱 Δv x a0는 음수가 될 것이다.
의사결정 블록(414 및 416) 중 어느 하나에서, 궤적이 소망되는 최종 속도 vf로부터 멀어지게 가속하고 있다는 점에서 조건들 양자 모두가 긍정적이면, 제 2 서브 속도 천이 알고리즘이 적용될 수 있기 이전에 궤적 가속도를 0으로 축소시킴으로써 이러한 이상상황을 교정하기 위해서 궤적 세그멘트(418)가 생성되어야 한다. 새로운 궤적 세그멘트(418)에 대하여,
- 사용된 조작 변수인 저크는 J = -sign(a0) × Jred 이다. 가속도를 실질적으로 0으로 줄이기 위해서는 음의 부호가 필요하다.
- 궤적 세그멘트 지속기간은 에 의해서 주어진다
- 종점 가속도의 크기는 0이다(aE2 = 0). - 초기 위치, a0 및 속도 v0로부터 시작하여, 따라서 종점 속도 vE2 및 위치 pE2가 시작점(a0, v0, p0), 저크 J 및 궤적 세그멘트 지속기간 T1을 사용하여 궤적 방정식(수학식 3, 4 및 5)을 직접 적용함으로써 획득된다. 이것이, 출력 목록에 있는 모든 세그멘트를 사용하여 궤적을 시작점(v0, a0)로부터 적분(420)하여 종점 속도 및 가속도 vE2 및 aE2를 계산하는 것으로서 흐름도에 표시된다.
이러한 궤적 세그멘트가 이러한 단계에서 생성되면, 그 종점은 다음 서브-문제에 대한 초기 궤적 포인트가 되고, 즉(a0, v0, p0) ←(aE2, vE2, pE2) 이며, 속도 델타는 이에 따라서 다시 계산되어 △v ← vf - vE2가 되고, 값들이 재지정된다(420, 422).
그러나, 양자 모두의 조건들이 의사결정 블록(414 및 416) 중 하나에서 긍정적이지 않으면, 궤적이 vf가 되었고 가속도가 실질적으로 0이거나 궤적이 vf를 향해서 가속되고 있으며, 그러면 제어 시스템은 초기 궤적 포인트(a0, v0, p0)의 상황 쿠오(status quo를 유지하고, 다음 서브-문제로 이동한다.
C) 궤적이 최종 속도를 오버슈트하는 것의 처리
이러한 제 3 점검은 도 27b에서 의사결정 블록(424)에 의하여 표현된다. 단계 A)에서의 제 1 점검은 궤적 가속도가 과다하지 않다는 것을 보장했고, 단계 B)에서의 제 2 점검은 궤적이 "잘못된" 방향으로 가속되고 있지 않다는 것을 보장했다. 따라서, 그러한 포인트 근처에서 궤적 가속도 a는 0이 될 것이고(이러한 경우에는 궤적이 해당 시간에 실제로 가속되고 있지 않으므로 제 3 점검은 아무 것도 하지 않을 것임) 또는 궤적은 소망되는 최종 속도 vf를 향해서 가속되고 있을 것이다(그리고 오버슈트가 생길 수 있음). 이러한 시나리오에서, 그리고 제 2 속도 천이 서브 알고리즘을 적용하기 이전에, 제어 시스템은 최종 점검으로서 궤적이 소망되는 최종 속도 vf를 오버슈트하고 있는지 여부를 결정한다. 의사결정 프로세스는 의사결정 블록(424)에서 초기 궤적 가속도 a0의 크기가 실질적으로 0과 같은지 여부를 점검하는 것으로 시작된다. 초기 궤적 가속도 a0의 크기가 실질적으로 0과 같으면, 이것은 조건들이 제 2 속도 천이 서브 알고리즘을 적용하기에 유효하다는 표시이다. 그러나, 궤적 가속도가 실질적으로 0과 같지 않으면, 궤적 속도가 여전히 상향 궤적 상에 있을 수 있고, 소망되는 궤적 최종 속도 vf를 오버슈트할 수 있는 위험이 존재한다. 이러한 점검은 제 3 점검이 적용될 때 이러한 시나리오를 파악하는데 도움을 주고, 그렇게 함에 있어서 궤적 속도가 교차하고 계속해서 소망되는 최종 속도 vf로부터 멀어지게 이동되는 경우에, 가속도의 크기를 0까지 감소시키는 궤적 세그멘트를 적용한다.
궤적 속도가 교차하고 소망되는 최종 속도 vf를 초과하면, 제 2 속도 천이 서브 알고리즘을 적용하기 이전에 후속하는 교정 동작이 취해진다. 처음에는 적용된 저크가 이전의 두 번의 점검에서 사용된 Jred와 대조적으로 J = Jdec인 잠정적(tentative) 궤적 세그멘트가 계산되지만, 잠정적 궤적 세그멘트는 출력 목록에 추가되지 않는다. 제 2 서브 알고리즘에서 Jdec이 최종 속도 vf로 천이할 때에 적용되기 때문에, 계속해서 동일한 저크 값 Jdec를 제 3 점검에서 사용하는 것이 성립하는데, 그 이유는 궤적도 소망되는 최종 속도 vf를 향해서 진행하고 있고 오버슈트가 생길 수 있기 때문이다. 궤적 속도가 vf를 오버슈트하게 되는 가능성(제 3 점검이 오버슈트가 생긴다고 결정한다면)은, 궤적이 오버슈트가 없이 vf에 도달할 수 있었을 경우 사용될 저크의 동일한 값을 사용하는 것으로부터 열화되지 않는다. 선제적 저크 J = Jred는 궤적 가속도가 과다하고 및/또는 궤적이 잘못된 방향으로 가속되고 있으며 되돌려질 필요가 있는 특수 상황에서 사용된다.
단계(426)에서, 궤적은 잠정적 궤적 세그멘트를 사용하여 적분되어, 로드 핸들링 디바이스가 잠정적 궤적 세그멘트의 끝에서 획득할 결과적으로 얻어지는 속도 vaux를 계산한다. 이러한 속도는 다음 단계에서 궤적이 최종 속도 vf를 오버슈트하는지 여부를 계산하기 위해서 필요하다.
의사결정 블록(432)에서 궤적 속도가 최종 속도 vf를 오버슈트하는지 여부를 결정할 때,
- 바로 전의 점검에서 초기 속도 v0로부터 소망되는 최종 속도 vf로의 속도 천이를 나타내는 속도 델타 △v(428)가 계산된다. 따라서, △v는 초기 속도 v0의 소망되는 최종 속도 vf로부터의 오버슈트의 정도를 나타낸다.
- 속도 델타 △vaux(430)는 단계(426)에서 계산된 잠정적 궤적 세그멘트의 종점 속도 vaux로부터 소망되는 최종 속도 vf로의 속도 천이를 나타낸다. 따라서, △vaux는 현재 계산된 vaux의 소망되는 최종 속도 vf로부터의 오버슈트의 정도를 나타낸다.
궤적 세그멘트가 최종 점검에서 오버슈트되면, 곱 △v x △vaux는 0보다 작거나 음수가 될 것이고(Δv × Δvaux < 0), 즉 속도 델타 △v 또는 △vaux 중 하나는 음수이다(도 27b의 의사결정 블록(432)을 참조). (Δv × Δvaux < 0)이 성립하면, 이것은 궤적 세그멘트가 소망되는 최종 속도 vf를 오버슈트한다는 명백한 표시이다. 이러한 경우에, 가속도의 크기가 실질적으로 0이 되게 하기 위해서, 단계(434)에서 제어 시스템은 앞서 계산된 잠정적 궤적 세그멘트를 출력 목록에 추가한다. 새로운 궤적 세그멘트(이제는 더 이상 잠정적이 아님)에 대하여:
사용되는 조작 변수 저크 값은 선제적 저크 Jred와 대조적으로 Jdec이다. 따라서, 적용된 저크는 J = -sign(a0) × Jdec이다. 가속도를 실질적으로 0으로 줄이기 위해서, 즉 감속을 표시하기 위해서는 음의 부호가 필요하다.
- 궤적 세그멘트 지속기간은 T3 = |a0| / Jdec에 의해서 주어진다.
- 종점 가속도는 0이다(aE3 = 0). - 초기 위치, a0 및 속도 v0로부터 시작하여, 따라서 종점 속도 vE3 및 위치 pE2가 시작점(a0, v0, p0), 저크 J 및 궤적 세그멘트 지속기간 T1을 사용하여 궤적 방정식(수학식 3, 4 및 5)을 직접 적용함으로써 획득된다. 이것이, 출력 목록에 있는 모든 세그멘트를 사용하여 궤적을 시작점(v0, a0)로부터 적분(436)하여 결과적으로 얻어지는 속도 및 가속도 vE3 및 aE3를 계산하는 것으로서 흐름도에 표시된다. 종점 속도 vE3는 vaux와 같다.
따라서, 제 3 점검은 가속 레퍼런스 a가 실질적으로 0으로 램핑 다운되고, 소망되는 최종 속도 vf로부터 더 멀어지게 가속되는 것이 방지되는 것을 보장한다. 가속 레퍼런스 a가 제로로 램핑 다운될 때에 궤적 세그멘트가 소망되는 최종 속도 vf를 오버슈트하면, 이러한 조건은 수용된다. 제 3 점검의 목적은 궤적이 소망되는 최종 속도 vf로부터 더 멀리 가속되는 것을 방지하는 것이다, - 그러므로, 가속 레퍼런스를 실질적으로 0으로 램핑할 필요가 있다. 다시 말하건대, 종점은 속도 천이 알고리즘에 대한 초기 궤적 포인트가 되고, 즉 (a0, v0, p0) ←(aE3, vE3, pE3)(438)이며, 속도 또는 속도 델타는 △v = vf - vE3에 따라서 다시 계산된다. 그러면, 업데이트된 궤적 포인트가 다음 서브-문제에 대한 초기 궤적 포인트가 된다.
이러한 궤적 세그멘트가 소망되는 최종 속도 vf를 오버슈트하지 않으면, 이러한 궤적 세그멘트는 모두 무시되고, 즉 초기 궤적 포인트 또는 속도 델타 △v에 대한 수정은 필요 없다.
궤적 조건들이 설정되면(예를 들어, 가속도의 크기가 실질적으로 0이 되면), 이것은 제 1 속도 천이 서브 알고리즘에서 하나 이상의 궤적 세그멘트를 생성하는 것을 수반할 수 있고, 그러면 제어 시스템은 속도 천이 알고리즘의 다음 스테이지인 제 2 속도 천이 서브 알고리즘(440)으로 진행하여 속도의 크기를 소망되는 최종 속도로 천이시킨다. 마지막으로, 제 1 속도 천이 서브 알고리즘을 적용함으로써 횡단된 총 거리 △p는 생성된 궤적 세그멘트 모두를 적분함으로써 결정될 수 있다(442). 제 2 속도 천이 서브 알고리즘을 적용하는 것이 섹션 4.2에서 더 후술된다.
다음은 궤적의 상이한 시나리오에 대해서 제 1 속도 천이 서브 알고리즘을 적용하는 예들이다. 이러한 예들 모두에서 SI 단위가 사용된다: 거리는 미터로 측정되고, 시간은 초로 측정되며, 속도는 m/s로, 가속도는 m/s2로, 그리고 저크는 m/s3으로 측정된다.
예 1
입력 값들이 다음이 되는 예를 취한다:
초기 궤적 가속도 a0 = 1.0
명령된 가속도 amax = 2.0
초기 속도 v0 = 1.0
소망되는 최종 속도 vf = 1.1
△v = vf - v0 = 0.1
저크 값 Jred = Jinc = Jdec = 0.1
A) 제 1 질문: 가속도가 과다한가? 아니다. |a0| = 1.0 및 |amax| = 2.0 이어서 시작 가속도 a0는 과다하지 않다.
B) 제 2 질문: 궤적이 vf로부터 멀리 가속되고 있나? 아니다. △v = 0.1은 양의 값이고 a0도 양의 값이며, 따라서 궤적은 vf를 향하여 가속되고 있다.
C) 제 3 질문: 가속도가 즉시 시작해서 0까지 램핑 다운되어도 궤적이 vf를 오버슈트할까? 예
a0를 0으로 램핑하는 0.1의 저크 값 Jdec를 사용하면, T = |a0| / J = 1.0 / 0.1 = 10 개의 시간 단위가 취해진다. 가속도가 0으로 램핑될 때, 궤적 속도는 10 * 1.0 / 2 = 5.0 배만큼 증가할 것이다(이것은 밑변 = 10 개의 시간 유닛이고, 높이는 a0 = 1.0인 직각삼각형의 면적임). 그러므로, 제어 시스템이 궤적 가속도를 0으로 램핑하려고 시도하는 경우에도, 궤적 속도는 여전히 v0 = 1.0 내지 6.0이 될 것이고, 따라서 vf = 1.1를 오버슈트한다.
이러한 예에서, 처음 두 번의 점검은 임의의 동작을 제공하지 않았지만(동작이 필요하지 않았음), vf의 오버슈트를 처리하기 위해서는 세 번째 점검은 명백하게 존재해야 하고, 그렇지 않으면 제 2 서브 속도 천이 알고리즘을 호출할 수 없다(무효한 시작 조건).
예 2
명령된 가속도 amax = 2.0
초기 가속도 a0 = -3.0
초기 속도 v0 = 1.0
소망된 최종 속도 vf = 3.0
△v = vf - v0 = 3.0 - 1.0 = 2.0
Jred = 1.0
Jinc = Jdec = 0.5
A) 제 1 질문: 가속도가 과다한가? 예. |a0| = 3.0은 amax보다 크고, 따라서 제어 시스템은 그 지속시간이 T = |amax - |a0|| / Jred = 1.0 / 1.0 = 1.0인 J = +Jred = +1.0을 이용하여 궤적 세그멘트를 생성해야 한다
---> 이러한 세그멘트의 종점은 aE(종점 가속도) = -2.0, vE(종점) = 0.5 이다.
---> 이러한 단계가 수행하는 것 전부가 가속도의 크기를 줄여서 더 이상 과다하게(즉 amax보다 높게) 되지 않게 하는 것이기 때문에 가속도가 여전히 음수라는 것에 주의한다
---> 다음을 재계산한다 △v = vf - vE = 3.0 -(0.5) = 2.5
---> 다음을 재지정한다 a0 = -2.0 및 v0 = 0.5
B) 제 2 질문: 궤적이 vf로부터 멀리 가속되고 있나? 예. △v = 2.5(양의 값) 및 a0 = -2.0(음의 값)이고, 따라서 궤적은 vf로부터 멀어지게 가속되고 있다. 따라서, 그 지속기간이 T = |a0| / Jred = 2.0 / 1.0 = 2.0인 J = +Jred = +1.0을 가지고 궤적 세그멘트를 생성해야 한다.
---> 이러한 세그멘트의 종점은 가속도이고 aE = 0, vE = -1.5 이다
---> △v = vf - vE = 3.0 -(-1.5) = 4.5를 재계산한다
---> a0 = 0 및 v0 = -1.5를 재지정한다
C) 제 3 질문: 가속도가 즉시 시작해서 0까지 램핑 다운되어도 궤적이 vf를 오버슈트할까? 아니오인데, 그 이유는 가속도가 현재 이미 0이기 때문이다.
예 2에서, 처음 두 번의 점검은 동작흔 제공했지만(하나의 궤적 세그멘트가 각각에 의해 생성되었음), 제 3 점검은 아무런 동작도 제공하지 않는다(동작이 필요하지 않았음). 앞선 세 번의 질의로부터, 궤적은 이제 초기 궤적 포인트인 a0 = 0, v0 = -1.5, 및 vf = 3.0을 가지는 제 2 속도 천이 서브 알고리즘과 함께 진행할 유효한 조건을 가지게 되었고, 즉 가속도는 실질적으로 0까지 램핑 다운되었다. 궤적 속도를 vf가 되게 하기 위하여(그리고 가속도가 0이 되게 하기 위하여), 제 2 속도 천이 서브 알고리즘을 적용하면 두 개의 추가적인 궤적 세그멘트가 생성될 것이다(apeak가 amax보다 낮은 1.5인 것이 드러나기 때문에). apeak의 계산은 제 2 서브 속도 천이 알고리즘을 적용하는 데에 기반이 된다.
4.2 제 2 속도 천이 서브 알고리즘의 적용
제 2 속도 천이 서브 알고리즘의 입력 및 출력이 다음 표 2에 표시된다. 전술된 이전의 서브-문제가 제 1 속도 천이 서브 알고리즘에 의해서 해결되었으면, 제어 시스템은 제 2 속도 천이 서브 알고리즘을 호출할 수 있다. 제 2 속도 천이 서브 알고리즘은 vf의 값과 무관하게 vf로의 천이(속도 천이)를 실제로 수행하는 알고리즘이다. 이것은 전술된 특정한 시작 조건이 해결되었을 경우에만 호출된다. 이들은 궤적이 과다한 가속도를 가지는 것, 및/또는 궤적이 소망되는 최종 속도로부터 멀어지게 가속되는 것을 포함하지만 이것으로 한정되는 것은 아니다. 이러한 점검은 도 28a의 블록(504, 506, 508, 510)에 의해서 수행되고, 전술된다. 속도 천이 알고리즘의 목적은 선택된 속도 vf에 도달하기 위한 궤적 세그멘트를 생성하는 것이다. 최종 속도 vf는 속도 제약에 노출되는 임의의 선택 속도일 수 있다. 그러나, 속도 또는 속도 델타 Δv가 실질적으로 0이라면(이러한 경우에는 궤적 속도 v0의 크기가 이미 소망되는 최종 속도 vf에 도달함), 그리고 가속도 a0의 크기가 실질적으로 0이라면(이러한 경우에는 궤적이 소망되는 최종 속도 vf로부터 멀어지게 가속되고 있음), 조건들은 이미 소망되는 최종 속도가 되기에 이상적이다. 이것이 제 2 속도 천이 서브 알고리즘 내의 의사결정 블록(506)으로부터 흐름도의 끝(도 28a)까지의 경로에 의해서 표시된다.
본 발명에 따르면, 제 2 속도 천이 서브 알고리즘의 유용한 개념의 유용한 개념이 소망되는 최종 속도 vf와 초기 속도 v0 사이의 차이로서 정의되는 속도 델타 △v에 대한 것이라는 것이 발견되었다. 초기 속도 v0의 값은 위에서 논의된 제 1 속도 천이 서브 알고리즘에서 초기 속도 v0에 할당된 종점 속도 레퍼런스 vE에 따라서 달라진다. 도 28a에 도시되는 흐름도(500)를 참조하면, 피크 궤적 가속도 apeak의 값이 계산되고(514), 그 면적이 △v에 의해서 제공되고 그 변들이 가속도(제로 가속도로부터 멀어지는 가속도)의 증가 레이트 Jinc 및 가속도(제로 가속을 향한 가속도)의 감소 레이트 Jdec에 의해 정의되는 삼각형의 꼭지점에서의 가속도 값을 나타낸다(도 29 참조). 다르게 말하면, apeak는 삼각형-모양의 형상의 면적이 △v에 대응하거나 이것과 등가가 되도록 가속도 크기 증가 레이트 Jinc 및 가속도 크기 감소 레이트 Jdec를 사용하여 그려질 수 있는 이러한 형상의 꼭지점에 있다. 박스(514)에 도착하려면 결정 박스(504, 508 및 510) 내의 조건, 즉 (i) △v ≠ 0; (ii) △v x a0 ≥ 0; 및 (iii) ≤ Amax가 이행되어야 하고 - 이것은 유효한 시작 조건이다. 이러한 조건이 이행되어야 하는데, 그 이유는 궤적이 이미 제 1 속도 천이 서브-알고리즘을 통과한 바 있고, 따라서 과다한 가속도 및/또는 궤적이 최종 속도로부터 멀어지게 가속되고 있는 임의의 이상상황은 궤적 세그멘트를 출력 목록에 추가함으로써 해결되었어야 한다.
제 2 속도 천이 서브 알고리즘
입력:
- 초기 속도 v0
- 초기 가속도 a0
- 최대 가속도 amax(amax > 0)
- 가속도 크기 증가 저크 Jinc(Jinc >0)
- 가속도 크기 감소 저크 Jdec(Jdec > 0)
- 최종 속도 vf
출력:
- 각각의 다음에 의해서 특성화되는 근접한 궤적 세그멘트들의 목록
- - 저크 값(J), 및
- - 시간 지속기간(T)
정의:
- Δv = vf - v0
표 2: 제 2 속도 천이 서브 알고리즘을 적용하는 입력 및 출력.
자세하게 설명하면, 초기 가속도 a0, 초기 속도 v0(제 1 속도 천이 서브 알고리즘의 출력에 의해 정의됨), 소망되는 최종 속도 vf, 속도 델타 △v = vf - v0, 및 궤적 가속도의 크기를 증가(Jinc) 및 감소(Jdec)시키기 위한 특정한 값의 저크가 주어지면, a0 우측의 면적이 △v와 등가인 가상의 "삼각 가속도 궤적"(도 29 참조)을 그리는 것이 가능해진다. 다르게 말하면, 가속도 신호의 이러한 삼각형 변경을 수행하면 v0가 vf가 되게 될 것이고(궤적 세그멘트의 개수와 무관하게), 따라서 제 2 천이 서브 문제를 풀이한다. 제 1 원리로부터, 가상 삼각형 가속도 궤적 아래의 면적이 델타 속도 △v와 등가가 되게 하면,
가 되는데,
여기에서 A0, A1, 및 A2는 도 29에 예시된 면적들이다. apeak를 이러한 삼각형의 꼭지점에서의 가속도의 값이라고 한다. △v에 대응하는 삼각형 아래의 총 영역의 소부분은 세 개의 더 작은 영역의 합이라고 표현될 수 있고, △v=A0 + A1 + A2이며, 여기에서:
이다.
에 대해서 풀이하면:
△v=A0+A1+A2
이다.
피크 가속도 의 크기는 따라서 다음의 제곱근을 취함으로써 획득될 수 있다:
피크 가속도 apeak의 크기가 수학식 21로부터 계산된 바 있으면, 세 개의 상호 배타적인 가능성들 중 하나가 참일 수 있고, 이들 각각은 자세하게 후술된다:
A) 초기 가속도 크기 a0 가 피크 가속도 크기 apeak 와 매칭됨
초기 가속도의 크기가 피크 가속도(516)와 같으면, 즉 이면, 궤적은 이미 피크 가속도에 도달했고, 따라서 이것은 소망되는 최종 속도 vf에 도달하기 위해서 가속도를 0으로 램핑 다운(감속)하기만 하면 된다.
이러한 경우에, 다음이 성립되는 단일 궤적 세그멘트(518)가 생성된다:
i) 가속도를 낮추기 위해서 조작 변수(저크) 값이 J = -sign(a0) × Jdec이다,
ii) 궤적 세그멘트 지속기간이 T = 에 의해서 주어진다, 및
iii) 종점 가속도가 0이고( = 0), 종점 속도가 = 이며, 종점 위치 는 시작점(a0, v0, p0), 저크 jdec 및 세그멘트 지속기간 T를 사용하여 궤적 방정식(수학식 3, 4, 및 5)을 직접 적용함으로써 획득된다.
B) 피크 가속도 크기 apeak 가 최대 가속도 amax (명 령된 가속도)의 크기 이하이다
피크 가속도의 크기가 최대 가속도보다 작으면(526), 즉 이면, 궤적 가속도의 크기는 여전히 로 증가될 수 있고, 그러면 이것은 0으로 다시 램핑 다운 될 필요가 있는데, 이러한 포인트에서는 소망되는 최종 속도 vf가 만족될 것이다.
따라서, 이러한 경우에는 두 개의 궤적 세그멘트(528, 530)가 생성될 필요가 있을 것이고, 피크 가속도로 향하는 제 1 궤적 세그멘트(528b) 및 실질적으로 0으로 다시 램핑 다운할 제 2 궤적 세그멘트(530b)를 보여주는 도 29의 가상 삼각형에 의해서 시연될 수 있다.
제 1 궤적 세그멘트(528b)에 대하여,
- 사용되는 조작 변수(저크) 값은 J = S x Jinc이다. 부호 S는 초기 가속도 a0 = 0가 양수 또는 음수인지 여부에 따라 달라진다. 흐름도에 도시된 바와 같이, 초기 가속도 a0가 실질적으로 0과 같다면, 부호 S는 초기 속도 v0와 동일한 부호를 가지는데, 이것은 궤적 세그멘트가 최종 속도 vf에 도달하기 위해서 궤적 속도의 방향에 따라서 궤적 가속도를 램핑 업 또는 램핑 다운할 필요가 있을 것이기 때문이다. 그러나, 초기 가속도 a0가 0과 같지 않으면, 속도의 크기가 최종 속도 vf에 도달하기 위해서 궤적 가속도를 램핑 업 또는 램핑 다운하기 위하여 부호 S는 초기 가속도의 부호를 가진다.
- 제 1 궤적 세그멘트 지속기간이 T = |apeak - a0| / Jinc이다
- 종점 가속도는 피크 가속도이고(aE5=apeak), 종점 속도 및 위치는 시작점 a0, v0, p0, J= jinc 및 세그멘트 지속기간 T를 사용하여 궤적 방정식(수학식 3, 4 및 5)을 직접 적용함으로써 획득된다.
- 그 종점을 제 2 궤적 세그멘트 생성을 위한 초기 궤적 포인트에 재지정하고, 즉(a0, v0, p0) ←(aE5, vE5, pE5)이다.
제 2 궤적 세그멘트(530b)에 대하여,
- 조작 변수(저크) 값은 J = S x jdec이다.
- 제 2 궤적 세그멘트 지속기간은 T = |apeak| / Jdec이다
- 종점 가속도는 실질적으로 0이고(aE6 = 0), 종점 속도 vE6 및 위치 pE6는 초기 궤적 포인트 aE5, vE5, pE5, 저크 jdec 및 세그멘트 지속시간 T를 사용하여 궤적 방정식(수학식 3, 4, 5)을 직접 적용함으로써 획득된다.
C) 피크 가속도 크기가 대 가속도 amax 의 크기보다 크다
이것은, |apeak| < amax이지 않으면, |apeak|가 amax보다 커야 한다는 것으로부터 따라온다. 피크 가속도의 크기가 최대 가속도의 크기보다 크면, 즉 apeak > amax이면, 궤적 가속도의 크기는 amax까지 증가되어야 하고, 그 후에 이것은 한동안 amax에서 유지되어야 하며, 마지막으로 소망되는 최종 속도 vf를 만족하도록 시간에 맞춰서 0으로 다시 램핑 다운될 필요가 있다. 다르게 말하면, 가속도 궤적은 사다리꼴과 유사하게 보일 것이다. 따라서, 이러한 경우에는, 궤적 가속도의 크기가 이미 amax와 같은지 여부 또는 이것이 여전히 amax 아래에 있는지 여부에 의존하여 두 개 또는 세 개의 궤적 세그멘트가 생성될 수 있다.
가속도가 amax로부터 0까지 램핑 다운하는 것에 기인한 속도의 변동의 값은 우선 수학식 21에서 apeak = a0 = amax를 치환하여 다음을 획득하는 것이다:
이것에 대하여, 도 30에서 Tconst라고 표시되는 등가속 페이즈의 길이(시간 길이)도 역시 계산될 수 있다:
여기에서:
는 등가속 페이즈의 시작 시의 초기 속도 v0로부터 소망되는 최종 속도 vf까지의 속도 천이의 크기이다. 도 30에 도시된 바와 같이 등가속 페이즈 및 가속도 램핑 다운 궤적 세그멘트(540 및 542) 아래의 총 면적 A2 + A3는 속도 델타 △v = v0 - vf이다(여기에서, v0는 등가속 페이즈의 시작 시의 속도임). 가속도 램핑 다운 세그멘트(542) 아래의 면적 A3는 수학식 22에서 계산되는 바와 같은 △vdec이다. 면적 A2는 면적 A3를 총 영역으로부터 감산함으로써 계산될 수 있고, 따라서 A2 = △v - △vdec이다. 면적 A2로부터, 지속기간 Tconst가 이러한 면적을 수학식 23에서와 같이 가속도 amax로 나눔으로써 계산될 수 있다.
< amax라면, 세 개의 궤적 세그멘트가 생성되어야 한다. 이것이 도 28b 및 도 28c에서 의사결정 블록(532), 및 도 28b에서의 궤적 세그멘트(540 및 542) 상단에 생성되고 도 30의 가상 사다리꼴 형상에 의해서 시연되는 추가적 궤적 세그멘트(534)에 의해서 표시된다.
도 30에서 지속기간 T1에 걸친 제 1 궤적 세그멘트(534)에 대하여:
- 사용된 조작 변수(저크) 값은 J = S x Jinc이고,
- 궤적 세그멘트 지속기간은 에 의하여 주어지며,
- 종점 가속도는 최대 가속도이고(aE7=sign(a0) x ), 종점 속도 vE7 및 위치 pE7은 시작점 a0, v0, p0, 저크 jinc 및 세그멘트 지속기간 T1을 사용하여 궤적 방정식 3, 4 및 5를 직접 적용함으로써 획득된다.
- 그 종점을 제 2 궤적 세그멘트 생성을 위한 초기 궤적 포인트에 재지정하고, 즉(a0, v0, p0) ←(aE7, vE7, pE7)이다.
도 30에서 Tconst라고 표시된 지속기간 T2에 걸친 제 2 궤적 세그멘트(540)에 대하여:
- 사용되는 조작 변수(저크) 값은 0이고,
- 세그멘트 지속기간은 수학식 23에 의해서 제공된 T2 = Tconst에 의해서 주어지며,
- 종점 가속도는 최대 가속도이고(aE8 = a0)(앞선 연산으로부터 a0 = aE7라는 것에 주의함), 그리고 종점 속도 vE8 및 위치 pE8이 시작점 aE7, vE7, pE7, 제로 저크 및 세그멘트 지속기간 T2 = Tconst를 사용하여 궤적 방정식을 직접 적용함으로써 획득된다.
- 그 종점을 제 2 궤적 세그멘트 생성을 위한 초기 궤적 포인트에 재지정하고, 즉(a0, v0, p0) ←(aE8, vE8, pE8)이다.
도 30에서 지속기간 T3에 걸친 제 3 궤적 세그멘트(542)에 대하여:
- 사용되는 조작 변수(저크) 값은 = -S x jdec이고,
- 세그멘트 지속기간은 에 의하여 주어지며,
- 종점 가속도는 0이고(aE9 = 0), 종점 속도는 vE9 = vf이며, 위치 pE9은 시작점 aE8, vE8, pE8, 저크 jdec 및 세그멘트 지속기간 T3를 사용하여 궤적 방정식(수학식 3, 4, 및 5)을 직접 적용함으로써 획득된다.
그러나, 제 1 속도 천이 서브 알고리즘으로부터 a0 = amax라면, 다음의 두 개의 궤적 세그멘트(540, 542)만이 생성되어야 한다: 시간 Tconst에 대한 amax에서의 제 1 궤적 세그멘트 및 램핑 가속도를 amax로부터 0까지 램핑 다운하기 위한 제 2 궤적 세그멘트. 이것은 궤적에서 흐름도 내의 의사결정 블록(532) ( amax)으로부터의 "아니오" 의사결정 브랜치로서 도시되고, 추가되는 두 개의 궤적 세그멘트는 도 28c 및 도 30의 블록(540 및 542)에 의해서 표현된다. 이것은, amax의 관계가 "아니오"라면, 명백한 선택은 = amax가 될 것이기 때문인데, 이것은 속도 천이 알고리즘을 적용할 때에 전술된 세 개의 점검 중 하나가 초기 가속도의 크기가 amax보다 큰지 여부(|a0| > amax)이고, 즉 과다한 가속도이며, a0를 amax로 만드는 것이기 때문이다(도 27a의 블록(406) 참조).
|a0| = amax인 경우에, 최대 가속도 amax로 램핑 업하는 것은 도 30에서 무시되고, 궤적 가속도의 크기는 이미 최대 가속도 amax가 되어 있다.
지속기간 Tconst 동안의 제 1 궤적 세그멘트(540)에 대하여:
- 사용된 조작 변수(저크) 값은 0이고,
- 세그멘트 지속기간은 T2 = Tconst에 의해서 주어지며,
- 종점 가속도는 피크 가속도이고(aE8 = a0), 종점 속도 vE8 및 위치 p8은 시작점 a0, v0, p0, 제로 저크 및 세그멘트 지속기간 T2를 사용하여 궤적 방정식을 직접 적용함으로써 획득된다.
지속기간 T3 동안의 제 2 궤적 세그멘트(542)에 대하여:
- 사용되는 조작 변수(저크) 값은 J = -S x jdec이고,
- 궤적 세그멘트 지속기간은 에 의하여 주어지며,
- 종점 가속도는 0이고(aE9 = 0), 종점 속도는 vE9 = vf이며, 위치 pE11은 시작점 aE8, vE8, pE8, 저크 jdec 및 세그멘트 지속기간 T3를 사용하여 궤적 방정식(수학식 3, 4, 및 5)을 직접 적용함으로써 획득된다.
본 발명에 따르는 제 2 속도 천이 서브 알고리즘은 소망되는 최종 속도 vf에 도달되면 종결된다. 소망되는 최종 속도 vf는 임의의 값일 수 있고, 예를 들어 명령된 위치에서 멈춤 상태로 이동하도록 지시받는 경우에는 실질적으로 0이다.
도 31a 내지 도 31d는 -34.052 내지 18.167의 범위를 가지는 상이한 최종 속도 vf로 천이할 경우에 본 발명에 따르는 속도 천이 알고리즘을 적용할 때에 생성되는 다양한 궤적 또는 모션 제어 프로파일을 보여준다. 생성된 프로파일 모두는 동일한 시작점(p0, v0, a0)를 공유한다. 도 31a에서, 상이한 최종 속도 vf로 천이하면 상이한 이동 길이가 초래되고, 따라서 상이한 위치 레퍼런스가 얻어지며, 이것은 이제 명령된 위치로부터의 상이한 편차를 초래한다는 것이 명백하다. 궤적의 생성에 있어서의 궤적 세그멘트의 개수는 최종 속도 vf의 값에 의존하는데, 최대 네 개의 궤적 세그멘트가 생성되고 있다(도 31d를 참조한다). 궤적 또는 모션 제어 프로파일은 위의 섹션 2.0에서 논의된 피드포워드 토크 수요를 생성하거나 계산하기 위하여 제어기에 의해 사용된다.
5.0 근-탐색 알고리즘
궤적 또는 모션 제어 프로파일을 생성할 때에, 궤적이 언더슈트 또는 오버슈트가 없이 그리고 가능한 최단 시간 안에 명령된 위치에 도달하는 방식으로 궤적 속도가 제어되는 것이 필수적이다. 예를 들어, 궤적 거리가 상대적으로 짧은 길이여서 로드 핸들링 디바이스가 명령된 속도 vmax에 도달할 시간이 거의 없는 상황에서는, 언더슈트 또는 오버슈트가 없이 명령된 위치에 정밀하게 도달하기 위해서 궤적이 초기 시작 위치로부터 궤적 전체에 걸쳐서 여러 속도 천이를 겪을 필요가 있을 것이다. 이것은 궤적이 궤적 내에서 피크 속도 vpeak로 이동하고, 소망되는 최종 속도 vf로 다시 램핑 다운되는 것을 수반한다.
로드 핸들링 디바이스가 가능한 최단 시간 내에 궤적을 완료할 수 있도록, 이동하기 위한 것이지만 명령된 속도 vmax를 초과하지 않는 소망되는 피크 속도 vpeak를 찾는 것은 어려운 문제가 된다. 본 발명의 일 실시형태에 따르면, 초기 속도 v0 및 최대 제약 vmax 사이에서 "스윗 스폿(sweet spot)" 속도(근)를 예측하기 위해서 근 탐색 알고리즘이 채용되는데, 여기에서 목적 함수는 명령된 위치, 즉 종점 궤적 가속도 및 종점 속도가 실질적으로 0인 궤적 포인트에서부터의 궤적의 편차를 나타낸다. 근 탐색 알고리즘을 사용하는 것은 궤적이 모션 제어 프로파일의 시작에 있는 경우로 한정되지 않는다. 궤적의 하나 이상의 상황, 예를 들어 하나 이상의 제약 또는 명령된 위치에 의존하여, 모션 프로파일 생성기는 하나 이상의 상황이 초기의 하나 이상의 상황 중 임의의 하나와 다른 것에 응답하여 모션 제어 프로파일을 재생성할 수 있다. 모션 제어 프로파일의 이러한 재생성은 모션 제어 프로파일의 가속 페이즈 및/또는 감속 페이즈 내에 있는 동안에 명령될 수 있다. 이러한 실례에서, 근 탐색 알고리즘은 명령된 위치까지 이동하기 위한 잔여 거리에 대해서 "스윗 스폿" 속도를 예측할 때에, 모션 제어 프로파일의 재생성 스테이지에 적용될 수 있다.
근 탐색 알고리즘을 사용하는 것은 궤적 속도로 한정되지 않는다; 근 탐색 알고리즘은 궤적의 상이한 파라미터에 적용될 수 있다. 예를 들어, 근 탐색 알고리즘은 가능한 최단 시간 내에 및/또는 오버슈트가 없이 명령된 위치에 도달하기 위한 이상적인 궤적 가속 또는 감속을 찾는 데에 적용될 수 있다.
파라미터가 궤적 속도인 경우, 근 탐색 알고리즘은 위에서 논의된 속도 천이 알고리즘과 함께 적용되어 상이한 피크 속도 vpeak를 조사하는데, 이것을 위하여 상이한 궤적 속도에 도달하기 위한 궤적 세그멘트가 생성된다. 근 탐색 알고리즘은 속도 천이 알고리즘에 의해서 생성된 궤적 세그멘트의 결과를 사용하여 명령된 위치로부터의 오버슈트 또는 언더슈트의 정도를 결정할 것이다. 따라서, 예를 들어 "피크 속도 검색" 문제에 대하여, 이것은 "소망되는 피크 속도" vpeak의 상이한 값을 시도해보는 근-탐색알고리즘, 및 오버슈트가 실질적으로 0인 vpeak의 값을 검색하는 속도 천이 알고리즘을 적용하는 것으로 전환된다. 본 발명에 따르면, 근 탐색 알고리즘은 소망되는 최종 속도 vf가 명령된 속도 vmax의 한계에 속하고 명령된 속도까지 증가될 수 있는 상황에서 속도 천이 알고리즘을 호출할 것이다.
근 탐색 알고리즘에 의해서 속도 천이 알고리즘을 각각 호출하는 경우에, 속도의 크기를 소망되는 피크 속도 vpeak로 이동시키고, 다시 소망되는 최종 속도 vf로 낮추기 위한 하나 이상의 궤적 세그멘트들이 생성된다.
도 32a 내지 도 32c에 도시되는 예를 들면, 여기에서 소망되는 피크 속도 vpeak는 초기 위치 p0로부터 최종 속도 vf 및 가속도가 실질적으로 0인 명령된 위치로 이동하기 위해서 요구된다. 상단 프로파일(도 32a)은 위치 레퍼런스의 크기를 시간의 함수로서 나타내고, 중간 프로파일(도 32b)은 속도 레퍼런스의 크기를 시간의 함수로 나타내며, 하단 프로파일(도 32c)은 시간의 함수인 가속 레퍼런스의 크기를 나타낸다. 도 32a 내지 도 32c는 상대적으로 낮은 피크 속도 vA로부터 상대적으로 큰 피크 속도 vC 사이의 다수의 "선택된" 피크 속도에서의 다수의 속도 궤적 프로파일을 도시한다. 근 탐색 알고리즘은, 궤적이 주어진 초기 시작점으로부터 오버슈트 또는 언더슈트가 없이 주어진 종점까지의 점대점 이동을 완료하도록, 이상적인 피크 속도 vpeak를 명령된 속도 vmax에 대응하는 상한 및 하한 v0 사이에서 찾기 위해서 채택된다(도 32b를 참조한다). 본 발명을 설명하기 위하여, 명령된 위치로부터의 "편차"라는 용어는 명령된 위치를 언더슈트 또는 오버슈트하는 궤적을 커버하도록 넓게 해석된다. 도 32에 도시되는 예에서, 각각의 후보 피크 속도 vpeak에 대해서 다음의 두 가지 속도 천이가 일어날 것이다;
1) 초기 속도 v0로부터 소망되는 피크(예를 들어, vA)까지의 제 1 속도 천이, 및;
2) 초기 속도 vA(피크 속도 vA가 초기 속도에 재지정됨)로부터 실질적으로 0에 대응하는 소망되는 최종 속도 vf까지의 제 2 속도 천이.
근 탐색 알고리즘이 각각 반복될 때, 명령된 위치로부터의 편차의 정도를 결정하기 위해서 제 1 및 제 2 속도 천이를 적용함으로써 궤적 세그멘트들이 생성되고, 즉 궤적 세그멘트는 누적된 종점 위치 pE를 생성하도록 수학식 3, 4 및 5를 적용함으로써 통합된다. 속도 피크의 연속적인 값에 대한 누적된 종점의 명령된 위치로부터의 편차는 명령된 위치로부터의 언더슈트 또는 오버슈트의 정도, 즉 편차를 나타낸다. 따라서, 속도 천이 알고리즘을 적용하는 것과 함께 근 탐색 알고리즘을 각각 반복하면, 이러한 경우에는 소망되는 피크 속도vpeak인 근의 연속적인 더 정확한 근사화가 생성된다. 이것을 관찰하는 다른 방법은 하나 이상의 속도 천이 알고리즘이 근 탐색 알고리즘의 각각의 반복 내에서 내포되는 것이다. 근 탐색 알고리즘이 각각 반복될 때, 피크 속도 vpeak로 천이하기 위해서 계산된 필요한 궤적 세그멘트, 및 그러므로 명령된 위치로부터의 편차의 정도를 결정하기 위해서 적어도 하나의 속도 천이 알고리즘이 적용된다. 도 33에서의 편차 대 속도의 그래프에서 표시되는 바와 같은 "스윗 스폿" 속도는, 초기 속도의 크기 및 편차가 실질적으로 0인 명령된 속도 사이의 소망되는 피크 속도 vpeak를 보여준다. 도 33에 도시되는 특정 예에서, 목적 함수가 실질적으로 0인 "스윗 스폿" 속도는 29.63이다.
"근(root)" 속도로 천이할 때에 최종 속도 vf가 명령된 위치에서 실질적으로 0이 되도록 속도 천이 알고리즘에 의해서 생성되는 궤적 세그멘트를 구성하는 궤적 또는 모션 제어 프로파일은, 최적 모션 제어 프로파일 또는 최적 궤적이라고 불릴 수 있다. 근 탐색 알고리즘의 적용은 최적 피크를 탐색하는 것으로만 한정되지 않고, 근 탐색 알고리즘은 본 발명의 일 실시형태에서 전술된 속도 천이 알고리즘을 적용할 때에, 명령된 위치에 도달하기 위해서 궤적이 효과적으로 감속할 수 있도록 최적 감속 제약을 찾기 위해서 호출되기도 한다. 최적 감속 제약을 찾기 위해서 근 탐색 알고리즘을 적용하는 것의 추가적인 세부 내용이 섹션 7.0에서 논의된다.
6.0 역진
궤적이 명령된 위치를 오버슈트하는 상황이 존재할 수 있다. 이것은, 명령된 위치가 갑자기 변했거나 로드 핸들링 디바이스에 더 가까워졌거나, 명령된 위치까지의 이동 거리가 너무 짧아서, 소망되는 최종 속도 vf에 도달하는데 걸리는 시간이 너무 길어짐으로써 오버슈트를 초래할 수 있게 하도록 되는 상황일 수 있다. 소망되는 피크 속도 vpeak로, 그리고 소망되는 피크 속도 vpeak로부터 실질적으로 0과 같은 크기를 가지는 최종 속도 vf로 천이할 때에, 즉 궤적이 명령된 위치로 되돌아갈 때에 궤적 세그멘트들이 생성되도록, 소망되는 피크 속도 vpeak를 결정하기 위하여 근 탐색 알고리즘이 속도 천이 알고리즘과 함께 사용된다는 점에서, 명령된 위치로 역진하기 위한 궤적의 생성은 명령된 위치를 향하여 이동하는 경우의 궤적의 생성과 매우 유사하다. 명령된 위치로부터의 오버슈트가 길면, 그러면 궤적 속도의 크기는 명령된 위치로 램핑 다운하기 이전에 최대 속도 제약 vmax까지 증가될 수 있다. 오버슈트의 양자 모두의 경우에, 명령된 위치로 다시 천이하기 위해서 속도 천이 알고리즘이 적용된다.
7.0 강제 감속
궤적으로 들어가는 입력은 제어 시스템에 의하여 규칙적으로 갱신되고, 제약 중 하나 이상은 궤적의 변경, 예를 들어 상이한 목적지 또는 격자 셀에 방문하는 것 또는 격자 구조체 상의 장애물의 존재가 있었는지 여부에 의존하여 업데이트될 수 있다. 변경 중 하나 이상은 명령된 위치를 포함할 수 있고, 궤적 생성기가 업데이트된 명령된 위치에 기반하여 궤적을 재생상하게 할 수 있다. 명령된 위치가 업데이트되면 궤적이 원래 예상된 것보다 더 가깝게 종결되는 결과가 얻어질 수 있다. 따라서, 궤적 속도 및 가속도가 업데이트된 명령된 위치에서 실질적으로 0이 되도록 하는 감속 궤적이 요구된다. 이러한 감속은 제어기 또는 제어 시스템으로 하여금, 로드 핸들링 디바이스를 업데이트된 명령된 위치까지 감속하기 위한 필요한 토크 수요, 즉 제동력을 적용할 수 있게 한다. 본 발명의 특정 실시형태에서, 강제 감속 알고리즘은 속도를 현재 또는 초기 속도로부터 실질적으로 0인 최종 속도 vf까지 천이시키기 위해서 전술된 속도 천이 알고리즘을 사용하는 것을 수반하는 궤적에 적용된다. 이것은, 궤적 가속도 및 속도가 업데이트된 명령된 위치에서 실질적으로 0이 되도록 궤적의 감속을 강제하기 위하여 명령된 가속 대신에, 강제 감속(forced deceldratino; FD) 제약을 사용하여 하나 이상의 궤적 세그멘트를 생성하는 것을 수반할 수 있다.
강제 감속 알고리즘으로 들어가는 입력은 다음 표 3에 표시된다:
강제 감속을 사용한 궤적 생성
입력:
- 초기 위치 P0
- 초기 속도 v0
- 초기 가속도 a0
- 최종/업데이트된 위치 Pf
- 최대 속도 vmax(vmax > 0)
- 감소 페이즈 도중의 최대 가속도 크기 Dmax(Dmax > 0)
- 가속 페이즈 도중에 가속 크기인 저크 J2를 감소시키기(J2 > 0)
- 감속 페이즈 도중에 가속 크기인 저크 J3를 증가시키기(J3 > 0)
- 감속 페이즈 도중에 가속 크기인 저크 J4를 감소시키기(J4 > 0)
- 강제 감속 가속 크기 하한 FDmin(FDmin > 0)
- 강제 감속 가속 크기 상한 FDmax(FDmax > 0)
출력:
- 최종 위치에 도달하기 위해서 궤적이 반드시 취해야 하는 다음 단계를 기술하는 근접한 궤적 세그멘트들의 목록 - 각각의 세그멘트는 다음에 의해서 특성화된다
- - 저크 값(J), 및
- - 시간 지속기간(T)
표 3: 강제 감속 알고리즘의 입력 및 출력
FD 상한인 FDmax의 값은 명령된 가속도와 다르거나 실질적으로 같을 수 있고, 모터의 공차에 따라 달라진다. 로드 핸들링 디바이스의 경우에, FDmax는 휠 어셈블리의 구동 메커니즘의 공차 및/또는 격자 구조체 상의 로드 핸들링 디바이스의 안정성에 따라 달라진다. 제어 시스템은 계산된 종점 위치 pE로부터, 궤적이 업데이트된 명령된 위치를 언더슈트 또는 오버슈트하는지 여부를, 강제 감속 상한 FDmax 또는 강제 감속 하한 FDmin이 속도 천이 알고리즘을 적용할 때에 추가적 궤적 세그멘트(들)를 생성하기 위해서 사용되고 있는지 여부에 의존하여 판정할 것이다.
강제 감속을 적용하는 것은 도 34a 및 도 34b에 도시되는 흐름도(600)에서 요약된다. 입력 제약(602)에 후속하여, 프로세스는 근 탐색 알고리즘의 적용을 통하여 적절한 감속 제약을 계산하기 이전에 궤적이 FDmax 또는 FDmin 중 하나를 사용하여 감속하도록 강제될 수 있는지 여부를 결정하기 위한 하나 이상의 의사결정 프로세스를 수행함으로써 시작된다. 강제 감속 알고리즘의 처음 두 번의 의사결정 프로세스는, 궤적을 궤적 속도의 크기를 실질적으로 0으로, 즉 vf = 0이 되게 천이시키기 위한 속도 천이 알고리즘을 적용하기 위한 조건으로 만드는 것을 요구한다. 흐름도에 표시된 순서에서, 제 1 점검(604)은 속도가 증가되고 있는지 여부의 의사결정 프로세스를 수반한다. 궤적 속도가 증가되고 있으면, 제어 시스템은 적절한 저크 제약 J4를 적용하여, 속도에서의 임의의 추가적인 증가를 방지하기 위하여 가속도 a0를 실질적으로 0으로 램핑하기 위한 단일 궤적 세그멘트(606)를 생성한다. 예를 들어, 단일 궤적 세그멘트는 다음과 같이 생성된다:
- 사용되는 조작 변수(저크) 값이 J = J4이고,
- 세그멘트 지속기간이 T = 에 의해서 주어지며,
- 종점 가속도가 피크 가속도(aE1 = 0)이고, 및 종점 속도 vE1 및 위치 pE1이 시작점 a0, v0, p0, J = J4 및 세그멘트 지속기간 T를 사용하여 궤적 방정식(수학식 3, 4 및 5)을 직접 적용함으로써 획득된다.
궤적 세그멘트의 종점이 다음 궤적 세그멘트의 시작점에 재지정된다(608)(a0, v0, p0 ← aE1, vE1, pE1).
이것이 증가하고 있지 않으면, 제어 시스템은 다음 의사결정 프로세스(610)로 진행하여 초기 감속이 과다한지 여부를 궤적 가속도의 크기가 강제 감속 최대 제약보다 큰지, 즉 |a0| > FDmax인지 여부를 결정함으로써 결정한다. 가속도의 크기가 과다하면, 제어 시스템은 강제 감속 제약 FDmax와 실질적으로 매칭되도록 가속도의 크기를 램핑하기 위한 단일 궤적 세그멘트(612)를 생성한다.
예를 들어, 단일 궤적 세그멘트는 다음과 같이 생성된다:
- 사용되는 조작 변수(저크) 값이 J = J4이고,
- 세그멘트 지속기간이 T = 에 의해서 주어지며,
- 종점 가속도가 피크 가속도(aE2 = FDmax)이고, 및 종점 속도 vE2 및 위치 pE2가 시작점 a0, v0, p0, J = J4 및 세그멘트 지속기간 T를 사용하여 궤적 방정식을 직접 적용함으로써 획득된다.
- 궤적 세그멘트의 종점이 다음 궤적 세그멘트의 시작점에 재지정된다(614)(a0, v0, p0 ← aE2, vE2, pE2).
궤적 가속도가 증가되고 있지 않고 과다한 가속도를 가지지 않으면, 다음 세 번의 의사결정 프로세스(616, 620, 624)는 소망되는 최종 속도 vf, 즉 소망되는 최종 속도 vf와 실질적으로 같은 크기를 가지는 종점 속도로의 속도 천이를 하기 위한 천이 알고리즘을 적용하는 것을 수반한다. 의사결정 프로세스는, 강제 감속 제약 FDmax를 사용하여 속도 천이 알고리즘을 적용하면 궤적이 명령된 위치에 도달하게 될 것인지(616) 여부를 판정하는 것으로 이동한다. 긍정적이라면, 초기 속도 v0로부터 실질적으로 0과 같은 소망되는 최종 속도 vf까지의 속도 천이의 크기를 천이하기 위한 속도 천이 알고리즘을 사용하여 △v를 결정함으로써 하나 이상의 궤적 세그멘트가 생성된다(618)(여기에서 가속 제약은 FDmax와 같음). 긍정적이지 않으면, 강제 감속 FDmax가 충분하지 않을 수 있거나 너무 공격적일 수도 있다. 강제 감속 FDmax를 궤적에 적용하는 것이 충분하다고 여겨지지 않고 궤적이 업데이트된 명령된 위치를 여전히 오버슈트하게 할 것이라면(620), 유일한 옵션은 제어 시스템이 오버슈트로부터 복귀하고 이를 통하여 업데이트된 명령된 위치에 도달하기 위하여 섹션 6.0에서 논의된 "역진"(622)을 적용할 필요가 있을 것일 것이다. 궤적 세그멘트는 궤적 가속도의 크기를 FDmax로 감소시키기 위해서 생성된다. 그러면, 백투백 천이 알고리즘을 적용함을 통하여 △v를 결정함으로써, 오버슈트로부터 복귀하기 위한 하나 이상의 궤적 세그멘트가 생성된다. 이것은, 초기 속도 v0로부터 소망되는 피크 속도 vpeak 및 종점 위치 pE까지의 속도 천이의 크기를 천이하기 위하여 제 1 속도 천이 알고리즘을 적용하는 것을 수반한다. 그러면, 제 2 속도 천이 알고리즘이 적용될 때 종점 위치 pE가 명령된 위치에 있게 되도록, 피크 속도 vpeak로부터 램핑 다운하기 위해서 제 2 속도 천이 알고리즘이 적용된다. .
그러나, 최대 강제 감속 FDmax를 사용하여 속도 천이 알고리즘을 적용할 때에, 궤적 위치는 언더슈트되고, 그러면 최대 강제 감속 FDmax는 너무 공격적인 것으로 여겨질 수 있다. 이러한 실례에서는, 부드러운 강제 감속 제약 FDmin이 궤적에 적용될 필요가 있을 것고, 즉 FDmin을 명령된 가속도로서 사용하는 속도 천이 알고리즘을 적용한다. 하한 강제 감속 FDmin을 사용하여 속도 천이 알고리즘을 적용하면, 궤적 위치가 업데이트된 명령된 위치를 언더슈트하거나 해당 위치에 도달하게 되고(624), 그러면 속도 천이 알고리즘(626)이 FDmin을 사용하여 적용된다(여기에서, 궤적 가속도의 크기는 FDmin으로 감소됨). FDmin을 사용할 경우에 궤적은 언더슈트되고, 그러면 궤적 속도의 크기는 업데이트된 명령된 위치에 도달하기 위해서 FDmin을 사용하는 능력을 벗어나는 하한에 도달했고, 즉 소망되는 최종 속도 vf는 명령된 위치 이전에 종점에서 실질적으로 0에 도달한다.
속도 천이 알고리즘을 적용할 때에, 상단 강제 감속 FDmax가 궤적이 명령된 위치를 언더슈트하게 하지만, 하한 강제 감속 FDmin을 적용하면 궤적이 명령된 위치를 오버슈트하게 될 것이라면, 강제 FDmax 및 FDmin 사이에 궤적이 명령된 위치에 도달하게 하기 이해서 적용될 수 있는 감속 제약 FD가 존재한다. 이러한 상황에서, 제어 시스템은 근 탐색 알고리즘(628)으로 진행하여, 즉 vf가 실질적으로 0일 경우에 궤적이 최종 위치에 도달하게 하는 강제 감속 제약 FD를 결정한다. 근 탐색 알고리즘은 강제 감속의 한계인 상한 FDmax 및 하한 FDmin 사이에 적용된다. 목적 함수는 강제 감속 제약의 상한과 하한 사이에서 선택된 강제 감속 제약이 적용될 경우에 최종 위치로부터의 위치 편차의 정도이다. 근 탐색 알고리즘이 연속적으로 각각 반복될 때마다, 선택된 강제 감속 제약을 사용하여 궤적을 초기 시작점으로부터 소망되는 최종 속도 vf(vf는 실질적으로 0임)까지 천이시키기 위한 속도 천이 알고리즘이 적용됨으로써, 출력 목록에 있는 모든 세그멘트를 사용하여 누적된 종점 위치 pE를 결정하고, 즉 궤적을 초기 위치 p0로부터 적분하여 이러한 솔루션에 의해서 횡단된 총 거리 ΔP를 계산한다. 종점 위치 pE는, 즉 최종 속도 vf가 실질적으로 0일 경우에 명령된 위치로부터의 '편차'의 표시를 제공할 것이다. 근 탐색 알고리즘의 각각의 반복은 근(이러한 경우에는 강제 감속 FD임)에 대한 연속적으로 더 정확한 근사화를 생성한다. 궤적 속도를 최종 속도 vf로 천이시키기 위한 속도 천이 알고리즘과 함께 적용될 경우, 근 탐색 알고리즘을 사용하여 강제 감속 FD를 결정하는 것은 제어 시스템에게 책임이 있다. 근이 결정되면, 강제 감속 FD가 궤적에 적용되어 속도를 초기 시작점으로부터 vf가 실질적으로 0과 같은 종점까지 천이시킨다.
전술된 특정 실시형태가 격자 구조체 상에서 동작가능한 로봇식 로드 핸들링 디바이스에 관한 것이지만, 궤적 또는 모션 제어 프로파일을 생성하는 것이 모티브 이동을 요구하는 다른 모티브 디바이스 또는 로봇식 디바이스에 적용될 수 있다는 것이 이해될 것이다. 예를 들어, 생성된 궤적은 로봇식 암의 점대점 모션을 제어하기 위해서 사용될 수 있다.
도시되고 전술된 방법론이 블록들의 순서에 의해서 한정되지 않는다는 것이 이해될 것인데, 그 이유는 일부 블록들이 도시되고 본 명세서에서 설명되는 것과 다른 순서로 및/또는 다른 블록과 동시에 발생할 수 있기 때문이다. 동일한 결과를 얻게 되는 다양한 다른 브랜치, 흐름 경로, 및 블록들의 순서가 구현될 수 있다는 것이 이해될 수 있다.
속도 천이 알고리즘의 적용예
본 발명에 따른 속도 천이 알고리즘을 적용하는 것이 도 35a 내지 도 35c에 도시되는 궤적 그래프에 의해서 시연될 수 있다. 궤적은 초기 속도 레퍼런스 v0로부터 소망되는 최종 속도 레퍼런스 vf로 천이하는 것을 나타낸다. 도 35c에 도시된 본 발명의 특정 예에서, 속도 천이는 초기 속도 레퍼런스 v0인 +18로부터 소망되는 최종 속도 vf인 -16까지이다. 쉽게 설명하기 위해서, 궤적은 명령된 위치에서 소망되는 최종 속도 vf에 도달한다. 그래프들은 속도 레퍼런스를 소망되는 최종 속도 vf로 천이시키기 위해서 필요한 상이한 궤적 세그멘트를 나타내기 위해서 스테이지 0, 1, 2, 및 3으로 나누어진다.
처음에는, 가속도의 크기가 +ve이고, 따라서 궤적은 소망되는 최종 속도 vf로부터 멀어지게, 즉 반대 방향으로 가속되고 있다(소망되는 최종 속도가 음수라는 것에 주의한다). 제 1 속도 천이 서브 알고리즘을 적용하기:-
A) 제 1 질문: 가속도가 과다한가? 아니오.
B) 제 2 질문: 궤적이 vf로부터 멀리 가속되고 있나? 예.
제 2 질문을 해결하기 위하여, 궤적 그래프 내의 스테이지 0에 의해서 표현된 제 1 속도 천이 서브 알고리즘을 적용하는 제 1 스테이지는 궤적 가속도의 크기를 0으로 램핑 다운하여 궤적이 최종 속도 vf로부터 더 멀어지게 가속되는 것을 방지하기 위한 궤적을 생성하는 것이다. 이것은 도 35a에 도시되는 가속도 그래프에 의해서 표시된다. 초기 속도 델타는 도 35c의 속도 그래프에 표시된 △v0에 의해서 주어진다.
궤적 세그멘트는 이러한 스테이지 도중에 생성되고, 이렇게 생성된 궤적 세그멘트의 종점은 다음 서브-문제에 대한 초기 궤적 포인트가 되며, 즉(a0, v0, p0) ←(aE, vE, pE)이 성립되고, 속도 델타도 이에 따라서 계산된다: △v1 ←(vf - vE).
C) 제 3 질문: 가속도가 즉시 시작해서 0까지 램핑 다운되어도 궤적이 vf를 오버슈트할까? 아니요인데, 그 이유는 이전의 질문에 응답하여 적용된 궤적 세그멘트에 의해서 가속도가 이미 0까지 램핑 다운된 바 있기 때문이다.
제 1 속도 천이 서브 알고리즘이 적용되었으면, 궤적은 제 2 속도 서브 알고리즘을 적용하기 위한 상태가 된다. 궤적 그래프에 표시된 스테이지(1), (2) 및(3)은 제 2 속도 천이 서브 알고리즘의 적용 시에 궤적 세그멘트가 생성되는 것을 나타낸다.
제 2 속도 천이 서브 알고리즘을 적용하는 것은 초기 속도 레퍼런스가 주어지면 피크 가속도 apeak를 수학식 21로부터 계산하는 것을 수반한다. 이러한 특정한 예에서, 피크 가속도 apeak는 최대 가속도의 그것보다 크다. 결과적으로, 제 2 속도 천이 서브 알고리즘을 적용하는 것은 amax가 될 때까지 가속도를 증가시키는 것을 수반하는데, 이것은 한동안 amax에서 유지되어야 하고, 그 후에 마지막으로 소망되는 최종 속도 vf를 만족하도록 시간에 맞춰서 0으로 다시 램핑 다운될 필요가 있다. 다르게 말하면, 세 개의 궤적 세그멘트 1, 2, 및 3에 의해서 커버되는 궤적의 이러한 부분들은 사다리꼴처럼 보이게 될 것이다.
도 35a에서(1)로 표현된 제 1 궤적 세그멘트는 저크 값을 적용함으로써 가속도를 명령된 최대 가속도 amax까지 증가시키는 것을 수반한다. 그러면 속도 델타 △v2 ←(vf - vE)가 얻어지고, 궤적 세그멘트의 종점은 다음 서브-문제의 초기 궤적 포인트에 할당되며, 즉(a0, v0, p0) ←(aE, vE, pE)이다.
(2)로 표현되는 제 2 궤적 세그멘트는 저크 값을 0과 같아지게 함으로써 가속도를 한동안 최대 가속도 amax에서 유지하는 것을 수반한다. 결과적으로, 속도는 가속도가 최대 가속도 amax인 시간 지속기간 동안에 선형으로 변하고, 이러한 포인트에서 가속도의 크기는 궤적이 최종 스테이지(3)에 진입할 때에 감소된다. 그러면 속도 델타 △v3 ←(vf - vE)가 얻어지고, 궤적 세그멘트의 종점은 다음 서브-문제의 초기 궤적 포인트에 할당되며, 즉(a0, v0, p0) ←(aE, vE, pE)이다.
(3)으로 표시되는 제 3 및 마지막 궤적 세그멘트는 저크 값을 적용하여 소망되는 최종 속도 vf를 만족하도록 가속도의 크기를 시간에 맞춰서 감소시키는 것을 수반한다. 최종 궤적 세그멘트sms 소망되는 최종 속도 vf에 도달될 때까지 속도 레퍼런스를 감소시킨다. 이것이 도 35c에서 소망되는 최종 속도 vf까지의 부드러운 경사에 의해서 표시된다.

Claims (34)

  1. 모션 디바이스의 이동을 제어하기 위한 궤적을 생성하기 위한 방법으로서,
    i) 상기 궤적의 사양을 수신하는 단계 - 상기 사양은 명령된 위치를 포함함 -,
    ii) 적어도 하나의 저크 제약(jerk constraint)을 수신하는 단계; 및
    iii) 상기 적어도 하나의 저크 제약에 기반하여 하나 이상의 궤적 세그멘트들의 시퀀스를 생성하는 단계 - 상기 하나 이상의 궤적 세그멘트들 각각은 저크 레퍼런스(jerk reference), 가속 레퍼런스, 속도 레퍼런스 및 위치 레퍼런스 중 적어도 하나를 시간의 함수로서 규정하는 상기 궤적의 각각의 부분임 -
    를 포함하고,
    상기 궤적 세그멘트들의 시퀀스 중 하나 이상의 궤적 세그멘트는, 상기 하나 이상의 궤적 세그멘트의 속도 레퍼런스의 크기를 주어진 시간 내에 요구되는 최종 속도 레퍼런스로 이동시키는 것을 포함하는 속도 천이 알고리즘을 적용함으로써 생성되며,
    상기 요구되는 최종 속도 레퍼런스와 상기 속도 레퍼런스 사이의 차이는 속도 델타를 정의하고,
    상기 속도 천이 알고리즘은 상기 속도 델타의 함수인 크기를 가지는 피크 가속도를 계산하는 것을 포함하는, 궤적 생성 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 및/또는 적어도 하나의 감속 제약을 수신하는 단계를 더 포함하고,
    상기 적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 적어도 하나의 감속 제약, 및 적어도 하나의 저크 제약은 하나 이상의 궤적 세그멘트들의 시퀀스를 생성하기 위한 복수 개의 제약을 정의하는, 궤적 생성 방법.
  3. 제 2 항에 있어서,
    상기 복수 개의 제약 중 적어도 하나의 값은 로드 핸들링 디바이스의 총 질량의 함수인, 궤적 생성 방법.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 속도 제약, 적어도 하나의 가속 제약, 및/또는 적어도 하나의 감속 제약 중 임의의 하나의 값은 상기 로드 핸들링 디바이스의 총 질량에 반비례하는, 궤적 생성 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 하나 이상의 궤적 세그멘트들 각각의 시작점이 초기 위치 레퍼런스, 초기 속도 레퍼런스 및 초기 가속 레퍼런스를 포함하고, 상기 하나 이상의 궤적 세그멘트들 각각의 종점이 종점 위치 레퍼런스, 종점 속도 레퍼런스 및 종점 가속 레퍼런스를 포함하도록, 상기 하나 이상의 궤적 세그멘트들 각각은 각각의 시작점 및 각각의 종점을 가지는, 궤적 생성 방법.
  6. 제 5 항에 있어서,
    상기 속도 델타는 요구되는 최종 속도 레퍼런스 및 하나 이상의 궤적 세그멘트의 초기 또는 종점 속도 레퍼런스 중 어느 하나 사이의 차이에 기반하는, 궤적 생성 방법.
  7. 제 2 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 복수 개의 제약은 가속 제약을 포함하고,
    상기 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 상기 궤적의 가속 레퍼런스의 크기가 계산된 피크 가속도와 실질적으로 같은지 여부, 및/또는
    ii) 계산된 피크 가속도가 상기 가속 제약보다 작거나 실질적으로 같은지 여부, 및/또는
    iii) 계산된 피크 가속도가 상기 가속 제약을 초과하는지 여부에 기반하는, 궤적 생성 방법.
  8. 제 7 항에 있어서,
    상기 하나 이상의 궤적 세그멘트는, 요구되는 최종 속도 레퍼런스가 실질적으로 0이 되도록 상기 적어도 하나의 저크 제약을 적용함으로써 생성된, 궤적 생성 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 가속 레퍼런스가 계산된 피크 가속도와 실질적으로 같은 것에 응답하여 상기 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 상기 하나 이상의 궤적 세그멘트의 초기 가속 레퍼런스가 계산된 피크 가속도와 실질적으로 같은 크기를 가지고, 상기 하나 이상의 궤적 세그멘트의 각각의 종점 가속도가 실질적으로 0과 같은 크기를 가지며, 상기 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 상기 적어도 하나의 저크 제약을 적용하는 단계를 포함하는, 궤적 생성 방법.
  10. 제 7 항 내지 제 9 항 중 어느 한 항에 있어서,
    계산된 피크 가속도가 상기 가속 제약보다 작거나 같은 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 피크 가속도와 실질적으로 같은 크기를 가지도록 상기 적어도 하나의 저크 제약을 적용하여 제 1 궤적 세그멘트를 생성하는 단계; 및
    ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속도의 크기가 실질적으로 0과 같으며, 상기 제 2 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 상기 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계를 포함하는, 궤적 생성 방법
  11. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,
    계산된 피크 가속도의 크기가 상기 가속 제약을 초과하는 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 상기 가속 제약과 실질적으로 같은 크기를 가지도록, 상기 적어도 하나의 저크 제약을 적용하여 제 1 궤적 세그멘트를 생성하는 단계;
    ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 상기 가속 제약과 실질적으로 같아지도록, 실질적으로 0인 크기를 가지는 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계; 및
    iii) 상기 제 2 궤적 세그멘트의 종점이 제 3 궤적 세그멘트의 시작점에 할당되고, 상기 제 3 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같으며, 상기 제 3 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록, 적어도 하나의 저크 제약을 적용하여 상기 제 3 궤적 세그멘트를 생성하는 단계를 포함하는, 궤적 생성 방법.
  12. 제 11 항에 있어서,
    상기 하나 이상의 궤적 세그멘트는, 상기 궤적 가속 레퍼런스의 크기가 상기 가속 제약보다 실질적으로 작은 것에 응답하여 생성된, 궤적 생성 방법.
  13. 제 7 항 내지 제 10 항 중 어느 한 항에 있어서,
    계산된 피크 가속도가 상기 가속 제약을 초과하는 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 제 1 궤적 세그멘트의 종점 가속 레퍼런스가 상기 가속 제약과 실질적으로 같은 크기를 가지도록 실질적으로 0인 크기를 가지는 적어도 하나의 저크 제약을 적용하여 상기 제 1 궤적 세그멘트를 생성하는 단계; 및
    ii) 상기 제 1 궤적 세그멘트의 종점이 제 2 궤적 세그멘트의 시작점에 할당되고, 상기 제 2 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같으며, 상기 제 2 궤적 세그멘트의 종점 속도가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지도록 적어도 하나의 저크 제약을 적용하여 상기 제 2 궤적 세그멘트를 생성하는 단계를 포함하는, 궤적 생성 방법
  14. 제 13 항에 있어서,
    상기 하나 이상의 궤적 세그멘트는, 상기 궤적 가속 레퍼런스의 크기가 상기 가속 제약과 실질적으로 같은 것에 응답하여 생성된, 궤적 생성 방법.
  15. 제 7 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 속도 천이 알고리즘을 적용하는 단계는,
    i) 상기 가속 레퍼런스의 크기가 상기 가속 제약을 초과하는 것; 및/또는
    ii) 상기 궤적이 요구되는 최종 속도 레퍼런스 값으로부터 멀어지게 가속되는 것; 및/또는
    iii) 상기 궤적이 요구되는 최종 속도 레퍼런스 값을 오버슈트하는 것
    에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함하는, 궤적 생성 방법.
  16. 제 15 항에 있어서,
    상기 궤적 가속 레퍼런스의 크기가 상기 가속 제약을 초과하는 것에 응답하여, 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 상기 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스가 상기 가속 제약의 크기와 실질적으로 같은 크기를 가지도록 상기 적어도 하나의 저크 제약을 적용하는 단계를 포함하는, 궤적 생성 방법.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 방법은,
    i) 속도 델타의 크기가 실질적으로 0과 같고 상기 궤적 가속 레퍼런스의 크기가 실질적으로 0과 같지 않은지 여부를 결정하는 단계; 및/또는
    ii) 상기 속도 델타의 크기 및 상기 궤적 가속 레퍼런스의 크기의 곱이 실질적으로 0보다 작은지 여부를 결정하는 단계; 및
    단계 (i) 또는 단계(ii) 중 임의의 단계가 예이면, 상기 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스가 실질적으로 0과 같은 크기를 가지도록 상기 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계에 의하여, 상기 궤적이 요구되는 최종 속도 레퍼런스 값으로부터 멀어지게 가속되고 있는지 여부를 결정하는 단계를 더 포함하는, 궤적 생성 방법.
  18. 제 15 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 궤적이 요구되는 최종 속도를 오버슈트하는 것에 응답하여 하나 이상의 궤적 세그멘트를 생성하는 단계는,
    i) 잠정적(tentative) 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0이 되도록 상기 적어도 하나의 저크 제약을 적용하여 상기 잠정적 궤적 세그멘트를 계산하는 단계 - 상기 잠정적 궤적 세그멘트는 초기 위치 레퍼런스, 초기 속도 레퍼런스 및 초기 가속 레퍼런스를 포함하는 시작점, 및 종점 위치 레퍼런스, 종점 속도 레퍼런스 및 종점 가속 레퍼런스를 포함하는 종점을 가짐 -;
    ii) 요구되는 최종 속도 레퍼런스와 상기 잠정적 궤적 세그멘트의 종점 속도 레퍼런스 사이의 차이에 대응하는 보조 속도 델타를 계산하는 단계; 및
    iii) 상기 속도 델타 및 상기 보조 속도 델타의 곱이 실질적으로 0보다 작으면 상기 잠정적 궤적 세그멘트를 궤적 세그멘트들의 시퀀스 내에 포함시키고, 그렇지 않으면 상기 잠정적 궤적 세그멘트를 무시하는 단계를 포함하는, 궤적 생성 방법.
  19. 제 16 항 내지 제 18 항 중 어느 한 항에 있어서,
    상기 방법은,
    상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스, 종점 속도 레퍼런스, 및 종점 가속 레퍼런스가 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점 위치 레퍼런스, 시작점 속도 레퍼런스 및 시작점 가속 레퍼런스에 할당되도록, 상기 하나 이상의 궤적 세그멘트들 각각의 종점을 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점에 할당하는 단계를 더 포함하는, 궤적 생성 방법
    .
  20. 제 2 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 복수 개의 제약은 가속 제약을 포함하고,
    상기 가속 레퍼런스는 감속 레퍼런스를 더 포함하며,
    궤적 세그멘트들의 시퀀스 내의 하나 이상의 궤적 세그멘트가 상기 감속 제약의 상단 제약과 하단 제약 내에 있거나 상단 제약과 하단 제약 중 어느 하나와 같은 적어도 하나의 감속 레퍼런스를 시간의 함수로서 더 규정하도록, 상기 가속 제약은 상단 감속 제약 및 하단 감속 제약을 가지는 감속 제약을 더 포함하는, 궤적 생성 방법.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 저크 제약은,
    i) 상기 가속 레퍼런스의 크기를 증가시키기 위한 제 1 저크 제약,
    ii) 상기 가속 레퍼런스의 크기를 감소시키기 위한 제 2 저크 제약,
    iii) 상기 감속 레퍼런스의 크기를 증가시키기 위한 제 3 저크 제약, 및
    iv) 상기 감속 레퍼런스의 크기를 감소시키기 위한 제 4 저크 제약
    을 포함하는, 궤적 생성 방법.
  22. 제 20 항 또는 제 21 항에 있어서,
    상기 방법은,
    i) 상기 궤적 속도의 크기가 증가하는 것에 응답하여, 상기 하나 이상의 궤적 세그멘트의 종점 감속 레퍼런스가 실질적으로 0과 같은 크기를 가지도록 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계; 및/또는
    ii) 상기 감속 레퍼런스의 크기가 상기 상단 감속 제약보다 실질적으로 큰 것에 응답하여, 상기 하나 이상의 궤적 세그멘트의 종점 감속 레퍼런스가 상기 상단 감속 제약과 실질적으로 같은 크기를 가지도록 적어도 하나의 저크 제약을 적용함으로써 하나 이상의 궤적 세그멘트를 생성하는 단계
    에 의하여, 강제 감속 알고리즘을 상기 궤적에 적용하는 단계를 더 포함하는, 궤적 생성 방법.
  23. 제 20 항 내지 제 22 항 중 어느 한 항에 있어서,
    상기 방법은,
    i) 상기 하나 이상의 궤적 세그멘트의 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔, 상기 상단 감속 제약과 실질적으로 같은 크기를 가지는 상기 감속 제약에 기반하여 하나 이상의 궤적 세그멘트를 생성하도록 속도 천이 알고리즘을 적용하는 단계를 더 포함하는, 궤적 생성 방법.
  24. 제 23 항에 있어서,
    상기 방법은,
    i) 대응하는 종점 감속 레퍼런스의 크기가 실질적으로 0과 같고, 대응하는 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같을 때, 상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스가 명령된 위치를 오버슈트하는지 여부를 결정하는 단계; 및
    ii) 상기 궤적이 명령된 위치를 오버슈트하는 것에 응답하여, 상기 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스가 명령된 위치에서의 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔 하나 이상의 궤적 세그멘트를 생성하도록 속도 천이 알고리즘을 적용하여 상기 궤적을 명령된 위치로 복귀시키기 위한 하나 이상의 궤적 세그멘트를 생성하도록 "역진(reverse back)"을 적용하는 단계를 더 포함하는, 궤적 생성 방법.
  25. 제 20 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 방법은,
    i) 상기 하나 이상의 궤적 세그멘트의 대응하는 종점 감속 레퍼런스의 크기가 실질적으로 0이고 대응하는 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같을 때, 상기 궤적의 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스가 명령된 위치를 언더슈트하는지 여부를 결정하는 단계; 및
    ii) 상기 궤적이 명령된 위치를 언더슈트하는 것에 응답하여, 상기 하단 감속 제약과 실질적으로 같은 크기를 가지는 상기 감속 제약에 기반하여 상기 하나 이상의 궤적 세그멘트를 생성하도록 상기 속도 천이 알고리즘을 적용하는 단계에 의하여 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함하는, 궤적 생성 방법.
  26. 제 20 항 내지 제 25 항 중 어느 한 항에 있어서,
    상기 방법은,
    i) 목적 함수의 근을 찾기 위한 근 탐색 알고리즘을 사용하여 강제 감속 제약을 예측하는 단계 - 상기 목적 함수는 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스 및 종점 가속 레퍼런스의 크기가 실질적으로 0일 때 상기 명령된 위치로부터의, 상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스의 위치 편차의 양이고, 상기 근은 상기 명령된 위치로부터의 위치 편차의 양이 미리 결정된 임계보다 작은 경우에 상기 종점 위치 레퍼런스의 값에 대응함 -;
    ii) 상기 명령된 위치로부터의 상기 하나 이상의 궤적 세그멘트의 종점 레퍼런스의 위치 편차의 크기가 미리 결정된 임계보다 작을 때, 상기 종점 가속 레퍼런스의 크기가 실질적으로 0과 같고 상기 하나 이상의 궤적 세그멘트의 종점 속도 레퍼런스가 요구되는 최종 속도 레퍼런스와 실질적으로 같아지게끔, 예측된 강제 감속 제약과 실질적으로 같은 감속 제약을 사용하여 상기 하나 이상의 궤적 세그멘트를 생성하도록 상기 속도 천이 알고리즘을 적용하는 단계에 의하여, 하나 이상의 궤적 세그멘트를 생성하는 단계를 더 포함하는, 궤적 생성 방법.
  27. 제 26 항에 있어서,
    예측된 강제 감속 제약은 실질적으로 상기 상단 강제 감속 제약과 상기 하단 강제 감속 제약 사이에 있는 크기를 가지는, 궤적 생성 방법.
  28. 제 26 항 또는 제 27 항에 있어서,
    상기 속도 천이 알고리즘이 상기 근 탐색 알고리즘에 의해 예측된 각각의 연속적인 감속 제약에 대하여 하나 이상의 궤적 세그멘트를 생성하도록, 상기 속도 천이 알고리즘은 상기 근 탐색 알고리즘 내에 내포되는(nested), 궤적 생성 방법.
  29. 제 5 항 내지 제 28 항 중 어느 한 항에 있어서,
    상기 방법은,
    상기 하나 이상의 궤적 세그멘트의 종점 위치 레퍼런스, 종점 속도 레퍼런스, 및 종점 가속 레퍼런스가 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 그들 각각의 시작점 위치 레퍼런스, 시작점 속도 레퍼런스 및 시작점 가속 레퍼런스에 할당되도록, 상기 하나 이상의 궤적 세그멘트들 각각의 종점을 상기 시퀀스 내의 하나 이상의 후속 궤적 세그멘트의 시작점에 할당하는 단계를 더 포함하는, 궤적 생성 방법.
  30. 제 1 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 하나 이상의 궤적 세그멘트가 S-곡선 방정식을 사용하여 생성되도록, 상기 궤적은 S-형 또는 유한 저크 궤적 프로파일인, 궤적 생성 방법.
  31. 제 1 항 내지 제 30 항 중 어느 한 항에 있어서,
    적어도 하나의 저크 제약을 적용하여 상기 하나 이상의 궤적 세그멘트를 생성하는 것은,
    궤적 세그멘트들의 시퀀스 내의 하나 이상의 궤적 세그멘트에 대하여 시간의 함수로서 연속적으로 변하는 가속 레퍼런스를 정의하는 궤적을 생성하는, 궤적 생성 방법.
  32. 모션 디바이스의 이동을 제어하기 위한 궤적을 생성하기 위한 궤적 생성기로서,
    i) 메모리; 및
    ii) 메모리에 저장된 컴퓨터-실행가능 명령을 실행하도록 구성된 프로세서를 포함하고,
    상기 프로세서는 명령된 위치를 수신하면, 제 1 항 내지 제 31 항 중 어느 한 항에 정의된 방법에 의하여 모션 제어 프로파일을 생성하도록 구성된, 궤적 생성기.
  33. 로드 핸들링 디바이스로서,
    휠들의 제 1 및 제 2 쌍을 포함하는 휠 어셈블리,
    상기 휠 어셈블리를 구동하기 위한 구동 메커니즘, 및
    상기 구동 메커니즘에 연결된 제어기를 포함하고,
    상기 구동 메터니즘 및 제어기는, 제 1 항 내지 제 31 항 중 어느 한 항의 방법에 의하여 생성된 모션 제어 프로파일에 따라서 상기 휠 어셈블리를 구동하도록 지시받는, 로드 핸들링 디바이스.
  34. 비-일시적 컴퓨터 매체로서,
    실행되는 것에 응답하여, 컴퓨터 시스템이 제 1 항 내지 제 31 항 중 어느 한 항에 따른 동작을 수행하게 하는 컴퓨터-실행가능 명령이 저장되어 있는, 비-일시적 컴퓨터 매체.
KR1020237025293A 2020-12-24 2021-12-21 모션 디바이스의 모션 제어 KR20230124704A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
GBGB2020680.1A GB202020680D0 (en) 2020-12-24 2020-12-24 Motion control of a load handling device operative on
GB2020680.1 2020-12-24
GB2020668.6 2020-12-24
GB2020684.3 2020-12-24
GBGB2020681.9A GB202020681D0 (en) 2020-12-24 2020-12-24 Motion control of a load handling device operative on
GB2020681.9 2020-12-24
GBGB2020668.6A GB202020668D0 (en) 2020-12-24 2020-12-24 Motion control of a load handling device operative on
GBGB2020684.3A GB202020684D0 (en) 2020-12-24 2020-12-24 Motion control of a load handling device operative on
PCT/EP2021/087163 WO2022136475A1 (en) 2020-12-24 2021-12-21 Motion control of a motion device

Publications (1)

Publication Number Publication Date
KR20230124704A true KR20230124704A (ko) 2023-08-25

Family

ID=79269956

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020237025282A KR20230124702A (ko) 2020-12-24 2021-12-21 로봇식 로드 핸들링 디바이스의 모션 제어
KR1020237025308A KR20230124706A (ko) 2020-12-24 2021-12-21 로봇식 로드 핸들링 디바이스의 모션 제어
KR1020237025310A KR20230124707A (ko) 2020-12-24 2021-12-21 모션 디바이스의 모션 제어
KR1020237025293A KR20230124704A (ko) 2020-12-24 2021-12-21 모션 디바이스의 모션 제어

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020237025282A KR20230124702A (ko) 2020-12-24 2021-12-21 로봇식 로드 핸들링 디바이스의 모션 제어
KR1020237025308A KR20230124706A (ko) 2020-12-24 2021-12-21 로봇식 로드 핸들링 디바이스의 모션 제어
KR1020237025310A KR20230124707A (ko) 2020-12-24 2021-12-21 모션 디바이스의 모션 제어

Country Status (8)

Country Link
US (4) US20240045435A1 (ko)
EP (4) EP4268038A1 (ko)
JP (4) JP2024500248A (ko)
KR (4) KR20230124702A (ko)
AU (4) AU2021405502B2 (ko)
CA (4) CA3204768A1 (ko)
GB (5) GB2604223B (ko)
WO (4) WO2022136475A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11541764B2 (en) * 2021-02-01 2023-01-03 Rivian Ip Holdings, Llc Systems and methods for controlling motor engagement for a vehicle
CN114995118B (zh) * 2022-07-18 2023-08-22 英孚康(浙江)工业技术有限公司 一种抑制过冲和反向的跃度自适应s型速度曲线规划方法
EP4357482A1 (en) 2022-10-18 2024-04-24 Université Paris Cité Electrocatalytic generation of imines from alcohols and amines
CN115657608B (zh) * 2022-10-26 2023-09-08 英孚康(浙江)工业技术有限公司 基于Brent迭代法的全局非对称式S型柔性速度曲线规划方法
CN117921684B (zh) * 2024-03-22 2024-06-14 北京壹点灵动科技有限公司 机械臂的控制方法、装置、存储介质及电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG160423A1 (en) * 2005-03-23 2010-04-29 Hurco Co Inc Method of tolerance-based trajectory planning and control
US8175725B2 (en) * 2008-09-08 2012-05-08 National Instruments Corporation Adapting move constraints for position based moves in a trajectory generator
GB201314313D0 (en) 2013-08-09 2013-09-25 Ocado Ltd Apparatus for retrieving units from a storage system
GB201409883D0 (en) 2014-06-03 2014-07-16 Ocado Ltd Methods, systems, and apparatus for controlling movement of transporting devices
CN104298114A (zh) * 2014-10-29 2015-01-21 西南科技大学 自适应鲁棒s型速度规划算法
US9919739B2 (en) * 2016-02-04 2018-03-20 Ford Global Technologies, Llc Indication of vehicle direction of travel
US20190152057A1 (en) * 2016-04-26 2019-05-23 Ocado Innovation Limited Robotic load handler coordination system, cell grid system and method of coordinating a robotic load handler
NO342037B1 (en) * 2016-11-02 2018-03-19 Autostore Tech As Controlling movements of a robot running on tracks
US11117743B2 (en) * 2017-09-28 2021-09-14 Symbotic Llc Storage and retrieval system
NO346364B1 (en) * 2018-04-25 2022-06-27 Autostore Tech As Container handling vehicle with first and second sections and battery in second section, and system.
GB2570119B (en) * 2018-01-10 2022-06-08 Ocado Innovation Ltd A controller and method for transporting devices
GB201803771D0 (en) * 2018-03-09 2018-04-25 Ocado Innovation Ltd Transporting device position determining apparatus and method
WO2019238676A1 (en) * 2018-06-12 2019-12-19 Autostore Technology AS A safety device for a remotely operated vehicle, a system and a method of improving the operational safety of a grid system
WO2019238702A1 (en) 2018-06-12 2019-12-19 Autostore Technology AS Automated storage system with a container vehicle and a charging system
GB201900653D0 (en) 2019-01-17 2019-03-06 Ocado Innovation Ltd RFID tags
GB201903982D0 (en) * 2019-03-22 2019-05-08 Ocado Innovation Ltd Load-handling device
GB2584677B (en) * 2019-06-10 2023-02-15 Glowbuzzer Ltd Method and apparatus for trajectory-planning

Also Published As

Publication number Publication date
GB2604223A (en) 2022-08-31
AU2021405485A1 (en) 2023-06-29
GB2604224B (en) 2023-05-31
US20240043224A1 (en) 2024-02-08
GB202304724D0 (en) 2023-05-17
AU2021405508A1 (en) 2023-06-29
AU2021405485B2 (en) 2024-05-02
WO2022136482A1 (en) 2022-06-30
EP4268038A1 (en) 2023-11-01
JP2024501530A (ja) 2024-01-12
GB2604225A (en) 2022-08-31
KR20230124707A (ko) 2023-08-25
GB2604224A (en) 2022-08-31
KR20230124702A (ko) 2023-08-25
AU2021405502A1 (en) 2023-06-29
AU2021405506A1 (en) 2023-06-29
AU2021405506B2 (en) 2024-05-02
CA3205072A1 (en) 2022-06-30
WO2022136480A1 (en) 2022-06-30
GB2604226A (en) 2022-08-31
GB2613759A (en) 2023-06-14
US20240045435A1 (en) 2024-02-08
JP2024501531A (ja) 2024-01-12
CA3206367A1 (en) 2022-06-30
WO2022136475A1 (en) 2022-06-30
EP4268037A1 (en) 2023-11-01
AU2021405485A9 (en) 2024-06-27
CA3204856A1 (en) 2022-06-30
GB2604223B (en) 2023-05-24
US20240059487A1 (en) 2024-02-22
EP4268036A1 (en) 2023-11-01
GB2604226B (en) 2023-05-31
GB2613759B (en) 2024-02-21
EP4268039A1 (en) 2023-11-01
KR20230124706A (ko) 2023-08-25
CA3204768A1 (en) 2022-06-30
JP2024500248A (ja) 2024-01-05
US20240053752A1 (en) 2024-02-15
JP2024501532A (ja) 2024-01-12
GB2604225B (en) 2023-05-31
WO2022136454A1 (en) 2022-06-30
AU2021405502B2 (en) 2024-05-09
AU2021405508B2 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
KR20230124704A (ko) 모션 디바이스의 모션 제어
US20130317675A1 (en) Transport carriage system and method for controlling running of transport carriage
CN116888551A (zh) 运动装置的运动控制
JP2017126286A (ja) 移動体、移動体システム、および、移動体の補正係数算出方法
CN118055894A (zh) 确定存储***中装载处理设备的运动学状态
CA3229742A1 (en) Determining a kinematic state of a load handling device in a storage system