Information processing device, information processing method, and information processing program
The information processing system automates the transformation matrix calculation and real-time recalibration, addressing the inefficiencies of conventional methods by reducing time and improving accuracy in introducing robots into large environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- 유겐가이샤티아이에스
- Filing Date
- 2024-12-27
- Publication Date
- 2026-07-09
Smart Images

Figure 2026115367000001_ABST
Abstract
Description
[Technical Field]
[0001] This invention relates to an information processing apparatus, an information processing method, and an information processing program. [Background technology]
[0002] Conventionally, techniques have been proposed to convert the position coordinates of autonomous mobile devices to a coordinate system different from the coordinate system used in the map for self-localization. [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2024-109208 [Patent Document 2] Japanese Patent Publication No. 2023-183529 [Patent Document 3] Japanese Patent Publication No. 2020-042336 [Overview of the Initiative] [Problems that the invention aims to solve]
[0004] However, the conventional techniques described above do not necessarily reduce the time required for deriving the transformation matrix.
[0005] Therefore, the present invention aims to reduce the time required for the work of deriving the transformation matrix. [Means for solving the problem]
[0006] The information processing device according to the present application includes: a first acquisition unit that acquires self-position information, which is information about the autonomous mobile device's own position estimated by the autonomous mobile device using a first map defined on a first coordinate system, from an autonomous mobile device moving in order to pass through destinations; a second acquisition unit that acquires correspondence point information, which indicates the position of corresponding points between the first map and a second map defined on a second coordinate system different from the first coordinate system, in accordance with the movement of the autonomous mobile device; and when the autonomous mobile device reaches a predetermined destination among the destinations, the self-position information at each of the destinations the autonomous mobile device has reached so far, and the autonomous mobile device The system includes a calculation unit that calculates a transformation matrix for performing a coordinate transformation between the first coordinate system and the second coordinate system based on the corresponding point information of the corresponding points corresponding to each of the destinations the device has reached so far, and the second acquisition unit acquires the corresponding point information of the corresponding points corresponding to the destination the autonomous mobile device has just reached each time the autonomous mobile device reaches a destination in a later order than the predetermined destination, and the calculation unit further recalculates the transformation matrix using the self-position information of the destination the autonomous mobile device has just reached and the corresponding point information acquired in response to the current arrival by the autonomous mobile device, thereby performing a sequential calculation of the transformation matrix. [Effects of the Invention]
[0007] According to one embodiment, for example, it is possible to reduce the time required for the work of deriving the transformation matrix. [Brief explanation of the drawing]
[0008] [Figure 1] Figure 1 is an explanatory diagram illustrating the background of the proposed technology in this application. [Figure 2] Figure 2 shows an example of a conventional method. [Figure 3] Figure 3 shows an example of the configuration of an information processing system according to the embodiment. [Figure 4] Figure 4 shows a specific example of information processing according to the embodiment. [Figure 5] Figure 5 is a diagram comparing the conventional method and the proposed method from the perspective of the user U's workload. [Figure 6] Figure 6 is an explanatory diagram illustrating the changes in conversion accuracy. [Figure 7] Figure 7 shows an example of the correction status of the movement trajectory. [Figure 8] Figure 8 shows an example of the configuration of a robot according to this embodiment. [Figure 9] Figure 9 shows an example of the configuration of a server device according to this embodiment. [Figure 10] Figure 10 shows an example of the operation of a server device. [Figure 11] Figure 11 is a flowchart of the information processing procedure (1) according to the embodiment. [Figure 12] Figure 12 is a flowchart showing the information processing procedure (2) according to the embodiment. [Figure 13] Figure 13 is a hardware configuration diagram showing an example of a computer according to this embodiment. [Modes for carrying out the invention]
[0009] Embodiments of the proposed technology of the present invention will be described in detail below with reference to the attached drawings. In this specification and drawings, components having substantially the same functional configuration are denoted by the same reference numerals, and redundant explanations will be omitted.
[0010] The one or more embodiments (including examples, modifications, and applications) described below can each be implemented independently. On the other hand, at least some of the embodiments described below may be implemented in appropriate combination with at least some of the other embodiments. These embodiments may contain novel features that differ from each other. Therefore, these embodiments may contribute to solving different objectives or problems and may produce different effects.
[0011] <Embodiment> [1. Introduction] (Background 1) Robots (an example of autonomous mobile devices) are being introduced in various fields to improve the organization, operations, and processes of companies, or to enhance the convenience of people's lives. For example, robots are being assigned to tasks in office buildings where there is a shortage of manpower (e.g., cleaning, transportation, guidance, and security), and to auxiliary tasks in restaurants (e.g., serving, clearing, and guidance), thereby improving operational efficiency and reducing costs. Furthermore, the introduction of robots is enabling new ways of working with robots and providing new customer value through communication with customers.
[0012] On the other hand, since multiple robots may be deployed in operating environments such as office buildings and restaurants, a robot management platform is provided to comprehensively manage the robots so that each robot can perform its tasks appropriately.
[0013] For example, users of a robot can monitor the robot's location in the operating environment and issue movement commands to the robot via a robot management platform. The robot management platform provides users with a management screen that displays a map of the operating environment. According to the robot management platform, the management screen is displayed on the user's terminal device. Therefore, users can monitor the robot's location from the management screen and issue movement commands to the robot by operating the management screen.
[0014] (Background 2) Figure 1 is an explanatory diagram illustrating the background of the proposed technology in this application. In explaining the proposed technology in this application (hereinafter abbreviated as "Proposed Technology"), the autonomous mobile device will be referred to as "Robot 10," and the site where Robot 10 is introduced will be referred to as "Operating Environment OP." Furthermore, the robot management platform that controls Robot 10 will be referred to as "Platform PF," and the management screen provided by Platform PF will be referred to as "Operating Environment Map Screen G." In addition, the worker who performs the introduction work of Robot 10 will be referred to as "User U."
[0015] The proposed technology in this application relates to a technique for converting the position coordinates of an autonomous mobile device between the coordinate system of a map used by the robot 10 for self-position estimation and the coordinate system of a different map.
[0016] For example, when moving, robot 10 can convert its own position coordinates in a map coordinate system to latitude and longitude coordinates via a plane rectangular coordinate system. This allows robot 10 to determine its own position on a map represented in a geodetic system, separate from the map used for autonomous movement, and thus recognize the path from its own position in the geodetic system to the destination position, also in the geodetic system. Therefore, robot 10 can move to its destination using the geodetic system even inside a building.
[0017] For example, when the robot 10 moves to a destination within the operating environment OP, it may use an internal map to plan its route and move while estimating its own position on the internal map through position tracking. When moving using this internal map, the robot 10 may determine the coordinates of the destination in the coordinate system of the internal map based on the latitude and longitude coordinates of the destination. Alternatively, the robot 10 may determine its own latitude and longitude coordinates, perform global self-position estimation, and correct its own position on the internal map.
[0018] In the following embodiment, the map used by the robot 10 is referred to as "RB map MP1". RB map MP1 may be an internal map that the robot 10 has in place beforehand. RB map MP1 is a map defined on a first coordinate system (the coordinate system of the internal map) on the robot 10 side, and is an example of a first map. Therefore, the self-position information, which is information about the position of the robot 10 obtained by self-position estimation, is defined as coordinate values (x,y) in the first coordinate system.
[0019] Here, the RB map MP1 is represented by point cloud data (for example, point cloud data created using SLAM technology based on sensing data acquired by the robot 10), while the map of the operating environment OP provided by the platform PF is a unified map that mimics the real environment (for example, a floor map), and has a different coordinate system from the RB map MP1. In the following embodiment, the map of the operating environment OP provided by the platform PF is referred to as the "PF map MP2". The PF map MP2 is a map defined on the second coordinate system of the platform PF, and is an example of the second map. For this reason, the position information of an object in the PF map MP2 is defined as coordinate values (x', y') in the second coordinate system.
[0020] Thus, since the RB map MP1 and the PF map MP2 have different map structures and coordinate systems, it is necessary to perform coordinate transformations depending on the purpose.
[0021] For example, the position monitoring of robot 10 is performed on the PF map MP2 displayed on the operating environment map screen G. For this reason, for monitoring purposes, it is necessary to convert the coordinate values (x,y) in the first coordinate system to coordinate values (x',y') in the second coordinate system.
[0022] Movement instructions for robot 10 may also be given on the PF map MP2 displayed on the operating environment map screen G. However, since robot 10 moves autonomously based on the RB map MP1, for the purpose of giving movement instructions, it is necessary to convert the coordinate values (x',y') in the second coordinate system to coordinate values (x,y) in the first coordinate system.
[0023] (Background 3) Based on the explanation in Figure 1, the challenges of conventional coordinate transformation methods will be explained. Coordinate transformation requires the calculation of a transformation matrix for performing a coordinate transformation between a first coordinate system and a second coordinate system, and affine transformation can be used as one method for calculating the transformation matrix. In affine transformation, location information of corresponding points, which are the corresponding positions between RB map MP1 and PF map MP2, is required. Specifically, in affine transformation, at least three pairs are required: location information of corresponding points on RB map MP1 (coordinate values in the first coordinate system) and location information of corresponding points on PF map MP2 (coordinate values in the second coordinate system).
[0024] While the platform PF can determine the location information of corresponding points on the PF map MP2, it cannot determine the location information of corresponding points on the RB map MP1. For example, location information of corresponding points on the RB map MP1 may be provided via an API, but such cases are rare. Therefore, at the operational environment OP site, the user U manually moves the robot 10 using the controller and records the self-position information estimated by the robot 10 at the location of the corresponding point as the location information of the corresponding point on the RB map MP1. This point will be explained in more detail using Figure 2.
[0025] Figure 2 shows an example of a conventional method. In the conventional technology, reference points BP are pre-installed at specific locations in the operating environment OP. The reference points BP are three or more points that cover as wide an area as possible within the operating range of the robot 10, and serve as target points for the robot 10's movement.
[0026] Figure 2 shows three reference points BP, 21 and reference point BP 22 and reference point BP 23 An example is shown in which the operating environment OP is pre-installed, and the positional information of each reference point BP on the PF map MP2 (coordinate values of the second coordinate system) is known.
[0027] In this situation, user U is at reference point BP. 21 From reference point BP22 Move the robot 10 to, and the reference point BP 22 from the reference point BP 23 Move the robot 10 to, and the reference point BP 23 from the reference point BP 21 Return the robot 10 to. Perform this operation manually using the controller.
[0028] The robot 10 has the RB map MP1 as an internal map and moves while repeatedly estimating its own position information in the RB map MP1. Here, the measurement point EP and the reference point BP are in a corresponding point relationship between the RB map MP1 and the PF map MP2. As described above, the position information of the reference point BP is expressed in the second coordinate system on the PF map MP2, while the position information of the measurement point EP is expressed in the first coordinate system on the RB map MP1. From this, the measurement point EP is the position on the PF map MP2 side for obtaining the result of the self-position estimation performed at the position of the reference point BP.
[0029] For example, when the robot 10 reaches the reference point BP 21 the user U records, as the self-position information at the reference point BP 21 the position information (coordinate values in the first coordinate system) of the measurement point EP 11 on a specific medium. From this, the reference point BP 21 and the measurement point EP 11 are in a corresponding point relationship as shown in FIG. 2. That is, the reference point BP 21 and the measurement point EP 11 are in the same or similar positional relationship between the PF map MP2 and the RB map MP1.
[0030] Also, when the robot 10 reaches the reference point BP 22 the user U records, as the self-position information at the reference point BP 22 the position information (coordinate values in the first coordinate system) of the measurement point EP 12 on a specific medium. From this, the reference point BP 22 and the measurement point EP 12 are in a corresponding point relationship as shown in FIG. 2. That is, the reference point BP 22and measurement point EP 12 This means that the PF map MP2 and the RB map MP1 are in the same or similar positional relationship.
[0031] Furthermore, User U states that robot 10 is at reference point BP. 23 If it reaches the reference point BP 23 As self-position information, measurement point EP 13 The position information (coordinate values in the first coordinate system) is recorded on a specific medium. 23 and measurement point EP 13 As shown in Figure 2, these correspond to each other. That is, the reference point BP. 23 and measurement point EP 13 This means that the PF map MP2 and the RB map MP1 are in the same or similar positional relationship.
[0032] As shown in Figure 2, in the conventional method, the user U must manually move the robot 10 to each reference point BP to acquire and record the position of each measurement point EP corresponding to each reference point BP. This presents a problem in that the time required for introducing the robot into the operating environment OP increases as the area of the operating environment OP increases. For example, the larger the operating environment OP is, such as an airport or shopping mall, the more time required for collecting information to calculate the transformation matrix. In the example in Figure 2, the time required for collecting pairs of position information of corresponding points on the RB map MP1 (position information of measurement point EP) and position information of corresponding points on the PF map MP2 (position information of reference point BP) increases.
[0033] Furthermore, with conventional methods, after the user U collects the information necessary for calculating the transformation matrix, the user U themselves calculates the transformation matrix using the collected information. Therefore, a test run phase is required after the transformation matrix calculation phase to verify whether the coordinate transformation can be performed appropriately using the transformation matrix calculated by the user U. This results in a longer timeframe before the robot can be introduced into the operating environment. In other words, conventional methods require two steps: a transformation matrix calculation phase and a test run phase, which significantly increases the time required before the robot can be introduced into the operating environment.
[0034] (solution) The proposed method is a means to solve the problems of conventional methods. It is characterized by automatically collecting information for calculating the transformation matrix in accordance with the movement of the robot 10 during the test run phase, and sequentially calculating the transformation matrix based on the collected information. With this proposed method, the transformation matrix calculation phase can be omitted, so the user U does not need to manually move the robot 10 to each reference point BP. Therefore, the proposed method can reduce the time required for the work of deriving the transformation matrix. In addition, with the proposed method, the transformation matrix is recalculated each time through sequential calculation, so it can be updated (corrected) to a transformation matrix with higher transformation accuracy. For example, with the proposed method, a transformation matrix with higher transformation accuracy will be obtained when the robot 10 finishes its run during the test run. For these reasons, the proposed method has various advantages compared to conventional methods. Below, one embodiment of the information processing executed as the proposed technology will be described in detail.
[0035] [2. System Configuration] Figure 3 is a diagram showing an example configuration of an information processing system according to the embodiment. Figure 3 shows an information processing system 1 as an example of an information processing system according to the embodiment. The information processing according to the embodiment is realized in the information processing system 1. As shown in Figure 3, the information processing system 1 includes a robot 10, a user device 20, and a server device 100. The robot 10, the user device 20, and the server device 100 are connected via a network N by wired or wireless means.
[0036] Robot 10 performs various tasks in the operating environment OP. As described above, robot 10 has the function of estimating its own position on the internal map, RB map MP1. As a result, for example, robot 10 periodically uploads robot position information RBIF, which includes its own position information, the time of execution of self-position estimation, destination information, movement status, etc., to the server device 100.
[0037] User device 20 is an example of an information processing terminal used by user U. User device 20 may be a smartphone, wearable device, tablet terminal, notebook PC (Personal Computer), desktop PC, mobile phone, PDA (Personal Digital Assistant), etc. For example, user device 20 may have an application installed that enables sending and receiving information with server device 100. As a result, user device 20 will be able to display the operating environment map screen G provided by server device 100. The application may be dedicated software for accessing server device 100, or it may be general-purpose software.
[0038] The server device 100 is an example of an information processing device. The server device 100 is a central information processing device that performs information processing according to the embodiment. That is, the server device 100 automatically collects information for calculating the transformation matrix in accordance with the movement of the robot 10, and sequentially calculates the transformation matrix based on the collected information. The server device 100 may also function as a platform PF.
[0039] [3. Specific Examples of Information Processing] A specific example of the information processing according to the embodiment will be explained using Figure 4. Figure 4 is a diagram showing a specific example of the information processing according to the embodiment. Figure 4 shows a scene in which the robot 10 is being test-driven in the operating environment OP. Therefore, the server device 100 automatically collects information for calculating the transformation matrix in accordance with the autonomous movement of the robot 10, and sequentially calculates the transformation matrix based on the collected information.
[0040] Furthermore, Figure 4 shows an example in which reference points BP are pre-installed at specific locations in the operating environment OP, similar to the explanation of the conventional technology. Specifically, five reference points BP are set up to cover the entire operating environment OP. 21 and reference point BP 22 and reference point BP 23 and reference point BP 24 and reference point BP 25 An example of the installation of such a system is shown, and the positional information of each reference point BP on the PF map MP2 (coordinate values in the second coordinate system) is known.
[0041] During its autonomous movement as a test run, robot 10 repeatedly estimates its own position on the RB map MP1. Robot 10 is pre-provided with information about the destination point WP, which is the destination it should reach during this autonomous movement, as a destination label. The information about the destination point WP may include, for example, the location information of the destination point WP and identification information of the destination point WP.
[0042] Here, the destination point (destination) WP and the reference point BP correspond to each other between RB map MP1 and PF map MP2. As described above, the position information of the reference point BP is represented in a second coordinate system on PF map MP2, while the position information of the destination point WP is represented in a first coordinate system on RB map MP1. For this reason, the destination point WP is the position on the RB map MP1 side defined for self-localization.
[0043] Therefore, the robot 10 autonomously moves by sequentially passing through multiple destination points WP while estimating its own position, and when it reaches a destination point WP, it uploads its own position information at that destination point WP to the server device 100.
[0044] In the following embodiment, the self-position information obtained by the robot 10 at the destination point WP is referred to as "RB position information LC1". RB position information LC1 is a coordinate value in the first coordinate system. On the other hand, the position information of the known reference point BP is referred to as "BP position information LC2". BP position information LC2 is a coordinate value in the second coordinate system.
[0045] From here, a specific example of information processing according to the embodiment will be described. Figure 4 shows an example in which the server device 100 uses affine transformation as the transformation method to calculate the transformation matrix. In affine transformation, coordinate values for at least three points are required. Therefore, the server device 100 calculates the transformation matrix when it has three pairs of position information of corresponding points on the RB map MP1 (coordinate values in the first coordinate system) and position information of corresponding points on the PF map MP2 (coordinate values in the second coordinate system). After that, the server device 100 recalculates the transformation matrix each time the number of pairs increases in accordance with the movement of the robot 10.
[0046] In the example shown in Figure 4, robot 10 begins autonomous movement from the starting point ST. Then, robot 10 moves to the destination point WP according to the position information of the destination point WP 11 , destination WP 12 , destination WP 13 , destination WP 14 , destination WP 15 The movement proceeds in the following order.
[0047] According to the example in Figure 4, the destination point WP 11 and reference point BP 21 This is a corresponding point relationship. In other words, the destination point WP 11 and reference point BP 21 This means that the RB map MP1 and the PF map MP2 are in the same or similar positional relationship.
[0048] Destination point WP 12 and reference point BP 22 This is a corresponding point relationship. In other words, the destination point WP 12 and reference point BP 22 This means that the RB map MP1 and the PF map MP2 are in the same or similar positional relationship.
[0049] Destination point WP 13 and reference point BP 23 This is a corresponding point relationship. In other words, the destination point WP 13 and reference point BP 23 This means that the RB map MP1 and the PF map MP2 are in the same or similar positional relationship.
[0050] Destination point WP 14 and reference point BP 24 This is a corresponding point relationship. In other words, the destination point WP 14 and reference point BP 24 This means that the RB map MP1 and the PF map MP2 are in the same or similar positional relationship.
[0051] Destination point WP 15 and reference point BP 25 This is a corresponding point relationship. In other words, the destination point WP 15 and reference point BP 25 This means that the RB map MP1 and the PF map MP2 are in the same or similar positional relationship.
[0052] In this state, robot 10 will move to the destination point WP. 11 If you reach the destination WP, 11 As a result of the self-localization performed, the RB position information LC11 is uploaded to the server device 100. When the server device 100 obtains the RB position information LC11, it stores the pair of the RB position information LC11 and the BP position information LC21 in the storage unit 120 (Figure 8) (Step S1).
[0053] Robot 10 is heading to the destination point WP. 12 If you reach the destination WP,12 As a result of the self-localization performed, the RB position information LC12 is uploaded to the server device 100. When the server device 100 obtains the RB position information LC12, it stores the pair of the RB position information LC12 and the BP position information LC22 in the storage unit 120 (step S2).
[0054] Robot 10 is heading to the destination point WP. 13 If you reach the destination WP, 13 As a result of the self-localization performed, the RB position information LC13 is uploaded to the server device 100. When the server device 100 obtains the RB position information LC13, it stores the pair of the RB position information LC13 and the BP position information LC23 in the storage unit 120 (step S3).
[0055] At this point, the server device 100 has collected the coordinate values for the three points necessary for the affine transformation. Then, the server device 100 calculates a transformation matrix based on the RB position information LC1 and BP position information LC2 collected so far, in accordance with the movement of the robot 10 (step S4). Specifically, the server device 100 calculates a transformation matrix based on the coordinate values for three points: the pair of RB position information LC11 and BP position information LC21, the pair of RB position information LC12 and BP position information LC22, and the pair of RB position information LC13 and BP position information LC23.
[0056] During this time, robot 10 continues to move. Robot 10 is heading towards its destination WP. 14 If you reach the destination WP, 14 As a result of the self-localization performed, the RB position information LC14 is uploaded to the server device 100. When the server device 100 obtains the RB position information LC14, it stores the pair of the RB position information LC14 and the BP position information LC24 in the storage unit 120 (step S5).
[0057] Furthermore, the server device 100 recalculates the transformation matrix based on the RB position information LC1 and BP position information LC2 collected so far, in accordance with the movement of the robot 10 (step S6). Specifically, the server device 100 recalculates the transformation matrix based on the coordinate values of four points, further adding the pair of RB position information LC14 and BP position information LC24. The transformation matrix calculated in step S4 may be updated and corrected by the transformation matrix obtained in the recalculation in step S6.
[0058] Robot 10 continues its journey. Robot 10 is heading towards its destination point WP. 15 If you reach the destination WP, 15 As a result of the self-localization performed, the RB position information LC15 is uploaded to the server device 100. When the server device 100 obtains the RB position information LC15, it stores the pair of the RB position information LC15 and the BP position information LC25 in the storage unit 120 (step S7).
[0059] Furthermore, the server device 100 recalculates the transformation matrix based on the RB position information LC1 and BP position information LC2 collected so far, in accordance with the movement of the robot 10 (step S8). Specifically, the server device 100 recalculates the transformation matrix based on the coordinate values of five points, further adding the pair of RB position information LC15 and BP position information LC25. The transformation matrix calculated in step S6 may be updated and corrected by the transformation matrix obtained in the recalculation in step S8.
[0060] An example of the operation of the server device 100 was explained using Figure 4. Next, the advantages and benefits of the proposed method compared to conventional technology will be explained. Figure 5 is a diagram comparing the conventional method and the proposed method from the perspective of the user U's work.
[0061] First, let's explain the conventional method. In the conventional method, the information processing device used for comparison with server device 100 will be referred to as server device SV. Also, for the sake of explanation, Figure 5 shows an example where there are three reference points BP and three destination points WP.
[0062] As shown in Figure 5, the conventional method requires two steps: a transformation matrix calculation phase and a test run phase.
[0063] In the transformation matrix calculation phase, user U moves robot 10 using the controller so that it passes through the reference points BP in order. For example, user U manually moves robot 10 while following behind it.
[0064] Then, each time the robot 10 reaches the reference point BP, user U performs self-position estimation to obtain RB position information LC1 and records the obtained RB position information LC1.
[0065] Furthermore, user U calculates the transformation matrix themselves based on three pairs of points: RB position information LC1 and BP position information LC2, which indicates the position of the reference point BP.
[0066] In the transformation matrix calculation phase, user U is required to perform the three steps described above, but there is a problem in that the time required for these tasks increases in proportion to the size of the operating environment OP.
[0067] During the test run phase, user U autonomously moves robot 10 to sequentially pass through the destination points WP (robot 10 performs self-localization while moving autonomously).
[0068] The results of the self-localization estimation are collected on the server device SV. The server device SV uses the transformation matrix calculated by user U to convert the RB position information LC1 obtained from the self-localization estimation during the test run phase into coordinate values in a second coordinate system.
[0069] The server device SV displays the operating environment map screen G on the user device 20, showing the coordinate values of the conversion result plotted on the PF map MP2. The user U then refers to the operating environment map screen G to check if there are any problems with autonomous driving. For example, if the accuracy of the conversion matrix is poor, the movement trajectory may be plotted so that the robot 10 passes through places where it is not actually possible to pass (e.g., the location of an obstacle). Therefore, the user U checks whether the movement trajectory is drawn correctly or not.
[0070] Next, the proposed method will be explained. According to the information processing method explained using Figure 4, the transformation matrix calculation phase can be omitted, so user U does not need to manually move the robot 10 to each reference point BP. In other words, according to the proposed method, the transformation matrix can be calculated during the test run phase, and the work related to the calculation of the transformation matrix is automated by the server device 100.
[0071] In the proposed method, first, user U autonomously moves robot 10 so that it passes through the destination points WP in order (robot 10 performs self-localization while moving autonomously).
[0072] The server device 100 automatically calculates a transformation matrix based on three pairs of points: RB position information LC1 and BP position information LC2, which indicates the position of the reference point BP. In conventional methods, the user U themselves calculated the transformation matrix.
[0073] The server device 100 uses an automatically calculated transformation matrix to convert the RB position information LC1 obtained from self-position estimation during the test run phase into coordinate values in a second coordinate system.
[0074] The server device 100 displays the operating environment map screen G on the user device 20, in which the coordinate values of the conversion result are plotted on the PF map MP2. The user U then refers to the operating environment map screen G to check if there are any problems with autonomous movement. For example, if the accuracy of the conversion matrix is poor, the movement trajectory may be plotted so that the robot 10 passes through places where it is actually impossible to pass (e.g., the location of an obstacle). Therefore, the user U checks whether the movement trajectory is drawn correctly or not.
[0075] In the proposed method, the robot 10 performs self-position estimation at a predetermined interval (for example, a 1-second interval), and may periodically upload the RB position information LC1, which is the result of the self-position estimation, to the server device 100.
[0076] Therefore, the server device 100 will determine that the robot 10 is heading towards the destination point WP. 13 If you reach the destination point WP, 11 From destination WP 13 During the journey to the destination, all of the RB position information LC1 collected periodically from the robot 10 may be converted into coordinate values in the second coordinate system. As a result, the server device 100 will know that the robot 10 has reached the destination point WP. 13 If the destination point WP is reached, it will be plotted by the transformed coordinate values. 11 From destination WP 13 You may display the operating environment map screen G, which further shows the movement trajectory up to that point.
[0077] Furthermore, the server device 100 will guide the robot 10 to the destination point WP. 11 If you return to the destination WP, 13 From destination WP 11 During the journey to the destination, all of the RB position information LC1 collected periodically from the robot 10 may be converted into coordinate values in the second coordinate system. As a result, the server device 100 will know that the robot 10 has reached the destination point WP. 11 When returning, the destination point WP is plotted by the transformed coordinate values. 13 From destination WP 11You may display the operating environment map screen G, which further shows the movement trajectory up to that point.
[0078] Through the operation of the server device 100, the transformation matrix is automatically calculated, coordinate transformation is performed using the transformation matrix, and the information of the transformation result is presented to the user U from the start to the end of the test run of the robot 10. Therefore, the user U can obtain the information necessary for introducing the robot 10 into the operating environment OP at the end of the test run without having to do any troublesome work themselves. Thus, according to the proposed method, the user U's work is unnecessary, saving work time and improving the efficiency of introducing the robot 10.
[0079] [4. Conversion Accuracy] Using Figure 6, the transformation accuracy that changes due to the information processing according to the embodiment will be explained. Figure 6 is an explanatory diagram illustrating the changes in transformation accuracy. Figure 6 conceptually shows how the confidence area AR, which can be trusted for the transformation matrix, expands during a test run. As shown in Figures 6(a) to 6(c), the confidence area AR expands with respect to the operating environment OP due to sequential calculations performed by the server device 100 in accordance with the movement of the robot 10.
[0080] As shown in Figure 6(a), for example, when robot 10 reaches the third destination point WP, a confidence area AR1 is obtained that covers the area between the first destination point WP and the third destination point WP. This means that when using the transformation matrix calculated when robot 10 reaches the third destination point WP, the RB position information LC1 periodically collected from robot 10 during its movement from the first destination point WP to the third destination point WP can be appropriately transformed, and a valid movement trajectory can be drawn. However, the RB position information LC1 obtained from robot 10 moving outside the confidence area AR1 may not be appropriately transformed (for example, a movement trajectory that passes through a place where robot 10 is not supposed to be able to pass may be drawn). In other words, the accuracy of the transformation matrix calculated when robot 10 reaches the third destination point WP tends to be "high" when robot 10 is within the confidence area AR1, and tends to "decrease" when robot 10 is outside the confidence area AR1.
[0081] As shown in Figure 6(b), for example, when robot 10 reaches the fourth destination point WP, a confidence area AR2 is obtained that covers the area between the first destination point WP and the fourth destination point WP. This means that when using the transformation matrix calculated when robot 10 reaches the fourth destination point WP, the RB position information LC1 periodically collected from robot 10 during its movement from the first destination point WP to the fourth destination point WP can be appropriately transformed, and a valid movement trajectory can be drawn. However, the RB position information LC1 obtained from robot 10 moving outside the confidence area AR2 may not be appropriately transformed (for example, a movement trajectory that passes through a place where robot 10 is not supposed to be able to pass) can be drawn. In other words, the accuracy of the transformation matrix calculated when robot 10 reaches the fourth destination point WP tends to be "high" when robot 10 is within the confidence area AR2, and tends to "decrease" when robot 10 is outside the confidence area AR2.
[0082] As shown in Figure 6(c), for example, when the robot 10 reaches the fifth destination point WP, a reliable area AR3 is obtained that covers the area between the first destination point WP and the fifth destination point WP. This means that if the transformation matrix calculated when the robot 10 reaches the fifth destination point WP is used, the RB position information LC1 periodically collected from the robot 10 during its movement from the first destination point WP to the fifth destination point WP can be appropriately transformed, and there is a high probability that a valid movement trajectory can be drawn. In other words, the accuracy of the transformation matrix calculated when the robot 10 reaches the fifth destination point WP is often "high" in accuracy, meaning that the RB position information LC1 acquired from the robot 10 can be appropriately transformed regardless of where the robot 10 is located in the operating environment OP.
[0083] [5. Correction of movement trajectory] Figure 6 explains that depending on the conversion accuracy, an inappropriate movement trajectory that differs from the actual movement trajectory may be depicted. This point will be explained in more detail using Figure 7. Figure 7 shows an example of the movement trajectory correction process. Figure 7 shows a situation where the movement trajectory is corrected in accordance with the improvement in the accuracy of the transformation matrix through correction of the transformation matrix.
[0084] Figure 7 also shows an example of the operating environment map screen G, where the converted coordinate values are plotted on the PF map MP2. Figures 7(a) to 7(d) then show how the depiction of the movement trajectory is corrected on the PF map MP2.
[0085] For example, suppose a reliable area AR1 is obtained that covers the area between the first destination point WP and the third destination point WP. Then, consider the movement path of robot 10 as it moves outside reliable area AR1 and reaches the fourth destination point WP. As explained in Figure 6, the transformation matrix obtained at this point (a transformation matrix calculated using pairs of three points) has reduced accuracy when transforming RB position information LC1 collected from robot 10 moving outside reliable area AR1. For example, suppose server device 100 uses this low-accuracy transformation matrix to transform RB position information LC1 collected from robot 10 moving outside reliable area AR1 and plots the coordinate values of the transformation result on PF map MP2. In such a case, as shown in Figure 7(a), a movement trajectory RT1 different from the actual movement trajectory RT of robot 10 may be depicted on PF map MP2. As shown in Figure 7(a), the movement trajectory RT1 may be a trajectory that passes through places where robot 10 is not normally able to pass. Such depictions during driving tests create difficulties in verifying whether there are any problems with robot 10's autonomous movement.
[0086] However, when robot 10 reaches the fourth destination point WP, the movement trajectory RT1 is modified to be closer to the actual movement trajectory RT. Here, as shown in Figure 7(b), when robot 10 reaches the fourth destination point WP, a confidence area AR2 is generated to cover the area between the first destination point WP and the fourth destination point WP. As explained in Figure 6, the transformation matrix obtained at this point (the transformation matrix recalculated using pairs of four points) is highly accurate in transforming the RB position information LC1 collected from robot 10 moving within the confidence area AR2. Therefore, for example, suppose server device 100 uses this highly accurate transformation matrix to transform the RB position information LC1 collected from robot 10 moving within the confidence area AR2 and plots the coordinate values of the transformation result on PF map MP2. In this case, as shown in Figure 7(b), a movement trajectory RT2 similar to the actual movement trajectory RT of robot 10 will be depicted on PF map MP2. In other words, the previous movement trajectory RT1 is modified to movement trajectory RT2. These modifications will allow user U to properly verify whether there are any problems with the autonomous movement of robot 10.
[0087] Furthermore, given that a reliable area AR2 has been obtained to cover the area between the first and fourth destination points WP, let's consider the movement path of robot 10 as it moves outside the reliable area AR2 and reaches the fifth destination point WP. As explained in Figure 6, the transformation matrix obtained at this point (a transformation matrix recalculated using pairs of four points) has reduced accuracy when transforming RB position information LC1 collected from robot 10 moving outside the reliable area AR2. For example, suppose the server device 100 uses this low-accuracy transformation matrix to transform RB position information LC1 collected from robot 10 moving outside the reliable area AR2 and plots the coordinate values of the transformation result on the PF map MP2. In such a case, as shown in Figure 7(c), a movement trajectory RT3 different from the actual movement trajectory RT of robot 10 may be depicted on the PF map MP2. As shown in Figure 7(c), the movement trajectory RT3 may be a trajectory that passes through places where robot 10 is not normally able to pass. Such depictions during driving tests create difficulties in verifying whether there are any problems with robot 10's autonomous movement.
[0088] However, when robot 10 reaches the fifth destination point WP, the movement trajectory RT3 is modified to be closer to the actual movement trajectory RT. Here, as shown in Figure 7(d), when robot 10 reaches the fifth destination point WP, a confidence area AR3 is generated to cover the area between the first destination point WP and the fifth destination point WP. As explained in Figure 6, the transformation matrix obtained at this point (a transformation matrix recalculated using pairs of 5 points) is highly accurate in transforming the RB position information LC1 collected from robot 10 moving within the confidence area AR3. Therefore, for example, suppose server device 100 uses this highly accurate transformation matrix to transform the RB position information LC1 collected from robot 10 moving within the confidence area AR3 and plots the coordinate values of the transformation result on PF map MP2. In this case, as shown in Figure 7(d), a movement trajectory RT4 similar to the actual movement trajectory RT of robot 10 will be depicted on PF map MP2. In other words, the previous movement trajectory RT3 is modified to movement trajectory RT4. These modifications will allow user U to properly verify whether there are any problems with the autonomous movement of robot 10.
[0089] [6. Robot Configuration] The robot 10 (autonomous mobile device) according to the embodiment will be described using Figure 8. Figure 8 is a diagram showing an example of the configuration of the robot 10 according to the embodiment. As shown in Figure 8, the robot 10 has a communication unit 11, a detection unit 12, a drive unit 13, a storage unit 14, and a control unit 15.
[0090] (Communications Section 11) The communication unit 11 is implemented, for example, by a NIC (Network Interface Card). For example, the communication unit 11 transmits and receives information between the user device 20 and the server device 100.
[0091] (Detection unit 12) The detection unit 12 detects the movement state of the robot 10. For example, the detection unit 12 detects the rotation angle of the robot 10's wheels, movement speed, movement direction, posture, or tilt.
[0092] In this way, the detection unit 12 acquires various sensing data used for self-position estimation. For example, the detection unit 12 may include an internal sensor that acquires sensing data indicating the movement state of the robot 10. The internal sensor may be, for example, an IMU (Inertial Measurement Unit), a gyro sensor, or an angular velocity sensor.
[0093] Furthermore, the detection unit 12 may further include an external sensor capable of measuring the distance to objects located in the surrounding environment of the robot 10. The external sensor may be, for example, a Lidar (Light Detection and Ranging) sensor, a distance measuring sensor, a camera, an ultrasonic distance sensor (sonar), or a millimeter-wave radar.
[0094] (Drive unit 13) The drive unit 13 has the function of moving the robot body 10 in accordance with the control of the movement control unit 152. The drive unit 13 may be realized by a movement mechanism for the robot 10 to move, such as wheels, and a drive device such as a motor that drives and controls the movement mechanism.
[0095] (Storage unit 14) The memory unit 14 is implemented by, for example, a semiconductor memory element such as RAM (Random Access Memory) or flash memory, or a storage device such as a hard disk or optical disc. The memory unit 14 stores programs and data for operating the control unit 15. The memory unit 14 can also temporarily store various data necessary during the operation of the control unit 15. The memory unit 14 may also store RB position information LC1, which is the result of self-position estimation by the estimation unit 153, and RB map MP1, which is an environmental map generated by the estimation unit 153.
[0096] (Control Unit 15) The control unit 15 is implemented by a CPU (Central Processing Unit) or MPU (Micro Processing Unit), which executes various programs stored in the memory unit 14 inside the robot 10 using RAM as the working area. Alternatively, the control unit 15 can be implemented by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
[0097] As shown in Figure 8, the control unit 15 includes a receiving unit 151, a movement control unit 152, an estimation unit 153, a transmitting unit 154, and a conversion unit 155, and realizes or executes the information processing functions and operations described below. Note that the internal configuration of the control unit 15 is not limited to the configuration shown in Figure 8, and other configurations are also possible as long as they perform the information processing described later. Also, the connection relationships of the various processing units in the control unit 15 are not limited to the connection relationships shown in Figure 8, and other connection relationships are also possible.
[0098] (Receiving unit 151) The receiving unit 151 receives movement instruction information from the server device 100. The movement instruction information may include location information of the destination point WP and identification information of the destination point WP. The movement instruction information may be input to the user device 20 by the user U, and the user device 20 transmits the movement instruction information received from the user U to the server device 100. The input of the movement instruction information may be performed via the operating environment map screen G.
[0099] (Movement control unit 152) The movement control unit 152 controls the robot 10 to move to the destination point WP based on the location information of the destination point WP included in the movement instruction information. For example, the movement control unit 152 may plan a movement path based on the location information of the destination point WP and control the robot 10 to move along the planned movement path.
[0100] (Estimation part 153) The estimation unit 153 uses the internal map, the RB map MP1, to estimate the robot 10's own position and acquire RB position information LC1 based on the sensing data acquired by the detection unit 12. The estimation unit 153 may perform self-position estimation at a predetermined period (for example, a 1-second period).
[0101] (Transmitter 154) The transmitting unit 154 uploads robot position information RBIF to the server device 100 at a predetermined interval corresponding to the self-position estimation by the estimation unit 153. The robot position information RBIF may include, for example, RB position information LC1, the execution time of the self-position estimation, destination label (including location information and identification information of the destination point WP), and movement status. The movement status is information indicating the movement status of the robot 10, and examples include "moving" or "arrived".
[0102] (Conversion unit 155) As described above, movement instructions for the robot 10 may be given on the PF map MP2 displayed on the operating environment map screen G. However, the robot 10 moves autonomously based on the RB map MP1. Therefore, the conversion unit 155 converts the coordinate values (x',y') in the second coordinate system to coordinate values (x,y) in the first coordinate system. The conversion unit 155 may perform the conversion using a conversion matrix calculated by the server device 100.
[0103] [7. Server Equipment Configuration] The server device 100 according to the embodiment will be described with reference to Figure 9. Figure 9 is a diagram showing an example of the configuration of the server device 100 according to the embodiment. As shown in Figure 9, the server device 100 has a communication unit 110, a storage unit 120, and a control unit 130.
[0104] (Communications Department 110) The communication unit 110 is implemented by, for example, a NIC. For example, the communication unit 110 transmits and receives information between the robot 10 and the user device 20.
[0105] (Storage unit 120) The memory unit 120 is implemented by, for example, a semiconductor memory element such as RAM or flash memory, or a storage device such as a hard disk or optical disc. The memory unit 14 stores programs and data for operating the control unit 130. The memory unit 120 can also temporarily store various data required during the operation of the control unit 130. The memory unit 14 may also store PF map MP2, BP location information LC2, arrival history LGDA, and transformation matrix information AFDA.
[0106] (Control unit 130) The control unit 130 is implemented by a CPU, MPU, etc., which executes various programs (for example, information processing programs according to the embodiment) stored in the storage unit 120 inside the server device 100 using RAM as a working area. Alternatively, the control unit 130 can be implemented by an integrated circuit such as an ASIC or FPGA.
[0107] As shown in Figure 9, the control unit 130 includes a reception unit 131, a first acquisition unit 132, a second acquisition unit 133, a history management unit 134, a determination unit 135, a calculation unit 136, a conversion unit 137, and a display control unit 138, and realizes or executes the information processing functions and operations described below. Note that the internal configuration of the control unit 130 is not limited to the configuration shown in Figure 9, and other configurations are also possible as long as they perform the information processing described later. Also, the connection relationships of the various processing units in the control unit 130 are not limited to the connection relationships shown in Figure 9, and other connection relationships are also possible.
[0108] (Reception desk 131) The reception unit 131 receives information necessary to operate the control unit 130. For example, the reception unit 131 receives movement instruction information from the user device 20. The reception unit 131 also receives robot position information RBIF from the robot 10.
[0109] (1st acquisition part 132) The first acquisition unit 132 acquires the result of the self-position estimation by the robot 10. Specifically, the first acquisition unit 132 acquires, from the robot 10 that is moving so as to pass through the target point WP in order, RB position information LC1 (self-position information), which is information on the self-position estimated by the robot 10 using the RB map MP1 (first map) defined in the first coordinate system.
[0110] (Second acquisition unit 133) The second acquisition unit 133 acquires, in accordance with the movement of the robot 10, the corresponding point information in the second coordinate system among the corresponding point information indicating the positions of corresponding points between the RB map MP1 and the PF map MP2 (second map) defined in a second coordinate system different from the first coordinate system. The corresponding point information in the second coordinate system here corresponds to the BP position information LC2.
[0111] Also, every time the robot 10 reaches a destination in order after a predetermined target point WP, the second acquisition unit 133 acquires the BP position information LC2 of the reference point BP corresponding to the target point WP that the robot 10 has reached this time. As an example, when the robot 10 reaches the fourth destination (target point WP 13 ) after the third target point WP (target point WP 14 ), the second acquisition unit 133 acquires the BP position information LC2 (LC24) of the reference point BP (reference point BP 14 ) corresponding to this fourth target point WP (target point WP 24 ). As another example, when the robot 10 reaches the fifth destination (target point WP 13 ) after the third target point WP (target point WP 15 ), the second acquisition unit 133 acquires the BP position information LC2 (LC25) of the reference point BP (reference point BP 15 ) corresponding to this fifth target point WP (target point WP 25 ).
[0112] (History management unit 134) The history management unit 134 manages information about the destination point WP reached by the robot 10 as a destination history LGDA when the robot 10 reaches the destination point WP. The history management unit 134 manages a pair of RB position information LC1 at the destination point WP and BP position information LC2 corresponding to RB position information LC1 as a destination history LGDA when the robot 10 reaches the destination point WP. The destination history LGDA may further include information on the transformation result of a transformation matrix calculated based on the pair of RB position information LC1 and BP position information LC2.
[0113] (Judgment unit 135) The determination unit 135 determines whether or not to recalculate the transformation matrix based on the arrival history LGDA.
[0114] For example, the determination unit 135 may determine whether or not to recalculate the transformation matrix based on the error in the transformation result that may occur if the RB position information LC1 at the destination point WP that the robot 10 has now reached is used, and the error in the transformation result calculated using the transformation matrix based on the arrival history LGDA. For example, if the determination unit 135 estimates that the error in the transformation result that may occur if the RB position information LC1 at the destination point WP that the robot 10 has now reached is greater than the error in the transformation result calculated using the transformation matrix based on the arrival history LGDA, it does not need to recalculate the transformation matrix.
[0115] As another example, if the determination unit 135 determines that the movement trajectory generated based on the RB position information LC1 at the destination point WP reached by the robot 10 and the arrival history LGDA is similar to a straight line, it does not need to recalculate the transformation matrix.
[0116] (Calculation section 136) When the robot 10 reaches a predetermined target point WP among the target points WP, the calculation unit 136 calculates a transformation matrix for performing coordinate transformation between the first coordinate system and the second coordinate system based on the RB position information LC1 at each of the target points WP that the robot 10 has reached so far and the BP position information LC2 of the reference point BP corresponding to each of the target points WP that the robot 10 has reached so far.
[0117] For example, the calculation unit 136 may calculate the transformation matrix by affine transformation. In this case, when the robot 10 reaches the target point WP at the third position in the passage order as a predetermined destination 13 (an example of the predetermined target point WP), the second acquisition unit 133 11 acquires the reference point BP corresponding to each of the first to third target points WP 13 as the reference points BP 21 ~ the reference points BP 23 and acquires the BP position information LC2 for each of them. Then, the calculation unit 136 calculates the transformation matrix based on the coordinate values of three points, namely, the pair of the RB position information LC11 and the BP position information LC21, the pair of the RB position information LC12 and the BP position information LC22, and the pair of the RB position information LC13 and the BP position information LC23.
[0118] In addition, every time the robot 10 reaches a target point WP after the third target point WP 13 , the second acquisition unit 133 acquires the BP position information LC2 of the reference point BP corresponding to the target point WP that the robot 10 has reached this time. Then, the calculation unit 136 recalculates the transformation matrix by further using the RB position information LC1 at the target point WP that the robot 10 has reached this time and the BP position information LC2 acquired according to the current arrival of the robot 10.
[0119] As described above, assuming that the transformation matrix is calculated based on the coordinate values of three points and the robot 10 reaches the fourth destination (the target point WP 14 ). In such a case, the second acquisition unit 133 acquires the reference point BP (the reference point BP 14 ) corresponding to the fourth target point WP (the target point WP 24The BP position information LC2 (LC24) is obtained. Then, the calculation unit 136 recalculates the transformation matrix using the pairs of RB position information LC14 and BP position information LC24 for the coordinate values of the three points. In other words, the calculation unit 136 recalculates the transformation matrix based on the coordinate values of the four points. Note that the calculation unit 136 may recalculate the transformation matrix based on the coordinate values of the four points if it determines that it should perform a recalculation of the transformation matrix.
[0120] Furthermore, as described above, with the transformation matrix calculated based on the coordinate values of the four points, robot 10 is heading towards the fifth destination (destination point WP). 15 Let's assume that the destination point WP has been reached. In this case, the second acquisition unit 133 will acquire the fifth destination point WP (destination point WP). 15 ) corresponding reference point BP (reference point BP 25 The BP position information LC2 (LC25) is obtained. Then, the calculation unit 136 recalculates the transformation matrix using the pairs of RB position information LC15 and BP position information LC25 for the coordinate values of the four points. In other words, the calculation unit 136 recalculates the transformation matrix based on the coordinate values of the five points. Note that the calculation unit 136 may recalculate the transformation matrix based on the coordinate values of the five points if it determines that it should perform a recalculation of the transformation matrix.
[0121] In this embodiment, the server device 100 calculates the transformation matrix using an affine transformation method, but other transformation methods may also be used to calculate the transformation matrix. For example, the calculation unit 136 may calculate the transformation matrix using a homography transformation method.
[0122] (Conversion unit 137) The transformation unit 137 performs coordinate transformations using the transformation matrix calculated by the calculation unit 136. For example, the transformation unit 137 transforms coordinate values (x,y) in the first coordinate system to coordinate values (x',y') in the second coordinate system. Alternatively, the transformation unit 137 transforms coordinate values (x',y') in the second coordinate system to coordinate values (x,y) in the first coordinate system.
[0123] (Display control unit 138) The display control unit 138 controls the display so that the operating environment map screen G is displayed on the user device 20. For example, the display control unit 138 performs display control based on the coordinate values obtained by the coordinate transformation by the transformation unit 137. For example, the display control unit 138 may generate the operating environment map screen G in which the coordinate values of the transformation result are displayed on the PF map MP2.
[0124] [8. Examples of Server Device Operation] Figure 10 shows an example of the operation of the server device 100. Figure 10 illustrates an example of the operation of each processing unit described in Figure 9. Figure 10 shows the server device 100 collecting information for calculating the transformation matrix from robot 10-1 (an example of robot 10) and calculating the transformation matrix using the collected information. Figure 10 also shows robot 10-1 heading to the fourth destination point WP. 14 Reaching this point demonstrates an example of how the transformation matrix is recalculated.
[0125] According to the example in Figure 10, robot 10 uploads robot position information RBIF to server device 100 (step S1001). For example, robot 10 periodically uploads robot position information RBIF, which includes RB position information LC1, the execution time of self-position estimation, destination label (including location information and identification information of destination point WP), movement status, etc.
[0126] The first acquisition unit 132 of the server device 100 acquires the robot position information RBIF uploaded by the robot 10.
[0127] The first acquisition unit 132 may store the RB position information LC1 included in the robot position information RBIF in the storage unit 120 if the movement status included in the robot position information RBIF is "moving".
[0128] On the other hand, if the movement status included in the robot position information RBIF is "arrived", the first acquisition unit 132 transmits the identification information of the destination point WP that the robot 10 has reached and the RB position information LC1 at the destination point WP to the second acquisition unit 133.
[0129] When the second acquisition unit 133 receives RB location information LC1, it acquires BP location information LC2 corresponding to the received RB location information LC1 and transmits the pair of RB location information LC1 and BP location information LC2 to the history management unit 134. At this time, the pair may be associated with identification information of the destination point WP reached by the robot 10.
[0130] The history management unit 134 registers pairs of associated RB position information LC1 and BP position information LC2 as arrival history LGDA in the storage unit 120. Figure 10 shows robot 10-1 reaching destination point WP. 13 The destination WP has arrived, and the history management unit 134 has arrived at the destination WP. 11 ~WP 13 An example is shown in which arrival history LGDAs corresponding to each destination are registered in the storage unit 120.
[0131] As shown in Figure 10, the history management unit 134 controls the destination point WP. 11 RB position information LC11 and destination point WP 11 Corresponding reference point BP 21 The pair of BP location information LC21 and the corresponding pair has already been registered as one record in the arrival history LGDA. In addition, the history management unit 134 has registered the destination point WP. 12 RB position information LC12 and destination point WP 12 Corresponding reference point BP 22 The pair of BP location information LC22 and the corresponding location information has already been registered as one record in the arrival history LGDA. In addition, the history management unit 134 has registered the destination point WP. 13 RB position information LC13 and destination point WP 13 Corresponding reference point BP 23 The pair, which is linked to the BP location information LC23, has already been registered as one record in the arrival history LGDA.
[0132] In this situation, robot 10-1 is heading towards the fourth destination point WP. 14 Let's assume that it has reached the fourth destination point WP. For example, the first acquisition unit 132 tells robot 10-1 that it has reached the fourth destination point WP. 14If the destination is reached, the identification information of the destination point WP "WP4" and the destination point WP are determined according to the movement status included in the robot position information RBIF, which is "reached". 14 The RB position information LC14 is transmitted to the second acquisition unit 133.
[0133] The second acquisition unit 133 allows robot 10-1 to reach the fourth destination point WP. 14 Upon reaching the destination, a pair of corresponding RB position information LC14 and BP position information LC24 is transmitted to the determination unit 135.
[0134] In such cases, the determination unit 135 acquires the currently accumulated arrival history LGDA (step S1002). The currently accumulated arrival history LGDA is the destination point WP, as shown in Figure 10. 11 ~WP 13 The arrival history LGDA obtained for each location is the arrival of robot 10-1.
[0135] Then, the determination unit 135 performs a recalculation determination to determine whether or not to recalculate the transformation matrix based on the arrival history LGDA acquired in step S1002 and the pair of RB location information LC14 and BP location information LC24 (step S1003).
[0136] For example, the determination unit 135 determines the arrival history LGDA (destination point WP) that has been accumulated at the time 11 ~WP 13 Based on the arrival history LGDA obtained when robot 10-1 arrived for each location, a transformation matrix is calculated to actually transform the coordinates of the RB position information LC1 included in the arrival history LGDA. As a result, the determination unit 135 can determine the error in the transformation result based on the result of this coordinate transformation and the BP position information LC2. Specifically, the determination unit 135 can determine the actual error value of how much error occurs in the transformation result when the transformation matrix calculated based on the arrival history LGDA accumulated at the present time is used.
[0137] Furthermore, the determination unit 135 may predict how much error will occur in the transformation result when a transformation matrix that can be calculated by further using the currently accumulated arrival history LGDA and the pair of RB position information LC14 and BP position information LC24 is used. For example, when calculating a transformation matrix based on a pair of four points, in an affine transformation, a transformation matrix that minimizes the residual error (2D norm) is searched for using least squares. Therefore, the determination unit 135 may calculate a predicted error value from the residual error.
[0138] The determination unit 135 then compares the actual error value with the predicted error value and, if it estimates that the predicted error value will be larger than the actual error value, it may decide not to recalculate the transformation matrix. On the other hand, the determination unit 135 then compares the actual error value with the predicted error value and, if it estimates that the predicted error value will be smaller than the actual error value, it may decide to recalculate the transformation matrix.
[0139] This recalculation process allows the transformation matrix to be calculated only when it is predicted that the error will be smaller. The actually calculated transformation matrix can then be given priority over the previously calculated transformation matrix. In other words, the sequential calculation of the transformation matrix according to this embodiment allows for updating to a more accurate transformation matrix. For example, when robot 10-1 reaches its final destination point WP, the most accurate transformation matrix will have been obtained.
[0140] The subsequent operation of the server device 100 will update the transformation matrix. Specifically, first, if the history management unit 134 determines that the transformation matrix should be recalculated by the determination unit 135, it will update the destination point WP that robot 10-1 has reached. 14 The information is registered in the storage unit 120 as the arrival history LGDA (step S1004). Specifically, the history management unit 134 registers the destination point WP. 14 RB position information LC14 and destination point WP 14 Corresponding reference point BP 24The pair, which is linked to the BP location information LC24, is registered as one record in the arrival history LGDA.
[0141] Once the registration of the arrival history LGDA by the history management unit 134 is complete, the determination unit 135 may instruct the calculation unit 136 to calculate the transformation matrix (step S1005).
[0142] The calculation unit 136 calculates the arrival history LGDA (destination point WP) that has been accumulated so far. 11 ~WP 14 The arrival history (LGDA) obtained when robot 10-1 arrived for each location is retrieved from the storage unit 120 (step S1006).
[0143] Then, the calculation unit 136 recalculates the transformation matrix based on the arrival history LGDA obtained in step S1006 (step S1007). Specifically, the calculation unit 136 calculates the transformation matrix based on the coordinate values of four points: the pair of RB position information LC11 (x11, y11) and BP position information LC21 (x'21, y'21), the pair of RB position information LC12 (x12, y12) and BP position information LC22 (x'22, y'22), the pair of RB position information LC13 (x13, y13) and BP position information LC23 (x'23, y'23), and the pair of RB position information LC14 (x14, y14) and BP position information LC24 (x24, y24).
[0144] The calculation unit 136 updates the change matrix using the recalculated transformation matrix (step S1008). Specifically, the calculation unit 136 updates the transformation matrix from the previously calculated matrix based on the coordinate values of three points to the recalculated transformation matrix. For example, the calculation unit 136 registers transformation matrix information AFDA, which represents the updated transformation matrix, in the storage unit 120. The updated transformation matrix is more accurate than the transformation matrix before the update and can be said to be a parameter that can reduce the error in the transformation result.
[0145] Furthermore, the transformation unit 137 acquires transformation matrix information AFDA (step S1009). Then, the transformation unit 137 performs a coordinate transformation using the transformation matrix indicated by the transformation matrix information AFDA (step S1010). For example, the transformation unit 137 transforms coordinate values (x,y) in the first coordinate system to coordinate values (x',y') in the second coordinate system. According to the example in Figure 10, the transformation unit 137 may use the transformation matrix to transform RB position information LC11 (x11,y11), RB position information LC12 (x12,y12), RB position information LC13 (x13,y13), and RB position information LC14 (x14,y14) to coordinate values (x',y') in the second coordinate system.
[0146] The conversion unit 137 instructs the display control unit 138 to control the display of the conversion result (step S1011).
[0147] The display control unit 138 controls the system so that the conversion result is displayed on the user device 20 (step S1012). For example, the display control unit 138 may control the system so that the operating environment map screen G, in which the coordinate values of the conversion result are displayed on the PF map MP2, is displayed on the user device 20.
[0148] The method for recalculating and determining the destination point WP is not limited to the above example. For example, the determination unit 135 uses the RB location information LC1 (RB location information LC11, RB location information LC12, RB location information LC13) included in the arrival history LGDA and the destination point WP. 14 When plotting the RB position information LC14, the system may determine whether or not to recalculate the transformation matrix depending on whether the movement trajectory derived from the plot is a straight line or a curve similar to a straight line. For example, the determination unit 135 may decide not to recalculate if the movement trajectory is a straight line or a curve similar to a straight line. For example, if the movement trajectory is a straight line, it means that the destination points WP are arranged in a special relationship, and in this case, it is presumed that even if the transformation matrix is recalculated using the RB position information LC14 again, the result will not change from the previous transformation matrix. On the other hand, the determination unit 135 may decide to recalculate if the movement trajectory is a curve that deviates significantly from a straight line.
[0149] [9. Information Processing Procedures] Next, the information processing procedure according to the embodiment will be explained using Figures 11 and 12. In Figure 11, the robot 10 moves to the third destination point WP. 13 Until reaching the third destination WP 13 The information processing procedure when the robot reaches the third destination point WP is shown in Figure 12. 13 This section outlines the information processing procedures after the transition has been achieved.
[0150] (9-1. Information Processing Procedure (1)) Figure 11 is a flowchart of the information processing procedure (1) according to the embodiment. In the information processing procedure shown in Figure 11, the first conversion coefficient is calculated.
[0151] The first acquisition unit 132 acquires robot information RBIF from robot 1 (step S1101).
[0152] The history management unit 134 determines whether the robot 10 has reached the destination point WP based on the movement status information contained in the robot information RBIF (step S1102). If the robot 10 has not reached the destination point WP and is "moving" toward the destination point WP (step S1102; No), the history management unit 134 registers the RB position information LC1 contained in the robot position information RBIF in the storage unit 120 and returns to step S1101.
[0153] On the other hand, if the robot 10 "reaches" the destination point WP (step S1102; Yes), the second acquisition unit 133 acquires the BP position information LC2 of the reference point BP corresponding to the destination point WP that the robot 10 has just reached (step S1103).
[0154] The history management unit 134 registers a pair of the RB position information LC1 at the destination point WP that the robot 10 has reached and the BP position information LC2 acquired in step S1103 as the arrival history LGDA in the storage unit 120 (step S1104).
[0155] In this situation, the history management unit 134, based on the identification information of the destination point WP included in the robot information RBIF, determines that the destination point WP that the robot 10 has now reached is the third destination point WP 13 The history management unit 134 determines whether the destination point WP that the robot 10 has reached this time is the third destination point WP. 13 Otherwise (step S1105; No), the process returns to step S1101.
[0156] The calculation unit 136 determines that the destination point WP that the robot 10 has reached this time is the third destination point WP 13 If so (Step S1105; Yes), the currently accumulated arrival history LGDA (Destination Point WP) 11 ~WP 13 For each instance, obtain the arrival history (LGDA) obtained when robot 10 arrives (step S1106).
[0157] Then, the calculation unit 136 calculates a transformation matrix based on the pairs of RB location information LC1 and BP location information LC2 included in the arrival history LGDA (step S1107). Specifically, the calculation unit 136 calculates a transformation matrix based on the coordinate values of three points: the pair of RB location information LC11 (x11, y11) and BP location information LC21 (x'21, y'21), the pair of RB location information LC12 (x12, y12) and BP location information LC22 (x'22, y'22), and the pair of RB location information LC13 (x13, y13) and BP location information LC23 (x'23, y'23).
[0158] The calculation unit 136 registers the transformation matrix information AFIF, which represents the transformation matrix, in the storage unit 120 (step S1108).
[0159] The transformation unit 137 uses the transformation matrix calculated in step S1107 to transform all RB position information LC1 included in the arrival history LGDA into coordinate values in the second coordinate system (step S1109). Specifically, the transformation unit 137 may use the transformation matrix to transform each of the RB position information LC11 (x11, y11), RB position information LC12 (x12, y12), and RB position information LC13 (x13, y13) into coordinate values (x', y') in the second coordinate system.
[0160] The display control unit 138 generates an operating environment map screen G in which the converted coordinate values are displayed on the PF map MP2 (step S1110). Then, the display control unit 138 controls the operating environment map screen G to be displayed on the user device 20 (step S1111).
[0161] (9-2. Information Processing Procedures (2)) Figure 12 is a flowchart of the information processing procedure (2) according to the embodiment. In the information processing procedure shown in Figure 12, the conversion coefficient is recalculated.
[0162] The first acquisition unit 132 acquires robot information RBIF from robot 1 (step S1201).
[0163] The history management unit 134 determines whether the robot 10 has reached the destination point WP based on the movement status information contained in the robot information RBIF (step S1202). If the robot 10 has not reached the destination point WP and is "moving" toward the destination point WP (step S1202; No), the history management unit 134 registers the RB position information LC1 contained in the robot position information RBIF in the storage unit 120 and returns to step S1201.
[0164] On the other hand, if the robot 10 "reaches" the destination point WP (step S1202; Yes), the second acquisition unit 133 will determine that the robot 10 has now reached the destination point WP (for example, destination point WP 14 or destination WP 15The BP position information LC2 of the reference point BP corresponding to ) is obtained (step S1203).
[0165] The determination unit 135 obtains the currently accumulated arrival history LGDA (step S1204).
[0166] Then, the determination unit 135 determines whether or not to recalculate the transformation matrix based on the arrival history LGDA acquired in step S1204 and the pair of RB position information LC1 and BP position information LC2 acquired in response to the arrival by the robot 10 (step S1205).
[0167] If the history management unit 134 determines that the transformation matrix should be recalculated (step S1205; Yes), it registers the pair of RB position information LC1 and BP position information LC2, acquired in accordance with the robot 10's current arrival, as the arrival history LGDA in the storage unit 120 (step S1206). For example, the destination point WP that the robot 10 has reached this time is the fourth destination point WP. 14 Let it be so. In such a case, the history management unit 134 will determine the destination point WP. 14 RB position information LC14 and destination point WP 14 Corresponding reference point BP 24 The pair, which is linked to the BP location information LC24, is registered as one record in the arrival history LGDA.
[0168] The calculation unit 136 obtains the currently accumulated arrival history LGDA (step S1207).
[0169] Then, the calculation unit 136 recalculates the transformation matrix based on the pair of RB position information LC1 and BP position information LC2 included in the arrival history LGDA (step S1208). For example, the destination point WP that robot 10 has now reached is the fourth destination point WP 14Assume this is the case. In this case, the calculation unit 136 calculates a transformation matrix based on the coordinate values of four points: the pair of RB position information LC11 (x11, y11) and BP position information LC21 (x'21, y'21), the pair of RB position information LC12 (x12, y12) and BP position information LC22 (x'22, y'22), the pair of RB position information LC13 (x13, y13) and BP position information LC23 (x'23, y'23), and the pair of RB position information LC14 (x14, y14) and BP position information LC24 (x'24, y'24).
[0170] The calculation unit 136 updates the change matrix using the recalculated transformation matrix (step S1209). Specifically, the calculation unit 136 updates the transformation matrix from the one initially calculated in the process shown in Figure 11 to the transformation matrix that has been recalculated.
[0171] Here, the same processing as in steps S1109 to S1111 is performed using the transformation matrix calculated in step S1109 (step S1210).
[0172] Furthermore, the server device 100 determines whether or not the robot 10 has reached all destination points WP (step S1211).
[0173] If the robot 10 has not reached all destination points WP (step S1211; No), the server device 100 returns to step S1201. On the other hand, if the robot 10 has reached all destination points WP (step S1211; Yes), the server device 100 terminates the series of processes.
[0174] Returning to step S1205, if the history management unit 134 determines that the transformation matrix should not be recalculated (step S1205; No), it does not register the pair of RB position information LC1 and BP position information LC2 acquired in response to the robot 10's arrival as arrival history LGDA in the storage unit 120 (step S1212), and returns to step S1201.
[0175] [10. Hardware Configuration] The server device 100 corresponding to the information processing device according to the embodiment may be realized by the configuration shown in Figure 13. Figure 13 is a hardware configuration diagram showing an example of a computer according to the embodiment. The computer 1000 has a CPU 1100, RAM 1200, ROM 1300, HDD 1400, communication interface (I / F) 1500, input / output interface (I / F) 1600, and media interface (I / F) 1700.
[0176] The CPU 1100 operates based on programs stored in the ROM 1300 or HDD 1400, controlling various components. The ROM 1300 stores boot programs executed by the CPU 1100 when the computer 1000 starts up, as well as programs that depend on the computer 1000's hardware.
[0177] The HDD1400 stores programs executed by the CPU1100, as well as data used by such programs. The communication interface1500 receives data from other devices via a predetermined communication network and sends it to the CPU1100, and transmits data generated by the CPU1100 to other devices via the predetermined communication network.
[0178] The CPU 1100 controls output devices such as displays and input devices such as keyboards via the input / output interface 1600. The CPU 1100 acquires data from input devices via the input / output interface 1600. The CPU 1100 also outputs the generated data to output devices via the input / output interface 1600.
[0179] The media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200. The CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
[0180] For example, when the computer 1000 functions as a server device 100 according to the embodiment, the CPU 1100 of the computer 1000 realizes the functions of the control unit 130 by executing programs loaded on the RAM 1200. The CPU 1100 of the computer 1000 reads and executes these programs from the recording medium 1800, but as another example, these programs may be obtained from other devices via a predetermined communication network.
[0181] [11. Other] Furthermore, among the processes described in each of the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically by known methods. In addition, the processing procedures, specific names, and information including various data and parameters shown in the above document and drawings can be changed at will unless otherwise specified. For example, the various information shown in each figure is not limited to the information shown.
[0182] Furthermore, the components of each illustrated device are functionally conceptual and do not necessarily need to be physically configured as shown. In other words, the specific forms of distribution and integration of each device are not limited to those shown, and all or part of them can be functionally or physically distributed and integrated in any unit according to various loads and usage conditions.
[0183] Furthermore, the above embodiments can be combined as appropriate, provided that the processing content is not contradictory.
[0184] Although some embodiments of the present invention have been described in detail above with reference to the drawings, these are illustrative examples, and the present invention can be implemented in various other forms with modifications and improvements based on the knowledge of those skilled in the art, including the embodiments described in the section on the present invention. [Explanation of Symbols]
[0185] 1. Information Processing System 10 Robots 20 User devices 100 Server Devices 110 Communications Department 120 Storage section 130 Control Unit 131 Reception Department 132 First acquisition part 133 Second Acquisition Department 134 History Management Department 135 Judgment section 136 Calculation Section 137 Conversion Unit 138 Display Control Unit MP1 RB Map MP2 PF Map LC1 RB location information LC2 BP location information
Claims
1. A first acquisition unit acquires self-position information, which is information about the autonomous mobile device's own position estimated by the autonomous mobile device using a first map defined on a first coordinate system, from an autonomous mobile device that is moving in order to pass through its destinations. A second acquisition unit acquires correspondence point information in the second coordinate system, which is among the correspondence point information indicating the positions of corresponding points between the first map and a second map defined on a second coordinate system different from the first coordinate system, in accordance with the movement of the autonomous mobile device. When the autonomous mobile device reaches a predetermined destination among the aforementioned destinations, a calculation unit calculates a transformation matrix that performs a coordinate transformation between the first coordinate system and the second coordinate system based on the self-position information of each of the aforementioned destinations that the autonomous mobile device has reached so far and the corresponding point information of the corresponding points corresponding to each of the aforementioned destinations that the autonomous mobile device has reached so far. Equipped with, The second acquisition unit acquires the corresponding point information of the corresponding point corresponding to the destination reached by the autonomous mobile device each time the autonomous mobile device reaches a destination that is in a later order than the predetermined destination. The calculation unit then performs a sequential calculation of the transformation matrix, which involves recalculating the transformation matrix using the self-position information at the destination reached by the autonomous mobile device and the corresponding point information acquired in response to the arrival by the autonomous mobile device. Information processing device.
2. The second acquisition unit acquires the corresponding point information of each of the corresponding points corresponding to each of the destinations up to the predetermined number when the autonomous mobile device reaches the predetermined destination in the route order. The calculation unit calculates the transformation matrix based on the self-position information at each of the predetermined destinations and the acquired corresponding point information. The information processing apparatus according to claim 1.
3. The second acquisition unit acquires the corresponding point information of the corresponding point corresponding to the destination reached by the autonomous mobile device each time the autonomous mobile device reaches a predetermined number of destinations or later. The calculation unit further uses the self-position information at the destination reached by the autonomous mobile device and the corresponding point information acquired in response to the autonomous mobile device's arrival to recalculate the transformation matrix. The information processing apparatus according to claim 2.
4. For each of the aforementioned destinations, the combination of the self-position information and the corresponding point information is stored as a record of arrival at the destination. A determination unit determines whether or not to recalculate the transformation matrix based on the arrival history, To prepare further, The information processing apparatus according to claim 1.
5. The arrival history includes information on the transformation result obtained using the transformation matrix based on the arrival history. The information processing apparatus according to claim 4.
6. The determination unit determines whether or not to recalculate the transformation matrix based on the error in the transformation result that may occur when the autonomous mobile device further uses the self-position information at the destination it has now reached, and the error in the transformation result converted using the transformation matrix based on the arrival history. The information processing apparatus according to claim 5.
7. If the determination unit estimates that the error in the conversion result that may occur when the autonomous mobile device further uses the self-position information at the destination it has now reached will be greater than the error in the conversion result converted using the conversion matrix based on the arrival history, it will not perform a recalculation of the conversion matrix. The information processing apparatus according to claim 6.
8. The determination unit, if the movement trajectory generated based on the self-position information at the destination reached by the autonomous mobile device and the arrival history is similar to a straight line, does not perform recalculation of the transformation matrix. The information processing apparatus according to claim 4.
9. A first acquisition step involves acquiring self-position information, which is information about the autonomous mobile device's own position estimated by the autonomous mobile device using a first map defined on a first coordinate system, from an autonomous mobile device that is moving in order to pass through its destinations. A second acquisition step is to acquire, in accordance with the movement of the autonomous mobile device, the correspondence point information in the second coordinate system, which is among the correspondence point information indicating the positions of corresponding points between the first map and a second map defined on a second coordinate system different from the first coordinate system, When the autonomous mobile device reaches a predetermined destination among the aforementioned destinations, a calculation step is made to calculate a transformation matrix that performs a coordinate transformation between the first coordinate system and the second coordinate system based on the self-position information of each of the aforementioned destinations that the autonomous mobile device has reached so far and the corresponding point information of the corresponding points corresponding to each of the aforementioned destinations that the autonomous mobile device has reached so far. Includes, The second acquisition step involves acquiring the corresponding point information of the corresponding point corresponding to the destination reached by the autonomous mobile device each time the autonomous mobile device reaches a destination that is in a later order than the predetermined destination. The calculation step involves performing a sequential calculation of the transformation matrix, which further uses the self-position information at the destination reached by the autonomous mobile device and the corresponding point information acquired in response to the arrival by the autonomous mobile device to recalculate the transformation matrix. Information processing methods.
10. A first acquisition procedure for acquiring self-position information, which is information about the autonomous mobile device's own position estimated by the autonomous mobile device using a first map defined on a first coordinate system, from an autonomous mobile device moving in a sequence to a destination, A second acquisition procedure for acquiring correspondence point information in the second coordinate system, which indicates the positions of corresponding points between the first map and a second map defined on a second coordinate system different from the first coordinate system, in accordance with the movement of the autonomous mobile device, A calculation procedure for calculating a transformation matrix that performs a coordinate transformation between the first coordinate system and the second coordinate system, based on the self-position information of each of the destinations the autonomous mobile device has reached so far and the corresponding point information of the corresponding point corresponding to each of the destinations the autonomous mobile device has reached so far, when the autonomous mobile device reaches a predetermined destination among the aforementioned destinations, Have the computer run it, The second acquisition procedure involves acquiring the corresponding point information of the corresponding point corresponding to the destination reached by the autonomous mobile device each time the autonomous mobile device reaches a destination that is in a later order than the predetermined destination. The calculation procedure involves performing a sequential calculation of the transformation matrix, which further uses the self-position information at the destination reached by the autonomous mobile device and the corresponding point information acquired in response to the arrival by the autonomous mobile device to recalculate the transformation matrix. Information processing program.