WO2025033210A1 - Information processing method, information processing device, terminal device, and system - Google Patents
Information processing method, information processing device, terminal device, and system Download PDFInfo
- Publication number
- WO2025033210A1 WO2025033210A1 PCT/JP2024/026749 JP2024026749W WO2025033210A1 WO 2025033210 A1 WO2025033210 A1 WO 2025033210A1 JP 2024026749 W JP2024026749 W JP 2024026749W WO 2025033210 A1 WO2025033210 A1 WO 2025033210A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- matching
- trajectory
- partial map
- terminal device
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/40—Control within particular dimensions
- G05D1/43—Control of position or course in two dimensions
Definitions
- This disclosure relates to an information processing method, an information processing device, a terminal device, and a system.
- SLAM Simultaneous Localization and Mapping
- Patent Document 1 in a robot system including a robot and a computer (server device), the computer generates and updates map data based on sensor data collected by each robot, and each robot estimates its own position based on the map data obtained from the computer.
- the above conventional technology does not necessarily make it possible to appropriately reduce the processing load on the server device for SLAM calculations targeting multiple robots in a SLAM system in which multiple robots operate simultaneously.
- the above-mentioned conventional technology reduces the computational load on a server device for movement control calculations for multiple robots in a SLAM system in which multiple robots operate simultaneously, but does not take into consideration reducing the computational load on a server device for SLAM calculations for multiple robots.
- This disclosure therefore proposes an information processing method, information processing device, terminal device, and system that can appropriately reduce the processing load on a server device for SLAM calculations targeting multiple robots in a SLAM system in which multiple robots operate simultaneously.
- an information processing method in which an information processing device provides one or more terminal devices with other partial map information generated by a terminal device different from the terminal device, and the terminal device acquires from the terminal device information and other partial map information, matching result information obtained by matching the relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the terminal device moves through an area included in the partial map information generated by the terminal device and the other partial map information, and performs an optimization process for correcting an error in overall trajectory position information constructed by combining the trajectory position information of the terminal devices based on the matching result information.
- the present disclosure also provides an information processing method in which a terminal device acquires other partial map information generated by another terminal device different from the terminal device itself from an information processing device on the cloud side, and performs processing to match the relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating the position on the trajectory along which the terminal device moves through an area included in the partial map information generated by the terminal device itself, point cloud information indicating the position of an object within the partial map information, and the other partial map information, and uploads information on the matching result of the relative positional relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map.
- FIG. 1 is a diagram illustrating an overview and a configuration example of a multiple-robot SLAM system 1 according to an embodiment of the present disclosure.
- FIG. 2 is a functional block diagram showing an example of a functional configuration of the sensing camera 20 according to the embodiment.
- 11A and 11B are diagrams illustrating a process of overlaying sensor data on a submap.
- FIG. 13 is a diagram showing an example of a matching process between the self trajectory and the self sub-map by the sensing camera 20-1.
- FIG. 13 is a diagram showing an overview of a matching process between the self trajectory and another submap.
- FIG. 1 illustrates a specific example of multiple robot SLAM processing.
- FIG. 1 illustrates a specific example of multiple robot SLAM processing.
- FIG. 1 is a functional block diagram showing an example of a conventional functional configuration of a multiple-robot SLAM system 1.
- FIG. 1 is a functional block diagram showing an example of the functional configuration of a proposed method in a multiple-robot SLAM system 1.
- 11 is a flowchart showing an upload process procedure executed by the sensing camera 20 in the proposed method.
- 10 is a flowchart showing a scan matching detection procedure executed by the sensing camera 20 in the proposed method.
- 10 is a flowchart showing a scan matching process procedure executed by the sensing camera 20 in the proposed method.
- 13 is a flowchart showing an optimization process performed by the server device 100 in the proposed method.
- FIG. 1 is a functional block diagram showing an example of a conventional functional configuration of a multiple-robot SLAM system 1.
- FIG. 1 is a functional block diagram showing an example of the functional configuration of a proposed method in a multiple-robot SLAM system 1.
- 11 is a flowchart showing an upload process procedure executed by
- FIG. 1 is a functional block diagram showing an example of a functional configuration of a first modified example of the multiple-robot SLAM system 1.
- 13 is a flowchart showing a pre-processing procedure related to a request for matching processing.
- 13 is a flowchart showing a procedure for requesting a matching process.
- 11 is a flowchart showing a procedure of a matching process executed by the server device 100 in response to a request for the matching process.
- FIG. 11 is a functional block diagram showing an example of a functional configuration of a modified example 2 in the multiple-robot SLAM system 1.
- 13 is a flowchart showing a procedure for requesting a matching process.
- FIG. 2 is a block diagram showing an example of a hardware configuration of a computer corresponding to an apparatus according to an embodiment of the present disclosure.
- One or more of the embodiments (including examples, variations, and application examples) described below can be implemented independently. However, at least a portion of the embodiments described below may be implemented in appropriate combination with at least a portion of another embodiment. These embodiments may include novel features that are different from one another. Thus, these embodiments may contribute to solving different purposes or problems and may provide different effects.
- Example of system configuration 2-2 Functional configuration of sensing camera 2-3. Overview of multiple robot SLAM 2-4. Overlay of sensor data 2-5. Matching process within a single device 2-6. Matching process between multiple devices 2-7. Specific example of multiple robot SLAM processing 2-8.
- Functional configuration of terminal device 2-8-2 Functional configuration of information processing device 2-9.
- Functional configuration of terminal device 2-9-2 Functional configuration of information processing device 2-10. Operation procedure 2-10-1. Upload procedure of terminal device 2-10-2. Scan matching detection procedure of terminal device 2-10-3. Scan matching processing procedure of terminal device 2-10-4.
- a SLAM system that realizes SLAM is composed of a front-end processing section that focuses on sensor signal processing, and a back-end processing section that focuses on pose graph optimization.
- the front-end processing unit may be placed on each robot on the edge side, and the back-end processing unit may be placed on a server device on the cloud side.
- map data is integrated on the server device side, allowing each robot to use the same environmental map and reducing the processing load on the robots.
- This disclosure therefore proposes a method for suppressing an increase in the processing load of a server device when the number of robots increases by managing map data on a server device on the cloud side and using computing resources on the edge side for matching processing between map data and sensor data.
- a terminal device on the edge side uploads map data to a server device on the cloud side, but does not upload sensor data, and instead performs matching processing within the device itself.
- the terminal device performs matching processing between the sensor data it has acquired and the map data it has generated.
- the terminal device also performs matching processing between the sensor data it has acquired and the map data generated by a terminal device other than the terminal device itself. This processing is performed by each terminal device included in the multi-robot SLAM, and each terminal device transmits the matching results to the server device.
- the server device performs optimization processing to optimize the map data acquired from each terminal device based on the matching results acquired from each server device, thereby generating a more accurate map. Each terminal device can then use this accurate map to estimate its own location.
- Example of system configuration] 1 is a diagram illustrating an overview and a configuration example of a multiple-robot SLAM system 1 according to an embodiment of the present disclosure.
- the multiple-robot SLAM system 1 according to the present embodiment includes a moving object 10, a sensing camera 20, and a server device 100.
- the moving body 10 is an autonomously moving robot equipped with a sensing camera 20.
- Examples of moving bodies 10 include a robot vacuum cleaner and a drone.
- an example of the multiple-robot SLAM system 1 includes multiple moving bodies 10, moving bodies 10-1...10-n. Note that there is no limit to the number of moving bodies 10 included in the multiple-robot SLAM system 1.
- the sensing camera 20 is an example of a terminal device according to the embodiment, and is responsible for front-end processing in the multi-robot SLAM system 1, which is divided into a front-end and a back-end. Therefore, the sensing camera 20 can be said to be an edge-side terminal device.
- the multiple robot SLAM system 1 includes multiple sensing cameras 20, such as sensing camera 20-1...sensing camera 20-n, and each sensing camera 20 is mounted on a moving body 10.
- FIG. 1 shows an example in which sensing camera 20-1 is mounted on moving body 10-1, and sensing camera 20-n is mounted on moving body 10-n.
- the sensing camera 20 may be implemented as an external module attached to the moving body 10, or may be built into the moving body 10 during the manufacturing stage. Therefore, in the following embodiments, the processing described as being performed by the sensing camera 20 can be rephrased as processing of the moving body 10.
- the expression “multiple robots” can be rephrased as “multiple sensing cameras 20", and the expression “own device” can include the meaning of both “the sensing camera 20 itself” and “the mobile body 10 on which the sensing camera 20 is mounted”. Furthermore, the position and orientation of the sensing camera 20 essentially indicate the position and orientation of the mobile body 10.
- the sensing camera 20 executes front-end SLAM processing using sensor data sensed by its own sensor function (sensor unit 21 in FIG. 2), and transmits the results of the SLAM processing to the server device.
- the sensing camera 20 observes sensor data of objects (obstacles, people, etc.) present in the environment as the mobile body 10 moves through the environment.
- the sensing camera 20 generates map data relating to an environmental map based on the sensor data.
- the sensing camera 20 uploads the generated map data to the server device 100.
- each sensing camera 20 receives map data from the server device 100 that has been error-corrected by the server device 100 based on the map data of the multiple sensing cameras 20, and estimates its own position based on the received map data.
- the server device 100 is an example of an information processing device in the embodiment, and is responsible for back-end processing in the multi-robot SLAM system 1, which is divided into a front-end and a back-end. Therefore, in this embodiment, the server device 100 is a computer on the cloud side. On the other hand, the server device 100 may also be a computer on a local network. In other words, the server device 100 is not limited to being either cloud or local, as long as it is a computer that can be accessed via a network.
- the server device 100 executes back-end SLAM processing using the map data acquired from each sensing camera 20 to generate an integrated map in which the map data is integrated. Specifically, the server device 100 acquires map data related to an environmental map from each of the multiple sensing cameras 20. The server device 100 performs a matching process to match the map data acquired from each of the sensing cameras 20 with each other. The server device 100 also performs an error correction process on the map data based on the result of the matching process and the relative positional relationship between the map data. The server device 100 then distributes the error-corrected map data downstream to each of the multiple sensing cameras 20.
- the server device 100 may also perform navigation control of the mobile body 10, which is a robot, based on the integrated map, i.e., error-corrected map data.
- each sensing camera 20 can move the mobile body 10 mounted on its own device according to the contents of the navigation control.
- [2-2. Functional configuration of sensing camera] 2 is a functional block diagram showing an example of a functional configuration of the sensing camera 20 according to the embodiment.
- the sensing camera 20 has a sensor unit 21.
- the sensor unit 21 has a distance measurement sensor 211a and a distance measurement sensor signal processing unit 211b.
- the sensor unit 21 has an RGB camera 212a and an RGB camera signal processing unit 212b.
- the sensor unit 21 has an IMU 213a and an IMU signal processing unit 213b.
- the sensor unit 21 may further have an odometry sensor.
- the configuration of the sensor unit 21 is not limited to the example of FIG. 2.
- the distance measurement sensor 211a and the RGB camera 212a are required as external sensors (sensors that observe the outside) for creating an environmental map, while an internal sensor for measuring the internal state of the robot may be treated as an optional sensor.
- the internal sensor is an IMU 213a and an odometry sensor, and may be selectively introduced to improve the accuracy of SLAM processing, for example.
- the sensing camera 20 has a SLAM recognition processing unit 214, an obstacle recognition processing unit 215, and a person/object recognition processing unit 216.
- the distance measurement sensor 211a may include an ultrasonic sensor (Sound Navigation and Ranging: SONAR), a ToF (Time of Flight) sensor, and a LiDAR (Light Detection and Ranging) sensor. For example, the distance measurement sensor 211a obtains information regarding the distance and direction to a measurement point as sensor data.
- SONAR Sound Navigation and Ranging
- ToF Time of Flight
- LiDAR Light Detection and Ranging
- the ranging sensor signal processing unit 211b converts the sensor data acquired by the ranging sensor 211a into signal data that can be used by each recognition processing unit (SLAM recognition processing unit 214, obstacle recognition processing unit 215, human/object recognition processing unit 216).
- the SLAM recognition processing unit 214 converts the measurement points into points in the local coordinate system based on the signal data acquired from the ranging sensor signal processing unit 211b.
- the SLAM recognition processing unit 214 then outputs the coordinate information of the multiple points (point cloud) obtained by the conversion as point cloud information.
- the obstacle recognition processing unit 215 recognizes obstacles that exist in the environment in which the mobile body 10 moves, based on the signal data acquired from the distance measurement sensor signal processing unit 211b.
- the person/object recognition processing unit 216 recognizes people and objects that exist in the environment in which the mobile body 10 moves, based on the signal data acquired from the distance measurement sensor signal processing unit 211b.
- the RGB camera 212a captures image data of the environment in which the mobile body 10 on which the device is mounted moves, and obtains this image data as sensor data.
- the RGB camera signal processing unit 212b converts the sensor data acquired by the RGB camera 212a into signal data that can be used by each recognition processing unit (SLAM recognition processing unit 214, obstacle recognition processing unit 215, human/object recognition processing unit 216).
- the SLAM recognition processing unit 214 estimates the position and attitude of the mobile body 10 on which the device is mounted based on the signal data acquired by the RGB camera signal processing unit 212b, and estimates the trajectory of the mobile body 10 moving through the environment from the estimation result.
- the obstacle recognition processing unit 215 recognizes obstacles that exist in the environment in which the mobile body 10 moves, based on the signal data acquired from the RGB camera signal processing unit 212b.
- the person/object recognition processing unit 216 recognizes people and objects that exist in the environment in which the mobile body 10 moves, based on the signal data acquired from the RGB camera signal processing unit 212b.
- the IMU 213a acquires the angles and acceleration of three axes that govern the motion of the moving body 10 on which the IMU 213a is mounted as sensor data. Specifically, the IMU outputs data including "time”, “frequency”, “orientation”, “angular velocity”, and “acceleration”. "Time” indicates the time when the output data was generated. “Frequency” indicates the output frequency of the IMU. "Orientation” indicates the orientation of the moving body 10. "Angular velocity” indicates the angular velocity of the moving body 10. “Acceleration” indicates the acceleration of the moving body 10. Note that the data output by the IMU 213a may differ depending on the type of the IMU 213a. Therefore, the data output by the IMU 213a does not necessarily need to include a combination of "time”, “frequency”, “orientation”, “each speed”, and “acceleration”.
- the IMU signal processing unit 213b converts the sensor data acquired by the IMU 213a into signal data that can be used by each recognition processing unit (SLAM recognition processing unit 214, obstacle recognition processing unit 215, human/object recognition processing unit 216).
- the SLAM recognition processing unit 214 generates self-position data of the mobile body 10 on which the device is mounted, based on the signal data acquired by the IMU signal processing unit 213b.
- the SLAM recognition processing unit 214 generates self-position data in a local coordinate system.
- the human/object recognition processing unit 216 recognizes people and objects present in the environment in which the mobile body 10 moves based on the signal data acquired from the IMU signal processing unit 213b.
- the sensor unit 21 does not necessarily have to include all of the SLAM recognition processing unit 214, the obstacle recognition processing unit 215, and the person/object recognition processing unit 216.
- an external sensor such as the distance measurement sensor 211a or the RGB camera 212a can substitute for the function of the obstacle recognition processing unit 215, so the sensor unit 21 does not have to include the obstacle recognition processing unit 215.
- a partial map of the SLAM is successively generated by each sensing camera 20.
- the partial map is called a submap, and is, for example, a lattice map (also called a grid map) that is two-dimensional matrix data.
- the submap may be three-dimensional map data.
- three-dimensional map data includes voxel maps and point cloud maps with added height information.
- the probability of an obstacle's existence is set high for squares on the grid map that correspond to positions where an obstacle is observed to exist by a sensor mounted on a moving object, and the probability of an obstacle's existence is set low for squares where no obstacle is observed to exist.
- the sensing camera 20 sequentially generates submaps at any time using sensor data at any time so that matching processing can be realized.
- the sensing camera 20 superimposes on the submap representative points (trajectory nodes) of the movement path (trajectory) of the moving object 10 while it moves through the area included in the submap, and the sensor data observed at the positions of the trajectory nodes.
- [2-4. Superimposition of sensor data] 3 is a diagram for explaining the process of superimposing sensor data on a submap.
- the sensing camera 20 When the sensing camera 20 generates the submap sbm, the sensing camera 20 superimposes on the submap sbm the sensor data SD observed at a trajectory node tND on the moving path TR of the moving body 10 (the moving body 10 on which the device is mounted) that has moved through an area included in the submap sbm.
- FIG. 3 shows an example in which nine trajectory nodes tND are generated on the travel route TR by the sensing camera 20.
- the sensing camera 20 superimposes, for each of the nine trajectory nodes tND, a point cloud of the sensor data SD observed at that trajectory node tND on the submap sbm.
- Each sensing camera 20 performs a matching process between the trajectory nodes generated by the own device and a submap as a front-end SLAM process. Specifically, the sensing camera 20 performs a matching process between the trajectory nodes generated by the own device and a self submap, which is a submap generated by the own device based on the trajectory nodes.
- a self trajectory-self submap matching process is referred to as a "self trajectory-self submap matching process.”
- the sensing camera 20 also performs a matching process between the trajectory nodes generated by its own device and other submaps that are submaps generated by other sensing cameras 20.
- this type of matching process will be referred to as “self-trajectory-other submap matching process.”
- FIG. 4 shows an example of the matching process between the own trajectory and the own sub-map by the sensing camera 20-1.
- the sensing camera 20-1 performs a matching process between the sensor data SD observed at time t1 at a trajectory node tND on the movement route TR of the own device, and the sub-map smb generated by the own device in an observation time range including time t1 (for example, times t1 to t3) based on the sensor data SD.
- the sensing camera 20-1 superimposes the sensor data SD on the submap smb that it has generated based on the sensor data SD. Then, the sensing camera 20-1 matches the relative positional relationship between the submap node sND, which is the node indicating the reference point of the submap sbm, and the trajectory node tND, and rotates or translates the submap sbm and the trajectory node tND relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm matches the position of the sensor data SD).
- the sensing camera 20-1 executes the matching process as described above, it generates a self-trajectory-self-submap constraint condition COT1 as a constraint condition indicating the relative positional relationship between the trajectory node tND and the submap sbm based on the matching result.
- the sensing camera 20-1 matches the relative positional relationship between its own trajectory position information and its own partial map information, thereby generating a constraint condition (self-trajectory-self-submap constraint condition COT1) indicating the relative positional relationship between them.
- the sensing camera 20-1 uploads the submap data, which is information about the submap sbm generated by the sensing camera itself, and the self-trajectory-self-submap constraint condition COT1 to the server device 100.
- the sensing camera 20-1 does not upload the trajectory node data (sensor data SD), which is information about the trajectory node tND that includes the sensor data SD, to the server device 100, but keeps it within the sensing camera itself.
- the sensing camera 20-2 performs a matching process between the sensor data SD observed at time t1 at the trajectory node tND on the movement route TR of the own device, and the submap smb generated by the own device for an observation time range including time t1 (for example, times t1 to t3) based on the sensor data SD. Then, the sensing camera 20-2 generates the self-trajectory-self-submap constraint condition COT2 as a constraint condition indicating the relative positional relationship between the trajectory node tND and the submap sbm.
- the sensing camera 20-2 uploads the submap data, which is information about the submap sbm generated by the camera itself, and the self-trajectory-self-submap constraint condition COT2 to the server device 100.
- the sensing camera 20-2 does not upload the trajectory node data (sensor data SD), which is information about the trajectory node tND that includes the sensor data SD, to the server device 100, but keeps it within the camera itself.
- the left side of FIG. 5 shows a conceptual diagram of the self-trajectory-self sub-map matching process described in FIG. 4 using the sensing camera 20-1. Meanwhile, the right side of FIG. 5 shows a conceptual diagram of the self-trajectory-other sub-map matching process expanded between the sensing cameras 20-1 and 20-2.
- the sensing camera 20-1 performs matching processing between the sensor data SD observed at time t1 at the trajectory node tND1 on the movement route TR1 of the own device, and the sub-map smb2 generated by the sensing camera 20-2 in an observation time range including time t1 (for example, time t2) based on the sensor data SD.
- the sensing camera 20-1 superimposes its own sensor data SD on the submap smb2. Then, the sensing camera 20-1 matches the relative positional relationship between the submap node sND2 indicating the reference point of the submap sbm2 and the trajectory node tND1, and rotates or translates the submap sbm2 and the trajectory node tND1 relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm2 matches the position of the sensor data SD).
- the sensing camera 20-1 Based on the matching results of the extended matching process, the sensing camera 20-1 generates self-trajectory-other submap constraint condition COT12 as a constraint condition indicating the relative positional relationship between the trajectory node tND1 and the submap sbm2. In this way, the sensing camera 20-1 matches the relative positional relationship between its own trajectory position information and other partial map information, thereby generating a constraint condition (self-trajectory-other submap constraint condition COT12) indicating these relative positional relationships.
- the sensing camera 20-1 uploads the submap data, which is information about the submap sbm1 generated by the sensing camera itself, and the constraint condition COT12 between the self-trajectory and other submaps, to the server device 100.
- the sensing camera 20-1 does not upload the trajectory node data (sensor data SD), which is information about the trajectory node tND1 that includes the sensor data SD, to the server device 100, but keeps it within the sensing camera itself.
- the sensing camera 20-2 performs a matching process between the sensor data SD observed at time t1 at the trajectory node tND2 on the movement route TR2 of the own device and the submap smb1 generated by the sensing camera 20-1 for an observation time range including time t1 (for example, time t2) based on the sensor data SD.
- the sensing camera 20-2 superimposes its own sensor data SD on the submap smb1. Then, the sensing camera 20-2 matches the relative positional relationship between the submap node sND1 indicating the reference point of the submap sbm1 and the trajectory node tND2, and rotates or translates the submap sbm1 and the trajectory node tND2 relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm1 matches the position of the sensor data SD).
- the sensing camera 20-2 Based on the matching results of the extended matching process, the sensing camera 20-2 generates self-trajectory-other submap constraint condition COT21 as a constraint condition indicating the relative positional relationship between the trajectory node tND2 and the submap sbm1. In this way, the sensing camera 20-2 matches the relative positional relationship between its own trajectory position information and other partial map information, thereby generating a constraint condition (self-trajectory-other submap constraint condition COT21) indicating these relative positional relationships.
- the sensing camera 20-2 uploads the submap data, which is information about the submap sbm2 generated by the camera itself, and the constraint condition COT21 between the self-trajectory and other submaps, to the server device 100.
- the sensing camera 20-2 does not upload the trajectory node data (sensor data SD), which is information about the trajectory node tND2 that includes the sensor data SD, to the server device 100, but keeps it within the camera itself.
- Fig. 6 is a diagram showing a specific example of a multiple robot SLAM process.
- Fig. 6 shows a specific example of a matching process according to the embodiment and an optimization process based on the result of the matching process.
- the matching process according to the embodiment is a general term for a matching process between a self trajectory and a self submap and a matching process between a self trajectory and another submap.
- FIG. 6 also shows an example of the sensing camera 20-1 performing self-trajectory-self submap matching processing between submap sbmA1 generated at time t1, submap sbmA2 generated at time t2, and submap sbmA3 generated at time t3.
- FIG. 6 also shows an example of the sensing camera 20-1 performing self-trajectory-other submap matching processing between submap sbmA1, submap sbmA2, and submap sbm3, and submap sbmB2 generated by the sensing camera 20-2 at time t2.
- Submap node sNDA1 is the center point defined for submap sbmA1
- submap node sNDA2 is the center point defined for submap sbmA2
- submap node sNDA3 is the center point defined for submap sbmA3.
- submap node sNDB2 is the center point defined for submap sbmB2.
- the sensing camera 20-1 can estimate the position and orientation tND and the movement trajectory TR of its own device based on its own sensor data SD, and therefore determines some representative points of the position and orientation tND as trajectory nodes tND and constructs a pose graph PG for each of the submaps sbmA1, sbmA2, and sbmA3.
- the sensing camera 20-2 can also estimate the position and orientation tND and the movement trajectory TR of its own device based on its own sensor data SD. For this reason, the sensing camera 20-2 also determines some representative points of the position and orientation tND as trajectory nodes tND, and constructs a pose graph PG for the submap sbmB2.
- the pose graph PG is a graph structure that represents the movement trajectory TR, with the position and orientation of the object (sensing camera 20-1 and sensing camera 20-2 in the example of FIG. 6) as trajectory nodes tND, and the relative positions between the nodes tND as edges. For example, when the same landmark is observed between image data acquired at different times by the RGB camera 212a of the sensing camera 20-1 (sensing camera 20-2 as well), an edge can be created between the nodes tND that observed this landmark.
- the sensing camera 20-1 and the sensing camera 20-2 each perform the matching process according to the embodiment.
- the sensing camera 20-1 performs a self trajectory-self submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDA1 of the submap sbmA1. Then, based on the sensing results, the sensing camera 20-1 generates a self trajectory-self submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmA1.
- the sensing camera 20-1 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDA2 of the adjacent submap sbmA2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmA2.
- the sensing camera 20-1 also performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap node sNDA2 of the submap sbmA2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap sbmA2.
- the sensing camera 20-1 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap node sNDA3 of the adjacent submap sbmA3. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap sbmA3.
- the sensing camera 20-2 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmB2 and the submap node sNDA2 of the submap sbmB2. Then, based on the sensing result, the sensing camera 20-2 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmB2 and the submap sbmB2.
- the sensing camera 20-1 can use the submaps sbmA1 and sbmA3 of the adjacent device for the submap sbmB2 generated by the sensing camera 20-2.
- the sensing camera 20-1 performs a self-trajectory-other submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDB2 of the adjacent submap sbmB2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-other submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmB2.
- the sensing camera 20-1 also performs a self-trajectory-other submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap node sNDB2 of the adjacent submap sbmB2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-other submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap sbmB2.
- the sensing camera 20-1 uploads the pose graph PG generated by itself, the constraint condition COT generated by itself, and the submap sbm (A1, A2, A3) generated by itself to the server device 100.
- the sensing camera 20-1 does not upload the sensor data SD associated with the trajectory node tND determined by itself to the server device 100.
- the sensing camera 20-2 also uploads the pose graph PG generated by itself, the constraint condition COT generated by itself, and the submap sbmB2 generated by itself to the server device 100. On the other hand, the sensing camera 20-2 does not upload the sensor data SD associated with the trajectory node tND determined by itself to the server device 100.
- the server device 100 executes an optimization process to correct errors between submaps using information uploaded from each of the sensing cameras 20-1 and 20-2.
- the errors in the positions of all nodes are corrected so that the relative positional relationships between all submap nodes sND and trajectory nodes tND are consistent.
- the server device 100 corrects the error between the submaps sbm (A1, A2, A3, B2) based on the submaps sbm (A1, A2, A3, B2) and the constraint condition COT. In this way, the server device 100 corrects the error in the overall map information constructed by combining the partial map information generated by each of the sensing cameras 20 based on the constraint condition COT.
- the server device 100 corrects the error of the overall pose graph that combines each pose graph PG constructed for each of the submaps sbmA1, sbmA2, and sbmA3 with the pose graph PG constructed for the submap sbmB2 based on the constraint condition COT. In this way, the server device 100 corrects the error of the overall trajectory position information constructed by combining the trajectory position information generated by each of the sensing cameras 20 based on the constraint condition COT.
- the server device 100 can generate a single environmental map (an accurate map) in which submaps sbmA, sbmA, sbmA3, and sbmB2 are integrated so as to correct the errors.
- FIG. 6(c) shows the environmental map MP in which submaps sbmA, sbmA, sbmA3, and sbmB2 are integrated through the optimization process.
- FIG. 7 is a functional block diagram showing an example of a conventional functional configuration of a multiple-robot SLAM system 1.
- the multiple-robot SLAM system 1 shown in Fig. 7 includes a moving body 10-1 (robot A) equipped with a sensing camera 20-1, a moving body 10-2 (robot B) equipped with a sensing camera 20-2, and a server device 100.
- sensing camera 20 will be described with a focus on sensing camera 20-1, but sensing camera 20-2 may also have a similar functional configuration.
- the multiple-robot SLAM system 1 may further include moving bodies 10 equipped with other sensing cameras 20, and all of the sensing cameras 20 may have the same functional configuration as sensing camera 20-1.
- the sensing camera 20-1 has a sensor unit 21, a pre-processing unit 22, and a SLAM processing unit 23.
- the sensing camera 20-2 also functions in the same way as the sensing camera 20-1.
- the sensor unit 21 has various sensor functions described in FIG. 2.
- the sensor unit 21 has a distance measurement sensor 211a, a distance measurement sensor signal processing unit 211b, an RGB camera 212a, an RGB camera signal processing unit 212b, an IMU 213a, and an IMU signal processing unit 213b.
- the sensor unit 21 also has a SLAM recognition processing unit 214, an obstacle recognition processing unit 215, and a person/object recognition processing unit 216.
- the sensor unit 21 may further have an odometry sensor.
- the sensor unit 21 does not necessarily have to include all of the distance measurement sensor 211a, the RGB camera 212a, and the IMU 213a.
- the sensor unit 21 does not necessarily have to include all of the SLAM recognition processing unit 214, the obstacle recognition processing unit 215, and the person/object recognition processing unit 216.
- the pre-processing unit 22 executes pre-processing for the SLAM processing performed by the SLAM processing unit 23.
- the pre-processing unit 22 acquires sensor data SD from the sensor unit 21, and executes pre-processing for the SLAM processing based on the acquired sensor data SD.
- the pre-processing unit 22 acquires output data of the IMU (e.g., acceleration data), output data of the odometry sensor, and output data of the LiDAR (e.g., point cloud).
- the point cloud indicates surrounding two-dimensional or three-dimensional point cloud data (coordinates of each point) and data on the time of generation of the point cloud data.
- the pre-processing includes a process of removing unnecessary features and noise from the point cloud, and a process of segmentation and downsampling.
- the SLAM processing unit 23 corresponds to a front-end processing unit in SLAM.
- the SLAM processing unit 23 generates a pose graph PG based on the sensor data SD acquired from the sensor unit 21, and uploads pose graph data of the generated pose graph PG to the server device 100.
- the matching process requires a pose graph PG, but in the conventional method shown in FIG. 7, the matching process is performed on the server device 100 side.
- the SLAM processing unit 23 of the sensing camera 20-1 does not require the pose graph PG generated by the sensing camera 20-2 in the SLAM process.
- the optimization unit 130 of the server device 100 only needs to transmit to the sensing camera 20-1 the portion of the pose graph PG corrected in the optimization process that corresponds to the sensing camera 20-1, and does not need to transmit the portion that corresponds to the sensing camera 20-2.
- the SLAM processing unit 23 of the sensing camera 20-1 synchronizes between the pose graph PG generated by its own device and the pose graph PG corrected on the server device 100 side.
- sensing camera 20-2 the same can be said about sensing camera 20-2.
- the SLAM processing unit 23 of sensing camera 20-2 does not need the pose graph PG generated by sensing camera 20-2 in SLAM processing.
- the optimization unit 130 of server device 100 only needs to transmit to sensing camera 20-2 the portion of the pose graph PG corrected in the optimization process that corresponds to sensing camera 20-2, and does not need to transmit the portion that corresponds to sensing camera 20-1.
- the SLAM processing unit 23 of sensing camera 20-2 synchronizes between the pose graph PG generated by its own device and the pose graph PG corrected on the server device 100 side.
- the SLAM processing unit 23 also estimates the trajectory of its own device based on the sensor data SD acquired from the sensor unit 21. For example, the SLAM processing unit 23 generates trajectory nodes TG based on the output data of the IMU 213 and the output data of the odometry sensor, and uploads the trajectory node data of the generated trajectory nodes TG to the server device 100. Specifically, the SLAM processing unit 23 uploads the sensor data SD corresponding to the trajectory nodes TG to the server device 100.
- the SLAM processing unit 23 also generates a submap sbm based on the sensor data SD acquired from the sensor unit 21.
- the SLAM processing unit 23 generates a submap sbm based on the output data of the RGB camera 212a and the output data of the LiDAR, and uploads the submap data of the generated submap sbm to the server device 100.
- the server device 100 includes a detection unit 110, a matching unit 120, an optimization unit 130, and a visualization unit 140.
- the detection unit 110 detects a combination of a sub-map sbm to be matched and a trajectory node tNG based on a pose graph PG acquired from each sensing camera 20.
- the detection unit 110 detects a combination of matching targets between the submap sbm1 generated by sensing camera 20-1 and trajectory node tND1.
- the detection unit 110 also detects a combination of matching targets between the submap sbm2 generated by sensing camera 20-2 and trajectory node tND2.
- the detection unit 110 also detects a combination of matching targets between the submap sbm1 generated by the sensing camera 20-1 and the trajectory node tND2 generated by the sensing camera 20-2. Similarly, the detection unit 110 detects a combination of matching targets between the submap sbm2 generated by the sensing camera 20-2 and the trajectory node tND1 generated by the sensing camera 20-1.
- the detection unit 110 registers the detected combinations in a queue and causes the matching unit 120 to perform scan matching for each combination.
- the matching unit 120 performs scan matching. For example, the matching unit 120 performs scan matching based on a loop closing query. For example, the matching unit 120 performs scan matching based on point cloud information of trajectory node data (sensor data SD) acquired from each sensing camera 20 and submap sbm acquired from each sensing camera 20. For example, the matching unit 120 superimposes point cloud information from which unnecessary features and noise have been deleted by preprocessing such as downsampling on the submap sbm.
- trajectory node data sensor data SD
- submap sbm acquired from each sensing camera 20.
- the matching unit 120 superimposes point cloud information from which unnecessary features and noise have been deleted by preprocessing such as downsampling on the submap sbm.
- the matching unit 120 generates constraint conditions that indicate the relative positional relationship with the submap sbm as a result of the scan matching.
- the matching unit 120 matches the relative positional relationship between the trajectory node tND1 generated by the sensing camera 20-1 and the submap node sND1 of the submap sbm1 generated by the sensing camera 20-1, and generates a constraint condition COT1 that indicates this relative positional relationship.
- the matching unit 120 also matches the relative positional relationship between the trajectory node tND2 generated by the sensing camera 20-2 and the submap node sND2 of the submap sbm2 generated by the sensing camera 20-2, and generates a constraint condition COT2 that indicates this relative positional relationship.
- the matching unit 120 also matches the relative positional relationship between the trajectory node tND1 generated by the sensing camera 20-1 and the submap node sND2 of the submap sbm2 generated by the sensing camera 20-2, and generates a constraint condition COT12 that indicates this relative positional relationship.
- the matching unit 120 matches the relative positional relationship between the trajectory node tND2 generated by the sensing camera 20-2 and the submap node sND1 of the submap sbm1 generated by the sensing camera 20-1, and generates a constraint condition COT21 that indicates this relative positional relationship.
- the optimization unit 130 corrects errors in the map data based on each constraint condition COT generated by the matching unit 120. For example, the optimization unit 130 corrects errors in an overall submap sbm constructed by combining the submaps sbm generated by each sensing camera 20. For example, the optimization unit 130 corrects errors in an overall pose graph PG constructed by combining the pose graphs PG generated by each sensing camera 20 based on the constraint condition COT. According to the above example, the matching unit 120 corrects errors based on the constraint condition COT1, the constraint condition COT2, the constraint condition COT12, and the constraint condition COT21 to generate one environmental map MP in which errors have been corrected.
- the optimization unit 130 also transmits the corrected overall pose graph PG (overall pose graph PG reflecting the constraint condition COT) to each sensing camera 20.
- the optimization unit 130 transmits only the portion of the corrected pose graph PG that corresponds to the pose graph PG acquired from sensing camera 20-1 to the pose graph PG of sensing camera 20-1, thereby synchronizing the two pose graphs PG.
- this processing is performed because, in the conventional method shown in FIG. 7, sensing camera 20-1 does not perform matching processing and does not need to use the pose graph PG of sensing camera 20-2.
- the optimization unit 130 synchronizes the two pose graphs PG by sending only the portion of the corrected pose graph PG that corresponds to the pose graph PG acquired from the sensing camera 20-2 to the pose graph PG of the sensing camera 20-2. This process is performed because, in the conventional method shown in FIG. 7, the sensing camera 20-2 does not perform matching processing and does not need to use the pose graph PG of the sensing camera 20-1.
- the visualization unit 140 generates a rendering map by using the map data error-corrected by the optimization unit 130. For example, the visualization unit 140 performs rendering processing on the submaps sbm error-corrected by the optimization unit 130 to generate one environmental map MP in which the submaps sbm are integrated. Then, the visualization unit 140 may output the environmental map MP to each sensing camera 20.
- FIG. 8 is a functional block diagram showing an example of the functional configuration of the proposed method in a multiple-robot SLAM system 1.
- the multiple-robot SLAM system 1 shown in FIG. 8 includes a moving body 10-1 (robot A) equipped with a sensing camera 20-1, a moving body 10-2 (robot B) equipped with a sensing camera 20-2, and a server device 100.
- the multiple-robot SLAM system 1 according to the proposed method will be referred to as a "multiple-robot SLAM system 1A.”
- matching processing is performed on the sensing camera 20 side.
- the sensing camera 20 performs matching processing between its own sensor data SD and its own submap sbm.
- the sensing camera 20 also performs matching processing between its own sensor data SD and the submap sbm of other devices. That is, the matching processing described as being performed by the server device 100 in the conventional method of FIG. 7 is performed by each sensing camera 20.
- the proposed method employs a configuration in which matching processing is offloaded from the cloud server device 100 to the edge sensing camera 20. As a result, it is believed that the processing load on the server device for SLAM calculations can be appropriately reduced.
- the sensing camera 20-1 has a sensor unit 21, a preprocessing unit 22, and a SLAM processing unit 23, as in the conventional method, but further has a detection unit 24 and a matching unit 25.
- the sensing camera 20-2 also functions in the same way as the sensing camera 20-1. Also, in FIG. 8, a new information processing flow is indicated by dotted arrows compared to the conventional method in FIG. 7.
- the SLAM processing unit 23 As in the conventional method, the SLAM processing unit 23 generates a pose graph PG based on the sensor data SD and uploads the pose graph data of the generated pose graph PG to the server device 100. The SLAM processing unit 23 also generates a submap sbm based on the sensor data SD and uploads the submap data of the generated submap sbm to the server device 100. On the other hand, in the proposed method, the SLAM processing unit 23 generates a trajectory node TG based on the sensor data SD, but does not upload the trajectory node data of the generated trajectory node TG to the server device 100. Specifically, the SLAM processing unit does not upload the sensor data SD corresponding to the trajectory node TG to the server device 100.
- the matching process is performed on the sensing camera 20 side.
- the SLAM processing unit 23 of the sensing camera 20-1 requires not only the pose graph PG generated by its own device in the SLAM process, but also the pose graph PG generated by the sensing camera 20-2.
- the optimization unit 130 of the server device 100 transmits to the sensing camera 20-1 not only the part of the pose graph PG corrected in the optimization process that corresponds to the sensing camera 20-1, but also the part that corresponds to the sensing camera 20-2.
- the SLAM processing unit 23 of the sensing camera 20-1 synchronizes not only the pose graph PG generated by its own device, but also the pose graphs PG generated by all the sensing cameras 20 included in the multi-robot SLAM system 1A.
- sensing camera 20-2 the same can be said about sensing camera 20-2.
- the SLAM processing unit 23 of sensing camera 20-2 needs not only the pose graph PG generated by its own device, but also the pose graph PG generated by sensing camera 20-1.
- the optimization unit 130 of server device 100 will transmit to sensing camera 20-2 not only the part of the pose graph PG corrected in the optimization process that corresponds to sensing camera 20-2, but also the part that corresponds to sensing camera 20-1.
- the SLAM processing unit 23 of sensing camera 20-2 synchronizes not only the pose graph PG generated by its own device, but also the pose graphs PG generated by all of the sensing cameras 20 included in the multi-robot SLAM system 1A.
- the detection unit 24 detects a submap sbm to be registered in a queue as a matching query and a trajectory node tNG to be registered in a queue as a matching query based on the pose graph PG.
- the detection unit 24 detects a combination of a submap sbm to be matched and a trajectory node tNG based on the pose graph PG.
- the pose graph PG used here may include a pose graph PG transmitted from the optimization unit 130. Taking the sensing camera 20-1 as an example, the pose graph PG transmitted from the optimization unit 130 may include not only a pose graph PG generated by the sensing camera itself, but also a pose graph PG generated by the sensing camera 20-2.
- the detection unit 24 detects a combination of matching targets between the trajectory node tND1 generated by the own device and the submap sbm1 generated by the own device.
- the detection unit 24 also detects a combination of matching targets between the trajectory node tND1 generated by the own device and the submap sbm2 generated by the sensing camera 20-2.
- the detection unit 24 registers the detected combinations in a queue and causes the matching unit 25 to perform scan matching for each combination.
- the matching unit 25 performs matching processing according to the embodiment.
- the matching unit 25 performs matching processing sequentially for each combination of the trajectory node tNG and the submap sbm registered in the queue as a matching query. Specifically, the matching unit 25 performs a matching processing between the self trajectory and the self submap, and a matching processing between the self trajectory and another submap.
- the matching unit 25 acquires a submap sbm generated by another sensing camera 20 different from the self-device from the server device 100.
- the matching unit 25 of the sensing camera 20-1 acquires the submap sbm2 generated by the sensing camera 20-2 from the server device 100.
- the matching unit 25 of the sensing camera 20-2 acquires the submap sbm1 generated by the sensing camera 20-1 from the server device 100.
- the matching unit 25 of the sensing camera 20-1 matches the relative positional relationship between the trajectory node tND1 generated by its own device and the submap node sND1 of the submap sbm1 generated by its own device, and generates a self-trajectory-self-submap constraint condition COT1 indicating this relative positional relationship.
- the matching unit 25 also matches the relative positional relationship between the trajectory node tND1 generated by its own device and the submap node sND2 of the submap sbm2 generated by the sensing camera 20-2, and generates a self-trajectory-other-submap constraint condition COT12 indicating this relative positional relationship.
- Similar processing is also performed by the matching unit 25 of the sensing camera 20-2, and as a result, the self-trajectory-self submap matching processing generates the self-trajectory-self submap constraint condition COT2, and the self-trajectory-other submap matching processing generates the self-trajectory-other submap constraint condition COT21.
- the matching unit 25 also uploads the constraint condition COT generated by the own device to the server device 100.
- the matching unit 25 of the sensing camera 20-1 uploads the constraint condition COT1 and the constraint condition COT12 to the server device 100.
- the matching unit 25 of the sensing camera 20-2 also uploads the constraint condition COT2 and the constraint condition COT21 to the server device 100.
- the optimization unit 130 corrects errors in the map data based on the constraint conditions COT generated by each sensing camera 20.
- the correction process may be the same as the conventional method. That is, the optimization unit 130 corrects errors in the overall submap sbm constructed by combining the submaps sbm generated by each sensing camera 20. For example, the optimization unit 130 corrects errors in the overall pose graph PG constructed by combining the pose graphs PG generated by each sensing camera 20 based on the constraint conditions COT. In the example of FIG. 8, the optimization unit 130 corrects errors based on the constraint conditions COT1, COT2, COT12, and COT21 to generate one environmental map MP in which errors have been corrected.
- the optimization unit 130 also transmits the corrected overall pose graph PG (overall pose graph PG reflecting the constraint condition COT) to each sensing camera 20.
- the optimization unit 130 transmits not only the portion of the corrected pose graph PG that corresponds to sensing camera 20-1, but also the portion that corresponds to sensing camera 20-2 to sensing camera 20-1.
- the optimization unit 130 causes the SLAM processing unit 23 of sensing camera 20-1 to synchronize the pose graphs PG generated by all of the sensing cameras 20 included in the multiple robot SLAM system 1A. As described above, such processing is performed because, in the proposed method shown in FIG. 8, sensing camera 20-1 needs to use the pose graph PG of sensing camera 20-2 in the matching process.
- the optimization unit 130 transmits to the sensing camera 20-2 not only the portion of the corrected pose graph PG that corresponds to the sensing camera 20-2, but also the portion that corresponds to the sensing camera 20-1.
- the optimization unit 130 causes the SLAM processing unit 23 of the sensing camera 20-2 to synchronize the pose graphs PG generated by all of the sensing cameras 20 included in the multi-robot SLAM system 1A.
- such processing is performed because, in the proposed method shown in FIG. 8, the sensing camera 20-2 needs to use the pose graph PG of the sensing camera 20-1 in the matching process.
- the visualization unit 140 generates a rendering map by using the map data error-corrected by the optimization unit 130. Then, the visualization unit 140 may output the environmental map MP generated by rendering to each sensing camera 20.
- Fig. 9 is a flowchart showing the upload processing procedure executed by the sensing camera 20 in the proposed method. Note that the upload procedure shown in Fig. 9 is performed individually by each sensing camera 20 using only its own device information.
- the SLAM processing unit 23 determines whether or not new sensor data SD has been acquired from the sensor unit 21 (step S901). If the SLAM processing unit 23 has not been able to acquire new sensor data SD from the sensor unit 21 (step S901; No), the SLAM processing unit 23 waits until it can acquire new sensor data SD.
- step S902 determines the type of the acquired sensor data SD (step S902). For example, when the SLAM processing unit 23 determines in step S902 that the acquired sensor data SD is output data from an IMU or an odometry sensor, it calculates the amount of movement of the device in a small amount of time (step S903) and returns to step S901.
- step S902 If the SLAM processing unit 23 determines in step S902 that the acquired sensor data SD is camera image data, it matches (superimposes) the sensor data SD (point cloud information of the sensor data SD) on the submap sbm being created based on the amount of movement in the small amount of time calculated in step S903 (step S904).
- the SLAM processing unit 23 also generates a trajectory node TG based on the sensor data SD and adds the generated trajectory node TG to the pose graph PG (step S905).
- the SLAM processing unit 23 determines whether the update of the submap sbm being created has been completed (step S906). If the update of the submap sbm has not been completed (step S906; No), the SLAM processing unit 23 returns to step S901.
- step S906 When the update of the submap sbm is completed (step S906; Yes), the SLAM processing unit 23 adds the updated submap sbm to the pose graph PG (step S907).
- the SLAM processing unit 23 uploads the pose graph data and submap data to the server device 100 while retaining the trajectory node data within its own device (step S908).
- Fig. 10 is a flowchart showing the scan matching detection procedure executed by the sensing camera 20 in the proposed method. Note that the scan matching detection procedure shown in Fig. 10 is performed individually by each sensing camera 20.
- the detection unit 24 determines whether data generated by the own device has been added to the pose graph PG of the own device (step S1001). If data generated by the own device has not been added to the pose graph PG of the own device (step S1001; No), the detection unit 24 waits until data is added.
- the detection unit 24 determines the type of added data (step S1002). For example, if the added data is trajectory node data in step S1002, the detection unit 24 detects submaps sbm that are to be matched with the trajectory node TG generated by the own device, from among the submaps sbm previously generated by each sensing camera 20, including the own device (step S1003).
- the detection unit 24 lists combinations of the trajectory nodes TG and the submaps sbm to be matched (step S1004), and adds the listed combinations to the queue of the device (step S1005). For example, in step S1004, the detection unit 24 may list combinations of adjacent nodes.
- the detection unit 24 detects trajectory nodes TG that are to be matched with the submap sbm generated by the own device from among the trajectory nodes TG previously generated by the own device (step S1006).
- the detection unit 24 lists combinations of the trajectory nodes TG and the submaps sbm to be matched (step S1007), and adds the listed combinations to the queue of the device (step S1008). For example, in step S1007, the detection unit 24 may list combinations of adjacent nodes.
- Fig. 11 is a flowchart showing the scan matching process performed by the sensing camera 20 in the proposed method. Note that the scan matching process shown in Fig. 11 is performed individually by each sensing camera 20.
- the matching unit 25 determines whether an item for scan matching (a combination list of matching targets) has been added to the queue of the device itself (step S1101). While an item for scan matching has not been added to the queue (step S1101; No), the matching unit 25 waits until an item for scan matching is added to the queue.
- the matching unit 25 determines whether or not the matching unit 25 has actual data for any of the submaps sbm listed as matching targets that were generated by a sensing camera 20 other than the own device (step S1102).
- the matching unit 25 does not have actual data of the submap sbm generated by the other sensing camera 20 (step S1102; No), it acquires the actual data of the submap sbm generated by the other sensing camera from the server device 100 (step S1103).
- the matching unit 25 executes scan matching (step S1104). Specifically, the matching unit 25 executes a matching process between the self trajectory and the self submap, and a matching process between the self trajectory and another submap. Note that if the matching unit 25 has actual data of a submap sbm generated by another sensing camera 20 (step S1102; Yes), it may skip step S1103.
- the matching unit 25 generates a constraint condition COT indicating the relative positional relationship between the trajectory node tND and the submap sbm based on the matching result (step S1105). Then, the matching unit 25 uploads the constraint condition COT to the server device 100 (step S1106).
- Fig. 12 is a flowchart showing the optimization process performed by the server device 100 in the proposed method.
- the optimization unit 130 determines whether or not the constraint conditions COT have been sufficiently accumulated in response to the constraint conditions COT being uploaded from each sensing camera 20 (step S1201). If the amount of accumulated constraint conditions COT is insufficient (step S1201; No), the optimization unit 130 waits until the constraint conditions COT have been sufficiently accumulated.
- step S1201 if the accumulated amount of the constraint condition COT is sufficient (step S1201; Yes), the optimization unit 130 executes an optimization process to correct the error between the sub-maps sbm uploaded from each sensing camera 20 based on the constraint condition COT (step S1202).
- the optimization unit 130 reflects the results of the optimization process in the pose graph PG (step S1203). Specifically, the optimization unit 130 transmits to each sensing camera 20 a corrected overall pose graph PG in which errors in the overall pose graph PG constructed by combining the pose graphs PG generated by each sensing camera 20 have been corrected. As a result, each sensing camera 20 reflects the pose graphs PG generated by the other sensing cameras 20 in its own pose graph PG. In other words, each sensing camera 20 synchronizes between the pose graph PG generated by its own device and the pose graphs PG generated by the other sensing cameras 20.
- the optimization unit 130 also generates a rendering map (environment map) using the map data that has been error-corrected in the optimization process (step S1204).
- the optimization unit 130 may output the rendering map to each sensing camera 20.
- the sensing camera 20 often has inferior processing capabilities compared to the server device 100, and there may also be differences in processing capabilities between sensing cameras 20 depending on the type. In this way, if the sensing camera 20 has low processing capabilities, there is a problem that, for example, it cannot complete all matching processes within a period of time, and it takes a long time to obtain the results of self-position estimation. Therefore, in Variation 1 related to the proposed method of the present disclosure, a request unit 26 is newly introduced to each sensing camera 20 as a new component for solving such problems. Therefore, the functional configuration of Variation 1 related to the proposed method of the present disclosure will first be described below.
- FIG. 13 is a functional block diagram showing an example of the functional configuration of Variation 1 in a multiple-robot SLAM system 1.
- the multiple-robot SLAM system 1 shown in Fig. 13 includes a moving body 10-1 (robot A) equipped with a sensing camera 20-1, a moving body 10-2 (robot B) equipped with a sensing camera 20-2, and a server device 100.
- robot A moving body 10-1
- robot B robot
- server device 100 the multiple-robot SLAM system 1 according to Variation 1 of the proposed method
- the multiple-robot SLAM system 1B the multiple-robot SLAM system 1B.
- the multiple robot SLAM system 1B according to the first variation of the proposed method is similar to the multiple robot SLAM system 1A in that the matching process is performed on the sensing camera 20 side. Therefore, the multiple robot SLAM system 1B can also appropriately reduce the processing load on the server device for SLAM calculations, but can also produce a new effect. Specifically, the multiple robot SLAM system 1B can complete the matching process within the allowable time even if a sensing camera 20 with a performance that makes it impossible to complete the matching process within the allowable time is introduced.
- the sensing camera 20-1 (terminal device) according to the first modification will be described.
- the sensing camera 20-1 has a sensor unit 21, a preprocessing unit 22, a SLAM processing unit 23, a detection unit 24, and a matching unit 25, as in the proposed method, but also has a request unit 26.
- the sensing camera 20-2 also functions in the same way as the sensing camera 20-1.
- a new information processing flow is indicated by dotted arrows compared to the proposed method of Fig. 8.
- the request unit 26 performs a process dispatcher process of allocating (requesting) matching processes between the device itself and an external device. Specifically, when an unprocessed matching process occurs among the matching processes for matching relative positional relationships that is predicted not to be calculated within a predetermined time, the request unit 26 requests an external device different from the device itself to perform the unprocessed matching process.
- the request unit 26 extracts unprocessed matching processes that are predicted to be missed from the matching processes within a predetermined time period. Then, the request unit 26 requests the server device 100 to perform the extracted matching processes.
- the request unit 26 can perform the following processing when making a request to the server device 100. For example, as shown in FIG. 13, the request unit 26 registers the combination (combination of trajectory node tNG and submap sbm) that is the matching target in the unprocessed matching process in a queue of the server device 100. The request unit 26 also uploads trajectory node data that has not been uploaded in the multiple robot SLAM system 1A to the server device 100. Specifically, the request unit 26 uploads the trajectory node data (sensor data SD corresponding to trajectory node TG) of the trajectory node TG generated by the SLAM processing unit 23 to the server device 100.
- the request unit 26 registers the combination (combination of trajectory node tNG and submap sbm) that is the matching target in the unprocessed matching process in a queue of the server device 100.
- the request unit 26 also uploads trajectory node data that has not been uploaded in the multiple robot SLAM system 1A to the server device 100. Specifically, the request unit 26 upload
- the request unit 26 inputs the original combination (the combination of the trajectory node tNG and the submap sbm) that is the matching target in the matching process to the matching unit 25, thereby executing sequential scan matching.
- the matching unit 120 When the matching unit 120 receives a request for matching processing from any of the sensing cameras 20 (request unit 26), it executes the unprocessed matching processing corresponding to the request. Specifically, the matching unit 120 extracts trajectory node data and submaps sbm to be used for the unprocessed matching processing from the storage unit of its own device based on a combination of matching targets registered in the queue of its own device by the requesting sensing camera (request unit 26). Then, the matching unit 120 matches the relative positional relationship between the trajectory node tND included in the extracted trajectory node data and the submap node sND of the extracted submap sbm, and generates a constraint condition COT indicating this relative positional relationship. In other words, the matching unit 120 executes the matching processing that could not be completed by the requesting sensing camera 20.
- Fig. 14 is a flowchart showing the pre-processing procedure related to the request for matching processing. Note that the pre-processing procedure shown in Fig. 14 is performed individually by each sensing camera 20.
- the request unit 26 determines whether an item for scan matching (a combination list of matching targets) has been added to the queue of the device itself (step S1401). While an item for scan matching has not been added to the queue (step S1401; No), the request unit 26 waits until an item for scan matching is added to the queue.
- step S1401 when an item for scan matching has been added to the queue (step S1401; Yes), the request unit 26 determines whether any of the matching processing units (matching unit 25) of the own device has become available for processing (step S1402). When there is no matching processing unit that has become available for processing (step S1402; No), the request unit 26 waits until one of the matching processing units becomes available for processing.
- step S1402 if any of the matching processing units has an available process (step S1402; Yes), the request unit 26 assigns the matching task to the matching unit 25 that has an available process (step S1403).
- the request unit 26 measures the matching processing speed for each matching processing unit to which the matching task is assigned (step S1404).
- Fig. 15 is a flowchart showing the request processing procedure in which the matching processing is requested. Note that the request processing procedure shown in Fig. 15 is performed individually by each sensing camera 20. Also, the request processing procedure may be performed in parallel with the pre-processing procedure in Fig. 14, or may be performed sequentially with respect to the pre-processing procedure in Fig. 14.
- the request unit 26 predicts the processing time required to complete matching for each matching processing unit assigned the matching task based on the queue size of the queue of the own device and the matching processing speed obtained as the measurement result in step S1404 (step S1501). For example, the request unit 26 may perform this process at regular intervals.
- the request unit 26 determines whether the processing time is within the allowable range (step S1502). If the processing time is within the allowable range (step S1502; Yes), the request unit 26 returns to step S1501.
- the request unit 26 extracts a matching process to be requested from the server device 100 (step S1503). For example, the request unit 26 extracts, based on the processing time, a matching process that is registered in the queue of the own device and is predicted to fall outside the allowable range from among the matching processes of the matching processing unit to which the matching task has been assigned.
- the request unit 26 then uploads the extracted trajectory node tND required for the matching process to the server device 100 (step S1504).
- the request unit 26 also deletes the matching task corresponding to the extracted matching process from the queue of the server device (step S1505).
- Fig. 16 is a flow chart showing the procedure of the matching processing which the server device 100 executes upon receiving a request for matching processing.
- the matching unit 120 determines whether an item for scan matching (a list of combinations to be matched) has been added to the queue of the device itself (step S1601). For example, the matching unit 120 determines whether a combination to be matched in an unprocessed matching process that has been determined to be difficult to process by the sensing camera 20 because it has not been processed within the allowable range has been added to the queue. In other words, the matching unit 120 determines whether a request for an unprocessed matching process has been received from the sensing camera 20.
- the matching unit 120 executes scan matching (step S1602). Specifically, the matching unit 120 extracts the trajectory node tND and the submap sbm corresponding to the combination of matching targets added to the queue of the own device, and matches the relative positional relationship between the extracted trajectory node tND and the submap sbm.
- the matching unit 120 generates a constraint condition COT indicating the relative positional relationship between the trajectory node tND and the submap sbm based on the matching result (step S1603), and saves the generated constraint condition COT (step S1604).
- the optimization unit 130 executes an optimization process to correct the error between the constraint condition COT generated by the device itself in the matching process in response to a request from the sensing camera 20 and the sub-map sbm uploaded from each sensing camera 20, based on the COT uploaded from the sensing camera 20.
- the optimization unit 130 also reflects the results of the optimization process in the pose graph PG (step S1203). Specifically, the optimization unit 130 transmits to each sensing camera 20 the corrected overall pose graph PG in which the errors in the overall pose graph PG, which is constructed by combining the pose graphs PG generated by each sensing camera 20, have been corrected.
- the matching process to be performed by one sensing camera 20 may be allocated to multiple computational resources on the edge side. In this way, the matching process to be performed by one sensing camera 20 may be distributed on the edge side, and if an unprocessed matching process occurs that cannot be handled within the allowable range, the unprocessed matching process may be requested to the server device 100. That is, in the modified example 2 according to the proposed method of the present disclosure, one sensing camera 20 may request another sensing camera 20 to perform a part of the matching process to be performed by itself, and if an unprocessed matching process occurs that cannot be handled within the allowable range, the unprocessed matching process is requested to the server device 100.
- FIG. 17 is a functional block diagram showing an example of the functional configuration of Variation 2 in a multiple-robot SLAM system 1.
- the multiple-robot SLAM system 1 shown in Fig. 17 includes a moving body 10-1 (robot A) equipped with a sensing camera 20-1, a moving body 10-2 (robot B) equipped with a sensing camera 20-2, and a server device 100.
- the multiple-robot SLAM system 1 according to Variation 2 of the proposed method will be referred to as a "multiple-robot SLAM system 1C.”
- the sensing camera 20-2 is treated as a sub-machine of the sensing camera 20-1, and is configured to perform part of the matching process that should be performed by the sensing camera 20-1 in response to a request from the sensing camera 20-1.
- the sensing camera 20-2 has a matching unit 25-2 that performs matching processing on behalf of the sensing camera 20-1 in response to a request from the sensing camera 20-1.
- the sensing camera 20-1 has a sensor unit 21, a pre-processing unit 22, a SLAM processing unit 23, a detection unit 24, a matching unit 25, and a request unit 26, just like the modified example 1.
- the sensing camera 20-2 also functions in the same way as the sensing camera 20-1.
- a new flow of information processing is indicated by dotted arrows, compared to the modified example 1 in Fig. 16.
- the request unit 26 requests the server device 100 to perform the unprocessed matching process.
- the request unit 26 aims to complete all matching processes within an acceptable range by requesting the sensing camera 20-2 linked as a sub-device to perform part of the matching process that should be performed by the request unit 26.
- the request unit 26 requests the server device 100 to perform the unprocessed matching process.
- the unprocessed matching processes that the multiple computational resources cannot handle within the allowable range are performed by the server device 100. For this reason, in the multiple robot SLAM system 1C as well, the matching unit 120 that was excluded from the server device 100 is reinstated.
- the matching unit 25-2 of the sensing camera 20-2 also performs scan matching for each combination (combination of trajectory node tNG and submap sbm) that is the target of matching in the matching process requested by the request unit 26 of the sensing camera 20-1.
- the matching unit 25-2 also uploads the constraint condition COT generated based on the results of the matching process to the server device 100.
- the matching unit 120 performs unprocessed matching processes that are to be performed among multiple edge-side computing resources and that cannot be handled within the allowable range by the multiple computing resources. For example, the matching unit 120 extracts trajectory node data and submaps sbm to be used for the unprocessed matching processes from the storage unit of the device itself based on a combination of matching targets registered in the queue of the device itself by the requesting sensing camera (request unit 26). Then, the matching unit 120 matches the relative positional relationship between the trajectory node tND included in the extracted trajectory node data and the submap node sND of the extracted submap sbm, and generates a constraint condition COT that indicates this relative positional relationship.
- FIG. 18 is a flowchart showing the request processing procedure for requesting matching processing. Note that the request processing procedure shown in FIG. 18 is performed individually by each sensing camera 20.
- the request processing procedure shown in FIG. 18 is a modification of the request processing procedure described in FIG. 15 in accordance with the multiple-robot SLAM system 1C according to the modified example 2.
- the request unit 26 predicts the processing time required to complete matching for each matching processing unit assigned the matching task based on the queue size of the queue of the own device and the matching processing speed obtained as the measurement result in step S1404 (step S1801). For example, the request unit 26 may perform this process at regular intervals.
- the request unit 26 determines whether the processing time is within the allowable range (step S1802). If the processing time is within the allowable range (step S1802; Yes), the request unit 26 determines whether an entity executing the matching process (matching processing unit) exists on the edge side other than the own device (step S1803). For example, if a configuration is adopted in which the matching process that should be performed by the own device is distributed among multiple computational resources including the own device, the request unit 26 can determine that an entity executing the matching process exists on the edge side other than the own device.
- the request unit 26 determines that there is another executing entity for the matching process other than its own device (step S1803; Yes), it excludes the other executing entity from the executing entities for performing the matching process (step S1804). In other words, if there is another executing entity for the matching process on the edge side other than its own device but its own device alone can complete all of the matching process within the allowable range, the request unit 26 does not request the matching process from another executing entity (matching processing unit) on the edge side.
- step S1803 If the request unit 26 determines that no other device than its own device is executing the matching process (step S1803; No), the request unit 26 returns to step S1801.
- step S1802 determines whether there is an entity executing the matching process on the edge side other than the device itself (step S1805).
- step S1805 determines that there are no other execution subjects of the matching process other than its own device (step S1805; No)
- the request unit 26 determines that the matching process is being performed by another entity besides its own device (step S1805; Yes), it causes the matching processes that can be processed within the allowable range to be performed among multiple computational resources including its own device, while extracting matching processes to be requested to the server device 100, i.e., unprocessed matching processes that cannot be processed within the allowable range by the multiple computational resources (step S1807).
- the request unit 26 extracts matching processes that are registered in the queue of its own device and that are predicted to fall outside the allowable range from among the matching processes of the matching unit 25 that has been assigned a matching task, based on the processing time.
- the request unit 26 then uploads the extracted trajectory node tND required for the matching process to the server device 100 (step S1808).
- the request unit 26 also deletes the matching task corresponding to the extracted matching process from the queue of the server device (step S1809).
- FIG. 19 is a block diagram showing a hardware configuration example of a computer corresponding to the device according to the embodiment of the present disclosure. Note that Fig. 19 shows an example of the hardware configuration of a computer corresponding to the device according to each embodiment, and is not necessarily limited to the configuration shown in Fig. 19.
- computer 1000 has a CPU (Central Processing Unit) 1100, RAM (Random Access Memory) 1200, ROM (Read Only Memory) 1300, HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input/output interface 1600.
- CPU Central Processing Unit
- RAM Random Access Memory
- ROM Read Only Memory
- HDD Hard Disk Drive
- the CPU 1100 operates based on the programs stored in the ROM 1300 or the HDD 1400, and controls each component. For example, the CPU 1100 loads the programs stored in the ROM 1300 or the HDD 1400 into the RAM 1200, and executes processes corresponding to the various programs.
- the ROM 1300 stores boot programs such as the Basic Input Output System (BIOS) that is executed by the CPU 1100 when the computer 1000 starts up, as well as programs that depend on the hardware of the computer 1000.
- BIOS Basic Input Output System
- HDD 1400 is a computer-readable recording medium that non-temporarily records programs executed by CPU 1100 and data used by such programs. Specifically, HDD 1400 records program data 1450.
- Program data 1450 is an example of an information processing program for realizing an information processing method according to an embodiment of the present disclosure, and data used by such information processing program.
- the communication interface 1500 is an interface for connecting the computer 1000 to an external network 1550 (e.g., the Internet).
- the CPU 1100 receives data from other devices and transmits data generated by the CPU 1100 to other devices via the communication interface 1500.
- the input/output interface 1600 is an interface for connecting the input/output device 1650 and the computer 1000.
- the CPU 1100 receives data from an input device such as a keyboard or a mouse via the input/output interface 1600.
- the CPU 1100 also transmits data to an output device such as a display device, a speaker, or a printer via the input/output interface 1600.
- the input/output interface 1600 may also function as a media interface that reads programs and the like recorded on a specific recording medium.
- Examples of media include optical recording media such as DVDs (Digital Versatile Discs) and PDs (Phase change rewritable Disks), magneto-optical recording media such as MOs (Magneto-Optical Disks), tape media, magnetic recording media, and semiconductor memories.
- optical recording media such as DVDs (Digital Versatile Discs) and PDs (Phase change rewritable Disks)
- magneto-optical recording media such as MOs (Magneto-Optical Disks)
- tape media magnetic recording media
- magnetic recording media and semiconductor memories.
- the CPU 1100 of the computer 1000 executes a program loaded onto the RAM 1200, thereby implementing the various processing functions executed by the processes shown in FIG. 8 and the like.
- the CPU 1100 and the RAM 1200, etc. work together with the software (the information processing program loaded onto the RAM 1200) to implement the information processing method by the terminal device according to an embodiment of the present disclosure.
- the CPU 1100 of the computer 1000 executes a program loaded onto the RAM 1200, thereby implementing various processing functions executed by each process shown in FIG. 8 and the like.
- the CPU 1100 and the RAM 1200, etc. work together with software (an information processing program loaded onto the RAM 1200) to implement an information processing method by an information processing device according to an embodiment of the present disclosure.
- the present disclosure can also be configured as follows.
- An information processing device providing, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices; the terminal device acquires from the terminal device information on a matching result obtained by matching a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the terminal device moves in an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information; performing an optimization process for correcting an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result; A method for processing information.
- the information processing device acquiring, as information of the matching result, a constraint condition that indicates the relative positional relationship and that is generated by matching the relative positional relationship;
- the information processing method according to (1) further comprising: executing a process.
- the information processing device correcting an error in the entire trajectory position information based on the constraint condition;
- the information processing method according to (2) further comprising: executing a process.
- the information processing device correcting an error in overall map information constructed by combining the partial map information generated by each of the terminal devices based on the constraint condition; outputting the corrected overall map information to each of the terminal devices;
- the information processing method according to (2) further comprising: executing a process.
- the information processing device For each of the terminal devices, the trajectory position information generated by the terminal device is synchronized with the corrected overall trajectory position information.
- the terminal device Acquire other partial map information generated by a terminal device different from the own device from the information processing device on the cloud side; Based on trajectory position information indicating a position on a trajectory along which the own device moves in an area included in the partial map information generated by the own device, point cloud information indicating a position of an object within the partial map information, and the other partial map information, a relative positional relationship between the trajectory position information and the other partial map information is matched; uploading the trajectory position information, information on a matching result of a relative positional relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map; A method for processing information.
- the terminal device a trajectory node including the point cloud information and indicating a representative point among the positions on the trajectory included in the trajectory position information, and a partial map node indicating a reference point of the other partial map information, based on which a relative positional relationship between the trajectory node and the partial map node is matched, thereby generating a constraint condition indicating the relative positional relationship as information of the matching result; uploading the constraints to the information processing device;
- the information processing method according to (6) further comprising: executing a process.
- the terminal device acquiring from the information processing device, overall trajectory position information constructed by combining the trajectory position information generated by the own device and the trajectory position information generated by the other terminal device, the overall trajectory position information being corrected by the information processing device based on the constraint condition generated by the own device and the constraint condition generated by the other terminal device; estimating a self-position in overall map information constructed by combining the partial map information based on the overall trajectory position information;
- the information processing method according to (7) further comprising: executing a process.
- the terminal device When an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, the unprocessed matching process is requested to be completed by the information processing device.
- the information processing method according to (6) further comprising: executing a process.
- the terminal device requesting a part of a matching process for matching the relative positional relationship to another terminal device different from the own device; Even if a part of the matching process has been requested to the other terminal device, when an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, for which calculation cannot be completed within the predetermined time, the unprocessed matching process is requested to the information processing device.
- a providing unit that provides, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices; an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information based on the trajectory position information and the other partial map information, and the partial map information; and an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal devices based on information of the matching result.
- a terminal device an acquisition unit that acquires other partial map information generated by a terminal device other than the own device from an information processing device on a cloud side; a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information indicating a position of an object within the partial map information, and the other partial map information; a processing unit that uploads the trajectory position information, information on a matching result of a relative position relationship between the trajectory position information and the other partial map information, and the partial map information to an information processing device that generates an environmental map corresponding to the partial map.
- An information processing device and a plurality of terminal devices A system comprising: The information processing device includes: a providing unit for providing the terminal device with other partial map information generated by another terminal device different from the terminal device; an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information; and an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result,
- the terminal device an acquisition unit that acquires the other partial map information generated by another terminal device different from the own device from the information processing device on the cloud side; a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information
- Sensing camera 21
- Sensor unit 22 Preprocessing unit 23
- SLAM processing unit 24
- Detection unit 25 Matching unit 26
- Request unit 100
- Server device 110
- Optimization unit 140 Visualization unit
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
本開示は、情報処理方法、情報処理装置、端末装置、および、システムに関する。 This disclosure relates to an information processing method, an information processing device, a terminal device, and a system.
自己位置の推定と環境地図の作成とを同時に行なうSLAM(Simultaneous Localization and Mapping)という技術が知られている。 A technology called SLAM (Simultaneous Localization and Mapping) is known that simultaneously estimates the vehicle's position and creates a map of the environment.
例えば、特許文献1では、ロボットと、コンピュータ(サーバ装置)とを含むロボットシステムにおいて、コンピュータは、各ロボットが収集したセンサデータに基づき地図データの生成および更新を行い、各ロボットは、コンピュータから取得した地図データを基に自己位置を推定する、という処理が行われている。
For example, in
しかしながら、上記の従来技術では、複数のロボットが同時に稼動するSLAMシステムにおいて、複数のロボットを対象とするSLAMの演算に掛かるサーバ装置の処理負荷を適切に抑えることができるとは限らない。 However, the above conventional technology does not necessarily make it possible to appropriately reduce the processing load on the server device for SLAM calculations targeting multiple robots in a SLAM system in which multiple robots operate simultaneously.
例えば、上記の従来技術は、複数のロボットが同時に稼動するSLAMシステムにおいて、複数のロボットに対する移動制御演算に掛かるサーバ装置の演算負荷を軽減するものであり、複数のロボットに対するSLAM演算に掛かるサーバ装置の演算負荷を軽減する点については考慮されていない。 For example, the above-mentioned conventional technology reduces the computational load on a server device for movement control calculations for multiple robots in a SLAM system in which multiple robots operate simultaneously, but does not take into consideration reducing the computational load on a server device for SLAM calculations for multiple robots.
そこで、本開示では、複数のロボットが同時に稼動するSLAMシステムにおいて、複数のロボットを対象とするSLAMの演算に掛かるサーバ装置の処理負荷を適切に抑えることが可能な情報処理方法、情報処理装置、端末装置、および、システムを提案する。 This disclosure therefore proposes an information processing method, information processing device, terminal device, and system that can appropriately reduce the processing load on a server device for SLAM calculations targeting multiple robots in a SLAM system in which multiple robots operate simultaneously.
本開示によれば、情報処理装置が、1以上の端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供し、前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得し、前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理を行う、処理を実行する、情報処理方法が提供される。 According to the present disclosure, an information processing method is provided in which an information processing device provides one or more terminal devices with other partial map information generated by a terminal device different from the terminal device, and the terminal device acquires from the terminal device information and other partial map information, matching result information obtained by matching the relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the terminal device moves through an area included in the partial map information generated by the terminal device and the other partial map information, and performs an optimization process for correcting an error in overall trajectory position information constructed by combining the trajectory position information of the terminal devices based on the matching result information.
また、本開示によれば、端末装置が、自装置とは異なる他の端末装置が生成した他の部分地図情報をクラウド側の情報処理装置から取得し、自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせ、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する前記情報処理装置にアップロードする、処理を実行する、情報処理方法が提供される。 The present disclosure also provides an information processing method in which a terminal device acquires other partial map information generated by another terminal device different from the terminal device itself from an information processing device on the cloud side, and performs processing to match the relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating the position on the trajectory along which the terminal device moves through an area included in the partial map information generated by the terminal device itself, point cloud information indicating the position of an object within the partial map information, and the other partial map information, and uploads information on the matching result of the relative positional relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map.
以上説明したように本開示によれば、複数のロボットが同時に稼動するSLAMシステムにおいて、複数のロボットを対象とするSLAMの演算に掛かるサーバ装置の処理負荷を適切に抑えることができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。 As described above, according to the present disclosure, in a SLAM system in which multiple robots operate simultaneously, it is possible to appropriately reduce the processing load on a server device for SLAM calculations targeting multiple robots. Note that the effects described here are not necessarily limited to those described herein, and may be any of the effects described in this disclosure.
以下に添付図面を参照しながら、本開示の実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。 Below, an embodiment of the present disclosure will be described in detail with reference to the attached drawings. Note that in this specification and drawings, components having substantially the same functional configurations are designated by the same reference numerals to avoid redundant description.
以下に説明される1または複数の実施形態(実施例、変形例、適用例を含む)は、各々が独立に実施されることが可能である。一方で、以下に説明される複数の実施形態は少なくとも一部が他の実施形態の少なくとも一部と適宜組み合わせて実施されてもよい。これら複数の実施形態は、互いに異なる新規な特徴を含み得る。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し得、互いに異なる効果を奏し得る。 One or more of the embodiments (including examples, variations, and application examples) described below can be implemented independently. However, at least a portion of the embodiments described below may be implemented in appropriate combination with at least a portion of another embodiment. These embodiments may include novel features that are different from one another. Thus, these embodiments may contribute to solving different purposes or problems and may provide different effects.
また、以下に示す順序に従って本開示を説明する。
1.はじめに
2.実施形態
2-1.システムの概要構成例
2-2.センシングカメラの機能構成
2-3.複数ロボットSLAMの概要
2-4.センサデータの重畳
2-5.単一装置内マッチング処理
2-6.複数装置間マッチング処理
2-7.複数ロボットSLAM処理の具体例
2-8.システムの詳細構成例(従来手法)
2-8-1.端末装置の機能構成
2-8-2.情報処理装置の機能構成
2-9.システムの詳細構成例(提案手法)
2-9-1.端末装置の機能構成
2-9-2.情報処理装置の機能構成
2-10.動作手順
2-10-1.端末装置のアップロード手順
2-10-2.端末装置のスキャンマッチング検出手順
2-10-3.端末装置のスキャンマッチング処理手順
2-10-4.情報処理装置の最適化処理手順
3.変形例1
3-1.変形例1におけるシステムの詳細構成例
3-1-1.端末装置の機能構成
3-1-2.情報処理装置の機能構成
3-2.動作手順
3-2-1.依頼の前処理手順
3-2-2.依頼処理手順
3-2-3.情報処理装置のスキャンマッチング処理手順
4.変形例2
4-1.変形例2におけるシステムの詳細構成例
4-1-1.端末装置の機能構成
4-1-2.情報処理装置の機能構成
4-2.動作手順
5.ハードウェア構成
6.まとめ
The present disclosure will be described in the following order.
1. Introduction 2. Embodiment 2-1. Example of system configuration 2-2. Functional configuration of sensing camera 2-3. Overview of multiple robot SLAM 2-4. Overlay of sensor data 2-5. Matching process within a single device 2-6. Matching process between multiple devices 2-7. Specific example of multiple robot SLAM processing 2-8. Example of detailed system configuration (conventional method)
2-8-1. Functional configuration of terminal device 2-8-2. Functional configuration of information processing device 2-9. Detailed system configuration example (proposed method)
2-9-1. Functional configuration of terminal device 2-9-2. Functional configuration of information processing device 2-10. Operation procedure 2-10-1. Upload procedure of terminal device 2-10-2. Scan matching detection procedure of terminal device 2-10-3. Scan matching processing procedure of terminal device 2-10-4. Optimization processing procedure of information processing device 3.
3-1. Detailed configuration example of the system in the modified example 1 3-1-1. Functional configuration of the terminal device 3-1-2. Functional configuration of the information processing device 3-2. Operation procedure 3-2-1. Request pre-processing procedure 3-2-2. Request processing procedure 3-2-3. Scan matching processing procedure of the information processing device 4. Modified example 2
4-1. Detailed configuration example of the system in the modified example 2 4-1-1. Functional configuration of the terminal device 4-1-2. Functional configuration of the information processing device 4-2. Operation procedure 5. Hardware configuration 6. Summary
[1.はじめに]
SLAMを実現するSLAMシステムは、センサ信号処理を中心としたフロントエンドの処理部と、ポーズグラフの最適化を中心としたバックエンドの処理部とによって構成されている。
1. Introduction
A SLAM system that realizes SLAM is composed of a front-end processing section that focuses on sensor signal processing, and a back-end processing section that focuses on pose graph optimization.
ところで、複数のロボットが同時に稼動するSLAM(複数ロボットSLAM)システムにおいては、フロントエンドの処理部がエッジ側の各ロボットに配置され、バックエンドの処理部がクラウド側のサーバ装置に配置される場合がある。このような構成では、サーバ装置側で地図データの統合が行われるため、各ロボットで同一の環境地図を利用できたり、ロボットの処理負荷を軽減したりすることができる。 In a SLAM (multiple robot SLAM) system in which multiple robots operate simultaneously, the front-end processing unit may be placed on each robot on the edge side, and the back-end processing unit may be placed on a server device on the cloud side. In such a configuration, map data is integrated on the server device side, allowing each robot to use the same environmental map and reducing the processing load on the robots.
一方で、複数ロボットSLAMシステムにおいて、ロボットの台数が増えると、ロボットのセンサデータと、地図データとの間でサーバ装置が行うマッチング処理の負荷がロボット台数の2乗のペースで増加してしまうという課題がある。 On the other hand, in a multi-robot SLAM system, as the number of robots increases, the load of the matching process performed by the server device between the robot's sensor data and map data increases at a rate squared with the number of robots, which is an issue.
そこで、本開示では、クラウド側のサーバ装置で地図データを管理しつつ、地図データとセンサデータとのマッチング処理にエッジ側の計算リソースを利用することで、ロボット台数が増えた場合におけるサーバ装置の処理負荷増加を抑制する手法を提案する。 This disclosure therefore proposes a method for suppressing an increase in the processing load of a server device when the number of robots increases by managing map data on a server device on the cloud side and using computing resources on the edge side for matching processing between map data and sensor data.
例えば、本開示の提案手法によれば、エッジ側の端末装置は、地図データをクラウド側のサーバ装置にアップロードするが、センサデータについてはアップロードせず、自装置内でマッチング処理を行う。例えば、端末装置は、自装置が取得したセンサデータと、自装置が生成した地図データとのマッチング処理を行う。また、端末装置は、自装置が取得したセンサデータと、自装置とは異なる他の端末装置が生成した地図データとのマッチング処理も行う。このような処理が、複数ロボットSLAMに含まれる各端末装置によって行われ、各端末装置は、マッチング結果をサーバ装置に送信する。 For example, according to the proposed method of the present disclosure, a terminal device on the edge side uploads map data to a server device on the cloud side, but does not upload sensor data, and instead performs matching processing within the device itself. For example, the terminal device performs matching processing between the sensor data it has acquired and the map data it has generated. The terminal device also performs matching processing between the sensor data it has acquired and the map data generated by a terminal device other than the terminal device itself. This processing is performed by each terminal device included in the multi-robot SLAM, and each terminal device transmits the matching results to the server device.
サーバ装置は、各サーバ装置から取得したマッチング結果を基に、各端末装置から取得した地図データを最適化する最適化処理を行うことで、より正確な地図を生成する。各端末装置は、この正確な地図を用いて、自己位置を推定することができる。 The server device performs optimization processing to optimize the map data acquired from each terminal device based on the matching results acquired from each server device, thereby generating a more accurate map. Each terminal device can then use this accurate map to estimate its own location.
[2.実施形態]
以下では、本開示の実施形態に係る情報処理について図面を用いて詳細に説明する。本開示の実施形態に係る情報処理は、複数のロボットが同時に稼動するSLAMシステムにおいて実現される。
2. Embodiments
Hereinafter, information processing according to an embodiment of the present disclosure will be described in detail with reference to the drawings. The information processing according to the embodiment of the present disclosure is realized in a SLAM system in which multiple robots operate simultaneously.
[2-1.システムの概要構成例]
図1は、本開示の実施形態に係る複数ロボットSLAMシステム1の概要および構成例を示す図である。図1に示すように、本実施形態に係る複数ロボットSLAMシステム1は、移動体10と、センシングカメラ20と、サーバ装置100とを備える。
[2-1. Example of system configuration]
1 is a diagram illustrating an overview and a configuration example of a multiple-
移動体10は、センシングカメラ20を搭載した自立移動するロボットである。移動体10の一例としては、ロボット掃除機やドローンが挙げられる。図1に示すように、複数ロボットSLAMシステム1には、複数の移動体10として、移動体10-1・・・移動体10-nが含まれる例が示される。なお、複数ロボットSLAMシステム1に含まれる移動体10の数は限定されない。
The moving
センシングカメラ20は、実施形態に係る端末装置の一例であり、フロントエンドと、バックエンドとに分けられる複数ロボットSLAMシステム1において、フロントエンドの処理を担当する。したがって、センシングカメラ20は、エッジ側の端末装置といえる。
The
また、図1に示すように、複数ロボットSLAMシステム1には、複数のセンシングカメラ20として、センシングカメラ20-1・・・センシングカメラ20-nが含まれ、各センシングカメラ20は移動体10に搭載される。図1においては、移動体10-1にはセンシングカメラ20-1が搭載され、移動体10-nにはセンシングカメラ20-nが搭載される例が示される。なお、センシングカメラ20は、移動体10に外付けらえる外部モジュールとして実装されてもよいし、移動体10を製造する段階で内蔵されていてもよい。したがって、以下の実施形態において、センシングカメラ20が行うものとして説明する処理は、移動体10の処理として言い換えることができる。
Also, as shown in FIG. 1, the multiple
また、以下の実施形態において、「複数のロボット」なる表現は「複数のセンシングカメラ20」として言い換えることができ、「自装置」なる表現は「センシングカメラ20そのもの」および「センシングカメラ20が搭載された移動体10」の双方の意味を含み得るものとする。また、センシングカメラ20の位置や姿勢は、実質、移動体10の位置や姿勢を指し示すものである。
In addition, in the following embodiments, the expression "multiple robots" can be rephrased as "
センシングカメラ20は、図1に示すように、自装置が有するセンサ機能(図2のセンサ部21)によってセンシングされたセンサデータを用いて、フロントエンドのSLAM処理を実行し、SLAM処理の結果をサーバ装置に送信する。具体的には、センシングカメラ20は、移動体10が環境の中を移動することに応じて、環境中に存在する物体(障害物や人物等)のセンサデータを観測する。センシングカメラ20は、センサデータに基づいて、環境地図に関する地図データを生成する。センシングカメラ20は、生成した地図データをサーバ装置100にアップロードする。また、センシングカメラ20それぞれは、サーバ装置100が複数のセンシングカメラ20の地図データに基づき誤差補正した地図データをサーバ装置100から受信して、受信した地図データに基づいて、自己位置を推定する。
As shown in FIG. 1, the
サーバ装置100は、実施形態に情報処理装置の一例であり、フロントエンドと、バックエンドとに分けられる複数ロボットSLAMシステム1において、バックエンドの処理を担当する。したがって、本実施形態において、サーバ装置100は、クラウド側のコンピュータであるものとする。一方で、サーバ装置100は、ローカルネットワーク上のコンピュータであってもよい。つまり、サーバ装置100は、ネットワーク経由でアクセスできるコンピュータであれば、クラウドもしくはローカルのいずれか一方に限定されない。
The
サーバ装置100は、図1に示すように、各センシングカメラ20から取得した地図データを用いて、バックエンドのSLAM処理を実行することで、地図データが統合された統合地図を生成する。具体的には、サーバ装置100は、複数のセンシングカメラ20それぞれから、環境地図に関する地図データを取得する。サーバ装置100は、センシングカメラ20それぞれから取得した地図データを相互にマッチングするマッチング処理を行う。また、サーバ装置100は、マッチング処理の結果と地図データ間の相対位置関係とに基づいて、地図データに対する誤差補正処理を行う。そして、サーバ装置100は、ダウンストリームで、誤差補正した地図データを複数のセンシングカメラ20それぞれに対して配信する。
As shown in FIG. 1, the
なお、サーバ装置100は、図1に示すように、統合地図すなわち誤差補正した地図データに基づき、ロボットである移動体10のナビゲーション制御も行ってよい。この結果、各センシングカメラ20は、ナビゲーション制御の内容に従って、自装置に搭載された移動体10を移動させることができる。
As shown in FIG. 1, the
[2-2.センシングカメラの機能構成]
図2は、実施形態に係るセンシングカメラ20の機能構成の一例を示す機能ブロック図である。センシングカメラ20は、センサ部21を有する。
[2-2. Functional configuration of sensing camera]
2 is a functional block diagram showing an example of a functional configuration of the
また、図2の例によれば、センサ部21は、測距センサ211aと、測距センサ信号処理部211bとを有する。センサ部21は、RGBカメラ212aと、RGBカメラ信号処理部212bとを有する。センサ部21は、IMU213aと、IMU信号処理部213bとを有する。なお、図2では不図示であるが、センサ部21は、オドメトリセンサをさらに有してよい。なお、センサ部21の構成は、図2の例に限定されない。例えば、SLAM処理では、環境地図を作成するための外界センサ(外部を観測するセンサ)として、測距センサ211aやRGBカメラ212aが必要となる一方で、ロボットの内部状態を測定するための内界センサはオプションセンサとして取り扱われてよい。図2の例において、内界センサは、IMU213aやオドメトリセンサであり、例えば、SLAM処理の精度を高めるために選択的に導入されてよい。
2, the
また、図2の例によれば、センシングカメラ20は、SLAM認識処理部214と、障害物認識処理部215と、人・物体認識処理部216とを有する。
Furthermore, according to the example of FIG. 2, the
測距センサ211aは、超音波センサ(Sound Navigation And Ranging:SONAR)、ToF(Time of Flight)センサ、および、LiDAR(Light Detection And Ranging)センサ等を含むことができる。例えば、測距センサ211aは、測定点までの距離および方向に関する情報をセンサデータとして取得する。 The distance measurement sensor 211a may include an ultrasonic sensor (Sound Navigation and Ranging: SONAR), a ToF (Time of Flight) sensor, and a LiDAR (Light Detection and Ranging) sensor. For example, the distance measurement sensor 211a obtains information regarding the distance and direction to a measurement point as sensor data.
測距センサ信号処理部211bは、測距センサ211aが取得したセンサデータを、各認識処理部(SLAM認識処理部214、障害物認識処理部215、人・物体認識処理部216)が利用可能な信号データに変換する。例えば、SLAM認識処理部214は、測距センサ信号処理部211bから取得した信号データに基づいて、測定点をLocal座標系における点に変換する。そして、SLAM認識処理部214は、変換によって得られた多数の点(点群)の座標情報を点群情報として出力する。
The ranging sensor signal processing unit 211b converts the sensor data acquired by the ranging sensor 211a into signal data that can be used by each recognition processing unit (SLAM recognition processing unit 214, obstacle
障害物認識処理部215は、測距センサ信号処理部211bから取得した信号データに基づいて、移動体10が移動する環境に存在する障害物を認識する。人・物体認識処理部216は、測距センサ信号処理部211bから取得した信号データに基づいて、移動体10が移動する環境に存在する人や物体を認識する。
The obstacle
RGBカメラ212aは、撮像により自装置が搭載された移動体10が移動する環境の様子が捉えられたイメージデータをセンサデータとして取得する。
The RGB camera 212a captures image data of the environment in which the
RGBカメラ信号処理部212bは、RGBカメラ212aが取得したセンサデータを、各認識処理部(SLAM認識処理部214、障害物認識処理部215、人・物体認識処理部216)が利用可能な信号データに変換する。例えば、SLAM認識処理部214は、RGBカメラ信号処理部212bが取得した信号データに基づいて、自装置が搭載された移動体10の位置や姿勢を推定し、推定結果から移動体10が環境を移動する軌跡を推定する。
The RGB camera signal processing unit 212b converts the sensor data acquired by the RGB camera 212a into signal data that can be used by each recognition processing unit (SLAM recognition processing unit 214, obstacle
障害物認識処理部215は、RGBカメラ信号処理部212bから取得した信号データに基づいて、移動体10が移動する環境に存在する障害物を認識する。人・物体認識処理部216は、RGBカメラ信号処理部212bから取得した信号データに基づいて、移動体10が移動する環境に存在する人や物体を認識する。
The obstacle
IMU213aは、自装置が搭載された移動体10の運動を司る3軸の角度と加速度をセンサデータとして取得する。具体的には、IMUは、「時刻」と「周波数」と「向き(orientation)」と「角速度(angular velocity)」と「加速度(linear acceleration)」を含むデータを出力する。「時刻」は、出力データが生成された時刻を示す。「周波数」は、IMUの出力周波数を示す。「向き(orientation)」は、移動体10の向きを示す。「角速度(angular velocity)」は、移動体10の角速度を示す。「加速度(linear acceleration)」は、移動体10の加速度を示す。なお、IMU213aが出力するデータは、IMU213aの種別によって異なる場合がある。したがって、IMU213aが出力するデータには、必ずしも「時刻」、「周波数」、「向き」、「各速度」、「加速度」の組合せで含まれる必要はない。
The
IMU信号処理部213bは、IMU213aが取得したセンサデータを、各認識処理部(SLAM認識処理部214、障害物認識処理部215、人・物体認識処理部216)が利用可能な信号データに変換する。例えば、SLAM認識処理部214は、IMU信号処理部213bが取得した信号データに基づいて、自装置が搭載された移動体10の自己位置データを生成する。例えば、SLAM認識処理部214は、Local座標系での自己位置データを生成する。
The IMU
人・物体認識処理部216は、IMU信号処理部213bから取得した信号データに基づいて、移動体10が移動する環境に存在する人や物体を認識する。
The human/object
なお、センサ部21は、必ずしも、SLAM認識処理部214、障害物認識処理部215、人・物体認識処理部216の全てを備えている必要はない。例えば、測距センサ211aやRGBカメラ212a等の外界センサは、障害物認識処理部215の機能を代替することができるため、センサ部21は、障害物認識処理部215を有せずともよい。
The
[2-3.複数ロボットSLAMの概要]
次に、複数ロボットSLAMの概要を説明する。複数ロボットSLAMでは、マッチング処理を実現するために、各センシングカメラ20によってSLAMの部分地図が逐次生成される。部分地図は、サブマップと呼ばれ、例えば、2次元の行列データである格子地図(グリッドマップともいう)である。
[2-3. Overview of Multi-Robot SLAM]
Next, an overview of multi-robot SLAM will be described. In multi-robot SLAM, to realize the matching process, a partial map of the SLAM is successively generated by each sensing
なお、サブマップは、3次元の地図データであってもよい。例えば、3次元の地図データには、ボクセルマップや高さ情報を追加した点群地図が存在する。具体的には、グリッドマップでは、移動体に搭載されたセンサ等により障害物の存在が観測された位置に対応する格子地図上のマスに対して障害物の存在確率が高く設定され、障害物が存在しないことが観測されたマスに対して障害物の存在確率が低く設定される。 The submap may be three-dimensional map data. For example, three-dimensional map data includes voxel maps and point cloud maps with added height information. Specifically, in a grid map, the probability of an obstacle's existence is set high for squares on the grid map that correspond to positions where an obstacle is observed to exist by a sensor mounted on a moving object, and the probability of an obstacle's existence is set low for squares where no obstacle is observed to exist.
例えば、センシングカメラ20は、マッチング処理が実現されるよう、任意の時刻でのセンサデータを用いて、任意の時刻ごとにサブマップを逐次生成する。また、センシングカメラ20は、サブマップに含まれる領域を移動する間の移動体10の移動経路(軌跡)の代表点(軌跡ノード)と、軌跡ノードの位置で観測されたセンサデータをサブマップに重畳する。
For example, the
[2-4.センサデータの重畳]
図3は、サブマップへのセンサデータの重畳処理を説明する図である。センシングカメラ20は、サブマップsbmを生成したタイミングで、サブマップsbmに含まれる領域を移動した移動体10(自装置が搭載された移動体10)の移動経路TR上にある軌跡ノードtNDで観測されたセンサデータSDをサブマップsbmに重畳する。
[2-4. Superimposition of sensor data]
3 is a diagram for explaining the process of superimposing sensor data on a submap. When the
図3には、センシングカメラ20によって、移動経路TR上に9つの軌跡ノードtNDが生成された例が示される。係る例では、センシングカメラ20は、9つの軌跡ノードtNDごとに、当該軌跡ノードtNDで観測されたセンサデータSDの点群をサブマップsbmに重畳する。
FIG. 3 shows an example in which nine trajectory nodes tND are generated on the travel route TR by the
[2-5.単一装置内マッチング処理]
各センシングカメラ20は、フロントエンドのSLAM処理として、自装置が生成した軌跡ノードとサブマップとのマッチング処理を行う。具体的には、センシングカメラ20は、自装置が生成した軌跡ノードと、係る軌跡ノードに基づき自装置が生成したサブマップである自己サブマップとのマッチング処理を行う。以下では、このようなマッチング処理を「自己軌跡-自己サブマップ間マッチング処理」と表現する。
[2-5. Matching process within a single device]
Each sensing
また、センシングカメラ20は、自装置が生成した軌跡ノードと、他のセンシングカメラ20が生成したサブマップである他のサブマップとのマッチング処理も行う。以下では、このようなマッチング処理を「自己軌跡-他のサブマップ間マッチング処理」と表現する。
The
ここで、図4では、自己軌跡-自己サブマップ間マッチング処理の一例について説明する。図4には、センシングカメラ20-1による自己軌跡-自己サブマップ間マッチング処理の一例が示される。例えば、センシングカメラ20-1は、自装置の移動経路TR上にある軌跡ノードtNDにおいて、時刻t1に観測したセンサデータSDと、係るセンサデータSDに基づき時刻t1を含む観測時間幅(例えば、時刻t1~t3)に自装置が生成したサブマップsmbとのマッチング処理を行う。 Here, an example of the matching process between the own trajectory and the own sub-map will be described with reference to FIG. 4. FIG. 4 shows an example of the matching process between the own trajectory and the own sub-map by the sensing camera 20-1. For example, the sensing camera 20-1 performs a matching process between the sensor data SD observed at time t1 at a trajectory node tND on the movement route TR of the own device, and the sub-map smb generated by the own device in an observation time range including time t1 (for example, times t1 to t3) based on the sensor data SD.
このように、自己軌跡-自己サブマップ間マッチング処理においては、軌跡上のセンサデータがある瞬間のデータであるため、軌跡上のセンサデータの時刻に合わせてマッチングが行われる必要がある。なお、この点については、自己軌跡-他のサブマップ間マッチング処理でも同様である。 In this way, in the matching process between self trajectory and self submap, since the sensor data on the trajectory is data for a certain moment, matching must be performed according to the time of the sensor data on the trajectory. This is also true for the matching process between self trajectory and other submaps.
図4の例によれば、センシングカメラ20-1は、センサデータSDに基づき自装置が生成したサブマップsmbにセンサデータSDを重畳する。そして、センシングカメラ20-1は、サブマップsbmの基準点を示すノードであるサブマップノードsNDと、軌跡ノードtNDとの相対位置関係をマッチングさせ、全体としてつじつまがあうように(サブマップsbm中の障害物の位置とセンサデータSDの位置がマッチするように)サブマップsbmと軌跡ノードtNDを相互に回転または平行移動させる。 In the example of FIG. 4, the sensing camera 20-1 superimposes the sensor data SD on the submap smb that it has generated based on the sensor data SD. Then, the sensing camera 20-1 matches the relative positional relationship between the submap node sND, which is the node indicating the reference point of the submap sbm, and the trajectory node tND, and rotates or translates the submap sbm and the trajectory node tND relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm matches the position of the sensor data SD).
また、センシングカメラ20-1は、上記のようにマッチング処理を実行すると、マッチング結果に基づいて、軌跡ノードtNDとサブマップsbmとの相対位置関係を示す拘束条件として、自己軌跡-自己サブマップ間拘束条件COT1を生成する。このように、センシングカメラ20-1は、自己の軌跡位置情報と、自己の部分地図情報との相対位置関係をマッチングさせることで、これらの相対位置関係を示す拘束条件(自己軌跡-自己サブマップ間拘束条件COT1)を生成する。 Furthermore, when the sensing camera 20-1 executes the matching process as described above, it generates a self-trajectory-self-submap constraint condition COT1 as a constraint condition indicating the relative positional relationship between the trajectory node tND and the submap sbm based on the matching result. In this way, the sensing camera 20-1 matches the relative positional relationship between its own trajectory position information and its own partial map information, thereby generating a constraint condition (self-trajectory-self-submap constraint condition COT1) indicating the relative positional relationship between them.
続いて、センシングカメラ20-1は、自装置が生成したサブマップsbmの情報であるサブマップデータ、および、自己軌跡-自己サブマップ間拘束条件COT1については、サーバ装置100にアップロードする。一方、センシングカメラ20-1は、センサデータSDを含む軌跡ノードtNDの情報である軌跡ノードデータ(センサデータSD)についてはサーバ装置100にアップロードせず自装置内で保持する。
Then, the sensing camera 20-1 uploads the submap data, which is information about the submap sbm generated by the sensing camera itself, and the self-trajectory-self-submap constraint condition COT1 to the
ここまで、センシングカメラ20-1を例に自己軌跡-自己サブマップ間マッチング処理を説明してきたが、複数ロボットSLAMにおいては、他のセンシングカメラ20も同様に自己軌跡-自己サブマップ間マッチング処理を行う。
So far, we have explained the self-trajectory-self-submap matching process using sensing camera 20-1 as an example, but in a multi-robot SLAM, the
例えば、センシングカメラ20-2は、自装置の移動経路TR上にある軌跡ノードtNDにおいて、時刻t1に観測したセンサデータSDと、係るセンサデータSDに基づき時刻t1を含む観測時間幅(例えば、時刻t1~t3)に自装置が生成したサブマップsmbとのマッチング処理を行う。そして、センシングカメラ20-2は、軌跡ノードtNDとサブマップsbmとの相対位置関係を示す拘束条件として、自己軌跡-自己サブマップ間拘束条件COT2を生成する。 For example, the sensing camera 20-2 performs a matching process between the sensor data SD observed at time t1 at the trajectory node tND on the movement route TR of the own device, and the submap smb generated by the own device for an observation time range including time t1 (for example, times t1 to t3) based on the sensor data SD. Then, the sensing camera 20-2 generates the self-trajectory-self-submap constraint condition COT2 as a constraint condition indicating the relative positional relationship between the trajectory node tND and the submap sbm.
続いて、センシングカメラ20-2は、自装置が生成したサブマップsbmの情報であるサブマップデータ、および、自己軌跡-自己サブマップ間拘束条件COT2については、サーバ装置100にアップロードする。一方、センシングカメラ20-2は、センサデータSDを含む軌跡ノードtNDの情報である軌跡ノードデータ(センサデータSD)についてはサーバ装置100にアップロードせず自装置内で保持する。
Then, the sensing camera 20-2 uploads the submap data, which is information about the submap sbm generated by the camera itself, and the self-trajectory-self-submap constraint condition COT2 to the
[2-6.複数装置間マッチング処理]
図4では、各センシングカメラ20が自装置で生成した情報のみで完結する、自己軌跡-自己サブマップ間マッチング処理について説明した。しかし、上記の通り、各センシングカメラ20は、自装置が生成した軌跡ノードと、他のセンシングカメラ20が生成した他のサブマップとをマッチングする、自己軌跡-他のサブマップ間マッチング処理も行う。そこで、図5では、自己軌跡-他のサブマップ間マッチング処理の概要について説明する。
[2-6. Matching process between multiple devices]
4 has been described regarding the self-trajectory-self submap matching process, which is completed by each sensing
図5によれば、複数ロボットSLAMにおいては、図4で説明した単一装置内マッチング処理(自己軌跡-自己サブマップ間マッチング処理)が、複数装置間マッチング処理(自己軌跡-他のサブマップ間マッチング処理)へと拡張される。 According to Figure 5, in multi-robot SLAM, the matching process within a single device (matching process between self-trajectory and self-submap) described in Figure 4 is expanded to matching process between multiple devices (matching process between self-trajectory and other submaps).
図5の左側には、センシングカメラ20-1を用いて図4で説明した自己軌跡-自己サブマップ間マッチング処理の概念図が示される。一方、図5の右側には、センシングカメラ20-1とセンシングカメラ20-2との間で拡張された自己軌跡-他のサブマップ間マッチング処理の概念図が示される。係る例によれば、センシングカメラ20-1は、自装置の移動経路TR1上にある軌跡ノードtND1において、時刻t1に観測したセンサデータSDと、係るセンサデータSDに基づき時刻t1を含む観測時間幅(例えば、時刻t2)にセンシングカメラ20-2が生成したサブマップsmb2とのマッチング処理を行う。 The left side of FIG. 5 shows a conceptual diagram of the self-trajectory-self sub-map matching process described in FIG. 4 using the sensing camera 20-1. Meanwhile, the right side of FIG. 5 shows a conceptual diagram of the self-trajectory-other sub-map matching process expanded between the sensing cameras 20-1 and 20-2. According to this example, the sensing camera 20-1 performs matching processing between the sensor data SD observed at time t1 at the trajectory node tND1 on the movement route TR1 of the own device, and the sub-map smb2 generated by the sensing camera 20-2 in an observation time range including time t1 (for example, time t2) based on the sensor data SD.
例えば、センシングカメラ20-1は、サブマップsmb2に自装置のセンサデータSDを重畳する。そして、センシングカメラ20-1は、サブマップsbm2の基準点を示すサブマップノードsND2と、軌跡ノードtND1との相対位置関係をマッチングさせ、全体としてつじつまがあうように(サブマップsbm2中の障害物の位置とセンサデータSDの位置がマッチするように)サブマップsbm2と軌跡ノードtND1を相互に回転または平行移動させる。 For example, the sensing camera 20-1 superimposes its own sensor data SD on the submap smb2. Then, the sensing camera 20-1 matches the relative positional relationship between the submap node sND2 indicating the reference point of the submap sbm2 and the trajectory node tND1, and rotates or translates the submap sbm2 and the trajectory node tND1 relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm2 matches the position of the sensor data SD).
また、センシングカメラ20-1は、拡張されたマッチング処理によるマッチング結果に基づいて、軌跡ノードtND1とサブマップsbm2との相対位置関係を示す拘束条件として、自己軌跡-他のサブマップ間拘束条件COT12を生成する。このように、センシングカメラ20-1は、自己の軌跡位置情報と、他の部分地図情報との相対位置関係をマッチングさせることで、これらの相対位置関係を示す拘束条件(自己軌跡-他のサブマップ間拘束条件COT12)を生成する。 In addition, based on the matching results of the extended matching process, the sensing camera 20-1 generates self-trajectory-other submap constraint condition COT12 as a constraint condition indicating the relative positional relationship between the trajectory node tND1 and the submap sbm2. In this way, the sensing camera 20-1 matches the relative positional relationship between its own trajectory position information and other partial map information, thereby generating a constraint condition (self-trajectory-other submap constraint condition COT12) indicating these relative positional relationships.
続いて、センシングカメラ20-1は、自装置が生成したサブマップsbm1の情報であるサブマップデータ、および、自己軌跡-他のサブマップ間拘束条件COT12については、サーバ装置100にアップロードする。一方、センシングカメラ20-1は、センサデータSDを含む軌跡ノードtND1の情報である軌跡ノードデータ(センサデータSD)についてはサーバ装置100にアップロードせず自装置内で保持する。
Then, the sensing camera 20-1 uploads the submap data, which is information about the submap sbm1 generated by the sensing camera itself, and the constraint condition COT12 between the self-trajectory and other submaps, to the
複数ロボットSLAMにおいては、においては、図5に示すように、センシングカメラ20-2側でもセンシングカメラ20-1に対して同様の処理が行われる。 In a multiple robot SLAM system, as shown in Figure 5, the same processing is performed on the sensing camera 20-2 side for the sensing camera 20-1.
例えば、センシングカメラ20-2は、自装置の移動経路TR2上にある軌跡ノードtND2において、時刻t1に観測したセンサデータSDと、係るセンサデータSDに基づき時刻t1を含む観測時間幅(例えば、時刻t2)にセンシングカメラ20-1が生成したサブマップsmb1とのマッチング処理を行う。 For example, the sensing camera 20-2 performs a matching process between the sensor data SD observed at time t1 at the trajectory node tND2 on the movement route TR2 of the own device and the submap smb1 generated by the sensing camera 20-1 for an observation time range including time t1 (for example, time t2) based on the sensor data SD.
例えば、センシングカメラ20-2は、サブマップsmb1に自装置のセンサデータSDを重畳する。そして、センシングカメラ20-2は、サブマップsbm1の基準点を示すサブマップノードsND1と、軌跡ノードtND2との相対位置関係をマッチングさせ、全体としてつじつまがあうように(サブマップsbm1中の障害物の位置とセンサデータSDの位置がマッチするように)サブマップsbm1と軌跡ノードtND2を相互に回転または平行移動させる。 For example, the sensing camera 20-2 superimposes its own sensor data SD on the submap smb1. Then, the sensing camera 20-2 matches the relative positional relationship between the submap node sND1 indicating the reference point of the submap sbm1 and the trajectory node tND2, and rotates or translates the submap sbm1 and the trajectory node tND2 relative to each other so that the whole is consistent (so that the position of the obstacle in the submap sbm1 matches the position of the sensor data SD).
また、センシングカメラ20-2は、拡張されたマッチング処理によるマッチング結果に基づいて、軌跡ノードtND2とサブマップsbm1との相対位置関係を示す拘束条件として、自己軌跡-他のサブマップ間拘束条件COT21を生成する。このように、センシングカメラ20-2は、自己の軌跡位置情報と、他の部分地図情報との相対位置関係をマッチングさせることで、これらの相対位置関係を示す拘束条件(自己軌跡-他のサブマップ間拘束条件COT21)を生成する。 Furthermore, based on the matching results of the extended matching process, the sensing camera 20-2 generates self-trajectory-other submap constraint condition COT21 as a constraint condition indicating the relative positional relationship between the trajectory node tND2 and the submap sbm1. In this way, the sensing camera 20-2 matches the relative positional relationship between its own trajectory position information and other partial map information, thereby generating a constraint condition (self-trajectory-other submap constraint condition COT21) indicating these relative positional relationships.
続いて、センシングカメラ20-2は、自装置が生成したサブマップsbm2の情報であるサブマップデータ、および、自己軌跡-他のサブマップ間拘束条件COT21については、サーバ装置100にアップロードする。一方、センシングカメラ20-2は、センサデータSDを含む軌跡ノードtND2の情報である軌跡ノードデータ(センサデータSD)についてはサーバ装置100にアップロードせず自装置内で保持する。
Then, the sensing camera 20-2 uploads the submap data, which is information about the submap sbm2 generated by the camera itself, and the constraint condition COT21 between the self-trajectory and other submaps, to the
[2-7.複数ロボットSLAM処理の具体例]
図6は、複数ロボットSLAM処理の具体例を示す図である。図6には、実施形態に係るマッチング処理と、マッチング処理の結果に基づく最適化処理との具体例が示される。なお、実施形態に係るマッチング処理とは、自己軌跡-自己サブマップ間マッチング処理と、自己軌跡-他のサブマップ間マッチング処理との総称である。
[2-7. Specific examples of multiple robot SLAM processing]
Fig. 6 is a diagram showing a specific example of a multiple robot SLAM process. Fig. 6 shows a specific example of a matching process according to the embodiment and an optimization process based on the result of the matching process. Note that the matching process according to the embodiment is a general term for a matching process between a self trajectory and a self submap and a matching process between a self trajectory and another submap.
また、図6には、センシングカメラ20-1が、時刻t1に生成したサブマップsbmA1と、時刻t2に生成したサブマップsbmA2と、時刻t3に生成したサブマップsbmA3との間で自己軌跡-自己サブマップ間マッチング処理を行う例が示される。さらに、図6には、センシングカメラ20-1が、サブマップsbmA1、サブマップsbmA2およびサブマップsbm3と、センシングカメラ20-2が時刻t2に生成したサブマップsbmB2との間で自己軌跡-他のサブマップ間マッチング処理を行う例が示される。 FIG. 6 also shows an example of the sensing camera 20-1 performing self-trajectory-self submap matching processing between submap sbmA1 generated at time t1, submap sbmA2 generated at time t2, and submap sbmA3 generated at time t3. FIG. 6 also shows an example of the sensing camera 20-1 performing self-trajectory-other submap matching processing between submap sbmA1, submap sbmA2, and submap sbm3, and submap sbmB2 generated by the sensing camera 20-2 at time t2.
サブマップノードsNDA1はサブマップsbmA1に定められた中心点であり、サブマップノードsNDA2はサブマップsbmA2に定められた中心点であり、サブマップノードsNDA3はサブマップsbmA3に定められた中心点である。一方、サブマップノードsNDB2はサブマップsbmB2に定められた中心点である。 Submap node sNDA1 is the center point defined for submap sbmA1, submap node sNDA2 is the center point defined for submap sbmA2, and submap node sNDA3 is the center point defined for submap sbmA3. Meanwhile, submap node sNDB2 is the center point defined for submap sbmB2.
このような状態において、センシングカメラ20-1は、図6(a)に示すように、自装置のセンサデータSDに基づいて、自装置の位置姿勢tNDや自装置の移動軌跡TRを推定することができるため、位置姿勢tNDのうちの一部の代表点を軌跡ノードtNDとして定めるとともに、サブマップsbmA1,サブマップsbmA2,サブマップsbmA3それぞれに対してポーズグラフPGを構築する。 In this state, as shown in FIG. 6(a), the sensing camera 20-1 can estimate the position and orientation tND and the movement trajectory TR of its own device based on its own sensor data SD, and therefore determines some representative points of the position and orientation tND as trajectory nodes tND and constructs a pose graph PG for each of the submaps sbmA1, sbmA2, and sbmA3.
また、センシングカメラ20-2も同様に、自装置のセンサデータSDに基づいて、自装置の位置姿勢tNDや自装置の移動軌跡TRを推定することができる。このためセンシングカメラ20-2も、位置姿勢tNDのうちの一部の代表点を軌跡ノードtNDとして定めるとともに、サブマップsbmB2に対してポーズグラフPGを構築する。 Similarly, the sensing camera 20-2 can also estimate the position and orientation tND and the movement trajectory TR of its own device based on its own sensor data SD. For this reason, the sensing camera 20-2 also determines some representative points of the position and orientation tND as trajectory nodes tND, and constructs a pose graph PG for the submap sbmB2.
ポーズグラフPGとは、オブジェクト(図6の例では、センシングカメラ20-1およびセンシングカメラ20-2)の位置姿勢を軌跡ノードtND、ノードtND間の相対位置をエッジとして、移動軌跡TRをグラフ構造で表したものである。例えば、センシングカメラ20-1(センシングカメラ20-2も同様)は、自装置のRGBカメラ212aが異なるタイミング取得したイメージデータの間で同一のランドマークが観測された場合に、このランドマークを観測したノードtND間にエッジを作成することができる。 The pose graph PG is a graph structure that represents the movement trajectory TR, with the position and orientation of the object (sensing camera 20-1 and sensing camera 20-2 in the example of FIG. 6) as trajectory nodes tND, and the relative positions between the nodes tND as edges. For example, when the same landmark is observed between image data acquired at different times by the RGB camera 212a of the sensing camera 20-1 (sensing camera 20-2 as well), an edge can be created between the nodes tND that observed this landmark.
このような状態で、図6(b)に示すように、センシングカメラ20-1およびセンシングカメラ20-2それぞれは、実施形態に係るマッチング処理を行う。 In this state, as shown in FIG. 6(b), the sensing camera 20-1 and the sensing camera 20-2 each perform the matching process according to the embodiment.
まず、自己軌跡-自己サブマップ間マッチング処理について説明する。図6(b)の例によれば、センシングカメラ20-1は、サブマップsbmA1に含まれる各軌跡ノードtNDと、サブマップsbmA1のサブマップノードsNDA1との相対位置関係をマッチングさせる自己軌跡-自己サブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA1に含まれる各軌跡ノードtNDとサブマップsbmA1との相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COTを生成する。 First, the self trajectory-self submap matching process will be described. According to the example of FIG. 6(b), the sensing camera 20-1 performs a self trajectory-self submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDA1 of the submap sbmA1. Then, based on the sensing results, the sensing camera 20-1 generates a self trajectory-self submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmA1.
同じく、センシングカメラ20-1は、サブマップsbmA1に含まれる各軌跡ノードtNDと、隣り合うサブマップsbmA2のサブマップノードsNDA2との相対位置関係をマッチングさせる自己軌跡-自己サブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA1に含まれる各軌跡ノードtNDとサブマップsbmA2との相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COTを生成する。 Similarly, the sensing camera 20-1 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDA2 of the adjacent submap sbmA2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmA2.
また、センシングカメラ20-1は、サブマップsbmA2に含まれる各軌跡ノードtNDと、サブマップsbmA2のサブマップノードsNDA2との相対位置関係をマッチングさせる自己軌跡-自己サブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA2に含まれる各軌跡ノードtNDとサブマップsbmA2との相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COTを生成する。 The sensing camera 20-1 also performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap node sNDA2 of the submap sbmA2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap sbmA2.
同じく、センシングカメラ20-1は、サブマップsbmA2に含まれる各軌跡ノードtNDと、隣り合うサブマップsbmA3のサブマップノードsNDA3との相対位置関係をマッチングさせる自己軌跡-自己サブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA3に含まれる各軌跡ノードtNDとサブマップsbmA3との相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COTを生成する。 Similarly, the sensing camera 20-1 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA2 and the submap node sNDA3 of the adjacent submap sbmA3. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap sbmA3.
続いて、図6(b)の例によれば、センシングカメラ20-2は、サブマップsbmB2に含まれる各軌跡ノードtNDと、サブマップsbmB2のサブマップノードsNDA2との相対位置関係をマッチングさせる自己軌跡-自己サブマップ間マッチング処理を行う。そして、センシングカメラ20-2は、センシング結果に基づいて、サブマップsbmB2に含まれる各軌跡ノードtNDとサブマップsbmB2との相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COTを生成する。 Next, in the example of FIG. 6(b), the sensing camera 20-2 performs a self-trajectory-self-submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmB2 and the submap node sNDA2 of the submap sbmB2. Then, based on the sensing result, the sensing camera 20-2 generates a self-trajectory-self-submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmB2 and the submap sbmB2.
次に、自己軌跡-他のサブマップ間マッチング処理について説明する。図6(b)の例によれば、センシングカメラ20-1は、センシングカメラ20-2が生成したサブマップsbmB2に対して隣り合う自装置のサブマップsbmA1とサブマップsbmA3とを用いることができる。 Next, the matching process between the self-trajectory and other submaps will be described. According to the example of FIG. 6(b), the sensing camera 20-1 can use the submaps sbmA1 and sbmA3 of the adjacent device for the submap sbmB2 generated by the sensing camera 20-2.
例えば、センシングカメラ20-1は、サブマップsbmA1に含まれる各軌跡ノードtNDと、隣り合うサブマップsbmB2のサブマップノードsNDB2との相対位置関係をマッチングさせる自己軌跡-他のサブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA1に含まれる各軌跡ノードtNDとサブマップsbmB2との相対位置関係を示す自己軌跡-他のサブマップ間拘束条件COTを生成する。 For example, the sensing camera 20-1 performs a self-trajectory-other submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap node sNDB2 of the adjacent submap sbmB2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-other submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA1 and the submap sbmB2.
また、センシングカメラ20-1は、サブマップsbmA3に含まれる各軌跡ノードtNDと、隣り合うサブマップsbmB2のサブマップノードsNDB2との相対位置関係をマッチングさせる自己軌跡-他のサブマップ間マッチング処理を行う。そして、センシングカメラ20-1は、センシング結果に基づいて、サブマップsbmA3に含まれる各軌跡ノードtNDとサブマップsbmB2との相対位置関係を示す自己軌跡-他のサブマップ間拘束条件COTを生成する。 The sensing camera 20-1 also performs a self-trajectory-other submap matching process that matches the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap node sNDB2 of the adjacent submap sbmB2. Then, based on the sensing results, the sensing camera 20-1 generates a self-trajectory-other submap constraint condition COT that indicates the relative positional relationship between each trajectory node tND included in the submap sbmA3 and the submap sbmB2.
ここで、図6(a)の例では、センシングカメラ20-1は、自装置が生成したポーズグラフPGと、自装置が生成した拘束条件COTと、自装置が生成したサブマップsbm(A1,A2,A3)とをサーバ装置100にアップロードする。一方、センシングカメラ20-1は、自装置が定めた軌跡ノードtNDに対応付けているセンサデータSDについてはサーバ装置100にアップロードしない。
In the example of FIG. 6(a), the sensing camera 20-1 uploads the pose graph PG generated by itself, the constraint condition COT generated by itself, and the submap sbm (A1, A2, A3) generated by itself to the
また、センシングカメラ20-2は、自装置が生成したポーズグラフPGと、自装置が生成した拘束条件COTと、自装置が生成したサブマップsbmB2とをサーバ装置100にアップロードする。一方、センシングカメラ20-2は、自装置が定めた軌跡ノードtNDに対応付けているセンサデータSDについてはサーバ装置100にアップロードしない。
The sensing camera 20-2 also uploads the pose graph PG generated by itself, the constraint condition COT generated by itself, and the submap sbmB2 generated by itself to the
サーバ装置100は、図6(c)に示すように、センシングカメラ20-1およびセンシングカメラ20-2それぞれからアップロードされた情報を用いて、サブマップ間の誤差を補正する最適化処理を実行する。最適化処理では、全てのサブマップノードsNDと軌跡ノードtNDとの相対位置関係のつじつまが合うように、全てのノードの位置の誤差が補正される。
As shown in FIG. 6(c), the
具体的には、サーバ装置100は、サブマップsbm(A1,A2,A3,B2)と、拘束条件COTとに基づいて、サブマップsbm(A1,A2,A3,B2)間での誤差を補正する。このように、サーバ装置100は、拘束条件COTに基づいて、センシングカメラ20それぞれが生成した部分地図情報を組み合わせて構築される全体地図情報の誤差を補正する。
Specifically, the
また、サーバ装置100は、拘束条件COTに基づいて、サブマップsbmA1,サブマップsbmA2,サブマップsbmA3それぞれに対して構築された各ポーズグラフPGと、サブマップsbmB2に対して構築されたポーズグラフPGとを組み合わせた全体ポーズグラフの誤差を補正する。このように、サーバ装置100は、拘束条件COTに基づいて、センシングカメラ20それぞれが生成した軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する。
In addition, the
上述した最適化処理の結果、サーバ装置100は、誤差を補正するようにサブマップsbmAと、サブマップsbmAと、サブマップsbmA3と、サブマップsbmB2とが統合された1つの環境地図(正確な地図)を生成することができる。図6(c)には、最適化処理によって、サブマップsbmAと、サブマップsbmAと、サブマップsbmA3と、サブマップsbmB2とが統合された環境地図MPが示される。
As a result of the optimization process described above, the
[2-8.システムの詳細構成例(従来手法)]
ここで、図7を用いて、複数ロボットSLAMシステム1における従来の機能構成例について詳細に説明する。図7は、複数ロボットSLAMシステム1における従来の機能構成例を示す機能ブロック図である。図7に示す複数ロボットSLAMシステム1には、センシングカメラ20-1が搭載された移動体10-1(ロボットA)と、センシングカメラ20-2が搭載された移動体10-2(ロボットB)と、サーバ装置100とが含まれる例が示される。
[2-8. Detailed system configuration example (conventional method)]
Here, a detailed explanation will be given of an example of a conventional functional configuration of a multiple-
図7において、センシングカメラ20の機能構成については、センシングカメラ20-1に着目して説明するが、センシングカメラ20-2も同様の機能構成を有してよい。また、複数ロボットSLAMシステム1には、センシングカメラ20-1および20-2以外にも、他のセンシングカメラ20が搭載された移動体10がさらに含まれてよく、全てのセンシングカメラ20がセンシングカメラ20-1と同様の機能構成を有してよい。
In FIG. 7, the functional configuration of the
[2-8-1.端末装置の機能構成]
まず、従来手法に係るセンシングカメラ20-1(端末装置)の機能構成例について説明する。図7に示すように、センシングカメラ20-1は、センサ部21と、前処理部22と、SLAM処理部23とを有する。なお、説明は省略するが、センシングカメラ20-2もセンシングカメラ20-1と同様に機能する。
[2-8-1. Functional configuration of terminal device]
First, an example of the functional configuration of a sensing camera 20-1 (terminal device) according to a conventional method will be described. As shown in Fig. 7, the sensing camera 20-1 has a
(センサ部21)
センサ部21は、図2で説明した各種センサ機能である。例えば、センサ部21は、測距センサ211aと、測距センサ信号処理部211bと、RGBカメラ212aと、RGBカメラ信号処理部212bと、IMU213aと、IMU信号処理部213bとを有する。また、センサ部21は、SLAM認識処理部214と、障害物認識処理部215と、人・物体認識処理部216とを有する。なお、センサ部21は、オドメトリセンサをさらに有してよい。なお、図2で説明したように、センサ部21は、必ずしも、測距センサ211a、RGBカメラ212a、IMU213aの全てを備えている必要はない。また、センサ部21は、必ずしも、SLAM認識処理部214、障害物認識処理部215、人・物体認識処理部216の全てを備えている必要はない。
(Sensor unit 21)
The
(前処理部22)
前処理部22は、SLAM処理部23によって行われるSLAM処理のための前処理を実行する。例えば、前処理部22は、センサ部21からセンサデータSDを取得し、取得したセンサデータSDに基づいて、SLAM処理の前処理を実行する。例えば、前処理部22は、IMUの出力データ(例えば、加速度データ)、オドメトリセンサの出力データ、LiDARの出力データ(例えば、ポイントクラウド)を取得する。なお、ポイントクラウドは、周囲の2次元または3次元の点群データ(各点の座標)および点群データの生成時刻のデータを示す。例えば、前処理には、点群から不要な特徴やノイズを削除する処理や、セグメント化やダウンサンプリングする処理が含まれる。
(Pre-processing section 22)
The
(SLAM処理部23)
SLAM処理部23は、SLAMにおけるフロントエンドの処理部に相当する。例えば、SLAM処理部23は、センサ部21から取得したセンサデータSDに基づいて、ポーズグラフPGを生成し、生成したポーズグラフPGのポーズグラフデータをサーバ装置100にアップロードする。
(SLAM processing unit 23)
The
なお、マッチング処理では、ポーズグラフPGが必要となるが、図7に示す従来手法では、マッチング処理は、サーバ装置100側で行われる。このため、例えば、センシングカメラ20-1のSLAM処理部23は、SLAM処理において、センシングカメラ20-2が生成したポーズグラフPGを必要としない。このため、サーバ装置100の最適化部130は、最適化処理で補正されたポーズグラフPGのうち、センシングカメラ20-1に対応する部分のみを、センシングカメラ20-1に送信すればよく、センシングカメラ20-2に対応する部分については送信不要となる。また、係る例では、センシングカメラ20-1のSLAM処理部23は、自装置が生成したポーズグラフPGと、サーバ装置100側で補正されたポーズグラフPGとの間で同期を行う。
Note that the matching process requires a pose graph PG, but in the conventional method shown in FIG. 7, the matching process is performed on the
センシングカメラ20-2についても同じことがいえる。例えば、センシングカメラ20-2のSLAM処理部23は、SLAM処理において、センシングカメラ20-2が生成したポーズグラフPGを必要としない。このため、サーバ装置100の最適化部130は、最適化処理で補正されたポーズグラフPGのうち、センシングカメラ20-2に対応する部分のみを、センシングカメラ20-2に送信すればよく、センシングカメラ20-1に対応する部分については送信不要となる。また、係る例では、センシングカメラ20-2のSLAM処理部23は、自装置が生成したポーズグラフPGと、サーバ装置100側で補正されたポーズグラフPGとの間で同期を行う。
The same can be said about sensing camera 20-2. For example, the
また、SLAM処理部23は、センサ部21から取得したセンサデータSDに基づいて、自装置の軌跡を推定する。例えば、SLAM処理部23は、IMU213の出力データやオドメトリセンサの出力データに基づいて、軌跡ノードTGを生成し、生成した軌跡ノードTGの軌跡ノードデータをサーバ装置100にアップロードする。具体的には、SLAM処理部23は、軌跡ノードTGに対応するセンサデータSDをサーバ装置100にアップロードする。
The
また、SLAM処理部23は、センサ部21から取得したセンサデータSDに基づいて、サブマップsbmを生成する。
The
例えば、SLAM処理部23は、RGBカメラ212aの出力データやLiDARの出力データに基づいて、サブマップsbmを生成し、生成したサブマップsbmのサブマップデータをサーバ装置100にアップロードする。
For example, the
[2-8-2.情報処理装置の機能構成]
次に、従来手法に係るサーバ装置100(情報処理装置)の機能構成例について説明する。図7に示すように、サーバ装置100は、検出部110と、マッチング部120と、最適化部130と、可視化部140とを有する。
[2-8-2. Functional configuration of information processing device]
Next, an example of the functional configuration of a server device 100 (information processing device) according to a conventional method will be described. As shown in FIG 7, the
(検出部110)
検出部110は、各センシングカメラ20から取得したポーズグラフPGに基づいて、マッチング対象となるサブマップsbmと、軌跡ノードtNGとの組合せを検出する。
(Detection Unit 110)
The detection unit 110 detects a combination of a sub-map sbm to be matched and a trajectory node tNG based on a pose graph PG acquired from each sensing
図7に示すように、センシングカメラ20-1とセンシングカメラ20-2とを含む複数ロボットSLAMシステム1の例では、検出部110は、センシングカメラ20-1が生成したサブマップsbm1と軌跡ノードtND1との間でマッチング対象の組合せを検出する。また、検出部110は、センシングカメラ20-2が生成したサブマップsbm2と軌跡ノードtND2との間でマッチング対象の組合せを検出する。
As shown in FIG. 7, in an example of a multiple
また、検出部110は、センシングカメラ20-1が生成したサブマップsbm1と、センシングカメラ20-2が生成した軌跡ノードtND2との間でマッチング対象の組合せを検出する。同様に、検出部110は、センシングカメラ20-2が生成したサブマップsbm2と、センシングカメラ20-1が生成した軌跡ノードtND1との間でマッチング対象の組合せを検出する。 The detection unit 110 also detects a combination of matching targets between the submap sbm1 generated by the sensing camera 20-1 and the trajectory node tND2 generated by the sensing camera 20-2. Similarly, the detection unit 110 detects a combination of matching targets between the submap sbm2 generated by the sensing camera 20-2 and the trajectory node tND1 generated by the sensing camera 20-1.
検出部110は、検出した組合せをキューに登録し、マッチング部120に対して組合せごとのスキャンマッチングを実行させる。
The detection unit 110 registers the detected combinations in a queue and causes the
(マッチング部120)
マッチング部120は、スキャンマッチングを実行する。例えば、マッチング部120は、ループ閉じ込みのクエリに基づいて、スキャンマッチングを実行する。例えば、マッチング部120は、各センシングカメラ20から取得した軌跡ノードデータ(センサデータSD)の点群情報と、各センシングカメラ20から取得したサブマップsbmとに基づいて、スキャンマッチングを実行する。例えば、マッチング部120は、ダウンサンプリング等の前処理によって不要な特徴やノイズが削除された点群情報をサブマップsbmに重畳する。
(Matching unit 120)
The
また、マッチング部120は、スキャンマッチングの結果として、サブマップsbmとの相対位置関係を示す拘束条件と生成する。
In addition, the
図7の例では、マッチング部120は、センシングカメラ20-1が生成した軌跡ノードtND1と、センシングカメラ20-1が生成したサブマップsbm1のサブマップノードsND1との相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COT1を生成する。
In the example of FIG. 7, the
また、マッチング部120は、センシングカメラ20-2が生成した軌跡ノードtND2と、センシングカメラ20-2が生成したサブマップsbm2のサブマップノードsND2との相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COT2を生成する。
The
また、マッチング部120は、センシングカメラ20-1が生成した軌跡ノードtND1と、センシングカメラ20-2が生成したサブマップsbm2のサブマップノードsND2との相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COT12を生成する。同様に、マッチング部120は、センシングカメラ20-2が生成した軌跡ノードtND2と、センシングカメラ20-1が生成したサブマップsbm1のサブマップノードsND1との相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COT21を生成する。
The
(最適化部130)
最適化部130は、マッチング部120によって生成された各拘束条件COTに基づいて、地図データの誤差を補正する。例えば、最適化部130は、各センシングカメラ20が生成したサブマップsbmを組み合わせて構築される全体サブマップsbmの誤差を補正する。例えば、最適化部130は、拘束条件COTに基づいて、各センシングカメラ20が生成したポーズグラフPGを組み合わせて構築される全体ポーズグラフPGの誤差を補正する。上記例によれば、マッチング部120は、拘束条件COT1、拘束条件COT2、拘束条件COT12、および、拘束条件COT21に基づき誤差を補正することで、誤差が補正された1つの環境地図MPを生成する。
(Optimization Unit 130)
The
また、最適化部130は、補正後の全体ポーズグラフPG(拘束条件COTが反映された全体ポーズグラフPG)を各センシングカメラ20に送信する。図7の例では、最適化部130は、補正後のポーズグラフPGのうち、センシングカメラ20-1から取得したポーズグラフPGに対応する部分のみを、センシングカメラ20-1のポーズグラフPGに送信することで、双方のポーズグラフPGの間で同期させる。上述した通り、このような処理が行われるのは、図7に示す従来手法では、センシングカメラ20-1は、マッチング処理を行わず、センシングカメラ20-2のポーズグラフPGを利用する必要が無いためである。
The
また、図7の例では、最適化部130は、補正後のポーズグラフPGのうち、センシングカメラ20-2から取得したポーズグラフPGに対応する部分のみを、センシングカメラ20-2のポーズグラフPGに送信することで、双方のポーズグラフPGの間で同期させる。このような処理が行われるのは、同じく、図7に示す従来手法では、センシングカメラ20-2は、マッチング処理を行わず、センシングカメラ20-1のポーズグラフPGを利用する必要が無いためである。
In the example of FIG. 7, the
(可視化部140)
可視化部140は、最適化部130によって誤差補正された地図データを用いて、レンダリング地図を生成する。例えば、可視化部140は、最適化部130によって誤差補正されたサブマップsbmをレンダリング処理して、各サブマップsbmが統合された1つの環境地図MPを生成する。そして、可視化部140は、環境地図MPを各センシングカメラ20に出力してよい。
(Visualization Unit 140)
The
[2-9.システムの詳細構成例(提案手法)]
次に、図8を用いて、複数ロボットSLAMシステム1における本開示に係る提案手法の機能構成例について詳細に説明する。図8は、複数ロボットSLAMシステム1における提案手法の機能構成例を示す機能ブロック図である。図8に示す複数ロボットSLAMシステム1には、図7と同様に、センシングカメラ20-1が搭載された移動体10-1(ロボットA)と、センシングカメラ20-2が搭載された移動体10-2(ロボットB)と、サーバ装置100とが含まれる例が示される。なお、以下では、提案手法に係る複数ロボットSLAMシステム1を「複数ロボットSLAMシステム1A」と表記する。
[2-9. Detailed system configuration example (proposed method)]
Next, a detailed description will be given of an example of the functional configuration of the proposed method according to the present disclosure in a multiple-
本開示の提案手法に係る複数ロボットSLAMシステム1Aでは、センシングカメラ20側でマッチング処理が行われる。具体的には、センシングカメラ20は、自装置のセンサデータSDと、自装置のサブマップsbmとのマッチング処理を行う。また、センシングカメラ20は、自装置のセンサデータSDと、他装置のサブマップsbmとのマッチング処理を行う。すなわち、図7の従来手法では、サーバ装置100が行うものとして説明したマッチング処理が各センシングカメラ20によって行われる。このように、提案手法では、マッチング処理がクラウドのサーバ装置100から、エッジのセンシングカメラ20へとオフロードされるという構成が採用される。この結果、SLAMの演算に掛かるサーバ装置の処理負荷を適切に抑えることができると考えられる。
In the multiple
[2-9-1.端末装置の機能構成]
まず、提案手法に係るセンシングカメラ20-1(端末装置)の機能構成例について説明する。図8に示すように、センシングカメラ20-1は、従来手法と同じく、センサ部21と、前処理部22と、SLAM処理部23とを有するが、検出部24と、マッチング部25とをさらに有する。なお、説明は省略するが、センシングカメラ20-2もセンシングカメラ20-1と同様に機能する。また、図8には、図7の従来手法と比較して、新たな情報処理の流れが点線矢印で示される。
[2-9-1. Functional configuration of terminal device]
First, a functional configuration example of a sensing camera 20-1 (terminal device) according to the proposed method will be described. As shown in FIG. 8, the sensing camera 20-1 has a
(SLAM処理部23)
SLAM処理部23は、従来手法と同様に、センサデータSDに基づきポーズグラフPGを生成し、生成したポーズグラフPGのポーズグラフデータをサーバ装置100にアップロードする。また、SLAM処理部23は、センサデータSDに基づき、サブマップsbmを生成し、生成したサブマップsbmのサブマップデータをサーバ装置100にアップロードする。一方、SLAM処理部23は、提案手法では、センサデータSDに基づき、軌跡ノードTGを生成するが、生成した軌跡ノードTGの軌跡ノードデータについてはサーバ装置100にアップロードしない。具体的には、SLAM処理部は、軌跡ノードTGに対応するセンサデータSDについてはサーバ装置100にアップロードしない。
(SLAM processing unit 23)
As in the conventional method, the
ここで、図8に示す提案手法では、マッチング処理は、センシングカメラ20側で行われる。このため、例えば、センシングカメラ20-1のSLAM処理部23は、SLAM処理において、自装置が生成したポーズグラフPGだけでなく、センシングカメラ20-2が生成したポーズグラフPGも必要となる。このため、サーバ装置100の最適化部130は、最適化処理で補正されたポーズグラフPGのうち、センシングカメラ20-1に対応する部分だけでなく、センシングカメラ20-2に対応する部分もセンシングカメラ20-1に送信することになる。また、係る例では、センシングカメラ20-1のSLAM処理部23は、自装置が生成したポーズグラフPGだけでなく、複数ロボットSLAMシステム1Aに含まれる全てのセンシングカメラ20が生成したポーズグラフPGの間で同期を行う。
Here, in the proposed method shown in FIG. 8, the matching process is performed on the
センシングカメラ20-2についても同じことがいえる。例えば、センシングカメラ20-2のSLAM処理部23は、SLAM処理において、自装置が生成したポーズグラフPGだけでなく、センシングカメラ20-1が生成したポーズグラフPGも必要となる。このため、サーバ装置100の最適化部130は、最適化処理で補正されたポーズグラフPGのうち、センシングカメラ20-2に対応する部分だけでなく、センシングカメラ20-1に対応する部分もセンシングカメラ20-2に送信することになる。また、係る例では、センシングカメラ20-2のSLAM処理部23は、自装置が生成したポーズグラフPGだけでなく、複数ロボットSLAMシステム1Aに含まれる全てのセンシングカメラ20が生成したポーズグラフPGの間で同期を行う。
The same can be said about sensing camera 20-2. For example, in SLAM processing, the
(検出部24)
検出部24は、図8に示すように、ポーズグラフPGに基づいて、マッチングのクエリとしてキューに登録するためのサブマップsbmと、マッチングのクエリとしてキューに登録するための軌跡ノードtNGとを検出する。例えば、検出部24は、ポーズグラフPGに基づいて、マッチング対象となるサブマップsbmと、軌跡ノードtNGとの組合せを検出する。ここで用いられるポーズグラフPGは、最適化部130から送信されたポーズグラフPGを含み得る。センシングカメラ20-1を例に挙げると、最適化部130から送信されたポーズグラフPGとして、自装置が生成したポーズグラフPGだけでなく、センシングカメラ20-2が生成したポーズグラフPGも含み得る。
(Detection Unit 24)
As shown in Fig. 8, the
例えば、検出部24は、自装置が生成した軌跡ノードtND1と自装置が生成したサブマップsbm1との間でマッチング対象の組合せを検出する。また、検出部24は、自装置が生成した軌跡ノードtND1と、センシングカメラ20-2が生成したサブマップsbm2との間でマッチング対象の組合せを検出する。
For example, the
検出部24は、検出した組合せをキューに登録し、マッチング部25に対して組合せごとのスキャンマッチングを実行させる。
The
(マッチング部25)
マッチング部25は、実施形態に係るマッチング処理を行う。マッチング部25は、マッチングのクエリとしてキューに登録されている軌跡ノードtNGとサブマップsbmとの組合せごとに順次マッチング処理を行う。具体的には、マッチング部25は、自己軌跡-自己サブマップ間マッチング処理と、自己軌跡-他のサブマップ間マッチング処理とを行う。
(Matching unit 25)
The matching
なお、マッチング部25は、自己軌跡-他のサブマップ間マッチング処理を行う場合には、自装置とは異なる他のセンシングカメラ20が生成したサブマップsbmをサーバ装置100から取得する。例えば、センシングカメラ20-1のマッチング部25は、センシングカメラ20-2が生成したサブマップsbm2をサーバ装置100から取得する。一方、センシングカメラ20-2のマッチング部25は、センシングカメラ20-1が生成したサブマップsbm1をサーバ装置100から取得する。
When performing self-trajectory-other submap matching processing, the matching
このような状態において、センシングカメラ20-1のマッチング部25は、自己軌跡-自己サブマップ間マッチング処理においては、自装置が生成した軌跡ノードtND1と、自装置が生成したサブマップsbm1のサブマップノードsND1との相対位置関係をマッチングさせ、この相対位置関係を示す自己軌跡-自己サブマップ間拘束条件COT1を生成する。また、マッチング部25は、自装置が生成した軌跡ノードtND1と、センシングカメラ20-2が生成したサブマップsbm2のサブマップノードsND2との相対位置関係をマッチングさせ、この相対位置関係を示す自己軌跡-他のサブマップ間拘束条件COT12を生成する。
In this state, in the self-trajectory-self-submap matching process, the matching
同様の処理は、センシングカメラ20-2のマッチング部25でも行われ、この結果、自己軌跡-自己サブマップ間マッチング処理により自己軌跡-自己サブマップ間拘束条件COT2が生成され、また、自己軌跡-他のサブマップ間マッチング処理により自己軌跡-他のサブマップ間拘束条件COT21が生成される。
Similar processing is also performed by the matching
また、マッチング部25は、自装置が生成した拘束条件COTをサーバ装置100にアップロードする。上記例によれば、センシングカメラ20-1のマッチング部25は、拘束条件COT1および拘束条件COT12をサーバ装置100にアップロードする。また、センシングカメラ20-2のマッチング部25は、拘束条件COT2および拘束条件COT21をサーバ装置100にアップロードする。
The matching
[2-9-2.情報処理装置の機能構成]
次に、提案手法に係るサーバ装置100(情報処理装置)の機能構成例について説明する。提案手法では、各センシングカメラ20によってマッチング処理が行われる。このため、サーバ装置100は、図8に示すように、従来手法においてマッチング処理を担っていた検出部110およびマッチング部120を有しない。
[2-9-2. Functional configuration of information processing device]
Next, a functional configuration example of the server device 100 (information processing device) according to the proposed method will be described. In the proposed method, the matching process is performed by each sensing
(最適化部130)
最適化部130は、各センシングカメラ20によって生成された拘束条件COTに基づいて、地図データの誤差を補正する。補正処理は、従来手法と同様であってよい。すなわち、最適化部130は、各センシングカメラ20が生成したサブマップsbmを組み合わせて構築される全体サブマップsbmの誤差を補正する。例えば、最適化部130は、拘束条件COTに基づいて、各センシングカメラ20が生成したポーズグラフPGを組み合わせて構築される全体ポーズグラフPGの誤差を補正する。図8の例では、最適化部130は、拘束条件COT1、拘束条件COT2、拘束条件COT12、および、拘束条件COT21に基づき誤差を補正することで、誤差が補正された1つの環境地図MPを生成する。
(Optimization Unit 130)
The
また、最適化部130は、補正後の全体ポーズグラフPG(拘束条件COTが反映された全体ポーズグラフPG)を各センシングカメラ20に送信する。図8の例では、最適化部130は、補正後のポーズグラフPGのうち、センシングカメラ20-1に対応する部分だけでなく、センシングカメラ20-2に対応する部分もセンシングカメラ20-1に送信する。これにより、最適化部130は、センシングカメラ20-1のSLAM処理部23に対して、複数ロボットSLAMシステム1Aに含まれる全てのセンシングカメラ20が生成したポーズグラフPGの間で同期を行わせる。上述した通り、このような処理が行われるのは、図8に示す提案手法では、センシングカメラ20-1は、マッチング処理において、センシングカメラ20-2のポーズグラフPGも利用する必要があるためである。
The
また、図8の例では、最適化部130は、補正後のポーズグラフPGのうち、センシングカメラ20-2に対応する部分だけでなく、センシングカメラ20-1に対応する部分もセンシングカメラ20-2に送信する。これにより、最適化部130は、センシングカメラ20-2のSLAM処理部23に対して、複数ロボットSLAMシステム1Aに含まれる全てのセンシングカメラ20が生成したポーズグラフPGの間で同期を行わせる。上述した通り、このような処理が行われるのは、図8に示す提案手法では、センシングカメラ20-2は、マッチング処理において、センシングカメラ20-1のポーズグラフPGも利用する必要があるためである。
In the example of FIG. 8, the
(可視化部140)
可視化部140は、最適化部130によって誤差補正された地図データを用いて、レンダリング地図を生成する。そして、可視化部140は、レンダリングで生成した環境地図MPを各センシングカメラ20に出力してよい。
(Visualization Unit 140)
The
[2-10.動作手順]
ここからは、図8で説明した提案手法に係る複数ロボットSLAMシステム1Aで実現される動作手順の一例を説明する。具体的には、図9~図12を用いて、複数ロボットSLAMシステム1Aにおける各シーンでの動作手順を説明する。
[2-10. Operation procedure]
From here on, we will explain an example of the operational procedure realized by the multiple-
[2-10-1.端末装置のアップロード手順]
まず、図9を用いて、センシングカメラ20によるサーバ装置100へのアップロード手順を説明する。図9は、提案手法においてセンシングカメラ20が実行するアップロード処理手順を示すフローチャートである。なお、図9に示すアップロード手順は、各センシングカメラ20が自装置の情報のみを用いて個別に行われるものである。
[2-10-1. Upload procedure of terminal device]
First, the upload procedure to the
SLAM処理部23は、センサ部21から新規センサデータSDを取得できたか否かを判定する(ステップS901)。SLAM処理部23は、センサ部21から新規センサデータSDを取得できていない間は(ステップS901;No)、新規センサデータSDを取得できるまで待機する。
The
SLAM処理部23は、センサ部21から新規センサデータSDを取得できた場合には(ステップS901;Yes)、取得したセンサデータSDの種別を判別する(ステップS902)。例えば、SLAM処理部23は、ステップS902において、取得したセンサデータSDがIMUの出力データ、あるいは、オドメトリセンサの出力データであると判別した場合には、自装置が微小時間に移動した移動量を算出し(ステップS903)、ステップS901に処理を戻す。
When the
SLAM処理部23は、ステップS902において、取得したセンサデータSDがカメラのイメージデータであると判別した場合には、ステップS903で算出した微小時間の移動量に基づいて、作成途中のサブマップsbmにセンサデータSD(センサデータSDの点群情報)をマッチング(重畳)する(ステップS904)。
If the
また、SLAM処理部23は、センサデータSDに基づいて、軌跡ノードTGを生成し、生成した軌跡ノードTGをポーズグラフPGに追加する(ステップS905)。
The
次に、SLAM処理部23は、作成途中のサブマップsbmについて更新が完了したか否かを判定する(ステップS906)。SLAM処理部23は、サブマップsbmの更新が完了していない場合には(ステップS906;No)、ステップS901に処理を戻す。
Then, the
SLAM処理部23は、サブマップsbmの更新が完了した場合には(ステップS906;Yes)、更新後のサブマップsbmをポーズグラフPGに追加する(ステップS907)。
When the update of the submap sbm is completed (step S906; Yes), the
次に、SLAM処理部23は、軌跡ノードデータについては自装置内に保持した状態で、ポーズグラフデータおよびサブマップデータをサーバ装置100にアップロードする(ステップS908)。
Next, the
[2-10-2.端末装置のスキャンマッチング検出手順]
次に、図10を用いて、センシングカメラ20によるスキャンマッチング検出手順を説明する。図10は、提案手法においてセンシングカメラ20が実行するスキャンマッチング検出手順を示すフローチャートである。なお、図10に示すスキャンマッチング検出手順は、各センシングカメラ20によって個別に行われるものである。
[2-10-2. Scan matching detection procedure of terminal device]
Next, the scan matching detection procedure by the
まず、検出部24は、自装置のポーズグラフPGに自装置が生成したデータが追加されたか否かを判定する(ステップS1001)。検出部24は、自装置のポーズグラフPGに自装置が生成したデータが追加されていない場合には(ステップS1001;No)、データが追加されるまで待機する。
First, the
一方、検出部24は、自装置のポーズグラフPGに自装置が生成したデータが追加された場合には(ステップS1001;Yes)、追加されたデータの種別を判別する(ステップS1002)。例えば、検出部24は、ステップS1002において、追加されたデータが軌跡ノードデータである場合には、自装置を含め各センシングカメラ20が過去に生成したサブマップsbmのうち、自装置が生成した軌跡ノードTGとマッチング対象になるサブマップsbmを検出する(ステップS1003)。
On the other hand, if data generated by the own device is added to the pose graph PG of the own device (step S1001; Yes), the
そして、検出部24は、マッチング対象となる軌跡ノードTGとサブマップsbmとの組合せをリストアップ(ステップS1004)し、リストアップした組合せを自装置のキューに追加する(ステップS1005)。例えば、検出部24は、ステップS1004では、近接同士の組合せをリストアップしてよい。
Then, the
検出部24は、ステップS1002において、追加されたデータがサブマップデータである場合には、自装置が過去に生成した軌跡ノードTGのうち、自装置が生成したサブマップsbmとマッチング対象になる軌跡ノードTGを検出する(ステップS1006)。
If the added data is submap data in step S1002, the
そして、検出部24は、マッチング対象となる軌跡ノードTGとサブマップsbmとの組合せをリストアップ(ステップS1007)し、リストアップした組合せを自装置のキューに追加する(ステップS1008)。例えば、検出部24は、ステップS1007では、近接同士の組合せをリストアップしてよい。
Then, the
[2-10-3.端末装置のスキャンマッチング処理手順]
次に、図11を用いて、センシングカメラ20によるスキャンマッチング処理手順を説明する。図11は、提案手法においてセンシングカメラ20が実行するスキャンマッチング処理手順を示すフローチャートである。なお、図11に示すスキャンマッチング処理手順は、各センシングカメラ20によって個別に行われるものである。
[2-10-3. Scan matching processing procedure of terminal device]
Next, the scan matching process performed by the
まず、マッチング部25は、スキャンマッチング用のアイテム(マッチング対象の組合せリスト)が自装置のキューに追加されたか否かを判定する(ステップS1101)。マッチング部25は、スキャンマッチング用のアイテムがキューに追加されていない間は(ステップS1101;No)、スキャンマッチング用のアイテムがキューに追加されるまで待機する。
First, the matching
一方、マッチング部25は、スキャンマッチング用のアイテムがキューに追加された場合には(ステップS1101;Yes)、マッチング対象としてリストアップされているサブマップsbmのうち、自装置とは異なる他のセンシングカメラ20が生成したサブマップsbmの実データを保有しているか否かを判定する(ステップS1102)。
On the other hand, when an item for scan matching is added to the queue (step S1101; Yes), the matching
マッチング部25は、他のセンシングカメラ20が生成したサブマップsbmの実データを保有していない場合には(ステップS1102;No)、他のセンシングカメラが生成したサブマップsbmの実データをサーバ装置100から取得する(ステップS1103)。
If the
そして、マッチング部25は、スキャンマッチングを実行する(ステップS1104)。具体的には、マッチング部25は、自己軌跡-自己サブマップ間マッチング処理と、自己軌跡-他のサブマップ間マッチング処理とを実行する。なお、マッチング部25は、他のセンシングカメラ20が生成したサブマップsbmの実データを保有している場合には(ステップS1102;Yes)、ステップS1103をスキップしてよい。
Then, the matching
マッチング部25は、マッチング結果に基づいて、軌跡ノードtNDとサブマップsbmとの相対位置関係を示す拘束条件COTを生成する(ステップS1105)。そして、マッチング部25は、拘束条件COTをサーバ装置100にアップロードする(ステップS1106)。
The matching
[2-10-4.情報処理装置の最適化処理手順]
次に、図12を用いて、サーバ装置100による最適化処理手順を説明する。図12は、提案手法においてサーバ装置100が実行する最適化処理手順を示すフローチャートである。
[2-10-4. Optimization process procedure for information processing device]
Next, the optimization process performed by the
最適化部130は、拘束条件COTが各センシングカメラ20からアップロードされることに応じて、拘束条件COTが十分に蓄積されたか否かを判定する(ステップS1201)。最適化部130は、拘束条件COTの蓄積量が不十分である場合には(ステップS1201;No)、拘束条件COTが十分に蓄積されるまで待機する。
The
一方、最適化部130は、拘束条件COTの蓄積量が十分である場合には(ステップS1201;Yes)、拘束条件COTに基づいて、各センシングカメラ20からアップされたサブマップsbmの間での誤差を補正する最適化処理を実行する(ステップS1202)。
On the other hand, if the accumulated amount of the constraint condition COT is sufficient (step S1201; Yes), the
次に、最適化部130は、最適化処理の結果をポーズグラフPGに反映させる(ステップS1203)。具体的には、最適化部130は、各センシングカメラ20が生成したポーズグラフPGを組み合わせて構築される全体ポーズグラフPGの誤差が補正された補正後の全体ポーズグラフPGを各センシングカメラ20に送信する。この結果、各センシングカメラ20は、自身のポーズグラフPGに、他のセンシングカメラ20が生成したポーズグラフPGを反映する。すなわち、各センシングカメラ20は、自装置が生成したポーズグラフPGと、他のセンシングカメラ20が生成したポーズグラフPGとの間で同期を行う。
Next, the
また、最適化部130は、最適化処理で誤差補正された地図データを用いて、レンダリング地図(環境地図)を生成する(ステップS1204)。なお、最適化部130は、レンダリング地図を各センシングカメラ20に出力してよい。
The
[3.変形例1]
ここからは、複数ロボットSLAMシステム1の変形例について説明する。本開示の提案手法に係る複数ロボットSLAMシステム1Aでは、マッチング処理がクラウドのサーバ装置100から、エッジのセンシングカメラ20へとオフロードされるという構成が採用される点について説明した。
[3. Modification 1]
Next, we will explain modified examples of the multiple-
しかしながら、センシングカメラ20は、サーバ装置100と比較して処理能力が劣っている場合が多く、また、センシングカメラ20間でも種類に応じて処理能力に差が生じてしまっている場合がある。このように、センシングカメラ20は、処理能力が低い場合、例えば、期間内に全てのマッチング処理を完了させることができず、自己位置推定の結果を得るまでにより長い時間を要してしまうという問題がある。そこで、本開示の提案手法に係る変形例1では、このような問題を解決するための新たな構成要件として、依頼部26が各センシングカメラ20に新たに導入される。そこで、以下ではまず、本開示の提案手法に係る変形例1の機能構成について説明する。
However, the
[3-1.変形例1におけるシステムの詳細構成例]
図13は、複数ロボットSLAMシステム1における変形例1の機能構成例を示す機能ブロック図である。図13に示す複数ロボットSLAMシステム1には、図8と同様に、センシングカメラ20-1が搭載された移動体10-1(ロボットA)と、センシングカメラ20-2が搭載された移動体10-2(ロボットB)と、サーバ装置100とが含まれる例が示される。以下では、提案手法の変形例1に係る複数ロボットSLAMシステム1を「複数ロボットSLAMシステム1B」と表記する。
[3-1. Detailed configuration example of the system in the first modification]
Fig. 13 is a functional block diagram showing an example of the functional configuration of
提案手法の変形例1に係る複数ロボットSLAMシステム1Bでも、センシングカメラ20側でマッチング処理が行われる点は、複数ロボットSLAMシステム1Aと同様である。よって、複数ロボットSLAMシステム1Bでも、SLAMの演算に掛かるサーバ装置の処理負荷を適切に抑えることができるが、さらに新たな効果を生む出すことができる。具体的には、複数ロボットSLAMシステム1Bでは、許容時間内にマッチング処理を完了させることができないような性能のセンシングカメラ20が導入された場合であっても、許容時間内にマッチング処理を完了させることができるようになる。
The multiple
[3-1-1.端末装置の機能構成]
まず、変形例1に係るセンシングカメラ20-1(端末装置)の機能構成例について説明する。図13に示すように、センシングカメラ20-1は、提案手法と同じく、センサ部21と、前処理部22と、SLAM処理部23と、検出部24と、マッチング部25とを有するが、依頼部26をさらに有する。なお、説明は省略するが、センシングカメラ20-2もセンシングカメラ20-1と同様に機能する。また、図13には、図8の提案手法と比較して、新たな情報処理の流れが点線矢印で示される。
[3-1-1. Functional configuration of terminal device]
First, a functional configuration example of the sensing camera 20-1 (terminal device) according to the first modification will be described. As shown in Fig. 13, the sensing camera 20-1 has a
(依頼部26)
依頼部26は、自装置と外部装置との間でマッチング処理を割り当てる(依頼する)プロセスディスパッチャ処理を行う。具体的には、依頼部26は、相対位置関係をマッチングさせるマッチング処理のうち、所定時間内での演算が間に合わなくなると予測される未処理のマッチング処理が発生した場合には、未処理のマッチング処理を自装置とは異なる外部装置に依頼する。
(Request Unit 26)
The
例えば、依頼部26は、検出部24によりマッチング対象の組合せがマッチングのクエリとしてキューに登録されると、マッチング処理のうち、所定時間内でのマッチング処理から漏れてしまうと予測される未処理のマッチング処理を抽出する。そして、依頼部26は、抽出したマッチング処理を行うようサーバ装置100に依頼する。
For example, when the
例えば、依頼部26は、サーバ装置100への依頼においては次のような処理を行うことができる。例えば、依頼部26は、図13に示すように、未処理のマッチング処理においてマッチング対象となっている組合せ(軌跡ノードtNGとサブマップsbmとの組合せ)を、サーバ装置100のキューに登録する。また、依頼部26は、複数ロボットSLAMシステム1Aではアップロードされていなかった軌跡ノードデータをサーバ装置100にアップロードする。具体的には、依頼部26は、SLAM処理部23により生成された軌跡ノードTGの軌跡ノードデータ(軌跡ノードTGに対応するセンサデータSD)をサーバ装置100にアップロードする。
For example, the
このように、複数ロボットSLAMシステム1Bでは、本来であればセンシングカメラ20が行うべきマッチング処理の一部がサーバ装置100によって行われることになる。このため、複数ロボットSLAMシステム1Bでは、サーバ装置100から除外されていたマッチング部120が復活される。
In this way, in the multiple
なお、依頼部26は、相対位置関係をマッチングさせるマッチング処理のうち、所定時間内での演算が間に合わなくなると予測される未処理のマッチング処理が発生していない場合には、マッチング処理においてマッチング対象となっている当初の組合せ(軌跡ノードtNGとサブマップsbmとの組合せ)をマッチング部25に入力することで順次スキャンマッチングを実行させる。
In addition, if there is no unprocessed matching process that is predicted to be unable to be calculated within the specified time among the matching processes that match relative positional relationships, the
[3-1-2.情報処理装置の機能構成]
次に、提案手法の変形例1に係るサーバ装置100(情報処理装置)の機能構成例について説明する。上述した通り、変形例1では、センシングカメラ20が行うべきマッチング処理の一部がサーバ装置100によって行われる。このため、サーバ装置100は、図8の例と比較して、マッチング部120を有する。また、サーバ装置100は、キューも有する。
[3-1-2. Functional configuration of information processing device]
Next, a functional configuration example of the server device 100 (information processing device) according to
(マッチング部120)
マッチング部120は、センシングカメラ20(依頼部26)のいずれかからマッチング処理の依頼を受け付けた場合には、依頼に対応する未処理のマッチング処理を実行する。具体的には、マッチング部120は、依頼元のセンシングカメラ(依頼部26)によって自装置のキューに登録されたマッチング対象の組合せに基づいて、未処理のマッチング処理に用いる軌跡ノードデータとサブマップsbmとを自装置の記憶部から抽出する。そして、マッチング部120は、抽出した軌跡ノードデータに含まれる軌跡ノードtNDと、抽出したサブマップsbmのサブマップノードsNDとの相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COTを生成する。つまり、マッチング部120は、依頼元のセンシングカメラ20では処理しきれなかったマッチング処理を行う。
(Matching unit 120)
When the
[3-2.動作手順]
ここからは、図13で説明した変形例1に係る複数ロボットSLAMシステム1Bで実現される動作手順の一例を説明する。具体的には、図14~図16を用いて、複数ロボットSLAMシステム1Bにおける各シーンでの動作手順を説明する。
[3-2. Operation procedure]
From here on, an example of the operational procedure implemented by the multiple-
[3-2-1.依頼の前処理手順]
まず、図14を用いて、センシングカメラ20がサーバ装置100にマッチング処理を依頼するにあたって行う前処理手順を説明する。図14は、マッチング処理の依頼に係る前処理手順を示すフローチャートである。なお、図14に示す前処理手順は、各センシングカメラ20によって個別に行われるものである。
[3-2-1. Pre-processing procedure for requests]
First, a pre-processing procedure performed by the
まず、依頼部26は、スキャンマッチング用のアイテム(マッチング対象の組合せリスト)が自装置のキューに追加されたか否かを判定する(ステップS1401)。依頼部26は、スキャンマッチング用のアイテムがキューに追加されていない間は(ステップS1401;No)、スキャンマッチング用のアイテムがキューに追加されるまで待機する。
First, the
一方、依頼部26は、スキャンマッチング用のアイテムがキューに追加された場合には(ステップS1401;Yes)、自装置のマッチング処理部(マッチング部25)のうち、処理が空いたマッチング処理部が発生したか否かを判定する(ステップS1402)。依頼部26は、処理が空いたマッチング処理部が無い場合には(ステップS1402;No)、マッチング処理部のいずれかで処理が空くまで待機する。
On the other hand, when an item for scan matching has been added to the queue (step S1401; Yes), the
一方、依頼部26は、マッチング処理部のいずれかで処理が空いた場合には(ステップS1402;Yes)、処理が空いたマッチング部25にマッチングタスクを割り当てる(ステップS1403)。
On the other hand, if any of the matching processing units has an available process (step S1402; Yes), the
そして、依頼部26は、マッチングタスクが割り当てられたマッチング処理部ごとに、マッチング処理速度を計測する(ステップS1404)。
Then, the
[3-2-2.依頼処理手順]
次に、図15を用いて、センシングカメラ20がサーバ装置100にマッチング処理を依頼する依頼処理手順を説明する。図15は、マッチング処理を依頼する依頼処理手順を示すフローチャートである。なお、図15に示す依頼処理手順は、各センシングカメラ20によって個別に行われるものである。また、依頼処理手順は、図14の前処理手順と並列的に実行されてもよいし、図14の前処理手順に対して逐次的に実行されてもよい。
[3-2-2. Request Processing Procedure]
Next, a request processing procedure in which the
依頼部26は、自装置のキューのキューサイズと、ステップS1404において計測結果として得られたマッチング処理速度とに基づいて、マッチングタスクを割り当てられたマッチング処理部ごとに、マッチング完了までに要する処理時間を予測する(ステップS1501)。例えば、依頼部26は、一定周期ごとにこの処理を行ってよい。
The
依頼部26は、処理時間が許容範囲内であるか否かを判定する(ステップS1502)。依頼部26は、処理時間が許容範囲内であれば(ステップS1502;Yes)、ステップS1501に処理を戻す。
The
一方、依頼部26は、処理時間が許容範囲内でなければ(ステップS1502;No)、サーバ装置100に依頼するマッチング処理を抽出する(ステップS1503)。例えば、依頼部26は、自装置のキューに登録されているマッチング処理であって、マッチングタスクを割り当てられたマッチング処理部のマッチング処理のうち、許容範囲内から漏れてしまうと予測されるマッチング処理を処理時間に基づき抽出する。
On the other hand, if the processing time is not within the allowable range (step S1502; No), the
次に、依頼部26は、抽出したマッチング処理に必要な軌跡ノードtNDをサーバ装置100にアップロードする(ステップS1504)。また、依頼部26は、抽出したマッチング処理に対応するマッチングタスクを自装置のキューから削除する(ステップS1505)。
The
[3-2-3.情報処理装置のスキャンマッチング処理手順]
次に、マッチング処理の依頼を受けて動作するサーバ装置の処理手順を説明する。図16は、マッチング処理の依頼に応じてサーバ装置100が実行するマッチング処理手順を示すフローチャートである。
[3-2-3. Scan matching processing procedure of information processing device]
Next, a procedure of the server device which operates upon receiving a request for matching processing will be described below. Fig. 16 is a flow chart showing the procedure of the matching processing which the
まず、マッチング部120は、スキャンマッチング用のアイテム(マッチング対象の組合せリスト)が自装置のキューに追加されたか否かを判定する(ステップS1601)。例えば、マッチング部120は、許容範囲内での処理から漏れてセンシングカメラ20側ではマッチング処理が困難と判断された未処理のマッチング処理においてマッチング対象となっている組合せがキューに追加されたか否かを判定する。すなわち、マッチング部120は、未処理のマッチング処理の依頼をセンシングカメラ20から受け付けたか否かを判定する。
First, the
マッチング部120は、スキャンマッチングを実行する(ステップS1602)。具体的には、マッチング部120は、自装置のキューに追加されたマッチング対象の組合せに対応する軌跡ノードtNDとサブマップsbmとを抽出し、抽出した軌跡ノードtNDとサブマップsbmとの相対位置関係をマッチングする。
The
そして、マッチング部120は、マッチング結果に基づいて、軌跡ノードtNDとサブマップsbmとの相対位置関係を示す拘束条件COTを生成する(ステップS1603)し、生成した拘束条件COTを保存する(ステップS1604)。
Then, the
なお、図16では不図示すであるが、最適化部130は、マッチング部120によって拘束条件COTが保存された場合には、センシングカメラ20からの依頼に応じたマッチング処理で自装置が生成した拘束条件COTと、センシングカメラ20からアップロードされたCOTに基づいて、各センシングカメラ20からアップされたサブマップsbmの間での誤差を補正する最適化処理を実行する。
Note that, although not shown in FIG. 16, when the constraint condition COT is saved by the
また、最適化部130は、最適化処理の結果をポーズグラフPGに反映させる(ステップS1203)。具体的には、最適化部130は、各センシングカメラ20が生成したポーズグラフPGを組み合わせて構築される全体ポーズグラフPGの誤差が補正された補正後の全体ポーズグラフPGを各センシングカメラ20に送信する。
The
[4.変形例2]
1つのセンシングカメラ20が行うべきマッチング処理がエッジ側の複数の計算資源に割り当てられてもよい。このように、1つのセンシングカメラ20が行うべきマッチング処理がエッジ側で分散させてよく、それでも許容範囲内で対応が間に合わない未処理のマッチング処理が発生した場合には、この未処理のマッチング処理がサーバ装置100に依頼されてよい。すなわち、本開示の提案手法に係る変形例2では、1つのセンシングカメラ20が自装置で行うべきマッチング処理の一部を他のセンシングカメラ20に依頼してよく、それでも許容範囲内で対応が間に合わない未処理のマッチング処理が発生した場合には、この未処理のマッチング処理がサーバ装置100に依頼されるというものである。
[4. Modification 2]
The matching process to be performed by one
[4-1.変形例2におけるシステムの詳細構成例]
図17は、複数ロボットSLAMシステム1における変形例2の機能構成例を示す機能ブロック図である。図17に示す複数ロボットSLAMシステム1には、図13と同様に、センシングカメラ20-1が搭載された移動体10-1(ロボットA)と、センシングカメラ20-2が搭載された移動体10-2(ロボットB)と、サーバ装置100とが含まれる例が示される。以下では、提案手法の変形例2に係る複数ロボットSLAMシステム1を「複数ロボットSLAMシステム1C」と表記する。
[4-1. Detailed configuration example of the system in the second modification]
Fig. 17 is a functional block diagram showing an example of the functional configuration of Variation 2 in a multiple-
また、図17の例においては、センシングカメラ20-2は、センシングカメラ20-1のサブ機として扱われ、センシングカメラ20-1からの依頼に応じて、センシングカメラ20-1が行うべきマッチング処理の一部を代わりに行うよう構成されている。 In the example of FIG. 17, the sensing camera 20-2 is treated as a sub-machine of the sensing camera 20-1, and is configured to perform part of the matching process that should be performed by the sensing camera 20-1 in response to a request from the sensing camera 20-1.
なお、図17の例によれば、センシングカメラ20-2は、センシングカメラ20-1の依頼に応じて、センシングカメラ20-1の代わりにマッチング処理を行うマッチング部25-2を有する。 In the example of FIG. 17, the sensing camera 20-2 has a matching unit 25-2 that performs matching processing on behalf of the sensing camera 20-1 in response to a request from the sensing camera 20-1.
[4-1-1.端末装置の機能構成]
まず、変形例2に係るセンシングカメラ20-1の機能構成例について説明する。図17に示すように、センシングカメラ20-1は、変形例1と同じく、センサ部21と、前処理部22と、SLAM処理部23と、検出部24と、マッチング部25と、依頼部26とを有する。なお、説明は省略するが、センシングカメラ20-2もセンシングカメラ20-1と同様に機能する。また、図17には、図16の変形例1と比較して、新たな情報処理の流れが点線矢印で示される。
[4-1-1. Functional configuration of terminal device]
First, an example of the functional configuration of the sensing camera 20-1 according to the modified example 2 will be described. As shown in Fig. 17, the sensing camera 20-1 has a
依頼部26は、相対位置関係をマッチングさせるマッチング処理のうち、所定時間内での演算が間に合わなくなると予測される未処理のマッチング処理が発生した場合には、未処理のマッチング処理をサーバ装置100に依頼する。例えば、依頼部26は、自装置が行うべきマッチング処理の一部を、サブ機として連携されているセンシングカメラ20-2に依頼することで、許容範囲内での全てのマッチング処理の完了を目指す。しかしながら、依頼部26は、マッチング処理の一部をセンシングカメラ20-2に依頼しているにも拘わらず、許容範囲内で対応が間に合わない未処理のマッチング処理が発生した場合には、この未処理のマッチング処理をサーバ装置100に依頼する。
When an unprocessed matching process occurs among the matching processes for matching relative positional relationships that is predicted to be unable to be calculated within a predetermined time, the
このように、複数ロボットSLAMシステム1Cでは、本来であればエッジ側の複数の計算資源(図17の例では、センシングカメラ20-1および20-2)で行うべきマッチング処理のうち、複数の計算資源では許容範囲内で対応しきれなくなった未処理のマッチング処理がサーバ装置100によって行われることになる。このため、複数ロボットSLAMシステム1Cでも、サーバ装置100から除外されていたマッチング部120が復活される。
In this way, in the multiple
また、センシングカメラ20-2のマッチング部25-2は、センシングカメラ20-1の依頼部26から依頼されたマッチング処理においてマッチング対象となっている組合せ(軌跡ノードtNGとサブマップsbmとの組合せ)ごとにスキャンマッチングを実行する。また、マッチング部25-2は、マッチング処理の結果に基づき生成した拘束条件COTをサーバ装置100にアップロードする。
The matching unit 25-2 of the sensing camera 20-2 also performs scan matching for each combination (combination of trajectory node tNG and submap sbm) that is the target of matching in the matching process requested by the
[4-1-2.情報処理装置の機能構成]
次に、提案手法の変形例2に係るサーバ装置100の機能構成例について説明する。上述した通り、変形例2では、エッジ側の複数の計算資源の間で行われるべきマッチング処理の一部がサーバ装置100によって行われる。このため、サーバ装置100は、図8の例と比較して、マッチング部120を有する。また、サーバ装置100は、キューも有する。
[4-1-2. Functional configuration of information processing device]
Next, a functional configuration example of the
(マッチング部120)
マッチング部120は、エッジ側の複数の計算資源の間で行われるべきマッチング処理のうち、複数の計算資源では許容範囲内で対応しきれなくなった未処理のマッチング処理を行う。例えば、マッチング部120は、依頼元のセンシングカメラ(依頼部26)によって自装置のキューに登録されたマッチング対象の組合せに基づいて、未処理のマッチング処理に用いる軌跡ノードデータとサブマップsbmとを自装置の記憶部から抽出する。そして、マッチング部120は、抽出した軌跡ノードデータに含まれる軌跡ノードtNDと、抽出したサブマップsbmのサブマップノードsNDとの相対位置関係をマッチングさせ、この相対位置関係を示す拘束条件COTを生成する。
(Matching unit 120)
The
[4-2.動作手順]
ここからは、図17で説明した変形例2に係る複数ロボットSLAMシステム1Cで実現される動作手順の一例を説明する。具体的には、センシングカメラ20がサーバ装置100にマッチング処理を依頼する依頼処理手順を説明する。図18は、マッチング処理を依頼する依頼処理手順を示すフローチャートである。なお、図18に示す依頼処理手順は、各センシングカメラ20によって個別に行われるものである。図18に示す依頼処理手順は、変形例2に係る複数ロボットSLAMシステム1Cに合わせて、図15で説明した依頼処理手順の一部が改変されたものである。
[4-2. Operation procedure]
From here, an example of an operational procedure realized by the multiple-
依頼部26は、自装置のキューのキューサイズと、ステップS1404において計測結果として得られたマッチング処理速度とに基づいて、マッチングタスクを割り当てられたマッチング処理部ごとに、マッチング完了までに要する処理時間を予測する(ステップS1801)。例えば、依頼部26は、一定周期ごとにこの処理を行ってよい。
The
依頼部26は、処理時間が許容範囲内であるか否かを判定する(ステップS1802)。依頼部26は、処理時間が許容範囲内であれば(ステップS1802;Yes)、マッチング処理の実行主体(マッチング処理部)が自装置以外にもエッジ側に存在するか否かを判定する(ステップS1803)。例えば、依頼部26は自装置を含めた複数の計算資源の間で、本来であれば自装置が行うべきマッチング処理が分散されるという構成が採用されている場合には、マッチング処理の実行主体が自装置以外にもエッジ側に存在すると判定できる。
The
依頼部26は、マッチング処理の実行主体が自装置以外にも存在すると判定した場合には(ステップS1803;Yes)、マッチング処理を行う実行主体から、他の実行主体を除外する(ステップS1804)。すなわち、依頼部26は、マッチング処理の実行主体が自装置以外にもエッジ側に存在するものの、自装置だけで許容範囲内で全てのマッチング処理を完了させることができる場合には、エッジ側に存在する他の実行主体(マッチング処理部)にマッチング処理を依頼しない。
If the
なお、依頼部26は、マッチング処理の実行主体が自装置以外に存在しないと判定した場合には(ステップS1803;No)、ステップS1801に処理を戻す。
If the
依頼部26は、処理時間が許容範囲内でなければ(ステップS1802;No)、マッチング処理の実行主体が自装置以外にもエッジ側に存在するか否かを判定する(ステップS1805)。
If the processing time is not within the allowable range (step S1802; No), the
依頼部26は、マッチング処理の実行主体が自装置以外に存在しないと判定した場合には(ステップS1805;No)、マッチング処理を行う実行主体から、エッジ側に存在する他の実行主体を除外する(ステップS1806)。
If the
依頼部26は、マッチング処理の実行主体が自装置以外にも存在すると判定した場合には(ステップS1805;Yes)、許容範囲内で処理可能なマッチング処理については自装置を含めた複数の計算資源の間で行わせる一方、サーバ装置100に依頼するマッチング処理、すなわち複数の計算資源では許容範囲内で対応しきれなくなった未処理のマッチング処理を抽出する(ステップS1807)。例えば、依頼部26は、自装置のキューに登録されているマッチング処理であって、マッチングタスクを割り当てられたマッチング部25のマッチング処理のうち、許容範囲内から漏れてしまうと予測されるマッチング処理を処理時間に基づき抽出する。
If the
次に、依頼部26は、抽出したマッチング処理に必要な軌跡ノードtNDをサーバ装置100にアップロードする(ステップS1808)。また、依頼部26は、抽出したマッチング処理に対応するマッチングタスクを自装置のキューから削除する(ステップS1809)。
The
[5.ハードウェア構成]
図19を用いて、上述した各実施形態に係る装置(例えば、センシングカメラ20、サーバ装置100)に対応するコンピュータのハードウェア構成例について説明する。図19は、本開示の実施形態に係る装置に対応するコンピュータのハードウェア構成例を示すブロック図である。なお、図19は、各実施形態に係る装置に対応するコンピュータのハードウェア構成の一例を示すものであり、図19に示す構成に限定される必要はない。
5. Hardware Configuration
A hardware configuration example of a computer corresponding to the device according to each embodiment described above (e.g., the
図19に示すように、コンピュータ1000は、CPU(Central Processing Unit)1100、RAM(Random Access Memory)1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、および入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
As shown in FIG. 19,
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300またはHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
The
ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
The
HDD1400は、CPU1100によって実行されるプログラム、および、係るプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450を記録する。プログラムデータ1450は、本開示の実施形態に係る情報処理方法を実現するための情報処理プログラム、および、係る情報処理プログラムによって使用されるデータの一例である。
通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
The
入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。たとえば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、表示装置やスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、たとえばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
The input/
例えば、コンピュータ1000が、センシングカメラ20として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、図8等に示された各処理が実行する各種処理機能を実現する。すなわち、CPU1100およびRAM1200等は、ソフトウェア(RAM1200上にロードされた情報処理プログラム)との協働により、本開示の実施形態に係る端末装置による情報処理方法を実現する。
For example, when the
また、コンピュータ1000が、サーバ装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、図8等に示された各処理が実行する各種処理機能を実現する。すなわち、CPU1100およびRAM1200等は、ソフトウェア(RAM1200上にロードされた情報処理プログラム)との協働により、本開示の実施形態に係る情報処理装置による情報処理方法を実現する。
Furthermore, when the
[6.まとめ]
以上、本開示の実施形態について説明したが、本開示の技術的範囲は、上述の実施形態そのままに限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、実施形態および変形例にわたる構成要素を適宜組み合わせてもよい。
6. Summary
Although the embodiments of the present disclosure have been described above, the technical scope of the present disclosure is not limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present disclosure. In addition, the components of the embodiments and modifications may be appropriately combined.
また、本明細書に記載された各実施形態における効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。 Furthermore, the effects of each embodiment described in this specification are merely examples and are not limiting, and other effects may also be present.
なお、本開示は以下のような構成も取ることができる。
(1)
情報処理装置が、
1以上の端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供し、
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得し、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理を行う、
処理を実行する、情報処理方法。
(2)
前記情報処理装置が、
前記マッチング結果の情報として、前記相対位置関係をマッチングさせることで生成された、前記相対位置関係を示す拘束条件を取得する、
処理を実行する、前記(1)に記載の情報処理方法。
(3)
前記情報処理装置が、
前記拘束条件に基づいて、前記全体軌跡位置情報の誤差を補正する、
処理を実行する、前記(2)に記載の情報処理方法。
(4)
前記情報処理装置が、
前記拘束条件に基づいて、前記端末装置それぞれが生成した前記部分地図情報を組み合わせて構築される全体地図情報の誤差を補正し、
補正後の前記全体地図情報を前記端末装置それぞれに出力する、
処理を実行する、前記(2)に記載の情報処理方法。
(5)
前記情報処理装置が、
前記端末装置それぞれに対して、当該端末装置が生成した前記軌跡位置情報と、補正後の前記全体軌跡位置情報とを同期させる、
処理を実行する、前記(3)に記載の情報処理方法。
(6)
端末装置が、
自装置とは異なる他の端末装置が生成した他の部分地図情報をクラウド側の情報処理装置から取得し、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせ、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する前記情報処理装置にアップロードする、
処理を実行する、情報処理方法。
(7)
前記端末装置が、
前記点群情報を含むノードであって、前記軌跡位置情報に含まれる前記軌跡上の位置のうちの代表点を示すノードである軌跡ノードと、前記他の部分地図情報の基準点を示す部分地図ノードとに基づいて、前記軌跡ノードと、前記部分地図ノードとの相対位置関係をマッチングさせることで、前記マッチング結果の情報として、前記相対位置関係を示す拘束条件を生成し、
前記拘束条件を前記情報処理装置にアップロードする、
処理を実行する、前記(6)に記載の情報処理方法。
(8)
前記端末装置が、
自装置が生成した前記軌跡位置情報と、前記他の端末装置が生成した前記軌跡位置情報とを組み合わせて構築される全体軌跡位置情報であって、自装置が生成した前記拘束条件と前記他の端末装置が生成した前記拘束条件とに基づき前記情報処理装置によって補正された後の全体軌跡位置情報を、前記情報処理装置から取得し、
前記全体軌跡位置情報に基づいて、前記部分地図情報を組み合わせて構築される全体地図情報での自己位置を推定する、
処理を実行する、前記(7)に記載の情報処理方法。
(9)
前記端末装置が、
前記相対位置関係をマッチングさせるマッチング処理のうち、所定時間内での演算が間に合わなくなった未処理のマッチング処理が発生した場合には、前記未処理のマッチング処理を前記情報処理装置に依頼する、
処理を実行する、前記(6)に記載の情報処理方法。
(10)
前記端末装置が、
前記相対位置関係をマッチングさせるマッチング処理の一部を自装置とは異なる他の端末装置に依頼し、
前記他の端末装置に前記マッチング処理の一部が依頼されている状態であっても、前記相対位置関係をマッチングさせるマッチング処理のうち、前記所定時間内での演算が間に合わなくなった未処理のマッチング処理が発生した場合には、前記未処理のマッチング処理を前記情報処理装置に依頼する、
処理を実行する、前記(9)に記載の情報処理方法。
(11)
1以上の端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供する提供部と、
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得する取得部と、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理部と
を備える情報処理装置。
(12)
端末装置であって、
自装置とは異なる他の端末装置が生成した他の部分地図情報をクラウド側の情報処理装置から取得する取得部と、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせるマッチング部と、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する情報処理装置にアップロードする処理部と
を備える端末装置。
(13)
情報処理装置と、複数の端末装置と、
を含むシステムであって、
前記情報処理装置は、
前記端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供する提供部と、
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得する取得部と、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理部と
を備え、
前記端末装置は、
自装置とは異なる他の端末装置が生成した前記他の部分地図情報をクラウド側の前記情報処理装置から取得する取得部と、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせるマッチング部と、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する前記情報処理装置にアップロードする処理部と
を備える
システム。
The present disclosure can also be configured as follows.
(1)
An information processing device,
providing, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices;
the terminal device acquires from the terminal device information on a matching result obtained by matching a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the terminal device moves in an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information;
performing an optimization process for correcting an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result;
A method for processing information.
(2)
The information processing device,
acquiring, as information of the matching result, a constraint condition that indicates the relative positional relationship and that is generated by matching the relative positional relationship;
The information processing method according to (1), further comprising: executing a process.
(3)
The information processing device,
correcting an error in the entire trajectory position information based on the constraint condition;
The information processing method according to (2), further comprising: executing a process.
(4)
The information processing device,
correcting an error in overall map information constructed by combining the partial map information generated by each of the terminal devices based on the constraint condition;
outputting the corrected overall map information to each of the terminal devices;
The information processing method according to (2), further comprising: executing a process.
(5)
The information processing device,
For each of the terminal devices, the trajectory position information generated by the terminal device is synchronized with the corrected overall trajectory position information.
The information processing method according to (3), further comprising: executing a process.
(6)
The terminal device
Acquire other partial map information generated by a terminal device different from the own device from the information processing device on the cloud side;
Based on trajectory position information indicating a position on a trajectory along which the own device moves in an area included in the partial map information generated by the own device, point cloud information indicating a position of an object within the partial map information, and the other partial map information, a relative positional relationship between the trajectory position information and the other partial map information is matched;
uploading the trajectory position information, information on a matching result of a relative positional relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map;
A method for processing information.
(7)
The terminal device,
a trajectory node including the point cloud information and indicating a representative point among the positions on the trajectory included in the trajectory position information, and a partial map node indicating a reference point of the other partial map information, based on which a relative positional relationship between the trajectory node and the partial map node is matched, thereby generating a constraint condition indicating the relative positional relationship as information of the matching result;
uploading the constraints to the information processing device;
The information processing method according to (6), further comprising: executing a process.
(8)
The terminal device,
acquiring from the information processing device, overall trajectory position information constructed by combining the trajectory position information generated by the own device and the trajectory position information generated by the other terminal device, the overall trajectory position information being corrected by the information processing device based on the constraint condition generated by the own device and the constraint condition generated by the other terminal device;
estimating a self-position in overall map information constructed by combining the partial map information based on the overall trajectory position information;
The information processing method according to (7), further comprising: executing a process.
(9)
The terminal device,
When an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, the unprocessed matching process is requested to be completed by the information processing device.
The information processing method according to (6), further comprising: executing a process.
(10)
The terminal device,
requesting a part of a matching process for matching the relative positional relationship to another terminal device different from the own device;
Even if a part of the matching process has been requested to the other terminal device, when an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, for which calculation cannot be completed within the predetermined time, the unprocessed matching process is requested to the information processing device.
The information processing method according to (9), further comprising: executing processing.
(11)
a providing unit that provides, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices;
an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information based on the trajectory position information and the other partial map information, and the partial map information;
and an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal devices based on information of the matching result.
(12)
A terminal device,
an acquisition unit that acquires other partial map information generated by a terminal device other than the own device from an information processing device on a cloud side;
a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information indicating a position of an object within the partial map information, and the other partial map information;
a processing unit that uploads the trajectory position information, information on a matching result of a relative position relationship between the trajectory position information and the other partial map information, and the partial map information to an information processing device that generates an environmental map corresponding to the partial map.
(13)
An information processing device and a plurality of terminal devices;
A system comprising:
The information processing device includes:
a providing unit for providing the terminal device with other partial map information generated by another terminal device different from the terminal device;
an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information; and
an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result,
The terminal device
an acquisition unit that acquires the other partial map information generated by another terminal device different from the own device from the information processing device on the cloud side;
a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information indicating a position of an object within the partial map information, and the other partial map information;
a processing unit that uploads the trajectory position information, information on a matching result of a relative position relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map.
20 センシングカメラ
21 センサ部
22 前処理部
23 SLAM処理部
24 検出部
25 マッチング部
26 依頼部
100 サーバ装置
110 検出部
120 マッチング部
130 最適化部
140 可視化部
20
Claims (13)
1以上の端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供し、
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得し、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理を行う、
処理を実行する、情報処理方法。 An information processing device,
providing, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices;
the terminal device acquires from the terminal device information on a matching result obtained by matching a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the terminal device moves in an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information;
performing an optimization process for correcting an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result;
A method for processing information.
前記マッチング結果の情報として、前記相対位置関係をマッチングさせることで生成された、前記相対位置関係を示す拘束条件を取得する、
処理を実行する、請求項1に記載の情報処理方法。 The information processing device,
acquiring, as information of the matching result, a constraint condition that indicates the relative positional relationship and that is generated by matching the relative positional relationship;
The information processing method according to claim 1 , further comprising: executing a process.
前記拘束条件に基づいて、前記全体軌跡位置情報の誤差を補正する、
処理を実行する、請求項2に記載の情報処理方法。 The information processing device,
correcting an error in the entire trajectory position information based on the constraint condition;
The information processing method according to claim 2 , further comprising: executing a process.
前記拘束条件に基づいて、前記端末装置それぞれが生成した前記部分地図情報を組み合わせて構築される全体地図情報の誤差を補正し、
補正後の前記全体地図情報を前記端末装置それぞれに出力する、
処理を実行する、請求項2に記載の情報処理方法。 The information processing device,
correcting an error in overall map information constructed by combining the partial map information generated by each of the terminal devices based on the constraint condition;
outputting the corrected overall map information to each of the terminal devices;
The information processing method according to claim 2 , further comprising: executing a process.
前記端末装置それぞれに対して、当該端末装置が生成した前記軌跡位置情報と、補正後の前記全体軌跡位置情報とを同期させる、
処理を実行する、請求項3に記載の情報処理方法。 The information processing device,
For each of the terminal devices, the trajectory position information generated by the terminal device is synchronized with the corrected overall trajectory position information.
The information processing method according to claim 3 , further comprising the step of: executing a process.
自装置とは異なる他の端末装置が生成した他の部分地図情報をクラウド側の情報処理装置から取得し、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせ、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する前記情報処理装置にアップロードする、
処理を実行する、情報処理方法。 The terminal device
Acquire other partial map information generated by a terminal device different from the own device from the information processing device on the cloud side;
Based on trajectory position information indicating a position on a trajectory along which the own device moves in an area included in the partial map information generated by the own device, point cloud information indicating a position of an object within the partial map information, and the other partial map information, a relative positional relationship between the trajectory position information and the other partial map information is matched;
uploading the trajectory position information, information on a matching result of a relative positional relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map;
A method for processing information.
前記点群情報を含むノードであって、前記軌跡位置情報に含まれる前記軌跡上の位置のうちの代表点を示すノードである軌跡ノードと、前記他の部分地図情報の基準点を示す部分地図ノードとに基づいて、前記軌跡ノードと、前記部分地図ノードとの相対位置関係をマッチングさせることで、前記マッチング結果の情報として、前記相対位置関係を示す拘束条件を生成し、
前記拘束条件を前記情報処理装置にアップロードする、
処理を実行する、請求項6に記載の情報処理方法。 The terminal device,
a trajectory node including the point cloud information and indicating a representative point among the positions on the trajectory included in the trajectory position information, and a partial map node indicating a reference point of the other partial map information, based on which a relative positional relationship between the trajectory node and the partial map node is matched, thereby generating a constraint condition indicating the relative positional relationship as information of the matching result;
uploading the constraints to the information processing device;
The information processing method according to claim 6 , further comprising: executing a process.
自装置が生成した前記軌跡位置情報と、前記他の端末装置が生成した前記軌跡位置情報とを組み合わせて構築される全体軌跡位置情報であって、自装置が生成した前記拘束条件と前記他の端末装置が生成した前記拘束条件とに基づき前記情報処理装置によって補正された後の全体軌跡位置情報を、前記情報処理装置から取得し、
前記全体軌跡位置情報に基づいて、前記部分地図情報を組み合わせて構築される全体地図情報での自己位置を推定する、
処理を実行する、請求項7に記載の情報処理方法。 The terminal device,
acquiring from the information processing device, overall trajectory position information constructed by combining the trajectory position information generated by the own device and the trajectory position information generated by the other terminal device, the overall trajectory position information being corrected by the information processing device based on the constraint condition generated by the own device and the constraint condition generated by the other terminal device;
estimating a self-position in overall map information constructed by combining the partial map information based on the overall trajectory position information;
The information processing method according to claim 7 , further comprising: executing a process.
前記相対位置関係をマッチングさせるマッチング処理のうち、所定時間内での演算が間に合わなくなった未処理のマッチング処理が発生した場合には、前記未処理のマッチング処理を前記情報処理装置に依頼する、
処理を実行する、請求項6に記載の情報処理方法。 The terminal device,
When an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, the unprocessed matching process is requested to be completed by the information processing device when the unprocessed matching process cannot be completed within a predetermined time.
The information processing method according to claim 6 , further comprising: executing a process.
前記相対位置関係をマッチングさせるマッチング処理の一部を自装置とは異なる他の端末装置に依頼し、
前記他の端末装置に前記マッチング処理の一部が依頼されている状態であっても、前記相対位置関係をマッチングさせるマッチング処理のうち、前記所定時間内での演算が間に合わなくなった未処理のマッチング処理が発生した場合には、前記未処理のマッチング処理を前記情報処理装置に依頼する、
処理を実行する、請求項9に記載の情報処理方法。 The terminal device,
requesting a part of a matching process for matching the relative positional relationship to another terminal device different from the own device;
Even if a part of the matching process has been requested to the other terminal device, when an unprocessed matching process occurs among the matching processes for matching the relative positional relationship, for which calculation cannot be completed within the predetermined time, the unprocessed matching process is requested to the information processing device.
The information processing method according to claim 9 , further comprising: executing a process.
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得する取得部と、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理部と
を備える情報処理装置。 a providing unit that provides, to one or more terminal devices, other partial map information generated by other terminal devices different from the terminal devices;
an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information based on the trajectory position information and the other partial map information, and the partial map information;
and an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal devices based on information of the matching result.
自装置とは異なる他の端末装置が生成した他の部分地図情報をクラウド側の情報処理装置から取得する取得部と、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせるマッチング部と、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する情報処理装置にアップロードする処理部と
を備える端末装置。 A terminal device,
an acquisition unit that acquires other partial map information generated by a terminal device other than the own device from an information processing device on the cloud side;
a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information indicating a position of an object within the partial map information, and the other partial map information;
a processing unit that uploads the trajectory position information, information on a matching result of a relative position relationship between the trajectory position information and the other partial map information, and the partial map information to an information processing device that generates an environmental map corresponding to the partial map.
を含むシステムであって、
前記情報処理装置は、
前記端末装置に、当該端末装置とは異なる他の端末装置が生成した他の部分地図情報を提供する提供部と、
前記端末装置が、自装置で生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と前記他の部分地図情報とに基づいて、前記軌跡位置情報と前記他の部分地図情報との間で相対位置関係をマッチングさせたマッチング結果の情報と、前記部分地図情報とを、前記端末装置から取得する取得部と、
前記マッチング結果の情報に基づいて、前記端末装置の前記軌跡位置情報を組み合わせて構築される全体軌跡位置情報の誤差を補正する最適化処理部と
を備え、
前記端末装置は、
自装置とは異なる他の端末装置が生成した前記他の部分地図情報をクラウド側の前記情報処理装置から取得する取得部と、
自装置が生成した部分地図情報に含まれる領域を自装置が移動する軌跡上の位置を示す軌跡位置情報と、前記部分地図情報内での物体の位置を示す点群情報と、前記他の部分地図情報とに基づいて、前記軌跡位置情報と、前記他の部分地図情報との相対位置関係をマッチングさせるマッチング部と、
前記軌跡位置情報と、前記他の部分地図情報との相対位置関係のマッチング結果の情報と、前記部分地図情報とを、部分地図に対応する環境地図を生成する前記情報処理装置にアップロードする処理部と
を備える
システム。 An information processing device and a plurality of terminal devices;
A system comprising:
The information processing device includes:
a providing unit for providing the terminal device with other partial map information generated by another terminal device different from the terminal device;
an acquisition unit that acquires, from the terminal device, information on a matching result obtained by matching a relative positional relationship between trajectory position information indicating a position on a trajectory along which the terminal device moves within an area included in the partial map information generated by the terminal device and the other partial map information, and the partial map information; and
an optimization processing unit that corrects an error in overall trajectory position information constructed by combining the trajectory position information of the terminal device based on information of the matching result,
The terminal device
an acquisition unit that acquires the other partial map information generated by another terminal device different from the own device from the information processing device on the cloud side;
a matching unit that matches a relative positional relationship between the trajectory position information and the other partial map information based on trajectory position information indicating a position on a trajectory along which the device moves in an area included in the partial map information generated by the device, point cloud information indicating a position of an object within the partial map information, and the other partial map information;
a processing unit that uploads the trajectory position information, information on a matching result of a relative position relationship between the trajectory position information and the other partial map information, and the partial map information to the information processing device that generates an environmental map corresponding to the partial map.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023128053 | 2023-08-04 | ||
| JP2023-128053 | 2023-08-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025033210A1 true WO2025033210A1 (en) | 2025-02-13 |
Family
ID=94534124
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/026749 Pending WO2025033210A1 (en) | 2023-08-04 | 2024-07-26 | Information processing method, information processing device, terminal device, and system |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025033210A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014076844A1 (en) * | 2012-11-19 | 2014-05-22 | 株式会社日立製作所 | Autonomous movement system and control device |
| KR20170088228A (en) * | 2016-01-22 | 2017-08-01 | 경희대학교 산학협력단 | Map building system and its method based on multi-robot localization |
| WO2021256322A1 (en) * | 2020-06-16 | 2021-12-23 | ソニーグループ株式会社 | Information processing device, information processing method, and information processing program |
| US20220237816A1 (en) * | 2019-11-08 | 2022-07-28 | Huawei Technologies Co., Ltd. | Method for displaying virtual object and electronic device |
-
2024
- 2024-07-26 WO PCT/JP2024/026749 patent/WO2025033210A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014076844A1 (en) * | 2012-11-19 | 2014-05-22 | 株式会社日立製作所 | Autonomous movement system and control device |
| KR20170088228A (en) * | 2016-01-22 | 2017-08-01 | 경희대학교 산학협력단 | Map building system and its method based on multi-robot localization |
| US20220237816A1 (en) * | 2019-11-08 | 2022-07-28 | Huawei Technologies Co., Ltd. | Method for displaying virtual object and electronic device |
| WO2021256322A1 (en) * | 2020-06-16 | 2021-12-23 | ソニーグループ株式会社 | Information processing device, information processing method, and information processing program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6921341B2 (en) | Navigation methods, devices, devices, and storage media based on ground texture images | |
| US12111178B2 (en) | Distributed device mapping | |
| CN110178048B (en) | Method and system for generating and updating vehicle environment map | |
| JP6872128B2 (en) | Information processing equipment, information processing methods, and programs | |
| JP6224370B2 (en) | Vehicle controller, vehicle system | |
| JP5930346B2 (en) | Autonomous mobile system and control device | |
| JP7597033B2 (en) | MOBILE BODY, MOBILE BODY CONTROL METHOD, MOBILE BODY CONTROL PROGRAM, CONTROL DEVICE, CONTROL METHOD, CONTROL PROGRAM, AND MOBILE BODY SYSTEM | |
| JP2017045447A (en) | Map generation method, own position estimation method, robot system and robot | |
| JP2019016188A (en) | Mobile object remote control system and mobile object remote control method | |
| CN115993825A (en) | Unmanned vehicle cluster control system based on air-ground cooperation | |
| CN114485619A (en) | Multi-robot positioning and navigation method and device based on air-ground cooperation | |
| CN113960622A (en) | Real-time positioning method and device for fusion of lidar and IMU sensor information | |
| JP7138361B2 (en) | User Pose Estimation Method and Apparatus Using 3D Virtual Space Model | |
| WO2021256322A1 (en) | Information processing device, information processing method, and information processing program | |
| CN116774247A (en) | SLAM front-end strategy based on multi-source information fusion of EKF | |
| KR102043421B1 (en) | Method and system for controlling indoor autonomous robot | |
| WO2025033210A1 (en) | Information processing method, information processing device, terminal device, and system | |
| CN112161635A (en) | Cooperative graph building method based on minimum loop detection | |
| CN116954203A (en) | Raster map construction method, device, equipment and storage medium | |
| CN118463996B (en) | Decentralizing multi-robot co-location method and system | |
| US20220339786A1 (en) | Image-based trajectory planning method and movement control method and mobile machine using the same | |
| WO2022091787A1 (en) | Communication system, robot, and storage medium | |
| CN113776530A (en) | Point cloud map construction method and device, electronic equipment and storage medium | |
| CN117251519A (en) | A laser point cloud map construction and retrieval system and method | |
| JP7092741B2 (en) | Self-position estimation method |
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: 24851635 Country of ref document: EP Kind code of ref document: A1 |