WO2019044500A1 - 位置推定システム、および当該位置推定システムを備える移動体 - Google Patents

位置推定システム、および当該位置推定システムを備える移動体 Download PDF

Info

Publication number
WO2019044500A1
WO2019044500A1 PCT/JP2018/030308 JP2018030308W WO2019044500A1 WO 2019044500 A1 WO2019044500 A1 WO 2019044500A1 JP 2018030308 W JP2018030308 W JP 2018030308W WO 2019044500 A1 WO2019044500 A1 WO 2019044500A1
Authority
WO
WIPO (PCT)
Prior art keywords
map
scan data
reference map
estimation system
position estimation
Prior art date
Application number
PCT/JP2018/030308
Other languages
English (en)
French (fr)
Inventor
慎治 鈴木
佐伯 哲夫
中谷 政次
Original Assignee
日本電産株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電産株式会社 filed Critical 日本電産株式会社
Priority to US16/639,254 priority Critical patent/US20200264616A1/en
Priority to CN201880053209.0A priority patent/CN110998473A/zh
Priority to JP2019539338A priority patent/JP6816830B2/ja
Publication of WO2019044500A1 publication Critical patent/WO2019044500A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • 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
    • 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/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids

Definitions

  • the present disclosure relates to a position estimation system, and a moving object including the position estimation system.
  • Japanese Patent Laid-Open No. 2008-250905 discloses a mobile robot that performs self-position estimation by matching a local map acquired from a laser range finder with a map prepared in advance.
  • the mobile robot disclosed in Japanese Patent Laid-Open No. 2008-250905 estimates its own position by removing unnecessary points from the environment map when performing matching.
  • Embodiments of the present disclosure provide a position estimation system and a mobile that can reduce the amount of calculation at the time of map creation.
  • the position estimation system of the present disclosure is, in a non-limiting exemplary embodiment, a position estimation system that is used by being connected to an external sensor that scans an environment and periodically outputs scan data; And a memory for storing a computer program for operating the processor.
  • the processor acquires the scan data from the external sensor according to a command of the computer program, creates a reference map from the scan data, and newly acquires the scan data from the external sensor.
  • the position and attitude of the external sensor on the reference map are estimated, the latest scan data is added to the reference map, and the reference map is updated. Removing a portion other than a portion including the latest scan data from the reference map updated a plurality of times, and performing the reference map reset, and when performing the reset, the plurality before the reset is performed Execute updating environmental map based on the updated reference map
  • a mobile according to the present disclosure is, in a non-limiting and exemplary embodiment, a position estimation system described above, an external sensor, a storage device for storing the environment map created by the position estimation system, and a mobile device for movement. And a drive unit.
  • the computer program of the present disclosure is a computer program used in any of the above position estimation systems in a non-limiting exemplary embodiment.
  • FIG. 1 is a diagram showing the configuration of an embodiment of a mobile according to the present disclosure.
  • FIG. 2 is a plan layout view schematically showing an example of the environment in which the moving body moves.
  • FIG. 3 is a diagram showing an environmental map of the environment shown in FIG.
  • FIG. 4A is a view schematically showing an example of scan data SD (t) acquired at time t by an external sensor.
  • FIG. 4B is a view schematically showing an example of scan data SD (t + ⁇ t) acquired by an external sensor at time t + ⁇ t.
  • FIG. 4C is a view schematically showing a state in which the scan data SD (t) is matched with the scan data SD (t + ⁇ t).
  • FIG. 5 is a view schematically showing how a point group constituting scan data rotates and translates from an initial position to approach a point group on an environment map.
  • FIG. 6 is a diagram showing the position and orientation after rigid transformation of scan data.
  • FIG. 7A is a view schematically showing a state where scan data is acquired from an external sensor, a reference map is created from the scan data, and newly acquired scan data is matched with the reference map.
  • FIG. 7B is a view schematically showing a reference map in which newly acquired scan data is added to the reference map of FIG. 7A and updated.
  • FIG. 7C is a view schematically showing a reference map in which newly acquired scan data is added to the reference map of FIG. 7B and updated.
  • FIG. 8A is a view schematically showing an environmental map before updating.
  • FIG. 8B is a diagram showing how the environmental map is updated based on the reference map.
  • FIG. 8C is a view schematically showing a state in which the reference map is matched with the environment map by matching the reference map with the environment map.
  • FIG. 9A is a view schematically showing an example of scan data SD (t) acquired at time t by an external sensor.
  • FIG. 9B is a diagram schematically showing a state when matching of scan data SD (t) with the environmental map M is started.
  • FIG. 9C schematically shows a state in which matching of scan data SD (t) with the environmental map M is completed.
  • FIG. 10 is a diagram schematically showing the history of the position and orientation of the moving object obtained in the past, and the predicted values of the current position and orientation.
  • FIG. 11 is a flowchart showing a part of the operation of the position estimation device in the embodiment of the present disclosure.
  • FIG. 12 is a flowchart showing a part of the operation of the position estimation device in the embodiment of the present disclosure.
  • FIG. 13 is a flowchart showing another example of the operation of the position estimation device in the embodiment of the present disclosure.
  • FIG. 14 is a diagram showing an outline of a control system that controls traveling of each AGV according to the present disclosure.
  • FIG. 15 is a perspective view showing an example of an environment in which an AGV exists.
  • FIG. 16 is a perspective view showing the AGV and the tow truck before being connected.
  • FIG. 17 is a perspective view showing the connected AGV and tow truck.
  • FIG. 18 is an external view of an exemplary AGV according to the present embodiment.
  • FIG. 19A is a diagram illustrating an example of a first hardware configuration of an AGV.
  • FIG. 19B is a diagram illustrating an example of a second hardware configuration of an AGV.
  • FIG. 20 is a diagram illustrating an example of a hardware configuration of the operation management device.
  • unmanned transport vehicle means a trackless vehicle that manually or automatically loads a load on a main body, travels automatically to a designated location, and unloads manually or automatically.
  • unmanned aerial vehicle includes unmanned tow vehicles and unmanned forklifts.
  • unmanned means that the steering of the vehicle does not require a person, and does not exclude that the unmanned carrier conveys a "person (e.g., a person who unloads a package)".
  • the "unmanned tow truck” is a trackless vehicle that is to automatically travel to a designated location by towing a cart for manual or automatic loading and unloading of luggage.
  • the "unmanned forklift” is a trackless vehicle equipped with a mast for raising and lowering a load transfer fork and the like, automatically transferring the load to the fork and the like and automatically traveling to a designated location and performing an automatic load handling operation.
  • a “trackless vehicle” is a vehicle that includes a wheel and an electric motor or engine that rotates the wheel.
  • a “mobile” is a device that moves while carrying a person or a load, and includes a driving device such as a wheel, a biped or multi-legged walking device, or a propeller that generates a traction for movement.
  • a driving device such as a wheel, a biped or multi-legged walking device, or a propeller that generates a traction for movement.
  • the term "mobile” in the present disclosure includes mobile robots, service robots, and drone as well as unmanned guided vehicles in a narrow sense.
  • the “automatic traveling” includes traveling based on an instruction of an operation management system of a computer to which the automated guided vehicle is connected by communication, and autonomous traveling by a control device provided in the automated guided vehicle.
  • the autonomous traveling includes not only traveling by the automated guided vehicle toward a destination along a predetermined route, but also traveling by following a tracking target.
  • the automatic guided vehicle may perform manual traveling temporarily based on the instruction of the worker.
  • “automatic travel” generally includes both “guided” travel and “guideless” travel, in the present disclosure, “guideless” travel is meant.
  • the “guided type” is a system in which a derivative is installed continuously or intermittently and a guided vehicle is guided using the derivative.
  • the “guideless type” is a method of guiding without installing a derivative.
  • the unmanned transfer vehicle in the embodiment of the present disclosure includes a position estimation device and can travel in a guideless manner.
  • the “position estimation device” is a device that estimates a self position on an environmental map based on sensor data acquired by an external sensor such as a laser range finder.
  • the “external sensor” is a sensor that senses the external state of the mobile object.
  • the external sensors include, for example, a laser range finder (also referred to as a range sensor), a camera (or an image sensor), a light detection and ranging (LIDAR), a millimeter wave radar, an ultrasonic sensor, and a magnetic sensor.
  • a laser range finder also referred to as a range sensor
  • a camera or an image sensor
  • LIDAR light detection and ranging
  • millimeter wave radar an ultrasonic sensor
  • magnetic sensor magnetic sensor
  • the “internal sensor” is a sensor that senses the internal state of the mobile object.
  • the internal sensors include, for example, a rotary encoder (hereinafter, may be simply referred to as an "encoder"), an acceleration sensor, and an angular acceleration sensor (for example, a gyro sensor).
  • SAM Simultaneous Localization and Mapping
  • the mobile unit 10 of the present disclosure includes an external sensor 102 that scans the environment and periodically outputs scan data in the exemplary embodiment illustrated in FIG. 1.
  • a typical example of the external sensor 102 is a laser range finder (LRF).
  • the LRF periodically emits a laser beam of, for example, infrared or visible light to the surroundings to scan the surrounding environment.
  • the laser beam is reflected by, for example, a surface such as a wall, a structure such as a pillar, or an object placed on the floor.
  • the LRF receives the reflected light of the laser beam, calculates the distance to each reflection point, and outputs measurement data indicating the position of each reflection point.
  • the direction of arrival of reflected light and the distance are reflected in the position of each reflection point.
  • Data of measurement results may be referred to as “environment measurement data” or “sensor data”.
  • the scan of the environment by the external sensor 102 is performed, for example, for an environment in a range of 135 degrees (270 degrees in total) with respect to the front of the external sensor 102. Specifically, a pulsed laser beam is emitted while changing the direction for each predetermined step angle in the horizontal plane, and the reflected light of each laser beam is detected to measure the distance. If the step angle is 0.3 degrees, measurement data of the distance to the reflection point in the direction determined by the angle for a total of 901 steps can be obtained.
  • the scan of the surrounding space performed by the external sensor 102 is substantially parallel to the floor surface and planar (two-dimensional). However, the external sensor may perform a three-dimensional scan.
  • a typical example of scan data may be represented by position coordinates of each point constituting a point cloud acquired for each scan.
  • the position coordinates of the point are defined by a local coordinate system that moves with the moving body 10.
  • Such local coordinate systems may be referred to as mobile coordinate systems or sensor coordinate systems.
  • the origin of the local coordinate system fixed to the mobile object 10 is defined as the “position” of the mobile object 10
  • the orientation of the local coordinate system is defined as the “posture” of the mobile object 10.
  • the position and the posture may be collectively referred to as “pose”.
  • the scan data when displayed in a polar coordinate system, can be composed of a numerical value set that indicates the position of each point by "direction" and "distance” from the origin in the local coordinate system.
  • the polar coordinate system representation can be transformed to an orthogonal coordinate system representation. In the following description, for the sake of simplicity, it is assumed that scan data output from the external sensor is displayed in a rectangular coordinate system.
  • the mobile unit 10 includes a storage device 104 for storing an environmental map, and a position estimation system 115.
  • the position estimation system 115 is used by being connected to the external sensor 102, and includes a processor 106 and a memory 107 storing a computer program that controls the operation of the processor.
  • the position estimation system 115 matches the scan data acquired from the external sensor 102 with the environmental map read from the storage device 104, and estimates the position and orientation of the mobile object 10, that is, a pose. This matching is called pattern matching or scan matching and may be performed according to various algorithms.
  • a typical example of the matching algorithm is the Iterative Closest Point (ICP) algorithm.
  • the position estimation system 115 creates an environment map by matching and linking a plurality of scan data output from the external sensor 102 by matching as described later.
  • the position estimation system 115 in the embodiment of the present disclosure is realized by a processor 106 and a memory 107 storing a computer program for operating the processor 106.
  • the processor 106 performs the following operations in accordance with the instructions of the computer program.
  • the position and orientation of the external sensor 102 on the reference map are obtained by matching the newly acquired latest scan data with the reference map (ie, the mobile object 10). Position and attitude), add the latest scan data to the reference map and update the reference map.
  • the reference map is reset by deleting a part other than a part including the latest scan data from the reference map updated a plurality of times.
  • the environmental map is updated based on the reference map updated several times before the reset.
  • the mobile unit 10 further includes a drive unit 108, an automatic cruise control apparatus 110, and a communication circuit 112.
  • the driving device 108 is a device that generates a driving force for moving the moving body 10. Examples of the driving device 108 include wheels (drive wheels) rotated by an electric motor or engine, a biped or multi-legged walking device operated by a motor or other actuator. The wheels may be omnidirectional wheels such as Mecanum wheels. Also, the mobile unit 10 may be a mobile unit that moves in the air or water, or a hovercraft, and the drive device 108 in that case includes a propeller that is rotated by a motor.
  • the automatic travel control device 110 operates the drive device 108 to control the movement conditions (speed, acceleration, movement direction, etc.) of the moving body 10.
  • the automatic travel control device 110 may move the moving body 10 along a predetermined traveling path, or may move according to an externally provided command.
  • the position estimation system 115 calculates estimates of the position and orientation of the moving object 10 while the moving object 10 is moving or at rest.
  • the automatic cruise control device 110 controls the traveling of the mobile object 10 with reference to this estimated value.
  • the position estimation system 115 and the automatic travel control device 110 may be collectively referred to as a travel control device 120.
  • the automatic cruise control device 110 may also be configured by the position estimation system 115, the processor 106 described above, and the memory 107 storing a computer program for controlling the operation of the processor 106.
  • Such processor 106 and memory 107 may be realized by one or more semiconductor integrated circuits.
  • the communication circuit 112 is a circuit in which the mobile unit 10 is connected to a communication network including an external management device, another mobile unit, or a mobile terminal device of an operator to exchange data and / or commands.
  • FIG. 2 is a plan layout view schematically showing an example of the environment 200 in which the moving body 10 moves. Environment 200 is part of a broader environment.
  • a thick straight line indicates, for example, a fixed wall 202 of a building.
  • FIG. 3 is a view showing a map (environment map M) of the environment 200 shown in FIG.
  • Each dot 204 in the figure corresponds to each point of the point group constituting the environmental map M.
  • a point cloud of the environmental map M may be referred to as a “reference point cloud”
  • a point cloud of scan data may be referred to as a “data point cloud” or a “source point cloud”.
  • Matching is, for example, alignment of scan data (data point group) to an environmental map (reference point group) whose position is fixed. Specifically, when performing matching by the ICP algorithm, pairs of corresponding points are selected between the reference point group and the data point group, and the distance (error) between the points constituting each pair is minimized. The position and orientation of the data point cloud are adjusted.
  • the dots 204 are arranged at equal intervals on a plurality of line segments for the sake of simplicity.
  • the point cloud in the real environment map M may have a more complicated arrangement pattern.
  • the environmental map M is not limited to a point cloud map, and may be a map having straight lines or curves as its components, or may be an occupied grid map. That is, the environment map M may have a structure capable of performing matching between the scan data and the environment map M.
  • scan data acquired by the external sensor 102 of the mobile object 10 has an array of different point groups. If the moving time from the position PA to the position PC from the position PA to the position PC is sufficiently long as compared with the scanning cycle of the external sensor 102, that is, the movement of the moving object 10 is slow, the time axis The two adjacent scan data above are very similar. However, if the movement of the moving object 10 is extremely fast, two adjacent scan data on the time axis may be significantly different.
  • the latest scan data is similar to the scan data immediately before it, matching is relatively easy, and the reliability is high in a short time. Matching is expected. However, if the moving speed of the mobile object 10 is relatively high, the latest scan data may not be similar to the scan data immediately before that, and the time required for matching may be long, or matching within a predetermined time May not complete.
  • FIG. 4A is a view schematically showing an example of scan data SD (t) acquired at time t by the external sensor 102.
  • the scan data SD (t) is displayed in a sensor coordinate system in which the position and posture change with the moving object 10.
  • the scan data SD (t) is represented by a UV coordinate system in which the direct front of the external sensor 102 is a V axis, and the direction rotated 90 ° clockwise from the V axis is a U axis.
  • the moving body 10, more precisely, the external sensor 102 is located at the origin of the UV coordinate system.
  • the mobile unit 10 travels in front of the external sensor 102, that is, in the direction of the V axis.
  • the points making up the scan data SD (t) are described by black circles.
  • a period at which the position estimation system 115 acquires scan data from the external sensor 102 is represented by ⁇ t.
  • ⁇ t is, for example, 200 milliseconds.
  • FIG. 4B is a view schematically showing an example of scan data SD (t + ⁇ t) acquired by the external sensor 102 at time t + ⁇ t.
  • scan data SD (t + ⁇ t) acquired by the external sensor 102 at time t + ⁇ t.
  • the points making up the scan data SD (t + ⁇ t) are described by white circles.
  • ⁇ t is, for example, 200 milliseconds
  • the mobile unit 10 moves about 20 centimeters during the ⁇ t.
  • the movement of about 20 centimeters does not change the environment of the mobile unit 10 significantly, so a wide range overlap between the environment scanned by the outside sensor 102 at time t + ⁇ t and the environment scanned at time t Is included. Therefore, many corresponding points are included between the point group of scan data SD (t) and the point group of scan data SD (t + ⁇ t).
  • FIG. 4C schematically shows a state in which the matching between the scan data SD (t) and the scan data SD (t + ⁇ t) is completed.
  • alignment is performed such that the scan data SD (t + ⁇ t) matches the scan data SD (t).
  • the moving body 10 at time t is located at the origin of the UV coordinate system of FIG. 4C, and the moving body 10 at time t + ⁇ t is at a position moved from the origin of the UV coordinate system.
  • a local environment map (reference map) is created by connecting a plurality of scan data SD (t), SD (t + ⁇ t),..., SD (t + N ⁇ ⁇ t) periodically acquired.
  • N is an integer of 1 or more.
  • FIG. 5 is a diagram schematically showing how a point group constituting scan data at time t rotates and translates from an initial position and approaches a point group on a reference map.
  • m k be the coordinate value of the point on the reference map corresponding to.
  • ⁇ (Z t, k ⁇ m k ) 2 which is a sum of squares of errors calculated for K corresponding points.
  • Decide rigid transformations of rotation and translation so as to reduce ⁇ (Z t, k -m k ) 2 .
  • the rigid transformation is defined by a transformation matrix (homogeneous transformation matrix) that includes rotation angle and translation vectors as parameters.
  • FIG. 6 is a diagram showing the position and orientation after rigid transformation of scan data.
  • the matching between the scan data and the reference map is not complete, and a large error (displacement) still exists between the two point groups.
  • rigid body transformation is further performed.
  • the matching is complete when the error is less than the predetermined value.
  • FIG. 7A is a view schematically showing a state in which matching between the newly acquired latest scan data SD (b) and the scan data SD (a) acquired last time is completed.
  • the black dot points represent the previous scan data
  • the white dot points represent the latest scan data.
  • FIG. 7A shows the position a of the mobile unit 10 when the previous scan data is acquired, and the position b of the mobile unit 10 when the latest scan data is acquired.
  • the scan data SD (a) acquired last time constitutes a “reference map RM”.
  • the reference map RM is a part of the environmental map being created.
  • the position and orientation of the latest scan data SD (b) are matched to match the position and orientation of the scan data SD (a) acquired previously.
  • the scan data SD (b) is added to the reference map RM to update the reference map RM.
  • the coordinate system of the scan data SD (b) is linked to the coordinate system of the scan data SD (a). This connection is expressed in a matrix that defines the rotational and translational transformations (rigid body transformations) of the two coordinate systems. According to such a conversion matrix, coordinate values of each point on the scan data SD (b) can be converted to coordinate values in the coordinate system of the scan data SD (a).
  • FIG. 7B shows a reference map RM in which the scan data acquired next is added to the reference map RM in FIG. 7A and updated.
  • the black dot points represent the reference map RM before updating
  • the white dot points represent the latest scan data SD (c).
  • positions a, b, and c of the mobile unit 10 when the scan data of the previous, previous, and latest times are acquired are shown.
  • the whole of the white circle point cloud and the black circle point cloud in FIG. 7B constitute an updated reference map RM.
  • FIG. 7C shows a reference map RM in which the newly acquired scan data SD (d) is added to the reference map RM in FIG. 7B and updated.
  • the black dot points represent the reference map RM before updating
  • the white dot points represent the latest scan data SD (d).
  • FIG. 7C in addition to the positions a, b and c of the moving body 10 at the estimated position in the past, the position d of the moving body 10 at the position estimated by the matching of the latest scan data SD (d) is shown ing.
  • the entire white circle point cloud and black circle point cloud in FIG. 7C constitute an updated reference map RM.
  • the number of points in the reference map RM increases with each scan of the external sensor 102. This causes an increase in the amount of computation when matching the latest scan data with the reference map RM. For example, when one scan data includes up to about 1000 points, when 2000 scan data are connected to create one reference map RM, the number of points in the reference map RM is about at most It reaches 2 million pieces. When finding the corresponding points and repeating the operation for matching, if the point group of the reference map RM is too large, matching may not be completed within the scan period ⁇ t.
  • the reference map is reset by deleting a part other than a part including the latest scan data from the reference map updated a plurality of times. Also, when the reset is performed, the environment map is updated based on the reference map updated a plurality of times before the reset. For this reason, the environmental map itself can be held without losing the environmental information obtained by the scan.
  • the reference map is reset, for example, when (i) the number of times the reference map is updated reaches a predetermined number, (ii) when the data amount of the reference map reaches a predetermined amount, or (iii) from the previous reset. It can be performed when the elapsed time reaches a predetermined length.
  • the "predetermined number" in the case of (i) may be, for example, 100 times.
  • the "predetermined amount” in the case of (ii) may be, for example, 10000.
  • the "predetermined length" in the case of (iii) may be, for example, 5 minutes.
  • the other scan data should be deleted leaving only the latest scan data, that is, the data acquired by the most recent scan at the time of reset .
  • the number of points included in the latest scan data is equal to or less than a predetermined value, in addition to the latest scan data, a plurality of scan data close to the present are included in the reference map after reset to improve matching accuracy after reset. It is also good.
  • an increase in density of points per unit area of a point cloud beyond a predetermined value can be wasteful for matching.
  • a large number of points (measurement points) exist in a portion corresponding to a rectangular area having a size of 10 ⁇ 10 cm 2 in the environment, matching accuracy is sufficiently higher than the rate at which the amount of calculation required for matching increases. Saturation can occur without improvement.
  • the density of the point cloud constituting the scan data and / or the reference map exceeds the predetermined density, some points are thinned out from the point cloud to reduce the density of the point cloud below the predetermined density You may perform the process to which it reduces.
  • the “predetermined density” may be, for example, 1 / (10 cm) 2 .
  • FIG. 8A schematically shows the environmental map M before the update.
  • FIG. 8B shows how the environmental map M is updated based on the reference map RM.
  • the positional relationship between the reference map RM and the environment map M is shifted.
  • the point cloud that initially constituted the reference map RM was the scan data SD (a).
  • the scan data SD (b) acquired thereafter is consistent with the scan data SD (a). Therefore, the position and the orientation of the reference map RM linked based on the scan data SD (a) depend on the position and the orientation of the scan data SD (a).
  • the position and the orientation of the scan data SD (a) are defined by estimated values of the position a and the posture (orientation) of the moving object 10 when the scan data SD (a) is acquired.
  • the estimated value may include minute errors, which may cause the updated environmental map to deviate from the actual map (environment).
  • FIG. 8C schematically shows a state in which the reference map RM is matched with the environment map M by matching the reference map RM with the environment map M. By this matching, it is suppressed that the updated environmental map deviates from the actual map.
  • the update of the environmental map M is repeated, and eventually the environmental map M is completed.
  • the environmental map created in this way is then used for self-position estimation when the mobile unit 10 moves.
  • FIG. 9A is a view schematically showing an example of scan data SD (t) acquired at time t by an external sensor.
  • the scan data SD (t) is displayed in a sensor coordinate system in which the position and posture change with the moving object 10, and the points forming the scan data SD (t) are described by white circles.
  • FIG. 9B is a diagram schematically showing a state when matching of scan data SD (t) with the environmental map M is started.
  • the processor 106 in FIG. 1 obtains the scan data SD (t) from the external sensor 102
  • the processor 106 matches the scan data SD (t) with the environment map M read from the storage device 104 to obtain the environment of the mobile object 10.
  • the position and attitude on the map M can be estimated.
  • FIG. 9C schematically shows a state in which matching of scan data SD (t) with the environmental map M is completed.
  • the first method is to measure the amount of change by odometry from the position and orientation estimated by the previous matching. For example, when the movable body 10 is moved by two drive wheels, the amount of movement and the direction of movement of the movable body 10 can be determined by encoders attached to the respective drive wheels or motors. As the method of using odometry is known, no further detailed description is necessary.
  • the second method is to predict the current position and orientation based on the history of position and orientation estimates of the mobile object 10. Hereinafter, this point will be described.
  • FIG. 10 is a diagram schematically showing the history of the position and orientation of the moving object 10 obtained in the past by the position estimation system 115 of FIG. 1 and the predicted values of the current position and orientation.
  • the position and orientation history is stored in a memory 107 internal to the position estimation system 115. A part or all of such a history may be stored in a storage device external to the position estimation device 105, for example, the storage device 104 of FIG.
  • the UV coordinate system which is a local coordinate system (sensor coordinate system) of the mobile body 10 is also shown by FIG.
  • the scan data is represented by a UV coordinate system.
  • the position of the mobile object 10 on the environment map M is the coordinate value (xi, yi) of the origin of the UV coordinate system in the coordinate system of the environment map M.
  • the posture (orientation) of the mobile object 10 is the direction ( ⁇ i) of the UV coordinate system with respect to the coordinate system of the environmental map M. ⁇ i is “positive” counterclockwise.
  • predicted values of the current position and posture are calculated from the history of position and posture obtained in the past by the position estimation device.
  • the position and orientation of the moving object obtained by the previous matching is (x i-1 , y i-1 , ⁇ i-1 ), and the position and orientation of the moving object obtained by the previous matching is (x i Let ⁇ 2 , y i ⁇ 2 , ⁇ i ⁇ 2 ). Further, the predicted values of the current position and orientation of the moving object are set as (x i , y i , ⁇ i ). At this time, it is assumed that the following assumption is established.
  • Position (x i-1, y i -1) from the position (x i, y i) is the time required for movement to the position (x i-2, y i -2) from the position (x i- It is equal to the time taken to move to 1 , y i-1 ).
  • Equation 2 the matrix of the second term of the right side of Equation 2 can be simplified as a unit matrix.
  • the position (x i-1, y i -1) from the position (x i, y i) the time required for movement to Delta] t the position (x i-2, y i -2
  • ⁇ s be the time taken to move from the position (x i-1 ) to the position (x i-1 , y i-1 ).
  • FIG. 11 will be referred to.
  • step S10 the processor 106 of the position estimation system 115 acquires current (current) scan data from the external sensor 102.
  • step S12 the processor 106 obtains current position and orientation values by odometry.
  • step S14 the processor 106 performs initial alignment of the latest scan data with respect to the reference map, with the values of the current position and orientation acquired from odometry as initial values.
  • step S16 the processor 106 performs positional deviation correction using an ICP algorithm.
  • step S18 the processor 106 updates the reference map by adding the latest scan data to the existing reference map.
  • step S20 it is determined whether the reference map satisfies the update condition.
  • the update condition as described above, (i) when the number of times the reference map is updated reaches a predetermined number, (ii) when the data amount of the reference map reaches the predetermined amount, or (iii) from the previous reset
  • the condition is such as when the elapsed time of has reached a predetermined length. In the case of No, the process returns to step S10, and the next scan data is acquired. In the case of Yes, it progresses to step S22.
  • step S22 the processor 106 updates the environmental map based on the reference map updated a plurality of times.
  • step S24 the processor 106 deletes the part other than the part including the latest scan data from the reference map updated a plurality of times, and resets the reference map.
  • the number and density of points in the point cloud making up the reference map can be reduced.
  • step S32 the processor 106 searches for corresponding points from two sets of point groups. Specifically, the processor 106 selects a point on the environmental map corresponding to each point constituting the point cloud included in the scan data.
  • step S34 the processor 106 performs rotation and translation rigid transformation (coordinate transformation) of the scan data so as to reduce the distance between corresponding points between the scan data and the environment map. This is to optimize the parameters of the coordinate transformation matrix so as to reduce the distance between corresponding points, that is, the sum (square-sum) of errors of corresponding points. This optimization is performed by iterative calculations.
  • step S36 the processor 106 determines whether the result of the iterative calculation has converged. Specifically, the processor 106 determines that convergence has occurred when the amount of reduction of the sum (square-sum) of errors of corresponding points falls below a predetermined value even if the parameter of the coordinate conversion matrix is changed. If convergence has not occurred, the process returns to step S32, and the processor 106 repeats the process from the search for corresponding points. If it is determined in step S36 that the convergence has occurred, the process proceeds to step S38.
  • step S38 the processor 106 converts the coordinate values of the scan data from the values of the sensor coordinate system into the values of the coordinate system of the environmental map using the coordinate conversion matrix.
  • the coordinate values of the scan data thus obtained can be used to update the environmental map.
  • step S40 the processor 106 executes step S40 instead of step S12 between step S10 and step S14.
  • the processor 106 does not acquire the measurement values of the current position and orientation of the mobile object 10 from the odometry, but based on the history of the position and orientation of the mobile object 10 (external sensor 102), the current position. And calculate predicted posture values.
  • the calculation of the predicted value can be performed by the operation described with reference to FIG.
  • the values obtained in this way are used as initial values of position and posture to execute matching.
  • the other steps are as described above, and therefore the description will not be repeated.
  • the position estimation system is applicable to various moving bodies moved by various driving devices.
  • the position estimation system in the present disclosure may not be mounted and used on a mobile unit equipped with a drive.
  • it may be mounted on a handcart driven by the user and used for map creation.
  • an unmanned transport vehicle will be described as an example of the moving body.
  • an unmanned carrier is described as "AGV: Automatic Guided Vehicle” using abbreviations.
  • AGV is also denoted by “10” in the same manner as the mobile unit 10.
  • FIG. 14 shows an example of the basic configuration of an exemplary mobile management system 100 according to the present disclosure.
  • the mobile management system 100 includes at least one AGV 10 and an operation management apparatus 50 that manages the operation of the AGV 10.
  • the terminal device 20 operated by the user 1 is also shown in FIG.
  • the AGV 10 is an unmanned transport carriage capable of "guideless" traveling, which does not require a derivative such as a magnetic tape for traveling.
  • the AGV 10 can perform self-position estimation, and can transmit the result of estimation to the terminal device 20 and the operation management device 50.
  • the AGV 10 can automatically travel in the environment S in accordance with a command from the operation management device 50.
  • the operation management device 50 is a computer system that tracks the position of each AGV 10 and manages traveling of each AGV 10.
  • the operation management device 50 may be a desktop PC, a laptop PC, and / or a server computer.
  • the operation management apparatus 50 communicates with each AGV 10 via the plurality of access points 2. For example, the operation management device 50 transmits, to each AGV 10, data of coordinates of a position to which each AGV 10 should go next.
  • Each AGV 10 periodically transmits data indicating its position and orientation (for example, every 250 milliseconds) to the operation management device 50.
  • the operation management device 50 transmits data of coordinates of a position to be further advanced.
  • the AGV 10 can also travel in the environment S in accordance with the operation of the user 1 input to the terminal device 20.
  • An example of the terminal device 20 is a tablet computer.
  • FIG. 15 shows an example of an environment S in which three AGVs 10a, 10b and 10c exist. All AGVs are assumed to travel in the depth direction in the figure. The AGVs 10a and 10b are carrying the load placed on the top plate. The AGV 10 c runs following the front AGV 10 b.
  • the reference numerals 10a, 10b and 10c are attached in FIG. 15 for convenience of description, it describes as "AGV10" below.
  • the AGV 10 can also transfer a load using a tow truck connected to itself, in addition to the method of transferring the load placed on the top plate.
  • FIG. 16 shows the AGV 10 and the tow truck 5 before being connected. Each leg of the tow truck 5 is provided with a caster.
  • the AGV 10 is mechanically connected to the tow truck 5.
  • FIG. 17 shows the connected AGV 10 and tow truck 5. When the AGV 10 travels, the tow truck 5 is pulled by the AGV 10. By pulling the tow truck 5, the AGV 10 can transport the load placed on the tow truck 5.
  • connection method of AGV10 and the pulling truck 5 is arbitrary.
  • a plate 6 is fixed to the top plate of the AGV 10.
  • the tow truck 5 is provided with a guide 7 having a slit.
  • the AGV 10 approaches the tow truck 5 and inserts the plate 6 into the slit of the guide 7.
  • the AGV 10 penetrates the plate 6 and the guide 7 with an electromagnetic lock type pin (not shown) to lock the electromagnetic lock.
  • AGV10 and the pulling truck 5 are physically connected.
  • Each AGV 10 and the terminal device 20 can be connected, for example, on a one-to-one basis to perform communication conforming to the Bluetooth (registered trademark) standard.
  • Each AGV 10 and the terminal device 20 can also perform communication conforming to Wi-Fi (registered trademark) using one or more access points 2.
  • the plurality of access points 2 are connected to one another via, for example, a switching hub 3. Two access points 2a and 2b are described in FIG.
  • the AGV 10 is wirelessly connected to the access point 2a.
  • the terminal device 20 is wirelessly connected to the access point 2b.
  • the data transmitted by the AGV 10 is received by the access point 2a, transferred to the access point 2b via the switching hub 3, and transmitted from the access point 2b to the terminal device 20.
  • the data transmitted by the terminal device 20 is received by the access point 2b, transferred to the access point 2a via the switching hub 3, and transmitted from the access point 2a to the AGV 10.
  • the plurality of access points 2 are also connected to the operation management device 50 via the switching hub 3.
  • bidirectional communication is realized also between the operation management device 50 and each of the AGVs 10.
  • a map in the environment S is created in order to allow the AGV 10 to travel while estimating its own position.
  • the AGV 10 is equipped with a position estimation device and an LRF, and the output of the LRF can be used to create a map.
  • the AGV 10 transitions to the data acquisition mode by the operation of the user.
  • the AGV 10 starts acquiring sensor data (scan data) using LRF.
  • the subsequent processing is as described above.
  • the movement in the environment S for acquiring sensor data may be realized by the AGV 10 traveling according to the operation of the user.
  • the AGV 10 wirelessly receives a traveling instruction instructing movement in each of the front, rear, left, and right directions from the user via the terminal device 20.
  • the AGV 10 travels in the environment S back and forth and to the left and right according to a travel command to create a map.
  • the AGV 10 is connected to a control device such as a joystick or the like by wire, the inside of the environment S may be traveled back and forth and left and right according to a control signal from the control device to create a map.
  • the sensor data may be acquired by a person pushing on the measurement carriage on which the LRF is mounted.
  • FIG. 14 and FIG. 15 one AGV may be sufficient.
  • the user 1 can use the terminal device 20 to select one of the registered AGVs to create a map of the environment S.
  • each AGV 10 can automatically travel while estimating its own position using the map.
  • FIG. 18 is an external view of an exemplary AGV 10 according to the present embodiment.
  • the AGV 10 has two drive wheels 11a and 11b, four casters 11c, 11d, 11e and 11f, a frame 12, a transport table 13, a travel control device 14, and an LRF 15.
  • the two drive wheels 11a and 11b are provided on the right and left sides of the AGV 10, respectively.
  • Four casters 11 c, 11 d, 11 e and 11 f are disposed at the four corners of the AGV 10.
  • the AGV 10 also includes a plurality of motors connected to the two drive wheels 11a and 11b, but the plurality of motors are not shown in FIG. Further, FIG.
  • the drive wheel 11a and the drive wheel 11b are also referred to as a wheel 11a and a wheel 11b, respectively.
  • the travel control device 14 is a device that controls the operation of the AGV 10, and mainly includes an integrated circuit including a microcomputer (described later), an electronic component, and a substrate on which the components are mounted.
  • the traveling control device 14 performs transmission and reception of data with the terminal device 20 and the pre-processing calculation described above.
  • the LRF 15 is an optical device that measures the distance to the reflection point by emitting, for example, an infrared laser beam 15 a and detecting the reflected light of the laser beam 15 a.
  • the LRF 15 of the AGV 10 emits a pulsed laser beam 15a while changing its direction every 0.25 degree in a space within a range of 135 degrees (270 degrees in total) with respect to the front of the AGV 10, for example. , And detects the reflected light of each laser beam 15a. This makes it possible to obtain data of the distance to the reflection point in the direction determined by the angle for a total of 1081 steps every 0.25 degrees.
  • the scan of the surrounding space performed by the LRF 15 is substantially parallel to the floor surface and planar (two-dimensional). However, the LRF 15 may scan in the height direction.
  • the AGV 10 can create a map of the environment S based on the position and orientation (orientation) of the AGV 10 and the scan result of the LRF 15.
  • the map may reflect the surrounding walls of the AGV, structures such as columns, and the placement of objects placed on the floor. Map data is stored in a storage device provided in the AGV 10.
  • position and posture of the AGV 10 that is, the pose (x, y, ⁇ ) may be hereinafter simply referred to as “position”.
  • the traveling control device 14 estimates the current position of itself by comparing the measurement result of the LRF 15 with the map data held by itself as described above.
  • the map data may be map data created by another AGV 10.
  • FIG. 19A shows a first hardware configuration example of the AGV 10.
  • FIG. 19A also shows a specific configuration of the traveling control device 14.
  • the AGV 10 includes a traveling control device 14, an LRF 15, two motors 16a and 16b, a drive device 17, and wheels 11a and 11b.
  • the traveling control device 14 includes a microcomputer 14a, a memory 14b, a storage device 14c, a communication circuit 14d, and a position estimation device 14e.
  • the microcomputer 14a, the memory 14b, the storage device 14c, the communication circuit 14d, and the position estimation device 14e are connected by a communication bus 14f and can exchange data with each other.
  • the LRF 15 is also connected to the communication bus 14f via a communication interface (not shown), and transmits measurement data as the measurement result to the microcomputer 14a, the position estimation device 14e and / or the memory 14b.
  • the microcomputer 14 a is a processor or control circuit (computer) that performs calculations for controlling the entire AGV 10 including the traveling control device 14.
  • the microcomputer 14a is a semiconductor integrated circuit.
  • the microcomputer 14a transmits a PWM (Pulse Width Modulation) signal, which is a control signal, to the drive unit 17 to control the drive unit 17 to adjust the voltage applied to the motor. This causes each of the motors 16a and 16b to rotate at a desired rotational speed.
  • PWM Pulse Width Modulation
  • One or more control circuits for example, microcomputers for controlling the drive of the left and right motors 16a and 16b may be provided independently of the microcomputer 14a.
  • motor drive device 17 may be provided with two microcomputers for controlling the drive of motors 16a and 16b, respectively.
  • the memory 14 b is a volatile storage device that stores a computer program executed by the microcomputer 14 a.
  • the memory 14b can also be used as a work memory when the microcomputer 14a and the position estimation device 14e perform an operation.
  • the storage device 14 c is a non-volatile semiconductor memory device.
  • the storage device 14 c may be a magnetic recording medium represented by a hard disk, or an optical recording medium represented by an optical disk.
  • the storage device 14 c may include a head device for writing and / or reading data on any recording medium and a control device of the head device.
  • the storage device 14c stores an environmental map M of the traveling environment S and data (traveling route data) R of one or more traveling routes.
  • the environment map M is created by the AGV 10 operating in the mapping mode and stored in the storage device 14c.
  • the travel route data R is transmitted from the outside after the environment map M is created.
  • the environmental map M and the traveling route data R are stored in the same storage device 14c, but may be stored in different storage devices.
  • the AGV 10 receives traveling route data R indicating a traveling route from the tablet computer.
  • the travel route data R at this time includes marker data indicating the positions of a plurality of markers. “Marker” indicates the passing position (passing point) of the traveling AGV 10.
  • the travel route data R includes at least position information of a start marker indicating a travel start position and an end marker indicating a travel end position.
  • the travel route data R may further include positional information of markers at one or more intermediate waypoints. When the travel route includes one or more intermediate via points, a route from the start marker to the end marker via the travel via points in order is defined as the travel route.
  • the data of each marker may include, in addition to the coordinate data of the marker, data of the orientation (angle) and traveling speed of the AGV 10 until moving to the next marker.
  • the data of each marker is an acceleration time required to accelerate to the traveling speed, and / or It may include data of deceleration time required to decelerate from the traveling speed to a stop at the position of the next marker.
  • the operation management device 50 may control the movement of the AGV 10.
  • the operation management apparatus 50 may instruct the AGV 10 to move to the next marker each time the AGV 10 reaches the marker.
  • the AGV 10 receives, from the operation management apparatus 50, coordinate data of a target position to be headed to next, or data of a distance to the target position and data of an angle to be traveled as travel route data R indicating a travel route.
  • the AGV 10 can travel along the stored travel route while estimating its own position using the created map and sensor data output from the LRF 15 acquired during travel.
  • the communication circuit 14d is, for example, a wireless communication circuit that performs wireless communication compliant with the Bluetooth (registered trademark) and / or the Wi-Fi (registered trademark) standard. Both standards include wireless communication standards using frequencies in the 2.4 GHz band. For example, in the mode in which the AGV 10 is run to create a map, the communication circuit 14d performs wireless communication conforming to the Bluetooth (registered trademark) standard, and communicates with the terminal device 20 on a one-to-one basis.
  • the position estimation device 14e performs map creation processing and estimation processing of the self position when traveling.
  • the position estimation device 14e creates a map of the environment S based on the position and orientation of the AGV 10 and the scan result of LRF.
  • the position estimation device 14e receives sensor data from the LRF 15, and reads out the environmental map M stored in the storage device 14c.
  • the local map data (sensor data) created from the scan result of LRF 15 is matched with the wider environmental map M to identify the self position (x, y, ⁇ ) on the environmental map M.
  • the position estimation device 14 e generates “reliability” data indicating the degree to which the local map data matches the environmental map M.
  • the data of the self position (x, y, ⁇ ) and the reliability can be transmitted from the AGV 10 to the terminal device 20 or the operation management device 50.
  • the terminal device 20 or the operation management device 50 can receive each data of the self position (x, y, ⁇ ) and the reliability, and can display the data on the built-in or connected display device.
  • microcomputer 14a and the position estimation device 14e are separate components, this is an example. It may be a single chip circuit or a semiconductor integrated circuit capable of independently performing each operation of the microcomputer 14a and the position estimation device 14e.
  • FIG. 19A shows a chip circuit 14g including the microcomputer 14a and the position estimation device 14e.
  • the microcomputer 14a and the position estimation device 14e are provided separately and independently will be described.
  • Two motors 16a and 16b are attached to two wheels 11a and 11b, respectively, to rotate each wheel. That is, the two wheels 11a and 11b are respectively drive wheels.
  • the motor 16a and the motor 16b are described as being motors for driving the right and left wheels of the AGV 10, respectively.
  • the moving body 10 may further include a rotary encoder that measures the rotational position or rotational speed of the wheels 11a and 11b.
  • the microcomputer 14a may estimate not only the signal received from the position estimation device 14e but also the signal received from the rotary encoder to estimate the position and attitude of the mobile object 10.
  • the drive device 17 has motor drive circuits 17a and 17b for adjusting the voltage applied to each of the two motors 16a and 16b.
  • Each of motor drive circuits 17a and 17b includes a so-called inverter circuit.
  • the motor drive circuits 17a and 17b turn on or off the current flowing to each motor by the PWM signal transmitted from the microcomputer 14a or the microcomputer in the motor drive circuit 17a, thereby adjusting the voltage applied to the motor.
  • FIG. 19B shows a second hardware configuration example of the AGV 10.
  • the second hardware configuration example differs from the first hardware configuration example (FIG. 19A) in that it has the laser positioning system 14 h and that the microcomputer 14 a is connected to each component on a one-to-one basis. Do.
  • the laser positioning system 14 h has a position estimation device 14 e and an LRF 15.
  • the position estimation device 14e and the LRF 15 are connected by, for example, an Ethernet (registered trademark) cable.
  • the operations of the position estimation device 14e and the LRF 15 are as described above.
  • the laser positioning system 14 h outputs information indicating the pose (x, y, ⁇ ) of the AGV 10 to the microcomputer 14 a.
  • the microcomputer 14a has various general purpose I / O interfaces or general purpose input / output ports (not shown).
  • the microcomputer 14a is directly connected to other components in the travel control device 14, such as the communication circuit 14d and the laser positioning system 14h, via the general-purpose input / output port.
  • the AGV 10 in the embodiment of the present disclosure may be equipped with a safety sensor such as an obstacle detection sensor and a bumper switch which are not shown.
  • FIG. 20 shows a hardware configuration example of the operation management device 50.
  • the operation management apparatus 50 includes a CPU 51, a memory 52, a position database (position DB) 53, a communication circuit 54, a map database (map DB) 55, and an image processing circuit 56.
  • the CPU 51, the memory 52, the position DB 53, the communication circuit 54, the map DB 55, and the image processing circuit 56 are connected by a communication bus 57 and can exchange data with each other.
  • the CPU 51 is a signal processing circuit (computer) that controls the operation of the operation management device 50.
  • the CPU 51 is a semiconductor integrated circuit.
  • the memory 52 is a volatile storage device that stores a computer program that the CPU 51 executes.
  • the memory 52 can also be used as a work memory when the CPU 51 performs an operation.
  • the position DB 53 stores position data indicating each position that can be a destination of each AGV 10.
  • the position data may be represented, for example, by coordinates virtually set in the factory by the administrator. Location data is determined by the administrator.
  • the communication circuit 54 performs wired communication conforming to, for example, the Ethernet (registered trademark) standard.
  • the communication circuit 54 is connected to the access point 2 (FIG. 14) by wire, and can communicate with the AGV 10 via the access point 2.
  • the communication circuit 54 receives data to be transmitted to the AGV 10 from the CPU 51 via the bus 57.
  • the communication circuit 54 also transmits data (notification) received from the AGV 10 to the CPU 51 and / or the memory 52 via the bus 57.
  • the map DB 55 stores data of an internal map of a factory or the like on which the AGV 10 travels.
  • the data format is not limited as long as the map has a one-to-one correspondence with the position of each AGV 10.
  • the map stored in the map DB 55 may be a map created by CAD.
  • the position DB 53 and the map DB 55 may be constructed on a non-volatile semiconductor memory, or may be constructed on a magnetic recording medium represented by a hard disk or an optical recording medium represented by an optical disc.
  • the image processing circuit 56 is a circuit that generates data of an image displayed on the monitor 58.
  • the image processing circuit 56 operates only when the administrator operates the operation management device 50. In the present embodiment, particularly the detailed description is omitted.
  • the monitor 58 may be integrated with the operation management device 50. Further, the CPU 51 may perform the processing of the image processing circuit 56.
  • an AGV traveling in a two-dimensional space is taken as an example.
  • the present disclosure can also be applied to a mobile object moving in three-dimensional space, such as a flying object (drone).
  • a drone creates a three-dimensional space map while flying, the two-dimensional space can be expanded to a three-dimensional space.
  • the above general or specific aspects may be realized by a system, a method, an integrated circuit, a computer program, or a recording medium.
  • the present invention may be realized by any combination of a system, an apparatus, a method, an integrated circuit, a computer program, and a storage medium.
  • the mobile object of the present disclosure can be suitably used for moving and transporting objects such as luggage, parts, finished products, etc. in factories, warehouses, construction sites, logistics, hospitals and the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Optics & Photonics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Traffic Control Systems (AREA)
  • Instructional Devices (AREA)
  • Optical Radar Systems And Details Thereof (AREA)
  • Navigation (AREA)

Abstract

本開示の位置推定システム115は、プロセッサ106と、プロセッサ106を動作させるコンピュータプログラムを記憶するメモリ107とを備える。プロセッサ106は、外界センサ102からスキャンデータを取得してスキャンデータから参照地図を作成すること、新たに取得した最新スキャンデータと参照地図とのマッチングを行うことにより、参照地図上における位置および姿勢を推定し、最新スキャンデータを参照地図に追加して前記参照地図を更新すること、複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して参照地図のリセットを行うこと、および、リセット前の参照地図に基づいて環境地図を更新することを実行する。

Description

位置推定システム、および当該位置推定システムを備える移動体
 本開示は、位置推定システム、および当該位置推定システムを備える移動体に関する。
 無人搬送車(無人搬送台車)および移動ロボットのように自律移動可能な移動体の開発が進められている。
 特開2008-250905号公報は、レーザレンジファインダから取得した局所地図と、前もって用意された地図とのマッチングによって自己位置推定を行う移動ロボットを開示している。
特開2008-250905号公報
 特開2008-250905号公報に開示されている移動ロボットは、マッチングを行うとき、環境地図から不要な点を除去して自己位置の推定を行っている。
 本開示の実施形態は、地図作成時の演算量を低減できる位置推定システムおよび移動体を提供する。
 本開示の位置推定システムは、非限定的で例示的な実施形態において、環境をスキャンしてスキャンデータを周期的に出力する外界センサに接続されて使用される位置推定システムであって、プロセッサと、前記プロセッサを動作させるコンピュータプログラムを記憶するメモリとを備えている。前記プロセッサは、前記コンピュータプログラムの指令にしたがって、前記外界センサから前記スキャンデータを取得し、前記スキャンデータから参照地図を作成すること、前記外界センサから前記スキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと前記参照地図とのマッチングを行うことにより、前記参照地図上における前記外界センサの位置および姿勢を推定し、前記最新スキャンデータを前記参照地図に追加して前記参照地図を更新すること、複数回更新された参照地図から、前記最新スキャンデータを含む一部分以外の部分を削除して、前記参照地図のリセットを行うこと、および、前記リセットを行うとき、前記リセット前の前記複数回更新された参照地図に基づいて環境地図を更新することを実行する。
 本開示の移動体は、非限定的で例示的な実施形態において、上記の位置推定システムと、外界センサと、前記位置推定システムが作成した前記環境地図を記憶する記憶装置と、移動のための駆動装置とを備えている。
 本開示のコンピュータプログラムは、非限定的で例示的な実施形態において、上記いずれかの位置推定システムに使用されるコンピュータプログラムである。
 本開示の実施形態によれば、環境地図を作成するとき、外界センサから周期的に出力される複数のスキャンデータのマッチングを少ない演算量で実行することが可能になる。
図1は、本開示による移動体の実施形態の構成を示す図である。 図2は、移動体が移動する環境の例を模式的に示す平面レイアウト図である。 図3は、図2に示される環境の環境地図を示す図である。 図4Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。 図4Bは、外界センサが時刻t+Δtに取得したスキャンデータSD(t+Δt)の例を模式的に示す図である。 図4Cは、スキャンデータSD(t)にスキャンデータSD(t+Δt)をマッチングさせた状態を模式的に示す図である。 図5は、スキャンデータを構成する点群が初期の位置から回転および並進して、環境地図の点群に近づく様子を模式的に示す図である。 図6は、スキャンデータの剛体変換後の位置および姿勢を示す図である。 図7Aは、外界センサからスキャンデータを取得し、スキャンデータから参照地図を作成した後、新たに取得したスキャンデータを参照地図にマッチングさせた状態を模式的に示す図である。 図7Bは、新たに取得したスキャンデータを図7Aの参照地図に追加して更新した参照地図を模式的に示す図である。 図7Cは、新たに取得したスキャンデータを図7Bの参照地図に追加して更新した参照地図を模式的に示す図である。 図8Aは、更新前の環境地図を模式的に示す図である。 図8Bは、参照地図に基づいて環境地図を更新するときの様子を示す図である。 図8Cは、参照地図と環境地図とのマッチングを行い、参照地図を環境地図に整合させた状態を模式的に示す図である。 図9Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。 図9Bは、環境地図Mに対するスキャンデータSD(t)のマッチングを開始するときの状態を模式的に示す図である。 図9Cは、環境地図Mに対するスキャンデータSD(t)のマッチングが完了した状態を模式的に示す図である。 図10は、過去に得られた移動体の位置および姿勢の履歴と、現在の位置および姿勢の予測値を模式的に示す図である。 図11は、本開示の実施形態における位置推定装置の動作の一部を示すフローチャートである。 図12は、本開示の実施形態における位置推定装置の動作の一部を示すフローチャートである。 図13は、本開示の実施形態における位置推定装置の動作の他の例を示すフローチャートである。 図14は、本開示による、各AGVの走行を制御する制御システムの概要を示す図である。 図15は、AGVが存在する環境の一例を示す斜視図である。 図16は、接続される前のAGVおよび牽引台車を示す斜視図である。 図17は、接続されたAGVおよび牽引台車を示す斜視図である。 図18は、本実施形態にかかる例示的なAGVの外観図である。 図19Aは、AGVの第1のハードウェア構成例を示す図である。 図19Bは、AGVの第2のハードウェア構成例を示す図である。 図20は、運行管理装置のハードウェア構成例を示す図である。
<用語>
 「無人搬送車」(AGV)とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
 「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
 「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
 「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
 「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
 「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
 「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
 「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
 「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、位置推定装置を備え、ガイドレス式で走行することができる。
 「位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
 「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、たとえば、レーザレンジファインダ(測域センサともいう)、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、超音波センサ、および磁気センサがある。
 「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、たとえばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(たとえばジャイロセンサ)がある。
 「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
<本開示における移動体の基本構成>
 図1を参照する。本開示の移動体10は、図1に示される例示的な実施形態において、環境をスキャンしてスキャンデータを周期的に出力する外界センサ102を備える。外界センサ102の典型例は、レーザレンジファインダ(LRF)である。LRFは周期的にたとえば赤外線または可視光のレーザビームを周囲に放射して周囲の環境をスキャンする。レーザビームは、たとえば、壁、柱等の構造物、床の上に置かれた物体などの表面で反射される。LRFは、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータ(スキャンデータ)は、「環境計測データ」または「センサデータ」と呼ばれることがある。
 外界センサ102による環境のスキャンは、たとえば、外界センサ102の正面を基準として左右135度(合計270度)の範囲の環境に対して行われる。具体的には、水平面内において所定のステップ角度ごとに方向を変化させながらパルス状のレーザビームを放射し、各レーザビームの反射光を検出して距離を計測する。ステップ角度が0.3度であれば、合計901ステップ分の角度で決まる方向における反射点までの距離の測定データを得ることができる。この例において、外界センサ102が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかし、外界センサは、三次元的なスキャンを行ってもよい。
 スキャンデータの典型例は、スキャンごとに取得される点群(point cloud)を構成する各点の位置座標によって表現され得る。点の位置座標は、移動体10とともに移動するローカル座標系によって規定される。このようなローカル座標系は、移動体座標系またはセンサ座標系と呼ばれ得る。本開示においては、移動体10に固定されたローカル座標系の原点を移動体10の「位置」と定義し、ローカル座標系の向き(orientation)を移動体10の「姿勢」と定義する。以下、位置および姿勢を合わせて「ポーズ」と称することがある。
 スキャンデータは、極座標系で表示される場合、各点の位置をローカル座標系における原点からの「方向」および「距離」で示す数値セットから構成され得る。極座標系の表示は、直交座標系の表示に変換され得る。以下の説明では、簡単のため、外界センサから出力されたスキャンデータは、直交座標系で表示されているとする。
 移動体10は、環境地図を記憶する記憶装置104と、位置推定システム115とを備える。
 位置推定システム115は、外界センサ102に接続されて使用され、プロセッサ106と、プロセッサの動作を制御するコンピュータプログラムを記憶したメモリ107とを有している。
 位置推定システム115は、外界センサ102から取得したスキャンデータと、記憶装置104から読み出された環境地図とのマッチングを行い、移動体10の位置および姿勢、すなわちポーズを推定する。このマッチングは、パターンマッチングまたはスキャンマッチングと呼ばれ、種々のアルゴリズムにしたがって実行され得る。マッチングアルゴリズムの典型例は、Iterative Closest Point (ICP:反復最近接点)アルゴリズムである。
 位置推定システム115は、後述するように、外界センサ102から出力される複数のスキャンデータをマッチングによって整合させ、連結することにより、環境地図を作成する。
 本開示の実施形態にける位置推定システム115は、プロセッサ106と、プロセッサ106を動作させるコンピュータプログラムを記憶するメモリ107とによって実現される。プロセッサ106は、コンピュータプログラムの指令にしたがって、以下の動作を実行する。
 (1)外界センサ102からスキャンデータを取得し、スキャンデータから参照地図を作成する。
 (2)外界センサ102からスキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと参照地図とのマッチングを行うことにより、参照地図上における外界センサ102の位置および姿勢(すなわち移動体10の位置および姿勢)を推定し、最新スキャンデータを参照地図に追加して参照地図を更新する。
 (3)複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して、参照地図のリセットを行う。
 (4)リセットを行うとき、リセット前の複数回更新された参照地図に基づいて環境地図を更新する。
 上記の動作の詳細は後述する。
 図示されている例において、移動体10は、さらに、駆動装置108、自動走行制御装置110、および通信回路112を備えている。駆動装置108は、移動体10が移動するための駆動力を発生する装置である。駆動装置108の例は、電気モータまたはエンジンによって回転する車輪(駆動輪)、モータまたは他のアクチュエータによって動作する二足または多足歩行装置を含む。車輪は、メカナムホイールなどの全方位ホイールであってもよい。また、移動体10が空中または水中を移動する移動体、あるいはホバークラフトであってもよく、その場合の駆動装置108は、モータによって回転するプロペラを含む。
 自動走行制御装置110は、駆動装置108を操作して移動体10の移動条件(速度、加速度、移動方向など)を制御する。自動走行制御装置110は、所定の走行経路に沿って移動体10を移動させてもよく、外部から与えられる指令にしたがって移動させてもよい。位置推定システム115は、移動体10の移動中または停止中において、移動体10の位置および姿勢の推定値を算出する。自動走行制御装置110は、この推定値を参照して移動体10の走行を制御する。
 位置推定システム115および自動走行制御装置110を、全体として、走行制御装置120と呼んでもよい。自動走行制御装置110も、位置推定システム115とともに、上述したプロセッサ106と、プロセッサ106の動作を制御するコンピュータプログラムを格納したメモリ107によって構成され得る。このようなプロセッサ106およびメモリ107は、1個または複数の半導体集積回路によって実現され得る。
 通信回路112は、移動体10が外部の管理装置、他の移動体、または操作者のモバイル端末機器などを含む通信ネットワークに接続してデータおよび/または指令のやりとりを行う回路である。
<環境地図>
 図2は、移動体10が移動する環境200の例を模式的に示す平面レイアウト図である。環境200は、より広い環境の一部である。図2において、太い直線は、たとえば建造物の固定壁202を示している。
 図3は、図2に示される環境200の地図(環境地図M)を示す図である。図中の各ドット204は、環境地図Mを構成する点群の各点に相当する。本開示において、環境地図Mの点群を「参照点群」と称し、スキャンデータの点群を「データ点群」または「ソース点群」と称する場合がある。マッチングは、たとえば、位置が固定された環境地図(参照点群)に対して、スキャンデータ(データ点群)の位置合わせを行うことである。ICPアルゴリズムによるマッチングを行う場合、具体的には、参照点群とデータ点群との間で対応する点のペアが選択され、各ペアを構成する点同士の距離(誤差)を最小化するようにデータ点群の位置および向きが調整される。
 図3において、ドット204は、簡単のため、複数の線分上に等間隔で配列されている。現実の環境地図Mにおける点群は、より複雑な配置パターンを有していてもよい。環境地図Mは、点群地図に限定されず、直線または曲線を構成要素とする地図であってもよいし、占有格子地図であってもよい。すなわちスキャンデータと環境地図Mとの間でマッチングを行うことが可能な構造を環境地図Mが備えていればよい。
 移動体10が図3に示される位置PA、位置PB、および位置PCのそれぞれにあるときに、移動体10の外界センサ102が取得するスキャンデータは、それぞれ、異なる点群の配列を有する。移動体10が位置PAから、位置PBを経て位置PCに達するまでの移動時間が、外界センサ102によるスキャンの周期に比べて十分に長い場合、すなわち、移動体10の移動が遅い場合、時間軸上で隣接する2つのスキャンデータは極めて類似している。しかし、移動体10の移動が著しく速い場合は、時間軸上で隣接する2つのスキャンデータは大きく異なってしまう可能性がある。
 このように外界センサ102から順次出力されるスキャンデータのうち、最新のスキャンデータがその直前のスキャンデータに類似している場合は、マッチングは相対的に容易であり、短時間で信頼度の高いマッチングが期待される。しかし、移動体10の移動速度が相対的に高い場合は、最新のスキャンデータがその直前のスキャンデータに類似していない可能性があり、マッチングに要する時間が長くなったり、所定時間内にマッチングが完了しないことがあり得る。
<地図作成時のマッチング>
 図4Aは、外界センサ102が時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。スキャンデータSD(t)は、移動体10とともに位置および姿勢が変わるセンサ座標系で表示されている。スキャンデータSD(t)は、外界センサ102の真正面をV軸として、V軸から時計周りに90°回転した方向をU軸とするUV座標系によって表現される。UV座標系の原点に移動体10、より正確には外界センサ102が位置している。本開示では、移動体10が前進するとき、移動体10は、外界センサ102の真正面、すなわちV軸の方向に進む。わかりやすさのため、スキャンデータSD(t)を構成する点は黒丸で記載されている。
 本明細書において位置推定システム115が外界センサ102からスキャンデータを取得する周期をΔtとする。Δtはたとえば200ミリ秒である。移動体10が移動しているとき、外界センサ102から周期的に取得されるスキャンデータの内容は変化し得る。
 図4Bは、外界センサ102が時刻t+Δtに取得したスキャンデータSD(t+Δt)の例を模式的に示す図である。わかりやすさのため、スキャンデータSD(t+Δt)を構成する点は白丸で記載されている。
 Δtがたとえば200ミリ秒である場合、移動体10が毎秒1メールの速さで移動していると、Δtの間に移動体10は20センチメートル程度移動する。通常、20センチメートル程度の移動によって、移動体10の環境は大きく変化しないため、外界センサ102が時刻t+Δtにスキャンした環境と、時刻tにスキャンした環境との間には広い範囲で重複した部分が含まれる。したがって、スキャンデータSD(t)の点群とスキャンデータSD(t+Δt)の点群との間には多くの対応点が含まれることになる。
 図4Cは、スキャンデータSD(t)とスキャンデータSD(t+Δt)とのマッチングが完了した状態を模式的に示している。この例では、スキャンデータSD(t)に対してスキャンデータSD(t+Δt)が整合するように位置合わせが行われている。図4CのUV座標系の原点には時刻tにおける移動体10が位置し、時刻t+Δtにおける移動体10は、UV座標系の原点から移動した位置にある。2枚のスキャンデータのマッチング行うことにより、一方のローカル座標系に対する他方ローカル座標系の配置関係が求められる。
 こうして、周期的に取得される複数のスキャンデータSD(t)、SD(t+Δt)、・・・、SD(t+N×Δt)を連結することにより、局所的な環境地図(参照地図)を作成することができる。ここで、Nは1以上の整数である。
 図5は、時刻tにおけるスキャンデータを構成する点群が初期の位置から回転および並進して、参照地図の点群に近づく様子を模式的に示す図である。時刻tにおけるスキャンデータの点群を構成するK個の点のうちのk番目(k=1、2、・・・、K-1、K)の点の座標値をZt,k、この点に対応する参照地図上の点の座標値をmkとする。このとき、2つの点群における対応点の誤差は、K個の対応点について計算した誤差の二乗和であるΣ(Zt,k-mk2をコスト関数として評価することができる。Σ(Zt,k-mk2を小さくするように回転および並進の剛体変換を決定する。剛体変換は、回転の角度および並進のベクトルをパラメータとして含む変換行列(同次変換行列)によって規定される。
 図6は、スキャンデータの剛体変換後の位置および姿勢を示す図である。図6に示される例において、スキャンデータと参照地図とのマッチングは完了しておらず、2つの点群の間には、まだ大きな誤差(位置ずれ)が存在している。この位置ずれを縮小するため、剛体変換をさらに行う。こうして、誤差が所定値を下回る大きさになったとき、マッチングは完了する。
<参照地図の作成>
 図7Aは、新たに取得した最新のスキャンデータSD(b)と、前回に取得したスキャンデータSD(a)とのマッチングが完了した状態を模式的に示す図である。図7Aにおいて、黒円の点群は前回のスキャンデータを表し、白丸の点群は最新のスキャンデータを表している。図7Aには、前回のスキャンデータを取得したときの移動体10の位置a、および、最新のスキャンデータを取得したときの移動体10の位置bが示されている。
 この例において、前回に取得したスキャンデータSD(a)は「参照地図RM」を構成している。参照地図RMは、作成されつつある環境地図の一部である。最新のスキャンデータSD(b)の位置および向きは、前回に取得したスキャンデータSD(a)の位置および向きに対して整合するようにマッチングが実行される。
 このようなマッチングを行うことにより、参照地図RM上における移動体10bの位置および姿勢を知ることができる。マッチングが完了した後、スキャンデータSD(b)を参照地図RMに追加して参照地図RMを更新する。
 スキャンデータSD(b)の座標系は、スキャンデータSD(a)の座標系に連結される。この連結は、2つの座標系の回転および並進の変換(剛体変換)を規定する行列に表される。このような変換の行列によれば、スキャンデータSD(b)上の各点の座標値を、スキャンデータSD(a)の座標系における座標値に変換することができる。
 図7Bは、次に取得したスキャンデータを図7Aの参照地図RMに追加して更新した参照地図RMを示している。図7Bにおいて、黒円の点群は更新前の参照地図RMを表し、白丸の点群は最新のスキャンデータSD(c)を表している。図7Bには、前々回、前回、および、最新のスキャンデータを取得したときの移動体10の位置a、b、cが示されている。図7Bの白丸の点群および黒円の点群の全体は、更新された参照地図RMを構成している。
 図7Cは、新たに取得したスキャンデータSD(d)を図7Bの参照地図RMに追加して更新した参照地図RMを示している。図7Cにおいて、黒円の点群は更新前の参照地図RMを表し、白丸の点群は最新のスキャンデータSD(d)を表している。図7Cには、過去の推定位置にある移動体10の位置a、b、cに加えて、最新のスキャンデータSD(d)のマッチングによって推定した位置にある移動体10の位置dが示されている。図7Cの白丸の点群および黒円の点群の全体は、更新された参照地図RMを構成している。
 このようにして、参照地図RMは次々と更新されるため、参照地図RM内の点の個数が外界センサ102のスキャンごとに増大していく。このことは、最新スキャンデータと参照地図RMとのマッチングを行うときの演算量の増加を引き起こす。たとえば1枚のスキャンデータが最大約1000個の点を含む場合、2000枚のスキャンデータをつなぎ合わせて1枚の参照地図RMを作成すると、その参照地図RM内の点の個数は、最大で約200万個にも達する。対応する点を見つけてマッチングのための演算を反復するとき、参照地図RMの点群が大きすぎると、スキャン周期であるΔtの期間内にマッチングが完了しない可能性がある。
 本開示の位置推定システムでは、複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して参照地図のリセットを行う。また、リセットを行うとき、リセット前の複数回更新された参照地図に基づいて環境地図を更新する。このため、環境地図そのものは、スキャンによって得た環境情報を失うことなく保持し得る。
 参照地図のリセットは、たとえば、(i)参照地図を更新する回数が所定数に達したとき、(ii)参照地図のデータ量が所定量に達したとき、または(iii)前回のリセットからの経過時間が所定長さに達したときに行うことができる。(i)の場合の「所定数」は、たとえば100回であり得る。(ii)の場合の「所定量」は、たとえば10000であり得る。(iii)の場合の「所定長さ」は、たとえば5分であり得る。
 リセット後の参照地図のデータ量を最小にするには、最新のスキャンデータ、すなわち、リセットを行う時点で最も新しい1回のスキャンによって取得したデータのみを残して他のスキャンデータを削除すればよい。最新のスキャンデータに含まれる点の個数が所定値以下の場合、リセット後のマッチング精度を高めるため、最新のスキャンデータの加えて、現在に近い複数のスキャンデータをリセット後の参照地図に含めてもよい。
 複数のスキャンデータから参照地図を作成するとき、点群の単位面積あたり点の密度が所定値を超えて増加することはマッチングにとって無駄になり得る。たとえば、環境内で10×10cm2のサイズを有する矩形の領域に相当する部分に多数の点(測定点)が存在した場合、マッチングに要する演算量が増加する割合に比べてマッチング精度が充分に向上せずに飽和することが起こり得る。このような無駄を抑制するため、スキャンデータおよび/または参照地図を構成する点群の密度が所定密度を超えたときには、点群から幾つかの点を間引き、点群の密度を所定密度以下に低下させる処理を行ってもよい。「所定密度」は、たとえば1個/(10cm)2であり得る。
 図8Aは、更新前の環境地図Mを模式的に示している。図8Bは、参照地図RMに基づいて環境地図Mを更新するときの様子を示している。この例において、参照地図RMと環境地図Mとの間で配置関係がずれている。図7Aを参照しながら説明した例では、最初に参照地図RMを構成していた点群は、スキャンデータSD(a)であった。その後に取得されたスキャンデータSD(b)は、スキャンデータSD(a)に対して整合している。このため、スキャンデータSD(a)を基準に連結された参照地図RMの位置および向きは、スキャンデータSD(a)の位置および向きに依存する。一方、スキャンデータSD(a)の位置および向きは、スキャンデータSD(a)を取得したときの移動体10の位置aおよび姿勢(向き)の推定値によって規定される。推定値が微小誤差を含む可能性があり、それによって更新後の環境地図が実際の地図(環境)から乖離していくことが懸念される。
 図8Cは、参照地図RMと環境地図Mとのマッチングを行い、参照地図RMを環境地図Mに整合させた状態を模式的に示している。このマッチングにより、更新後の環境地図が実際の地図から乖離していくことが抑制される。
 このようにして環境地図Mの更新が繰り返され、やがて環境地図Mは完成する。このようにして作成された環境地図は、その後、移動体10の移動に際して自己位置推定に利用される。
<環境地図を用いた位置推定>
 図9Aは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。スキャンデータSD(t)は、移動体10とともに位置および姿勢が変わるセンサ座標系で表示され、スキャンデータSD(t)を構成する点は白丸で記載されている。
 図9Bは、環境地図Mに対するスキャンデータSD(t)のマッチングを開始するときの状態を模式的に示す図である。図1のプロセッサ106は、外界センサ102からスキャンデータSD(t)を取得すると、スキャンデータSD(t)と記憶装置104から読み出した環境地図Mとのマッチングを行うことにより、移動体10の環境地図M上における位置および姿勢を推定することができる。このようなマッチングを開始するとき、時刻tにおける移動体10の位置および姿勢の初期値を決定する必要がある(図5参照)。初期値が、実際の移動体10の位置および姿勢に近いほど、マッチングに要する時間は短縮され得る。
 図9Cは、環境地図Mに対するスキャンデータSD(t)のマッチングが完了した状態を模式的に示す図である。
 本開示の実施形態では、この初期値の決定に際して2種類の方法を採用することができる。
 第1の方法では、前回のマッチングによって推定した位置および姿勢から変化量をオドメトリによって計測することである。たとえば、移動体10が2個の駆動輪によって移動するとき、それぞれの駆動輪またはモータに取り付けられたエンコーダにより、移動体10の移動量および移動方向を求めることができる。オドメトリを用いる方法は公知であるため、さらに詳細な説明は特に必要ない。
 第2の方法は、移動体10の位置および姿勢の推定値の履歴に基づいて、現在の位置および姿勢を予測することである。以下、この点を説明する。
<初期値の予測>
 図10は、図1の位置推定システム115によって過去に得られた移動体10の位置および姿勢の履歴と、現在の位置および姿勢の予測値を模式的に示す図である。位置および姿勢の履歴は、位置推定システム115の内部のメモリ107に記憶される。このような履歴の一部または全部は、位置推定装置105の外部の記憶装置、たとえば図1の記憶装置104に記憶されていても良い。
 図10には、移動体10のローカル座標系(センサ座標系)であるUV座標系も示されている。スキャンデータは、UV座標系によって表現される。環境地図M上における移動体10の位置は、環境地図Mの座標系におけるUV座標系の原点の座標値(xi,yi)である。移動体10の姿勢(向き)は、環境地図Mの座標系に対するUV座標系の向き(θi)である。θiは半時計回りを「正」とする。
 本開示の実施形態では、位置推定装置によって過去に得られた位置および姿勢の履歴から、現在の位置および姿勢の予測値を算出する。
 前回のマッチングによって得られた移動体の位置および姿勢を(xi-1,yi-1,θi-1)、さらにその前のマッチングによって得られた移動体の位置および姿勢を(xi-2,yi-2,θi-2)とする。また、現在の移動体の位置および姿勢の予測値を(xi,yi,θi)とする。このとき、以下の仮定が成立するとする。
 仮定1:位置(xi-1,yi-1)から位置(xi,yi)までの移動に要する時間は、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動に要した時間に等しい。
 仮定2:位置(xi-1,yi-1)から位置(xi,yi)までの移動時の移動速度は、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動時の移動速度に等しい。
 仮定3:θi-θi-1は、Δθ=θyi-θi-1に等しい。
 上記の過程のもと、以下の数1の式が設立する。
Figure JPOXMLDOC01-appb-M000001
ここで、Δθは、上述の通り、θyi-θi-1である。
 移動体の姿勢(向き)については、仮定3から、以下の数2の関係が成立する。
(数2)
 θi=θi-1+Δθ
 なお、Δθがゼロであるとの近似を行うと、数2の右辺第2項の行列は単位行列として計算が単純化され得る。
 上記の仮定1が成立しない場合、位置(xi-1,yi-1)から位置(xi,yi)までの移動に要する時間をΔt、位置(xi-2,yi-2)から位置(xi-1,yi-1)までの移動に要した時間をΔsとする。この場合、数1の右辺における(xi-1-xi-2)および(yi-1-yi-2)を、それぞれ、Δt/Δs倍する補正と、数1の右辺の行列におけるΔθをΔt/Δs倍する補正を行えばよい。
<位置推定システムの動作フロー>
 図1、図11から図13を参照しながら、本開示の実施形態における位置推定システムの動作フローを説明する。
 まず、図11を参照する。
 ステップS10において、位置推定システム115のプロセッサ106は、外界センサ102から最新(現在:current)のスキャンデータを取得する。
 ステップS12において、プロセッサ106は、オドメトリによって現在の位置および姿勢の値を取得する。
 ステップS14において、プロセッサ106は、オドメトリから取得した現在の位置および姿勢の値を初期値として、参照地図に対する最新スキャンデータの初期位置合わせを行う。
 ステップS16において、プロセッサ106は、ICPアルゴリズムによる位置ずれ補正を行う。
 ステップS18において、プロセッサ106は、最新スキャンデータを既存の参照地図に追加することにより、参照地図の更新を行う。
 ステップS20において、参照地図が更新条件を満たしたか否かを判定する。更新条件は、前述したように、(i)参照地図を更新する回数が所定数に達したとき、(ii)参照地図のデータ量が所定量に達したとき、または(iii)前回のリセットからの経過時間が所定長さに達したとき、などの条件である。Noの場合、ステップS10に戻り、次のスキャンデータを取得する。Yesの場合は、ステップS22に進む。
 ステップS22において、プロセッサ106は、複数回更新された参照地図に基づいて環境地図を更新する。
 ステップS24において、プロセッサ106は、複数回更新された参照地図から、最新スキャンデータを含む一部分以外の部分を削除して、参照地図のリセットを行う。こうして、参照地図を構成する点群内の点の個数および密度を低減することができる。
 次に図12を参照して、ステップS16における位置ずれ補正を説明する。
 まず、ステップS32において、プロセッサ106は、2組の点群から対応点の探索を行う。具体的には、プロセッサ106は、スキャンデータに含まれる点群を構成する各点に対応する、環境地図上の点を選択する。
 ステップS34において、プロセッサ106は、スキャンデータと環境地図との間にある対応点間距離を縮小するように、スキャンデータの回転および並進の剛体変換(座標変換)を行う。これは、対応点間距離、すなわち、対応点の誤差の総和(二乗和)を小さくするように、座標変換行列のパラメータを最適化することである。この最適化は反復計算によって行われる。
 ステップS36において、プロセッサ106は、反復計算の結果が収束したか否かを判定する。具体的には、プロセッサ106は、座標変換行列のパラメータを変化させても対応点の誤差の総和(二乗和)の減少量が所定値を下回ったとき、収束したと判定する。収束しなかったときは、ステップS32に戻り、プロセッサ106は、対応点の探索からの処理を繰りかえす。ステップS36において、収束したと判定されたときは、ステップS38に進む。
 ステップS38において、プロセッサ106は、座標変換行列を用いてスキャンデータの座標値をセンサ座標系の値から環境地図の座標系の値に変換する。こうして得たスキャンデータの座標値は、環境地図の更新に用いることができる。
 次に、図13を参照して図11のフローの変形例を説明する。
 図13のフローが図11のフローと異なる点は、ステップS10とステップS14との間において、プロセッサ106がステップS12に代えてステップS40を実行することにある。ステップS40では、プロセッサ106は、オドメトリから移動体10の現在の位置および姿勢の計測値を取得するのではなく、移動体10(外界センサ102)の位置および姿勢の履歴に基づいて、現在の位置および姿勢の予測値を算出する。この予測値の計算は、図10を参照しながら説明した演算によって実行することができる。こうして得た値を、位置および姿勢の初期値としてマッチングを実行する。他のステップは、前述した通りであるため、説明の繰り返しは行わない。
 図13のフローによれば、ロータリエンコーダなどの内界センサの出力を用いて位置および姿勢を求める必要がなくなる。特にロータリエンコーダは、車輪がスリップしたときには大きな誤差が発生し、その誤差は累積されるため、測定値の信頼度が低い。さらにロータリエンコーダによる測定は、メカナムホイールなどの全方位ホイール、二足または多足歩行装置を用いて移動する移動体、あるいは、バークラフトおよびドローンなどの飛行体には適用できない。これに対して、本開示による位置推定システムは、多用な駆動装置によって移動する種々の移動体に適用可能である。
 本開示における位置推定システムは、駆動装置を備えた移動体に搭載されて使用されなくてもよい。たとえばユーザによって駆動される手押し車に載せられて地図作成に用いられてもよい。
<例示的な実施形態>
 以下、本開示による位置推定システムを備える移動体の実施形態をより詳細に説明する。本実施形態では、移動体の一例として無人搬送車を挙げる。以下の説明では、略語を用いて、無人搬送車を「AGV:Automatic Guided Vehicle」と記述する。以下、「AGV」についても、移動体10と同様に参照符号「10」を付す。
(1)システムの基本構成
 図14は、本開示による例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、AGV10の運行管理を行う運行管理装置50とを含む。図14には、ユーザ1によって操作される端末装置20も記載されている。
 AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令にしたがって環境S内を自動走行することが可能である。
 運行管理装置50は各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。たとえば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、たとえば250ミリ秒ごとに自身の位置および姿勢(orientation)を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて環境S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。
 図15は、3台のAGV10a,10bおよび10cが存在する環境Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、図15では参照符号10a,10bおよび10cを付したが、以下では、「AGV10」と記述する。
 AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。図16は接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。図17は、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
 AGV10と牽引台車5との接続方法は任意である。ここでは一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
 再び図14を参照する。各AGV10と端末装置20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi-Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、たとえばスイッチングハブ3を介して互いに接続されている。図14には2台のアクセスポイント2a,2bが記載されている。AGV10はアクセスポイント2aと無線で接続されている。端末装置20はアクセスポイント2bと無線で接続されている。AGV10が送信したデータはアクセスポイント2aで受信された後、スイッチングハブ3を介してアクセスポイント2bに転送され、アクセスポイント2bから端末装置20に送信される。また、端末装置20が送信したデータは、アクセスポイント2bで受信された後、スイッチングハブ3を介してアクセスポイント2aに転送され、アクセスポイント2aからAGV10に送信される。これにより、AGV10および端末装置20の間の双方向通信が実現される。複数のアクセスポイント2はスイッチングハブ3を介して運行管理装置50とも接続されている。これにより、運行管理装置50と各AGV10との間でも双方向通信が実現される。
(2)環境地図の作成
 自己位置を推定しながらAGV10が走行できるようにするため、環境S内の地図が作成される。AGV10には位置推定装置およびLRFが搭載されており、LRFの出力を利用して地図を作成できる。
 AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10はLRFを用いたセンサデータ(スキャンデータ)の取得を開始する。その後の処理は、前述した通りである。
 なお、センサデータを取得するための環境S内の移動は、ユーザの操作にしたがってAGV10が走行することによって実現し得る。たとえば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は走行指令にしたがって環境S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって環境S内を前後左右に走行し、地図を作成してもよい。LRFを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
 なお、図14および図15には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、環境Sの地図を作成させることができる。
 地図が作成されると、以後、各AGV10は当該地図を利用して自己位置を推定しながら自動走行することができる。
(3)AGVの構成
 図18は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、2つの駆動輪11aおよび11bと、4つのキャスター11c、11d、11eおよび11fと、フレーム12と、搬送テーブル13と、走行制御装置14と、LRF15とを有する。2つの駆動輪11aおよび11bは、AGV10の右側および左側にそれぞれ設けられている。4つのキャスター11c、11d、11eおよび11fは、AGV10の4隅に配置されている。なお、AGV10は、2つの駆動輪11aおよび11bに接続される複数のモータも有するが、複数のモータは図18には示されていない。また、図18には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fとが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11eおよび11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
 走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および、前処理演算を行う。
 LRF15は、たとえば赤外のレーザビーム15aを放射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。本実施形態では、AGV10のLRF15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを放射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、本実施形態では、LRF15が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかしながら、LRF15は高さ方向のスキャンを行ってもよい。
 AGV10の位置および姿勢(向き)と、LRF15のスキャン結果とにより、AGV10は、環境Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
 AGV10の位置および姿勢、すなわちポーズ(x,y,θ)を、以下、単に「位置」と呼ぶことがある。
 走行制御装置14は、前述したようにして、LRF15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定する。地図データは、他のAGV10が作成した地図データであってもよい。
 図19Aは、AGV10の第1のハードウェア構成例を示している。また図19Aは、走行制御装置14の具体的な構成も示している。
 AGV10は、走行制御装置14と、LRF15と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bとを備えている。
 走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、位置推定装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび位置推定装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。LRF15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、位置推定装置14eおよび/またはメモリ14bに送信する。
 マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
 左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(たとえばマイコン)を、マイコン14aとは独立して設けてもよい。たとえば、モータ駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。
 メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび位置推定装置14eが演算を行う際のワークメモリとしても利用され得る。
 記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
 記憶装置14cは、走行する環境Sの環境地図M、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。環境地図Mは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶される。走行経路データRは、環境地図Mが作成された後に外部から送信される。本実施形態では、環境地図Mおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
 走行経路データRの例を説明する。
 端末装置20がタブレットコンピュータである場合には、AGV10はタブレットコンピュータから走行経路を示す走行経路データRを受信する。このときの走行経路データRは、複数のマーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカの位置情報を少なくとも含む。走行経路データRは、さらに、1以上の中間経由点のマーカの位置情報を含んでもよい。走行経路が1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。各マーカのデータは、そのマーカの座標データに加えて、次のマーカに移動するまでのAGV10の向き(角度)および走行速度のデータを含み得る。AGV10が各マーカの位置で一旦停止し、自己位置推定および端末装置20への通知などを行う場合には、各マーカのデータは、当該走行速度に達するまでの加速に要する加速時間、および/または、当該走行速度から次のマーカの位置で停止するまでの減速に要する減速時間のデータを含み得る。
 端末装置20ではなく運行管理装置50(たとえば、PCおよび/またはサーバコンピュータ)がAGV10の移動を制御してもよい。その場合には、運行管理装置50は、AGV10がマーカに到達する度に、次のマーカへの移動をAGV10に指示してもよい。たとえば、AGV10は、運行管理装置50から、次に向かうべき目的位置の座標データ、または、当該目的位置までの距離および進むべき角度のデータを、走行経路を示す走行経路データRとして受信する。
 AGV10は、作成された地図と走行中に取得されたLRF15が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
 通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi-Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。たとえばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
 位置推定装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。位置推定装置14eは、AGV10の位置および姿勢とLRFのスキャン結果とにより、環境Sの地図を作成する。走行時には、位置推定装置14eは、LRF15からセンサデータを受け取り、また、記憶装置14cに記憶された環境地図Mを読み出す。LRF15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の環境地図Mとのマッチングを行うことにより、環境地図M上における自己位置(x,y,θ)を同定する。位置推定装置14eは、局所的地図データが環境地図Mに一致した程度を表す「信頼度」のデータを生成する。自己位置(x,y,θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x,y,θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
 本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。図19Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
 2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
 移動体10は、さらに、車輪11aおよび11bの回転位置または回転速度を測定するロータリエンコーダをさらに備えていてもよい。マイコン14aは、位置推定装置14eから受信した信号だけでなく、ロータリエンコーダから受信した信号を利用して移動体10の位置および姿勢を推定してもよい。
 駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
 図19Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(図19A)と相違する。
 レーザ測位システム14hは、位置推定装置14eおよびLRF15を有する。位置推定装置14eおよびLRF15は、たとえばイーサネット(登録商標)ケーブルで接続されている。位置推定装置14eおよびLRF15の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x,y,θ)を示す情報をマイコン14aに出力する。
 マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
 図19Bに関して上述した構成以外は、図19Aの構成と共通である。よって共通の構成の説明は省略する。
 本開示の実施形態におけるAGV10は、図示されていない障害物検知センサおよびバンパースイッチなどのセーフティセンサを備えていてもよい。
(4)運行管理装置の構成例
 図20は、運行管理装置50のハードウェア構成例を示している。運行管理装置50は、CPU51と、メモリ52と、位置データベース(位置DB)53と、通信回路54と、地図データベース(地図DB)55と、画像処理回路56とを有する。
 CPU51、メモリ52、位置DB53、通信回路54、地図DB55および画像処理回路56は通信バス57で接続されており、相互にデータを授受することが可能である。
 CPU51は、運行管理装置50の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU51は半導体集積回路である。
 メモリ52は、CPU51が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ52は、CPU51が演算を行う際のワークメモリとしても利用され得る。
 位置DB53は、各AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
 通信回路54は、たとえばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路54はアクセスポイント2(図14)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
 地図DB55は、AGV10が走行する工場等の内部の地図のデータを格納する。各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。たとえば地図DB55に格納される地図は、CADによって作成された地図であってもよい。
 位置DB53および地図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
 画像処理回路56はモニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ58は運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
 上述の実施形態の説明では、一例として二次元空間(床面)を走行するAGVを挙げた。しかしながら本開示は三次元空間を移動する移動体、たとえば飛行体(ドローン)、にも適用され得る。ドローンが飛行しながら三次元空間地図を作成する場合には、二次元空間を三次元空間に拡張することができる。
 上記の包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラム、または記録媒体によって実現されてもよい。あるいは、システム、装置、方法、集積回路、コンピュータプログラム、および記録媒体の任意な組み合わせによって実現されてもよい。
 本開示の移動体は、工場、倉庫、建設現場、物流、病院などで荷物、部品、完成品などの物の移動および搬送に好適に利用され得る。
 1・・・ユーザ、2a、2b・・・アクセスポイント、10・・・AGV(移動体)、11a、11b・・・駆動輪(車輪)、11c、11d、11e、11f・・・キャスター、12・・・フレーム、13・・・搬送テーブル、14・・・走行制御装置、14a・・・マイコン、14b・・・メモリ、14c・・・記憶装置、14d・・・通信回路、14e・・・位置推定装置、16a、16b・・・モータ、15・・・レーザレンジファインダ、17a、17b・・・モータ駆動回路、20・・・端末装置(タブレットコンピュータなどのモバイルコンピュータ)、50・・・運行管理装置、51・・・CPU、52・・・メモリ、53・・・位置データベース(位置DB)、54・・・通信回路、55・・・地図データベース(地図DB)、56・・・画像処理回路、100・・・移動体管理システム

Claims (13)

  1.  環境をスキャンしてスキャンデータを周期的に出力する外界センサに接続されて使用される位置推定システムであって、
     プロセッサと、
     前記プロセッサを動作させるコンピュータプログラムを記憶するメモリと、
    を備え、
     前記プロセッサは、前記コンピュータプログラムの指令にしたがって、
     前記外界センサから前記スキャンデータを取得し、前記スキャンデータから参照地図を作成すること、
     前記外界センサから前記スキャンデータを新たに取得したとき、新たに取得した最新スキャンデータと前記参照地図とのマッチングを行うことにより、前記参照地図上における前記外界センサの位置および姿勢を推定し、前記最新スキャンデータを前記参照地図に追加して前記参照地図を更新すること、
     複数回更新された参照地図から、前記最新スキャンデータを含む一部分以外の部分を削除して、前記参照地図のリセットを行うこと、および、
     前記リセットを行うとき、前記リセット前の前記複数回更新された参照地図に基づいて環境地図を更新すること、
    を実行する、位置推定システム。
  2.  前記プロセッサは、前記参照地図を更新する回数が所定数に達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  3.  前記プロセッサは、前記参照地図のデータ量が所定量に達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  4.  前記プロセッサは、前回の前記リセットからの経過時間が所定長さに達したとき、前記参照地図のリセットを行う、請求項1に記載の位置推定システム。
  5.  前記環境地図を更新するとき、前記リセット前の前記複数回更新された参照地図と前記環境地図とのマッチングを行い、前記参照地図を前記環境地図に整合させる、請求項1から4のいずれかに記載の位置推定システム。
  6.  前記プロセッサは、反復最近接点アルゴリズムによって前記マッチングを行う、請求項1から5のいずれかに記載の位置推定システム。
  7.  前記プロセッサは、前記スキャンデータおよび/または前記参照地図を構成する点群の密度を所定密度以下に低下させる処理を行う、請求項1から6のいずれかに記載の位置推定システム。
  8.  前記プロセッサは、内界センサの出力に基づいて前記外界センサの移動量を測定し、
     前記マッチングを行うときに用いる前記外界センサの前記位置および前記姿勢の初期値を、前記外界センサの移動量に基づいて決定する、請求項1から7のいずれかに記載の位置推定システム。
  9.  前記プロセッサは、前記外界センサの位置および姿勢の履歴に基づいて、前記外界センサの現在の位置および姿勢の予測値を算出し、
     前記マッチングを行うときに用いる前記外界センサの前記位置および前記姿勢の初期値として前記予測値を用いる、請求項1から7のいずれかに記載の位置推定システム。
  10.  請求項1から9のいずれかに記載の位置推定システムと、
     前記外界センサと、
     前記位置推定システムが作成した前記環境地図を記憶する記憶装置と、
     移動のための駆動装置と、
    を備える移動体。
  11.  内界センサをさらに備える、請求項10に記載の移動体。
  12.  前記プロセッサは、前記外界センサから前記スキャンデータを取得し、前記スキャンデータと前記記憶装置から読み出した前記環境地図とのマッチングを行うことにより、前記移動体の前記環境地図上における位置および姿勢を推定する、請求項10または11に記載の移動体。
  13.  請求項1から9のいずれかに記載の位置推定システムに使用されるコンピュータプログラム。
PCT/JP2018/030308 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体 WO2019044500A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US16/639,254 US20200264616A1 (en) 2017-09-04 2018-08-14 Location estimation system and mobile body comprising location estimation system
CN201880053209.0A CN110998473A (zh) 2017-09-04 2018-08-14 位置推断系统和具有该位置推断系统的移动体
JP2019539338A JP6816830B2 (ja) 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-169728 2017-09-04
JP2017169728 2017-09-04

Publications (1)

Publication Number Publication Date
WO2019044500A1 true WO2019044500A1 (ja) 2019-03-07

Family

ID=65525343

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/030308 WO2019044500A1 (ja) 2017-09-04 2018-08-14 位置推定システム、および当該位置推定システムを備える移動体

Country Status (4)

Country Link
US (1) US20200264616A1 (ja)
JP (1) JP6816830B2 (ja)
CN (1) CN110998473A (ja)
WO (1) WO2019044500A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021103148A (ja) * 2019-12-25 2021-07-15 株式会社デンソー 推定装置、推定方法、推定プログラム
JP2021103149A (ja) * 2019-12-25 2021-07-15 株式会社デンソー 推定装置、推定方法、推定プログラム
WO2022239600A1 (ja) * 2021-05-11 2022-11-17 富士フイルム株式会社 情報処理装置、情報処理方法、及びプログラム
JP7322799B2 (ja) 2020-05-01 2023-08-08 株式会社豊田自動織機 自己位置推定装置
JP2023146505A (ja) * 2022-03-29 2023-10-12 防衛装備庁長官 物体認識システム
WO2023233809A1 (ja) * 2022-05-30 2023-12-07 ソニーグループ株式会社 情報処理装置及び情報処理方法
DE102023109228A1 (de) 2022-06-14 2023-12-14 Suzuki Motor Corporation Selbstabschätzende ortungseinrichtung für mobiles objekt

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7353747B2 (ja) * 2018-01-12 2023-10-02 キヤノン株式会社 情報処理装置、システム、方法、およびプログラム
US11835960B2 (en) * 2019-01-28 2023-12-05 Zebra Technologies Corporation System and method for semantically identifying one or more of an object and a location in a robotic environment
JP6991489B2 (ja) * 2019-03-29 2022-01-12 国立大学法人東海国立大学機構 地図評価装置、地図評価方法および地図評価プログラム
US20230333568A1 (en) * 2019-05-17 2023-10-19 Murata Machinery, Ltd. Transport vehicle system, transport vehicle, and control method
US11787649B2 (en) * 2021-04-07 2023-10-17 Rockwell Automation Technologies, Inc. System and method for determining real-time orientation on carts in an independent cart system

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143243A (ja) * 1996-11-13 1998-05-29 Fujitsu Ltd 移動装置
JP2008250905A (ja) * 2007-03-30 2008-10-16 Sogo Keibi Hosho Co Ltd 移動ロボット、自己位置補正方法および自己位置補正プログラム
JP2010066595A (ja) * 2008-09-11 2010-03-25 Toyota Motor Corp 環境地図生成装置及び環境地図生成方法
JP2011112644A (ja) * 2009-11-24 2011-06-09 Ind Technol Res Inst マップ作成方法および装置とそのマップを利用した定位方法
JP2012089174A (ja) * 2012-02-08 2012-05-10 Fuji Soft Inc ロボット及び情報処理装置のプログラム
WO2012176249A1 (ja) * 2011-06-21 2012-12-27 国立大学法人奈良先端科学技術大学院大学 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、及び移動体
WO2015151770A1 (ja) * 2014-03-31 2015-10-08 株式会社日立産機システム 三次元地図生成システム
JP2017097402A (ja) * 2015-11-18 2017-06-01 株式会社明電舎 周辺地図作成方法、自己位置推定方法および自己位置推定装置
JP2017107425A (ja) * 2015-12-10 2017-06-15 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2017117386A (ja) * 2015-12-25 2017-06-29 学校法人千葉工業大学 自己運動推定システム、自己運動推定システムの制御方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5276931B2 (ja) * 2008-09-05 2013-08-28 株式会社日立産機システム 移動体および移動体の位置推定誤り状態からの復帰方法
WO2011023247A1 (en) * 2009-08-25 2011-03-03 Tele Atlas B.V. Generating raster image representing road existence probability based on probe measurements
CN105093925B (zh) * 2015-07-15 2020-11-03 山东理工大学 一种基于被测地形特点的机载激光雷达参数实时自适应调整方法
JP6849330B2 (ja) * 2015-08-28 2021-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 地図生成方法、自己位置推定方法、ロボットシステム、およびロボット
EP3144765B1 (en) * 2015-09-18 2020-01-08 Samsung Electronics Co., Ltd. Apparatus for localizing cleaning robot, cleaning robot, and controlling method of cleaning robot
CN106767827B (zh) * 2016-12-29 2020-02-28 浙江大学 一种基于激光数据的移动机器人点云地图创建方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143243A (ja) * 1996-11-13 1998-05-29 Fujitsu Ltd 移動装置
JP2008250905A (ja) * 2007-03-30 2008-10-16 Sogo Keibi Hosho Co Ltd 移動ロボット、自己位置補正方法および自己位置補正プログラム
JP2010066595A (ja) * 2008-09-11 2010-03-25 Toyota Motor Corp 環境地図生成装置及び環境地図生成方法
JP2011112644A (ja) * 2009-11-24 2011-06-09 Ind Technol Res Inst マップ作成方法および装置とそのマップを利用した定位方法
WO2012176249A1 (ja) * 2011-06-21 2012-12-27 国立大学法人奈良先端科学技術大学院大学 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、及び移動体
JP2012089174A (ja) * 2012-02-08 2012-05-10 Fuji Soft Inc ロボット及び情報処理装置のプログラム
WO2015151770A1 (ja) * 2014-03-31 2015-10-08 株式会社日立産機システム 三次元地図生成システム
JP2017097402A (ja) * 2015-11-18 2017-06-01 株式会社明電舎 周辺地図作成方法、自己位置推定方法および自己位置推定装置
JP2017107425A (ja) * 2015-12-10 2017-06-15 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2017117386A (ja) * 2015-12-25 2017-06-29 学校法人千葉工業大学 自己運動推定システム、自己運動推定システムの制御方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IWASINA, SHINYA ET AL.: "3-D SLAM in Dynamic Environments by a Mobile Robot Equipped with two Laser Range Finders (RSJ2008AC2H2-03)", PROCEEDINGS OF THE ANNUAL MEETING OF THE ROBOTICS SOCIETY OF JAPAN (RSJ 2008), vol. 26, 9 September 2008 (2008-09-09), pages RSJ2008AC2H2-03 , XP009520390, Retrieved from the Internet <URL:http://www.robot.t.u-tokyo.ac.jp/~yamashita/paper/E/E110Final.pdf> *
NAKAMOTO, TAKUMI: "3-D Map Generation in a Dynamic Environment by a Mobile Robot Equipped with Laser Range Finders", IEICE TECHNICAL REPORT. WIT2006 17-30, vol. 106, no. 144, 29 June 2006 (2006-06-29), pages 25 - 30, XP009520383, ISSN: 0913-5685 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021103148A (ja) * 2019-12-25 2021-07-15 株式会社デンソー 推定装置、推定方法、推定プログラム
JP2021103149A (ja) * 2019-12-25 2021-07-15 株式会社デンソー 推定装置、推定方法、推定プログラム
JP7318521B2 (ja) 2019-12-25 2023-08-01 株式会社デンソー 推定装置、推定方法、推定プログラム
JP7318522B2 (ja) 2019-12-25 2023-08-01 株式会社デンソー 推定装置、推定方法、推定プログラム
JP7322799B2 (ja) 2020-05-01 2023-08-08 株式会社豊田自動織機 自己位置推定装置
WO2022239600A1 (ja) * 2021-05-11 2022-11-17 富士フイルム株式会社 情報処理装置、情報処理方法、及びプログラム
JP2023146505A (ja) * 2022-03-29 2023-10-12 防衛装備庁長官 物体認識システム
JP7392221B2 (ja) 2022-03-29 2023-12-06 防衛装備庁長官 物体認識システム
WO2023233809A1 (ja) * 2022-05-30 2023-12-07 ソニーグループ株式会社 情報処理装置及び情報処理方法
DE102023109228A1 (de) 2022-06-14 2023-12-14 Suzuki Motor Corporation Selbstabschätzende ortungseinrichtung für mobiles objekt

Also Published As

Publication number Publication date
CN110998473A (zh) 2020-04-10
JPWO2019044500A1 (ja) 2020-10-01
JP6816830B2 (ja) 2021-01-20
US20200264616A1 (en) 2020-08-20

Similar Documents

Publication Publication Date Title
JP6816830B2 (ja) 位置推定システム、および当該位置推定システムを備える移動体
JP6825712B2 (ja) 移動体、位置推定装置、およびコンピュータプログラム
TWI665538B (zh) 進行障礙物之迴避動作的移動體及記錄其之電腦程式的記錄媒體
US20200110410A1 (en) Device and method for processing map data used for self-position estimation, mobile body, and control system for mobile body
JP2019168942A (ja) 移動体、管理装置および移動体システム
JP7081881B2 (ja) 移動体および移動体システム
JPWO2019026761A1 (ja) 移動体およびコンピュータプログラム
JP7136426B2 (ja) 管理装置および移動体システム
JP7111424B2 (ja) 移動体、位置推定装置、およびコンピュータプログラム
WO2019054209A1 (ja) 地図作成システムおよび地図作成装置
CN111971633B (zh) 位置推断系统、具有该位置推断系统的移动体以及记录介质
JP7164085B2 (ja) 移動体を用いたワークの搬送方法、コンピュータプログラム、および移動体
JP2019175137A (ja) 移動体および移動体システム
JP2019067001A (ja) 移動体
WO2020213645A1 (ja) 地図作成システム、信号処理回路、移動体および地図作成方法
CN112578789A (zh) 移动体
JP2020166702A (ja) 移動体システム、地図作成システム、経路作成プログラムおよび地図作成プログラム
JP2019148871A (ja) 移動体および移動体システム
WO2019059299A1 (ja) 運行管理装置
JP2020166701A (ja) 移動体およびコンピュータプログラム

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: 18850350

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019539338

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18850350

Country of ref document: EP

Kind code of ref document: A1