KR20220062570A - 객체 이동 시스템 - Google Patents

객체 이동 시스템 Download PDF

Info

Publication number
KR20220062570A
KR20220062570A KR1020227011599A KR20227011599A KR20220062570A KR 20220062570 A KR20220062570 A KR 20220062570A KR 1020227011599 A KR1020227011599 A KR 1020227011599A KR 20227011599 A KR20227011599 A KR 20227011599A KR 20220062570 A KR20220062570 A KR 20220062570A
Authority
KR
South Korea
Prior art keywords
images
wheel
environment
processing devices
control commands
Prior art date
Application number
KR1020227011599A
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 AU2019903398A external-priority patent/AU2019903398A0/en
Priority claimed from PCT/AU2020/050113 external-priority patent/WO2020163908A1/en
Application filed by 커먼웰쓰 사이언티픽 앤드 인더스트리얼 리서치 오가니제이션 filed Critical 커먼웰쓰 사이언티픽 앤드 인더스트리얼 리서치 오가니제이션
Publication of KR20220062570A publication Critical patent/KR20220062570A/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • 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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K7/00Disposition of motor in, or adjacent to, traction wheel
    • B60K7/0007Disposition of motor in, or adjacent to, traction wheel the motor being electric
    • 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/0492Storage devices mechanical with cars adapted to travel in storage aisles
    • 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/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • 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/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • 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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/028Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal
    • G05D1/0282Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using a RF signal generated in a local control room
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/0723Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips the record carrier comprising an arrangement for non-contact communication, e.g. wireless communication circuits on transponder cards, non-contact smart cards or RFIDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60KARRANGEMENT OR MOUNTING OF PROPULSION UNITS OR OF TRANSMISSIONS IN VEHICLES; ARRANGEMENT OR MOUNTING OF PLURAL DIVERSE PRIME-MOVERS IN VEHICLES; AUXILIARY DRIVES FOR VEHICLES; INSTRUMENTATION OR DASHBOARDS FOR VEHICLES; ARRANGEMENTS IN CONNECTION WITH COOLING, AIR INTAKE, GAS EXHAUST OR FUEL SUPPLY OF PROPULSION UNITS IN VEHICLES
    • B60K7/00Disposition of motor in, or adjacent to, traction wheel
    • B60K2007/0092Disposition of motor in, or adjacent to, traction wheel the motor axle being coaxial to the wheel axle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2200/00Type of vehicle
    • B60Y2200/40Special vehicles
    • B60Y2200/45Vehicles having steerable wheels mounted on a vertically moving column
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D7/00Steering linkage; Stub axles or their mountings
    • B62D7/02Steering linkage; Stub axles or their mountings for pivoted bogies
    • B62D7/026Steering linkage; Stub axles or their mountings for pivoted bogies characterised by comprising more than one bogie, e.g. situated in more than one plane transversal to the longitudinal centre line of the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D7/00Steering linkage; Stub axles or their mountings
    • B62D7/06Steering linkage; Stub axles or their mountings for individually-pivoted wheels, e.g. on king-pins
    • B62D7/14Steering linkage; Stub axles or their mountings for individually-pivoted wheels, e.g. on king-pins the pivotal axes being situated in more than one plane transverse to the longitudinal centre line of the vehicle, e.g. all-wheel steering
    • B62D7/15Steering linkage; Stub axles or their mountings for individually-pivoted wheels, e.g. on king-pins the pivotal axes being situated in more than one plane transverse to the longitudinal centre line of the vehicle, e.g. all-wheel steering characterised by means varying the ratio between the steering angles of the steered wheels
    • B62D7/1509Steering linkage; Stub axles or their mountings for individually-pivoted wheels, e.g. on king-pins the pivotal axes being situated in more than one plane transverse to the longitudinal centre line of the vehicle, e.g. all-wheel steering characterised by means varying the ratio between the steering angles of the steered wheels with different steering modes, e.g. crab-steering, or steering specially adapted for reversing of the vehicle
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C23/00Combined instruments indicating more than one navigational value, e.g. for aircraft; Combined measuring devices for measuring two or more variables of movement, e.g. distance, speed or acceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40425Sensing, vision based motion planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/44Event detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/10Recognition assisted with metadata
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Signal Processing (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

환경 내에서 객체를 이동시키기 위한 시스템으로서, 시스템은 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠을 포함한다. 모듈형 휠은 객체에 부착되도록 구성된 본체, 휠, 휠을 회전시키도록 구동부, 및 구동부를 제어하도록 구성된 제어기를 포함한다. 구성된 하나 이상의 프로세싱 디바이스들은 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하고 ― 복수의 이미징 디바이스들은 환경 내에서의 객체의 이미지들을 캡처하도록 구성됨 ―, 환경 내에서의 객체 위치를 결정하기 위하여 이미지들을 분석하고, 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하고, 제어 명령들을 제어기 ― 제어기는 구동부를 제어하고, 이에 따라 객체를 이동시키기 위하여 제어 명령들에 응답함 ― 에 제공하기 위하여 제공된다.

Description

객체 이동 시스템
[0001] 본 발명은 환경 내에서 객체를 이동시키기 위한 시스템 및 방법에 관한 것으로, 하나의 특정한 예에서, 객체에 부착된 하나 이상의 모듈형 휠(modular wheel)들을 이용하여 객체를 이동시키기 위한 시스템 및 방법에 관한 것이다.
[0002] 이 명세서에서의 모든 종래의 간행물(또는 그로부터 도출된 정보) 또는 공지된 모든 사항에 대한 참조는, 종래의 간행물(또는 그로부터 도출된 정보) 또는 공지된 사항이 이 명세서와 관련된 노력이 이루어진 분야에서 공통된 일반적인 지식의 일부를 형성한다는 것을 승인 또는 인정 또는 어떠한 형태의 제안(suggestion)으로 간주되지 않으며, 간주되어서도 안된다.
[0003] 오스트랄라시아 로봇 자동화 컨퍼런스 2016 (ACRA 2016)에서 Troy Cordie, Tirthankar Bandyopadhyay, Jonathan Roberts, Ryan Steindl, Ross Dungavell, 및 Kelly Greenop에 의한 "Enabling rapid field deployments using modular mobility units"(107 내지 115 페이지)은 급속 필드 전개들을 위한 맞춤형 플랫폼 개발을 가능하게 하는 모듈형 휠들의 세트를 설명한다. 모듈형 휠은 현존하는 모듈형 및 검사 로봇들에 의해 영향받지만, 다양한 환경들을 탐사하는 것에 대한 조작하기 간단한(simple-to-operate) 해결책을 제공한다. 각각의 휠은 임의의 연속적인 배향이 평면 내에서 달성되는 것을 허용하는 2 개의 자유도(degree of freedom)들을 제공한다. 온보드 컴퓨팅 및 wi-fi 접속은 모듈형 휠들이 개별적으로 또는 협력적으로 동작하는 것을 가능하게 한다. 이종적 로봇 플랫폼(heterogeneous robot platform)들은 어댑터들의 이용을 통해 요구된 바와 같이 생성될 수 있다. 상이한 형상들의 로봇들로, 크기들 및 구성들은 실험실 내에서 그리고 필드에서 입증된 바와 같이 실행시간에 생성될 수 있다. 시스템 모델의 동적 본질은 차동적, 애커먼(Ackerman), 및 비홀로노믹(nonholonomic) 전방향성 제어 옵션들을 사용자에게 제공하는 제어 특성들을 기술한다.
[0004] 위에서 설명된 시스템에서, 전체적인 제어는 조작자에 의해 수행되고, 이에 의해, 수동적 제어와 함께 이용하기 위하여 시스템을 제한한다.
[0005] 하나의 넓은 형태에서, 본 발명의 양태는 환경 내에서 객체를 이동시키기 위한 시스템을 제공하도록 추구하고, 여기서, 시스템은: 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 - 적어도 하나의 모듈형 휠은: 객체에 부착되도록 구성된 본체; 휠; 휠을 회전시키도록 구성된 구동부(drive); 및 구동부를 제어하도록 구성된 제어기를 포함함 -; 및 하나 이상의 프로세싱 디바이스들 - 하나 이상의 프로세싱 디바이스들은: 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하고 - 복수의 이미징 디바이스들은 환경 내에서의 객체의 이미지들을 캡처하도록 구성됨 -; 환경 내에서의 객체 위치를 결정하기 위하여 이미지들을 분석하고; 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하고; 그리고 제어 명령들을 제어기 - 제어기는 구동부를 제어하고, 이에 의해, 객체를 이동시키기 위하여 제어 명령들에 응답함 - 에 제공하도록 구성됨 - 을 포함한다.
[0006] 하나의 실시예에서, 시스템은 객체에 장착된 하나 이상의 수동 휠들을 포함한다.
[0007] 하나의 실시예에서, 적어도 하나의 모듈형 휠은 휠의 배향을 조절하도록 구성된 조향 구동부(steering drive)를 포함하고, 그리고 여기서, 제어기는 조향 구동부를 제어하여, 이에 의해, 휠의 배향을 변경하도록 구성된다.
[0008] 하나의 실시예에서, 적어도 하나의 모듈형 휠은 하나 이상의 프로세싱 디바이스들과 무선으로 통신하도록 구성된 트랜시버를 포함한다.
[0009] 하나의 실시예에서, 적어도 하나의 모듈형 휠은: 구동부; 제어기; 트랜시버; 및 조향 구동부 중 적어도 하나를 급전하도록 구성된 전력 공급부를 포함한다.
[0010] 하나의 실시예에서, 제어 명령들은: 각각의 휠을 위한 휠 배향; 및 각각의 휠을 위한 회전의 레이트 중 적어도 하나를 포함한다.
[0011] 하나의 실시예에서, 시스템은 복수의 모듈형 휠들을 포함한다.
[0012] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 개개의 제어 명령들을 각각의 제어기에 제공하여, 이에 의해, 각각의 모듈형 휠을 독립적으로 제어하도록 구성된다.
[0013] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 제어 명령들을 제어기들에 제공하도록 구성되고, 여기서, 제어기들은 각각의 모듈형 휠을 독립적으로 제어하기 위하여 통신한다.
[0014] 하나의 실시예에서, 제어 명령들은 객체를 위한 방향 및 통행의 레이트를 포함하고, 여기서, 제어기들은: 각각의 휠을 위한 휠 배향; 및 각각의 휠을 위한 회전의 레이트 중 적어도 하나를 결정하기 위하여 제어 명령들을 이용한다.
[0015] 하나의 실시예에서, 시스템은: 다수의 모듈형 휠들을 차동적으로 회전시키는 것; 및 하나 이상의 모듈형 휠들의 배향을 변경하는 것 중 적어도 하나에 의해 차량을 조향하도록 구성된다.
[0016] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 객체 구성을 결정하고; 적어도 부분적으로 객체 규모(object extent)에 따라 제어 명령들을 생성하도록 구성된다.
[0017] 하나의 실시예에서, 객체 구성은: 객체의 물리적 규모; 및 객체와 연관된 이동 파라미터들 중 적어도 하나를 표시한다.
[0018] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 객체에 대한 각각의 휠의 포지션(position)을 표시하는 휠 구성을 결정하고; 적어도 부분적으로 휠 구성에 따라 제어 명령들을 생성하도록 구성된다.
[0019] 하나의 실시예에서, 적어도 하나의 모듈형 휠은 알려진 위치에서 객체에 각각 부착된다.
[0020] 하나의 실시예에서, 객체는 플랫폼을 포함하고, 여기서, 적어도 하나의 모듈형 휠은 플랫폼에 부착된다.
[0021] 하나의 실시예에서, 객체는 플랫폼에 의해 지지된 항목을 포함한다.
[0022] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 각각의 모듈형 휠; 및 객체 중 적어도 하나의 아이덴티티(identity)를 결정하고; 아이덴티티에 따라 제어 명령들을 생성하도록 구성된다. 제18항에 따른 시스템으로서, 여기서, 하나 이상의 프로세싱 디바이스들은 네트워크 식별자를 적어도 부분적으로 이용하여 아이덴티티를 결정하도록 구성된다.
[0023] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 머신 판독가능 코딩된 데이터를 이용하여 아이덴티티를 결정하도록 구성된다.
[0024] 하나의 실시예에서, 머신 판독가능 코딩된 데이터는 가시적 데이터이고, 여기서, 하나 이상의 프로세싱 디바이스들은 머신 판독가능 코딩된 데이터를 검출하기 위하여 이미지들을 분석하도록 구성된다.
[0025] 하나의 실시예에서, 머신 판독가능 코딩된 데이터는 태크 상에서 인코딩되고, 여기서, 하나 이상의 프로세싱 디바이스들은 태그 판독기로부터 머신 판독가능 코딩된 데이터를 표시하는 신호들을 수신하도록 구성된다.
[0026] 하나의 실시예에서, 태그들은: 단거리 무선 통신 프로토콜 태그들; RFID 태그들; 및 블루투스(Bluetooth) 태그들 중 적어도 하나이다.
[0027] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 통행 경로 및 목적지 중 적어도 하나를 표시하는 라우팅 데이터(routing data)를 결정하고; 라우팅 데이터 및 객체 위치에 따라 제어 명령들을 생성하도록 구성된다.
[0028] 하나의 실시예에서, 라우팅 데이터는: 허용된 객체 통행 경로; 허용된 객체 이동들; 상이한 객체들을 위한 허용된 인접성 제한들; 객체들을 위한 허용된 구역들; 객체들을 위한 거부된 구역들 중 적어도 하나를 표시한다.
[0029] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 객체, 및 객체에 부착된 적어도 하나의 모듈형 휠 중 적어도 하나에 대한 아이덴티티를 결정하고; 객체 아이덴티티를 적어도 부분적으로 이용하여 라우팅 데이터를 결정하도록 구성된다.
[0030] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 교정 제어 명령들을 생성하고; 교정 제어 명령들에 응답하여 객체 및 적어도 하나의 모듈형 휠 중 적어도 하나의 이동을 모니터링하고; 제어 명령들을 생성하기 위하여 모니터링의 결과들을 이용하도록 구성된다.
[0031] 하나의 실시예에서, 이미징 디바이스들은: 고정된 위치들에서의 환경 내에서 포지셔닝되는 것; 및 환경에 대하여 정적인 것 중 적어도 하나이다.
[0032] 하나의 실시예에서, 이미징 디바이스들 중의 적어도 일부는 적어도 부분적으로 중첩하는 관측 시야(field of view)들을 가지기 위하여 환경 내에서 포지셔닝되고, 여기서, 하나 이상의 프로세싱 디바이스들은: 상이한 이미지 스트림들에서 중첩하는 이미지들을 식별하고 - 중첩하는 이미지들은 중첩하는 관측 시야들을 가지는 이미징 디바이스들에 의해 캡처되는 이미지들임 -; 환경 내에서의 객체 위치들을 결정하기 위하여 중첩하는 이미지들을 분석하도록 구성된다.
[0033] 하나의 실시예에서, 이미징 디바이스들 중의 적어도 일부는 적어도 부분적으로 중첩하는 관측 시야들을 가지기 위하여 환경 내에서 포지셔닝되고, 여기서, 하나 이상의 프로세싱 디바이스들은: 환경 내에서의 객체 이동들을 결정하기 위하여 시간에 걸쳐 객체 위치들에서의 변경들을 분석하고; 객체 이동들을 상황 인지 규칙(situational awareness rule)들과 비교하고; 상황 인지 이벤트들을 식별하기 위하여 비교의 결과들을 이용하도록 구성된다.
[0034] 하나의 실시예에서, 중첩하는 이미지들은 거의 동시에 캡처된 동기적 중첩하는 이미지(synchronous overlapping image)들이다.
[0035] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 각각의 캡처된 이미지의 캡처 시간을 결정하고; 캡처된 시간을 이용하여 동기적 이미지들을 식별하도록 구성된다.
[0036] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 이미징 디바이스에 의해 생성된 캡처 시간; 각각의 이미지와 연관된 수신 시간 - 수신 시간은 하나 이상의 프로세싱 디바이스들에 의한 수신의 시간을 표시함 -; 및 이미지들에서의 이미지 내용의 비교 중 적어도 하나를 이용하여 캡처 시간을 결정하도록 구성된다.
[0037] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 객체 이미지들을 식별하기 위하여 각각의 이미지 스트림으로부터의 이미지들을 분석하고 - 객체 이미지들은 객체들을 포함하는 이미지들임 -; 중첩하는 이미지들을, 동일한 객체를 포함하는 객체 이미지들로서 식별하도록 구성된다.
[0038] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 이미징 디바이스들의 포지셔닝에 적어도 부분적으로 기초하여 중첩하는 이미지들을 식별하도록 구성된다.
[0039] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 정적 이미지 영역들을 식별하기 위하여 이미지 스트림으로부터의 다수의 이미지들을 분석하고; 객체 이미지들을, 비-정적 이미지 영역들을 포함하는 이미지들로서 식별하도록 구성된다.
[0040] 하나의 실시예에서, 이미지들 중 적어도 하나는 배경 참조 이미지이다.
[0041] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 시각적 선체 기법(visual hull technique); 및 이미지들에서의 기점 마킹(fiducial marking)들의 검출; 및 다수의 삼각측량된 이미지들에서의 기점 마킹들의 검출 중 적어도 하나를 이용하여 객체 위치를 결정하도록 구성된다.
[0042] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 교정 데이터에 따라 이미지들을 해석하도록 구성된다.
[0043] 하나의 실시예에서, 교정 데이터는: 각각의 이미징 디바이스의 이미징 성질들을 표시하는 내인성 교정 데이터; 및 환경 내에서의 이미징 디바이스들의 상대적인 포지셔닝을 표시하는 외인성 교정 데이터 중 적어도 하나를 포함한다.
[0044] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 이미징 디바이스를 이용하여 상이한 포지션들로부터 캡처된 정의된 패턴들의 이미지들을 수신함으로써; 그리고 이미징 디바이스의 이미지 캡처 성질들을 표시하는 교정 데이터를 생성하기 위하여 이미지들을 분석함으로써, 교정 프로세스 동안에 교정 데이터를 생성하도록 구성된다.
[0045] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 환경 내에서의 타깃들의 캡처된 이미지들을 수신함으로써; 동일한 타깃을 도시하는 상이한 이미징 디바이스들에 의해 캡처된 이미지들을 식별하기 위하여 캡처된 이미지들을 분석함으로써; 그리고 이미징 디바이스들의 상대적인 포지션 및 배향을 표시하는 교정 데이터를 생성하기 위하여 식별된 이미지들을 분석함으로써, 교정 프로세스 동안에 교정 데이터를 생성하도록 구성된다.
[0046] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 환경 모델 - 환경 모델은: 환경; 환경에서의 이미징 디바이스들의 위치; 현재의 객체 위치들; 객체 이동들; 예측된 장애물들; 예측된 객체 위치들; 및 예측된 객체 이동들 중 적어도 하나를 표시함 - 을 생성하도록 구성된다.
[0047] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 환경 모델의 그래픽 표현을 생성하도록 구성된다.
[0048] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 환경 내에서의 객체 이동들을 결정하기 위하여 시간에 걸쳐 객체 위치들에서의 변경들을 분석하고; 객체 이동들을 상황 인지 규칙들과 비교하고; 상황 인지 이벤트들을 식별하기 위하여 비교의 결과들을 이용하도록 구성된다.
[0049] 하나의 실시예에서, 상황 인지 이벤트의 식별에 응답하여, 하나 이상의 프로세싱 디바이스들은: 상황 인지 이벤트의 표시를 레코딩하는 것; 상황 인지 이벤트를 표시하는 통지를 생성하는 것; 출력 디바이스로 하여금, 상황 인지 이벤트를 표시하는 출력을 생성하게 하는 것; 경보를 활성화하는 것; 및 객체의 동작이 제어되게 하는 것 중 적어도 하나를 포함하는 액션을 수행하도록 구성된다.
[0050] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은: 실질적으로 실시간으로 상황 인지 이벤트를 식별하고; 실질적으로 실시간으로 액션을 수행하도록 구성된다.
[0051] 하나의 실시예에서, 이미징 디바이스들은: 보안 이미징 디바이스들; 모노스코픽 이미징 디바이스(monoscopic imaging device)들; 비-컴퓨터 비전(non-computer vision) 기반 이미징 디바이스들; 및 연관된 내인성 교정 정보를 가지지 않는 이미징 디바이스들 중 적어도 하나이다.
[0052] 하나의 넓은 형태에서, 본 발명의 양태는 환경 내에서 객체를 이동시키기 위한 방법을 제공하도록 추구하고, 방법은 시스템을 이용하여 수행되고, 시스템은: 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 - 적어도 하나의 모듈형 휠은: 객체에 부착되도록 구성된 본체; 휠; 휠을 회전시키도록 구성된 구동부; 및 구동부를 제어하도록 구성된 제어기를 각각 포함함 -; 및 하나 이상의 프로세싱 디바이스들 - 방법은 하나 이상의 프로세싱 디바이스들에서: 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하는 단계 - 복수의 이미징 디바이스들은 환경 내에서의 객체의 이미지들을 캡처하도록 구성됨 -; 환경 내에서의 객체 위치를 결정하기 위하여 이미지들을 분석하는 단계; 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하는 단계; 및 제어 명령들을 제어기 - 제어기는 구동부를 제어하고, 이에 의해, 객체를 이동시키기 위하여 제어 명령들에 응답함 - 에 제공하는 단계를 포함함 - 을 포함한다.
[0053] 하나의 넓은 형태에서, 본 발명의 양태는 시스템을 이용하여 환경 내에서 객체를 이동시키기 위한 컴퓨터 프로그램 제품을 제공하도록 추구하고, 시스템은: 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 - 적어도 하나의 모듈형 휠은: 객체에 부착되도록 구성된 본체; 휠; 휠을 회전시키도록 구성된 구동부; 및 구동부를 제어하도록 구성된 제어기를 각각 포함함 -; 및 하나 이상의 프로세싱 디바이스들 - 컴퓨터 프로그램 제품은 컴퓨터 실행가능 코드를 포함하고, 컴퓨터 실행가능 코드는, 하나 이상의 프로세싱 디바이스들에 의해 실행될 때, 하나 이상의 프로세싱 디바이스들로 하여금: 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하게 하고 - 복수의 이미징 디바이스들은 환경 내에서의 객체의 이미지들을 캡처하도록 구성됨 -; 환경 내에서의 객체 위치를 결정하기 위하여 이미지들을 분석하게 하고; 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하게 하고; 제어 명령들을 제어기 - 제어기는 구동부를 제어하고, 이에 의해, 객체를 이동시키기 위하여 제어 명령들에 응답함 - 에 제공하게 한다.
[0054] 발명의 넓은 형태들 및 그 개개의 특징들은 함께 및/또는 독립적으로 이용될 수 있고, 별도의 넓은 형태들에 대한 참조는 제한하도록 의도되지는 않는다는 인식될 것이다. 또한, 방법의 특징들은 시스템 또는 장치를 이용하여 수행될 수 있고, 시스템 또는 장치의 특징들은 방법을 이용하여 구현될 수 있다는 것이 인식될 것이다.
[0055] 본 발명의 다양한 예들 및 실시예들은 동반 도면들을 참조하여 지금부터 설명될 것이고, 여기서: -
[0056] 도 1a는 모듈형 휠의 예의 개략적인 단면도(end view)이고;
[0057] 도 1b는 도 1a의 모듈형 휠의 개략적인 측면도이고;
[0058] 도 1c는 객체에 장착된 도 1a의 모듈형 휠들의 개략적인 단면도이고;
[0059] 도 1d는 도 1c의 객체의 개략적인 측면도이고;
[0060] 도 2는 환경 내에서의 객체 모니터링을 위한 시스템의 예의 개략도이고;
[0061] 도 3은 환경 내에서 객체를 이동시키기 위한 방법의 예의 플로우차트이고;
[0062] 도 4는 분산된 컴퓨터 시스템의 예의 개략도이고;
[0063] 도 5는 프로세싱 시스템의 예의 개략도이고;
[0064] 도 6은 클라이언트 디바이스의 예의 개략도이고;
[0065] 도 7a는 모듈형 휠의 특정 예의 개략적인 단면도이고;
[0066] 도 7b는 도 7a의 모듈형 휠의 개략적인 측면도이고;
[0067] 도 8은 도 7a의 모듈형 휠을 위한 휠 제어기의 예의 개략도이고;
[0068] 도 9a 내지 도 9d는 상이한 휠 제어 구성들의 예들의 개략도들이고;
[0069] 도 10은 환경 내에서 객체를 이동시키기 위한 방법의 예의 플로우차트이고;
[0070] 도 11a 및 도 11b는 환경 내에서 객체를 이동시키기 위한 방법의 추가의 예의 플로우차트이고;
[0071] 도 12는 환경 내에서 객체를 이동시키기 위한 시스템과의 이용을 위한 교정 방법의 예의 플로우차트이고;
[0072] 도 13a 내지 도 13c는 환경 내에서 객체를 이동시키기 위한 방법의 특정 예의 플로우차트이고;
[0073] 도 14는 상황 인지 모니터링 방법의 일부로서, 객체들을 식별하는 방법의 예의 플로우차트이고;
[0074] 도 15는 상황 인지 모델의 그래픽 표현의 예의 개략도이고;
[0075] 도 16은 이미지 영역 분류를 위한 프로세스의 예의 플로우차트이고;
[0076] 도 17은 폐색 완화(occlusion mitigation)를 위한 프로세스의 예의 플로우차트이고; 그리고
[0077] 도 18은 가중화된 객체 검출을 위한 프로세스의 예의 플로우차트이다.
[0078] 환경 내에서 객체를 이동시키기 위한 모듈형 휠의 예는 도 1a 내지 도 1d를 참조하여 지금부터 설명될 것이다.
[0079] 이 예에서, 모듈형 휠(150)은 객체에 부착되도록 구성된 본체(151)를 포함한다. 본체는 임의의 적절한 형태일 수 있고, 장착 브라켓(mounting bracket) 또는 유사한 것의 이용을 통한 것을 포함하는 임의의 방식으로 객체에 부착될 수 있다.
[0080] 모듈형 휠은 액슬(axle) 또는 유사한 것, 및 휠을 회전시키도록 구성된 모터와 같은 구동부(153)를 이용하여 본체에 전형적으로 지지된 휠(152)을 포함한다. 구동부(153)를 제어하고, 이에 의해, 휠(152)이 요구된 바와 같이 회전되는 것을 허용하도록 구성되는 제어기(154)가 제공된다.
[0081] 제어기는 임의의 적절한 형태일 수 있지만, 하나의 예에서는, 비-휘발성(예컨대, 하드 디스크) 스토리지(storage) 상에서 저장된 소프트웨어 애플리케이션들을 실행하는 프로세싱 시스템이지만, 이것은 필수적이지 않다. 그러나, 제어기는 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(Field Programmable Gate Array)(필드 프로그래밍가능 게이트 어레이)와 같은 로직을 구현하는 것과 임의적으로 연관된 펌웨어, 또는 임의의 다른 전자 디바이스, 시스템, 또는 배열과 같은 임의의 전자 프로세싱 디바이스일 수 있다는 것이 또한 이해될 것이다.
[0082] 이용 시에, 하나 이상의 모듈형 휠들은 객체가 이동되는 것을 허용하기 위하여 객체에 부착될 수 있고, 이것의 예는 도 1c 및 도 1d를 참조하여 지금부터 설명될 것이다.
[0083] 이 예에서, 플랫폼 형태인 객체(160)가 도시되고, 4 개의 모듈형 휠들(150)은 플랫폼에 장착되어, 4 개의 모듈형 휠들(150) 각각을 제어함으로써 플랫폼이 이동되는 것을 허용한다. 그러나, 광범위한 상이한 배열들이 고려되고, 위의 예는 오직 예시의 목적을 위한 것이고, 제한하도록 의도되지는 않는다.
[0084] 예를 들어, 시스템은 구동된 모듈형 휠들 및 수동 휠들의 조합을 이용할 수 있고, 하나 이상의 모듈형 휠들은 동력(motive force)을 제공하기 위하여 이용될 수 있는 반면, 수동 휠들은 객체를 완전히 지지하기 위하여 이용된다. 조향은 이하에서 더 상세하게 설명되는 바와 같이 개별적인 휠들을 조향함으로써, 및/또는 예를 들어, 스키드 조향 배열(skid steer arrangement)들 또는 유사한 것을 이용하는, 상이한 모듈형 휠들의 차동 회전(differential rotation)을 통해 달성될 수 있다.
[0085] 현재의 예에서, 모듈형 휠들은 플랫폼의 인접한 코너들에서 제공되는 것으로 도시된다. 그러나, 이것은 필수적이지 않고, 다음이 플랫폼을 적당하게 지지하기 위하여 충분하다는 것을 가정하여, 모듈형 휠들은 임의의 위치에서 장착될 수 있다.
[0086] 현재의 예는 플랫폼의 이용에 초점을 맞추지만, 모듈형 휠은 광범위한 상이한 객체들과 함께 이용될 수 있다. 예를 들어, 플랫폼들, 팔레트(pallet)들, 또는 다른 유사한 구조들을 갖는 휠들을 이용하는 것은 하나 이상의 항목들이 플랫폼에 의해 지지되고 집합적으로 이동되는 것을 허용한다. 따라서, 휠들은 다수의 항목들을 지지하는 팔레트에 부착될 수 있어서, 팔레트 잭(pallet jack) 또는 유사한 것의 이용을 요구하지 않으면서, 팔레트 및 항목들이 이동되는 것을 허용할 수 있다. 이 사례에서, 용어 객체는 플랫폼/팔레트 및 그 상에서 지지된 임의의 항목들을 집합적으로 지칭하도록 의도된다. 대안적으로, 플랫폼을 요구하지 않으면서, 휠들은 항목에 직접적으로 부착될 수 있고, 이 경우에, 항목은 객체이다.
[0087] 이동될 수 있는 객체들의 본질은 바람직한 구현예, 의도된 사용 시나리오, 및 환경의 본질에 따라 변동될 것이다. 특정한 예의 환경들은 공장들, 창고들, 저장 환경들, 또는 유사한 것을 포함하지만, 기법들은 더 널리 적용될 수 있고 실내 및/또는 실외 환경들에서 이용될 수 있다는 것이 인식될 것이다. 유사하게, 객체들은 광범위한 객체들일 수 있고, 예를 들어, 차량들의 컴포넌트들 등과 같은, 공장 내에서 이동되어야 할 항목들을 포함할 수 있다. 그러나, 이것은 제한하도록 의도되지는 않는다는 것이 인식될 것이다.
[0088] 환경 내에서의 객체들의 이동을 제어하기 위한 시스템은 도 2를 참조하여 지금부터 설명될 것이다.
[0089] 이 예에서, 이동 제어는 이동가능한 객체 및 임의적으로 하나 이상의 다른 객체들(201, 202, 203)이 존재하는 환경(E) 내에서 수행된다. 이와 관련하여, 용어 이동가능한 객체(160)는 모듈형 휠들을 부착하였기 때문에 이동가능한 임의의 객체를 지칭하는 반면, 용어 다른 객체들(201, 202, 203)은, 모듈형 휠들을 포함하지 않고, 정적 객체들 및/또는 모듈형 휠들 이외의 기구들을 이용하여 이동하는 객체들일 수 있는 객체를 지칭한다. 이러한 다른 객체들은 널리 다양한 객체들, 그리고 특히, 사람, 동물들, 차량들, 무인 운반 차량(automated guided vehicle)(AGV)들과 같은 자율 또는 반자율 차량들 등과 같은 이동하는 객체들일 수 있지만, 이것은 제한하도록 의도되지는 않는다. 4 개의 객체들이 현재의 예에서 도시되지만, 이것은 오직 예시의 목적을 위한 것이고, 프로세스는 임의의 수의 객체들로 수행될 수 있다. 예를 들어, 환경은 하나 이상의 이동가능한 객체들을 오직 포함할 수 있고, 임의의 다른 객체들을 포함하지 않을 수 있다.
[0090] 객체들의 이동을 제어하기 위한 시스템은 전형적으로, 이미지들이 환경(E) 내에서의 객체들(160, 201, 202, 203)에서 캡처되는 것을 허용하기 위하여 환경(E)에서 제공되는 이미징 디바이스들(220)로부터 이미지 스트림들을 수신하도록 구성된 하나 이상의 전자 프로세싱 디바이스들(210)을 포함한다.
[0091] 예시의 목적을 위하여, 하나 이상의 전자 프로세싱 디바이스들은 이하에서 더 상세하게 설명되는 바와 같이, 네트워크 아키텍처를 통해, 이동 전화들, 휴대용 컴퓨터들, 태블릿들 등과 같은 하나 이상의 클라이언트 디바이스들에 접속될 수 있는, 컴퓨터 시스템들, 서버들 등과 같은 하나 이상의 프로세싱 시스템들의 일부를 형성한다는 것이 가정된다. 또한, 예시의 용이함을 위하여, 나머지 설명은 프로세싱 디바이스를 참조할 것이지만, 다수의 프로세싱 디바이스들이 이용될 수 있고, 프로세싱은 필요한 바와 같이 프로세싱 디바이스들 사이에서 분산될 수 있다는 것과, 단수에 대한 지칭은 복수의 배열을 망라하고 그 반대도 마찬가지라는 것이 인식될 것이다.
[0092] 이미징 디바이스들(220)의 본질은 바람직한 구현예에 따라 변동될 것이지만, 하나의 예에서, 이미징 디바이스들은 비-컴퓨터 비전 모노스코픽 카메라들과 같은 저비용 이미징 디바이스들이다. 하나의 특정한 예에서, 보안 카메라들이 이용될 수 있지만, 다음의 설명으로부터 분명해지는 바와 같이, 웹캠(webcam)들 등과 같은 다른 저비용 카메라들이 추가적으로 및/또는 대안적으로 이용될 수 있다. 광범위한 상이한 이미징 디바이스들(220)이 이용되는 것이 또한 가능하고, 이미징 디바이스들(220)이 유사한 유형 또는 모델이기 위한 필요성은 없다.
[0093] 이미징 디바이스들(220)은 전형적으로, 환경(E)의 전체 규모 상에서 커버리지(coverage)를 제공하기 위하여 환경 내에서 정적으로 포지셔닝되고, 카메라들 중의 적어도 일부는 적어도 부분적으로 중첩하는 관측 시야들을 포함하여, 환경(E) 내에서의 임의의 객체들은 바람직하게는, 임의의 하나의 시간에 이미징 디바이스들 중의 2 개 이상에 의해 이미징된다. 이미징은 또한, 완전한 커버리지 제공하기 위하여 상이한 포지션들의 범위에서 제공될 수 있다. 예를 들어, 이미징 디바이스들은 상이한 높이들에서 제공될 수 있고, 상이한 각도들로부터 환경의 뷰(view)들을 캡처하도록 구성된 카메라들에 장착된 바닥, 벽, 및/또는 천장의 조합을 포함할 수 있다.
[0094] 시스템의 동작은 도 3을 참조하여 지금부터 더 상세하게 설명될 것이다.
[0095] 이 예에서는, 단계(300)에서, 프로세싱 디바이스(210)는 이미징 디바이스들(220) 각각으로부터 이미지 스트림들을 수신하고, 이미지 스트림들은 복수의 캡처된 이미지들을 포함하고, 환경(E) 내에서의 객체들(160, 201, 202, 203)의 이미지들을 포함한다.
[0096] 단계(310)에서, 하나 이상의 프로세싱 디바이스들은 단계(320)에서 환경 내에서의 하나 이상의 객체 위치들을 결정하기 위하여 이미지들을 분석한다. 이와 관련하여, 객체 위치들은 임의의 이동가능한 객체들(160)의 위치, 및 임의적으로, 임의의 다른 객체들(201, 202, 203)의 위치를 포함할 것이지만, 이것은 필수적이지 않고, 바람직한 구현예에 종속될 수 있다.
[0097] 하나의 예에서, 이 분석은 상이한 중첩하는 관측 시야들을 가지는 이미징 디바이스들에 의해 캡처된 이미지들인 상이한 이미지 스트림들에서 중첩하는 이미지들을 식별함으로써 수행되어, 객체의 이미지는 상이한 이미징 디바이스들에 의해 적어도 2 개의 상이한 방향들로부터 캡처된다. 이 경우에, 이미지들은 상이한 중첩하는 이미지들에서 객체의 포지션을 식별하기 위하여 분석되고, 이미징 디바이스 위치들의 지식은 객체의 포지션을 삼각측량(triangulate)하기 위하여 이용된다. 이것은 임의의 적절한 기법을 사용하여 달성될 수 있고, 하나의 예에서는, 예를 들어, 이것은 임의의 적절한 기법을 사용하여 달성될 수 있고, 하나의 예에서는, 예를 들어, IEEE Trans. 패턴 분석 및 머신 지능(150 내지 162 페이지), A. Laurentini(1994년 2월)의 "The visual hull concept for silhouette-based image understanding"에서 설명된 바와 같이, 시각적 선체 접근법을 사용하여 달성된다. 그러나, 기점 마킹들의 이미지 분석과 같은 다른 접근법들이 또한 이용될 수 있다. 하나의 바람직한 예에서, 기점 마킹들은 중첩하는 이미지들과 함께 이용되어, 객체 위치는 더 높은 정확도로 결정될 수 있지만, 이것은 필수적이지 않다는 것이 인식될 것이다.
[0098] 단계(330)에서, 하나 이상의 프로세싱 디바이스들은 제어 명령들을 생성하기 위하여 객체 위치를 이용하고, 제어 명령들은 단계(340)에서 하나 이상의 모듈형 휠들(150)의 제어기들(154)에 제공되어, 이들이 제어되어, 이에 의해, 객체(160)를 이동시키는 것을 허용한다.
[0099] 제어 명령들이 생성되는 방식은 바람직한 구현예에 따라 변동될 것이다. 예를 들어, 각각의 이동가능한 객체는 의도된 통행 경로 및/또는 의도된 목적지와 같은 연관된 라우팅 정보를 가질 수 있고, 이 경우에, 제어 명령들은 라우팅 정보 및 현재의 위치를 참작하기 위하여 생성될 수 있다. 추가적으로 및/또는 대안적으로, 제어 명령들은 환경(E) 내에서의 장애물들의 위치들을 참작하기 위하여, 예를 들어, 객체(160)가 다른 객체들(201, 202, 203), 또는 환경(E)의 일부분들과 충돌하지 않는다는 것을 보장하기 위하여 생성될 수 있다.
[0100] 제어 명령들은 객체(160)와 연관된 모듈형 휠들(150) 각각을 독립적으로 제어하기 위하여 생성될 수 있어서, 제어기들(154)은 제공된 개개의 제어 명령들을 구현하기 위하여 이용된다. 예를 들어, 프로세싱 디바이스들(210)은 객체(160)와 연관된 각각의 모듈형 휠(150)을 위한 회전의 레이트 및/또는 양을 특정하는 명령들을 생성할 수 있다. 그러나, 대안적으로, 프로세싱 디바이스들(210)은 전체적으로 객체를 위한 이동의 방향 및/또는 레이트를 간단하게 식별할 수 있고, 각각의 모듈형 휠(150)의 제어기들(154)은 전체적인 희망된 객체 이동으로 귀착되기 위하여 각각의 휠이 어떻게 이동될 필요가 있는지를 분해하기 위하여 통신할 수 있다.
[0101] 여하튼, 위에서 설명된 배열은 환경 내에서 객체들을 이동시키기 위하여 이용될 수 있는 시스템을 제공한다는 것이 인식될 것이다. 구체적으로, 시스템은 하나 이상의 모듈형 휠들이 객체에 부착되는 것을 허용하기 위하여 이용될 수 있고, 환경 내에서의 객체의 위치는 환경 내에서 포지셔닝된 다수의 원격 이미징 디바이스들을 이용하여 모니터링될 수 있다. 이미징 디바이스들로부터의 이미지들은 환경 내에서의 객체의 위치를 모니터링하기 위하여 분석되고, 이 정보는 하나 이상의 모듈형 휠들을 제어함으로써 객체의 이동을 제어하기 이용된다.
[0102] 이러한 배열은 객체의 자율 제어가 달성되는 것을 여전히 허용하면서, 환경 내에서 탐색하기 위하여 각각의 객체 및/또는 각각의 휠이 센서들과 잘 어울리기 위한 필요성을 회피한다. 감지 엘리먼트들은 고가인 경향이 있고 추가적인 복잡도를 나타내기 때문에, 이것은 모듈형 휠이 저렴하고 상대적으로 간단하다는 것을 보장하도록 돕고, 이것은 내장된 감지가 요구되었을 경우보다 더 폭넓게 전개되는 것을 허용한다.
[0103] 하나의 예에서, 이 배열은 다수의 상이한 이동가능한 객체들이 보편적인 감지 장치를 이용하여 제어되는 것을 추가로 허용하고, 이동들이 중앙에서 조정되는 것을 허용하고, 이것은 궁극적으로, 이동을 최적화하는 것을 도울 수 있고, 잠재적인 충돌들을 회피할 수 있다. 예를 들어, 이것은 모듈형 휠들이 공장들 등과 같은 환경들 내에서 용이하게 전개되는 것을 허용한다. 구체적으로, 하나의 예에서, 이것은 객체들이 모듈형 휠들과 잘 어울리고 객체가 AGV인 것처럼 주위로 이동되는 것을 허용하여, 이에 의해, 목적에 맞추어 제작된 AGV들에 대한 필요성을 감소시킨다.
[0104] 하나의 예에서, 객체 위치 검출 및 제어는 상황 인지 모니터링을 수행하도록 구성되는 시스템에 의해 수행될 수 있고, 이러한 시스템의 예는 공동 계류중인 특허 출원 AU2019900442에서 설명되고, 이 특허 출원의 내용들은 교차 참조에 의해 본 명세서에 편입된다.
[0105] 이와 관련하여, 상황 인지는 시간 또는 공간에 대한 환경적 엘리먼트들 및 이벤트들의 지각, 그 의미의 파악, 및 그 미래의 스테이터스(status)의 투영이다. 상황 인지는 상황들의 범위에서, 특히, 부상 또는 불리한 결과들로 이어질 수 있는, 사람과 장비 사이의 상호작용이 있을 경우에 의사 결정을 위하여 중요한 것으로서 인식된다. 이것의 하나의 예는 공장들 내에 있고, 여기서, 사람과 장비 사이의 상호작용은 부상 또는 사망에 대한 잠재성을 가진다.
[0106] 하나의 예에서, 이동가능한 객체들(160) 및/또는 다른 객체들(201, 202, 203)의 이동 및/또는 위치들은 환경(E) 내에서의 이동가능한 객체들(160) 및/또는 다른 객체들(201, 202, 203)의 바람직한 및/또는 잠재적으로 위험한 또는 다른 바람직하지 않은 이동을 표현하는 기준들을 정의하는 상황 인지 규칙들과 비교될 수 있다. 상황 인지 규칙들 및 기준들의 본질은 바람직한 구현예, 상황 인지 모니터링 프로세스가 채용되는 사정들, 모니터링되는 객체들의 본질 등과 같은 인자들에 따라 변동될 것이다. 예를 들어, 규칙들은 객체들의 인접성, 객체들의 미래의 예측된 인접성, 통행 경로들의 차단, 어떤 객체들이 특정한 에어리어(area)들에 진입하거나 이를 이탈하는 것 등에 관련될 수 있고, 이들의 예들은 이하에서 더 상세하게 설명될 것이다.
[0107] 상황 인지 규칙들의 비교의 결과들은 유발되는 임의의 상황 인지 이벤트들을 식별하기 위하여 이용될 수 있고, 이러한 상황 인지 이벤트들은 전형적으로, 상황 인지 규칙들과의 비-준수성 또는 잠재적인 비-준수성에 대응한다. 따라서, 예를 들어, 상황 인지 규칙이 위반될 경우에, 이것은 잠재적인 위험을 표시할 수 있고, 이것은 궁극적으로, 액션이 취해지는 것을 허용하기 위하여 이용될 수 있다. 액션 및 이것이 수행되는 방식의 본질은 바람직한 구현예에 따라 변동될 것이다.
[0108] 예를 들어, 액션은 상황 인지 이벤트의 세부사항들을 간단하게 레코딩하는 것을 포함할 수 있어서, 이것이 추후의 회계 목적들을 위하여 레코딩되는 것을 허용할 수 있다. 추가적으로 및/또는 대안적으로, 액션은 위험한 상황들을 시험하고 예방하기 위하여, 예를 들어, 통지 또는 청취가능한 및/또는 가시적인 경고를 생성함으로써 개인들에게 경고하기 위하여 취해질 수 있다. 이것은 예를 들어, 개인이 그 현재의 이동 또는 위치를 조절하게 함으로써, 예를 들어, AGV의 경로로부터 멀어지도록 이동하기 위하여, 정정 조치들이 취해질 수 있도록 환경 내에서의 개인들에게 경고하기 위하여 이용될 수 있다. 이동가능한 객체들(160) 뿐만 아니라, 자율 또는 반-자율 차량들의 경우에, 이것은 예를 들어, 경로를 변경하거나 정지할 것을 차량에 명령함으로써 객체/차량을 제어하는 것을 포함할 수 있어서, 이에 의해, 사고들이 발생하는 것을 방지한다는 것이 인식될 것이다.
[0109] 따라서, 위에서 설명된 배열은 모듈형 휠을 이용하여 환경 내에서 객체들을 이동시키기 위한 시스템을 제공한다는 것이 인식될 것이다. 시스템은 환경을 모니터링하도록 구성될 수 있어서, 이동가능한 객체들의 이동이 제어되는 것을 허용할 수 있다. 추가적으로, 이것은 또한, AGV들, 사람과 같은 이동가능한 그리고 다른 객체들의 위치 및/또는 이동이 추적되는 것을 허용하기 위하여 이용될 수 있고, 이것은 궁극적으로, AGV 또는 다른 차량이 개인과 접촉하거나 개인에게 접근할 가능성이 있을 때, 또는 그 반대일 때와 같이, 바람직하지 않은 조건들이 언제 유발되는지를 확립하기 위하여 상황 인지 규칙들과 함께 궁극적으로 이용될 수 있다. 하나의 예에서, 시스템은 정정 액션들이 자동적으로 수행되는 것, 예를 들어, 이동가능한 객체인 차량의 동작을 수정하거나, 차량이 접근하고 있다는 사실을 개인에게 경고하는 것을 허용한다.
[0110] 이것을 달성하기 위하여, 시스템은 환경(E) 내에서 제공된 복수의 이미징 디바이스들을 사용하고, 객체 위치들을 식별하기 위하여, 전형적으로, 중첩하는 관측 시야들을 갖는 이미지들을 사용하도록 동작한다. 이것은 RFID 태그들 또는 유사한 것과 같은 검출가능한 특징부가 객체들에 제공되기 위한 필요성을 회피하지만, 이러한 태그들의 이용은 이하에서 더 상세하게 설명되는 바와 같이 제외되지 않는다.
[0111] 또한, 이 프로세스는 다른 시스템들에 비해 상당한 상업적 가치를 제공하는, 이용되어야 할 보안 카메라들 등과 같은 저비용 이미징 디바이스들을 이용하여 수행될 수 있다. 그 장점은 카메라들이 더 용이하게 이용가능하고, 양호하게 공지되고, 더 낮은 비용을 가질 뿐만 아니라, 통신하고 전력을 공급하는 단일 이더넷(Ethernet) 케이블에 접속될 수 있다는 것이다. 이것은 그 다음으로, 표준 기성품 POE 이더넷 스위치 뿐만 아니라 표준 전력 공급 규정에 접속할 수 있다. 따라서, 이것은 이러한 시스템을 설치하고 구성하는 비용을 엄청나게 감소시킬 수 있어서, 고가의 스테레오스코픽(stereoscopic) 또는 컴퓨터 비전 카메라들을 사용하기 위한 필요성을 회피하고, 많은 경우들에는, 현존하는 보안 카메라 기반구조가 상황 인지 모니터링을 위하여 사용되는 것을 허용한다.
[0112] 추가적으로, 프로세싱 디바이스는 객체 추적 및 제어 뿐만 아니라, 상황 인지 이벤트들 또는 액션들의 식별을 실질적으로 실시간으로 수행하도록 구성될 수 있다. 따라서, 예를 들어, 이미지 캡처와 액션이 수행되는 것 사이에서 걸린 시간은 약 1 초 미만, 약 500 ms 미만, 약 200 ms 미만, 또는 약 100 ms 미만일 수 있다. 이것은 시스템이 이동가능한 객체들을 효과적으로 제어하는 것, 및/또는 환경 내의 개인들에게 경고하는 것, 차량들을 제어하는 것 등과 같은 다른 정정 액션을 취하는 것을 가능하게 하여, 이에 의해, 영향들 또는 부상들과 같은 이벤트들이 회피되는 것을 허용한다.
[0113] 다수의 추가의 특징들이 지금부터 설명될 것이다.
[0114] 위에서 언급된 바와 같이, 하나의 예에서, 시스템은 객체에 장착된 하나 이상의 수동 휠들을 포함한다. 이러한 수동 휠들은 캐스터 휠(castor wheel)들 또는 유사한 것과 같은 다방향 휠(multi-directional wheel)들일 수 있고, 이 경우에, 제어기(들)는 2 개 이상의 모듈형 휠들의 차동 회전을 통해 객체를 조향하도록 구성될 수 있다. 추가적으로 및/또는 대안적으로, 모듈형 휠은 휠의 배향을 조절하도록 구성된 조향 구동부를 포함할 수 있고, 이 경우에, 제어기(들)는 조향 구동부를 제어하여, 이에 의해, 휠의 배향 및 이에 따른 이동가능한 객체의 직접적인 이동을 변경하도록 구성될 수 있다. 또한, 구동 휠들 및 별도의 조향 휠들을 제공하는 것과 같은, 다른 구성들이 이용될 수 있다는 것이 인식될 것이다. 그러나, 일반적으로, 단일 모듈형 휠들에서 조향 및 구동의 둘 모두를 제공하는 것은 신축성에 있어서 더 큰 범위를 제공하여, 동일한 모듈형 휠들이 상이한 방식들의 범위에서 이용되는 것을 허용한다. 이것은 또한, 휠 고장(wheel failure)을 해결하는 것, 예를 들어, 모듈형 휠들 중의 하나 이상이 고장날 경우에 상이하게 제어 모드들이 이용되는 것을 허용하는 것을 보조할 수 있다.
[0115] 하나의 예에서, 모듈형 휠은 하나 이상의 프로세싱 디바이스들과 무선으로 통신하도록 구성된 트랜시버를 포함한다. 이것은 각각의 모듈형 휠이 프로세싱 디바이스들과 직접적으로 통신하는 것을 허용하지만, 이것은 필수적이지 않고, 중앙집중화된 통신 모듈, 다수의 모듈형 휠들 사이의 메시 네트워킹 등을 이용하는 것과 같은 다른 배열들이 이용될 수 있다는 것이 인식될 것이다.
[0116] 각각의 모듈형 휠은 전형적으로, 구동부, 제어기, 트랜시버, 조향 구동부, 및 임의의 다른 컴포넌트들을 급전하도록 구성된 배터리와 같은 전력 공급부를 포함한다. 각각의 휠을 위한 배터리를 제공하는 것은 각각의 휠이 자립(self-contain)되는 것을 허용하여, 휠이 객체에 오직 어울릴 필요가 있고, 전력 공급부 또는 다른 휠에 별도로 접속될 필요가 없다는 것을 의미하지만, 별도의 전력 공급부들은 의도된 사용 시나리오에 따라 이용될 수 있다는 것이 인식될 것이다.
[0117] 하나의 예에서, 시스템은 복수의 모듈형 휠들을 포함하고, 프로세싱 디바이스는 개개의 제어 명령들을 각각의 제어기에 제공하여, 이에 의해, 각각의 모듈형 휠을 독립적으로 제어하도록 구성된다. 예를 들어, 이것은 프로세싱 디바이스가 각각의 개별적인 모듈형 휠을 위한 휠 배향 및/또는 회전의 레이트를 포함하는 제어 명령들을 생성하게 하는 것을 포함할 수 있다.
[0118] 또 다른 예에서, 프로세싱 디바이스들은 제어 명령들을 제어기들에 제공하도록 구성되고, 여기서, 상이한 모듈형 휠들의 제어기들은 각각의 모듈형 휠을 독립적으로 제어하기 위하여 통신한다. 예를 들어, 프로세싱 디바이스들은 객체를 위한 방향 및 통행의 레이트를 포함하는 제어 명령들을 생성할 수 있고, 그 객체에 부착된 각각의 모듈형 휠을 위한 제어기는 그 다음으로, 각각의 휠을 위한 휠 배향 및/또는 회전의 레이트를 협력적으로 결정할 수 있다. 추가의 예에서, 마스터 슬레이브 배열(master slave arrangement)이 이용될 수 있어서, 마스터 모듈형 휠이 각각의 개별적인 모듈형 휠을 위한 이동들을 계산하는 것을 허용할 수 있고, 그 정보는 필요한 바와 같이 다른 모듈형 휠 제어기들로 통신될 수 있다.
[0119] 하나의 예에서, 프로세싱 디바이스는 객체 구성을 결정하고, 그 다음으로, 적어도 부분적으로 객체 구성에 따라 제어 명령들을 생성하도록 구성된다. 객체 구성은 객체의 이동에 영향을 줄 수 있는 어떤 것을 표시할 수 있고, 객체 규모, 객체의 이동에 관련되는 파라미터들 등을 포함할 수 있다. 이것은 프로세싱 디바이스가 휠들을 제어할 때, 객체의 크기 및/또는 형상을 참작하는 것을 허용하여, 이에 의해, 객체가 다른 객체들 또는 환경의 일부분들에 영향을 주지 않는다는 것을 보장한다. 이것은 특히, 휠들이 장애물로부터 멀리 있을 때에도, 환경 및/또는 다른 객체들과 같은 장애물들과 그렇지 않을 경우에 충돌할 수 있는 불규칙한 크기의 객체들 및/또는 돌출부들을 갖는 객체들을 위하여 중요하다.
[0120] 이와 관련하여, 객체 위치는 이미지 분석을 이용하여 검출되므로, 이 동일한 접근법은 객체 규모를 결정하기 위하여 이용될 수 있다는 것이 인식될 것이다. 예를 들어, 객체의 크기 및/또는 형상을 계산하기 위하여, 다수의 뷰포인트(viewpoint)들로부터의 객체의 이미지들을 검사하는 시각적 선체 분석이 이용될 수 있다.
[0121] 유사하게, 프로세싱 디바이스들은 객체에 대한 각각의 휠의 포지션 및/또는 각각의 휠의 상대적인 포지션을 표시하는 휠 구성을 결정하고, 적어도 부분적으로 휠 구성에 따라 제어 명령들을 생성하도록 구성될 수 있다. 따라서, 유사한 방식으로, 프로세싱 디바이스들은 객체에 대한 휠들의 포지션을 검출하기 위하여 이미지 분석을 이용할 수 있고, 그 다음으로, 제어 신호들을 생성할 때에 이 정보를 이용할 수 있다. 이것은 객체의 이동이 정확하게 제어되도록 휠들이 집합적으로 동작하는 것을 보장하기 위하여 이용될 수 있지만, 대안적으로, 하나 이상의 모듈형 휠들이 알려진 위치들에 있을 수 있다는 것이 인식될 것이다.
[0122] 대안적으로, 객체 및/또는 휠 구성들은 예를 들어, 초기 셋업 프로세스 동안에 미리 정의될 수 있고, 그 다음으로, 필요한 바와 같이 리트리브(retrieve)될 수 있다.
[0123] 하나의 실시예에서, 프로세싱 디바이스는 하나 이상의 모듈형 휠들 또는 객체의 아이덴티티를 결정하고, 그 다음으로, 아이덴티티에 따라 제어 명령들을 생성하도록 구성된다. 예를 들어, 이것은 제어 명령들이 올바른 모듈형 휠로 송신되는 것을 보장하기 위하여 이용될 수 있다. 이것은 또한, 프로세싱 디바이스가 객체 또는 휠 구성을 리트리브하는 것을 허용하기 위하여 이용될 수 있어서, 이러한 구성들이 필요한 바와 같이 객체 및/또는 휠 아이덴티티에 기초하여 저장되고 리트리브되는 것을 허용할 수 있다.
[0124] 아이덴티티는 바람직한 구현예에 따라 다수의 방식들 중의 임의의 하나로 결정될 수 있다. 예를 들어, 휠들은 통신 네트워크를 통해 프로세싱 디바이스와 통신하도록 구성될 수 있고, 이 경우에, 프로세싱 디바이스는 IP(Internet Protocol)(인터넷 프로토콜) 또는 MAC(Media Access Control)(매체 액세스 제어) 어드레스 또는 유사한 것과 같은 네트워크 식별자를 적어도 부분적으로 이용하여 아이덴티티를 결정하도록 구성될 수 있다. 또 다른 예에서, 프로세싱 디바이스들은 머신 판독가능 코딩된 데이터를 이용하여 아이덴티티를 결정하도록 구성될 수 있다. 이것은 이미지에서 가시적 머신 판독가능 코딩된 데이터를 식별하여 이것이 프로세싱 디바이스에 의해 디코딩되는 것을 허용하기 위하여 이미지들을 분석함으로써 그 다음으로 검출될 수 있는 바 코드(bar code), QR 코드, 또는 더 전형적으로 에이프릴 태그(April Tag)와 같은, 객체 및/또는 휠들 상에서 제공된 가시적 코딩된 데이터를 포함할 수 있다. 그러나, 또 다른 예에서, 객체들 및/또는 모듈형 휠들은 단거리 무선 통신 프로토콜 태그들, RFID(Radio Frequency Identification)(라디오 주파수 식별) 태그들, 블루투스 태그들, 또는 유사한 것과 같은 태그들과 연관될 수 있고, 이 경우에, 머신 판독가능 코딩된 데이터는 적당한 태그 판독기로부터 리트리브될 수 있다.
[0125] 또한, 상이한 식별 접근법들이 함께 이용될 수 있다는 것이 인식될 것이다. 예를 들어, 객체 및/또는 휠은 적당한 판독기를 지나갈 때, 머신-판독가능 코딩된 데이터의 검출을 통해 고유하게 식별될 수 있다. 이 사례에서, 일단 객체가 식별되었으면, 이 아이덴티티는 객체가 환경 내에서 이동할 때에 객체를 추적함으로써 유지될 수 있다. 이것은 객체가 식별되도록 하기 위하여 판독기를 다시 지나갈 필요가 없다는 것을 의미하고, 이것은 객체들이 에어리어로의 진입 시와 같은, 제한된 경우들에 오직 식별되는 사정들에서 특히 유용하다.
[0126] 전형적으로, 하나 이상의 프로세싱 디바이스들은 통행 경로 및/또는 목적지를 표시하는 라우팅 데이터를 결정하고, 그 다음으로, 라우팅 데이터 및 객체 위치에 따라 제어 명령들을 생성하도록 구성된다. 예를 들어, 라우팅 데이터는 객체 및/또는 휠 아이덴티티를 이용하여, 데이터베이스와 같은 데이터 저장소(data store)로부터 리트리브될 수 있다.
[0127] 통행 경로 및/또는 목적지를 표시하는 것에 추가적으로, 라우팅 데이터는 또한, 허용된 객체 통행 경로, 허용된 객체 이동들, 상이한 객체들을 위한 허용된 인접성 제한들, 객체들을 위한 허용된 구역들, 또는 객체들을 위한 거부된 구역들을 표시할 수 있다. 이 추가적인 정보는 바람직한 경로를 따를 수 없을 경우에 사용될 수 있어서, 대안적인 루트(route)들이 예를 들어, 다른 객체들과 같은 장애물들을 회피하기 위하여 계산되는 것을 허용할 수 있다.
[0128] 유사하게, 프로세싱 디바이스는 객체 이동이 객체를 위하여 정의된 허용된 객체 통행 경로로부터 벗어나는지, 객체 이동이 객체를 위한 허용된 객체 이동으로부터 벗어나는지, 2 개의 객체들이 객체들을 위한 허용된 인접성 제한들 내에 있는지, 2 개의 객체들이 객체들을 위한 허용된 인접성 제한들에 접근하고 있는지, 2 개의 객체들이 객체들을 위한 허용된 인접성 제한들 내에 있는 것으로 예측되는지, 2 개의 객체들이 교차하는 예측된 통행 경로들을 가지는지, 객체가 객체를 위한 허용된 구역 외부에 있는지, 객체가 객체를 위한 허용된 구역을 진출하고 있는지, 객체가 객체를 위한 거부된 구역 내부에 있는지, 또는 객체가 객체를 위한 거부된 구역에 진입하고 있는지를 식별하도록 구성될 수 있다. 이것은 그 다음으로, 이동을 정지시키거나 정정하는 것을 포함하는 정정 조치들을 취하기 위하여 이용될 수 있다.
[0129] 하나의 예에서, 특히, 휠 구성이 알려지지 않은 경우에, 프로세싱 디바이스는, 단일 또는 일부 회전, 또는 휠 배향에서의 정의된 변경을 수행하는 것과 같은, 하나 이상의 휠들의 사소한 이동들을 유도하기 위하여 이용되는 교정 제어 명령들을 생성하도록 구성될 수 있다. 프로세싱 디바이스는 그 다음으로, 교정 제어 명령들에 응답하여 객체 및/또는 모듈형 휠의 이동을 모니터링하고, 제어 명령들을 생성하기 위하여 모니터링의 결과들을 이용하도록 구성될 수 있다.
[0130] 예를 들어, 교정 명령들을 생성하고, 그 다음으로, 이동을 모니터링함으로써, 이것은 특정한 휠들을 식별하여, 예를 들어, 휠의 IP 어드레스를 특정 객체 상의 특정한 휠과 정합하기 위하여 이용될 수 있다. 이것은 또한, 휠이 어떻게 응답하는지를 식별하기 위하여 이용될 수 있고, 이것은 궁극적으로, 휠을 정확하게 제어하기 위하여, 예를 들어, 객체 상의 휠의 장착 배향을 참작하기 위하여 이용될 수 있다. 따라서, 이것은 시스템이 휠 구성을 계산하기 위하여 시각적 피드백을 이용하는 것을 허용하여, 이에 따라, 휠을 정확하게 제어하기 위하여 이용될 수 있는 제어 명령들이 생성되는 것을 허용한다.
[0131] 하나의 예에서, 이미징 디바이스들은 고정된 위치들에서의 환경 내에서 포지셔닝되고, 환경에 대하여 정적이거나 적어도 실질적으로 정적이다. 이것은 각각의 카메라 또는 다른 이미징 디바이스에 의해 캡처된 이미지들이 더 용이하게 해석되는 것을 허용하지만, 이것은 필수적이지 않고, 대안적으로, 환경을 통해 반복적으로 패닝(pan)하는 카메라들과 같은 이동하는 카메라들이 이용될 수 있다는 것이 인식될 것이다. 이 경우에, 프로세싱 디바이스는 전형적으로, 휠들의 포지션 및/또는 배향을 참작하여 이미지들을 분석하도록 구성된다.
[0132] 전형적으로, 이미징 디바이스들은 적어도 부분적으로 중첩하는 관측 시야들을 가지기 위하여 환경 내에서 포지셔닝되고, 여기서, 하나 이상의 프로세싱 디바이스들은 상이한 이미지 스트림들에서 중첩하는 이미지들을 식별하고 - 중첩하는 이미지들은 중첩하는 관측 시야들을 가지는 이미징 디바이스들에 의해 캡처되는 이미지들임 -, 그 다음으로, 환경 내에서의 객체 위치들을 결정하기 위하여 중첩하는 이미지들을 분석하도록 구성된다.
[0133] 하나의 예에서, 중첩하는 이미지들은 이미지들이 거의 동시에 캡처된다는 점에서, 동기적 중첩하는 이미지들이다. 이와 관련하여, 이미지들이 거의 동시에 캡처되어야 할 요건은 이미지들이 객체의 실질적인 이동으로 귀착될 시간 간격보다 더 작은 시간 간격 내에서 캡처된다는 것을 의미한다. 이것은 그러므로, 객체들의 이동의 속력에 종속될 것이지만, 시간 간격은 전형적으로 약 1 초 미만, 약 500 ms 미만, 약 200 ms 미만, 또는 약 100 ms 미만이다.
[0134] 동기적 중첩하는 이미지들을 식별하기 위하여, 프로세싱 디바이스는 전형적으로, 이미지들과 연관된 시간스탬프(timestamp) 및/또는 이미징 디바이스로부터의 이미지들의 수신의 시간과 같은 정보를 전형적으로 이용하여 이미지 스트림들을 동기화하도록 구성된다. 이것은 프로세싱 디바이스와 전형적으로 시간 동기화되는, 컴퓨터 비전 디바이스들 이외의 이미징 디바이스들로부터 이미지들이 수신되는 것을 허용한다. 따라서, 이것은 하드웨어로 정상적으로 수행되는, 카메라 피드들의 전부 사이의 정확한 시간 동기를 보장하기 위하여, 추가적인 기능성이 프로세싱 디바이스에 의해 구현될 것을 요구한다.
[0135] 하나의 예에서, 프로세싱 디바이스들은 각각의 캡처된 이미지의 캡처된 시간을 결정하고, 그 다음으로, 캡처된 시간을 이용하여 동기적 이미지들을 식별하도록 구성된다. 이것은 전형적으로, 이미징 디바이스들이 대부분의 컴퓨터 비전 카메라들에서 존재하는 바와 같은 동기화 능력들을 편입하지 않기 때문에 요구되어, 시스템이 보안 카메라들 등과 같은 더 저렴한 기초적인 그리고 현존하는 기술들을 이용하여 구현되는 것을 허용한다.
[0136] 캡처 시간이 각각의 캡처된 이미지에 대하여 결정되는 방식은 바람직한 구현예에 따라 변동될 것이다. 예를 들어, 이미징 디바이스는 많은 보안 카메라들을 갖는 경우와 같이, 시간 스탬프와 같은 캡처된 시간을 생성할 수 있다. 이 경우에, 디폴트(default)에 의해, 시간 스탬프는 캡처 시간으로서 이용될 수 있다. 추가적으로 및/또는 대안적으로, 캡처된 시간은 프로세싱 디바이스에 의한 수신의 시간을 표시하는 수신 시간에 기초할 수 있다. 이것은 임의적으로, 교정 또는 다른 셋업 프로세스 동안에 확립될 수 있는, 이미징 디바이스와 프로세싱 디바이스 사이의 통신 지연을 참작할 수 있다. 하나의 바람직한 예에서는, 2 개의 기법들이 함께 이용되어, 이미지들의 수신의 시간은 이미지들과 연관된 시간 스탬프를 유효성검사(validate)하기 위하여 이용되고, 이에 의해, 결정된 캡처 시간에 대한 추가적인 검증의 레벨을 제공하고, 캡처 시간이 검증되지 않을 경우에 정정 조치들이 취해지는 것을 허용한다.
[0137] 그러나, 동기적 이미지(synchronous image)들의 이용은 필수적이지 않고, 바람직한 구현예에 따라, 비동기적 이미지(asynchronous image)들 또는 다른 데이터가 이용될 수 있다는 것이 인식될 것이다. 예를 들어, 비동기적으로 캡처되는 객체의 이미지들은 객체 위치가 이미지들 사이에서 변경되는 것으로 귀착될 수 있다. 그러나, 이것은 이미지들을 가중화하는 것과 같은 적당한 기법들을 통해 참작될 수 있고, 그러므로, 이하에서 더 상세하게 설명되는 바와 같이, 비동기적으로 캡처된 이미지들은 객체 위치를 식별할 시에 시간적 가중화를 부여받는다. 객체에 퍼지 경계(fuzzy boundary) 및/또는 위치를 배정하는 것 등과 같은 다른 기법들이 또한 채용될 수 있다.
[0138] 하나의 예에서, 프로세싱 디바이스들은 객체들을 포함하는 이미지들인 객체 이미지들을 식별하기 위하여 각각의 이미지 스트림으로부터의 이미지들을 분석하도록 구성된다. 객체 이미지들을 식별하였으면, 이들은 중첩하는 이미지들을, 동일한 객체의 이미지를 포함하는 객체 이미지들로서 식별하기 위하여 분석될 수 있다. 이것은 이미지 인식 프로세스들에 기초하여 수행될 수 있지만, 더 전형적으로, 이미징 디바이스들의 상대적인 포지션, 및 특히, 관측 시야들에 관한 지식에 기초하여 수행된다. 이것은 또한, 상이한 이미징 디바이스들 사이의 중첩하는 관측 시야들을 좁혀서, 이에 의해, 중첩하는 이미지들을 로케이팅하기 위하여 이용될 수 있는, 예를 들어, 이미지 내에서의 객체의 포지션을 참작할 수 있다. 이러한 정보는 이하에서 더 상세하게 설명되는 바와 같이, 교정 프로세스 동안에 확립될 수 있다.
[0139] 하나의 실시예에서, 하나 이상의 프로세싱 디바이스들은 정적 이미지 영역들을 식별하기 위하여 이미지 스트림으로부터의 다수의 이미지들을 분석하고, 그 다음으로, 객체 이미지들을, 비-정적 이미지 영역들을 포함하는 이미지들로서 식별하도록 구성된다. 특히, 이것은 이미지들 사이에서 발생하는 이동을 식별하기 위하여 연속적인 또는 추후의 이미지들을 비교하는 것을 수반하고, 이미지에서의 이동 컴포넌트가 객체 이동의 결과인 것이 평가된다. 이것은 환경의 대다수가 정적으로 유지될 것이고, 일반적으로, 그것은 이미지들 사이의 이동을 거칠 객체들만이라는 사실에 의존한다. 따라서, 이것은 객체들을 식별하기 위하여 용이한 메커니즘을 제공하고, 이미지들을 분석하여 이미지들 안의 객체들을 검출하기 위하여 요구된 시간의 양을 감소시킨다.
[0140] 객체가 정적인 경우에, 비교가 연속적인 이미지들 사이에서 수행되면, 객체는 이 기법에 의해 검출되지 않을 수 있다는 것이 인식될 것이다. 그러나, 이것은 상이한 학습 레이트(learning rate)들을 배경(background) 및 전경(foreground)에 적용함으로써 해결될 수 있다. 예를 들어, 객체들이 환경에서 존재하지 않는 배경 참조 이미지들이 확립될 수 있고, 바로 선행하는 이미지들과 반대로, 배경 참조 이미지들에 대해 감산이 수행된다. 하나의 바람직한 접근법에서, 배경 참조 이미지들은 환경에서의 변경들을 참작하기 위하여 주기적으로 업데이팅된다. 따라서, 이 접근법은 정지된 객체들이 식별되거나 추적되는 것을 허용한다. 또한, 이하에서 더 상세하게 설명되는 바와 같이, 객체가 이동을 다시 시작할 때에 추적이 재개될 수 있도록, 정적 객체들의 추적은 정적 객체들의 위치의 레코드(record)를 유지하는 환경 모델을 사용하여 수행될 수 있다는 것이 인식될 것이다.
[0141] 따라서, 하나 이상의 프로세싱 디바이스들은 이미지 스트림에서의 이미지들 사이의 이미지 영역에 대한 외관에서의 변경의 정도를 결정하고, 그 다음으로, 변경의 정도에 기초하여 객체들을 식별하도록 구성될 수 있다. 이미지들은 연속적인 이미지들 및/또는 일시적으로 이격된 이미지들일 수 있고, 변경의 정도는 변경의 크기 및/또는 레이트일 수 있다. 이미지 영역의 크기 및 형상은 변동될 수 있고, 바람직한 구현예에 따라 픽셀들의 서브세트들 또는 유사한 것을 포함할 수 있다. 여하튼, 이미지 영역이 주로 정적일 경우에는, 이미지 영역이 이동하는 객체를 표시하는, 외관에서의 상당한 변경을 거치고 있는 경우보다, 객체가 이미지 영역 내에 있을 가능성이 더 적다는 것이 인식될 것이다.
[0142] 하나의 특정한 예에서, 이것은 이미지 영역들을 정적 또는 비-정적 이미지 영역들(또한, 배경 및 전경 이미지 영역들로서 지칭됨)로서 분류함으로써 달성되고, 비-정적 이미지 영역들은 환경 내에서의 이동 및 이에 따른 객체들을 표시하고 있다. 분류는 임의의 적절한 방식으로 수행될 수 있지만, 하나의 예에서, 이것은 변경의 정도를 분류 임계치와 비교하고, 그 다음으로, 비교의 결과들에 기초하여 이미지 영역을 분류함으로써, 예를 들어, 변경의 정도가 부류 임계치를 초과할 경우에 이미지 영역들을 비-정적인 것으로서, 또는 변경의 정도가 분류 임계치 미만일 경우에 정적인 것으로서 분류함으로써 달성된다.
[0143] 이것에 후행하여, 객체들은 예를 들어, 객체들을 식별하기 위하여 비-정적 이미지 영역들을 분석함으로써, 이미지 영역의 분류에 기초하여 식별될 수 있다. 하나의 예에서, 이것은 추후의 분석을 수행할 시에 그 다음으로 이용되는 마스크(mask)들을 확립하기 위하여 이미지 영역들을 이용함으로써 달성되고, 예를 들어, 전경 마스크들은 객체들을 식별하고 추적하기 위하여 이용되는 반면, 배경 마스크들은 프로세싱 요건들을 감소시키기 위하여 제외된다.
[0144] 추가적으로, 판별을 개선시키기 위하여, 프로세싱 디바이스는 예를 들어, 객체 이동에서의 변경들, 환경적 효과들 등을 참작하기 위하여, 분류 임계치를 동적으로 조절하도록 구성될 수 있다.
[0145] 예를 들어, 객체가 이동하는 것을 중단할 경우에, 이미지 영역이 객체를 포함하더라도, 이것은 이미지 영역이 정적인 것으로서 재분류되는 것으로 귀착될 수 있다. 따라서, 하나의 예에서, 이것은 프로세싱 디바이스가 이전에 이동하고 있었던 객체를 포함하는 객체 이미지 영역을 식별하게 함으로써, 그리고 그 다음으로, 이미지 영역을 비-정적 이미지 영역으로서 식별하기 위하여 요구된 변경의 정도를 감소시키도록, 객체 이미지 영역에 대한 분류 임계치를 수정함으로써 참작될 수 있다. 이것은 사실상, 위에서 언급된 바와 같이 영역에 대한 학습 레이트를 변경한다. 이미지 영역의 외관에서의 변경들이 누적적으로 평가될 수 있으므로, 이것은 사실상, 영역 내에서의 이동이 정지할 때로부터, 영역이 정적 이미지 영역으로서 분류되고, 이에 따라, 객체를 포함하지 않는 것으로서 평가되는 시간까지의 기간을 증가시킬 수 있다. 그 결과, 객체가 상대적으로 짧은 시간의 주기 동안에 이동하는 것을 정지할 경우에, 이것은 영역이 재분류되는 것을 회피하고, 이것은 객체들이 더 정확하게 추적되는 것을 허용할 수 있다.
[0146] 또 다른 예에서, 프로세싱 디바이스들은 시각적 효과들을 포함하는 이미지들을 식별하고, 그 다음으로, 시각적 효과들에 따라 이미지들을 프로세싱하여, 이에 의해, 객체들을 식별하도록 구성될 수 있다. 이와 관련하여, 시각적 효과들은 동일한 장면의 이미지들 사이의 외관의 변경을 귀착할 수 있고, 이것은 그러므로, 잠재적인 객체로서 식별될 수 있다. 예를 들어, AGV는 차량의 전방에 조명을 포함할 수 있고, 조명은 시간에 걸쳐 이동하는 외관에서의 변경으로 귀착될 수 있으므로, 조명은 AGV로부터 분리된 객체로서 잘못 검출될 수 있다. 유사한 쟁점들은 룸 내에서의 태양광에서의 변경들, 디스플레이들 또는 모니터들과 같은 시각적 제시 디바이스들의 존재 등과 같은, 주변 조명에서의 다른 변경들로 유발된다.
[0147] 하나의 예에서, 시각적 효과들을 해결하기 위하여, 프로세싱 디바이스는 시각적 효과들을 포함하는 이미지 영역들을 식별하고, 그 다음으로, 시각적 효과들을 포함하는 이미지 영역들을 제외하고 및/또는 시각적 효과들을 참작하여 이미지 영역들을 분류하도록 구성될 수 있다. 따라서, 이것은 예를 들어, 시각적 외관에서의 변경들이 검출될 때, 이미지 영역이 비-정적 이미지 영역으로서 분류될 가능성이 더 적도록 분류 임계치를 상승시킴으로써, 식별된 시각적 효과들에 기초하여 분류 임계치를 조절하기 위하여 이용될 수 있다.
[0148] 시각적 효과들의 검출은 바람직한 구현예, 이용가능한 센서들, 및 시각적 효과의 본질에 따라, 다양한 기법들을 이용하여 달성될 수 있다. 예를 들어, 시각적 효과가 조명에서의 변경일 경우에, 하나 이상의 조명 센서들로부터의 신호들은 시각적 효과를 검출하기 위하여 이용될 수 있다. 대안적으로, 하나 이상의 참조 이미지들은 배경 점등이 하루의 과정 동안에 어떻게 변경되어, 이것이 참작되는 것을 허용하는지를 분석하기 위한 것과 같이, 환경 내에서 일상적으로 발생하는 시각적 효과들을 식별하기 위하여 이용될 수 있다. 이것은 또한, 환경 내에서의 가능성 있는 조명을 예측하기 위하여, 날씨 보고들, 하루의 현재의 시간에 관한 정보 등과 같은 환경적 정보와 함께 이용될 수 있다. 추가의 대안으로서, 예를 들어, 사용자가 조명에서의 변경들을 받을 수 있고 및/또는 모니터들 또는 디스플레이들을 포함하는 등의 환경의 일부분들을 특정하게 함으로써, 수동적 식별이 수행될 수 있다.
[0149] 또 다른 예에서, 시각적 효과들은 정의된 성질들에 따라 이미지들을 분석하여, 이에 의해, 그 성질들을 충족시키는 영역들이 제외되는 것을 허용함으로써 식별될 수 있다. 예를 들어, 이것은 차량 경보등들에 대응하는 것과 같은, 알려진 파장들 및/또는 스펙트럼 성질들을 가지는 조명을 식별하는 것, 및 그 다음으로, 분석으로부터 이러한 영역들을 제외하는 것을 포함할 수 있다.
[0150] 일반적으로, 프로세싱 디바이스는 객체 위치들을 결정하기 위하여 동기적 중첩하는 이미지들을 분석하도록 구성된다. 하나의 예에서, 이것은 실루엣으로부터의 형상(shape-from-silhouette) 3D 재구성 기법인 시각적 선체 기법을 이용하여 수행된다. 특히, 이러한 시각적 선체 기법들은 이미지들 내에서의 객체들의 실루엣(silhouette)들을 식별하는 것, 및 실제적인 객체를 포함하는 후방-투영된 일반화된 원뿔("실루엣 원뿔(silhouette cone)"로서 알려짐)을 생성하기 위하여 이러한 실루엣들을 이용하는 것을 수반한다. 상이한 뷰포인트들로부터 취해진 이미지들로부터의 실루엣 원뿔들은, 실제적인 3D 객체의 경계설정 기하구조인 시각적 선체를 형성하는, 2 개 이상의 원뿔들의 교차점을 결정하기 위하여 이용된다. 이것은 그 다음으로, 이미징 디바이스들의 알려진 뷰포인트들에 기초하여 위치를 확인하기 위하여 이용될 수 있다. 따라서, 상이한 뷰포인트들로부터 캡처된 이미지들을 비교하는 것은 환경(E) 내에서의 객체의 포지션이 결정되는 것을 허용한다.
[0151] 그러나, 일부 예들에서는, 이러한 시각적 선체 접근법이 요구되지 않는다. 예를 들어, 객체가 기점 마커(fiducial marker), 또는 로봇 자동화에 대한 IEEE 국제 회의(ICRA) 2011에서 Edwin Olson에 의한 "AprilTag: A robust and flexible visual fiducial system"에서 설명된 에이프릴 태그와 같은 머신 판독가능 시각적 코딩된 데이터를 포함할 경우에, 위치는 캡처된 이미지들에서의 기점 마커들의 시각적 분석을 통해 도출될 수 있다.
[0152] 하나의 바람직한 예에서, 기점 마킹들 및 이에 따른 객체의 위치가 더 높은 정확도로 계산되는 것을 허용하기 위하여, 접근법은 기점 마킹들 및 다수의 이미지들의 조합을 이용하여, 기점 마킹들을 포함하는 상이한 이미지들의 삼각측량을 허용한다.
[0153] 하나의 예에서, 특히, 시각적 선체 또는 유사한 기법들을 이용할 때, 프로세싱 디바이스는 환경 내에서의 체적(volume)의 이미지들인 중첩하는 이미지들에서의 대응하는 이미지 영역들을 식별하고, 그 다음으로, 체적에서의 객체들을 식별하기 위하여 대응하는 이미지 영역들을 분석하도록 구성될 수 있다. 구체적으로, 이것은 전형적으로, 상이한 뷰의 포인트들로부터 캡처되었던 동일한 체적의 비-정적 이미지 영역들인 대응하는 이미지 영역들을 식별하는 것을 포함한다. 비-정적 영역들은 그 다음으로, 예를 들어, 시각적 선체 기법을 이용하여 후보 객체들을 식별하기 위하여 분석될 수 있다.
[0154] 이 프로세스는 충분히 높은 카메라 밀도가 있고, 및/또는 객체들이 환경 내에서 희박하게 배열될 때에 상대적으로 간단할 수 있지만, 이 프로세스는 카메라들이 희박하고 및/또는 객체들이 밀집되게 배열되고 및/또는 서로에게 근접할 때에 더 복잡해진다. 특히, 이 상황에서, 객체들은 종종 전체적으로 또는 부분적으로 폐색되고, 이것은 객체의 형상이 이미징 디바이스들의 일부를 이용하여 정확하게 캡처되지 않을 수 있다는 것을 의미한다. 이것은 궁극적으로, 객체들, 또는 그 크기, 형상, 또는 위치의 오식별로 이어질 수 있다.
[0155] 따라서, 하나의 예에서, 일단 후보 객체들이 식별되었으면, 이들은 환경의 3 차원 모델 내로 편입될 수 있고, 이러한 모델의 예들은 이하에서 더 상세하게 설명된다. 모델은 그 다음으로, 예를 들어, 또 다른 객체가 객체와 이미징 디바이스 사이에서 포지셔닝될 때, 객체들을 3 차원 모델로부터 이미징 디바이스의 2D 이미징 평면으로 후방-투영함으로써, 잠재적인 폐색들을 식별하기 위하여 분석될 수 있다. 일단 식별되면, 예를 들어, 시각적 선체 프로세스가 폐색을 참작하여 수행되는 것을 허용하여, 잠재적인 폐색들은 그 다음으로, 후보 객체들을 유효성검사하기 위하여 이용될 수 있다. 이 쟁점들의 예는 문헌[Li Guan, Sudipta Sinha, Jean-Sebastien Franco, Marc Pollefeys에 의한 "Visual Hull Construction in the Presence of Partial Occlusion"]에서 설명된다.
[0156] 하나의 예에서, 이미지 영역들이 잠재적인 폐색들을 포함할 경우에, 객체를 식별할 때에 이를 참작하여, 프로세싱 디바이스가 이미지 영역들을 폐색된 이미지 영역들로서 분류하게 함으로써 잠재적인 폐색들이 참작된다. 이것은 분석으로부터 폐색된 이미지 영역들을 간단하게 제외하는 것을 수반할 수 있지만, 전형적으로 의미 있는 정보는 이 접근법으로 손실될 것이고, 그 결과, 객체들은 부정확하게 식별될 수 있고 및/또는 로케이팅될 수 있다. 따라서, 또 다른 예에서, 이것은 대응하는 이미지들 중의 상이한 이미지들을 가중화함으로써 달성될 수 있고, 가중화는 폐색의 가능성 있는 영향 및 이에 따른 임의의 결과적인 객체 검출의 정확도를 평가하기 위하여 이용될 수 있다.
[0157] 유사한 가중화 프로세스는 또한, 다른 쟁점들을 참작하기 위하여 이용될 수 있다. 따라서, 하나의 예에서, 객체 점수는 대응하는 이미지 영역들과 연관되어 계산되고, 객체 점수는 대응하는 이미지 영역들에서의 객체의 검출과 연관된 확실성을 표시한다. 일단 계산되면, 예를 들어, 점수가 점수 임계치를 초과할 경우에 정확하게 식별되어야 할 객체를 평가하여, 객체 점수가 객체들을 식별하기 위하여 이용될 수 있다.
[0158] 객체 점수는 다양한 방식들로 이용될 수 있다는 것이 인식될 것이다. 예를 들어, 객체 점수가 너무 낮을 경우에, 객체는 분석으로부터 간단하게 제외될 수 있다. 그러나, 더 유용하게, 이것은 객체 위치가 얼마나 양호하게 알려져 있는지에 대한 제약들을 설정하기 위하여 이용될 수 있어서, 낮은 점수는 객체가 위치에 대한 높은 불확실성의 정도를 가지는 것으로 귀착될 수 있어서, 상황 인지를 평가할 때에 이것이 참작되는 것을 허용할 수 있다.
[0159] 하나의 예에서, 대응하는 이미지 영역들 각각에 대한 이미지 영역 점수를 생성하고, 그 다음으로, 대응하는 이미지들 각각의 이미지의 이미지 영역들에 대한 이미지 영역 점수들을 이용하여 객체 점수를 계산함으로써 객체 점수가 계산된다. 따라서, 이미지 영역 점수들은 특정한 체적의 이미지 영역을 캡처하는 각각의 이미징 디바이스에 대하여 계산되고, 이들은 체적에 대한 전체적인 점수를 생성하기 위하여 조합된다.
[0160] 추가적으로 및/또는 대안적으로, 개별적인 이미지 영역 점수들은 객체를 정확하게 식별할 시에 이용되어야 할 이미지 영역에 대한 잠재적인 신뢰성을 평가하기 위하여 이용될 수 있다. 따라서, 상당한 폐색이 있는 경우 등과 같이, 임의의 특정한 이미지 영역의 가능성 있는 정확도가 낮을 경우에, 이것은 임의의 분석에서 낮은 가중화를 부여받을 수 있어서, 추후의 분석에 대해 불리하게 영향을 줄 가능성이 적고, 이에 의해, 이것이 결과적인 객체 위치에 과도하게 영향을 미칠 기회를 감소시킨다.
[0161] 언급된 바와 같이, 이 접근법은 폐색들을 위하여 이용될 수 있지만, 이것은 또한, 광범위한 다른 인자들을 위하여 이용될 수 있다. 예를 들어, 점수는 이미지 영역 분류, 또는 이미지 스트림에서의 이미지들 사이의 이미지 영역에 대한 외관에서의 변경의 정도에 기초할 수 있어서, 객체를 포함할 가능성이 없는 정적 이미지 영역들은 낮은 점수를 가지는 반면, 비-정적 영역들은 더 높은 점수를 가질 수 있다.
[0162] 유사하게, 이 접근법은 이미지 영역 분류의 장수명(longevity) 또는 이미지 영역 분류의 이력적 변경들을 참작할 수 있다. 따라서, 이미지 영역의 분류가 빈번하게 변경될 경우에, 이것은 영역이 올바르게 분류되고 있지 않다는 것을 제안할 수 있고, 이에 따라, 이것은 낮은 신뢰 점수를 부여받을 수 있는 반면, 일정한 분류는 올바른 분류에서의 더 높은 신뢰 및 이에 따른 더 높은 점수를 암시한다.
[0163] 유사하게, 점수는 시각적 효과들의 존재 또는 가능성에 기초하여 배정될 수 있어서, 객체들을 식별할 때에 시각적 효과들이 참작되는 것을 허용할 수 있다. 또 다른 예에서, 관심 체적에 대한 카메라 기하구조가 이용될 수 있어서, 체적으로부터 멀리 있거나 체적에 대하여 비스듬하게 배열되는 카메라에 의해 캡처된 이미지들이 더 낮은 가중화를 부여받는다.
[0164] 인자들은 또한, 이미지 캡처의 시간을 참작할 수 있고, 이것은 비동기적 데이터 캡처가 이용되는 것을 허용하는 것을 보조할 수 있다. 이 사례에서, 중첩하는 이미지들 중의 하나가 다른 이미지들에 대한 상당히 상이한 시간에서 캡처될 경우에, 이것은 객체가 개입 시간(intervening time)에 이동하였을 수 있다면, 객체를 식별하는 측면에서 더 낮은 가중화를 부여받을 수 있다.
[0165] 유사하게, 해상도, 초점, 노출 등과 같은, 이미지 품질에 관련되는 다른 인자들이 또한 참작될 수 있다.
[0166] 따라서, 각각의 이미징 디바이스에 의해 캡처된 이미지에 대한 점수를 계산하는 것은 이미지들 각각을 가중화하기 위하여 이용될 수 있어서, 이미지가 전체적인 객체 검출 프로세스에서 의존하는 정도는 이미지의 품질, 폐색들, 시각적 효과들, 객체가 얼마나 양호하게 이미징되는지 등과 같은 인자들을 참작할 수 있고, 이것은 궁극적으로, 객체 검출이 더 정확하게 수행되는 것을 허용할 수 있다는 것이 인식될 것이다.
[0167] 객체들이 어떻게 검출되는지에 관계 없이, 객체들의 위치를 결정하는 것은 전형적으로, 환경 내에서의 이미징 디바이스들의 포지셔닝의 지식을 요구하고, 그러므로, 프로세싱 디바이스는 이미징 디바이스들의 알려진 포지션에 따라 이미지들을 해석하도록 구성된다. 이것을 달성하기 위하여, 하나의 예에서, 포지션 정보는 이미지들을 해석하기 위하여 이용되는 교정 데이터에서 구체화된다. 하나의 특정한 예에서, 교정 데이터는 각각의 이미징 디바이스의 이미징 성질들을 표시하는 내인성 교정 데이터, 및 환경(E) 내에서의 이미징 디바이스들의 상대적인 포지셔닝을 표시하는 외인성 교정 데이터를 포함한다. 이것은 프로세싱 디바이스가 캡처된 이미지들에서의 임의의 이미징 왜곡을 참작하기 위하여, 그리고 또한, 환경(E)에 대한 이미징 디바이스들의 포지션을 참작하기 위하여 이미지들을 정정하는 것을 허용한다.
[0168] 교정 데이터는 전형적으로, 교정 프로세스 동안에 생성된다. 예를 들어, 내인성 교정 데이터는 이미징 디바이스를 이용하여 상이한 포지션들로부터 캡처된 정의된 패턴들의 이미지들에 기초하여 생성될 수 있다. 정의된 패턴들은 임의의 적절한 형태일 수 있고, 도트(dot)들 또는 유사한 것, 기점 마커들 등의 패턴들을 포함할 수 있다. 이미지들은 이미지에서의 정의된 패턴들의 왜곡들을 식별하기 위하여 분석되고, 이러한 왜곡들은 궁극적으로, 이미징 디바이스의 이미지 캡처 성질들을 표시하는 교정 데이터를 생성하기 위하여 이용될 수 있다. 이러한 이미지 캡처 성질들은 피사계 심도(depth of field), 렌즈 개구부, 렌즈 왜곡 등과 같은 것들을 포함할 수 있다.
[0169] 대조적으로, 외인성 교정 데이터는 환경 내에서의 타깃들의 캡처된 이미지들을 수신함으로써, 동일한 타깃을 도시하는 상이한 이미징 디바이스들에 의해 캡처된 이미지들을 식별하기 위하여 캡처된 이미지들을 분석함으로써, 그리고 이미징 디바이스들의 상대적인 포지션 및 배향을 표시하는 교정 데이터를 생성하기 위하여 식별된 이미지들을 분석함으로써 생성될 수 있다. 다시, 이 프로세스는 환경 내에서 다수의 타깃들을 포지셔닝하고, 그 다음으로, 타깃들이 어느 이미징 디바이스들을 이용하여 캡처되었는지를 식별함으로써 수행될 수 있다. 이것은 사용자 입력들에 기초하여 수동적으로 수행될 수 있거나, 상이한 타깃들 및 상이한 포지션들이 용이하게 식별될 수 있도록, 고유한 타깃들을 이용하여 자동적으로 수행될 수 있다. 에이프릴 태그들과 같은 기점 마커들은 이 목적을 위하여 이용될 수 있다는 것이 이것으로부터 인식될 것이다.
[0170] 위에서 언급된 바와 같이, 하나의 예에서, 시스템은 상황 인지 모니터링 시스템의 일부일 수 있다. 이 예에서, 위에서 설명된 바와 같은 모듈형 휠들을 이용하여 이동을 제어하는 것에 추가적으로, 시스템은 상황 인지 이벤트들을 식별하기 위하여 상황 인지 규칙들을 이용하여, 궁극적으로, 이벤트를 완화하는 것을 시도하는 것과 같은 액션이 수행되는 것을 허용한다.
[0171] 상황 인지 규칙들의 본질은 바람직한 구현예 뿐만 아니라, 환경의 본질, 및 환경 내에서의 객체들에 따라 변동될 것이다. 하나의 예에서, 상황 인지 규칙들은 허용된 객체 통행 경로들, 허용된 객체 이동들, 상이한 객체들을 위한 허용된 인접성 제한들, 객체들을 위한 허용된 구역들, 또는 객체들을 위한 거부된 구역들 중의 하나 이상을 표시한다. 이 예에서, 상황 인지 이벤트들은 객체 이동이 허용된 객체 통행 경로로부터 벗어날 경우에, 객체 이동이 허용된 객체 이동으로부터 벗어날 경우에, 2 개의 객체들이 객체들을 위한 허용된 인접성 제한들 내에 있을 경우에, 2 개의 객체들이 객체들을 위한 허용된 인접성 제한들에 접근하고 있을 경우에, 2 개의 객체들이 교차하는 예측된 통행 경로들을 가질 경우에, 객체가 객체를 위한 허용된 구역 외부에 있을 경우에, 객체가 객체를 위한 허용된 구역을 진출하고 있을 경우에, 객체가 객체를 위한 거부된 구역 내부에 있을 경우에, 객체가 객체를 위한 거부된 구역에 진입하고 있을 경우 등에 발생하는 것으로 결정될 수 있다. 그러나, 광범위한 상이한 상황 인지 규칙들은 광범위한 상이한 상황 인지 이벤트들을 식별하기 위하여 정의될 수 있고, 위의 예들은 오직 예시의 목적을 위한 것이라는 것이 인식될 것이다.
[0172] 이러한 규칙들은 다양한 기법들을 이용하여 생성될 수 있지만, 전형적으로, 환경에서의 객체들의 동작 및 상호작용의 이해를 통해 수동적으로 생성된다. 또 다른 예에서, 규칙들 엔진은 작업(task)을 적어도 부분적으로 자동화하기 위하여 이용될 수 있다. 규칙들 엔진은 전형적으로, 규칙들 문서를 수신함으로써, 그리고 로직 표현들 및 객체 유형들을 식별하기 위하여 자연어 프로세싱을 이용하여 파싱(parsing)함으로써 동작한다. 객체 식별자는 그 다음으로, 객체의 객체 유형에 기초하여 객체 식별자들을 리트리브함으로써, 또는 필요한 바와 같이 객체 식별자들을 생성함으로써, 각각의 객체 유형에 대하여 결정된다. 로직 표현들은 그 다음으로, 로직 표현들을 태그로 업로딩하기 전에, 로직 표현들을 트리거 이벤트 및 액션으로 변환함으로써 객체 규칙들을 생성하기 위하여 이용된다. 예를 들어, 로직 표현들은 트리거 및 액션으로 변환될 수 있는 "If…then…명령문(statement)들의 측면에서, 규칙들 텍스트 내에서 종종 특정된다. 이것은 예를 들어, "If…then…명령문들로부터의 텍스트를 이용하여 템플릿(template)을 파퓰레이팅(populating)함으로써, 템플릿들을 이용하여 수행될 수 있어서, 규칙들은 표준 방식으로 생성되어, 이들은 일관적으로 해석되는 것을 허용한다.
[0173] 일단 규칙들이 생성되면, 규칙들의 위반에 응답하여 취해져야 할 액션들이 또한 정의될 수 있고, 이 정보는 규칙들 데이터베이스 내에 규칙들 데이터로서 저장될 수 있다.
[0174] 상이한 규칙들은 전형적으로, 상이한 객체들 및/또는 액체 유형들에 대하여 정의된다는 것이 상기한 것으로부터 인식될 것이다. 따라서, 예를 들어, 규칙들의 하나의 세트는 개인들에 대하여 정의될 수 있는 반면, 규칙들의 또 다른 세트는 AGV들에 대하여 정의될 수 있다. 유사하게, 상이한 규칙들은 상이한 방식으로 동작하는 상이한 AGV들에 대하여 정의될 수 있다. 또한, 일부 사례들에서, 규칙들은 객체들 사이의 상호작용에 관련될 것이고, 이 경우에, 규칙들은 다수의 객체들의 객체 아이덴티티에 종속될 수 있다는 것이 인식될 것이다.
[0175] 따라서, 하나의 예에서, 규칙들이 생성될 때, 규칙들은 객체 유형을 표시할 수 있고 및/또는 특정한 객체를 고유하게 표시할 수 있는 하나 이상의 객체 아이덴티티들과 연관되어, 객체 상황 인지 규칙들이 상이한 유형들의 객체들 또는 상이한 개별적인 객체들에 대하여 정의되는 것을 허용한다. 이것은 프로세싱 디바이스가 환경 내에서의 객체들의 객체 아이덴티티들에 기초하여 관련된 규칙들을 추후에 리트리브하는 것을 허용한다. 따라서, 하나의 예에서, 하나 이상의 프로세싱 디바이스들은 적어도 하나의 객체를 위한 객체 아이덴티티를 결정하고, 그 다음으로, 객체 아이덴티티를 적어도 부분적으로 이용하여 객체 이동을 상황 인지 규칙들과 비교하도록 구성된다. 따라서, 프로세싱 디바이스는 객체 아이덴티티에 따라 하나 이상의 상황 인지 규칙들을 선택할 수 있고, 그 다음으로, 객체 이동을 선택된 상황 인지 규칙과 비교할 수 있다.
[0176] 객체 아이덴티티는 예를 들어, 바람직한 구현예 및/또는 객체의 본질에 따라, 다수의 상이한 기법들을 사용하여 결정될 수 있다. 예를 들어, 객체가 임의의 형태의 인코딩된 식별자를 포함하지 않을 경우에, 이것은 이미지 인식 기법들을 이용하여 수행될 수 있다. 예를 들어, 사람을 식별할 경우에, 사람은 널리 유사한 외관을 가질 것이고, 일반적으로 AGV의 외관과 상당히 상이할 것이고, 따라서, 사람은 이미지들 중의 하나 이상에 대해 수행된 이미지 인식 기법들을 이용하여 식별될 수 있다. 이것은 상이한 개인들의 판별을 반드시 요구하지는 않지만, 이것은 일부 경우들에 수행될 수 있다는 것이 주목될 것이다.
[0177] 추가적으로 및/또는 대안적으로, 아이덴티티들 및 특히, 객체 유형들은 이동의 분석을 통해 식별될 수 있다. 예를 들어, AGV들의 이동은 전형적으로, 미리 결정된 패턴들을 따르는 경향이 있을 것이고, 및/또는 전형적으로, 일정한 속력 및/또는 방향 변경들과 같은 특성들을 가질 것이다. 이것과 대조적으로, 개인들의 이동은 더 무계획적인 경향이고 방향 및/또는 속력에서의 변경들을 받는 경향이 있을 것이어서, AGV들 및 인간들은 이동 패턴들의 분석에 기초하여 구별되는 것을 허용할 것이다.
[0178] 또 다른 예에서, 객체는 객체 아이덴티티를 표시하는 머신 판독가능 코드 데이터와 연관될 수 있다. 이 예에서, 프로세싱 디바이스들은 머신 판독가능 코딩된 데이터를 이용하여 객체 아이덴티티를 결정하도록 구성될 수 있다. 머신 판독가능 코딩된 데이터는 바람직한 구현예에 따라, 다수의 방식들 중의 임의의 하나로 인코딩될 수 있다. 하나의 예에서, 이것은 이미지에서 가시적 머신 판독가능 코딩된 데이터를 식별하여 이것이 프로세싱 디바이스에 의해 디코딩되는 것을 허용하기 위하여 이미지들을 분석함으로써 그 다음으로 검출될 수 있는 바 코드, QR 코드, 또는 더 전형적으로 에이프릴 태그와 같은 시각적 코딩된 데이터를 이용하여 달성될 수 있다. 그러나, 또 다른 예에서, 객체들은 단거리 무선 통신 프로토콜 태그들, RFID(라디오 주파수 식별) 태그들, 블루투스 태그들, 또는 유사한 것과 같은 태그들과 연관될 수 있고, 이 경우에, 머신 판독가능 코딩된 데이터는 적당한 태그 판독기로부터 리트리브될 수 있다.
[0179] 또한, 식별 접근법들은 함께 이용될 수 있다는 것이 인식될 것이다. 예를 들어, 객체는 적당한 판독기를 지나갈 때, 머신 판독가능 코딩된 데이터의 검출을 통해 고유하게 식별될 수 있다. 이 사례에서, 일단 객체가 식별되었으면, 이 아이덴티티는 객체가 환경 내에서 이동할 때에 객체를 추적함으로써 유지될 수 있다. 이것은 객체가 식별되도록 하기 위하여 판독기를 다시 지나갈 필요가 없다는 것을 의미하고, 이것은 예를 들어, 개인이 룸에 진입하기 위하여 액세스 카드를 이용할 때에 발생하는 바와 같이, 객체들이 에어리어로의 진입 시와 같은, 제한된 경우들에 오직 식별되는 사정들에서 특히 유용하다.
[0180] 하나의 예에서, 하나 이상의 프로세싱 디바이스들은 예측된 객체 이동들을 결정하기 위하여 객체 이동들을 이용하도록 구성된다. 이것은 예를 들어, 일직선 라인으로 이동하는 객체가 적어도 짧은 시간 주기 동안에 일직선 라인으로 이동하는 것을 계속할 것이라는 것을 가정하여, 예를 들어, 이력적 이동 패턴들을 시간에 있어서 순방향으로 외삽(extrapolating)함으로써 수행될 수 있다. 미래의 객체 이동을 예측하기 위하여, 특정 객체들 또는 유사한 유형들의 객체들을 위한 이동의 패턴들을 분석하기 위하여 머신 학습 기법들을 이용하는 것, 정의된 의도된 통행 경로들과 같은 다른 이용가능한 정보와 이러한 이용하는 것을 조합하는 것 등과 같은 다양한 기법들은 이러한 예측들을 수행하기 위하여 이용될 수 있다는 것이 인식될 것이다. 예측된 객체 이동들은 그 다음으로, 잠재적인 상황 인지 이벤트들을 미리 식별하기 위하여 상황 인지 규칙들과 비교될 수 있다. 이것은 예를 들어, AGV 및 사람이 미래의 일부 포인트에서 차단되도록 예상되는지를 확인하기 위하여 사용될 수 있어서, 이에 의해, 임의의 차단이 발생하기 이전에, 경고 또는 경보가 생성되는 것을 허용할 수 있다.
[0181] 하나의 예에서, 하나 이상의 프로세싱 디바이스들은 환경, 환경에서의 이미징 디바이스들의 위치, 경고 비콘들과 같은 클라이언트 디바이스들의 위치들, 현재의 객체 위치들, 객체 이동들, 예측된 객체 위치들, 예측된 객체 이동들 등을 표시하는 환경 모델을 생성하도록 구성된다. 환경 모델은 최근의 이력적 이동들의 레코드를 유지하기 위하여 이용될 수 있고, 이러한 최근의 이력적 이동들은 일시적으로 정지되어 있는 객체들을 추적하는 것을 보조하고, 또한, 상황 인지 이벤트들을 더 정확하게 식별하기 위하여 궁극적으로 이용될 수 있다.
[0182] 환경 모델은 메모리 내에 유지될 수 있고, 요구된 바와 같이, 프로세싱 디바이스, 및/또는 원격 컴퓨터 시스템들과 같은 다른 프로세싱 디바이스들에 의해 액세스될 수 있다. 또 다른 예에서, 프로세싱 디바이스들은 그것이 현재 서 있는 바와 같이, 또는 시간에 있어서 이력적 포인트들에서, 환경 모델의 그래픽 표현을 생성하도록 구성될 수 있다. 이것은 조작자들 또는 사용자들이 현재의 또는 이력적 환경 스테이터스를 관측하고, 이에 의해, 이벤트 발생으로 이어지는 사정들의 세트를 검토하는 것 등과 같은, 상황 인지 이벤트들과 연관된 쟁점들을 확인하는 것을 허용하기 위하여 이용될 수 있다. 이것은 환경 내에서의 객체들의 이동을 도시하는 히트 맵(heat map)들을 디스플레이하는 것을 포함할 수 있고, 이러한 객체들의 이동은 궁극적으로, 병목 현상(bottle neck)들, 또는 상황 인지 이벤트들을 야기할 수 있는 다른 쟁점들을 강조표시하기 위하여 이용될 수 있다.
[0183] 이전에 언급된 바와 같이, 상황 인지 이벤트들을 식별하는 것에 응답하여, 액션들이 취해질 수 있다. 이것은 상황 인지 이벤트의 표시를 레코딩하는 것, 상황 인지 이벤트를 표시하는 통지를 생성하는 것, 출력 디바이스로 하여금, 상황 인지 이벤트를 표시하는 출력을 생성하게 하는 것, 청취가능한 및/또는 시각적 출력의 생성을 포함하는 것, 경보를 활성화하는 것, 또는 객체의 동작이 제어되게 하는 것을 포함할 수 있지만, 이것으로 제한되지는 않는다. 따라서, 통지들은 감시 감독자들 또는 조작자들에게 제공될 수 있거나, 경고들은 예를 들어, 임박한 충돌의 가능성과 같은 잠재적인 상황 인지 이벤트를 인간들에게 통지하기 위하여 환경 내에서 생성될 수 있거나, AGV들과 같은 자율 또는 반-자율 차량들을 제어하기 위하여 이용될 수 있어서, 차량 제어 시스템이 차량을 정지시키고 및/또는 일부 다른 방식으로 차량의 동작을 변경하는 것을 허용할 수 있고, 이에 의해, 사고 또는 다른 이벤트가 회피되는 것을 허용할 수 있다.
[0184] 이미징 디바이스들은 보안 이미징 디바이스들, 모노스코픽 이미징 디바이스들, 비-컴퓨터 비전-기반 이미징 디바이스들, 또는 내인성 교정 정보를 가지지 않는 이미징 디바이스들 중의 임의의 하나 이상으로부터 선택될 수 있다. 또한, 접근법은 이미징 디바이스의 구성에 의존하지 않으므로, 교정 데이터의 이용을 통해 상이한 이미징 디바이스들을 취급하면, 이것은 이미징 디바이스의 상이한 유형들 및/또는 모델들이 단일 시스템 내에서 이용되는 것을 허용하고, 이에 의해, 상황 인지 모니터링 시스템을 구현하기 위하여 이용될 수 있는 장비에 대한 더 큰 신축성을 제공한다.
[0185] 위에서 언급된 바와 같이, 하나의 예에서, 프로세스는 하나 이상의 프로세싱 시스템들, 및 임의적으로 분산된 아키텍처의 일부로서 동작하는 하나 이상의 클라이언트 디바이스들에 의해 수행되고, 그 예는 도 4를 참조하여 지금부터 설명될 것이다.
[0186] 이 예에서, 다수의 프로세싱 시스템들(410)은 인터넷 및/또는 하나 이상의 로컬 영역 네트워크(local area network)(LAN)들과 같은 통신 네트워크들(440)을 통해, 다수의 클라이언트 디바이스들(430) 및 이미징 디바이스들(420) 뿐만 아니라, 다수의 모듈형 휠 제어기들(454)에 결합된다. 네트워크들(440)의 구성은 오직 예의 목적을 위한 것이고, 실제적으로, 프로세싱 시스템들(410), 이미징 디바이스들(420), 클라이언트 디바이스들(430), 및 제어기들(454)은 이동 네트워크들, 802.11 네트워크들과 같은 사설 네트워크들, 인터넷, LAN들, WAN들 등을 포함하지만, 이것으로 제한되지는 않는 유선 또는 무선 접속들 뿐만 아니라, 블루투스 등과 같은 직접 또는 점대점 접속들을 통한 것과 같이, 임의의 적절한 메커니즘을 통해 통신할 수 있다는 것이 인식될 것이다.
[0187] 하나의 예에서, 프로세싱 시스템들(410)은 이미징 디바이스들(420)로부터 이미지 스트림들을 수신하고, 이미지 스트림들을 분석하고, 모듈형 휠들을 제어하기 위한 제어 신호들을 생성하고, 상황 인지 이벤트들을 임의적으로 식별하도록 구성된다. 프로세싱 시스템들(410)은 또한, 클라이언트 디바이스들 또는 다른 하드웨어를 통해 임의적으로 디스플레이된 통지들 및/또는 경고들을 생성하는 것과 같은 액션들을 구현하거나, AGV들 또는 유사한 것의 동작들을 제어하거나, 환경 모델에 대한 액세스를 생성하고 제공하도록 구성될 수 있다. 프로세싱 시스템(410)은 단일 엔티티(entity)로서 도시되지만, 프로세싱 시스템(410)은 예를 들어, 클라우드 기반 환경의 일부로서 제공되는 프로세싱 시스템들(410) 및/또는 데이터베이스들을 이용함으로써 다수의 지리적으로 별도의 위치들 상에서 분산될 수 있다는 것이 인식될 것이다. 그러나, 위에서 설명된 배열은 필수적이지 않고, 다른 적당한 구성들이 이용될 수 있다.
[0188] 적당한 프로세싱 시스템(410)의 예는 도 5에서 도시된다.
[0189] 이 예에서, 프로세싱 시스템(410)은 도시된 바와 같이, 버스(515)를 통해 상호접속된 적어도 하나의 마이크로프로세서(511), 메모리(512), 키보드 및/또는 디스플레이와 같은 임의적인 입력/출력 디바이스(513), 및 외부 인터페이스(514)를 포함한다. 이 예에서, 외부 인터페이스(514)는 프로세싱 시스템(410)을, 통신 네트워크들(440), 데이터베이스들, 다른 저장 디바이스들 등과 같은 주변 디바이스들에 접속하기 위하여 사용될 수 있다. 단일 외부 인터페이스(514)가 도시되지만, 이것은 오직 예의 목적을 위한 것이고, 실제적으로, 다양한 방법들(예컨대, 이더넷, 직렬, USB, 무선 등)을 이용하는 다수의 인터페이스들이 제공될 수 있다.
[0190] 이용 시에, 마이크로프로세서(511)는 요구된 프로세스들이 수행되는 것을 허용하기 위하여 메모리(512) 내에 저장된 애플리케이션들 소프트웨어의 형태로 명령들을 실행한다. 애플리케이션들 소프트웨어는 하나 이상의 소프트웨어 모듈들을 포함할 수 있고, 오퍼레이팅 시스템 환경 등과 같은 적당한 실행 환경에서 실행될 수 있다.
[0191] 따라서, 프로세싱 시스템(410)은 적당하게 프로그래밍된 클라이언트 디바이스, PC< 웹 서버, 네트워크 서버 등과 같은 임의의 적당한 프로세싱 시스템으로부터 형성될 수 있다는 것이 인식될 것이다. 하나의 특정한 예에서, 프로세싱 시스템(310)은 비-휘발성(예컨대, 하드 디스크) 스토리지 상에서 저장된 소프트웨어 애플리케이션들을 실행하는 인텔 아키텍처(Intel Architecture) 기반 프로세싱 시스템과 같은 표준 프로세싱 시스템이지만, 이것은 필수적이지 않다. 그러나, 프로세싱 시스템은 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(필드 프로그래밍가능 게이트 어레이)와 같은 로직을 구현하는 것과 임의적으로 연관된 펌웨어, 또는 임의의 다른 전자 디바이스, 시스템, 또는 배열과 같은 임의의 전자 프로세싱 디바이스일 수 있다는 것이 또한 이해될 것이다.
[0192] 적당한 클라이언트 디바이스(430)의 예는 도 6에서 도시된다.
[0193] 하나의 예에서, 클라이언트 디바이스(430)는 도시된 바와 같이, 버스(635)를 통해 상호접속된 적어도 하나의 마이크로프로세서(631), 메모리(632), 키보드 및/또는 디스플레이와 같은 입력/출력 디바이스(633), 및 외부 인터페이스(634)를 포함한다. 이 예에서, 외부 인터페이스(634)는 클라이언트 디바이스(430)를, 통신 네트워크들(440), 데이터베이스들, 다른 저장 디바이스들 등과 같은 주변 디바이스들에 접속하기 위하여 사용될 수 있다. 단일 외부 인터페이스(634)가 도시되지만, 이것은 오직 예의 목적을 위한 것이고, 실제적으로, 다양한 방법들(예컨대, 이더넷, 직렬, USB, 무선 등)을 이용하는 다수의 인터페이스들이 제공될 수 있다.
[0194] 이용 시에, 마이크로프로세서(631)는 프로세싱 시스템(410)과의 통신을 허용하기 위하여, 예를 들어, 통지들 등이 수신되는 것을 허용하고 및/또는 환경 모델에 대한 액세스를 제공하기 위하여, 메모리(632) 내에 저장된 애플리케이션들 소프트웨어의 형태로 명령들을 실행한다.
[0195] 따라서, 클라이언트 디바이스들(430)은 적당하게 프로그래밍된 PC< 인터넷 단말, 랩톱, 또는 핸드헬드 PC와 같은 임의의 적당한 프로세싱 시스템으로부터 형성될 수 있고, 하나의 바람직한 예에서는, 태블릿, 또는 스마트폰 등인 것이 인식될 것이다. 따라서, 하나의 예에서, 클라이언트 디바이스(430)는 비-휘발성(예컨대, 하드 디스크) 스토리지 상에서 저장된 소프트웨어 애플리케이션들을 실행하는 인텔 아키텍처 기반 프로세싱 시스템과 같은 표준 프로세싱 시스템이지만, 이것은 필수적이지 않다. 그러나, 클라이언트 디바이스들(430)은 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(필드 프로그래밍가능 게이트 어레이)와 같은 로직을 구현하는 것과 임의적으로 연관된 펌웨어, 또는 임의의 다른 전자 디바이스, 시스템, 또는 배열과 같은 임의의 전자 프로세싱 디바이스일 수 있다는 것이 또한 이해될 것이다.
[0196] 모듈형 휠의 예는 도 7a 및 도 7b를 참조하여 지금부터 더 상세하게 설명될 것이다.
[0197] 이 예에서, 모듈형 휠(750)은 객체에 부착되도록 구성된 장착부(757)를 가지는 본체(751)를 포함한다. 본체는 "7" 형상을 가지고, 상부 횡방향 부분(751.1)은 장착부(757)를 지지하고, 내향으로 경사진 대각선 레그(leg)(751.2)는 휠(752)을 지지하는 허브(751.3)로 아래로 연장된다. 구동부(753)는 허브(hub)에 부착되어, 휠이 회전되는 것을 허용한다. 배터리(756)는 경사진 대각선 레그(751.2)의 하면 상에 장착되고, 제어기(754)는 배터리의 외부 면 상에 장착된다. 본체(751)가 장착부(757)에 대하여 회전되는 것을 허용하는 조향 구동부(755)가 또한 제공되고, 이에 의해, 휠의 배향(진로)이 조절되는 것을 허용한다.
[0198] 하나의 특정 예에서, 모듈형 휠은 자립형 2 자유도 휠들이 되도록 설계된다. 각각의 모듈형 휠은 휠 후방에 그리고 모듈의 상부에서의 결합 아래에 로케이팅된 연속적인 회전 서보(servo)들의 이용을 통해 속력 및 진로를 생성할 수 있다. 회전의 그 중심들은 회전 동안에 토크(torque)를 감소시키도록 정렬된다. 휠 및 상부 결합은 교차 플랫폼 비교가능성을 가능하게 하기 위하여 ISO 9409-1404M6 볼트 패턴을 이용한다. 어댑터들의 포괄적인 세트는 급속 시스템 조립 및 재구성을 가능하게 하기 위하여 이용될 수 있다.
[0199] 적당한 제어기의 예는 도 8에서 도시된다.
[0200] 하나의 예에서, 제어기(754)는 도시된 바와 같이, 버스(875)를 통해 상호접속된 적어도 하나의 마이크로프로세서(871), 메모리(872), 키보드 및/또는 디스플레이와 같은 입력/출력 디바이스(873), 및 외부 인터페이스(874)를 포함한다. 이 예에서, 외부 인터페이스(874)는 제어기(754)를, 통신 네트워크들(440), 데이터베이스들, 다른 저장 디바이스들 등과 같은 주변 디바이스들에 접속하기 위하여 사용될 수 있다. 단일 외부 인터페이스(874)가 도시되지만, 이것은 오직 예의 목적을 위한 것이고, 실제적으로, 다양한 방법들(예컨대, 이더넷, 직렬, USB, 무선 등)을 이용하는 다수의 인터페이스들이 제공될 수 있다.
[0201] 이용 시에, 마이크로프로세서(871)는 프로세싱 시스템(410)과의 통신을 허용하기 위하여, 예를 들어, 통지들 등이 수신되는 것을 허용하고 및/또는 환경 모델에 대한 액세스를 제공하기 위하여, 메모리(872) 내에 저장된 애플리케이션들 소프트웨어의 형태로 명령들을 실행한다.
[0202] 따라서, 제어기들(754)은 적당하게 프로그래밍된 PC< 인터넷 단말, 랩톱, 또는 핸드헬드 PC와 같은 임의의 적당한 프로세싱 시스템으로부터 형성될 수 있고, 하나의 바람직한 예에서는, 태블릿, 또는 스마트폰 등인 것이 인식될 것이다. 따라서, 하나의 예에서, 제어기(754)는 비-휘발성(예컨대, 하드 디스크) 스토리지 상에서 저장된 소프트웨어 애플리케이션들을 실행하는 표준 프로세싱 시스템이지만, 이것은 필수적이지 않다. 그러나, 제어기(754)는 마이크로프로세서, 마이크로칩 프로세서, 로직 게이트 구성, FPGA(필드 프로그래밍가능 게이트 어레이)와 같은 로직을 구현하는 것과 임의적으로 연관된 펌웨어, 또는 임의의 다른 전자 디바이스, 시스템, 또는 배열과 같은 임의의 전자 프로세싱 디바이스일 수 있다는 것이 또한 이해될 것이다.
[0203] 하나의 특정 예에서, 제어기(754)는 휠들 커맨드들 및 모듈형 휠들 및/또는 통신 네트워크들 사이의 wi-fi 통신의 둘 모두를 제공하는 라즈베리 파이(Raspberry Pi)의 형태이다. 각각의 휠의 본체 또는 레그 내로 제작된 것은 전력을 제공하는 4 셀 리튬 폴리머(lithium polymer) 배터리이다. 배터리는 분리가능한 패널을 통해 액세스될 수 있다.
[0204] 하나의 예에서, 모듈형 휠 시스템의 중앙 제어는 개별적인 모듈형 휠들의 속도 및 이에 따른 회전 레이트를 설정하기 위하여 상대 속도들을 이용한다. 객체의 중심에 대한 각각의 모듈형 휠들 자세(포지션 및 배향)는 요구된 속도를 결정하기 위하여 이용될 수 있고, 이것은 휠들에 대하여 중심을 시프팅함으로써 전통적인 제어 시스템들을 생성하기 위한 능력으로 귀착된다. 모듈들 및 중심 포인트들의 상이한 조합들은 애커먼 조향, 차동 구동, 및 비홀로노믹 전방향성 이동을 생성할 수 있다. 이러한 중앙집중화된 제어는, 예를 들어, 하나의 제어기를 마스터(master)로서 그리고 다른 것들을 슬레이브(slave)들로서 지명하고, 모듈형 휠들 중의 하나로 임의적으로 통합된 중앙집중화된 내장형 제어기를 가지는 제어기들(854)에 의해 수행될 수 있고, 및/또는 프로세싱 시스템들(410)에 의해 수행될 수 있다.
[0205] 예시적인 구성들은 도 9a 내지 도 9d에서 도시된다. 도 9a는 3-휠 구성을 도시하고, 순간적인 회전의 중심(instantaneous centre of rotation)(ICR)은 비홀로노믹 전방향성 구성을 생성하는 모든 부착된 휠들 사이에서 중앙에 배치된다. 도 9b는 애커먼 제어를 제공하기 위하여 후방 2 개의 휠들의 구동 축과 일렬로 배치된 ICR을 갖는 4-휠 구성을 도시한다. 도 9c는 차동 구동 또는 스키드 조향을 생성하는 휠들의 2 개의 세트들 사이에서 일렬로 배치된 ICR을 갖는 4-휠 구성을 도시하는 반면, 도 9d는 삼륜차 제어를 제공하기 위하여 구동 축과 일렬인 ICR을 갖는 3-휠 구성을 도시한다.
[0206] 다른 구동 구성들이 또한 채용될 수 있고 이들은 오직 예시의 목적을 위한 것이라는 것이 인식될 것이다.
[0207] 객체들의 이동을 제어하고 선택적으로 상황 인지 모니터링을 동시에 수행하기 위한 프로세스들의 예들은 지금부터 더 상세하게 설명될 것이다.
[0208] 이 예들의 목적을 위하여, 하나 이상의 프로세싱 시스템들(410)은 이미지 디바이스들(420)로부터의 이미지 스트림들을 모니터링하고, 객체 위치들을 식별하기 위하여 이미지 스트림들을 분석하고, 제어기들(454)로 전송되는 제어 신호들을 생성하도록 작동하여, 모듈형 휠들이 제어되고, 이에 의해, 객체를 이동시키는 것을 허용한다는 것이 가정된다.
[0209] 사용자 상호작용은 클라이언트 디바이스들(430)을 통해 제공된 사용자 입력들에 기초하여 수행될 수 있고, 모델 시각화(model visualisation)들의 결과적인 통지는 클라이언트 디바이스들(430)에 의해 디스플레이될 수 있다. 하나의 예에서, 플랫폼 불가지적 방식(platform agnostic manner)으로 이것을 제공하여, 이것이 상이한 오퍼레이팅 시스템들을 이용하고 상이한 프로세싱 능력들을 가지는 클라이언트 디바이스들(430)을 이용하여 용이하게 액세스되는 것을 허용하기 위하여, 입력 데이터 및 커맨드들은 웹페이지를 통해 클라이언트 디바이스들(430)로부터 수신되고, 결과적인 시각화들은 브라우저 애플리케이션(browser application), 또는 클라이언트 디바이스(430)에 의해 실행된 다른 유사한 애플리케이션에 의해 로컬 방식으로 렌더링된다.
[0210] 그러므로, 프로세싱 시스템(410)은 전형적으로, 이용가능한 특정한 네트워크 기반구조에 따라, 통신 네트워크(440) 등을 통해 클라이언트 디바이스들(430), 제어기들(454), 및 이미징 디바이스들(420)과 통신하는 서버(그리고 이하, 서버로서 지칭될 것임)이다.
[0211] 이것을 달성하기 위하여, 서버(410)는 전형적으로, 이미지들을 분석하는 것 뿐만 아니라, 데이터의 저장 및 프로세싱을 포함하는 다른 요구된 작업들을 수행하는 것, 제어 명령들을 생성하는 것 등을 위한 애플리케이션들 소프트웨어를 실행하고, 서버(410)에 의해 수행된 액션들은 메모리(512)에서 애플리케이션들 소프트웨어로서 저장된 명령들 및/또는 I/O 디바이스(513)를 통해 사용자로부터 수신된 입력 커맨드들, 또는 클라이언트 디바이스(430)로부터 수신된 커맨드들에 따라 프로세서(511)에 의해 수행된다.
[0212] 또한, 사용자는 직접적으로 서버(410) 상에서 또는 클라이언트 디바이스(430) 상에서 제시된 GUI(Graphical User Interface)(그래픽 사용자 인터페이스) 등을 통해, 그리고 하나의 특정한 예에서, 서버(410)에 의해 호스팅된 웹페이지들을 디스플레이하는 브라우저 애플리케이션, 또는 서버(410)에 의해 공급된 데이터를 디스플레이하는 앱(App)을 통해 서버(410)와 상호작용한다는 것이 가정될 것이다. 클라이언트 디바이스(430)에 의해 수행된 액션들은 메모리(632)에서 애플리케이션들 소프트웨어로서 저장된 명령들 및/또는 I/O 디바이스(633)를 통해 사용자로부터 수신된 입력 커맨드들에 따라 프로세서(631)에 의해 수행된다.
[0213] 그러나, 다음의 예들의 목적을 위하여 가정된 위에서 설명된 구성은 필수적이지 않고, 수 많은 다른 구성들이 이용될 수 있다는 것이 인식될 것이다. 또한, 클라이언트 디바이스들(430) 및 서버(410) 사이의 기능성의 구획(partitioning)은 특정한 구현예에 따라 변동될 수 있다는 것이 인식될 것이다.
[0214] 모듈형 휠들을 가지는 객체의 이동을 제어하기 위한 프로세스의 예는 도 10을 참조하여 지금부터 설명될 것이다.
[0215] 이 예에서, 단계(1000)에서, 서버(410)는 이미징 디바이스들(420) 각각으로부터 이미지 스트림들을 수신하고, 단계(1010)에서 동기적 중첩하는 이미지들을 식별하기 위하여 이미지 스트림들을 분석한다. 구체적으로, 이것은 중첩하는 관측 시야들을 가지는 이미징 디바이스들로부터의 이미지들을 분석하는 것, 및 이미지들과 연관된 시간스탬프 및/또는 이미지들의 수신 시간과 같은 타이밍 정보를 참작하여, 이에 의해, 동기적 이미지들을 식별하는 것을 수반할 것이다. 단계(1020)에서, 서버(410)는 객체들의 동기적 중첩하는 이미지들을 이용하여 수행된 시각적 선체 기법을 이용하여 환경 내에서의 하나 이상의 객체 위치들을 결정한다.
[0216] 단계(1030)에서, 서버(410)는 예를 들어, 객체 인식을 이용하고, 및/또는 에이프릴 태그들, QR 코드들, 또는 유사한 것과 같은 코딩된 데이터를 검출하여, 객체들 및/또는 휠들을 식별한다. 객체 및/또는 객체와 연관된 모듈형 휠들을 식별하였으면, 서버(410)는 객체와 연관된 라우팅 데이터를 리트리브할 수 있다. 라우팅 데이터는 환경을 통해 미리 정의된 루트일 수 있거나, 타깃 목적지를 포함할 수 있고, 서버(410)는 그 다음으로, 루트를 계산하도록 동작한다.
[0217] 이것에 후행하여, 서버(410)는 루트에 따라 제어 명령들을 생성할 수 있고, 제어 명령들은 제어기들(454)로 전송될 수 있어서, 객체가 라우팅 데이터에 따라 이동되고, 이에 의해, 루트를 따르는 것을 허용할 수 있다.
[0218] 이 프로세스는 매 수 초와 같이 주기적으로 반복될 수 있어서, 루트를 따르는 것을 보장하기 위하여, 그리고 필요한 경우에 개입들을 취하기 위하여, 예를 들어, 상황 인지 이벤트들을 참작하거나 의도된 통행 경로로부터의 임의의 편차를 정정하기 위하여, 서버(410)가 객체의 이동을 실질적으로 연속적으로 모니터링하는 것을 허용한다는 것이 인식될 것이다. 이것은 또한, 제어 프로세스의 각각의 루프 상에서 생성될 필요가 있는 제어 명령들의 복잡도를 감소시켜서, 복잡한 이동들이 일련의 간단한 제어 명령들로서 구현되는 것을 허용한다.
[0219] 객체를 제어하고 상황 인지를 모니터링하기 위한 프로세스의 추가의 예는 도 11a 및 도 11b를 참조하여 지금부터 설명될 것이다.
[0220] 이 예에서는, 단계(1100)에서, 서버(410)는 이미징 디바이스들(420)로부터 다수의 이미지 스트림들을 획득한다. 단계(1105)에서, 서버(410)는 전형적으로, 이미지 스트림 내에서의 이동들을 식별하기 위하여 각각의 이미지 스트림을 분석함으로써, 이미지 스트림들 내에서 객체들을 식별하도록 동작한다. 객체들을 식별하였으면, 단계(1110)에서, 서버(410)는 상이한 이미징 디바이스들의 상대적인 포지션에 관한 정보를 이용하여 동기적 중첩하는 이미지들을 식별하도록 동작한다. 단계(1115)에서, 서버(410)는 환경에서 객체들을 로케이팅시키기 위하여 시각적 선체 분석을 채용한다.
[0221] 환경 내에서의 객체들의 위치들을 식별하였으면, 이 정보는 단계(1120)에서 환경 모델을 업데이팅하기 위하여 이용된다. 이와 관련하여, 환경 모델은 환경 내에서의 객체들의 현재 그리고 임의적으로 이력적 위치에 관한 정보를 포함하는 환경의 모델이고, 이것은 그 다음으로, 객체 이동들 및/또는 위치들을 추적하기 위하여 이용될 수 있다. 이것의 예는 이하에서 더 상세하게 설명될 것이다.
[0222] 단계(1125)에서, 서버(410)는 예를 들어, 코딩된 데이터, 네트워크 어드레스 등을 이용하여 이동가능한 객체들 및/또는 휠들을 식별한다. 일단 객체들 및/또는 휠들이 식별되었으면, 객체/휠 구성이 결정될 수 있다.
[0223] 이와 관련하여, 객체 구성은 전형적으로, 객체의 규모를 표시하지만, 또한, 객체가 이동되어야 하는 속력에 대한 제한들, 객체와 연관된 인접성 한정들, 또는 유사한 것과 같은 추가적인 정보를 표시할 수 있다. 휠 구성은 전형적으로, 객체 상의 각각의 휠의 포지션을 표시하고, 특정한 객체 이동을 생성하기 위하여 각각의 휠의 상대 속도 및/또는 배향을 제어하기 위해 이용된다.
[0224] 객체 및/또는 휠 구성들은 예를 들어, 휠들이 객체 부착될 때에 셋업 프로세스 동안에 미리 정의될 수 있거나, 예를 들어, 객체의 한도를 산출하기 위하여 시각적 선체 분석을 이용하여, 그리고 휠들 상의 에이프릴 태그들과 같은 코딩된 식별자들을 이용하여, 이에 의해, 휠들을 식별하고 로케이팅시키기 위하여 검출될 수 있다.
[0225] 단계(1135)에서, 서버(410)는 객체를 위한 루트 및/또는 목적지를 정의하는 라우팅 데이터를 결정한다. 다시, 이것은 전형적으로, 예를 들어, 셋업 프로세스 동안에 미리 정의되고, 요구된 바와 같이 리트리브되거나, 예를 들어, 클라이언트 디바이스(430)를 이용하여 조작자 또는 다른 개인에 의해 수동적으로 입력될 수 있다.
[0226] 객체 및/또는 휠 구성들 및 라우팅 데이터는 객체가 환경 내에서 검출되는 최초의 시간과 같은 단일 시간에 오직 결정될 필요가 있을 수 있고, 관련된 정보는 제어 명령들이 추후의 제어 루프들에서 생성되는 것을 허용하기 위하여 환경 모델에서의 객체와 연관될 수 있다는 것이 인식될 것이다.
[0227] 또한, 객체 또는 휠 구성들이 결정되지 않았을 경우에, 이들은 검출될 수 있다는 것이 인식될 것이다. 예를 들어, 기본적인 객체 및/또는 휠 구성은 이미지 분석을 통해 생성될 수 있어서, 객체의 기본적인 형상 및/또는 휠 포지션이 시각적 선체 분석을 이용하여 도출되는 것을 허용할 수 있다. 서로에 대한 휠 포지션들은 또한, 에이프릴 태그들 또는 유사한 것과 같은 기점 마킹들을 갖는 코딩된 데이터를 이용하여 결정될 수 있다. 추가적으로, 휠 구성 데이터는 휠들의 상대적인 자세들을 도출하고 이에 따라 휠 구성을 생성하기 위하여 이 피드백을 이용하여, 모듈형 휠들 중의 하나 이상의 선택적으로 제어하고 객체 및/또는 휠의 결과적인 이동을 모니터링함으로써 도출될 수 있다.
[0228] 상황 인지 모니터링이 구현되는 것을 가정하면, 단계(1140)에서는, 다른 객체들의 이동이 결정되고 추적된다. 일단 객체 이동들 및/또는 정적 객체들의 위치가 알려지면, 이동들 또는 위치들은 단계(1145)에서 상황 인지 규칙들과 비교되어, 규칙들의 위반들과 같은 상황 인지 이벤트들이 식별되는 것을 허용한다. 이 정보는 단계(1150)에서, 경고들 또는 통지들의 생성, AGV들의 제어 등과 같은 임의의 요구된 액션들을 수행하기 위하여 이용된다.
[0229] 이것에 후행하여, 또는 이와 다르게 단계(1155)에서, 서버(410)는 이동가능한 객체를 위한 루트를 계산한다. 이와 관련하여, 루트는 전형적으로, 라우팅 데이터에 따라 생성될 것이지만, 임의적으로, 다른 객체들의 위치 및/또는 이동 뿐만 아니라, 객체의 규모 및 다른 구성에서의 임의의 다른 관련된 파라미터들을 참작할 수 있어서, 객체가 다른 객체들을 회피하기 위하여 이동되는 것을 허용할 수 있다.
[0230] 최종적으로, 단계(1160)에서, 서버(410)는 객체와 연관된 모듈형 휠들 각각으로 전송되어야 할 제어 명령들을 계산한다. 이것은 휠 구성에 기초하여 수행되어, 서버(410)는 개개의 루트를 구현하기 위하여 각각의 모듈형 휠을 위한 필요한 휠 회전들 및/또는 배향들을 계산할 수 있다. 제어 명령들은 그 다음으로, 각각의 휠 제어기(454)에 제공되어, 객체가 계산된 루트를 따르도록, 휠들이 이에 따라 이동되는 것을 허용한다.
[0231] 위에서 언급된 바와 같이, 위에서 설명된 접근법은 전형적으로, 내인성으로, 이미징 디바이스 성질들을 결정하기 위하여, 그리고 외인성으로, 환경 내에서의 이미징 디바이스들의 포지션들을 참작하기 위하여, 이미징 디바이스들(420)을 교정하는 것을 수반하는 교정 프로세스에 의존한다. 이러한 교정 프로세스의 예는 도 12를 참조하여 지금부터 설명될 것이다.
[0232] 이 예에서는, 단계(1200)에서, 이미징 디바이스들은 패턴들의 이미지들을 캡처하기 위하여 이용된다. 패턴들은 전형적으로, 미리 결정된 알려진 형태이고, 도트(dot)들, 에이프릴 태그들과 같은 머신 판독가능 코딩된 데이터 등의 패턴들을 포함할 수 있다. 패턴들의 이미지들은 전형적으로 상이한 각도들의 범위로부터 캡처된다.
[0233] 단계(1210)에서, 이미지들은 캡처된 이미지들을 알려진 패턴들의 의도된 외관을 표현하는 참조 이미지들과 비교함으로써 분석되어, 비교의 결과들이 특정한 이미징 디바이스의 특성들로부터 유발되는 임의의 왜곡들 또는 다른 시각적 효과들을 결정하기 위하여 이용되는 것을 허용한다. 이것은 단계(1220)에서 이미징 디바이스를 위한 내인성 교정 데이터를 도출하기 위하여 이용되고, 이러한 내인성 교정 데이터는 그 다음으로, 교정 데이터의 일부로서 저장되어, 이것이 정정된 이미지를 생성하도록, 개개의 이미징 디바이스에 의해 캡처된 이미지들을 정정하기 위하여 이용되는 것을 허용한다.
[0234] 단계들(1200 내지 1220)은 이용되어야 할 각각의 개별적인 이미징 디바이스에 대하여 반복되고, 인 시투(in situ)로, 또는 이미징 디바이스들의 배치 이전에 수행될 수 있다는 것이 인식될 것이다.
[0235] 단계(1230)에서, 이것이 이미 수행되지 않았다는 것을 가정하면, 카메라들 및 하나 이상의 타깃들은 환경에서 포지셔닝된다. 타깃들은 임의의 적절한 형태일 수 있고, 도트들, 에이프릴 태그들과 같은 기점 마킹들 등을 포함할 수 있다.
[0236] 단계(1240)에서, 타깃들의 이미지들은 이미징 디바이스들(420)에 의해 캡처되고, 이미지들은 단계(1250)에서 분석을 위하여 서버(410)에 제공된다. 분석은 상이한 각도들로부터 상이한 이미징 디바이스들(420)에 의해 캡처되었던 타깃들을 식별하기 위하여 수행되어, 이에 의해, 이미징 디바이스들(420)의 상대적인 포지션이 결정되는 것을 허용한다. 이 프로세스는 예를 들어, 사용자가 상이한 이미지들에서의 공통적인 타깃들을 강조표시하게 함으로써 수동적으로 수행될 수 있어서, 이미지들을 캡처한 이미징 디바이스들의 위치를 계산하기 위하여 삼각측량이 이용되는 것을 허용할 수 있다. 대안적으로, 이것은 환경 전반에 걸쳐 포지셔닝된 상이한 타깃들을 인식하는 것에 의한 것과 같은 이미지 프로세싱 기법들을 적어도 부분적으로 이용하여, 그리고 그 다음으로, 카메라 포지션들을 도출하기 위하여 삼각측량을 다시 이용하여 수행될 수 있다. 이 프로세스는 또한, 사용자가 카메라들의 근사적인 위치를 식별하게 함으로써, 예를 들어, 환경 모델 내에서 이들을 지정함으로써 보조될 수 있다.
[0237] 단계(1260)에서, 이미징 디바이스들의 상대적인 포지셔닝을 표시하는 외인성 교정 데이터는 교정 데이터의 일부로서 저장된다.
[0238] 상황 모니터링을 수행하기 위한 프로세스의 예는 도 13a 내지 도 13c를 참조하여 지금부터 더 상세하게 설명될 것이다.
[0239] 이 예에서는, 단계(1300)에서, 이미지 스트림들은 이미징 디바이스들(410)에 의해 캡처되고, 이러한 이미지 스트림들은 단계(1302)에서 서버(410)로 업로딩된다. 단계들(1300 및 1302)은 이미지 스트림들이 실질적으로 실시간으로 서버(410)에 제시되도록, 실질적으로 연속적으로 반복된다.
[0240] 단계(1304)에서, 이미지 스트림들은 서버(410)에 의해 수신되고, 서버는 전형적으로, 각각의 이미지와 연관되고 개개의 이미징 디바이스(420)에 의해 제공된 시간 스탬프에 기초하여, 이미지 스트림에서의 각각의 이미지에 대하여 단계(1306)에서 이미지 캡처 시간을 식별하도록 동작한다. 이 시간은 그 다음으로, 예를 들어, 시간들이 미리 결정된 오차 마진 내에 있다는 것을 보장하기 위하여, 예상된 송신 지연을 참작하여, 서버(410)가 시간 스탬핑된 캡처 시간을 서버(410)에 의한 이미지들의 수신의 시간과 비교하게 함으로써, 단계(1308)에서 임의적으로 유효성검사된다. 시간이 유효성검사되지 않을 경우에, 오차가 생성될 수 있어서, 쟁점이 조사되는 것을 허용할 수 있다.
[0241] 그렇지 않을 경우에, 단계(1310)에서, 서버(410)는 연속적인 이미지들을 분석하고, 단계(1312)에서, 이미지들로부터 정적 영역들을 감산하도록 동작한다. 이것은 각각의 이미지 내에서의 이동하는 컴포넌트들을 식별하기 위하여 이용되고, 이러한 이동하는 컴포넌트들은 환경 내에서 이동하는 객체들에 대응하는 것으로 간주된다.
[0242] 단계(1314)에서는, 실질적으로 동시에 캡처되었고 상이한 뷰포인트들로부터 캡처된 객체들을 포함하는 상이한 이미지 스트림들로부터의 이미지들을 식별함으로써, 동기적 중첩하는 이미지들이 식별된다. 중첩하는 이미지들의 식별은 외인성 교정 데이터를 이용하여 수행될 수 있어서, 중첩하는 관측 시야를 갖는 카메라들이 식별되는 것을 허용할 수 있고, 또한, 상이한 이미지들에서 동일한 객체를 식별하기 위한, 객체들을 포함하는 이미지들의 분석을 수반할 수 있다. 이것은 이미지 내의 에이프릴 태그들과 같은 머신 판독가능 코딩된 데이터의 존재를 검사할 수 있거나, 객체 컬러들, 크기, 형상 등과 같은, 객체들의 특성들을 식별하기 위하여 인식 기법들을 이용할 수 있다.
[0243] 단계(1316)에서, 이미지들은 단계(1318)에서 객체 위치들을 식별하기 위하여 분석된다. 이것은 코딩된 기점 마킹들을 이용하여, 또는 이러한 마킹들이 이용가능하지 않을 경우에, 시각적 선체 분석을 수행함으로써 수행될 수 있다. 분석을 수행하기 위해서는, 이것은 임의의 이미지 왜곡과 같은, 이미징 디바이스의 성질들에 대하여 이미지들을 정정하기 위하여 외인성 및 내인성 교정 데이터를 참작해야 하고, 그 다음으로, 시각적 선체 분석을 수행할 경우에 객체 위치 및/또는 개략적인 형상을 해석하기 위하여 개개의 이미징 디바이스들의 상대적인 포지션의 지식을 추가로 사용해야 한다는 것이 인식될 수 있다.
[0244] 객체 위치를 결정하였으면, 단계(1320)에서, 서버(410)는 객체 아이덴티티를 결정하도록 동작한다. 이와 관련하여, 객체가 식별되는 방식은 객체의 본질 및 임의의 식별 데이터에 따라 변동될 것이고, 예시적인 식별 프로세스는 도 14를 참조하여 지금부터 더 상세하게 설명될 것이다.
[0245] 이 예에서는, 단계(1400)에서, 서버(410)는 이미지 프로세싱 기법들을 이용하여 객체의 하나 이상의 이미지들을 분석하고, 단계(1405)에서, 이미지가 에이프릴 태그와 같은 시각적 코딩된 데이터를 포함하는지 여부를 확인한다. 서버가 에이프릴 태그 또는 다른 시각적 코딩된 데이터를 식별할 경우에, 이것은 단계(1410)에서 객체와 연관된 식별자를 결정하기 위하여 분석된다. 식별자와 객체 사이의 연관성은 전형적으로, 코딩된 데이터가 객체에 초기에 할당될 때, 예를 들어, 에이프릴 태그가 객체에 부착될 때에 셋업 프로세스 동안에, 데이터베이스에서 객체 데이터로서 저장된다. 따라서, 머신 판독가능 코딩된 데이터로부터 식별자를 디코딩하는 것은 객체의 아이덴티티가 저장된 객체 데이터로부터 리트리브되는 것을 허용하여, 이에 의해, 객체가 단계(1415)에서 식별되는 것을 허용한다.
[0246] 시각적 코딩된 데이터가 존재하지 않을 경우에, 서버(410)는 단계(1420)에서, 객체가 블루투스 또는 RFID 태그 판독기와 같은 판독기와 일치하는지를 결정한다. 그러한 경우에, 태그 판독기는 태깅된 데이터가 객체와 연관된 태그로부터 검출되었는지 여부를 확인하기 위하여 단계(1425)에서 질의된다. 그러한 경우에, 태그 데이터는 위에서 설명된 것과 유사한 방식으로 저장된 객체 데이터를 이용하여, 단계(1415)에서 객체를 식별하기 위하여 이용되는 것인 식별자를 결정하기 위하여 단계(1410)에서 분석될 수 있다.
[0247] 위에서 설명된 기법들은 또한, 휠들이 개개의 식별자들 및/또는 태그들과 연관될 경우에, 개별적인 휠들을 식별하기 위하여 이용될 수 있다는 것이 인식될 것이다.
[0248] 태그 데이터가 검출되지 않거나, 객체가 판독기와 일치하지 않을 경우에, 시각적 분석은 단계(1440)에서 객체를 식별하도록 시도하기 위하여, 단계(1435)에서 이미지 인식 기법들을 이용하여 수행될 수 있다. 이것은 사람과 같은, 객체의 유형을 식별하기 위하여 오직 충분할 수 있고, 동일한 유형의 객체들 사이의 판별을 허용하지 않을 수 있다는 것이 인식될 것이다. 추가적으로, 일부 상황들에서, 이것은 객체들의 식별을 허용하지 않을 수 있고, 이 경우에, 객체들은 알려지지 않은 아이덴티티를 배정받을 수 있다.
[0249] 단계(1322)에서, 서버(410)는 현존하는 환경 모델을 액세스하고, 단계(1324)에서, 검출된 객체가 새로운 객체인지 여부를 평가한다. 예를 들어, 새로운 식별자가 검출될 경우에, 이것은 새로운 객체를 표시할 것이다. 대안적으로, 식별자를 갖지 않는 객체들에 대하여, 서버(410)는 객체가 모델 내에서 현존하는 객체에 인접한지를 평가할 수 있고, 이것은 객체가 이동한 현존하는 객체라는 것을 의미한다. 이와 관련하여, 객체들이 이미지들 사이의 이동에 기초하여 식별될 때, 연장된 시간의 주기 동안에 정적으로 유지되는 객체는 이전에 설명된 바와 같이, 검출이 어떻게 수행되는지에 따라, 이미지들 내에서 검출되지 않을 수 있다는 것이 주목될 것이다. 그러나, 정적 객체는 그 최후에 알려진 위치에 기초하여 환경 모델에서 존재하는 것으로 유지될 것이어서, 객체가 이동을 다시 시작하고 이미지들 내에서 로케이팅될 때, 이것은 객체들의 일치하는 위치에 기초하여, 환경 모델 내에서의 정적 객체에 정합될 수 있지만, 이것은 객체들이 어떻게 검출되는지에 따라 요구되지 않을 수 있다는 것이 인식될 것이다.
[0250] 객체가 새로운 객체인 것으로 결정될 경우에, 객체는 단계(1326)에서 환경 모델에 추가된다. 객체가 새로운 객체가 아닐 경우에, 예를 들어, 객체가 이동된 현존하는 객체를 표현할 경우에, 객체 위치 및/또는 이동은 단계(1328)에서 업데이팅될 수 있다.
[0251] 어느 하나의 경우에, 단계(1330)에서는, 임의의 객체 이동이 미래의 객체 이동을 예측하기 위하여 외삽될 수 있다. 따라서, 이것은 이력적 이동 패턴들에서의 추세를 검사할 것이고, 짧은 시간의 주기에 걸쳐 가능성 있는 미래의 이동을 예측하기 위하여 이것을 이용할 것이어서, 서버(410)가 객체들이 어디에서 잠시 있을 것인지를 미리 예측하는 것을 허용할 것이다. 이전에 설명된 바와 같이, 이것은 객체 또는 유사한 유형의 객체들을 위한 이전의 이동들 뿐만 아니라, 정의된 의도된 통행 경로들과 같은 다른 정보를 참작하여, 머신 학습 기법들 또는 유사한 것을 이용하여 수행될 수 있다.
[0252] 단계(1332)에서, 서버(410)는 개개의 객체 아이덴티티를 이용하여 환경 모델에서의 각각의 객체와 연관된 규칙들을 리트리브한다. 규칙들은 전형적으로, 개개의 객체에 대하여 유발될 수 있는 다양한 상황 인지 이벤트들을 특정할 것이고, 허용된 및/또는 거부된 이동들의 세부사항들을 포함할 수 있다. 이들은 예를 들어, 객체가 통행 경로로부터 너무 멀리 이동하고 있는지를 확인하기 위하여 AGV의 이동을 미리 프로그래밍된 통행 경로와 비교하거나, 이들이 허용된 구역들 내에 또는 거부된 구역들 외부에 있는지를 확인하기 위하여 개인의 이동을 비교하여 절대적일 수 있다. 상황 인지 규칙들은 또한, 2 개의 객체들이 서로의 어떤 거리 미만 내에 있는지, 또는 교차하는 예측된 통행 경로들 상에 있는지 여부와 같은 상대적인 기준들을 정의할 수 있다.
[0253] 이전에 설명된 바와 같이, 규칙들은 전형적으로, 특정한 환경의 요건들의 이해 및 환경 내에서의 객체들에 기초하여 정의된다. 규칙들은 전형적으로, 특정 객체들, 객체 유형들에 대하여, 또는 다수의 객체들에 대하여 정의되어, 상이한 규칙들은 상이한 객체들을 위한 상황 인지를 평가하기 위하여 이용될 수 있다. 상황 인지 규칙들은 전형적으로, 규칙 데이터로서, 특정된 객체 식별자들 또는 특정된 객체 유형들의 형태 중의 어느 하나로, 연관된 객체 아이덴티티들과 함께 저장되어, 개개의 규칙들이 환경 내에서의 각각의 검출된 객체 대하여 리트리브되는 것을 허용한다.
[0254] 단계(1334)에서는, 규칙들이 단계(1336)에서 위반되었는지, 그리고 이에 따라 이벤트가 발생하고 있는지를 결정하기 위하여, 규칙들은 객체 위치, 이동, 또는 각각의 객체와 연관된 예측된 이동에 적용된다.
[0255] 규칙들이 단계(1336)에서 위반되는 것으로 평가될 경우에, 서버(410)는 규칙들 데이터로부터 액션을 리트리브함으로써, 단계(1338)에서 요구된 임의의 액션을 결정하여, 액션이 단계(1340)에서 개시되는 것을 허용한다. 이와 관련하여, 관련된 액션은 전형적으로, 규칙들의 일부로서 특정될 것이어서, 상이한 액션들이 상이한 객체들 및 상이한 상황 인지 이벤트들과 연관되어 정의되는 것을 허용할 것이다. 이것은 특정한 이벤트에 적절한 바와 같이, 다양한 액션들이 정의되는 것을 허용하고, 이것은 이벤트를 레코딩하는 것, 경고들 또는 통지들을 생성하는 것, 자율 또는 반자율 차량들을 제어하는 것을 포함할 수 있지만, 이것으로 제한되지는 않는다.
[0256] 하나의 예에서, 이동 전화들과 같은 클라이언트 디바이스들(430)은 경고들을 디스플레이하기 위하여 이용될 수 있어서, 경고들은 환경에서의 관련된 개인들에게 방송될 수 있다. 이것은 임의의 이용가능한 클라이언트 디바이스(430)에게 푸시된 방송 통지들을 포함할 수 있거나, 특정한 사용자들과 연관된 특정 클라이언트 디바이스들(430)에게 통지들을 보내는 것을 포함할 수 있다. 예를 들어, 차량을 수반하는 이벤트가 발생할 경우에, 통지는 차량 조작자 및/또는 감독자에게 제공될 수 있다. 추가의 예에서, 클라이언트 디바이스들(430)은, 환경에서의 특정 정의된 위치들에서 제공될 수 있거나, AGV들과 같은 객체들과 연관될 수 있는 청취가능한 및/또는 시각적 경고들을 생성하도록 구성된 비콘들과 같은, 디스플레이들 또는 다른 출력 디바이스들을 포함할 수 있다. 이 사례에서, AGV 또는 다른 객체와의 충돌이 임박할 경우에, 객체 상의 비콘은 활성화될 수 있어서, 개인들에게 잠재적인 충돌에 대해 경고할 수 있고, 이에 의해, 충돌이 회피되는 것을 허용할 수 있다.
[0257] 추가의 예에서, 클라이언트 디바이스(430)는 자율 또는 반자율 차량과 같은 객체의 제어 시스템의 일부를 형성할 수 있거나 이러한 제어 시스템에 결합될 수 있어서, 서버(410)가 객체를 제어할 것을 클라이언트 디바이스(430)에 명령하는 것을 허용할 수 있고, 예를 들어, 상황 인지 이벤트가 완화될 때까지 객체의 이동이 중단되게 할 수 있다.
[0258] 클라이언트 디바이스들(430)은 개개의 객체들과 연관될 수 있거나 환경 내에서 포지셔닝될 수 있는 것, 및 이것은 셋업 프로세스의 일부로서 정의될 것이라는 것이 상기한 것으로부터 인식될 것이다. 예를 들어, 객체들과 연관된 클라이언트 디바이스들(430)은 객체 데이터에서 식별될 수 있어서, 액션이 개개의 객체와 연관되어 수행될 때, 객체 데이터는 연관된 클라이언트 디바이스의 세부사항들을 리트리브하고, 이에 의해, 통지들을 개개의 클라이언트 디바이스로 푸시하기 위하여 이용될 수 있다. 유사하게, 정적 클라이언트 디바이스들의 세부사항들은 환경 모델의 일부로서 저장될 수 있고, 세부사항들은 필요한 바와 같이 유사한 방식으로 리트리브될 수 있다.
[0259] 여하튼, 일단 액션이 개시되었거나 그렇지 않다면, 프로세스는 모니터링이 계속되는 것을 허용하기 위하여 단계(1304)로 복귀할 수 있다.
[0260] 위에서 설명된 예는 상황 인지 모니터링에 초점을 맞추었지만, 이것은 이동가능한 객체를 제어하는 것과 함께 수행될 수 있고, 구체적으로, 이 예에서, 객체 이동 및 위치들에 관한 라우팅 데이터 및 정보는 모듈형 휠들을 제어하고, 이에 따라, 객체의 이동을 제어하기 위하여 이용될 수 있다는 것이 인식될 것이다.
[0261] 상황 인지 모니터링을 수행하는 것, 및 위에서 설명된 바와 같이 액션들을 수행하는 것에 추가적으로, 서버(410)는 또한, 환경 모델을 유지하고, 이것이 그래픽 표현을 통해 관측되는 것을 허용한다. 이것은 예를 들어, 감독자 또는 다른 개인이 환경 내에서의 활동들의 개요를 유지하는 것을 허용하고, 또한, 상황 인지 이벤트들이 유발될 때에 상황 인지 이벤트들을 잠재적으로 관측하는 것을 허용하여, 클라이언트 디바이스(430)를 통해 달성될 수 있다. 환경 모델의 그래픽 표현의 예는 도 15를 참조하여 지금부터 더 상세하게 설명될 것이다.
[0262] 이 예에서, 그래픽 표현(1500)은 건물 또는 유사한 것의 내부 평면과 같은 환경(E)을 포함한다. 건물의 그래픽 표현은 건물 평면들에 기초하여 및/또는 환경을 스캐닝하거나 이미징함으로써 도출될 수 있다는 것이 인식될 것이다. 모델은 이미징 디바이스들(420)의 위치를 표현하는 아이콘(icon)들(1520), 객체들의 위치들을 표현하는 아이콘들(1501, 1502, 1503, 및 1504), 및 청취가능한 및/또는 시각적 경고들을 생성할 시에 이용된 비콘들과 같은 클라이언트 디바이스들(430)의 위치를 표현하는 아이콘들(1530)을 포함한다.
[0263] 이미징 디바이스들(420)의 포지셔닝은 위에서 설명된 교정 프로세스의 일부로서 수행될 수 있고, 사용자가 아이콘들을 근사적인 위치들에서 수동적으로 포지셔닝하게 하는 것을 수반할 수 있고, 교정으로서 세분화되는 포지셔닝이 수행된다. 유사하게, 클라이언트 디바이스들의 포지셔닝은 또한, 정적 클라이언트 디바이스들(420)의 경우에, 및/또는 클라이언트 디바이스(420)를 객체와 연관시킴으로써, 수동적으로 수행될 수 있어서, 객체가 환경 내에서 검출될 때, 클라이언트 디바이스 위치는 모델에 추가된다.
[0264] 이 예에서, 표현은 또한, 객체들과 연관된 추가적인 세부사항들을 디스플레이한다. 이 경우에, 객체(1501)는 형상에 있어서 직사각형이고, 이것은 AGV와 같은 객체 유형을 나타내기 위하여 이용될 수 있고, 아이콘들은 실제적인 물리적 AGV의 풋프린트(footprint)와 유사한 크기를 가질 수 있다. 객체(1501)는 도시된 연관된 식별자 ID1501을 가지고, 이것은 객체의 검출된 아이덴티티에 대응한다. 이 사례에서, 객체는 AGV가 따르는 것으로 예상되는 경로인 연관된 미리 프로그래밍된 통행 경로(1501.1)를 가지는 반면, 클라이언트 디바이스 아이콘(1530.1)은 객체(1501)와 연관되어 도시되고, 이것은 클라이언트 디바이스가 AGV 상에서 제공된다는 것을 표시한다.
[0265] 이 예에서, 객체(1502)는 사람이고, 이에 따라, 사람의 풋프린트와 유사한 풋프린트를 다시 가지는, 원과 같은, 객체(1501)에 대한 것과 상이한 형상으로 나타내어진다. 객체는, 이것이 사람인 것을 표시하고, 상이한 사람 사이를 구별하기 위하여 번호를 이용하는 연관된 객체 식별자 IDPer2를 가진다. 객체(1502)는, 환경 내에서의 객체(1502)의 이력적 이동을 표현하는 통행 경로(1502.2)를 가진다.
[0266] 객체(1503)는 다시 사람이고, 객체(1502)와 구별하기 위하여 객체 식별자 IDPer3을 포함한다. 이 사례에서, 객체는 정적이고, 점선 라인들로 도시된 결과와 같다.
[0267] 객체(1504)는 이 사례에서, ID???에 의해 표현된 알려지지 않은 식별자를 가지는 제2 AGV이다. AGV(1504)는 이력적 통행 경로(1504.2) 및 예측된 통행 경로(1004.3)를 가진다. 이 사례에서는, 예측된 통행 경로가 AGV(1501)의 미리 결정된 경로(1501.1)와 교차한다는 것이 주목되고, 교차는 잠재적인 쟁점인 것으로 강조표시되는 영역(1504.4)에 발생할 수 있다는 것이 예상된다.
[0268] 최종적으로, 객체들이 진입하도록 허용되지 않는 거부된 영역(1505)이 정의되고, 연관된 클라이언트 디바이스(430)는 아이콘(1530.5)에 의해 나타내어진 바와 같이 제공되어, 객체들이 거부된 영역에 접근할 경우에 경고들이 생성되는 것을 허용한다.
[0269] 위에서 설명된 바와 같이, 이미지 영역이 환경의 정적 부분인지, 또는 객체들을 식별하기 위하여 궁극적으로 이용될 수 있는, 이동을 포함하는 환경의 일부인지 여부를 평가하기 위하여, 이미지 영역들이 분류된다. 이미지 영역들을 분류하기 위한 프로세스의 예는 도 16을 참조하여 지금부터 더 상세하게 설명될 것이다.
[0270] 단계(1600)에서는, 이미지 영역이 식별된다. 이미지 영역은 예를 들어, 세그먼트화 그리드(segmentation grid) 또는 유사한 것에 기초하여 각각의 이미지를 세그먼트화함으로써 무작위적으로 정의될 수 있거나, 이전의 이미지들에서의 이동의 검출에 기초할 수 있다. 일단 이미지 영역이 식별되면, 서버는 임의적으로, 이미지 영역이 비-정적인 것으로서 최근에 평가되었는지를 식별하기 위하여 수행될 수 있는 단계(1610)에서, 이미지 영역의 이력을 임의적으로 평가하고, 이것은 궁극적으로, 최근에 이동하는 것을 정지하였던 객체들을 식별할 시에 유용하다.
[0271] 단계(1620)에서는, 시각적 효과들이 식별될 수 있다. 시각적 효과들은 시각적 효과의 본질 및 바람직한 구현예에 따라 임의의 적절한 방식으로 식별될 수 있다. 예를 들어, 이것은 배경 또는 주변 조명에서의 변경들을 식별하기 위하여 조명 센서들로부터의 신호들을 분석하는 것을 수반할 수 있다. 대안적으로, 이것은 예를 들어, 환경에서의 스크린들 또는 디스플레이들의 위치를 특정함으로써, 교정 프로세스 동안에 정의될 수 있는, 환경 내에서의 시각적 효과 위치들에 관한 정보를 리트리브하는 것을 수반할 수 있다. 이것은 또한, 시각적 효과들을 식별하기 위하여, 예를 들어, 특정한 조명 소스와 같은 시각적 효과에 대응하는 것으로 알려진 스펙트럼 응답을 포함하는 이미지의 일부분들을 식별하기 위하여, 이미지들을 분석하는 것을 수반할 수 있다. 이 프로세스는 시각적 효과들을 참작하기 위하여, 그리고 이들이 이동하는 객체들로서 부정확하게 식별되지 않는다는 것을 보장하기 위하여 수행된다.
[0272] 단계(1630)에서는, 이미지 영역이 정적 또는 비-정적인지 여부를 평가하기 위하여 이용되는 분류 임계치가 설정된다. 분류 임계치는 디폴트 값일 수 있고, 이러한 디폴트 값은 그 다음으로, 이미지 영역 이력 및/또는 식별된 시각적 효과들에 기초하여 요구된 바와 같이 수정된다. 예를 들어, 개별적인 영역 이력이 이미지 영역이 이전에 또는 최근에 비-정적인 것으로서 분류되었다는 것을 표시할 경우에, 분류 임계치는 객체가 최근에 이동하는 것을 정지하였을 경우에 이미지 영역이 정적인 것으로서 분류되고 있을 가능성을 감소시키기 위하여 디폴트 레벨로부터 상승될 수 있다. 이것은 사실상, 개개의 이미지 영역에서의 변경들을 평가하기 위한 학습 기간을 증가시키고, 이것은 일시적으로 정지된 객체들을 추적할 시에 유용하다. 유사하게, 시각적 효과들이 영역 내에서 존재할 경우에, 위협적인 분류 임계치는 이미지 영역이 오분류되고 있을 가능성을 감소시키기 위하여 수정될 수 있다.
[0273] 일단 분류 임계치가 결정되었으면, 그 이미지 영역에서의 변경들은 단계(1640)에서 분석된다. 이것은 전형적으로, 이미징 스트림의 다수의 이미지들을 가로질러서 동일한 이미지 영역을 비교함으로써 수행된다. 다수의 이미지들은 연속적인 이미지들일 수 있지만, 이것은 필수적이지 않고, 일시적으로 이격되는 임의의 이미지들이 평가될 수 있다. 이것에 후행하여, 단계(1650)에서, 이미지 영역에서의 변경들은 임계치와 비교되고, 비교의 결과들은 단계(1660)에서 이미지 영역을 분류하기 위하여 이용되고, 예를 들어, 이동의 정도가 분류 임계치 미만으로 하락할 경우에, 영역을 정적인 것으로 정의한다.
[0274] 이전에 설명된 바와 같이, 객체들이 이미징 디바이스로부터 적어도 부분적으로 막히는 폐색들이 유발될 수 있고, 폐색 검출 및 완화를 위한 프로세스의 예는 도 17을 참조하여 지금부터 설명될 것이다.
[0275] 이 예에서, 대응하는 이미지 영역들은 단계(1700)에서, 다수의 중첩하는 이미지들에서 식별된다. 이와 관련하여, 대응하는 이미지 영역들은 하나 이상의 복셀(voxel)들과 같은, 환경에서의 공통 체적의 뷰인 다수의 중첩하는 이미지들로부터의 이미지 영역들이다. 단계(1710)에서, 하나 이상의 후보 객체들은 예를 들어, 시각적 선체 기법을 이용하여 식별된다.
[0276] 단계(1720)에서, 임의의 후보 객체들은 도 10에 대하여 위에서 설명된 것과 유사한 모델과 같은 3 차원 모델에 추가된다. 단계(1730)에서, 후보 객체들은 후보 객체들의 이미지를 캡처한 이미징 디바이스의 이미징 평면 상으로 후방 투영된다. 이것은, 후보 객체들이 중첩하고 있고, 이에 따라, 폐색이 발생하였을 수 있는지 여부를 확인하기 위하여 수행된다.
[0277] 일단 잠재적인 폐색들이 식별되었으면, 단계(1740)에서, 서버는 후보 객체들을 유효성검사하기 위하여 이 정보를 이용할 수 있다. 예를 들어, 폐색을 받지 않는 후보 객체들을 위하여, 이들은 검출된 객체들로 수락될 수 있다. 반대로, 폐색들이 검출될 경우에, 시각적 선체 프로세스는 폐색을 참작하여 반복될 수 있다. 이것은 시각적 선체 프로세스로부터 폐색을 포함하는 이미지 영역을 제거함으로써, 또는 더 전형적으로, 폐색의 존재를 참작함으로써, 예를 들어, 이하에서 더 상세하게 설명되는 바와 같이 가중화 프로세스 또는 유사한 것을 이용함으로써 달성될 수 있다.
[0278] 객체 식별을 위한 가중화 프로세스의 예는 도 18을 참조하여 지금부터 설명될 것이다.
[0279] 이 예에서는, 단계(1800)에서, 대응하는 이미지 영역들은 단계(1200)에 대하여 설명된 것과 유사한 방식으로 식별된다.
[0280] 단계(1810)에서는, 각각의 이미지 영역이 평가되고, 평가는 객체의 검출이 정확할 가능성을 확인하기 위하여 이용된다. 이와 관련하여, 객체의 성공적인 검출은, 이미지 해상도 또는 왜곡과 같은 이미지 품질, 카메라 거리 및 각도와 같은 카메라 기하구조, 이미지 영역이 이전에 정적 또는 비-정적이었는지 여부와 같은 이미지 영역 이력, 폐색들 또는 시각적 효과들의 존재 또는 부재, 중첩하는 이미지들의 캡처 시간에서의 차이와 같은, 수집된 데이터 사이의 비동기성의 정도 등을 포함하는 인자들의 범위에 의해 영향받을 것이라는 것이 인식될 것이다.
[0281] 따라서, 이 프로세스는 각각의 인자에 기초하여 값을 배정함으로써, 그리고 단계(1820)에서 이미지 영역 점수를 결정하기 위하여 이것을 이용함으로써, 이 인자들을 참작하도록 시도한다. 예를 들어, 각각의 인자에 대한 값은 전형적으로, 인자가 객체의 성공적인 검출에 긍정적으로 또는 부정적으로 영향을 줄 것인지 여부를 표현할 것이고, 따라서, 폐색이 존재할 경우에, -1의 값이 이용될 수 있는 반면, 폐색이 존재하지 않을 경우에, +1의 값이 이용될 수 있어서, 폐색이 존재할 경우보다 객체 검출이 올바를 가능성이 더 많다는 것을 표시한다.
[0282] 일단 계산되면, 이미지 영역 점수들은 그 다음으로, 객체들의 식별에서 이용될 수 있다.
[0283] 하나의 예에서는, 단계(1830)에서, 시각적 선체 프로세스는 이미지 영역 점수를 가중화로서 이용하여 수행된다. 따라서, 이 사례에서, 객체를 정확하게 이미징하였을 가능성이 적은 낮은 이미지 영역 점수를 갖는 이미지 영역은 시각적 선체 프로세스에서 낮은 가중화를 부여받을 것이다. 결과적으로, 이것은 객체 검출 프로세스에 대해 더 적은 영향을 가질 것이므로, 프로세스는 더 높은 이미지 영역 소스를 가지는 이미지 영역들로 더 과중하게 바이어싱된다. 추가적으로 및/또는 대안적으로, 합성 객체 점수는 단계(1840)에서 대응하는 이미지 영역들 각각의 이미지 영역의 이미지 영역 점수를 조합함으로써 계산될 수 있고, 결과적인 값은 단계(1850)에서 임계치와 비교될 수 있고, 이것은 객체가 단계(1860)에서 성공적으로 식별되었는지 여부를 평가하기 위하여 이용될 수 있다.
[0284] 따라서, 위에서 설명된 시스템은 저비용 센서들을 이용하여 달성될 수 있는 환경 내에서의 객체들의 이동을 추적하도록 동작한다는 것이 인식될 것이다. 사고들 또는 다른 준수성 이벤트가 발생하는 것을 방지하기 위하여 위반을 통지하는 것 및/또는 AGV들을 제어하는 것과 같은 액션들이 취해지는 것을 궁극적으로 허용할 수 있는 규칙 위반들을 식별하기 위하여, 객체들의 이동 및/또는 위치들은 정의된 상황 인지 규칙들과 비교될 수 있다.
[0285] 이 명세서 및 뒤따르는 청구항들의 전반에 걸쳐, 문맥이 이와 다르게 요구하지 않으면, 단어 "포함한다(comprise)" 및 "포함한다(comprises)" 또는 "포함하는(comprising)"과 같은 변형들은 기재된 정수 또는 정수들의 그룹 또는 단계들의 포함을 암시하지만, 임의의 다른 정수 또는 정수들의 그룹의 제외를 암시하지는 않는 것으로 이해될 것이다. 본 명세서에서 이용된 바와 같이, 그리고 이와 다르게 기재되지 않으면, 용어 "거의(approximately)"는 ±20 %를 의미한다.
[0286] 당업자들은 수 많은 변형들 및 수정들이 분명해질 것이라는 것을 인식할 것이다. 당업자들에 분명해지는 모든 이러한 변형들 및 수정들은 설명되기 전에 발명이 널리 나타내는 사상 및 범위 내에 속하는 것으로 고려되어야 한다.

Claims (50)

  1. 환경 내에서 객체를 이동시키기 위한 시스템으로서,
    a) 상기 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 ― 상기 적어도 하나의 모듈형 휠은:
    i) 상기 객체에 부착되도록 구성된 본체;
    ii) 휠;
    iii) 상기 휠을 회전시키도록 구성된 구동부; 및
    iv) 상기 구동부를 제어하도록 구성된 제어기를 포함함 ―; 및
    b) 하나 이상의 프로세싱 디바이스들을 포함하고, 상기 하나 이상의 프로세싱 디바이스들은:
    i) 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하고 ― 상기 복수의 이미징 디바이스들은 상기 환경 내에서의 상기 객체의 이미지들을 캡처하도록 구성됨 ―;
    ii) 상기 환경 내에서의 객체 위치를 결정하기 위하여 상기 이미지들을 분석하고;
    iii) 상기 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하고; 그리고
    iv) 상기 제어 명령들을 상기 제어기에 제공하며, 상기 제어기는 상기 제어 명령들에 응답하여 상기 구동부를 제어하고, 이에 의해, 상기 객체를 이동시키는, 시스템.
  2. 제1항에 있어서,
    상기 시스템은 상기 객체에 장착된 하나 이상의 수동 휠들을 포함하는, 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 적어도 하나의 모듈형 휠은 상기 휠의 배향을 조절하도록 구성된 조향 구동부(steering drive)를 포함하고, 상기 제어기는 상기 조향 구동부를 제어하여, 이에 의해, 상기 휠의 배향을 변경하도록 구성되는, 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 적어도 하나의 모듈형 휠은 상기 하나 이상의 프로세싱 디바이스들과 무선으로 통신하도록 구성된 트랜시버를 포함하는, 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 적어도 하나의 모듈형 휠은:
    a) 상기 구동부;
    b) 상기 제어기;
    c) 트랜시버; 및
    d) 조향 구동부
    중 적어도 하나를 급전하도록 구성된 전력 공급부를 포함하는, 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제어 명령들은:
    a) 각각의 휠을 위한 휠 배향; 및
    b) 각각의 휠을 위한 회전의 레이트
    중 적어도 하나를 포함하는, 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 시스템은 복수의 모듈형 휠들을 포함하는, 시스템.
  8. 제7항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 개개의 제어 명령들을 각각의 제어기에 제공하여, 이에 의해, 각각의 모듈형 휠을 독립적으로 제어하도록 구성되는, 시스템.
  9. 제7항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 제어 명령들을 상기 제어기들에 제공하도록 구성되고, 상기 제어기들은 각각의 모듈형 휠을 독립적으로 제어하기 위하여 통신하는, 시스템.
  10. 제9항에 있어서,
    상기 제어 명령들은 상기 객체를 위한 방향 및 통행의 레이트를 포함하고, 상기 제어기들은:
    a) 각각의 휠을 위한 휠 배향; 및
    b) 각각의 휠을 위한 회전의 레이트
    중 적어도 하나를 결정하기 위하여 상기 제어 명령들을 이용하는, 시스템.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 시스템은:
    a) 다수의 모듈형 휠들을 차동적으로 회전시키는 것; 및
    b) 하나 이상의 모듈형 휠들의 배향을 변경하는 것
    중 적어도 하나에 의해 상기 차량을 조향하도록 구성되는, 시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 객체 구성을 결정하고; 그리고
    b) 적어도 부분적으로 객체 규모에 따라 상기 제어 명령들을 생성하도록 구성되는, 시스템.
  13. 제12항에 있어서,
    상기 객체 구성은:
    a) 상기 객체의 물리적 규모; 및
    b) 상기 객체와 연관된 이동 파라미터들
    중 적어도 하나를 표시하는, 시스템.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 객체에 대한 각각의 휠의 포지션을 표시하는 휠 구성을 결정하고; 그리고
    b) 적어도 부분적으로 상기 휠 구성에 따라 상기 제어 명령들을 생성하도록 구성되는, 시스템.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    상기 적어도 하나의 모듈형 휠은 알려진 위치들에서 상기 객체에 각각 부착되는, 시스템.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 객체는 플랫폼을 포함하고, 상기 적어도 하나의 모듈형 휠은 상기 플랫폼에 부착되는, 시스템.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 객체는 상기 플랫폼에 의해 지지된 항목을 포함하는, 시스템.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) i) 각각의 모듈형 휠; 및
    ii) 상기 객체
    중 적어도 하나의 아이덴티티(identity)를 결정하고; 그리고
    b) 상기 아이덴티티에 따라 제어 명령들을 생성하도록 구성되는, 시스템.
  19. 제18항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 네트워크 식별자를 적어도 부분적으로 이용하여 상기 아이덴티티를 결정하도록 구성되는, 시스템.
  20. 제18항 또는 제19항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 머신 판독가능 코딩된 데이터를 이용하여 상기 아이덴티티를 결정하도록 구성되는, 시스템.
  21. 제20항에 있어서,
    상기 머신 판독가능 코딩된 데이터는 가시적 데이터이고, 상기 하나 이상의 프로세싱 디바이스들은 상기 머신 판독가능 코딩된 데이터를 검출하기 위하여 상기 이미지들을 분석하도록 구성되는, 시스템.
  22. 제20항 또는 제21항에 있어서,
    상기 머신 판독가능 코딩된 데이터는 태크 상에서 인코딩되고, 상기 하나 이상의 프로세싱 디바이스들은 태그 판독기로부터 상기 머신 판독가능 코딩된 데이터를 표시하는 신호들을 수신하도록 구성되는, 시스템.
  23. 제22항에 있어서,
    상기 태그들은:
    a) 단거리 무선 통신 프로토콜 태그들;
    b) RFID 태그들; 및
    c) 블루투스(Bluetooth) 태그들
    중 적어도 하나인, 시스템.
  24. 제1항 내지 제23항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) i) 통행 경로; 및
    ii) 목적지;
    중 적어도 하나를 표시하는 라우팅 데이터를 결정하고;
    b) 상기 라우팅 데이터 및 상기 객체 위치에 따라 제어 명령들을 생성하도록 구성되는, 시스템.
  25. 제24항에 있어서,
    상기 라우팅 데이터는:
    a) 허용된 객체 통행 경로;
    b) 허용된 객체 이동들;
    c) 상이한 객체들을 위한 허용된 인접성 제한들;
    d) 객체들을 위한 허용된 구역들;
    e) 객체들을 위한 거부된 구역들
    중 적어도 하나를 표시하는, 시스템.
  26. 제24항 또는 제25항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) i) 상기 객체; 및
    ii) 상기 객체에 부착된 적어도 하나의 모듈형 휠
    중 적어도 하나에 대한 아이덴티티를 결정하고;
    b) 상기 객체 아이덴티티를 적어도 부분적으로 이용하여 상기 라우팅 데이터를 결정하도록 구성되는, 시스템.
  27. 제1항 내지 제26항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 교정 제어 명령들을 생성하고;
    b) 상기 교정 제어 명령들에 응답하여, 상기 객체 및 상기 적어도 하나의 모듈형 휠 중 적어도 하나의 이동을 모니터링하고; 그리고
    c) 제어 명령들을 생성하기 위하여 상기 모니터링의 결과들을 이용하도록 구성되는, 시스템.
  28. 제1항 내지 제27항 중 어느 한 항에 있어서,
    상기 이미징 디바이스들은:
    a) 고정된 위치들에서 상기 환경 내에서 포지셔닝되는 것; 및
    b) 상기 환경에 대해 정적인 것
    중 적어도 하나인, 시스템.
  29. 제1항 내지 제28항 중 어느 한 항에 있어서,
    상기 이미징 디바이스들 중의 적어도 일부는 적어도 부분적으로 중첩하는 관측 시야들을 가지기 위하여 상기 환경 내에서 포지셔닝되고, 상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 상이한 이미지 스트림들에서 중첩하는 이미지들을 식별하고 ― 상기 중첩하는 이미지들은 중첩하는 관측 시야들을 가지는 이미징 디바이스들에 의해 캡처됨 ―; 그리고
    b) 상기 환경 내에서의 객체 위치들을 결정하기 위하여 상기 중첩하는 이미지들을 분석하도록 구성되는, 시스템.
  30. 제1항 내지 제29항 중 어느 한 항에 있어서,
    상기 이미징 디바이스들 중의 적어도 일부는 적어도 부분적으로 중첩하는 관측 시야들을 가지기 위하여 상기 환경 내에서 포지셔닝되고, 상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 환경 내에서의 객체 이동들을 결정하기 위하여 시간에 걸쳐 상기 객체 위치들에서의 변경들을 분석하고;
    b) 상기 객체 이동들을 상황 인지 규칙들과 비교하고; 그리고
    c) 상황 인지 이벤트들을 식별하기 위하여 상기 비교의 결과들을 이용하도록 구성되는, 시스템.
  31. 제29항 또는 제30항에 있어서,
    상기 중첩하는 이미지들은 거의 동시에 캡처된 동기적 중첩하는 이미지(synchronous overlapping image)들인, 시스템.
  32. 제31항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 각각의 캡처된 이미지의 캡처 시간을 결정하고; 그리고
    b) 상기 캡처된 시간을 이용하여 동기적 이미지들을 식별하도록 구성되는, 시스템.
  33. 제32항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 이미징 디바이스에 의해 생성된 캡처 시간;
    b) 각각의 이미지와 연관된 수신 시간 ― 상기 수신 시간은 상기 하나 이상의 프로세싱 디바이스들에 의한 수신의 시간을 표시함 ―; 및
    c) 상기 이미지들에서의 이미지 내용의 비교
    중 적어도 하나를 이용하여 캡처 시간을 결정하도록 구성되는, 시스템.
  34. 제1항 내지 제33항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 객체 이미지들을 식별하기 위하여 각각의 이미지 스트림으로부터의 이미지들을 분석하고 ― 상기 객체 이미지들은 객체들을 포함하는 이미지들임 ―; 그리고
    b) 중첩하는 이미지들을, 동일한 객체를 포함하는 객체이미지들로서 식별하도록 구성되는, 시스템.
  35. 제34항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 상기 이미징 디바이스들의 포지셔닝에 적어도 부분적으로 기초하여 중첩하는 이미지들을 식별하도록 구성되는, 시스템.
  36. 제1항 내지 제35항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 정적 이미지 영역들을 식별하기 위하여 이미지 스트림으로부터의 다수의 이미지들을 분석하고; 그리고
    b) 객체 이미지들을, 비-정적 이미지 영역들을 포함하는 이미지들로서 식별하도록 구성되는, 시스템.
  37. 제36항에 있어서,
    상기 이미지들 중 적어도 하나는 배경 참조 이미지인, 시스템.
  38. 제1항 내지 제37항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 시각적 선체 기법; 및
    b) 상기 이미지들에서의 기점 마킹(fiducial marking)들의 검출; 및
    c) 다수의 삼각측량된 이미지들에서의 기점 마킹들의 검출
    중 적어도 하나를 이용하여 객체 위치를 결정하도록 구성되는, 시스템.
  39. 제1항 내지 제38항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 교정 데이터에 따라 상기 이미지들을 해석하도록 구성되는, 시스템.
  40. 제39항에 있어서,
    상기 교정 데이터는:
    a) 각각의 이미징 디바이스의 이미징 성질들을 표시하는 내인성 교정 데이터; 및
    b) 상기 환경 내에서의 상기 이미징 디바이스들의 상대적인 포지셔닝을 표시하는 외인성 교정 데이터
    중 적어도 하나를 포함하는, 시스템.
  41. 제39항 또는 제40항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 이미징 디바이스를 이용하여 상기한 포지션들로부터 캡처된 정의된 패턴들의 이미지들을 수신함으로써; 그리고
    b) 상기 이미징 디바이스의 이미지 캡처 성질들을 표시하는 교정 데이터를 생성하기 위하여 상기 이미지들을 분석함으로써
    교정 프로세스 동안에 교정 데이터를 생성하도록 구성되는, 시스템.
  42. 제39항 내지 제41항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 환경 내에서의 타깃들의 캡처된 이미지들을 수신함으로써;
    b) 동일한 타깃을 도시하는 상이한 이미징 디바이스들에 의해 캡처된 이미지들을 식별하기 위하여 상기 캡처된 이미지들을 분석함으로써; 그리고
    c) 상기 이미징 디바이스들의 상대적인 포지션 및 배향을 표시하는 교정 데이터를 생성하기 위하여 상기 식별된 이미지들을 분석함으로써
    교정 프로세스 동안에 교정 데이터를 생성하도록 구성되는, 시스템.
  43. 제1항 내지 제42항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 환경 모델을 생성하도록 구성되고, 상기 환경 모델은:
    a) 상기 환경;
    b) 상기 환경에서의 이미징 디바이스들의 위치;
    c) 현재의 객체 위치들;
    d) 객체 이동들;
    e) 예측된 장애물들;
    f) 예측된 객체 위치들; 및
    g) 예측된 객체 이동들
    중 적어도 하나를 표시하는, 시스템.
  44. 제43항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은 상기 환경 모델의 그래픽 표현을 생성하도록 구성되는, 시스템.
  45. 제1항 내지 제44항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 환경 내에서의 객체 이동들을 결정하기 위하여 시간에 걸쳐 객체 위치들에서의 변경들을 분석하고;
    b) 상기 객체 이동들을 상황 인지 규칙들과 비교하고; 그리고
    c) 상황 인지 이벤트들을 식별하기 위하여 상기 비교의 결과들을 이용하도록 구성되는, 시스템.
  46. 제45항에 있어서,
    상황 인지 이벤트의 식별에 응답하여, 상기 하나 이상의 프로세싱 디바이스들은:
    a) 상기 상황 인지 이벤트의 표시를 레코딩하는 것;
    b) 상기 상황 인지 이벤트를 표시하는 통지를 생성하는 것;
    c) 출력 디바이스로 하여금, 상기 상황 인지 이벤트를 표시하는 출력을 생성하게 하는 것;
    d) 경보를 활성화하는 것; 및
    e) 객체의 동작이 제어되게 하는 것
    중 적어도 하나를 포함하는 액션을 수행하도록 구성되는, 시스템.
  47. 제45항 또는 제46항에 있어서,
    상기 하나 이상의 프로세싱 디바이스들은:
    a) 실질적으로 실시간으로 상기 상황 인지 이벤트를 식별하고; 그리고
    b) 실질적으로 실시간으로 액션을 수행하도록 구성되는, 시스템.
  48. 제1항 내지 제47항 중 어느 한 항에 있어서,
    상기 이미징 디바이스들은:
    a) 보안 이미징 디바이스들;
    b) 모노스코픽 이미징 디바이스들;
    c) 비-컴퓨터 비전 기반 이미징 디바이스들; 및
    d) 연관된 내인성 교정 정보를 가지지 않는 이미징 디바이스들 중 적어도 하나인, 시스템.
  49. 환경 내에서 객체를 이동시키기 위한 방법으로서,
    상기 방법은:
    a) 상기 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 ― 상기 적어도 하나의 모듈형 휠은 각각:
    i) 상기 객체에 부착되도록 구성된 본체;
    ii) 휠;
    iii) 상기 휠을 회전시키도록 구성된 구동부; 및
    iv) 상기 구동부를 제어하도록 구성된 제어기를 포함함 ―; 및
    b) 하나 이상의 프로세싱 디바이스들을 포함하는 시스템을 이용하여 수행되고,
    상기 방법은, 상기 하나 이상의 프로세싱 디바이스들에서:
    i) 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하는 단계 ― 상기 복수의 이미징 디바이스들은 상기 환경 내에서의 상기 객체의 이미지들을 캡처하도록 구성됨 ―;
    ii) 상기 환경 내에서의 객체 위치를 결정하기 위하여 상기 이미지들을 분석하는 단계;
    iii) 상기 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하는 단계; 및
    iv) 상기 제어 명령들을 상기 제어기에 제공하는 단계를 포함하고,
    상기 제어기는 상기 제어 명령들에 응답하여, 상기 구동부를 제어하고, 이에 의해, 상기 객체를 이동시키는, 방법.
  50. 시스템을 이용하여 환경 내에서 객체를 이동시키기 위한 컴퓨터 프로그램 제품으로서,
    상기 시스템은:
    a) 상기 객체를 이동시키도록 구성된 적어도 하나의 모듈형 휠 ― 상기 적어도 하나의 모듈형 휠은 각각:
    i) 상기 객체에 부착되도록 구성된 본체;
    ii) 휠;
    iii) 상기 휠을 회전시키도록 구성된 구동부; 및
    iv) 상기 구동부를 제어하도록 구성된 제어기를 포함함 ―; 및
    b) 하나 이상의 프로세싱 디바이스들을 포함하고,
    상기 컴퓨터 프로그램 제품은 컴퓨터 실행가능 코드를 포함하고, 상기 컴퓨터 실행가능 코드는, 상기 하나 이상의 프로세싱 디바이스들에 의해 실행될 때, 상기 하나 이상의 프로세싱 디바이스들로 하여금:
    i) 복수의 이미징 디바이스들 각각으로부터 복수의 캡처된 이미지들을 포함하는 이미지 스트림을 수신하게 하고 ― 상기 복수의 이미징 디바이스들은 상기 환경 내에서의 상기 객체의 이미지들을 캡처하도록 구성됨 ―;
    ii) 상기 환경 내에서의 객체 위치를 결정하기 위하여 상기 이미지들을 분석하게 하고;
    iii) 상기 결정된 객체 위치를 적어도 부분적으로 이용하여 제어 명령들을 생성하게 하고; 그리고
    iv) 상기 제어 명령들을 상기 제어기에 제공하게 하며,
    상기 제어기는 상기 제어 명령들에 응답하여, 상기 구동부를 제어하고, 이에 의해, 상기 객체를 이동시키는,
    컴퓨터 프로그램 제품.
KR1020227011599A 2019-09-12 2020-09-10 객체 이동 시스템 KR20220062570A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
AU2019903398A AU2019903398A0 (en) 2019-09-12 Object Moving System
AU2019903398 2019-09-12
AUPCT/AU2020/050113 2020-02-11
PCT/AU2020/050113 WO2020163908A1 (en) 2019-02-12 2020-02-11 Situational awareness monitoring
PCT/AU2020/050961 WO2021046607A1 (en) 2019-09-12 2020-09-10 Object moving system

Publications (1)

Publication Number Publication Date
KR20220062570A true KR20220062570A (ko) 2022-05-17

Family

ID=74867126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227011599A KR20220062570A (ko) 2019-09-12 2020-09-10 객체 이동 시스템

Country Status (7)

Country Link
US (1) US20220332503A1 (ko)
EP (1) EP4028845A4 (ko)
JP (1) JP2022548009A (ko)
KR (1) KR20220062570A (ko)
CN (1) CN114730192A (ko)
AU (2) AU2020331567B2 (ko)
WO (1) WO2021046607A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021137194A1 (en) * 2020-01-02 2021-07-08 Ree Automotive Ltd. Vehicle corner modules and vehicles comprising them
CN113393657A (zh) * 2021-06-15 2021-09-14 江苏劲步科技有限公司 一种基于物联网软件开发的数据采集机器人及其采集方法
EP4343709A1 (en) * 2022-09-23 2024-03-27 Axis AB Method and image-processing device for determining a probability value indicating that an object captured in a stream of image frames belongs to an object type

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170313332A1 (en) * 2002-06-04 2017-11-02 General Electric Company Autonomous vehicle system and method
US7789175B2 (en) * 2005-10-11 2010-09-07 Cycogs, Llc Modular dual wheel drive assembly, wheeled devices that include modular dual wheel drive assemblies and methods for moving and/or maneuvering wheeled devices using modular dual wheel drive assemblies
KR101776823B1 (ko) 2016-03-02 2017-09-11 가천대학교 산학협력단 외부 감시카메라를 이용한 모바일 로봇의 위치인식 방법 및 시스템
US20190248233A1 (en) * 2016-06-17 2019-08-15 The University Of Sydney Drive module
WO2018119450A1 (en) * 2016-12-23 2018-06-28 Gecko Robotics, Inc. Inspection robot
WO2019005727A1 (en) * 2017-06-30 2019-01-03 Paha Designs, Llc ALL-TERRAIN VEHICLE WITH CENTER OF LOW GRAVITY
US10394234B2 (en) 2017-12-18 2019-08-27 The Boeing Company Multi-sensor safe path system for autonomous vehicles

Also Published As

Publication number Publication date
AU2022201774A1 (en) 2022-04-07
AU2022201774B2 (en) 2023-03-09
EP4028845A1 (en) 2022-07-20
WO2021046607A1 (en) 2021-03-18
AU2020331567B2 (en) 2022-02-03
US20220332503A1 (en) 2022-10-20
EP4028845A4 (en) 2023-08-23
JP2022548009A (ja) 2022-11-16
CN114730192A (zh) 2022-07-08
AU2020331567A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
US20200333789A1 (en) Information processing apparatus, information processing method, and medium
AU2022201774B2 (en) Object Moving System
EP3499334B1 (en) Multi-sensor safe path system for autonomous vehicles
CN107527475B (zh) 用于物体引导和碰撞避免的系统和方法
US11014238B2 (en) Dynamic navigation of autonomous vehicle with safety infrastructure
CN109313829B (zh) 间接电子徽章跟踪
US20190340909A1 (en) Advanced industrial safety notification systems
US20180240327A1 (en) Methods and systems for reducing false alarms in a robotic device by sensor fusion
US20110050878A1 (en) Vision System for Monitoring Humans in Dynamic Environments
US10636308B2 (en) Systems and methods for collision avoidance
CN109311649B (zh) 电子徽章在过道超车动作中的应用
AU2022271487A1 (en) Systems and methods for tracking items
US20200058169A1 (en) Drift correction for industrial augmented reality applications
US7974738B2 (en) Robotics virtual rail system and method
US7668621B2 (en) Robotic guarded motion system and method
CN107087016B (zh) 基于视频监控网络的楼宇内移动物体的导航方法及系统
CN105094005A (zh) 光学区域监测与工业机器控制的集成
JP2022522284A (ja) 安全定格マルチセル作業空間マッピングおよび監視
AU2020270461B2 (en) Situational Awareness Monitoring
US20200241551A1 (en) System and Method for Semantically Identifying One or More of an Object and a Location in a Robotic Environment
Kenk et al. Human-aware Robot Navigation in Logistics Warehouses.
Pooloo et al. Design of an AMR Using Image Processing and Deep Learning for Monitoring Safety Aspects in Warehouse
CN111837083B (zh) 信息处理装置、信息处理方法和存储介质
Iocchi et al. Smart monitoring of complex public scenes
Correia Cockpit for High-Level Teleoperation, Monitoring and Task Assignment to a Set of Mobile Robots in Internal Logistics Applications