WO2023062862A1 - データ処理装置およびデータ処理方法 - Google Patents

データ処理装置およびデータ処理方法 Download PDF

Info

Publication number
WO2023062862A1
WO2023062862A1 PCT/JP2022/021170 JP2022021170W WO2023062862A1 WO 2023062862 A1 WO2023062862 A1 WO 2023062862A1 JP 2022021170 W JP2022021170 W JP 2022021170W WO 2023062862 A1 WO2023062862 A1 WO 2023062862A1
Authority
WO
WIPO (PCT)
Prior art keywords
measurement
data
sensor
measurement points
information
Prior art date
Application number
PCT/JP2022/021170
Other languages
English (en)
French (fr)
Inventor
和也 久田
弓子 加藤
孝平 菊池
安寿 稲田
Original Assignee
パナソニックIpマネジメント株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to CN202280064278.8A priority Critical patent/CN117999499A/zh
Publication of WO2023062862A1 publication Critical patent/WO2023062862A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/02Systems using reflection of radio waves, e.g. primary radar systems; Analogous systems
    • G01S13/50Systems of measurement based on relative movement of target
    • G01S13/52Discriminating between fixed and moving objects or between objects moving at different speeds
    • G01S13/536Discriminating between fixed and moving objects or between objects moving at different speeds using transmission of continuous unmodulated waves, amplitude-, frequency-, or phase-modulated waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/08Systems determining position data of a target for measuring distance only
    • G01S17/32Systems determining position data of a target for measuring distance only using transmission of continuous waves, whether amplitude-, frequency-, or phase-modulated, or unmodulated
    • G01S17/34Systems determining position data of a target for measuring distance only using transmission of continuous waves, whether amplitude-, frequency-, or phase-modulated, or unmodulated using transmission of continuous, frequency-modulated waves while heterodyning the received signal, or a signal derived therefrom, with a locally-generated signal related to the contemporaneously transmitted signal
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging

Definitions

  • the present disclosure relates to a data processing device and a data processing method.
  • AMR Autonomous Mobile Robots
  • AGV Automated Guided Vehicles
  • Self-position estimation can be performed by matching sensor data output from a sensor with a map of the surrounding environment of the mobile object.
  • a map is generated using a technique such as SLAM (Simultaneous Localization and Mapping), for example.
  • SLAM Simultaneous Localization and Mapping
  • a moving object that automatically moves using SLAM moves while generating or updating a map based on sensor data that is sequentially output from a sensor during movement.
  • Such mobile objects automatically move while estimating their own position and updating the map by matching fixed points called landmarks detected using sensors with corresponding points on the map. can be done.
  • the sensor data cannot be matched with the map, or the moving object may be mistakenly landed on the land. There are times when it is settled as a mark. In that case, self-localization and mapping will fail.
  • Patent Document 1 An example of technology for solving such problems is disclosed in Patent Document 1.
  • the device disclosed in Patent Literature 1 detects a moving object in the image by comparing feature points in time-series images acquired by a camera between frames, and generates a map from which information about the moving object is removed. This makes it possible to generate a map that does not contain information on moving objects.
  • FMCW-LiDAR Frequency Modulated Continues Wave
  • FMCW-LiDAR has both a wide dynamic range and high resolution for distance, has high vibration resistance, and can measure the relative velocity between the sensor and the moving object. Therefore, it is expected to be used as a sensor for automatic driving.
  • An example of FMCW-LiDAR is disclosed, for example, in Non-Patent Document 1.
  • the present disclosure provides a technique for more efficiently generating point cloud data used for self-position estimation of mobile objects, map generation, etc. than before.
  • a data processing device includes a storage device that stores measurement data including position information and speed information about a plurality of measurement points in space, and a processing circuit.
  • the processing circuit acquires the measurement data from the storage device, determines a measurement point on the stationary object from the plurality of measurement points based on the velocity information, and determines the measurement point on the stationary object based on the determination result.
  • Point cloud data including the position information of the above measurement points is generated.
  • the present disclosure may be realized by a system, apparatus, method, integrated circuit, computer program, or recording medium such as a computer-readable recording disk. It may be realized by any combination of computer program and recording medium.
  • the computer-readable recording medium may include a volatile recording medium, or may include a non-volatile recording medium such as a CD-ROM (Compact Disc-Read Only Memory).
  • a device may consist of one or more devices. When the device is composed of two or more devices, the two or more devices may be arranged in one device, or may be divided and arranged in two or more separate devices. As used herein and in the claims, a "device" can mean not only one device, but also a system of multiple devices.
  • FIG. 1 is a block diagram showing an example configuration of a system in an exemplary embodiment of the present disclosure.
  • FIG. 2 is a block diagram showing a configuration example of a sensor.
  • FIG. 3 is a block diagram showing another configuration example of the sensor.
  • FIG. 4 is a block diagram showing still another configuration example of the sensor.
  • FIG. 5A is a diagram showing an example of temporal changes in frequencies of reference light, reflected light, and interference light when the distance between the sensor and the object is constant.
  • FIG. 5B is a diagram showing an example of temporal changes in frequencies of reference light, reflected light, and interference light when the relative speed between the sensor and the object is constant.
  • FIG. 6 is a diagram for explaining the relative velocity of an object with respect to the sensor.
  • FIG. 5A is a diagram showing an example of temporal changes in frequencies of reference light, reflected light, and interference light when the distance between the sensor and the object is constant.
  • FIG. 5B is a diagram showing an example of temporal changes in frequencies of reference
  • FIG. 7 is a flowchart illustrating an example of operations performed by a processing circuit
  • FIG. 8A is a diagram showing an example of the format of measurement data acquired in step S101.
  • FIG. 8B is a diagram showing an example of the format of data including sensor position information and speed information acquired in step S102.
  • FIG. 8C is a diagram showing an example of the data format of the four-dimensional point cloud data generated in step S103.
  • FIG. 8D is a diagram showing an example of the data format of 3D point cloud data.
  • FIG. 9 is a diagram showing an example of the relationship between the moving speed V of the sensor, the moving speed v of the object, and the measured speed vc.
  • FIG. 10 is a flow chart showing a modification of the operation of the processing circuit.
  • FIG. 10 is a flow chart showing a modification of the operation of the processing circuit.
  • FIG. 11 is a flow chart showing an example of the operation when measuring neighboring points a plurality of times.
  • FIG. 12A is a diagram showing an example of the format of point cloud data including flag information indicating speed detection points.
  • FIG. 12B is a diagram showing an example of the format of measurement data including flag information.
  • FIG. 13 is a block diagram showing a configuration example of an automatic driving vehicle.
  • FIG. 14 is a flowchart illustrating example operations performed by processing circuitry of an autonomous vehicle.
  • FIG. 15 is a flowchart showing an example of self-position estimation processing in step S207.
  • FIG. 16 is a block diagram showing a configuration example of a robot cleaner.
  • FIG. 17 is a flow chart illustrating an example of operations performed by processing circuitry in a robotic vacuum cleaner.
  • FIG. 18 is a flow chart showing a detailed example of the operation of step S306.
  • FIG. 19 is a flow chart showing a detailed example of the operation of step S307.
  • FIG. 20 is a flow chart
  • all or part of a circuit, unit, device, member or section, or all or part of a functional block in a block diagram is, for example, a semiconductor device, a semiconductor integrated circuit (IC), or an LSI (large scale integration). ) may be performed by one or more electronic circuits.
  • An LSI or IC may be integrated on one chip, or may be configured by combining a plurality of chips.
  • functional blocks other than memory elements may be integrated into one chip.
  • LSIs or ICs may be called system LSIs, VLSIs (very large scale integration), or ULSIs (ultra large scale integration) depending on the degree of integration.
  • a Field Programmable Gate Array (FPGA), which is programmed after the LSI is manufactured, or a reconfigurable logic device that can reconfigure the junction relationships inside the LSI or set up the circuit partitions inside the LSI can also be used for the same purpose.
  • FPGA Field Programmable Gate Array
  • circuits, units, devices, members or parts can be executed by software processing.
  • the software is recorded on one or more non-transitory storage media such as ROMs, optical discs, hard disk drives, etc., such that when the software is executed by a processor, the functions specified in the software are performed. Executed by the processor and peripherals.
  • a system or apparatus may comprise one or more non-transitory storage media on which software is recorded, a processing unit, and required hardware devices such as interfaces.
  • a map that does not include information on moving objects can be generated by removing information on moving objects from the time-series images acquired by the camera. Thus, it is very effective to remove information on moving objects from map data used for self-position estimation.
  • the method using a camera as in Patent Document 1 has the following problems.
  • the first problem is that the signal processing cost and processing time for extracting feature points from an image and calculating the optical flow (that is, motion vector) of the feature points between frames is high.
  • the length of processing time can be fatal in scenes that require short processing times, such as self-position estimation during automatic driving.
  • the second problem is that there are scenes in which feature points cannot be extracted. For example, it is difficult to extract feature points from an image especially when the distance is short, such as the side of a large truck, and it is impossible to determine whether or not it is a moving object.
  • the third issue is the uncertainty of the information obtained from the camera.
  • the information obtained by the camera is very susceptible to the brightness of the surrounding environment, such as the lighting environment for indoors, and the amount of sunlight or weather for outdoors. Therefore, it is difficult to obtain stable information even for the same scene.
  • a data processing apparatus comprises a storage device and processing circuitry.
  • a storage device stores measurement data including position information and velocity information for a plurality of measurement points in space.
  • the processing circuit acquires the measurement data from the storage device, determines a measurement point on the stationary object from the plurality of measurement points based on the speed information, and determines a measurement point on the stationary object based on the determination result. generating point cloud data including the position information of the measurement points.
  • the measurement data includes velocity information in addition to position information for multiple measurement points. Therefore, the processing circuit can discriminate the measurement point on the stationary object from the plurality of measurement points based on the velocity information.
  • the processing circuit generates point cloud data including position information of the measurement points on the stationary object based on the determination result. For example, the processing circuitry can generate point cloud data from which information about moving objects has been removed, or point cloud data including information such as flags for distinguishing between moving and stationary objects. This allows for efficient generation of point cloud data that can be used for self-localization or map generation or updating.
  • Measurement data including position information and velocity information about multiple measurement points in space can be generated by a sensor capable of acquiring velocity information of the measurement points, such as an FMCW LiDAR sensor or radar. Such a sensor can measure the distance from the sensor to the measuring point and the velocity component of the measuring point in the direction towards the sensor.
  • the "position information" of the measurement point in the measurement data is not limited to information such as coordinate values that directly represent the position of the measurement point.
  • the position information of the measurement point may be information used to calculate the position of the measurement point, such as information indicating the distance and direction from the sensor to the measurement point.
  • the “speed information” of the measurement point in the present disclosure is not limited to information indicating the absolute speed of the measurement point, and may be information related to the speed.
  • the velocity information of the measurement point may be information indicating the velocity component of the measurement point in the direction along the straight line connecting the sensor and the measurement point.
  • the velocity information of the measurement point may be information indicating whether or not the magnitude of the velocity measured at the measurement point is greater than a threshold.
  • the measurement data is not limited to the sensor data itself output from the sensor, and may be data generated based on the sensor data.
  • the measurement data may be data generated by a processing circuit or other device based on sensor data.
  • the processing circuit may generate the point cloud data by excluding, from the measurement data, information relating to measurement points other than the determined measurement points on the stationary object.
  • the processing circuit generates the point cloud data by adding a flag indicating that the object is a stationary object to the determined measuring point on the stationary object among the plurality of measuring points in the measurement data. You may Conversely, the processing circuit adds a flag indicating that the object is a moving object to each of the plurality of measurement points in the measurement data, excluding the determined measurement point on the stationary object.
  • Point cloud data may be generated.
  • the position information about the plurality of measurement points in the measurement data may include three-dimensional coordinate values of each of the plurality of measurement points.
  • the point cloud data may be three-dimensional point cloud data including the three-dimensional coordinate values of each measurement point on the stationary object.
  • the position information about the plurality of measurement points in the measurement data may include two-dimensional coordinate values of each of the plurality of measurement points.
  • the point cloud data may be two-dimensional point cloud data including the two-dimensional coordinate values of each measurement point on the stationary object.
  • the position information of each measurement point in the measurement data and the point cloud data may be represented by three-dimensional coordinates or two-dimensional coordinates.
  • the storage device may store the measurement data for each of a plurality of frames.
  • the measurement data for each frame may include the position information and the velocity information for multiple measurement points in the space.
  • frame means a set of data output from a sensor.
  • the sensor may repeatedly output measurement data including, for example, the measurement time, position information, and speed information of each point, for example, at a constant frame rate.
  • the sensor may output one frame of measurement data in association with one time, or may output one time in association with each measurement point.
  • the speed information about the plurality of measurement points in the measurement data may include first speed information and second speed information obtained by measuring at different measurement angles.
  • the processing circuitry may determine measurement points on the stationary object based on the first velocity information and the second velocity information. Depending on the measurement point, it may move parallel to the sensor, in which case the FMCW sensor cannot measure the velocity of the measurement point.
  • the sensor may include in the measurement data and output two or more pieces of speed information obtained by measuring the same or a nearby measurement point two or more times at different measurement angles. This makes it possible to discriminate between the measurement points on the moving object and the measurement points on the stationary object with higher accuracy.
  • the number of measurement points having the speed information may be the same as or different from the number of measurement points having the position information. Depending on the measurement point, only position information may be obtained and velocity information may not be obtained due to an error. In that case, the number of measurement points with velocity information is less than the number of measurement points with position information.
  • the measurement data may be sensor data output from a sensor using FMCW, or data generated based on the sensor data.
  • FMCW By using FMCW, it is possible to acquire the velocity information of the measurement point. Therefore, based on the speed information, the processing circuit can determine in a short time between the measurement points on the stationary object and the measurement points on the moving object.
  • the sensor can be, for example, an FMCW LiDAR sensor.
  • the speed information about the plurality of measurement points is information indicating the speed component of the relative speed of each of the plurality of measurement points with respect to the sensor in the direction along the straight line connecting the sensor and the measurement point.
  • the processing circuit may determine, among the plurality of measurement points, a measurement point for which the magnitude of the velocity component is equal to or less than a threshold as a measurement point on the stationary object.
  • the threshold may be set to zero (0) or a positive value close to zero, for example.
  • the velocity information about the plurality of measurement points is the velocity of each of the plurality of measurement points relative to the sensor of each of the plurality of measurement points along a straight line connecting the sensor and the measurement point.
  • a flag indicating whether the magnitude of the velocity component in the direction is greater than a threshold may be included.
  • the processing circuit may determine a measurement point on the stationary object from the plurality of measurement points based on the flag.
  • the processing circuit compares the map data of the environment sensed by the sensor with the point cloud data to determine whether the map data needs to be updated.
  • the map data may be updated based on.
  • the map data of the surrounding environment can be updated sequentially while the moving object equipped with the sensor moves.
  • the processing circuit may obtain map data of the environment sensed by the sensor, and estimate the position and/or orientation of the sensor by matching the point cloud data with the map data. As a result, it becomes possible to estimate the self position of a mobile body equipped with, for example, a sensor, and to realize a mobile body that moves autonomously.
  • the processing circuit may cause the sensor to re-measure the measurement points on the moving object after determining the measurement points on the moving object from the plurality of measurement points.
  • a system includes any of the data processing devices described above and a sensor that generates the measurement data or data for generating the measurement data.
  • the sensors may be FMCW LiDAR sensors or radars.
  • a data processing method is executed by a computer to obtain measurement data including position information and speed information about a plurality of measurement points in space, and based on the speed information, determining a measurement point on a stationary object from the plurality of measurement points; and generating point cloud data including the position information of the measurement point on the stationary object based on the result of the determination.
  • a computer program is stored in a computer-readable non-temporary storage medium and causes a computer to acquire measurement data including position information and velocity information about multiple measurement points in space. determining a measurement point on the stationary object from the plurality of measurement points based on the velocity information; and determining a point including the position information of the measurement point on the stationary object based on the result of the determination. and generating group data.
  • FIG. 1 is a block diagram showing an example configuration of a system in an exemplary embodiment of the present disclosure.
  • This system comprises a sensor 200 and a data processing device 100 .
  • the data processing device 100 comprises a storage device 120 and processing circuitry 130 .
  • the sensor 200 is a measuring device capable of acquiring position information and speed information of multiple measurement points.
  • Sensor 200 may be, for example, a LiDAR sensor that utilizes FMCW technology for ranging and velocity measurements.
  • the sensor 200 is not limited to a LiDAR sensor, but may be another type of sensor such as radar.
  • the sensor 200 generates measurement data including position information and speed information for multiple measurement points in space, and accumulates the measurement data in the storage device 120 .
  • the sensor 200 is assumed to be an FMCW LiDAR sensor (hereinafter also referred to as "FMCW-LiDAR").
  • the storage device 120 may be a semiconductor memory such as SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory). Storage device 120 may be other types of storage devices, such as magnetic storage devices or optical storage devices. The storage device 120 stores measurement data output from the sensor 200 . Storage device 120 also stores computer programs that are executed by processing circuitry 130 .
  • the processing circuit 130 is an electronic circuit including a processor such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). Processing circuitry 130 may be a collection of multiple processors. Processing circuitry 130 operates by executing computer programs stored in storage device 120 . The processing circuit 130 performs the following processing.
  • Data input Obtain measurement data from the storage device 120 .
  • ⁇ Stationary object determination Based on the velocity information of each measurement point in the measurement data, a measurement point on a stationary object is determined from a plurality of measurement points.
  • Generation of point cloud data Generate point cloud data including position information of each measurement point on the determined stationary object.
  • ⁇ Data output Output the generated point cloud data.
  • point cloud data used for self-position estimation of a mobile object or generation or update of map data (hereinafter sometimes simply referred to as "map") can be shortened more efficiently than before. can be generated more accurately in time.
  • map data When point cloud data is generated using a sensor that cannot acquire velocity information, the point cloud data includes information on measurement points on a moving object that temporarily passes through. In that case, it is assumed that self-localization, or map generation or updating cannot be performed accurately. In this embodiment, this problem is solved by using the sensor 200 capable of acquiring speed information.
  • FIG. 2 is a block diagram showing a configuration example of the sensor 200. As shown in FIG. In FIG. 2, thick arrows represent the flow of light, and thin arrows represent the flow of signals or data. Also shown in FIG. 2 are objects for which distance and velocity are to be measured, and a storage device 120 connected to the sensor 200 .
  • the object can be, for example, a mobile object such as an automobile or a two-wheeled vehicle.
  • Light source 210 can change the frequency or wavelength of the emitted light in response to a control signal output from processing circuitry 240 .
  • the interference optical system 220 separates the light emitted from the light source 210 into reference light and output light, and generates interference light by causing interference between the reference light and the reflected light generated when the output light is reflected by the object.
  • the interfering light is incident on photodetector 230 .
  • the photodetector 230 receives the interference light, generates and outputs an electrical signal corresponding to the intensity of the interference light. This electrical signal is called a "detection signal".
  • Photodetector 230 includes one or more light receiving elements.
  • the light receiving element includes, for example, a photoelectric conversion element such as a photodiode.
  • the photodetector 230 may be a sensor in which a plurality of light receiving elements are two-dimensionally arranged, such as an image sensor.
  • the processing circuit 240 is an electronic circuit that controls the light source 210 and performs processing based on the detection signal output from the photodetector 230 .
  • Processing circuitry 240 may include control circuitry for controlling light source 210 and signal processing circuitry for performing signal processing based on the detected signals.
  • the processing circuit 240 may be configured as one circuit, or may be an aggregate of a plurality of separate circuits.
  • Processing circuitry 240 sends control signals to light source 210 .
  • the control signal causes the light source 210 to periodically change the frequency of the emitted light within a predetermined range.
  • the processing circuit 240 further calculates the distance to each measurement point and the speed of each measurement point based on the detection signal output from the photodetector 230 .
  • the processing circuit 240 associates the time information output from the timer circuit 250 with the calculated distance and speed information, and outputs them as measurement data.
  • the timer circuit 250 is a circuit having a clock function such as a real-time clock (RTC).
  • a light source 210 in this example includes a drive circuit 211 and a light emitting element 212 .
  • the drive circuit 211 receives the control signal output from the processing circuit 240 , generates a drive current signal according to the control signal, and inputs the drive current signal to the light emitting element 212 .
  • the light emitting element 212 may be an element that emits highly coherent laser light, such as a semiconductor laser element. The light emitting element 212 emits frequency-modulated laser light in response to the drive current signal.
  • the frequency of the laser light emitted from the light emitting element 212 is modulated at a constant cycle.
  • the frequency modulation period can be, for example, 1 microsecond ( ⁇ s) or more and 10 milliseconds (ms) or less.
  • the frequency modulation amplitude can be, for example, greater than or equal to 100 MHz and less than or equal to 1 THz.
  • the wavelength of the laser light can be included in the near-infrared wavelength range of 700 nm or more and 2000 nm or less, for example. In sunlight, the amount of near-infrared light is smaller than the amount of visible light. Therefore, by using near-infrared light as the laser light, the influence of sunlight can be reduced.
  • the wavelength of the laser light may be included in the visible light wavelength range of 400 nm or more and 700 nm or less or the ultraviolet light wavelength range.
  • the control signal input from the processing circuit 240 to the drive circuit 211 is a signal whose voltage fluctuates with a predetermined period and a predetermined amplitude.
  • the voltage of the control signal can be modulated, for example triangular or sawtooth.
  • the frequency of the light emitted from the light emitting element 212 can be swept in a nearly linear manner by a control signal in which the voltage repeats a linear change such as a triangular wave or a sawtooth wave.
  • the interference optical system 220 in the example shown in FIG. 2 includes a splitter 221, a mirror 222, and a collimator 223.
  • the splitter 221 splits the laser light emitted from the light emitting element 212 of the light source 210 into reference light and output light, and combines the reflected light from the object and the reference light to generate interference light.
  • Mirror 222 reflects the reference light back to splitter 221 .
  • the collimator 223 includes a collimating lens, and irradiates the object with the output light at a spread angle close to parallel.
  • the interference optical system 220 is not limited to the configuration shown in FIG. 2, and may be a fiber optical system, for example. In that case, a fiber coupler can be used as the splitter 221 .
  • the reference light does not necessarily need to be reflected by the mirror 222 , and may be returned to the splitter 221 by routing an optical fiber, for example.
  • FIG. 3 is a block diagram showing a configuration example of the sensor 200 in which the interference optical system 220 is a fiber optical system.
  • interference optics 220 includes first fiber splitter 225 , second fiber splitter 226 and optical circulator 227 .
  • the first fiber splitter 225 splits the laser light 20 emitted from the light source 210 into the reference light 21 and the output light 22 .
  • the first fiber splitter 225 causes the reference light 21 to enter the second fiber splitter 226 and the output light 22 to enter the optical circulator 227 .
  • the optical circulator 227 causes the output light 22 to enter the collimator 223 .
  • the optical circulator 227 also directs the reflected light 23 generated by irradiating the object with the output light 22 to enter the second fiber splitter 226 .
  • the second fiber splitter 226 causes the interference light 24 between the reference light 21 and the reflected light 23 to enter the photodetector 230 .
  • the collimator 223 shapes the beam shape of the output light 22 and emits the output light 22 toward the object. With such a configuration, it is possible to measure the distance and velocity of the object, as with the configuration shown in FIG.
  • the sensor 200 may further include a scanning mechanism such as an optical deflector that changes the direction of emitted light.
  • FIG. 4 is a block diagram showing an example of sensor 200 with optical deflector 270.
  • Optical deflector 270 may include, for example, a MEMS (Micro Electro Mechanical System) mirror or a galvanomirror.
  • the optical deflector 270 can change the emission direction of the output light 22 by changing the angle of the mirror according to the instruction from the processing circuit 240 . This makes it possible to achieve a wide range of distance measurement by beam scanning.
  • optical deflector 270 is added to the configuration shown in FIG. 3 in the example shown in FIG. 4, a configuration in which the optical deflector 270 is added to the configuration shown in FIG. 2 may be employed.
  • the optical deflector 270 is not limited to the above configuration, and may be, for example, a beam scanning device using an optical phased array and a slow light waveguide as described in WO 2019/230720. .
  • FIG. 5A shows an example of temporal changes in frequencies of reference light, reflected light, and interference light when the distance between the sensor 200 and the object is constant (for example, when both are stationary).
  • the frequency f of the light emitted from the light source 210 changes in a triangular wave shape, and the frequency change rate per unit time is the same in the period during which the frequency increases and the period during which the frequency decreases.
  • the period during which the frequency increases is called the "up-chirp period”
  • the period during which the frequency decreases over time is called the "down-chirp period”.
  • the dotted line represents the reference light
  • the dashed line represents the reflected light
  • the thick solid line represents the interference light.
  • the reflected light from the object is accompanied by a time delay according to the distance with respect to the reference light. For this reason, a certain difference occurs between the frequency of the reflected light and the frequency of the reference light according to the distance, except immediately after the turnaround point of the frequency modulation.
  • the interference light has a frequency corresponding to the frequency difference between the reference light and the reflected light. Therefore, the frequency f_up of the interference light during the up-chirp period is equal to the frequency f_down of the interference light during the down-chirp period except immediately after the turn-around point of the frequency modulation.
  • the photodetector 230 outputs a detection signal indicating the intensity of the interference light.
  • the detection signal is called a beat signal
  • the frequency of the beat signal is called a beat frequency.
  • the beat frequency is equal to the frequency difference between the reference light and the reflected light. This frequency difference depends on the distance from the sensor 200 to the object. Therefore, the distance from the sensor 200 to the object can be calculated based on the beat frequency.
  • c is the speed of light
  • f FMCW is the modulation frequency of the output light
  • ⁇ f is the width of the frequency modulation of the output light (that is, the difference between the highest frequency and the lowest frequency)
  • f b is the beat frequency.
  • the modulation frequency fFMCW is the reciprocal of the period of the frequency modulation of the emitted light.
  • FIG. 5B shows an example of temporal changes in the frequencies of the reference light, the reflected light, and the interference light when at least one of the sensor 200 and the object is moving and the relative speed between the sensor 200 and the object is constant. showing.
  • the object is approaching sensor 200 at a constant speed. Due to the Doppler effect, a frequency shift occurs between the reference light and the reflected light from the object. When the object approaches, the frequency of the reflected light increases compared to when the object is stationary. The amount by which the frequency of the reflected light shifts depends on the magnitude of the component of the relative velocity of the object with respect to the sensor 200 in the direction along the straight line connecting the sensor 200 and the measurement point.
  • the beat frequency in this case differs between the up-chirp period and the down-chirp period.
  • the velocity of the object can be calculated based on the difference between these beat frequencies.
  • the beat frequency f down during the down-chirp period is higher than the beat frequency f up during the up-chirp period.
  • the beat frequency f down during the down chirp period is lower than the beat frequency f up during the up chirp period.
  • the velocity of the object can be calculated based on the difference between these beat frequencies.
  • vc is the component of the velocity of the object relative to the sensor 200 in the direction along the straight line connecting the sensor 200 and the measurement point
  • is the wavelength of the emitted light
  • fd is the amount of frequency shift due to the Doppler effect. do.
  • the velocity component v c can be calculated based on the following equation.
  • v c is positive, it indicates that the object is moving toward the sensor 200 . Conversely, if vc is negative, it indicates that the object is moving away from sensor 200 . Contrary to this example, vc is negative when the object is moving toward the sensor 200, and vc is positive when the object is moving away from the sensor 200.
  • a velocity component v c may be defined.
  • the processing circuit 240 calculates the distance from the sensor 200 to the measurement point and the relative velocity of the measurement point to the sensor 200 in the direction along the straight line connecting the sensor 200 and the measurement point by calculation based on the detection signal. Ingredients can be found.
  • the processing circuit 240 performs, for example, the following processing in determining the beat frequencies f up and f down .
  • the processing circuit 240 performs a fast Fourier transform on the detection signal output from the photodetector 230 to sequentially calculate a power spectrum indicating signal strength for each frequency.
  • the processing circuit 240 determines the peak frequency having a signal strength exceeding a predetermined threshold as the beat frequency f up from the power spectrum in the up-chirp.
  • the processing circuit 240 determines the peak frequency with signal strength exceeding the threshold from the power spectrum in the down chirp as the beat frequency f down .
  • the processing circuit 240 may not calculate the velocity and may process it as an error when there is no peak exceeding a predetermined threshold in at least one of the up-chirp and the down-chirp.
  • FIG. 6 is a diagram for explaining the relative velocity of the object with respect to the sensor 200.
  • the position of the measurement point 30 on the object is indicated by coordinates (r, ⁇ , ⁇ ) in a polar coordinate system with the position of the sensor 200 as the origin (0, 0, 0).
  • v be the actual relative velocity vector of the measurement point 30 with respect to the sensor 200 .
  • the velocity measured by the FMCW sensor 200 is not the actual relative velocity vector v, but the component vc obtained by projecting the relative velocity vector v onto the straight line connecting the sensor 200 and the measurement point 30 .
  • the frequency of the reflected light shifts according to the velocity component vc . Therefore, a frequency difference occurs between the up-chirp period and the down-chirp period. Based on this frequency difference, the relative velocity component vc between the sensor 200 and the measurement point 30 can be obtained.
  • the relative velocity measured by FMCW LiDAR is a velocity component on a straight line connecting the sensor 200 and the measurement point 30 . Therefore, even if the moving direction of the measurement point 30 is different from the direction along the straight line as viewed from the sensor 200, only the component of the velocity vector of the measurement point 30 in the direction along the straight line is the relative velocity. measured as
  • the processing circuit 130 may generate not only three-dimensional point cloud data, but also two-dimensional (2D) point cloud data, for example.
  • FIG. 7 is a flowchart showing an example of operations performed by the processing circuit 130.
  • the sensor 200 is mounted on a vehicle that moves automatically.
  • the moving object is an automatic driving vehicle.
  • the mobiles may be other types of mobiles, such as automated guided robots or autonomous flying drones.
  • the sensor 200 senses the surrounding environment of the mobile body, sequentially generates measurement data including position information and speed information for a plurality of measurement points, and stores the measurement data in the storage device 120 .
  • the processing circuit 130 repeats the operations of steps S101 to S105 shown in FIG. 7 to generate or update a map of the surrounding environment of the mobile object.
  • the map can be used for self-localization or route planning of mobile objects. The operation of each step will be described below.
  • step S ⁇ b>101 the processing circuit 130 acquires measurement data from the storage device 120 .
  • the measurement data includes distance and velocity information about multiple measurement points in space measured by the sensor 200 within a certain period of time.
  • the sensor 200 repeats an operation of generating and outputting measurement data including position information and speed information of a plurality of measurement points measured within the fixed time as one frame of measurement data.
  • the processing circuitry 130 processes the measurement data, for example, on a frame-by-frame basis.
  • FIG. 8A is a diagram showing an example of the format of measurement data acquired in step S101.
  • the measurement data in this example includes, for each measurement point, the measurement time, the direction of the measurement point with respect to the sensor 200, the distance from the sensor 200 to the measurement point, and the speed of the measurement point (hereinafter referred to as "measurement speed"). including.
  • the direction of each measurement point can be expressed, for example, by a vector indicating the direction from the sensor 200 to the measurement point, or by a combination of an elevation angle (or depression angle) and an azimuth angle.
  • the relative position of the measurement point with respect to the sensor 200 is identified from information on the direction and distance from the sensor 200 to the measurement point.
  • the position coordinates of the measurement point can be calculated from this relative position and the position of the sensor 200 that is separately measured or estimated.
  • a combination of information on the direction and distance of each measurement point corresponds to "positional information" of that measurement point.
  • the measured velocity of each measuring point indicates the component of the relative velocity of the measuring point with respect to the sensor 200 in the direction along the straight line connecting the sensor 200 and the measuring point. In this embodiment, this measured speed corresponds to the "speed information" of the measurement point.
  • FIG. 9 is a diagram showing an example of the relationship between the moving speed V of the sensor 200, the moving speed v of the object, and the measured speed vc .
  • be the angle between the moving speed V of the sensor 200 and the direction of the laser beam emitted from the sensor 200 toward the measurement point 30 on the object.
  • be the angle between the moving speed v of the object and the direction of the light.
  • the measured velocity vc at the measurement point 30 measured by the sensor 200 is represented by the following equation (4).
  • v c v ⁇ cos ⁇ V ⁇ cos ⁇ (4)
  • the measured velocity vc takes a positive value when the sensor 200 and the measuring point 30 are moving away, and the measured velocity vc takes a negative value when the sensor 200 and the measuring point 30 are approaching. Take. Contrary to this example, the measured velocity vc takes a positive value when the sensor 200 and the measuring point 30 are approaching, and the measured velocity vc is negative when the sensor 200 and the measuring point 30 are moving away.
  • the sensor 200 may be configured to take the value of . In that case, the measured velocity vc is represented by the following equation (5).
  • v c V ⁇ cos ⁇ v ⁇ cos ⁇ (5)
  • processing circuit 130 acquires position information and speed information of sensor 200 .
  • the position information and speed information of the sensor 200 can be generated by an in-vehicle computer such as an ECU (Electronic Control Unit) installed in the moving body, for example.
  • the in-vehicle computer determines the position of the mobile object and the sensor 200 based on data acquired from various devices such as a GNSS (Global Navigation Satellite System) receiver, an IMU (Inertial Measurement Unit), and a speedometer mounted on the mobile object. and velocity can be calculated or estimated.
  • the position of the sensor 200 may be estimated by matching point cloud data based on a previously created map and measurement data.
  • the speed of the sensor 200 can be measured based on data output from a speedometer, an acceleration sensor included in the IMU, a gyroscope, or the like. If the moving object is a vehicle, the speed may be calculated based on the rotational speed and diameter of the wheels measured by the axle sensor and information on the steering direction. Alternatively, FMCW-LiDAR such as sensor 200 may be used to measure velocity by illuminating a stationary object such as the ground. The position and velocity of sensor 200 are sequentially recorded in storage device 120 . Processing circuit 130 acquires position information and velocity information of sensor 200 from storage device 120 . Note that the operation of step S102 may be performed before step S101 or may be performed in parallel with step S101.
  • FIG. 8B is a diagram showing an example of the format of data containing the position information and speed information of the sensor 200 acquired in step S102.
  • the processing circuit 130 acquires information on the position and speed of the sensor 200 at the measurement time of each measurement point from the storage device 120 .
  • the positional information of the sensor 200 can include, for example, three-dimensional positional coordinate values expressed in a global coordinate system fixed to the earth.
  • the velocity information of the sensor 200 may include three-dimensional velocity values expressed in the global coordinate system, or may include only velocity magnitude values. If the velocity information includes only velocity magnitude values, the position information of the sensor 200 may also include orientation information of the sensor 200 . In other words, the pose (ie position and orientation) and velocity magnitude of sensor 200 at each time may be recorded.
  • step S103 the processing circuit 130 calculates the position coordinates (three-dimensional) and velocity (one-dimensional) of each measurement point to generate four-dimensional (4D) point cloud data.
  • the processing circuit 130 calculates the three-dimensional position coordinates and speed values of each measurement point based on the measurement data and the position information and speed information of the sensor 200 .
  • FIG. 8C is a diagram showing an example of the data format of the four-dimensional point cloud data generated in step S103.
  • the four-dimensional point cloud data in this example includes three-dimensional position coordinate values expressed in the global coordinate system and velocity values of each measurement point.
  • the processing circuit 130 calculates three-dimensional position coordinate values of each measurement point in the global coordinate system based on information on the position and orientation of the sensor 200 and information on the direction and distance of the measurement point.
  • the processing circuit 130 also calculates the velocity of each measurement point in the four-dimensional point cloud data by calculating the influence of the moving velocity of the sensor 200 from the measured velocity. As shown in FIG.
  • FIG. 8C shows an example in which only the velocity at the third measurement point has a non-zero value.
  • the sensor 200 may be configured such that the measured velocity vc takes a positive value when the sensor 200 and the measurement point 30 are approaching each other, as in the above equation (5).
  • the processing circuit 130 repeats the above calculation for each measurement point to generate four-dimensional point cloud data in which the speed value is added to the three-dimensional coordinate value of each measurement point.
  • step S104 the processing circuit 130 generates three-dimensional point cloud data by excluding information on measurement points whose velocity magnitude exceeds a predetermined threshold close to zero from the four-dimensional point cloud data.
  • a measurement point in the four-dimensional point cloud data whose magnitude of velocity exceeds a threshold is considered to be a measurement point on a moving object. Therefore, the processing circuit 130 generates three-dimensional point cloud data by excluding such measurement point information from the four-dimensional point cloud data.
  • FIG. 8D shows an example of 3D point cloud data. In this example, only the third measurement point has a velocity value exceeding the threshold, so the information of that measurement point is excluded to generate the three-dimensional point cloud data.
  • the processing circuit 130 generates or updates a map for automatic travel of the moving object based on the three-dimensional point cloud data generated at step S104.
  • the processing circuitry 130 can generate or update a map by partially matching and connecting point cloud data based on measurement data acquired at different timings.
  • a SLAM algorithm for example, may be used to generate or update the map.
  • the processing circuit 130 can generate 3D point cloud data and map data excluding the information on the measurement points on the moving object.
  • the processing circuit 130 determines whether the measurement point is a measurement point on a stationary object or a measurement point on a moving object based on the speed information. It is possible to quickly determine whether As a result, the time required for processing can be shortened compared to the conventional technology that detects a moving object by detecting an optical flow through frame-to-frame comparison of time-series images acquired by a camera.
  • the FMCW-LiDAR as the sensor 200, moving objects and stationary objects can be discriminated with high accuracy without performing processing such as feature point extraction. As a result, it is possible to efficiently generate a highly accurate map that is used for self-position estimation of the mobile body.
  • the senor 200 is used to acquire distance and speed information for each measurement point by irradiating a light beam, and the data of a plurality of measurement points arranged in time series are collectively processed as a frame in a certain unit. . Therefore, the data of the measurement points can be processed more efficiently than when the processing circuit 130 acquires and processes the measurement data for each point from the storage device 120 .
  • the processing circuit 130 generates 4D point cloud data including the 3D position coordinates and velocity values of each measurement point, and from the 4D point cloud data, the magnitude of the velocity exceeds the threshold value.
  • 3D point cloud data is generated by excluding point information.
  • the operation shown in FIG. 10 may be adopted.
  • FIG. 10 is a flowchart showing a modification of the operation of the processing circuit 130.
  • steps S103 and S104 in the flowchart shown in FIG. 7 are replaced with step S113.
  • the operations of steps S101, S102, and S105 are the same as in the example of FIG.
  • step S113 the processing circuit 130 calculates the three-dimensional coordinates of a measurement point whose measured velocity is the same as the velocity of the sensor 200 and whose direction of the measured velocity is opposite to the direction of the sensor 200.
  • Generate point cloud data A measurement point whose measured velocity is the same as the velocity of the sensor 200 and whose direction of the measured velocity is opposite to the direction of the sensor 200 is considered to be a measurement point on a stationary object. It is considered to be a measurement point on a moving object. Therefore, the processing circuit 130 calculates three-dimensional coordinates only for measurement points that are considered to be measurement points on a stationary object. The three-dimensional coordinates of the measurement point are calculated based on information on the direction and distance of the measurement point and information on the position and orientation of the sensor 200 . As a result, similarly to the example of FIG. 7, it is possible to generate three-dimensional point cloud data (see FIG. 8D) from which the information of the measurement points on the moving object is excluded.
  • the velocity component of the measurement point in the direction along the straight line connecting the light emission point of the sensor 200 and the measurement point is detected. Therefore, the speed cannot be detected when the measurement point is moving in the direction orthogonal to the straight line.
  • the position and orientation of the sensor 200 may be changed to measure nearby points multiple times. Multiple measurements with different measurement directions (or measurement angles) make it possible to reliably detect the velocity (or whether it is moving) even at measurement points where the velocity cannot be detected in a single measurement.
  • FIG. 11 is a flowchart showing an example of the operation when measuring the same or neighboring points multiple times.
  • step S103 in the flowchart shown in FIG. 7 is replaced with steps S123 to S127.
  • the operations of steps S101, S102, S104, and S105 are the same as those of the corresponding steps in FIG.
  • acquisition of measurement data for multiple measurement points in space is performed twice by changing the position and orientation of the sensor 200 .
  • the processing circuit 130 moves the sensor 200 (step S123). At this time, the position and orientation of the sensor 200 are changed so that the area to be measured substantially overlaps the area measured the first time.
  • the system includes actuators that change the position and orientation of sensor 200 .
  • step S124 the processing circuit 130 causes the sensor 200 to measure points that are the same as or close to the measurement points in the measurement data acquired in step S101, and acquires measurement data.
  • step S125 the processing circuit 130 acquires the position information and speed information of the sensor 200 at the measurement time of each measurement point. This operation is the same as the operation in step S102.
  • step S126 the processing circuit 130 calculates the three-dimensional position coordinates and velocity of each measurement point in the measurement data acquired in steps S101 and S124.
  • the method of calculating the position coordinates and velocity is the same as the method in step S103 shown in FIG.
  • step S127 the processing circuit 130 generates four-dimensional point cloud data based on the three-dimensional position coordinates and speed of each measurement point calculated in step S126. At this time, if two velocity values are obtained for substantially the same measurement point, the velocity value with the larger absolute value is processed as the velocity of that measurement point. For example, for two measurements of substantially the same point, if one of the two measurements has an absolute velocity value of approximately zero and the other measurement has an absolute velocity value greater than zero, the processing circuit 130 determines the velocity of the latter to be Four-dimensional point cloud data is generated as the velocities of the measurement points.
  • the number of measurements performed by moving the sensor 200 is not limited to two, and may be three or more.
  • an operation similar to that of step S113 shown in FIG. 10 may be performed.
  • the processing circuit 130 determines only the measurement points on the stationary object whose measured velocity is the same as the velocity of the sensor 200 and whose direction is opposite in any of the multiple measurements. Generate dimensional point cloud data.
  • steps S101 and S124 a plurality of measurement points are continuously measured, but in each step, only one measurement point may be measured. In that case, the operations from steps S101 to S125 may be repeated for a predetermined number of measurement points while moving the sensor 200 .
  • a plurality of sensors 200 arranged at different positions may be used to achieve a similar function.
  • the processing circuit 130 performs the same processing as described above based on measurement data acquired at different measurement angles by a plurality of sensors 200, thereby obtaining a three-dimensional point cloud excluding information on measurement points on a moving object. data can be generated.
  • the processing circuit 130 generates three-dimensional point cloud data excluding the position information of the measurement points (hereafter referred to as "velocity detection points") at which the magnitude of the velocity exceeds the threshold.
  • point cloud data including flag information indicating a speed detection point may be generated without excluding the position information of the speed detection point.
  • FIG. 12A shows an example of the format of point cloud data including flag information indicating that it is a speed detection point. Attaching flags in this way makes it easier to re-measure when the same point is measured multiple times as in the example of FIG. can be In this example, the flags are attached to the measurement points on the moving object, but conversely, the flags may be attached to the measurement points on the stationary object.
  • the measurement data output from the sensor 200 includes a flag indicating whether or not the magnitude of the measured speed is greater than a threshold value (for example, zero or a positive predetermined value close to zero).
  • a threshold value for example, zero or a positive predetermined value close to zero.
  • the flags are attached to the measurement points on the moving object, but conversely, the flags may be attached to the measurement points on the stationary object.
  • Whether or not to include such a flag in the speed information is determined by processing circuitry 240 of sensor 200 based on the magnitude of the measured speed.
  • the processing circuit 240 may include only the flag information as the speed information without including the measured speed information in the measurement data. Even in this case, the processing circuit 130 in the data processing device 100 can distinguish between the measurement points on the stationary object and the measurement points on the moving object based on the flags.
  • FIG. 13 is a block diagram showing a configuration example of an automated driving vehicle 300.
  • FIG. Also shown in FIG. 13 is a map distribution server 500 that is an external element of vehicle 300 .
  • Vehicle 300 includes a first storage device 310, a second storage device 320, a processing circuit 330, a communication device 340, a LiDAR sensor 350, an inertial measurement unit (IMU) 360, a GNSS receiver 370, and a control circuit. 380 and a drive device 390 .
  • the server 500 comprises a storage device 520 , a processing device 530 and a communication device 540 .
  • the first storage device 310, the second storage device 320, and the processing circuit 330 play the same role as the data processing device 100 shown in FIG.
  • the first storage device 310 stores the point cloud data generated by the processing circuitry 330 .
  • the second storage device 320 stores a map of the environment around the vehicle 300 .
  • the first storage device 310 and the second storage device 320 may be integrated as one storage device.
  • the processing circuit 330 has the same functions as the processing circuit 130 shown in FIG.
  • the LiDAR sensor 350 has similar functionality to the sensor 200 shown in FIG.
  • the communication device 340 is a device that communicates with the server 500 via a network such as the Internet or a mobile phone network.
  • IMU 360 is a device that includes various sensors such as accelerometers, gyroscopes, and geomagnetic sensors. IMU 360 measures various quantities such as acceleration, velocity, displacement, and attitude of vehicle 300 .
  • the GNSS receiver 370 receives signals from multiple satellites in a satellite positioning system such as GPS (Global Positioning System), QZSS (Quasi-Zenith Satellite System), GLONASS, Galileo, or BeiDou, and based on the signals, the vehicle Calculate 300 positions.
  • Drive device 390 includes various devices necessary for running vehicle 300, such as an engine, a transmission, and power steering.
  • Control circuit 380 controls operations such as running and steering of vehicle 300 by controlling drive device 390 .
  • Processing circuitry 330 and control circuitry 380 may be included in an onboard computer, such as an electronic control unit (ECU), for example.
  • ECU electronice control unit
  • the storage device 520 in the server 500 stores maps to be distributed to the vehicle 300.
  • Processing device 530 is a processor that distributes a map to vehicle 300 via communication device 540 and updates the map based on information acquired from vehicle 300 .
  • Communication device 540 is a device that communicates with vehicle 300 . Note that the server 500 may distribute the map not only to the illustrated vehicle 300 but also to a plurality of automatically driven vehicles.
  • FIG. 14 is a flowchart illustrating an example of operations performed by the processing circuitry 330 .
  • the processing circuit 330 performs the operations of steps S201 to S213 shown in FIG. The operation of each step will be described below.
  • step S201 the processing circuit 330 determines whether or not the user or another device has issued an instruction to stop automatic operation. If a stop instruction has been issued, the process proceeds to step S212. If no stop instruction has been issued, the process proceeds to step S202.
  • step S ⁇ b>202 the processing circuit 330 acquires position information of the vehicle 300 from the GNSS receiver 370 .
  • Processing circuitry 330 may correct the position information based on signals output from IMU 360 in addition to position information output from GNSS receiver 370 .
  • step S ⁇ b>203 the processing circuit 330 acquires a map of an area including the position of the vehicle 300 from the server 500 .
  • step S ⁇ b>204 the processing circuit 330 acquires measurement data including distance and speed information of each measurement point output from the LiDAR sensor 350 .
  • the processing circuit 330 calculates the speed and attitude of the vehicle 300 based on the signal output from the IMU 360 .
  • the speed of vehicle 300 may be obtained from other sensors such as a speedometer.
  • the processing circuit 330 In step S206, the processing circuit 330 generates point cloud data.
  • the processing circuit 330 generates point cloud data based on the distance and speed information of each measurement point acquired in step S204 and the speed and attitude information of the vehicle 300 acquired in step S205.
  • Processing circuitry 330 generates three-dimensional point cloud data, for example, in the manner described with reference to FIG. 7 or FIG.
  • the point cloud data generated here is, for example, three-dimensional point cloud data excluding information on measurement points on a moving object as shown in FIG. 8D, or measurement data on a moving object as shown in FIG. It can be three-dimensional point cloud data including information such as flags that can distinguish between points and measurement points on a stationary object.
  • step S207 the processing circuit 330 performs self-position estimation by matching the point cloud data generated in step S206 with the map data acquired in step S203. This allows processing circuitry 330 to determine the precise position and attitude (or pose) of vehicle 300 . Details of the operation of step S207 will be described later.
  • step S208 the processing circuit 330 records the generated point cloud data in the storage device 310.
  • step S209 the processing circuit 330 recognizes obstacles based on the point cloud data. For example, by pattern matching or machine learning, obstacles that can hinder the running of the vehicle 300 are recognized from the point cloud data.
  • step S210 the processing circuit 330 determines the course of the vehicle 300 and determines the motion of the vehicle 300 based on the result of self-position estimation and the result of obstacle recognition. For example, if an obstacle is recognized, processing circuitry 330 determines a route that can avoid the obstacle and sets parameters (eg, speed, steering angle, etc.) for driving vehicle 300 along that route. decide.
  • parameters eg, speed, steering angle, etc.
  • step S211 the processing circuit 330 sends the determined parameter information to the control circuit 380 and instructs the control circuit 380 to operate.
  • Control circuit 380 controls drive device 390 in accordance with the operation instruction to cause vehicle 300 to perform a desired operation. After step S211, the process returns to step S201.
  • the processing circuit 330 repeats the operations from steps S201 to S211 until an instruction to stop automatic operation is received in step S201. If the stop instruction is received, the process proceeds to step S212.
  • step S212 the processing circuit 330 determines whether to transmit to the server 500 the updated map based on the point cloud data generated before receiving the stop instruction.
  • the processing circuitry 330 may determine to transmit the map, for example, when there is a change in the environment around the vehicle 300 and the map acquired from the server 500 needs to be corrected. Alternatively, processing circuitry 330 may determine to transmit an updated map upon receiving a map transmission request from server 500 or another device. If the processing circuit 330 determines to transmit the map, the process proceeds to step S213, and if it determines not to transmit the map, the operation ends.
  • step S213 the processing circuit 330 transmits to the server 500 the map updated based on the point cloud data generated before receiving the stop instruction, and ends the operation.
  • step S207 the processing of self-position estimation in step S207 will be described in more detail.
  • FIG. 15 is a flowchart showing an example of self-position estimation processing in step S207.
  • Step S207 includes the operations of steps S221 to S225 shown in FIG.
  • processing circuit 330 performs approximate self-position estimation based on the position of vehicle 300 determined in the previous self-position estimation, and the speed, direction, and movement distance of vehicle 300 during movement up to this time. to decide.
  • the processing circuit 330 extracts a relatively narrow range including the rough self-position from the map acquired at step S203.
  • step S223 the processing circuit 330 determines a range to be compared with the point cloud data generated in step S206 from the extracted map portion. For example, processing circuitry 330 determines the extent of the map that is estimated to correspond to the point cloud distribution indicated by the point cloud data. Note that if a sufficiently narrow map portion is extracted in step S222, the process of step S223 may be omitted.
  • step S224 the processing circuit 330 coordinates-converts the point cloud data and matches the point cloud and the map.
  • the processing circuit 330 performs matching after excluding the information on the measurement points on the moving object.
  • the processing circuit 330 performs coordinate transformation of the point cloud data, for example, so that the total sum of distances between measurement points in the point cloud data and points in the map is minimized.
  • the matching algorithm is not limited to a specific one, and any matching algorithm such as ICP (Iterative Closest Point) or NDT (Normal Distribution Transform) can be used.
  • the processing circuit 330 determines the current self-position of the vehicle 300 based on the result of the coordinate transformation.
  • Processing circuit 330 determines the current position and attitude of vehicle 300 as the self-position by correcting the rough self-position estimated in step S221 based on the result of the coordinate transformation.
  • step S206 point cloud data that does not include information on measurement points on a moving object, or point cloud data that can distinguish between measurement points on a stationary object and measurement points on a moving object. data is generated.
  • step S207 matching with the map data can be performed using the point cloud data excluding the information on the measurement points on the moving object. By removing the measurement points on the moving object, comparison can be performed easily and accurately, and the accuracy of self-position estimation can be greatly improved.
  • FIG. 16 is a block diagram showing a configuration example of the robot cleaner 400.
  • This robot cleaner 400 comprises a LiDAR sensor 450 , an IMU 460 , a storage device 420 , a processing circuit 430 , a control circuit 480 and a drive device 490 .
  • the functions of these components are similar to the functions of the corresponding components in the autonomous vehicle 300 shown in FIG.
  • Storage device 420 and processing circuitry 430 perform the same role as data processing device 100 shown in FIG.
  • the robot cleaner 400 automatically runs while creating or updating a map and estimating its own position at the same time.
  • Robot cleaner 400 is mainly used at home. Unlike the self-driving vehicle 300 shown in FIG. 13, the robotic cleaner 400 does not have a pre-made map. Therefore, the robot cleaner 400 creates a map by itself and operates while updating the map.
  • FIG. 17 is a flow chart showing an example of operations performed by processing circuitry 430 in robot cleaner 400 .
  • the processing circuit 430 performs the operations of steps S301 to S309 shown in FIG. The operation of each step will be described below. A detailed description of points overlapping with the operations of the corresponding steps in FIG. 14 will be omitted.
  • the processing circuitry 430 determines whether or not to end cleaning. For example, processing circuitry 430 terminates cleaning when the entire area to be cleaned has been cleaned, or when a stop instruction is received from the user or an external device. When continuing cleaning operation, it progresses to step S302.
  • step S ⁇ b>302 the processing circuit 430 acquires measurement data including distance and speed information of each measurement point output from the LiDAR sensor 450 .
  • step S ⁇ b>303 processing circuit 430 calculates the speed and attitude of robot cleaner 400 based on the signal output from IMU 460 .
  • step S304 the processing circuit 430 generates point cloud data.
  • the processing circuit 430 generates point cloud data based on the distance and velocity information of each measurement point acquired in step S402 and the own velocity and orientation information acquired in step S303.
  • Processing circuitry 430 may generate point cloud data, for example, in the manner described with reference to FIG. 7 or FIG. Note that the processing circuitry 430 may generate two-dimensional point cloud data instead of three-dimensional point cloud data.
  • the point cloud data generated here includes point cloud data excluding information on measurement points on moving objects, or information such as flags that can distinguish between measurement points on moving objects and measurement points on stationary objects. It can be point cloud data.
  • step S305 the processing circuitry 430 determines whether there is a map that has already been generated. If there is a map, the process proceeds to step S306, and if there is no map, the process proceeds to step S307.
  • step S306 the processing circuit 430 performs self-position estimation by matching the point cloud data and the map, and updates the map. Details of the operation of step S306 will be described later.
  • step S307 the processing circuit 430 executes map generation operations. Details of the operation of step S307 will be described later.
  • processing circuit 430 determines the operation of robot cleaner 400 based on the result of self-position estimation and the map. For example, the processing circuit 430 determines a route that does not collide with walls, obstacles, etc. shown on the map, and sets parameters (for example, rotation speed of each motor, etc.) for moving the robot cleaner 400 along that route. to decide.
  • parameters for example, rotation speed of each motor, etc.
  • step S309 the processing circuit 430 sends the determined parameter information to the control circuit 480 and instructs the control circuit 480 to operate.
  • the control circuit 480 controls the driving device 490 to cause the robot cleaner 400 to perform the cleaning operation according to the operation instruction. After step S309, the process returns to step S301.
  • the processing circuit 430 repeats the operations from steps S301 to S309 until it determines in step S301 that cleaning is finished.
  • steps S306 and S307 will be described in more detail with reference to FIGS. 18 and 19.
  • FIG. 18 is a diagrammatic representation of steps S306 and S307.
  • FIG. 18 is a flowchart showing details of the operation of step S306.
  • Step S306 includes the operations of steps S321 to S325 shown in FIG.
  • step S321 the processing circuit 430 estimates the position of the robot cleaner 400 that was determined when the previous self-position was estimated, and the speed, direction, and movement distance of the robot cleaner 400 during movement up to this time. Determine the approximate self-location.
  • step S322 the processing circuit 430 determines from the map a range to be compared with the point cloud data generated in step S304. For example, processing circuitry 430 determines the extent of the map that is estimated to correspond to the point cloud distribution indicated by the point cloud data.
  • step S323 the processing circuit 430 coordinates-converts the point cloud data and matches the point cloud and the map. This operation is the same as the operation of step S224 in FIG.
  • step S324 the processing circuitry 430 determines the current self-position of the robot cleaner 400 based on the result of the coordinate transformation. This operation is the same as the operation of step S225 in FIG.
  • step S325 the processing circuitry 430 updates the map by writing the point cloud data to the existing map. Specifically, the processing circuit 430 extracts points whose coordinates do not match the points on the existing map from the point cloud data, and writes the data of those points to the existing map. At this time, if there is point data that exists in the existing map but is not included in the point cloud data, the point data may be excluded. The above operation updates the map.
  • FIG. 19 is a flowchart showing details of the operation of step S307. This flowchart is obtained by removing steps S322 and S324 from the flowchart shown in FIG. 18 and replacing step S325 with step S326. The operations of steps S321 and S323 are the same as those of the corresponding steps shown in FIG. In step S326, the processing circuit 430 records the coordinate-transformed point cloud data in the storage device 420 as map data.
  • the robot cleaner 400 can automatically move and clean while updating the map.
  • information on the measurement points of moving objects is removed from the point cloud data, and then the point cloud data and the map are compared, so self-position estimation and map updating can be performed easily and accurately. can be done.
  • the processing circuit 430 generates map data based on the point cloud data from which the information of the measurement points on the moving object is excluded. good. For example, similarly to the point cloud data shown in FIG. 12A, the processing circuit 430 generates map data with flags that can determine whether each measurement point is on a moving object or on a stationary object. You may By generating such map data, it becomes possible to measure the measurement points determined to be the measurement points on the moving object, based on the flag information, in the next measurement.
  • FIG. 20 is a flow chart showing an example of the operation of focusing on measuring measurement points on a moving object. This flowchart shows an example of the detailed operation of step S302 in FIG. Step S302 in this example includes steps S331 to S335.
  • step S331 the processing circuit 430 acquires the previously created ready-made map from the storage device 420.
  • the map in this example includes flag information indicating that, if there is a measurement point whose velocity is greater than the threshold at the time of the previous measurement, that measurement point is on a moving object.
  • step S332 the processing circuit 430 determines whether the points on the map include points with flags. If points with flags are included, the process proceeds to step S333, and if points with flags are not included, the process proceeds to step S334.
  • step S333 the processing circuit 430 instructs the sensor 450 to focus on measuring the area near the flagged measurement point.
  • the sensor 450 is instructed to measure the flagged measurement point twice or more, or to measure the vicinity of the flagged measurement point at a spatial density higher than usual.
  • normal measurement is performed for the measurement points to which the flag is not attached.
  • step S334 the processing circuit 430 performs normal measurement.
  • the normal measurement can be, for example, a measurement performed by scanning a region to be measured with a laser beam at predetermined angles at preset time intervals.
  • the processing circuit 430 acquires the measurement data generated by the sensor 450.
  • the measurement data of the area that is estimated to be a moving object is obtained with high density temporally or spatially. As a result, it is possible to compensate for the information of points in directions that have not been determined due to the presence of moving objects on existing maps, and to generate a more accurate map.
  • the operation shown in FIG. 20 may be applied not only to the robot cleaner 400 but also to the above-described self-driving vehicle 300.
  • the operation shown in FIG. 20 may be performed.
  • the processing circuit 330 acquires a ready-made map from the server 500 or a map generated based on the map acquired during the previous measurement and the point cloud data.
  • the map acquired here may include information on measurement points that have been determined as points on a moving object in previous measurements and have been flagged. By preferentially measuring the flagged measurement points, it is possible to compensate for information on points that have not been measured due to the presence of moving objects.
  • the data processing device is mounted on a mobile object that moves autonomously, but the present disclosure is not limited to such a form.
  • the data processing device may be mounted on a fixed object such as, for example, a utility pole placed near the road.
  • the data processor may also be a computer such as a server that communicates with mobiles equipped with sensors such as LiDAR or radar.
  • the data processing device receives the measurement data generated by the sensor of the moving body via the network, and based on the measurement data, determines the measurement points on the stationary object and the measurement points on the moving object, and determines Point cloud data and map data reflecting the results can be generated.
  • the data processing device in the above embodiment processes the measurement data generated by the sensor in real time to generate point cloud data and map data.
  • the data processing device is not limited to such a form, and the data processing device may acquire the measurement data accumulated by the sensor in the storage device after the fact to generate the point cloud data and the map data.
  • the technology of the present disclosure can be applied to applications that require the creation or updating of precise maps, such as self-position estimation of autonomously moving mobile bodies or road infrastructure inspections.
  • REFERENCE SIGNS LIST 100 data processing device 120 storage device 130 processing circuit 200 sensor 210 light source 211 drive circuit 212 light emitting element 220 interference optical system 221 splitter 222 mirror 223 collimator 230 photodetector 240 processing circuit 250 timing circuit 300 self-driving vehicle 310, 320 storage device 330 processing circuit 340 communication device 350 LiDAR sensor 360 IMU 370 GNSS receiver 380 control circuit 390 drive device 420 storage device 430 processing circuit 450 LiDAR sensor 460 IMU 480 control circuit 490 drive device 400 robot cleaner 420 storage device 430 processing circuit 450 LiDAR sensor 460 IMU 480 control circuit 490 drive device 500 map distribution server 520 storage device 530 processing device 540 communication device

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Optical Radar Systems And Details Thereof (AREA)

Abstract

データ処理装置は、空間中の複数の計測点についての位置情報および速度情報を含む計測データを記憶する記憶装置と、処理回路と、を備える。前記処理回路は、前記記憶装置から前記計測データを取得し、前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別し、前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成する。

Description

データ処理装置およびデータ処理方法
 本開示は、データ処理装置およびデータ処理方法に関する。
 自動搬送ロボット(Autonomous Mobile Robot:AMRまたはAutomated Guided Vehicle:AGV)、自動運転車、および自律飛行ドローンなどの、自律的に移動することが可能な移動体の開発が近年盛んに進められている。これらの移動体は、例えばLiDAR(Light Detection and Ranging)またはイメージセンサなどのセンサを用いて自己位置推定を行いながら自律的に移動する。自己位置推定は、センサから出力されたセンサデータと、移動体の周辺環境の地図との照合(マッチング)によって行われ得る。地図は、例えば、SLAM(Simultaneous Localization and Mapping)などの技術を利用して生成される。SLAMを利用して自動で移動する移動体は、移動中にセンサから逐次出力されたセンサデータに基づいて地図を生成または更新しながら移動する。そのような移動体は、センサを用いて検出されたランドマークと呼ばれる固定点と、地図上の対応する点とを照合することにより、自己位置推定および地図の更新を行いながら自動で移動することができる。
 上記のような移動体において、移動体の周辺の環境内に移動物体(例えば歩行者または走行する車両等)が存在すると、センサデータと地図との照合ができなかったり、移動物体を誤ってランドマークとしてしまったりする場合がある。その場合、自己位置推定および地図作成が失敗する。
 そのような問題を解決するための技術の例が、特許文献1に開示されている。特許文献1に開示された装置は、カメラが取得した時系列画像における特徴点をフレーム間で比較することによって画像中の移動物体を検出し、移動物体の情報を除去した地図を生成する。これにより、移動物体の情報を含まない地図を生成することができる。
 一方、FMCW(Frequency Modulated Continues Wave)技術を利用したFMCW-LiDARの開発が進められている。FMCW-LiDARは、距離に関して広いダイナミックレンジと高い分解能を両立し、耐振動性が高く、センサと移動物体との相対速度を計測することができる。このため、自動運転のためのセンサとしての利用が期待されている。FMCW-LiDARの例が、例えば非特許文献1に開示されている。
特開2016-126662号公報
Christopher V. Poulton, et al., "Frequency-modulated Continuous-wave LIDAR Module in Silicon Photonics", OFC2016, W4E.3, (2016).
 本開示は、移動体の自己位置推定または地図生成等に利用される点群データを、従来よりも効率的に生成するための技術を提供する。
 本開示の一態様に係るデータ処理装置は、空間中の複数の計測点についての位置情報および速度情報を含む計測データを記憶する記憶装置と、処理回路と、を備える。前記処理回路は、前記記憶装置から前記計測データを取得し、前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別し、前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成する。
 本開示の包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な記録ディスク等の記録媒体によって実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意の組み合わせによって実現されてもよい。コンピュータ読み取り可能な記録媒体は、揮発性の記録媒体を含んでいてもよいし、CD-ROM(Compact Disc‐Read Only Memory)等の不揮発性の記録媒体を含んでいてもよい。装置は、1つ以上の装置で構成されてもよい。装置が2つ以上の装置で構成される場合、当該2つ以上の装置は、1つの機器内に配置されてもよく、分離した2つ以上の機器内に分かれて配置されてもよい。本明細書および特許請求の範囲では、「装置」とは、1つの装置を意味し得るだけでなく、複数の装置からなるシステムも意味し得る。
 本開示の実施形態によれば、移動体の自己位置推定または地図生成等に利用される点群データを、従来よりも効率的に生成することができる。
図1は、本開示の例示的な実施形態におけるシステムの構成例を示すブロック図である。 図2は、センサの構成例を示すブロック図である。 図3は、センサの他の構成例を示すブロック図である。 図4は、センサのさらに他の構成例を示すブロック図である。 図5Aは、センサと対象物との距離が一定の場合における参照光、反射光、および干渉光の周波数の時間変化の例を示す図である。 図5Bは、センサと対象物との相対速度が一定である場合における参照光、反射光、および干渉光の周波数の時間変化の例を示す図である。 図6は、センサに対する対象物の相対速度を説明するための図である。 図7は、処理回路が実行する動作の一例を示すフローチャートである。 図8Aは、ステップS101において取得される計測データの形式の一例を示す図である。 図8Bは、ステップS102において取得されるセンサの位置情報および速度情報を含むデータの形式の一例を示す図である。 図8Cは、ステップS103において生成される4次元点群データのデータ形式の一例を示す図である。 図8Dは、3次元点群データのデータ形式の一例を示す図である。 図9は、センサの移動速度Vと、対象物の移動速度vと、計測速度vcとの関係の例を示す図である。 図10は、処理回路の動作の変形例を示すフローチャートである。 図11は、近傍の点を複数回計測する場合の動作の一例を示すフローチャートである。 図12Aは、速度検出点であることを示すフラグの情報を含む点群データの形式の一例を示す図である。 図12Bは、フラグの情報を含む計測データの形式の一例を示す図である。 図13は、自動運転車両の構成例を示すブロック図である。 図14は、自動運転車両の処理回路によって実行される動作の例を示すフローチャートである。 図15は、ステップS207における自己位置推定の処理の例を示すフローチャートである。 図16は、ロボット掃除機の構成例を示すブロック図である。 図17は、ロボット掃除機における処理回路によって実行される動作の例を示すフローチャートである。 図18は、ステップS306の動作の詳細な例を示すフローチャートである。 図19は、ステップS307の動作の詳細な例を示すフローチャートである。 図20は、ステップS301の動作の詳細な例を示すフローチャートである。
 以下で説明される実施形態は、いずれも包括的または具体的な例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、およびステップの順序等は、一例であり、本開示の技術を限定する趣旨ではない。以下の実施形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一または類似の構成要素には同一の符号を付している。重複する説明は省略または簡略化されることがある。
 本開示において、回路、ユニット、装置、部材または部の全部または一部、またはブロック図における機能ブロックの全部または一部は、例えば、半導体装置、半導体集積回路(IC)、またはLSI(large scale integration)を含む1つまたは複数の電子回路によって実行され得る。LSIまたはICは、1つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、1つのチップに集積されてもよい。ここでは、LSIまたはICと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(very large scale integration)、もしくはULSI(ultra large scale integration)と呼ばれるものであってもよい。LSIの製造後にプログラムされる、Field Programmable Gate Array(FPGA)、またはLSI内部の接合関係の再構成またはLSI内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
 さらに、回路、ユニット、装置、部材または部の全部または一部の機能または操作は、ソフトウェア処理によって実行することが可能である。その場合、ソフトウェアは1つまたは複数のROM、光学ディスク、ハードディスクドライブなどの非一時的記録媒体に記録され、ソフトウェアが処理装置(processor)によって実行されたときに、そのソフトウェアで特定された機能が処理装置および周辺装置によって実行される。システムまたは装置は、ソフトウェアが記録されている1つまたは複数の非一時的記録媒体、処理装置、および必要とされるハードウェアデバイス、例えばインターフェースを備えていてもよい。
 (本開示の基礎となった知見)
 本開示の実施形態を説明する前に、本開示の基礎となった知見を説明する。
 特許文献1に開示された技術によれば、カメラが取得した時系列画像から移動物体の情報を除去することにより、移動物体の情報を含まない地図を生成することができる。このように、自己位置推定に利用される地図データから移動物体の情報を除去することは非常に有効である。しかし、特許文献1のようにカメラを用いた方法には、以下の課題がある。
 第1の課題は、画像から特徴点を抽出し、フレーム間で特徴点のオプティカルフロー(すなわち移動ベクトル)を算出するための信号処理コストが高く、処理時間が長くなることである。高い信号処理能力が必要となる上に、自動運転時の自己位置推定のように短時間での処理が求められるシーンにおいては、処理時間の長さは致命的になり得る。
 第2の課題は、特徴点が抽出できないシーンがあることである。例えば、大きなトラックの側面など、特に距離が近い場合には画像からの特徴点抽出が困難であり、それが移動物体であるかどうかを判定することができない。
 第3の課題は、カメラから得られる情報の不確かさである。屋内であれば照明環境、屋外であれば太陽の当たり方または天気など、カメラで得られる情報は周囲の環境の明るさなどの影響を非常に受けやすい。このため、たとえ同じシーンでも安定した情報を得ることが難しい。
 本発明者らは、上記の考察に基づき、以下に説明する本開示の実施形態の構成に想到した。以下、本開示の実施形態の概要を説明する。
 本開示の例示的な実施形態によるデータ処理装置は、記憶装置と、処理回路とを備える。記憶装置は、空間中の複数の計測点についての位置情報および速度情報を含む計測データを記憶する。処理回路は、前記記憶装置から前記計測データを取得し、前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別し、前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成する。
 上記の構成によれば、計測データは、複数の計測点についての位置情報に加え、速度情報を含む。このため、処理回路は、速度情報に基づいて、複数の計測点から静止物体上の計測点を判別することができる。処理回路は、判別の結果に基づいて、静止物体上の計測点の位置情報を含む点群データを生成する。例えば、処理回路は、移動物体の情報が除去された点群データ、または、移動物体と静止物体とを区別するためのフラグ等の情報を含む点群データを生成することができる。これにより、自己位置推定、または地図の生成もしくは更新に利用され得る点群データを効率的に生成することができる。
 空間中の複数の計測点についての位置情報および速度情報を含む計測データは、例えば、FMCW方式のLiDARセンサまたはレーダなどの、計測点の速度情報を取得可能なセンサによって生成され得る。そのようなセンサは、センサから計測点までの距離と、センサに向かう方向における計測点の速度成分とを計測することができる。計測データにおける計測点の「位置情報」は、計測点の位置を直接的に表す座標値などの情報に限定されない。計測点の位置情報は、センサから計測点までの距離および方向を示す情報のように、計測点の位置を算出するために利用される情報であってもよい。本開示における計測点の「速度情報」は、その計測点の絶対的な速度を示す情報に限らず、当該速度に関連する情報であってもよい。例えば、計測点の速度情報は、センサと当該計測点とを結ぶ直線に沿った方向における当該計測点の速度成分を示す情報であってもよい。あるいは、計測点の速度情報は、当該計測点の計測された速度の大きさが、閾値よりも大きいか否かを示す情報であってもよい。計測データは、センサから出力されたセンサデータそのものに限らず、センサデータに基づいて生成されたデータであってもよい。例えば、処理回路または他の装置が、センサデータに基づいて生成したデータを計測データとしてもよい。
 上記の構成によれば、LiDARセンサまたはレーダなどの、自ら光または電波などの電磁波を発して距離を計測するアクティブデバイスを利用することにより、安定した計測データを取得することができる。さらに、特許文献1に開示されているような、時系列画像から抽出した特徴点のオプティカルフローを算出する処理を行うことなく、計測点ごとに、静止物体上の点であるか否かを高速に判別し、判別結果を反映した点群データを生成することができる。
 前記処理回路は、前記計測データから、判別した静止物体上の計測点以外の計測点に関する情報を除外することにより、前記点群データを生成してもよい。あるいは、前記処理回路は、前記計測データにおける前記複数の計測点のうち、判別した前記静止物体上の計測点に、静止物体であることを示すフラグを付与する処理により、前記点群データを生成してもよい。反対に、前記処理回路は、前記計測データにおける前記複数の計測点のうち、判別した前記静止物体上の計測点を除く計測点に、移動物体であることを示すフラグを付与する処理により、前記点群データを生成してもよい。そのような方法で点群データを生成することにより、点群データに基づいて、移動物体に関する情報が除去された地図データを容易に生成することができる。結果として、移動物体に影響されずに、点群データに基づく自己位置推定または地図の生成もしくは更新を行うことが可能になる。
 前記計測データにおける前記複数の計測点についての位置情報は、前記複数の計測点の各々の3次元座標値を含んでいてもよい。その場合、前記点群データは、前記静止物体上の各計測点の前記3次元座標値を含む3次元点群データであり得る。あるいは、前記計測データにおける前記複数の計測点についての位置情報は、前記複数の計測点の各々の2次元座標値を含んでいてもよい。その場合、前記点群データは、前記静止物体上の各計測点の前記2次元座標値を含む2次元点群データであり得る。このように、計測データおよび点群データにおける各計測点の位置情報は、3次元座標で表現されてもよいし、2次元座標で表現されてもよい。
 前記記憶装置は、複数のフレームの各々についての前記計測データを記憶してもよい。各フレームについての前記計測データは、前記空間中の複数の計測点についての前記位置情報および前記速度情報を含み得る。本開示において、「フレーム」とは、センサから出力されるひと纏まりのデータを意味する。センサは、例えば、各点の計測時刻、位置情報、および速度情報を含む計測データを、例えば一定のフレームレートで繰り返し出力してもよい。センサは、1フレーム分の計測データに1つの時刻を対応付けて出力してもよいし、計測点ごとに1つの時刻を対応付けて出力してもよい。
 前記計測データにおける前記複数の計測点についての前記速度情報は、異なる計測角度で計測することによって取得された第1速度情報および第2速度情報を含んでいてもよい。前記処理回路は、前記第1速度情報および前記第2速度情報に基づいて、前記静止物体上の計測点を判別してもよい。計測点によっては、センサと平行に移動している場合があり、その場合、FMCW方式のセンサは計測点の速度を計測できない。そのような場合を考慮し、センサは、同一または近くの計測点を異なる計測角度で2回以上計測することによって得られる2つ以上の速度情報を計測データに含めて出力してもよい。これにより、移動物体上の計測点と静止物体上の計測点とをより高い精度で判別することができる。
 前記計測データにおいて、前記速度情報を有する計測点の数は、前記位置情報を有する計測点の数と同一であってもよいし、異なっていてもよい。計測点によっては、位置情報のみが得られ、速度情報がエラーによって得られないことがある。その場合、速度情報を有する計測点の数は、位置情報を有する計測点の数よりも少なくなる。
 上記のように、前記計測データは、FMCWを利用したセンサから出力されたセンサデータ、または前記センサデータに基づいて生成されたデータであり得る。FMCWを利用することにより、計測点の速度情報を取得できる。このため、処理回路は、当該速度情報に基づいて、静止物体上の計測点と移動物体上の計測点との判別を短時間で実行することができる。
 センサは、例えばFMCW方式のLiDARセンサであり得る。その場合、前記複数の計測点についての前記速度情報は、前記複数の計測点の各々の前記センサに対する相対速度の、前記センサと前記計測点とを結ぶ直線に沿った方向の速度成分を示す情報を含み得る。前記処理回路は、前記複数の計測点のうち、前記速度成分の大きさが閾値以下である計測点を前記静止物体上の計測点として判別してもよい。閾値は、例えばゼロ(0)またはゼロに近い正の値に設定され得る。
 あるいは、前記複数の計測点についての前記速度情報は、前記複数の計測点の各々の、前記複数の計測点の各々の前記センサに対する相対速度の、前記センサと前記計測点とを結ぶ直線に沿った方向の速度成分の大きさが閾値よりも大きいか否かを示すフラグを含んでいてもよい。前記処理回路は、前記フラグに基づいて、前記複数の計測点から前記静止物体上の計測点を判別してもよい。
 前記処理回路は、前記センサによってセンシングされる環境の地図データと、前記点群データとを照合することによって前記地図データの更新の要否を判断し、更新が必要な場合に前記点群データに基づいて前記地図データを更新してもよい。これにより、例えばセンサが搭載された移動体が移動しながら、周辺環境の地図データを逐次更新することができる。
 前記処理回路は、前記センサによってセンシングされる環境の地図データを取得し、前記点群データと前記地図データとを照合することによって前記センサの位置および/または向きを推定してもよい。これにより、例えばセンサが搭載された移動体の自己位置推定が可能になり、自律的に移動する移動体を実現することができる。
 前記処理回路は、前記複数の計測点から前記移動物体上の計測点を判別した後、前記センサに、前記移動物体上の計測点を再計測させてもよい。これにより、移動物体に関する情報をより詳細に取得することができるため、例えば、当該移動物を回避する必要があるか等の判断をより効果的に行うことができる。
 本開示の他の実施形態によるシステムは、上記のいずれかに記載のデータ処理装置と、前記計測データ、または前記計測データを生成するためのデータを生成するセンサとを備える。前記センサは、FMCW方式のLiDARセンサまたはレーダーであり得る。
 本開示のさらに他の実施形態によるデータ処理方法は、コンピュータによって実行され、空間中の複数の計測点についての位置情報および速度情報を含む計測データを取得することと、前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別することと、前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成することとを含む。
 本開示のさらに他の実施形態によるコンピュータプログラムは、コンピュータ読み取り可能な非一時的記憶媒体に格納され、コンピュータに、空間中の複数の計測点についての位置情報および速度情報を含む計測データを取得することと、前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別することと、前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成することとを実行させる。
 以下、添付の図面を参照しながら、本開示の例示的な実施形態をより詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明および実質的に同一の構成に対する重複する説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。
 なお、発明者らは当業者が本開示を十分に理解するために添付図面および以下の説明を提供するものであって、これらによって、特許請求の範囲に記載の主題を限定することを意図するものではない。
 (実施形態)
 図1は、本開示の例示的な実施形態におけるシステムの構成例を示すブロック図である。このシステムは、センサ200と、データ処理装置100とを備える。データ処理装置100は、記憶装置120と、処理回路130とを備える。
 センサ200は、複数の計測点の位置情報および速度情報を取得可能な計測装置である。センサ200は、例えばFMCW技術を利用して測距および速度計測を行うLiDARセンサであり得る。センサ200は、LiDARセンサに限らず、レーダなどの他の種類のセンサでもよい。センサ200は、空間中の複数の計測点についての位置情報および速度情報を含む計測データを生成し、当該計測データを記憶装置120に蓄積する。以下の説明では、特に断らない限り、センサ200がFMCW方式のLiDARセンサ(以下、「FMCW-LiDAR」とも称する。)であるものとする。
 記憶装置120は、例えばSRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)などの半導体メモリであり得る。記憶装置120は、磁気記憶装置または光学記憶装置などの、他の種類の記憶装置でもよい。記憶装置120は、センサ200から出力された計測データを記憶する。記憶装置120は、さらに、処理回路130によって実行されるコンピュータプログラムを記憶する。
 処理回路130は、例えばCPU(Central Processing Unit)またはGPU(Graphics Processing Unit)などのプロセッサを含む電子回路である。処理回路130は、複数のプロセッサの集合体であってもよい。処理回路130は、記憶装置120に格納されたコンピュータプログラムを実行することによって動作する。処理回路130は、以下の処理を行う。
・データ入力:記憶装置120から計測データを取得する。
・静止物体判別:計測データにおける各計測点の速度情報に基づいて、複数の計測点から静止物体上の計測点を判別する。
・点群データ生成:判別した静止物体上の各計測点の位置情報を含む点群データを生成する。
・データ出力:生成した点群データを出力する。
 上記の処理により、例えば移動体の自己位置推定、または地図データ(以下、単に「地図」と称することがある。)の生成もしくは更新に利用される点群データを、従来よりも効率的に短い時間でより正確に生成することができる。速度情報を取得できないセンサを用いて点群データを生成した場合、一時的に通過する移動物体上の計測点の情報が点群データに含まれることになる。その場合、自己位置推定、または地図の生成もしくは更新を正確に行うことができないことが想定される。本実施形態においては、速度情報を取得可能なセンサ200を用いることにより、この課題が解決される。
 以下、本実施形態におけるシステムの構成および動作をより詳細に説明する。
 [1.センサの構成例]
 図2は、センサ200の構成例を示すブロック図である。図2において、太い矢印は光の流れを表し、細い矢印は信号またはデータの流れを表す。図2には、距離および速度の計測対象である対象物と、センサ200に接続される記憶装置120も示されている。対象物は、例えば、自動車または二輪車などの移動体であり得る。
 図2に示すセンサ200は、光源210と、干渉光学系220と、光検出器230と、処理回路240と、計時回路250とを備える。光源210は、処理回路240から出力された制御信号に応答して、出射する光の周波数あるいは波長を変化させることができる。干渉光学系220は、光源210からの出射光を参照光と出力光とに分離し、出力光が対象物によって反射されて生じた反射光と参照光とを干渉させて干渉光を生成する。干渉光は、光検出器230に入射する。
 光検出器230は、干渉光を受け、干渉光の強度に応じた電気信号を生成して出力する。この電気信号を「検出信号」と呼ぶ。光検出器230は、1つ以上の受光素子を備える。受光素子は、例えばフォトダイオードなどの光電変換素子を含む。光検出器230は、例えばイメージセンサのような、複数の受光素子が2次元的に配列されたセンサであってもよい。
 処理回路240は、光源210を制御し、光検出器230から出力された検出信号に基づく処理を行う電子回路である。処理回路240は、光源210を制御する制御回路と、検出信号に基づく信号処理を行う信号処理回路とを含み得る。処理回路240は、1つの回路として構成されていてもよいし、分離した複数の回路の集合体であってもよい。処理回路240は、光源210に制御信号を送出する。制御信号は、光源210に出射光の周波数を所定の範囲内で周期的に変化させる。処理回路240は、さらに、光検出器230から出力された検出信号に基づいて、各計測点までの距離および各計測点の速度を計算する。処理回路240は、計時回路250から出力された時刻情報と、計算した距離および速度の情報とを関連付けて計測データとして出力する。計時回路250は、例えばリアルタイムクロック(RTC)などの、時計の機能を備える回路である。
 この例における光源210は、駆動回路211と、発光素子212とを備える。駆動回路211は、処理回路240から出力される制御信号を受け、制御信号に応じた駆動電流信号を生成して発光素子212に入力する。発光素子212は、例えば半導体レーザ素子などの、高いコヒーレント性を持つレーザ光を出射する素子であり得る。発光素子212は、駆動電流信号に応答して、周波数が変調されたレーザ光を出射する。
 発光素子212から出射されるレーザ光の周波数は、一定の周期で変調される。周波数の変調周期は、例えば1マイクロ秒(μs)以上10ミリ秒(ms)以下であり得る。周波数の変調振幅は、例えば100MHz以上1THz以下であり得る。レーザ光の波長は、例えば700nm以上2000nm以下の近赤外の波長域に含まれ得る。太陽光において、近赤外光の光量は可視光の光量よりも少ない。このため、レーザ光として近赤外光を使用することにより、太陽光の影響を低減することができる。用途によっては、レーザ光の波長は、400nm以上700nm以下の可視光の波長域、または紫外光の波長域に含まれていてもよい。
 処理回路240から駆動回路211に入力される制御信号は、所定の周期および所定の振幅で電圧が変動する信号である。制御信号の電圧は、例えば三角波状またはノコギリ波状に変調され得る。三角波またはノコギリ波のように、電圧が線形的な変化を繰り返す制御信号により、発光素子212から出射される光の周波数を線形に近い形態で掃引することができる。
 図2に示す例における干渉光学系220は、分岐器221、ミラー222、およびコリメータ223を含む。分岐器221は、光源210の発光素子212から出射されたレーザ光を参照光と出力光とに分け、対象物からの反射光と参照光とを結合させて干渉光を生成する。ミラー222は、参照光を反射して分岐器221に戻す。コリメータ223は、コリメートレンズを含み、出力光を平行に近い広がり角にして対象物に照射する。
 干渉光学系220は、図2に示す構成に限定されず、例えばファイバ光学系であってもよい。その場合、分岐器221としてファイバカップラが用いられ得る。参照光は必ずしもミラー222で反射される必要はなく、例えば光ファイバの引き回しで参照光を分岐器221に戻してもよい。
 図3は、干渉光学系220がファイバ光学系であるセンサ200の構成例を示すブロック図である。図3に示す例では、干渉光学系220は、第1ファイバスプリッタ225と、第2ファイバスプリッタ226と、光サーキュレータ227とを含む。第1ファイバスプリッタ225は、光源210から出射されたレーザ光20を参照光21と出力光22とに分離する。第1ファイバスプリッタ225は、参照光21を第2ファイバスプリッタ226に入射させ、出力光22を光サーキュレータ227に入射させる。光サーキュレータ227は、出力光22をコリメータ223に入射させる。光サーキュレータ227はまた、対象物を出力光22で照射して生じた反射光23を第2ファイバスプリッタ226に入射させる。第2ファイバスプリッタ226は、参照光21と反射光23との干渉光24を光検出器230に入射させる。コリメータ223は、出力光22のビーム形状を整形し、出力光22を対象物に向けて出射する。このような構成によっても、図2に示す構成と同様に、対象物の測距および速度計測が可能である。
 センサ200は、出射光の方向を変化させる光偏向器などのスキャン機構をさらに備えていてもよい。図4は、光偏向器270を備えるセンサ200の一例を示すブロック図である。光偏向器270は、例えばMEMS(Micro Electro Mechanical System)ミラーまたはガルバノミラーを含み得る。光偏向器270は、処理回路240からの指令に従ってミラーの角度を変化させることにより、出力光22の出射方向を変化させることができる。これにより、ビームスキャンによって広範囲の測距を実現することができる。
 図4に示す例では、図3に示す構成に光偏向器270が追加されているが、図2に示す構成に光偏向器270が追加された構成を採用してもよい。光偏向器270は、上記の構成に限定されず、例えば、国際公開第2019/230720号に記載されているような、光フェーズドアレイおよびスローライト導波路を用いたビームスキャンデバイスであってもよい。
 [2.計測データの例]
 次に、本実施形態において使用されるFMCW-LiDARによる測距および速度計測について説明する。FMCW-LiDAR方式による測距および速度計測は、周波数変調された参照光と反射光との干渉によって生じる干渉光の周波数に基づいて行われる。
 図5Aは、センサ200と対象物との距離が一定の場合(例えば、両者が静止している場合)における参照光、反射光、および干渉光の周波数の時間変化の例を示している。ここでは、光源210からの出射光の周波数fが三角波状に変化し、周波数が増加する期間と周波数が減少する期間における単位時間あたりの周波数の変化率が同一である場合の例を説明する。以下の説明において、周波数が増加する期間を「アップチャープ期間」と呼び、周波数が時間の経過とともに減少する期間を「ダウンチャープ期間」と呼ぶ。図5Aにおいて、点線は参照光を表し、破線は反射光を表し、太い実線は干渉光を表す。参照光に対して対象物からの反射光は、距離に応じた時間遅れを伴う。このため、反射光の周波数と、参照光の周波数との間には、周波数変調の折り返し時点の直後を除き、距離に応じた一定の差が生じる。干渉光は、参照光と反射光との周波数差に相当する周波数を有する。よって、周波数変調の折り返し時点の直後を除き、アップチャープ期間における干渉光の周波数fupとダウンチャープ期間における干渉光の周波数fdownは等しい。光検出器230は、干渉光の強度を示す検出信号を出力する。当該検出信号はビート信号と呼ばれ、ビート信号の周波数はビート周波数と呼ばれる。ビート周波数は、参照光と反射光の周波数差に等しい。この周波数差は、センサ200から対象物までの距離に依存する。よって、ビート周波数に基づき、センサ200から対象物までの距離を算出することができる。
 ここで、光速をc、出射光の変調周波数をfFMCW、出射光の周波数変調の幅(すなわち最高周波数と最低周波数との差)をΔf、ビート周波数をf(=fup=fdown)、センサ200から対象物までの距離をdとする。変調周波数fFMCWは、出射光の周波数変調の周期の逆数である。距離dは、以下の式(1)に基づいて計算することができる。
   d=c×f/(Δf×fFMCW)×(1/4)  (1)
 図5Bは、センサ200および対象物の少なくとも一方が移動しており、センサ200と対象物との相対速度が一定である場合における参照光、反射光、および干渉光の周波数の時間変化の例を示している。図5Bの例では、センサ200に対して対象物が一定の速度で近づいている。参照光と対象物からの反射光との間には、ドップラー効果により、周波数にずれが生じる。対象物が近づく場合、反射光の周波数は、対象物が静止している場合と比較して増加する。反射光の周波数がシフトする量は、センサ200に対する対象物の相対速度の、センサ200と計測点とを結ぶ直線に沿った方向の成分の大きさに依存する。この場合のビート周波数はアップチャープ期間とダウンチャープ期間とで異なる。これらのビート周波数の差に基づいて対象物の速度を算出することができる。図5Bの例において、ダウンチャープ期間におけるビート周波数fdownは、アップチャープ期間におけるビート周波数fupよりも高い。反対に、対象物がセンサ200から遠ざかる場合においては、反射光の周波数は、対象物が静止している場合と比較して減少する。その場合、ダウンチャープ期間におけるビート周波数fdownは、アップチャープ期間におけるビート周波数fupよりも低くなる。その場合も、これらのビート周波数の差に基づいて対象物の速度を算出することができる。
 ここで、センサ200に対する対象物の相対速度の、センサ200と計測点とを結ぶ直線に沿った方向の成分をv、出射光の波長をλ、ドップラー効果による周波数のシフト量をfとする。周波数のシフト量fは、f=(fdown-fup)/2で表される。この場合、速度成分vは、以下の式に基づいて計算することができる。
   v=fλ/2=(fdown-fup)λ/4  (2)
 vが正である場合、対象物がセンサ200に近付く方向に移動していることを表す。反対に、vが負である場合、対象物がセンサ200から遠ざかる方向に移動していることを表す。この例とは反対に、対象物がセンサ200に近付く方向に移動している場合にvが負、対象物がセンサ200から遠ざかる方向に移動している場合にvが正になるように速度成分vを定義してもよい。
 対象物がセンサ200に対して移動している場合、距離dは、以下の式(3)に基づいて計算することができる。
   d=c×((fup+fdown)/2)/(Δf×fFMCW)×(1/4)  (3)
 このように、処理回路240は、検出信号に基づく演算により、センサ200から計測点までの距離と、センサ200に対する計測点の相対速度の、センサ200と計測点とを結ぶ直線に沿った方向の成分を求めることができる。
 処理回路240は、上記のビート周波数fupおよびfdownを決定するにあたり、例えば以下の処理を行う。処理回路240は、光検出器230から出力された検出信号に対して高速フーリエ変換を行うことにより、周波数ごとの信号強度を示すパワースペクトルを逐次算出する。処理回路240は、アップチャープにおけるパワースペクトルから、予め定められた閾値を超える信号強度を有するピーク周波数を、ビート周波数fupとして決定する。同様に、処理回路240は、ダウンチャープにおけるパワースペクトルから、閾値を超える信号強度を有するピーク周波数を、ビート周波数fdownとして決定する。なお、処理回路240は、アップチャープとダウンチャープの少なくとも一方において、予め定められた閾値を超えるピークがない場合、速度を計算せず、エラーとして処理してもよい。
 図6は、センサ200に対する対象物の相対速度を説明するための図である。図6において、センサ200の位置を原点(0,0,0)とする極座標系において、対象物における計測点30の位置が座標(r、θ、φ)で示されている。センサ200に対する計測点30の実際の相対速度ベクトルをvとする。FMCW方式のセンサ200によって計測される速度は、実際の相対速度ベクトルvではなく、相対速度ベクトルvを、センサ200と計測点30とを結ぶ直線上に射影した成分vである。図6に示すような相対速度が保たれている場合、ドップラー効果が発生し、参照光の周波数と反射光の周波数との関係は、図5Bに示すような関係となる。参照光の周波数に対して、反射光の周波数は、速度成分vに応じてシフトする。このため、アップチャープ期間とダウンチャープ期間とで周波数差が発生する。この周波数差に基づいて、センサ200と計測点30との間の相対速度成分vを求めることができる。
 このように、FMCW方式のLiDARにおいて計測される相対速度は、センサ200と計測点30とを結ぶ直線上の速度成分である。そのため、計測点30の移動方向がセンサ200から見て当該直線に沿った方向とは異なる場合であっても、計測点30の速度ベクトルのうち、当該直線に沿った方向の成分のみが相対速度として計測される。
 [3.データ処理装置の動作]
 次に、図7を参照しながら、データ処理装置100の動作をより詳細に説明する。ここでは、処理回路130が3次元(3D)の点群データを生成する場合の例を説明する。処理回路130は、3次元の点群データに限らず、例えば2次元(2D)の点群データを生成してもよい。
 図7は、処理回路130が実行する動作の一例を示すフローチャートである。この例において、センサ200は、自動で移動する移動体に搭載されている。ここでは、移動体が自動運転車であるものとして説明する。移動体は、自動搬送ロボットまたは自律飛行ドローン等の、他の種類の移動体であってもよい。センサ200は、移動体が移動している間、移動体の周辺環境をセンシングし、複数の計測点についての位置情報および速度情報を含む計測データを逐次生成して記憶装置120に蓄積する。処理回路130は、図7に示すステップS101からS105の動作を繰り返すことにより、移動体の周辺環境の地図を生成または更新する。当該地図は、移動体の自己位置推定または経路計画に利用され得る。以下、各ステップの動作を説明する。
 ステップS101において、処理回路130は、計測データを記憶装置120から取得する。計測データは、一定の時間内にセンサ200によって計測された、空間中の複数の計測点についての距離および速度の情報を含む。センサ200は、例えば、当該一定の時間内に計測した複数の計測点の位置情報および速度情報を含む計測データを、1フレームの計測データとして生成して出力する動作を繰り返す。処理回路130は、例えばフレームごとに計測データを処理する。
 図8Aは、ステップS101において取得される計測データの形式の一例を示す図である。この例における計測データは、計測点ごとに、計測時刻、センサ200に対する計測点の方向、センサ200から計測点までの距離、および計測点の速度(以下、「計測速度」と称する。)の情報を含む。各計測点の方向は、例えば、センサ200から計測点への方向を示すベクトル、または仰角(もしくは俯角)および方位角の組み合わせによって表現され得る。センサ200から計測点までの方向および距離の情報から、センサ200に対する計測点の相対位置が特定される。この相対位置と、別途計測または推定されるセンサ200の位置とから、計測点の位置座標を計算することができる。本実施形態においては、各計測点の方向および距離の情報の組み合わせが、その計測点の「位置情報」に該当する。各計測点の計測速度は、センサ200に対する計測点の相対速度の、センサ200と当該計測点とを結ぶ直線に沿った方向における成分を示す。本実施形態においては、この計測速度が、計測点の「速度情報」に該当する。
 ここで、図9を参照しながら、計測点の実際の速度と、計測速度との関係を説明する。図9は、センサ200の移動速度Vと、対象物の移動速度vと、計測速度vとの関係の例を示す図である。図9に示す例において、センサ200の移動速度Vと、センサ200から対象物上の計測点30に向かって出射されるレーザ光線の方向とのなす角をΘとする。また、対象物の移動速度vと、光線の方向とのなす角をθとする。センサ200によって計測される計測点30の計測速度vは、以下の式(4)で表される。
   v=v・cosθ-V・cosΘ  (4)
 この例では、センサ200と計測点30とが遠ざかっている場合に計測速度vが正の値をとり、センサ200と計測点30とが近付いている場合に計測速度vが負の値をとる。この例とは反対に、センサ200と計測点30とが近付いている場合に計測速度vが正の値をとり、センサ200と計測点30とが遠ざかっている場合に計測速度vが負の値をとるようにセンサ200が構成されていてもよい。その場合には、計測速度vは、以下の式(5)で表される。
   v=V・cosΘ-v・cosθ  (5)
 再び図7を参照する。ステップS102において、処理回路130は、センサ200の位置情報および速度情報を取得する。センサ200の位置情報および速度情報は、例えば、移動体に搭載されたECU(Electronic Control Unit)などの車載コンピュータによって生成され得る。車載コンピュータは、移動体に搭載されたGNSS(Global Navigation Satellite System)受信機、IMU(Inertial Measurement Unit)、および速度計などの各種の装置から取得したデータに基づいて、移動体およびセンサ200の位置および速度を計算または推定することができる。センサ200の位置は、予め作成された地図と計測データに基づく点群データとのマッチングによって推定されてもよい。センサ200の速度は、速度計またはIMUに含まれる加速度センサもしくはジャイロスコープ等から出力されたデータに基づいて計測され得る。移動体が車両である場合、車軸センサによって計測された車輪の回転速度および車輪の径と、ステアリングの方向の情報とに基づいて、速度を計算してもよい。あるいは、センサ200などのFMCW-LiDARを用いて地面などの静止物を照射することによって速度を計測してもよい。センサ200の位置および速度は、記憶装置120に逐次記録される。処理回路130は、記憶装置120から、センサ200の位置情報および速度情報を取得する。なお、ステップS102の動作は、ステップS101よりも前に行われてもよいし、ステップS101と並行して行われてもよい。
 図8Bは、ステップS102において取得されるセンサ200の位置情報および速度情報を含むデータの形式の一例を示す図である。この例において、処理回路130は、各計測点の計測時刻におけるセンサ200の位置および速度の情報を記憶装置120から取得する。センサ200の位置情報は、例えば、地球に固定されたグローバル座標系で表現された3次元の位置座標値を含み得る。センサ200の速度情報は、グローバル座標系で表現された3次元の速度の値を含んでいてもよいし、速度の大きさの値のみを含んでいてもよい。速度情報が速度の大きさの値のみを含む場合、センサ200の位置情報は、センサ200の向きの情報も含み得る。言い換えれば、各時刻におけるセンサ200のポーズ(すなわち、位置および向き)と、速度の大きさとが記録されてもよい。
 ステップS103において、処理回路130は、各計測点の位置座標(3次元)と速度(1次元)とを算出して4次元(4D)の点群データを生成する。処理回路130は、計測データと、センサ200の位置情報および速度情報とに基づいて、各計測点の3次元位置座標と速度の値とを算出する。
 図8Cは、ステップS103において生成される4次元点群データのデータ形式の一例を示す図である。この例における4次元点群データは、各計測点の、グローバル座標系で表現された3次元の位置座標値と、速度の値とを含む。処理回路130は、センサ200の位置および向きの情報と、計測点の方向および距離の情報とに基づいて、グローバル座標系における各計測点の3次元位置座標値を計算する。処理回路130はまた、計測速度から、センサ200の移動速度による影響を除く演算により、4次元点群データにおける各計測点の速度を計算する。図9に示すように、センサ200と対象物とが遠ざかっている場合に計測速度vが正になるようにセンサ200が構成されている場合、4次元点群データにおける計測点の速度vは、以下の式で表される。
  v=(v+V・cosΘ)/cosθ
 しかしながら、θは未知であるため、処理回路130は、v+V・cosΘ(=v・cosθ)を、計測点の速度として計算する。図8Cには、一例として、3つ目の計測点の速度のみが0ではない値をもつ例が示されている。なお、上記の式(5)のように、センサ200と計測点30とが近付いている場合に計測速度vが正の値をとるようにセンサ200が構成されていてもよい。その場合には、処理回路130は、例えばv-V・cosΘ(=-v・cosθ)を、計測点の速度として計算してもよい。
 処理回路130は、上記の演算を各計測点について繰り返すことにより、各計測点の3次元座標値に速度の値が加わった4次元点群データを生成する。
 ステップS104において、処理回路130は、4次元点群データから、速度の大きさが0に近い所定の閾値を超える計測点の情報を除外することにより、3次元点群データを生成する。4次元点群データにおいて速度の大きさが閾値を超える計測点は、移動物体上の計測点であると考えられる。このため、処理回路130は、そのような計測点の情報を4次元点群データから除外した3次元点群データを生成する。図8Dは、3次元点群データの一例を示している。この例では、3番目の計測点のみ、閾値を超える速度の値をもつため、その計測点の情報が除外されて3次元点群データが生成されている。
 ステップS105において、処理回路130は、ステップS104で生成した3次元点群データに基づいて、移動体の自動走行のための地図を生成または更新する。処理回路130は、異なるタイミングで取得された計測データに基づく点群データを部分的にマッチングして繋ぎ合わせることにより、地図を生成または更新することができる。地図の生成または更新には、例えばSLAMアルゴリズムが用いられ得る。
 以上の動作を繰り返すことにより、処理回路130は、移動物体上の計測点の情報を除いた3次元点群データおよび地図データを生成することができる。本実施形態によれば、センサ200が計測点の速度情報を取得できるため、処理回路130は、その速度情報に基づいて、計測点が静止物体上の計測点であるか移動物体上の計測点であるかを素早く判定することができる。これにより、カメラによって取得された時系列画像のフレーム間比較によってオプティカルフローを検出して移動物体を検出する従来技術と比較して、処理に要する時間を短縮することができる。さらに、FMCW-LiDARをセンサ200として用いることにより、特徴点抽出などの処理を行うことなく、移動物体と静止物体とを高い精度で判別することができる。結果として、移動体の自己位置推定のために利用される高精度の地図を効率的に生成することができる。
 本実施形態では、光ビームを照射して計測点ごとに距離および速度の情報を取得するセンサ200が用いられ、時系列で並ぶ複数の計測点のデータをある単位でまとめてフレームとして処理される。このため、処理回路130が1点ごとに計測データを記憶装置120から取得して処理する場合よりも効率的に計測点のデータを処理することができる。
 [4.データ処理装置の動作の変形例]
 図7の例では、処理回路130は、各計測点の3次元位置座標および速度の値を含む4次元点群データを生成し、4次元点群データから、速度の大きさが閾値を超える計測点の情報を除外することにより、3次元点群データを生成する。このような動作に代えて、図10に示す動作を採用してもよい。
 図10は、処理回路130の動作の変形例を示すフローチャートである。図10に示すフローチャートは、図7に示すフローチャートにおけるステップS103およびS104が、ステップS113に置き換わったものである。ステップS101、S102、およびS105の動作は、図7の例と同じである。
 ステップS113において、処理回路130は、計測速度の大きさがセンサ200の速度の大きさと同じで、計測速度の向きがセンサ200の向きと逆である計測点の3次元座標を算出して3次元点群データを生成する。計測速度の大きさがセンサ200の速度の大きさと同じで、計測速度の向きがセンサ200の向きと逆である計測点は静止物体上の計測点であると考えられ、それ以外の計測点は移動物体上の計測点であると考えられる。このため、処理回路130は、静止物体上の計測点であると考えられる計測点についてのみ3次元座標を算出する。計測点の3次元座標は、当該計測点の方向および距離の情報と、センサ200の位置および向きの情報とに基づいて算出される。これにより、図7の例と同様に、移動物体上の計測点の情報が除外された3次元点群データ(図8D参照)を生成することができる。
 本実施形態のように、FMCW-LiDARを用いた計測では、センサ200の光出射点と計測点とを結ぶ直線に沿った方向における計測点の速度成分が検出される。このため、当該直線と直交する方向に計測点が移動している場合には、速度を検出することができない。このような場合は相当まれであるが、これを回避するために、センサ200の位置および向きを変化させて、近傍の点を複数回計測してもよい。計測方向(あるいは計測角度)の異なる複数回の計測により、一回の計測では速度が検出されない計測点についても、確実に速度(あるいは動いているか否か)を検出することができる。
 図11は、同一または近傍の点を複数回計測する場合の動作の一例を示すフローチャートである。このフローチャートは、図7に示すフローチャートにおけるステップS103がステップS123からS127に置き換わったものである。ステップS101、S102、S104、S105の動作は、図7における対応するステップの動作と同じである。図11の例では、空間中の複数の計測点についての計測データの取得が、センサ200の位置および向きを変更して2回実行される。
 処理回路130は、ステップS101およびS102の動作の後、センサ200を移動させる(ステップS123)。このとき、計測される領域が、1回目に計測された領域と概ね重なるように、センサ200の位置および向きが変更される。この例では、システムは、センサ200の位置および向きを変化させるアクチュエータを備える。
 ステップS124において、処理回路130は、ステップS101で取得した計測データにおける計測点と同一または近い点をセンサ200に計測させ、計測データを取得する。
 ステップS125において、処理回路130は、各計測点の計測時刻におけるセンサ200の位置情報および速度情報を取得する。この動作は、ステップS102の動作と同様である。
 ステップS126において、処理回路130は、ステップS101およびステップS124で取得した計測データにおける各計測点の3次元位置座標と速度を算出する。位置座標と速度の算出方法は、図7に示すステップS103における方法と同じである。
 ステップS127において、処理回路130は、ステップS126において算出した各計測点の3次元位置座標と速度とに基づいて、4次元点群データを生成する。このとき、実質的に同一の計測点について2つの速度値が得られている場合は、絶対値が大きい速度値がその計測点の速度として処理される。例えば、実質的に同一の点について、2回の計測の一方では速度の絶対値がほぼゼロで、他方の計測では速度の絶対値がゼロよりも大きい場合、処理回路130は、後者の速度をその計測点の速度として4次元点群データを生成する。
 このような動作により、1回の計測では速度がゼロとして誤って計測される計測点についても、確実に速度情報を取得することができる。なお、センサ200を移動して行われる計測の回数は2回に限らず、3回以上であってもよい。また、ステップS126、S127、S104の動作の代わりに、図10に示すステップS113と同様の動作を行ってもよい。その場合、処理回路130は、複数回の計測のいずれにおいても、計測速度の大きさがセンサ200の速度の大きさと同じで向きが逆である計測点のみを静止物体上の計測点として、3次元点群データを生成する。
 図11の例では、ステップS101およびステップS124のそれぞれにおいて、複数の計測点の計測が連続的に行われるが、各ステップにおいて、1つの計測点の計測のみが行われてもよい。その場合、ステップS101からS125の動作が、センサ200を移動させながら、所定の計測点の数だけ繰り返され得る。
 センサ200を移動させる代わりに、異なる位置に配置された複数のセンサ200を用いて同様の機能を実現してもよい。その場合、処理回路130は、複数のセンサ200によって異なる計測角度で取得された計測データに基づいて上記と同様の処理を行うことにより、移動物体上の計測点の情報を除いた3次元点群データを生成することができる。
 以上の各例では、処理回路130は、速度の大きさが閾値を超える計測点(以下、「速度検出点」と呼ぶ。)の位置情報を除外した3次元点群データを生成する。このような動作に代えて、速度検出点の位置情報を除外せずに、速度検出点であることを示すフラグの情報を含む点群データを生成してもよい。
 図12Aは、速度検出点であることを示すフラグの情報を含む点群データの形式の一例を示している。このようにフラグを付すことで、図11の例のように同一の点を複数回計測する場合に再計測をしやすくしたり、後述する地図更新処理において重点的に計測する点をわかりやすくしたりすることができる。なお、この例では移動物体上の計測点にフラグが付されるが、反対に、静止物体上の計測点にフラグが付されてもよい。
 同様のフラグは、計測データに含まれていてもよい。例えば、図12Bに示すように、センサ200から出力される計測データが、計測速度の大きさが閾値(例えばゼロまたはゼロに近い正の所定値)よりも大きいか否かを示すフラグを含んでいてもよい。図12Bの例では、移動物体上の計測点にフラグが付されるが、反対に、静止物体上の計測点にフラグが付されてもよい。このようなフラグを速度情報に含めるか否かは、センサ200の処理回路240が、計測速度の大きさに基づいて決定する。処理回路240は、計測データに計測速度の情報を含めずに、フラグの情報のみを速度情報として含めてもよい。その場合でも、データ処理装置100における処理回路130は、フラグに基づいて、複数の計測点から静止物体上の計測点と移動物体上の計測点とを判別することができる。
 [5.自動運転車両]
 次に、前述のデータ処理方法を利用して自己位置推定を行いながら走行する自動運転車両の実施形態を説明する。
 図13は、自動運転車両300の構成例を示すブロック図である。図13には、車両300の外部の要素である地図配信サーバ500も示されている。車両300は、第1記憶装置310と、第2記憶装置320と、処理回路330と、通信装置340と、LiDARセンサ350と、慣性計測ユニット(IMU)360と、GNSS受信機370と、制御回路380と、駆動装置390とを備える。サーバ500は、記憶装置520と、処理装置530と、通信装置540とを備える。
 図13の例において、第1記憶装置310、第2記憶装置320、および処理回路330は、図1に示すデータ処理装置100と同様の役割を果たす。第1記憶装置310は、処理回路330によって生成された点群データを記憶する。第2記憶装置320は、車両300の周辺の環境の地図を記憶する。第1記憶装置310および第2記憶装置320は、1つの記憶装置として統合されていてもよい。処理回路330は、図1に示す処理回路130と同様の機能を備える。LiDARセンサ350は、図1に示すセンサ200と同様の機能を備える。通信装置340は、例えばインターネットまたは携帯電話網などのネットワークを介してサーバ500と通信する装置である。IMU360は、加速度センサ、ジャイロスコープ、および地磁気センサなどの各種のセンサを含む装置である。IMU360は、車両300の加速度、速度、変位、および姿勢などの諸量を計測する。GNSS受信機370は、GPS(Global Positioning System)、QZSS(Quasi-Zenith Satellite System)、GLONASS、Galileo、またはBeiDouなどの衛星測位システムにおける複数の衛星からの信号を受信し、当該信号に基づいて車両300の位置を計算する。駆動装置390は、例えばエンジン、トランスミッション、およびパワーステアリングなどの、車両300の走行に必要な各種の装置を含む。制御回路380は、駆動装置390を制御することにより、車両300の走行およびステアリングなどの動作を制御する。処理回路330および制御回路380は、例えば電子制御ユニット(ECU)などの車載コンピュータに含まれ得る。
 サーバ500における記憶装置520は、車両300に配信する地図を記憶する。処理装置530は、通信装置540を介して車両300に地図を配信したり、車両300から取得した情報に基づいて地図を更新したりするプロセッサである。通信装置540は、車両300と通信を行う装置である。なお、サーバ500は、図示されている車両300に限らず、複数の自動運転車両に地図を配信してもよい。
 図14は、処理回路330によって実行される動作の例を示すフローチャートである。処理回路330は、図14に示すステップS201からS213の動作を実行する。以下、各ステップの動作を説明する。
 ステップS201において、処理回路330は、ユーザまたは他の装置から自動運転の停止指示が出されたか否かを判定する。停止指示が出されている場合、ステップS212に進む。停止指示が出されていない場合、ステップS202に進む。
 ステップS202において、処理回路330は、GNSS受信機370から、車両300の位置情報を取得する。処理回路330は、GNSS受信機370から出力された位置情報に加えて、IMU360から出力された信号に基づいて、位置情報を補正してもよい。
 ステップS203において、処理回路330は、車両300の位置を含む領域の地図をサーバ500から取得する。
 ステップS204において、処理回路330は、LiDARセンサ350から出力された各計測点の距離および速度の情報を含む計測データを取得する。
 ステップS205において、処理回路330は、IMU360から出力された信号に基づいて、車両300の速度および姿勢を算出する。車両300の速度は、速度計などの他のセンサから取得してもよい。
 ステップS206において、処理回路330は、点群データを生成する。処理回路330は、ステップS204で取得した各計測点の距離および速度の情報と、ステップS205で取得した車両300の速度および姿勢の情報とに基づいて点群データを生成する。処理回路330は、例えば図7または図10を参照して説明した方法で3次元の点群データを生成する。ここで生成される点群データは、例えば、図8Dに示すような、移動物体上の計測点の情報を除く3次元の点群データ、または、図12Aに示すような、移動物体上の計測点と静止物体上の計測点とを区別可能なフラグなどの情報を含む3次元の点群データであり得る。
 ステップS207において、処理回路330は、ステップS206で生成した点群データと、ステップS203で取得した地図データとをマッチングすることにより、自己位置推定を行う。これにより、処理回路330は、車両300の精密な位置および姿勢(すなわちポーズ)を決定することができる。ステップS207の動作の詳細については後述する。
 ステップS208において、処理回路330は、生成した点群データを記憶装置310に記録する。
 ステップS209において、処理回路330は、点群データに基づいて障害物を認識する。例えば、パターンマッチングまたは機械学習などの方法で、点群データから、車両300の走行の障害となり得る障害物を認識する。
 ステップS210において、処理回路330は、自己位置推定の結果、および障害物認識の結果に基づいて、車両300の進路を決定し、車両300の動作を決定する。例えば、障害物が認識された場合、処理回路330は、その障害物を回避可能な経路を決定し、その経路に沿って車両300を走行させるためのパラメータ(例えば、速度および操舵角など)を決定する。
 ステップS211において、処理回路330は、決定したパラメータの情報を制御回路380に送り、制御回路380に動作指示を行う。制御回路380は、動作指示に従って、駆動装置390を制御して、車両300に所望の動作を実行させる。ステップS211の後、ステップS201に戻る。
 処理回路330は、ステップS201において自動運転の停止指示を受けるまで、ステップS201からS211の動作を繰り返す。停止指示を受けた場合、ステップS212に進む。
 ステップS212において、処理回路330は、停止指示を受けるまでに生成した点群データに基づいて更新した地図をサーバ500に送信するか否かを判断する。処理回路330は、例えば、車両300の周辺の環境に変化があり、サーバ500から取得した地図を修正する必要がある場合に、地図を送信すると判断してもよい。あるいは、処理回路330は、サーバ500または他の装置から地図の送信要求を受けた場合に、更新した地図を送信すると判断してもよい。処理回路330は、地図を送信すると判断した場合、ステップS213に進み、地図を送信しないと判断した場合、動作を終了する。
 ステップS213において、処理回路330は、停止指示を受けるまでに生成した点群データに基づいて更新した地図をサーバ500に送信し、動作を終了する。
 ここで、ステップS207における自己位置推定の処理をより詳細に説明する。
 図15は、ステップS207における自己位置推定の処理の例を示すフローチャートである。ステップS207は、図15に示すステップS221からS225の動作を含む。
 ステップS221において、処理回路330は、前回自己位置推定されたときに決定された車両300の位置と、今回までの移動における車両300の速度、方向、および移動距離とから推定される概略の自己位置を決定する。
 ステップS222において、処理回路330は、ステップS203で取得した地図の中から、概略の自己位置を含む比較的狭い範囲の部分を抽出する。
 ステップS223において、処理回路330は、抽出した地図の部分から、ステップS206で生成した点群データと照合すべき範囲を決定する。例えば、処理回路330は、点群データが示す点群の分布に対応すると推定される地図の範囲を決定する。なお、ステップS222で十分に狭い範囲の地図の部分が抽出されている場合は、ステップS223の処理を省略してもよい。
 ステップS224において、処理回路330は、点群データを座標変換して、点群と地図とのマッチングを行う。ここで、点群データが、図12Aに示す例のように、移動物体における計測点の情報を含んでいる場合、処理回路330は、移動物体における計測点の情報を除外した上でマッチングを行う。処理回路330は、例えば、点群データにおける計測点と地図内の点との距離の総和が最小になるように、点群データの座標変換を行う。マッチングのアルゴリズムは特定のものに限定されず、例えばICP(Iterative Closest Point)またはNDT(Normal Distribution Transform)などの任意のマッチングアルゴリズムが用いられ得る。
 ステップS225において、処理回路330は、座標変換の結果に基づき、車両300の現在の自己位置を決定する。処理回路330は、座標変換の結果に基づき、ステップS221で推定した概略の自己位置を修正することにより、現在の車両300の位置および姿勢を自己位置として決定する。
 上記の動作によれば、ステップS206において、移動物体上の計測点の情報を含まない点群データ、または静止物体上の計測点と移動物体上の計測点とを区別することが可能な点群データが生成される。これにより、ステップS207において、移動物体上の計測点の情報を除く点群データを用いて地図データとのマッチングを行うことができる。移動物体上の計測点が除去されることで、比較を容易かつ正確に行うことができ、自己位置推定の精度を大幅に向上させることが可能である。
 [6.ロボット掃除機]
 次に、前述のデータ処理方法を利用して自己位置推定を行いながら移動するロボット掃除機の実施形態を説明する。
 図16は、ロボット掃除機400の構成例を示すブロック図である。このロボット掃除機400は、LiDARセンサ450と、IMU460と、記憶装置420と、処理回路430と、制御回路480と、駆動装置490とを備える。これらの構成要素の機能は、図13に示す自動運転車両300における対応する構成要素の機能と同様である。記憶装置420および処理回路430は、図1に示すデータ処理装置100と同様の役割を果たす。
 ロボット掃除機400は、地図の作成または更新と、自己位置推定とを同時に行いながら自動で走行する。ロボット掃除機400は、主に家庭で使用される。図13に示す自動運転車両300とは異なり、ロボット掃除機400は、事前に作成された地図を有しない。このため、ロボット掃除機400は、自ら地図を作成し、その地図を更新しながら動作する。
 図17は、ロボット掃除機400における処理回路430によって実行される動作の例を示すフローチャートである。図14に示す動作との主な相違点は、ロボット掃除機400は、自身の速度および姿勢と、LiDARセンサ450で取得した各計測点の距離および速度の情報とに基づいて地図を自ら作成し、その地図を更新しながら自己位置推定を行って動作する点である。処理回路430は、図17に示すステップS301からS309の動作を実行する。以下、各ステップの動作を説明する。図14における対応するステップの動作と重複する点についての詳細な説明は省略する。
 ステップS301において、処理回路430は、掃除を終了するか否かを判断する。例えば、掃除対象の領域の全体にわたる掃除が完了した場合、またはユーザまたは外部の装置から停止指示を受けた場合、処理回路430は、掃除を終了する。掃除動作を継続する場合、ステップS302に進む。
 ステップS302において、処理回路430は、LiDARセンサ450から出力された各計測点の距離および速度の情報を含む計測データを取得する。
 ステップS303において、処理回路430は、IMU460から出力された信号に基づいて、ロボット掃除機400の速度および姿勢を算出する。
 ステップS304において、処理回路430は、点群データを生成する。処理回路430は、ステップS402で取得した各計測点の距離および速度の情報と、ステップS303で取得した自身の速度および姿勢の情報とに基づいて点群データを生成する。処理回路430は、例えば図7または図10を参照して説明した方法で点群データを生成することができる。なお、処理回路430は、3次元ではなく2次元の点群データを生成してもよい。ここで生成される点群データは、移動物体上の計測点の情報を除く点群データ、または、移動物体上の計測点と静止物体上の計測点とを区別可能なフラグなどの情報を含む点群データであり得る。
 ステップS305において、処理回路430は、既に生成された地図があるか否かを判定する。地図がある場合、ステップS306に進み、地図がない場合、ステップS307に進む。
 ステップS306において、処理回路430は、点群データと地図とをマッチングによって自己位置推定を行い、地図を更新する。ステップS306の動作の詳細については後述する。
 ステップS307において、処理回路430は、地図生成の動作を実行する。ステップS307の動作の詳細については後述する。
 ステップS308において、処理回路430は、自己位置推定の結果および地図に基づいて、ロボット掃除機400の動作を決定する。例えば、処理回路430は、地図に示された壁または障害物等に衝突しない経路を決定し、その経路に沿ってロボット掃除機400を走行させるためのパラメータ(例えば、各モータの回転速度等)を決定する。
 ステップS309において、処理回路430は、決定したパラメータの情報を制御回路480に送り、制御回路480に動作指示を行う。制御回路480は、動作指示に従って、駆動装置490を制御して、ロボット掃除機400に掃除動作を実行させる。ステップS309の後、ステップS301に戻る。
 処理回路430は、ステップS301において掃除を終了すると判断するまでステップS301からS309の動作を繰り返す。
 次に、図18および図19を参照しながら、ステップS306およびS307の動作をより詳細に説明する。
 図18は、ステップS306の動作の詳細を示すフローチャートである。ステップS306は、図18に示すステップS321からS325の動作を含む。
 ステップS321において、処理回路430は、前回自己位置推定されたときに決定されたロボット掃除機400の位置と、今回までの移動におけるロボット掃除機400の速度、方向、および移動距離とから推定される概略の自己位置を決定する。
 ステップS322において、処理回路430は、地図から、ステップS304で生成した点群データと照合すべき範囲を決定する。例えば、処理回路430は、点群データが示す点群の分布に対応すると推定される地図の範囲を決定する。
 ステップS323において、処理回路430は、点群データを座標変換して、点群と地図とのマッチングを行う。この動作は、図15におけるステップS224の動作と同様である。
 ステップS324において、処理回路430は、座標変換の結果に基づき、ロボット掃除機400の現在の自己位置を決定する。この動作は、図15におけるステップS225の動作と同様である。
 ステップS325において、処理回路430は、点群データを既成の地図に書き込むことにより、地図を更新する。具体的には、処理回路430は、点群データから、既存の地図上の点と座標が一致しない点を抽出し、それらの点のデータを既存の地図に書き込む。この際、既存の地図には存在するが、点群データには含まれていない点のデータが存在する場合、その点のデータを除外してもよい。以上の動作により、地図が更新される。
 図19は、ステップS307の動作の詳細を示すフローチャートである。このフローチャートは、図18に示すフローチャートからステップS322およびS324を除き、ステップS325をステップS326に置換したものである。ステップS321、S323の動作は、図18に示す対応するステップの動作と同様である。ステップS326において、処理回路430は、座標変換した点群データをそのまま地図データとして記憶装置420に記録する。
 以上の動作により、ロボット掃除機400は、地図を更新しながら、自動で移動および掃除を行うことができる。本実施形態では、移動物体の計測点の情報が点群データから除去された上で、点群データと地図との比較が行われるため、自己位置推定および地図の更新を容易かつ正確に行うことができる。
 本実施形態において、処理回路430は、移動物体上の計測点の情報が除外された点群データに基づいて地図データを生成するが、移動物体上の計測点の情報を地図データに含めてもよい。例えば、図12Aに示す点群データと同様に、処理回路430は、各計測点が移動物体上の点であるか静止物体上の点であるかを判別可能なフラグを付した地図データを生成してもよい。そのような地図データを生成することにより、次回の計測時に、フラグ情報に基づいて、移動物体上の計測点であると判別された計測点を重点的に計測するといった動作が可能になる。
 図20は、移動物体上の計測点を重点的に計測する動作の一例を示すフローチャートである。このフローチャートは、図17におけるステップS302の詳細な動作の例を示している。この例におけるステップS302は、ステップS331からS335を含む。
 ステップS331において、処理回路430は、前回作成した既成の地図を記憶装置420から取得する。この例における地図は、前回の計測時に速度が閾値よりも大きい計測点が存在する場合には、その計測点が移動物体上にあることを示すフラグの情報を含む。
 ステップS332において、処理回路430は、地図における点の中に、フラグをもつ点が含まれているかを判断する。フラグをもつ点が含まれている場合にはステップS333に進み、フラグをもつ点が含まれていない場合にはステップS334に進む。
 ステップS333において、処理回路430は、フラグ付きの計測点の近傍の領域を重点的に計測するようにセンサ450に指示する。例えば、フラグ付きの計測点を2回以上計測したり、フラグ付きの計測点の近傍を通常よりも高い空間密度で計測するようにセンサ450に指示する。なお、フラグが付されていない計測点については、通常の計測が行われる。
 ステップS334において、処理回路430は、通常の計測を行う。通常の計測は、例えば、予め設定された時間間隔で、計測対象の領域を所定の角度ごとにレーザビームで走査して行う計測であり得る。
 ステップS335において、処理回路430は、センサ450によって生成された計測データを取得する。
 以上のような動作により、移動物体であると推定される領域の計測データが時間的または空間的に高い密度で取得される。これにより、既成の地図上で移動物体が存在するために未確定であった方向の点の情報を補うことができ、より正確な地図を生成することができる。
 図20に示す動作は、ロボット掃除機400に限らず、前述の自動運転車両300に適用されてもよい。例えば、図14におけるステップS203およびS204に代えて、図20に示す動作が実行されてもよい。その場合、ステップS331において、処理回路330は、サーバ500から既成の地図を取得するか、以前の計測時に取得した地図および点群データに基づいて生成した地図を取得する。ここで取得される地図は、以前の計測で移動物体上の点として判別されフラグが付与された計測点の情報を含み得る。フラグが付与された計測点を重点的に計測することにより、移動物体の存在によって未計測であった点の情報を補うことができる。
 以上の各実施形態は例示であり、本開示は、上記の実施形態に限定されない。例えば、上記の実施形態における種々の特徴を部分的に組み合わせて新たな実施形態を構成してもよい。
 以上の実施形態では、自律的に移動する移動体にデータ処理装置が搭載されるが、本開示はそのような形態に限定されない。データ処理装置は、例えば道路の付近に配置された電柱などの固定物に搭載されていてもよい。また、データ処理装置は、LiDARまたはレーダなどのセンサを備える移動体と通信するサーバなどのコンピュータであってもよい。その場合、データ処理装置は、移動体のセンサが生成した計測データをネットワークを介して受信し、当該計測データに基づいて、静止物体の計測点と移動物体上の計測点とを判別し、判別結果を反映した点群データおよび地図データを生成することができる。
 以上の実施形態におけるデータ処理装置は、センサが生成した計測データをリアルタイムで処理して点群データおよび地図データを生成する。そのような形態に限らず、データ処理装置は、センサが記憶装置に蓄積した計測データを事後的に取得して点群データおよび地図データを生成してもよい。
 本開示の技術は、例えば、自律的に移動する移動体の自己位置推定、または道路のインフラ点検などの、精密な地図の作成または更新が求められる用途への応用が可能である。
 100 データ処理装置
 120 記憶装置
 130 処理回路
 200 センサ
 210 光源
 211 駆動回路
 212 発光素子
 220 干渉光学系
 221 分岐器
 222 ミラー
 223 コリメータ
 230 光検出器
 240 処理回路
 250 計時回路
 300 自動運転車両
 310、320 記憶装置
 330 処理回路
 340 通信装置
 350 LiDARセンサ
 360 IMU
 370 GNSS受信機
 380 制御回路
 390 駆動装置
 420 記憶装置
 430 処理回路
 450 LiDARセンサ
 460 IMU
 480 制御回路
 490 駆動装置
 400 ロボット掃除機
 420 記憶装置
 430 処理回路
 450 LiDARセンサ
 460 IMU
 480 制御回路
 490 駆動装置
 500 地図配信サーバ
 520 記憶装置
 530 処理装置
 540 通信装置

Claims (18)

  1.  空間中の複数の計測点についての位置情報および速度情報を含む計測データを記憶する記憶装置と、
     処理回路と、
     を備え、
     前記処理回路は、
     前記記憶装置から前記計測データを取得し、
     前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別し、
     前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成する、
     データ処理装置。
  2.  前記記憶装置は、複数のフレームの各々についての前記計測データを記憶し、
     各フレームについての前記計測データは、前記空間中の複数の計測点についての前記位置情報および前記速度情報を含む、
     請求項1に記載のデータ処理装置。
  3.  前記計測データにおける前記複数の計測点についての前記速度情報は、異なる計測角度で計測することによって取得された第1速度情報および第2速度情報を含み、
     前記処理回路は、前記第1速度情報および前記第2速度情報に基づいて、前記静止物体上の計測点を判別する、
     請求項1または2に記載のデータ処理装置。
  4.  前記処理回路は、前記計測データから、判別した前記静止物体上の計測点以外の計測点に関する情報を除外することにより、前記点群データを生成する、請求項1から3のいずれかに記載のデータ処理装置。
  5.  前記処理回路は、前記計測データにおける前記複数の計測点のうち、判別した前記静止物体上の計測点に、静止物体であることを示すフラグを付与する処理、または、前記計測データにおける前記複数の計測点のうち、判別した前記静止物体上の計測点を除く計測点に、移動物体であることを示すフラグを付与する処理により、前記点群データを生成する、請求項1から3のいずれかに記載のデータ処理装置。
  6.  前記複数の計測点についての前記位置情報は、前記複数の計測点の各々の3次元座標値を含み、
     前記点群データは、前記静止物体上の各計測点の前記3次元座標値を含む3次元点群データである、
     請求項1から5のいずれかに記載のデータ処理装置。
  7.  前記計測データにおいて、前記速度情報を有する計測点の数は、前記位置情報を有する計測点の数と同一である、請求項1から6のいずれかに記載のデータ処理装置。
  8.  前記計測データは、FMCW(Frequency Modulated Continuous Wave)を利用したセンサから出力されたセンサデータ、または前記センサデータに基づいて生成されたデータである、請求項1から7のいずれかに記載のデータ処理装置。
  9.  前記複数の計測点についての前記速度情報は、前記複数の計測点の各々の前記センサに対する相対速度の、前記センサと前記計測点とを結ぶ直線に沿った方向の速度成分を示す情報を含み、
     前記処理回路は、前記複数の計測点のうち、前記速度成分の大きさが閾値以下である計測点を前記静止物体上の計測点として判別する、
     請求項8に記載のデータ処理装置。
  10.  前記複数の計測点についての前記速度情報は、前記複数の計測点の各々の前記センサに対する相対速度の、前記センサと前記計測点とを結ぶ直線に沿った方向の速度成分の大きさが閾値よりも大きいか否かを示すフラグを含み、
     前記処理回路は、前記フラグに基づいて、前記複数の計測点から前記静止物体上の計測点を判別する、
     請求項8に記載のデータ処理装置。
  11.  前記処理回路は、
     前記センサによってセンシングされる環境の地図データと、前記点群データとを照合することによって前記地図データの更新の要否を判断し、
     更新が必要な場合に前記点群データに基づいて前記地図データを更新する、
    請求項8から10のいずれかに記載のデータ処理装置。
  12.  前記処理回路は、
     前記センサによってセンシングされる環境の地図データを取得し、
     前記点群データと前記地図データとを照合することによって前記センサの位置および/または向きを推定する、
     請求項8から11のいずれかに記載のデータ処理装置。
  13.  前記処理回路は、
     前記複数の計測点から前記移動物体上の計測点を判別した後、前記センサに、前記移動物体上の計測点を計測させる、
     請求項8から12のいずれかに記載のデータ処理装置。
  14.  請求項1から13のいずれかに記載のデータ処理装置と、
     前記計測データ、または前記計測データを生成するためのデータを生成するセンサと、を備えるシステム。
  15.  前記センサは、FMCW方式のLiDARセンサである、請求項14に記載のシステム。
  16.  前記センサは、レーダである、請求項14に記載のシステム。
  17.  コンピュータによって実行されるデータ処理方法であって、
     空間中の複数の計測点についての位置情報および速度情報を含む計測データを取得することと、
     前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別することと、
     前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成することと、
     を含むデータ処理方法。
  18.  コンピュータに、
     空間中の複数の計測点についての位置情報および速度情報を含む計測データを取得することと、
     前記速度情報に基づいて、前記複数の計測点から静止物体上の計測点を判別することと、
     前記判別の結果に基づいて、前記静止物体上の計測点の前記位置情報を含む点群データを生成することと、
     を実行させるコンピュータプログラム。
PCT/JP2022/021170 2021-10-13 2022-05-24 データ処理装置およびデータ処理方法 WO2023062862A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202280064278.8A CN117999499A (zh) 2021-10-13 2022-05-24 数据处理装置及数据处理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021168362 2021-10-13
JP2021-168362 2021-10-13

Publications (1)

Publication Number Publication Date
WO2023062862A1 true WO2023062862A1 (ja) 2023-04-20

Family

ID=85988236

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/021170 WO2023062862A1 (ja) 2021-10-13 2022-05-24 データ処理装置およびデータ処理方法

Country Status (2)

Country Link
CN (1) CN117999499A (ja)
WO (1) WO2023062862A1 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203429A (ja) * 2013-04-10 2014-10-27 トヨタ自動車株式会社 地図生成装置、地図生成方法及び制御プログラム
JP2016126662A (ja) 2015-01-07 2016-07-11 株式会社リコー 地図生成装置、地図生成方法およびプログラム
JP2019028861A (ja) * 2017-08-02 2019-02-21 ソニー株式会社 信号処理装置、および信号処理方法、プログラム、並びに移動体
US20190178998A1 (en) * 2017-12-07 2019-06-13 Ouster, Inc. Installation and use of vehicle light ranging system
WO2019230720A1 (ja) 2018-05-29 2019-12-05 住友電気工業株式会社 光ファイバの伝送損失測定方法およびotdr測定装置
JP2020067315A (ja) * 2018-10-23 2020-04-30 三菱電機株式会社 レーザ距離測定装置
WO2021079885A1 (ja) * 2019-10-25 2021-04-29 株式会社デンソー 移動体警報装置
JP2021103482A (ja) * 2019-12-25 2021-07-15 財団法人車輌研究測試中心 自己位置推定方法
CN113256595A (zh) * 2021-06-07 2021-08-13 西人马帝言(北京)科技有限公司 地图创建方法、装置、设备及计算机存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203429A (ja) * 2013-04-10 2014-10-27 トヨタ自動車株式会社 地図生成装置、地図生成方法及び制御プログラム
JP2016126662A (ja) 2015-01-07 2016-07-11 株式会社リコー 地図生成装置、地図生成方法およびプログラム
JP2019028861A (ja) * 2017-08-02 2019-02-21 ソニー株式会社 信号処理装置、および信号処理方法、プログラム、並びに移動体
US20190178998A1 (en) * 2017-12-07 2019-06-13 Ouster, Inc. Installation and use of vehicle light ranging system
WO2019230720A1 (ja) 2018-05-29 2019-12-05 住友電気工業株式会社 光ファイバの伝送損失測定方法およびotdr測定装置
JP2020067315A (ja) * 2018-10-23 2020-04-30 三菱電機株式会社 レーザ距離測定装置
WO2021079885A1 (ja) * 2019-10-25 2021-04-29 株式会社デンソー 移動体警報装置
JP2021103482A (ja) * 2019-12-25 2021-07-15 財団法人車輌研究測試中心 自己位置推定方法
CN113256595A (zh) * 2021-06-07 2021-08-13 西人马帝言(北京)科技有限公司 地图创建方法、装置、设备及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHRISTOPHER V. POULTON ET AL.: "Frequency-modulated Continuous-wave LIDAR Module in Silicon Photonics", OFC2016, 2016

Also Published As

Publication number Publication date
CN117999499A (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
KR102497330B1 (ko) 추가 차량의 결정된 요 파라미터(들)에 근거한 자율주행 차량 제어
KR102481638B1 (ko) 위상 코히어런트 라이다 데이터를 사용하여 결정된 환경 객체 분류에 기반한 자율주행 차량 제어
US10445928B2 (en) Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
JP3561473B2 (ja) 物体位置の追跡・検知方法及びビークル
US10739459B2 (en) LIDAR localization
US8755997B2 (en) Laser ranging process for road and obstacle detection in navigating an autonomous vehicle
JP3485336B2 (ja) 乗物の位置を決定する方法及び装置
RU2720140C1 (ru) Способ оценки собственной позиции и устройство оценки собственной позиции
JP2009110250A (ja) 自律走行移動体の走行経路決定用地図作成装置及び走行経路決定用地図作成方法
CN112292582A (zh) 用于生成高清晰度地图的方法和系统
JP2023546813A (ja) 自律車両用途のための速度推定および物体追跡
Moras et al. Drivable space characterization using automotive lidar and georeferenced map information
WO2023062862A1 (ja) データ処理装置およびデータ処理方法
de Ponte Müller et al. Characterization of a laser scanner sensor for the use as a reference system in vehicular relative positioning
Elkholy et al. RADAR/INS integration for pose estimation in GNSS-denied environments
JP2009110249A (ja) 自律走行移動体の走行経路決定用地図作成装置及び走行経路決定用地図作成方法
Zuev et al. Mobile system for road inspection and 3D modelling
Li et al. Kalman Filtering Jitter Cancellation Based on Lidar Localization
Elkholy Radar and INS Integration for Enhancing Land Vehicle Navigation in GNSS-Denied Environment
AU756108B2 (en) Method of tracking and sensing position of objects
Liu et al. Autonomous Vehicle Localization
WO2023166512A1 (en) Increasing signal to noise ratio of a pixel of a lidar system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22880568

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280064278.8

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2023554244

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2022880568

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022880568

Country of ref document: EP

Effective date: 20240513