System, measuring device, map data generating device, map data generating method and program
The LiDAR system automates vertical FOV expansion and enhances motion data accuracy by aligning the IMU with the LiDAR's rotation axis, addressing manual adjustment needs and improving scanning efficiency for long vertical structures.
Patent Information
- Application Number
- JP2023187612
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-11-01
- Publication Date
- 2025-11-17
- Estimated Expiration
- 2043-11-01
AI Technical Summary
Conventional LiDAR systems struggle with scanning environments that have long vertical structures, requiring manual user intervention to adjust the vertical field of view, and lack accurate measurement of rotational and translational movements.
A LiDAR system with a motor-rotated base unit and IMU configuration where the LiDAR's bottom surface is perpendicular to the horizontal plane, allowing 360-degree horizontal FOV expansion without manual adjustment, and the IMU center aligns with the LiDAR's rotation axis for precise motion data measurement.
Enhances scanning efficiency by automating vertical FOV expansion and improving motion data accuracy, reducing user burden and ensuring high-quality map data generation using SLAM algorithms.
Smart Images

Figure 0007770696000002 
Figure 0007770696000003 
Figure 0007770696000004
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system, a measuring device, a map data generating device, a map data generating method, and a program. [Background technology]
[0002] Patent Document 1 describes an automatic driving system that realizes stable automatic driving in various environments by appropriately using satellite positioning and SLAM (Simultaneous Localization and Mapping). [Prior art document] [Patent documents] [Patent Document 1] JP 2022-146457 A Summary of the Invention
[0003] According to one embodiment of the present invention, there is provided a system, which may include a measurement device including a LiDAR (Light Detection and Ranging Apparatus), an IMU (Inertial Measurement Unit), a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR, and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit is mounted and the center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, or wherein a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit is mounted and the center of the IMU passes through a line perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor. The system may include a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period while the base unit is rotating due to the mechanical energy of the motor and is not translating, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, to generate reference data to be referenced when generating map data using a SLAM algorithm. The system may include a reference data generation unit that generates the reference data based on the plurality of first scan data and the motion data of the LiDAR measured when the LiDAR measured each of the first scan data. The system may include a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR while the base unit is rotating due to the mechanical energy of the motor and is translating. The system may include a map data generation unit that generates the map data based on the reference data generated by the reference data generation unit and the plurality of second scan data.
[0004] In the system, the LiDAR may output a first laser light having an output direction in the direction of a first vector included in a plane perpendicular to the support surface, and a second laser light having an output direction in the direction of a second vector included in a plane perpendicular to the support surface and having an opposite direction to the first vector, and the first acquisition unit may acquire the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data, measured during the predetermined period that is equal to or longer than a period for the LiDAR to rotate half a revolution around the rotation axis.
[0005] In any of the above systems, the reference data generation unit may generate the reference data by identifying a rotation angle of the LiDAR when the LiDAR measured each of the first scan data based on the motion data of the LiDAR when the LiDAR measured each of the first scan data, and integrating each of the first scan data based on the rotation angle of the LiDAR when the LiDAR measured each of the first scan data.
[0006] In any of the above systems, the reference data generation unit may generate the reference data by integrating the first scan data based further on the result of aligning the first scan data using an ICP (Iterative Closest Point) algorithm.
[0007] In any of the above systems, the second acquisition unit may further acquire motion data of the LiDAR measured by the IMU when the LiDAR measured each of the second scan data of the plurality of second scan data, and the system may further include a grouping unit that groups the plurality of second scan data based on the motion data of the LiDAR when the LiDAR measured each of the second scan data of the plurality of second scan data, and the map data generation unit may generate the map data by aligning the second scan data grouped into the same group by the grouping unit to the reference data.
[0008] In any of the systems, the LiDAR may output a first laser light having an output direction corresponding to a first vector included in a plane perpendicular to the support surface, and a second laser light having an output direction corresponding to a second vector included in a plane perpendicular to the support surface and having an opposite direction to the first vector, and the grouping unit may group the plurality of second scan data by grouping second scan data measured during a period in which the LiDAR makes one-half rotation around the rotation axis into the same group.
[0009] In any of the above systems, the reference data generation unit may update the reference data based on the second scan data grouped into the same group by the grouping unit, and the map data generation unit may generate the map data based on the reference data updated by the reference data generation unit and the plurality of second scan data.
[0010] Any of the systems may further include a pose graph generation unit that generates a pose graph, which represents a trajectory of the measuring device in a graph structure, on a group-by-group basis based on the reference data generated by the reference data generation unit and the plurality of second scan data grouped by the grouping unit, and the map data generation unit may generate the map data further based on the pose graph generated by the pose graph generation unit.
[0011] In any of the above systems, the second acquisition unit may further acquire motion data of the LiDAR measured by the IMU when the LiDAR measured each of the second scan data of the plurality of second scan data, and the map data generation unit may generate the map data further based on the motion data of the LiDAR when the LiDAR measured each of the second scan data of the plurality of second scan data.
[0012] According to one embodiment of the present invention, there is provided a measurement device. The measurement device may include a LiDAR. The measurement device may include an IMU. The measurement device may include a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR. The measurement device may include a motor that rotates the base unit. A support surface on which the support unit supports the LiDAR may be perpendicular to a mounting surface on which the mounting unit mounts the IMU, and a center of the IMU may pass through a rotation axis of the LiDAR when the base unit rotates due to the mechanical energy of the motor. Alternatively, a support surface on which the support unit supports the LiDAR may be parallel to a mounting surface on which the mounting unit mounts the IMU, and a center of the IMU may pass through a line perpendicular to the rotation axis of the LiDAR when the base unit rotates due to the mechanical energy of the motor.
[0013] The measurement device may further include a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period in a state in which the base part is rotating and not translating due to the mechanical energy of the motor, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, a reference data generation unit that generates the reference data based on the plurality of first scan data and the motion data of the LiDAR when the LiDAR measured each of the first scan data, a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR while the base part is rotating and translating due to the mechanical energy of the motor, and a map data generation unit that generates the map data based on the reference data generated by the reference data generation unit and the plurality of second scan data.
[0014] According to one embodiment of the present invention, there is provided a map data generation device that generates map data using a SLAM algorithm based on measurement data measured by a measurement device, the map data generation device comprising: a LiDAR; an IMU; a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR; and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit is mounted and the center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit is mounted and the center of the IMU passes through a line perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor. The map data generation device may include a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period in a state in which the base unit is rotating due to mechanical energy of the motor but is not translating, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, in order to generate reference data to be referenced when generating the map data. The map data generation device may include a reference data generation unit that generates the reference data based on the plurality of first scan data and the motion data of the LiDAR when the LiDAR measured each of the first scan data. The map data generation device may include a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR during a state in which the base unit is rotating due to mechanical energy of the motor but is translating. The map data generating device may include a map data generating unit that generates the map data based on the reference data generated by the reference data generating unit and the plurality of second scan data.
[0015] According to one embodiment of the present invention, there is provided a map data generation method executed by a measurement device, the method comprising: a LiDAR; an IMU; a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR; and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit mounts the IMU, and a center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or wherein a support surface on which the support unit supports the LiDAR is parallel to a mounting surface on which the mounting unit mounts the IMU, and the center of the IMU passes through a straight line that is perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor. The map data generation method may include a first acquisition step of acquiring a plurality of first scan data measured by the LiDAR during a predetermined period while the base unit is rotating due to mechanical energy of the motor and is not moving in a translational manner, and LiDAR motion data measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, in order to generate reference data to be referenced when generating map data using a SLAM algorithm. The map data generation method may include a reference data generation step of generating the reference data based on the plurality of first scan data and the motion data of the LiDAR when the LiDAR measured each of the first scan data. The map data generation method may include a second acquisition step of acquiring a plurality of second scan data measured by the LiDAR while the base unit is rotating due to mechanical energy of the motor and is moving in a translational manner. The map data generating method may include a map data generating step of generating the map data based on the reference data generated in the reference data generating step and the plurality of second scan data.
[0016] According to one embodiment of the present invention, there is provided a program for causing a computer to execute the map data generating method.
[0017] According to one embodiment of the present invention, there is provided a map data generation method executed by a map data generation device that generates map data using a SLAM algorithm based on measurement data measured by a measurement device, the map data generation device comprising: a LiDAR; an IMU; a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR; and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit is mounted and the center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit is mounted and the center of the IMU passes through a line perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor. The map data generation method may include a first acquisition step of acquiring a plurality of first scan data measured by the LiDAR during a predetermined period while the base unit is rotating due to mechanical energy of the motor and is not moving in a translational manner, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, in order to generate reference data to be referenced when generating the map data. The map data generation method may include a reference data generation step of generating the reference data based on the plurality of first scan data and the motion data of the LiDAR measured by the LiDAR during the predetermined period. The map data generation method may include a second acquisition step of acquiring a plurality of second scan data measured by the LiDAR while the base unit is rotating due to mechanical energy of the motor and is moving in a translational manner. The map data generating method may include a map data generating step of generating the map data based on the reference data generated in the reference data generating step and the plurality of second scan data.
[0018] According to one embodiment of the present invention, there is provided a program for causing a computer to execute the map data generating method.
[0019] The above summary of the invention does not list all of the necessary features of the present invention, and subcombinations of these features may also constitute inventions. [Brief explanation of the drawings]
[0020] [Figure 1] 1 shows an example of a hardware configuration of a measurement device 100. [Figure 2] 2 shows another example of the hardware configuration of the measurement device 100. [Figure 3] FIG. 4 is an explanatory diagram illustrating an example of a processing flow for generating map data. [Figure 4] FIG. 10 is an explanatory diagram illustrating an example of a process for generating reference data. [Figure 5] FIG. 10 is an explanatory diagram for explaining an example of a relationship between reference data and second scan data. [Figure 6] FIG. 10 is an explanatory diagram illustrating an example of a process for aligning scan data with reference data. [Figure 7] 1 shows a schematic diagram of an example pose graph for the measurement device 100. [Figure 8] 10A and 10B show an example of a pose graph of the measuring device 100 before pose adjustment and map data corresponding to the pose graph of the measuring device 100 before pose adjustment. [Figure 9] 10A and 10B show an example of a pose graph of the measurement device 100 before and after pose adjustment. [Figure 10] 10A and 10B show an example of a pose graph of the measuring device 100 after the pose adjustment and map data corresponding to the pose graph of the measuring device 100 after the pose adjustment. [Figure 11] FIG. 10 is an explanatory diagram illustrating another example of the flow of the process for generating map data. [Figure 12] An example of a system 10 is shown schematically. [Figure 13] 1 shows an example of a functional configuration of a measurement device 100. [Figure 14] 2 shows an example of a functional configuration of a map data generating device 200. [Figure 15] 1 shows an example of a hardware configuration of a computer 1200 that functions as the measurement device 100 or the map data generation device 200. DETAILED DESCRIPTION OF THE INVENTION
[0021] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention as claimed. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0022] 1 shows an example of a hardware configuration of a measuring device 100. The measuring device 100 includes a box unit 110, a base unit 120, a LiDAR 130, an IMU 140, a motor 150, and a slip ring 160. The measuring device 100 may further include a processing unit such as a central processing unit (CPU) (not shown). Note that it is not essential for the measuring device 100 to include all of these components.
[0023] The box unit 110 accommodates various devices. For example, the box unit 110 accommodates a motor 150 that rotates the base unit 120. For example, the box unit 110 accommodates a slip ring 160 that connects the base unit 120 and the motor 150.
[0024] A base unit 120 may be disposed on the upper surface of the box unit 110. For example, the arrangement surface on which the base unit 120 is disposed on the box unit 110 is a surface parallel to the horizontal plane. FIG. 1 illustrates an example in which the arrangement surface of the base unit 120 is a surface parallel to the xy plane. The xyz coordinate system in FIG. 1 is the coordinate system of the measurement device 100.
[0025] Box unit 110 may have a hand grip (not shown). A user of measurement device 100 may move measurement device 100 by holding measurement device 100 by the hand grip.
[0026] The base unit 120 may have a mounting unit 122. The mounting unit 122 may mount the IMU 140. For example, the mounting surface on which the mounting unit 122 mounts the IMU 140 is a plane parallel to the arrangement surface of the base unit 120. FIG. 1 illustrates an example in which the mounting surface of the mounting unit 122 is a plane parallel to the xy plane.
[0027] The mounting surface of the mounting portion 122 protrudes, for example, from the bottom surface 121 of the base portion 120. The mounting surface of the mounting portion 122 does not have to protrude from the bottom surface 121. Fig. 1 illustrates an example in which the mounting surface of the mounting portion 122 protrudes from the bottom surface 121 in the positive direction of the z axis.
[0028] The mounting portion 122 and the bottom portion 121 may be integral, or the mounting portion 122 and the bottom portion 121 may be different members.
[0029] The base unit 120 may have a support unit 124. The support unit 124 may support the LiDAR 130. For example, the support surface on which the support unit 124 supports the LiDAR 130 is perpendicular to the arrangement surface of the base unit 120. For example, the support surface of the support unit 124 is perpendicular to the bottom surface unit 121. For example, the support surface of the support unit 124 is perpendicular to the mounting surface of the mounting unit 122. FIG. 1 illustrates an example in which the support surface of the support unit 124 is a plane perpendicular to the xy plane.
[0030] The base unit 120, for example, rotates by mechanical energy obtained from the motor 150 via the slip ring 160.
[0031] The base unit 120 rotates, for example, clockwise around the rotation axis. The base unit 120 rotates, for example, counterclockwise around the rotation axis. Fig. 1 illustrates an example in which the base unit 120 rotates in the xy plane around a rotation axis parallel to the z axis.
[0032] The base portion 120 rotates at a predetermined rotation speed, for example, 30 revolutions per minute (rpm). The base portion 120 may rotate at any other rotation speed.
[0033] The LiDAR 130 may output a laser beam and measure the distance between the output position of the laser beam and the reflection point based on the reflected light of the laser beam reflected at the reflection point. For example, when the propagation speed of the laser beam is c [m / s], and the time from the time the laser beam is output to the time the reflected light is received is t [s], and the distance between the output position of the laser beam and the reflection point is x [m], the LiDAR 130 measures the distance between the output position of the laser beam and the reflection point from x [m] = 1 / 2 × t [s] × c [m / s].
[0034] The LiDAR 130 may acquire point cloud data consisting of a collection of reflection points by measuring the distance between the output position of the laser light and each reflection point. Here, acquiring point cloud data by the LiDAR 130 is considered to be performing a scan by the LiDAR 130. Note that the point cloud data may also be referred to as scan data.
[0035] The LiDAR 130 performs scanning at, for example, a predetermined scanning interval. The LiDAR 130 performs scanning at, for example, a scanning interval of 100 ms. The LiDAR 130 may perform scanning at any other scanning interval.
[0036] The LiDAR 130 outputs, for example, a laser beam from the output surface 135. The LiDAR 130 outputs, for example, a plurality of laser beams from the output surface 135. The LiDAR 130 outputs, for example, a first laser beam having an output direction in the direction of a first vector included in a plane perpendicular to the support surface of the support portion 124, and a second laser beam having an output direction in the direction of a second vector included in a plane perpendicular to the support surface of the support portion 124 and having an opposite direction to the first vector.
[0037] The LiDAR 130 has, for example, a cylindrical shape. In this case, the LiDAR 130 outputs laser light from an output surface 135, which is a side surface of the cylinder. The LiDAR 130 may have any other shape.
[0038] The LiDAR 130 includes, for example, a laser light source that outputs laser light with a wavelength in the infrared region. The LiDAR 130 includes, for example, a laser light source that outputs laser light with a wavelength in the visible light region. The LiDAR 130 may also include a laser light source that outputs laser light with a wavelength in the ultraviolet region.
[0039] The LiDAR 130 may rotate integrally with the base unit 120, which rotates using the mechanical energy of the motor 150. Therefore, the LiDAR 130 may be a rotary LiDAR.
[0040] The IMU 140 measures motion data of the LiDAR 130. For example, the IMU 140 measures the motion data of the LiDAR 130 when the LiDAR 130 measures the scan data.
[0041] The IMU 140 measures, for example, motion data of the LiDAR 130 indicating rotational motion of the LiDAR 130. The IMU 140 measures, for example, motion data of the LiDAR 130 indicating translational motion of the LiDAR 130. The IMU 140 measures, for example, motion data of the LiDAR 130 indicating both rotational motion and translational motion of the LiDAR 130.
[0042] For example, the center of the IMU 140 is the rotation axis l of the LiDAR 130 when the base unit 120 rotates by the mechanical energy of the motor 150. r For example, the support surface of the support unit 124 is perpendicular to the mounting surface of the mounting unit 122, and the center of the IMU 140 passes through the rotation axis l of the LiDAR 130. In FIG. 1, the center of the IMU 140 passes through the rotation axis l which is parallel to the z-axis. r 10 shows an example of the case where the
[0043] For example, the center line l that passes through the center of IMU140 c is the axis of rotation l r In Figure 1, the center line l c is the rotation axis l r 10 shows an example of a case where the values match.
[0044] The measuring device 100 may further include a camera (not shown). The camera may be mounted at any position on the measuring device 100. The camera is, for example, an RGB camera. The camera may also be an infrared camera.
[0045] The measuring device 100 generates, for example, map data, and the measuring device 100 generates, for example, three-dimensional map data.
[0046] The measuring device 100 generates map data based on, for example, various acquired data. The measuring device 100 generates map data based on, for example, measured measurement data. The measurement data includes, for example, scan data measured by the LiDAR 130. The measurement data includes, for example, motion data of the LiDAR 130 measured by the IMU 140. The measurement data includes, for example, both scan data and motion data of the LiDAR 130. The measuring device 100 may generate map data based on captured image data captured by a camera provided in the measuring device 100.
[0047] The measuring device 100 generates map data using, for example, a SLAM algorithm. The SLAM algorithm is an algorithm that simultaneously performs self-location estimation and map data generation using sensors such as LiDAR and cameras. With the SLAM algorithm, a device whose position changes, such as the measuring device 100, can calculate its own trajectory while creating map data and estimate its own position on the generated map, even in an unknown environment where map data does not exist. Details of generating map data using the SLAM algorithm will be described later.
[0048] The measurement device 100 may generate a pose graph for the measurement device 100. The pose graph for the measurement device 100 is a graph structure that represents the trajectory of the measurement device 100. The measurement device 100 generates the pose graph for the measurement device 100 using, for example, the SLAM algorithm. Note that details of generating the pose graph for the measurement device 100 using the SLAM algorithm will be described later.
[0049] The measuring device 100 may be mounted on a mobile object such as a robot. In this case, the measuring device 100 can be moved without the user of the measuring device 100 having to move the measuring device 100.
[0050] A typical conventional LiDAR, in which the laser light output surface is located on the side and the bottom surface is fixedly arranged so that it is parallel to the horizontal plane, has a horizontal field of view (FOV) of 360 degrees and a vertical FOV of 30 degrees. Because the LiDAR is fixedly arranged and has a narrow vertical FOV, when scanning a structure such as a high-rise building that has a long vertical length with the LiDAR, the LiDAR user must manually tilt the LiDAR to expand the vertical FOV. Therefore, when using the LiDAR to scan a measurement target environment that includes a structure with a long vertical length, the LiDAR user must place a heavy burden on the LiDAR user. For these reasons, it is desirable to reduce the burden on the user when using the LiDAR to scan a measurement target environment that includes a structure with a long vertical length.
[0051] In contrast, in the measurement device 100 according to the present embodiment, the LiDAR 130, which outputs laser light from the output surface 135, is disposed so that its bottom surface is perpendicular to the horizontal plane. In this case, for example, the horizontal FOV of the LiDAR 130 in a stationary state is 30 degrees, and the vertical FOV is 270 degrees. Then, by using the mechanical energy of the motor 150 to rotate the LiDAR 130 about a rotation axis perpendicular to the horizontal plane, the horizontal FOV of the LiDAR 130 can be expanded to 360 degrees without manual operation by the user of the measurement device 100. As described above, by disposing the LiDAR 130 so that its bottom surface is perpendicular to the horizontal plane and so that it can rotate about a rotation axis perpendicular to the horizontal plane, the measurement device 100 according to the present embodiment can ensure the horizontal FOV of the LiDAR while reducing the burden on the user when using the LiDAR to scan a measurement target environment containing structures that are long in the vertical direction. Furthermore, the measurement device 100 according to this embodiment has a structure in which the center of the IMU 140 passes through the rotation axis of the LiDAR 130, and therefore, movement data of the LiDAR 130 that may include the rotational movement of the LiDAR 130 can be measured with high accuracy.
[0052] Fig. 2 shows a schematic diagram of another example of the hardware configuration of the measuring device 100. Here, differences from the measuring device 100 shown in Fig. 1 will be mainly described. Note that in Fig. 2, the box unit 110, motor 150, and slip ring 160 are omitted.
[0053] The IMU 140 may be mounted on the support part 124. The IMU 140 may be mounted, for example, on a support surface of the support part 124. Note that in FIG. 2 , the LiDAR 130 is depicted with dotted lines to indicate that the IMU 140 is mounted on the support part 124.
[0054] The mounting portion 122 and the support portion 124 may be integral, or the mounting portion 122 and the support portion 124 may be separate members.
[0055] For example, the support unit 124 has a gap for mounting the IMU 140 between the LiDAR 130 and the support surface in a state where the LiDAR 130 is supported on the support surface. In this case, the IMU 140 may be mounted in the gap.
[0056] For example, the support surface of the support portion 124 may be parallel to the mounting surface of the mounting portion 122. For example, the support surface of the support portion 124 may be flush with the mounting surface of the mounting portion 122. Fig. 2 illustrates an example in which the support surface of the support portion 124 is flush with the mounting surface of the mounting portion 122 and is perpendicular to the xy plane.
[0057] For example, the center of the IMU 140 is the rotation axis l r For example, the support surface of the support unit 124 is parallel to the mounting surface of the mounting unit 122, and the center of the IMU 140 is parallel to the rotation axis l. r For example, the support surface of the support unit 124 is flush with the mounting surface of the mounting unit 122, and the center of the IMU 140 is located on the same plane as the rotation axis l. r In Figure 2, the center of the IMU 140 passes through a line perpendicular to the z-axis. r 10 shows an example in which the line is perpendicular to the x-axis and parallel to the x-axis.
[0058] For example, the center line c is the axis of rotation l r In Figure 2, the center line l c is the rotation axis l parallel to the z axis r 1 illustrates an example where the plane is perpendicular to the x-axis and parallel to the x-axis.
[0059] 3 is an explanatory diagram for explaining an example of the process flow for generating map data. Here, the example of the process flow for generating map data using the SLAM algorithm will be explained by dividing it into three steps.
[0060] In Step 1, reference data is generated that is referenced when generating map data using the SLAM algorithm. The reference data is generated based on scan data measured by the LiDAR 130 when the base unit 120 is rotating due to the mechanical energy of the motor 150 but is not translating. Note that the scan data measured by the LiDAR 130 when the base unit 120 is rotating due to the mechanical energy of the motor 150 but is not translating may be referred to as first scan data.
[0061] In Step 2, multiple scan data measured by the LiDAR 130 while the base unit 120 is rotating and translating due to the mechanical energy of the motor 150 are grouped together. Note that the scan data measured by the LiDAR 130 while the base unit 120 is rotating and translating due to the mechanical energy of the motor 150 may be referred to as second scan data.
[0062] In Step 3, map data is generated using a SLAM algorithm based on the reference data generated in Step 1 and the multiple second scan data grouped in Step 2. For example, the map data is generated by aligning the second scan data with the reference data. Here, "aligning" means aligning in the coordinate system of the map data. The coordinate system of the map data may also be referred to as map space.
[0063] In Step 3, a pose graph of the measurement device 100 may be further generated using the SLAM algorithm based on the reference data generated in Step 1 and the plurality of second scan data grouped in Step 2.
[0064] 4 is an explanatory diagram for explaining an example of a process for generating reference data. It is assumed that the LiDAR 130 simultaneously outputs two laser beams, a first laser beam and a second laser beam whose output direction is opposite to that of the first laser beam, the rotation speed of the LiDAR 130 is 30 rpm, the scan interval of the LiDAR 130 is 100 ms, and the horizontal FOV of the stationary LiDAR 130 is 30 degrees.
[0065] The range indicated by the dashed line in Fig. 4 is the range of the nth scan. The range indicated by the dashed line in Fig. 4 is the range of the n+1th scan. n is a natural number. Note that the xyz coordinate system in Fig. 4 is the coordinate system of the measurement device 100.
[0066] If the rotation speed of the LiDAR 130 is 30 rpm, the scan interval of the LiDAR 130 is 100 ms, and the horizontal FOV of the stationary LiDAR 130 is 30 degrees, the LiDAR 130 rotates about the rotation axis l between the nth scan and the n+1th scan. r The LiDAR 130 rotates 18 degrees around the center of the nth scan. Therefore, the rotation angle of the LiDAR 130 from the nth scan to the (n+1)th scan is smaller than the horizontal FOV of the LiDAR 130 in a stationary state. Therefore, the range of the nth scan and the range of the (n+1)th scan have an overlapping range. As described above, the LiDAR 130 that simultaneously outputs two laser beams can expand the horizontal FOV to 360 degrees by measuring the first scan data for a period of time longer than the period in which the LiDAR 130 rotates 180 degrees. Note that in FIG. 4, the overlapping range where the range of the nth scan and the range of the (n+1)th scan overlap is indicated by diagonal lines.
[0067] The number of scans that the LiDAR 130 performs during a period in which the LiDAR 130 rotates 180 degrees can be calculated using the following formula. Note that the right side of the following formula is a ceiling function that derives the smallest integer greater than or equal to a certain real number.
[0068]
number
[0069] Since the scan frequency of the LiDAR 130 is the reciprocal of the scan interval of the LiDAR 130, when the scan interval of the LiDAR 130 is 100 ms, the scan frequency of the LiDAR 130 is 10 Hz. By substituting the rotation speed of the LiDAR 130 = 30 rpm and the scan frequency of the LiDAR 130 = 10 Hz into the above equation, it can be derived that when the rotation speed of the LiDAR 130 is 30 rpm and the scan interval of the LiDAR 130 is 100 ms, the number of scans that the LiDAR 130 performs during a period in which the LiDAR 130 rotates 180 degrees is 10.
[0070] The measurement device 100 generates the reference data based on, for example, a plurality of first scan data measured by the LiDAR 130 during a predetermined period and movement data of the LiDAR 130 when the LiDAR 130 measured each of the plurality of first scan data, which is measured during the predetermined period by the IMU 140. The measurement device 100 generates the reference data by, for example, identifying a rotation angle of the LiDAR 130 when the LiDAR 130 measured each of the first scan data based on the movement data of the LiDAR 130 when the LiDAR 130 measured each of the first scan data, and integrating each of the first scan data based on the rotation angle of the LiDAR 130 when the LiDAR 130 measured each of the first scan data.
[0071] The predetermined period may be set so that the horizontal FOV of the LiDAR 130 is 360 degrees. For example, the predetermined period may be set so that it is equal to or greater than the period required for the LiDAR 130, which simultaneously outputs two laser beams, to rotate 180 degrees. For example, if the rotation speed of the LiDAR 130 is 30 rpm, the scan interval of the LiDAR 130 is 100 ms, and the horizontal FOV of the stationary LiDAR 130 is 30 degrees, the predetermined period may be set to 10 seconds, which is longer than the 1 second required for the LiDAR 130 to rotate 180 degrees. In this case, the LiDAR 130 measures the first scan data for five rotations of the LiDAR 130. The predetermined period may also be set to 1 second, which is the period required for the LiDAR 130 to rotate 180 degrees. In this case, the LiDAR 130 measures the first scan data for half a rotation of the LiDAR 130.
[0072] Here, an example of a process of integrating the first scan data measured by the LiDAR 130 for the nth time and the first scan data measured by the LiDAR 130 for the (n+1)th time will be described. n and the rotation angle of the LiDAR 130 when the LiDAR 130 measures the first scan data of the n+1th time is θ n+1 In this case, the measurement device 100 determines whether the LiDAR 130 changes Δθ=θ between the time when the LiDAR 130 measures the n-th first scan data and the time when the LiDAR 130 measures the n+1-th first scan data. n+1 -θ nThe measurement device 100 determines that the LiDAR 130 has rotated by Δθ. Δθ represents the relative rotation angle between the rotation angle of the LiDAR 130 when the LiDAR 130 measured the first scan data the nth time and the rotation angle of the LiDAR 130 when the LiDAR 130 measured the first scan data the n+1th time. Next, the measurement device 100 aligns the first scan data measured by the LiDAR 130 the n+1th time with the first scan data measured by the LiDAR 130 the nth time by applying the inverse rotation matrix of Δθ to the first scan data measured by the LiDAR 130 the n+1th time. Thereafter, the measurement device 100 integrates the first scan data measured by the LiDAR 130 the nth time and the first scan data measured by the LiDAR 130 the n+1th time.
[0073] The LiDAR 130 included in the measurement device 100 is positioned so that its bottom surface is perpendicular to a horizontal plane to increase the vertical FOV. The measurement device 100 rotates the LiDAR 130 to expand the horizontal FOV of the LiDAR 130 to 360 degrees. However, due to the rotational motion of the LiDAR, the overlapping area between two scan data measured adjacently in time by a rotating LiDAR is lower than the overlapping area between two scan data measured adjacently in time by a stationary LiDAR. For a given LiDAR scan interval, the faster the LiDAR's rotation speed, the lower the overlapping area between two scan data measured adjacently in time. Note that "two scan data measured adjacently in time" refers to two scan data measured consecutively in time, such as the nth scan data measured by the LiDAR 130 and the n+1th scan data measured by the LiDAR 130.
[0074] For example, if the rotation speed of the LiDAR 130 is 30 rpm and the scan interval of the LiDAR 130 is 100 ms, as described above, the LiDAR 130 rotates the rotation axis l between the nth scan and the n+1th scan. rIn this case, assuming that the LiDAR 130 is not moving other than rotating, the overlapping range between the range of the nth scan and the range of the n+1th scan is (30 degrees - 18 degrees) ÷ 30 degrees × 100 = 40%.
[0075] When generating map data using the SLAM algorithm, a registration algorithm for aligning scan data, such as the ICP algorithm or the NDT (Normal Distribution Transform) algorithm, is essential. However, if the overlapping area between scan data is low, the stability and reliability of the registration algorithm decreases. Furthermore, a decrease in the stability and reliability of the registration algorithm adversely affects the accuracy of map data generated using the SLAM algorithm. Therefore, in order to generate highly accurate map data using the SLAM algorithm, it is important to increase the stability and reliability of the registration algorithm. Therefore, it is desirable to increase the stability and reliability of the registration algorithm by increasing the overlapping area between scan data measured by a rotating LiDAR.
[0076] In contrast, the measuring device 100 according to this embodiment measures a plurality of first scan data sets using the LiDAR 130 while it is only performing rotational motion before the measuring device 100 starts moving. The measuring device 100 then generates reference data based on the plurality of first scan data sets and the motion data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each of the plurality of first scan data sets. As described above, the measuring device 100 has a structure in which the center of the IMU 140 passes through the rotation axis of the LiDAR 130. Therefore, the measuring device 100 can accurately identify the relative rotation angles between the rotation angles of the LiDAR 130 when the LiDAR 130 measured each of the first scan data sets, thereby generating reference data with high accuracy for aligning the first scan data sets. Then, when an alignment algorithm is executed after the measuring device 100 starts moving, the second scan data sets are aligned with the reference data. Because the reference data is generated based on the plurality of first scan data measured by the LiDAR 130 over a period of time determined so that the horizontal FOV of the LiDAR 130 is 360 degrees or longer, there is a high proportion of overlap between the second scan data and the reference data. Furthermore, because the alignment between the first scan data constituting the reference data is highly accurate, the measuring device 100 can align the second scan data with the highly accurately aligned reference data. As described above, the measuring device 100 according to this embodiment generates reference data before the measuring device 100 starts moving, thereby improving the stability and reliability of the alignment algorithm and contributing to the generation of highly accurate map data using the SLAM algorithm.
[0077] 5 is an explanatory diagram illustrating an example of the relationship between the reference data and the second scan data. Here, it is assumed that the second scan data is measured by the LiDAR 130 immediately after the measurement device 100 starts moving.
[0078] The range indicated by the solid line in Fig. 5 is the range of the reference data. The range indicated by the dotted line in Fig. 5 is the range of the second scan data. The xyz coordinate system in Fig. 5 is the coordinate system of the measurement device 100.
[0079] In the example shown in Figure 5, the range of the reference data encompasses the range of the second scan data, which means that the overlapping range between the reference data and the second scan data shown in Figure 5 is quite high.
[0080] 6 is an explanatory diagram for explaining an example of a process for aligning scan data with reference data. Here, an example of a process for aligning scan data with reference data by the measurement device 100 using the ICP algorithm will be mainly explained. Note that "◯" in FIG. 6 indicates a point P constituting the reference data. r In Fig. 6, "▽" indicates the point P s It is assumed that
[0081] The diagram in the top part of Fig. 6 shows the multiple points P s Each of these is taken as a set of multiple points P r 1 is an explanatory diagram for explaining an example of a process (sometimes referred to as "Process 1") for matching the scan data with any of the above. Here, the explanation will be continued assuming that the measurement device 100 has previously aligned the scan data with the reference data using a RANSAC (Random Sample Consensus) algorithm.
[0082] The measuring device 100 measures, for example, the point P s The point P with the shortest distance in the map space from r By identifying the point P s Point P r The measurement device 100 may, for example, perform a nearest neighbor search to find the point P s The point P with the shortest distance in the map space from r For example, when performing the nearest neighbor search, the measurement apparatus 100 identifies a plurality of points Ps In the example shown in the upper part of FIG. 6, the measurement device 100 detects a point P s1 Point P r1 and match the point P s2 Point P r3 and match the point P s3 Point P r3 and point P s4 Point P r4 and match the point P s5 Point P r4 and point P s6 Point P r6 The explanation will continue assuming that it matches.
[0083] 6 is an explanatory diagram for explaining an example of a process (sometimes referred to as "Process 2") for determining an alignment matrix for aligning scan data with reference data. Here, an example in which measurement device 100 determines an alignment matrix based on the matching result in Process 1 will be mainly described.
[0084] The measurement device 100 measures a plurality of points P s For each of the points P s The point P s The matched point P r , and determines a position error in map space for point P based on the matching result in process 1, and determines a registration matrix so that the sum of the position errors is minimized. The registration matrix includes, for example, a rotation matrix. The registration matrix includes, for example, a translation matrix. In an example shown in the middle of FIG. 6, the measurement device 100 aligns point P based on the matching result in process 1. s1 Point P r1 The position error e1 in the map space for point P s2 Point P r3 The position error e2 in the map space for point P s3 Point P r3 The position error e3 in the map space for point P s4 Point P r4The position error e4 in the map space for point P s5 Point P r4 The position error e5 in map space for point P s6 Point P r6 The sum of the position errors e6 in the map space for total The alignment matrix is determined so that the following equation is minimized:
[0085] 6 is an explanatory diagram illustrating an example of a process (sometimes referred to as "Process 3") for determining whether the positional relationship between the scan data and the reference data satisfies a predetermined termination condition. Here, the description will continue assuming that the measurement device 100 aligns the scan data with the reference data using the alignment matrix determined by Process 2.
[0086] If the measuring device 100 determines that the positional relationship between the scan data and the reference data satisfies the termination condition, it may terminate the process of aligning the scan data with the reference data using the ICP algorithm. On the other hand, if the measuring device 100 determines that the positional relationship between the scan data and the reference data does not satisfy the termination condition, it may execute process 1 again. In this case, the measuring device 100 repeatedly executes processes 1 to 3 until it determines that the positional relationship between the scan data and the reference data satisfies the termination condition.
[0087] The termination condition is, for example, when the scan data point P s and the reference data point P r The sum of the positional errors in the map space with respect to each of the points P of the scan data after the scan data has been aligned with the reference data is smaller than a predetermined error threshold. s The point P with the shortest distance in the map space from r By identifying the point P s Point P rIn the example shown in the bottom of FIG. s1 Point P r1 and match the point P s2 Point P r2 and match the point P s3 Point P r3 and match the point P s4 Point P r4 and match the point P s5 Point P r5 and point P s6 Point P r6 Then, the measurement device 100 may match the point P s1 Point P r1 The position error e'1 in the map space for point P s2 Point P r2 The position error e'2 in the map space for point P s3 Point P r3 The position error e'3 in the map space for point P s4 Point P r4 The position error e'4 in the map space for point P s5 Point P r5 The position error e'5 in the map space for point P s6 Point P r6 The sum of the position errors e'6 in the map space for total If =e'1+e'2+e'3+e'4+e'5+e'6 is smaller than the error threshold, it may be determined that the positional relationship between the scan data and the reference data satisfies the termination condition.
[0088] 7 shows an example of a pose graph of the measurement device 100. Here, each component of the pose graph of the measurement device 100 will be described.
[0089] 7 are vertices of the pose graph of the measurement device 100. The vertices represent the positions of the measurement device 100 when the LiDAR 130 measured the second scan data.
[0090] 7 are odometry edges of the pose graph of the measurement device 100. The odometry edges represent the relative positions between the position of the measurement device 100 when the LiDAR 130 measures the second scan data the ath time and the position of the measurement device 100 when the LiDAR 130 measures the second scan data the (a+1)th time, where a is a natural number.
[0091] The vertex that is the start point of the odometry edge may correspond to the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the a-th time. The vertex that is the end point of the odometry edge may correspond to the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the (a+1)-th time.
[0092] 7 are loop edges in the pose graph of the measurement device 100. A loop edge is an edge that is generated when a loop, which is a circular path, is detected. Note that detecting a loop may be referred to as loop detection.
[0093] The measurement device 100 performs loop detection based on, for example, the position of the measurement device 100 when the LiDAR 130 measured the second scan data. The measurement device 100 detects a loop when, for example, the relative position between the position of the measurement device 100 when the LiDAR 130 measured the second scan data the a-th time (represented by a first vertex) and the position of the measurement device 100 when the LiDAR 130 measured the second scan data the a+α-th time (represented by a second vertex) is shorter than a predetermined relative position threshold. In this case, the vertex that is the start point of the loop edge corresponds to the position of the measurement device 100 when the LiDAR 130 measured the second scan data the a-th time, and the vertex that is the end point of the loop edge corresponds to the position of the measurement device 100 when the LiDAR 130 measured the second scan data the a+α-th time. α is a natural number, and α≧α th Satisfies α th may be the measurement interval threshold.
[0094] In the example pose graph of the measurement device 100 shown in FIG. m is the start point of the loop edge, and vertex Vn is the end point of the loop edge. m represents the position of the measurement device 100 when the LiDAR 130 measures the second scan data for the mth time, and the vertex V n represents the position of the measurement device 100 when the LiDAR 130 measures the second scan data for the nth time. m and n are natural numbers, and the relationship n=m+α holds.
[0095] The measurement device 100 adjusts the pose graph in response to the generation of the loop edge. Note that adjusting the pose graph may be referred to as pose adjustment.
[0096] In the pose adjustment, the position of the measurement device 100 when the LiDAR 130, represented by the vertices, measured the second scan data for the a-th time is a variable. On the other hand, in the pose adjustment, the relative position between the position of the measurement device 100 when the LiDAR 130, represented by the odometry edges, measured the second scan data for the a-th time and the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the (a+1)-th time is a constant.
[0097] For example, the measuring device 100 derives the relative position between the position of the measuring device 100 when the LiDAR 130 measured the second scan data the a+αth time at the position of the measuring device 100 represented by the vertex that is the end point of the loop edge and the position of the measuring device 100 when the LiDAR 130 measured the second scan data the a+αth time by aligning the second scan data measured by the LiDAR 130 the ath time at the position of the measuring device 100 represented by the vertex that is the start point of the loop edge. In an example of a pose graph of the measuring device 100 shown in FIG. 7 , the relative position between the position of the measuring device 100 when the LiDAR 130 measured the second scan data for the mth time and the position of the measuring device 100 when the LiDAR 130 measured the second scan data for the nth time is aligned with an alignment algorithm to derive the relative position between the position of the measuring device 100 when the LiDAR 130 measured the second scan data for the mth time and the position of the measuring device 100 when the LiDAR 130 measured the second scan data for the nth time.
[0098] Next, the measurement device 100 adjusts the vertex that is the end point of the loop edge based on the derived relative position. In the example of the pose graph of the measurement device 100 shown in FIG. 7, the vertex V n vertex V' n Adjust to.
[0099] Thereafter, based on the position of measuring device 100 when the second scan data was measured the (a+α-1)th time, which is represented by the adjusted vertex, and the relative position between the position of measuring device 100 when the second scan data was measured the (a+α-1)th time and the position of measuring device 100 when the second scan data was measured the (a+α-1)th time. Thereafter, the vertices are similarly adjusted in order, such as the vertex representing the position of measuring device 100 when the second scan data was measured the (a+α-2)th time, the vertex representing the position of measuring device 100 when the second scan data was measured the (a+α-3)th time, and so on.
[0100] Pose adjustment optimizes the pose graph. Note that optimizing the pose graph is sometimes referred to as pose graph optimization.
[0101] Fig. 8 shows an example of a pose graph of the measuring device 100 before the pose adjustment and map data corresponding to the pose graph of the measuring device 100 before the pose adjustment. The diagram shown in the upper part of Fig. 8 is an example of the pose graph of the measuring device 100 before the pose adjustment. The diagram shown in the lower part of Fig. 8 is an example of map data corresponding to the pose graph of the measuring device 100 before the pose adjustment.
[0102] The pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 8 is the same as the pose graph of the measuring device 100 shown in Fig. 7. Therefore, a description of the main points regarding the pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 8 will be omitted.
[0103] Point V in the diagram shown in the lower part of Figure 8 m indicates the position in the map space of the measurement device 100 when the LiDAR 130 measures the second scan data for the mth time. m is the vertex V in the pose graph of the measurement device 100 before pose adjustment shown in the upper part of FIG. m Corresponds to.
[0104] Point V in the diagram shown in the lower part of Figure 8 n indicates the position in the map space of the measurement device 100 when the LiDAR 130 measures the second scan data for the nth time. n is the vertex V in the pose graph of the measurement device 100 before pose adjustment shown in the upper part of FIG. n Corresponds to.
[0105] The dotted line in the diagram shown in the lower part of Fig. 8 represents the trajectory in the map space of the measurement device 100. The trajectory in the map space of the measurement device 100 shown in the lower part of Fig. 8 corresponds to the odometry edge of the pose graph of the measurement device 100 before pose adjustment shown in the upper part of Fig. 8.
[0106] In the diagram shown in the lower part of FIG. 8, the area R surrounded by the dashed line m is the range of the m-th scan by the LiDAR 130. In the diagram shown in the lower part of FIG. 8, the area R surrounded by the dashed line n is the range of the nth scan by the LiDAR 130. The thick solid line in the diagram shown in the lower part of FIG.
[0107] According to the pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 8, the loop is not closed at the stage when the loop edge is detected by loop detection. As a result, the same location in the real world exists multiple times on the map data shown in the lower part of Fig. 8.
[0108] Fig. 9 shows an example of a pose graph of the measurement device 100 before and after pose adjustment. The diagram shown in the upper part of Fig. 9 is an example of the pose graph of the measurement device 100 before pose adjustment. The diagram shown in the lower part of Fig. 9 is an example of the pose graph of the measurement device 100 after pose adjustment.
[0109] The pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 9 is the same as the pose graph of the measuring device 100 shown in Fig. 7. Therefore, a description of the main points regarding the pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 9 will be omitted.
[0110] The measurement device 100 performs pose adjustment in response to generating the loop edge. For example, the measurement device 100 adjusts the pose in the region R nThe second scan data measured by the LiDAR 130 for the nth time, which is included in m By aligning the second scan data measured by the LiDAR 130 for the mth time, which is included in the second scan data measured by the LiDAR 130, the relative position between the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the mth time and the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the nth time is derived. Based on the derived relative position, the measurement device 100 locates a vertex V n vertex V' n Then, adjust the vertex V n-1 vertex V' n-1 Adjust to vertex V n-2 vertex V' n-2 Adjust to , , vertex V m+1 vertex V' m+1 Adjust to.
[0111] The black circles in the diagram shown in the lower part of Fig. 9 are vertices of the pose graph of the measurement device 100 after the pose adjustment. The solid lines in the diagram shown in the lower part of Fig. 9 are odometry edges of the pose graph of the measurement device 100 after the pose adjustment.
[0112] Fig. 10 schematically shows an example of a pose graph of the measuring device 100 after the pose adjustment and map data corresponding to the pose graph of the measuring device 100 after the pose adjustment. The diagram shown in the upper part of Fig. 10 is the pose graph of the measuring device 100 after the pose adjustment. The diagram shown in the lower part of Fig. 10 is the map data corresponding to the pose graph of the measuring device 100 after the pose adjustment.
[0113] The pose graph of the measuring device 100 after the pose adjustment shown in the upper part of Fig. 10 is the same as the pose graph of the measuring device 100 after the pose adjustment shown in the lower part of Fig. 9. Therefore, a description of the main points related to the pose graph of the measuring device 100 after the pose adjustment shown in the upper part of Fig. 10 will be omitted.
[0114] Point V in the diagram shown in the lower part of Figure 10m indicates the position in the map space of the measurement device 100 when the LiDAR 130 measures the second scan data for the mth time. m is the vertex V in the pose graph of the measurement device 100 after the pose adjustment shown in the upper part of FIG. m Corresponds to.
[0115] Point V' in the diagram shown in the lower part of Figure 10 n indicates the position in the map space of the measurement device 100 when the LiDAR 130 measures the second scan data for the nth time. n is the vertex V′ in the pose graph of the measurement device 100 after the pose adjustment shown in the upper part of FIG. n Corresponds to.
[0116] The dotted line in the diagram shown in the lower part of Fig. 10 represents the trajectory in the map space of the measurement device 100. The trajectory in the map space of the measurement device 100 shown in the lower part of Fig. 10 corresponds to the odometry edge of the pose graph of the measurement device 100 after the pose adjustment shown in the upper part of Fig. 10.
[0117] According to the pose graph of the measuring device 100 before pose adjustment shown in the upper part of Fig. 10, it can be seen that the loop was closed by the pose adjustment. Therefore, as a result of the pose adjustment, the same location in the real world no longer exists multiple times on the map data shown in the lower part of Fig. 10. From the above, it can be said that the accuracy of the map data is improved by optimizing the pose graph.
[0118] 11 is an explanatory diagram for explaining another example of the process flow for generating map data. Here, an example of the process flow for generating map data using the SLAM algorithm will be explained by dividing it into three steps. It is assumed that the LiDAR 130 simultaneously outputs two laser beams, a first laser beam and a second laser beam whose output direction is opposite to that of the first laser beam, the rotation speed of the LiDAR 130 is 30 rpm, the scan interval of the LiDAR 130 is 100 ms, and the horizontal FOV of the stationary LiDAR 130 is 30 degrees.
[0119] The diagram shown in the upper part of Fig. 11 is an explanatory diagram for explaining Step 1, which is an example of the process of generating reference data. i ' ' is the first scan data measured by the LiDAR 130 for the i-th time, where i is a natural number. Here, the explanation will be continued assuming that the number of scan data constituting the reference data is 50, and that the LiDAR 130 measures the first scan data for 10 seconds.
[0120] Because the scan interval of the LiDAR 130 is 100 ms and the LiDAR 130 measures the first scan data for 10 seconds, the LiDAR 130 measures the first scan data 100 times. Therefore, there are 100 pieces of first scan data. In this case, the 100 pieces of first scan data may be ranked in descending order of the time at which they were measured by the LiDAR 130, and the 50 pieces of first scan data with the highest ranking may be selected to generate reference data.
[0121] The diagram shown in the middle of Fig. 11 is an explanatory diagram for explaining Step 2, which is an example of the process of grouping a plurality of second scan data. j " is the second scan data measured by the LiDAR 130 at the j-th time. k " is the kth group, where j and k are natural numbers.
[0122] The plurality of second scan data are grouped based on, for example, motion data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each piece of the plurality of second scan data. The plurality of second scan data are grouped based on a rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of the second scan data. The second scan data grouped into the same group may be integrated based on the rotation angle of the LiDAR.
[0123] The plurality of second scan data are grouped, for example, so that the horizontal FOV of the LiDAR 130 when the second scan data grouped in the same group is integrated becomes 360 degrees. r For example, if the rotation speed of the LiDAR 130 is 30 rpm and the scan interval of the LiDAR 130 is 100 ms, the second scan data measured during a period of half a rotation around the rotation axis l are grouped into the same group. r Ten pieces of second scan data measured adjacently in time during a period of half a rotation around the center are grouped into the same group.
[0124] For example, each of the second scan data of the plurality of second scan data may be aligned to the reference data. For example, each of the second scan data of the plurality of second scan data may be aligned to the reference data before the plurality of second scan data is grouped. For example, each of the second scan data of the plurality of second scan data may be aligned to the reference data after the plurality of second scan data is grouped.
[0125] The reference data is updated, for example, based on the second scan data aligned with the reference data. The reference data is updated, for example, by ranking the multiple scan data constituting the reference data in descending order of time measured by the LiDAR 130 and replacing the lowest-ranked scan data with the second scan data aligned with the reference data. Updating the reference data may be an example of generating reference data.
[0126] The diagram shown in the lower part of Fig. 11 is an explanatory diagram for explaining Step 3, which is an example of a process for generating map data and a pose graph of the measuring device 100 using the SLAM algorithm. k " is the k-th group formed in Step 2 shown in the middle of FIG.
[0127] The map data is generated for each group based on the plurality of second scan data grouped in Step 2 shown in the middle of Fig. 11. The map data is generated by, for example, aligning the second scan data grouped into the same group with the reference data for each group.
[0128] The reference data is updated, for example, based on the second scan data grouped into a single group and aligned with the reference data. The reference data is updated, for example, by ranking the multiple scan data constituting the reference data in descending order of time measured by the LiDAR 130 and replacing the number of scan data constituting the lowest-ranked group with the second scan data grouped into a single group and aligned with the reference data.
[0129] The pose graph of the measuring device 100 is generated in groups based on, for example, the plurality of second scan data grouped in Step 2 illustrated in the middle of Fig. 11. For example, when the pose graph of the measuring device 100 is generated in groups, the second scan data grouped in the same group are ranked in descending order of the time at which they were measured by the LiDAR 130, and the position of the measuring device 100 when the LiDAR 130 measured the second scan data with the highest ranking is set as the vertex of the pose graph of the measuring device 100.
[0130] By generating map data and the pose graph of the measuring device 100 in groups based on the grouped second scan data, the number of vertices constituting the pose graph of the measuring device 100 can be reduced. This reduces the processing load of the pose graph generation process and pose graph optimization process, while allowing map data to be generated based on scan data measured by a rotating LiDAR. Because the SLAM algorithm is an algorithm that can process a huge number of data items and perform a huge number of calculations, it is important to be able to reduce the processing load of the pose graph generation process and pose graph optimization process.
[0131] 12 schematically illustrates an example of the system 10. The system 10 may include a measurement device 100. The system 10 may include a map data generating device 200.
[0132] The measuring device 100 communicates with, for example, a map data generating device 200. The measuring device 100 communicates with the map data generating device 200 via, for example, a network 20.
[0133] The network 20 includes, for example, a LAN (Local Area Network). The LAN includes, for example, a wireless LAN conforming to standards such as Wi-Fi (registered trademark). The LAN may also include a wired LAN conforming to standards such as Ethernet (registered trademark). The network 20 may also include a mobile communication network. The network 20 may also include the Internet. The network 20 may also include a cable.
[0134] For example, the measuring device 100 transmits various types of data to the map data generation device 200. For example, the measuring device 100 transmits measurement data measured by the measuring device 100 to the map data generation device 200. The measuring device 100 may transmit captured image data captured by a camera provided in the measuring device 100 to the map data generation device 200.
[0135] The map data generation device 200 generates map data. The map data generation device 200 may generate the map data in the same manner as when the measurement device 100 generates the map data.
[0136] The map data generation device 200 generates map data based on, for example, various data acquired from the measuring device 100. The map data generation device 200 acquires various data from the measuring device 100 by, for example, receiving the various data from the measuring device 100 via the network 20.
[0137] The map data generation device 200 generates map data based on, for example, measurement data measured by the measuring device 100. The map data generation device 200 may also generate map data based on captured image data captured by a camera provided in the measuring device 100.
[0138] The map data generation device 200 may generate a pose graph for the measurement device 100. The map data generation device 200 may generate a pose graph for the measurement device 100 in the same manner as when the measurement device 100 generates a pose graph.
[0139] The map data generation device 200 may transmit the various generated data to the measuring device 100 via the network 20. For example, the map data generation device 200 transmits map data to the measuring device 100. The map data generation device 200 may also transmit a pose graph of the measuring device 100 to the measuring device 100.
[0140] 13 shows an example of the functional configuration of the measuring device 100. The measuring device 100 includes a generating unit 101, a storage unit 102, an acquiring unit 104, a grouping unit 106, and a communication unit 108. The generating unit 101 includes a measurement data generating unit 103, a reference data generating unit 105, a map data generating unit 107, and a pose graph generating unit 109. Note that it is not essential that the measuring device 100 include all of these components.
[0141] The storage unit 102 stores various data. The storage unit 102 stores, for example, various thresholds. The storage unit 102 stores, for example, an error threshold. The storage unit 102 stores, for example, a relative position threshold. The storage unit 102 may store a measurement interval threshold. The storage unit 102 may store scan number information indicating the number of scan data that constitute the reference data.
[0142] The acquisition unit 104 acquires various types of data. For example, the acquisition unit 104 acquires various types of data from the LiDAR 130. For example, the acquisition unit 104 acquires various types of data from the IMU 140. The acquisition unit 104 may store the acquired various types of data in the storage unit 102.
[0143] The acquisition unit 104 acquires, for example, a plurality of first scan data measured during a predetermined period by the LiDAR 130. The acquisition unit 104 acquires, for example, motion data of the LiDAR 130 when the LiDAR 130 measured each of the plurality of first scan data measured during the predetermined period by the IMU 140. The acquisition unit 104 may be an example of a first acquisition unit.
[0144] For example, the acquisition unit 104 detects that the LiDAR 130 has a rotation axis l r The acquisition unit 104 acquires a plurality of first scan data measured during a predetermined period of time that is equal to or longer than the period for half a rotation around the rotation axis l, and motion data of the LiDAR 130 measured by the IMU 140 during the predetermined period when the LiDAR 130 measured each of the plurality of first scan data. r The acquisition unit 104 acquires a plurality of first scan data measured during a predetermined period longer than the period for half a rotation around the rotation axis l, and motion data of the LiDAR 130 measured by the IMU 140 during the predetermined period when the LiDAR 130 measured each of the plurality of first scan data. r The IMU 140 may acquire a plurality of first scan data measured during a predetermined period, which is a period of half a rotation around the center of the axis, and movement data of the LiDAR 130 measured by the IMU 140 during the predetermined period when the LiDAR 130 measured each of the plurality of first scan data.
[0145] The acquisition unit 104 acquires, for example, second scan data measured by the LiDAR 130. The acquisition unit 104 acquires, for example, motion data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each piece of the plurality of second scan data. The acquisition unit 104 may be an example of a second acquisition unit.
[0146] The generating unit 101 generates various data. For example, the generating unit 101 generates various data based on various data stored in the storage unit 102. For example, the generating unit 101 generates various data based on various data acquired by the acquisition unit 104. The generating unit 101 may generate various data based on the generated various data. The generating unit 101 may store the generated various data in the storage unit 102.
[0147] The measurement data generation unit 103 generates measurement data. For example, the measurement data generation unit 103 generates the measurement data in response to the LiDAR 130 measuring scan data. The measurement data generation unit 103 may also generate the measurement data in response to the IMU 140 measuring the movement of the LiDAR 130.
[0148] The reference data generating unit 105 generates reference data. The reference data generating unit 105 generates the reference data based on scan data measured by the LiDAR 130, for example.
[0149] The reference data generation unit 105 generates the reference data based on, for example, a plurality of pieces of first scan data measured by the LiDAR 130 and motion data of the LiDAR 130 when the LiDAR 130 measured each piece of the plurality of first scan data, which data is measured by the IMU 140. The reference data generation unit 105 generates the reference data by, for example, identifying a rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of first scan data based on the motion data of the LiDAR 130 when the LiDAR 130 measured each piece of first scan data, and integrating each piece of first scan data based on the rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of first scan data. For example, in a case where the LiDAR 130 measures one piece of first scan data and then measures another piece of first scan data adjacent in time, the reference data generation unit 105 identifies the relative rotation angle between the rotation angle of the LiDAR 130 when the LiDAR 130 measured the one piece of first scan data and the rotation angle of the LiDAR 130 when the LiDAR 130 measured the other piece of first scan data, and integrates the first scan data by aligning the other piece of first scan data with the one piece of first scan data by applying an inverse rotation matrix of the relative rotation angle to the other piece of first scan data.
[0150] The reference data generating unit 105 may generate the reference data by integrating each of the first scan data based on a result of aligning each of the first scan data of the plurality of first scan data using an ICP algorithm. The reference data generating unit 105 may integrate each of the first scan data by, for example, aligning other first scan data measured after one of the first scan data with the first scan data using the ICP algorithm. The reference data generating unit 105 may generate the reference data by integrating each of the first scan data based on a result of aligning each of the first scan data of the plurality of first scan data using an NDT algorithm.
[0151] For example, when the number of the plurality of first scan data is greater than the number of scan data indicated by the scan number information stored in the storage unit 102, the reference data generation unit 105 generates the reference data by selecting the first scan data constituting the reference data from the plurality of first scan data. Here, when the number of scan data indicated by the scan number information is N, r We will continue the explanation assuming that there are N r is a natural number.
[0152] For example, the reference data generating unit 105 ranks the plurality of first scan data in descending order of time measured by the LiDAR 130, and r The reference data generating unit 105 then selects the selected N first scan data as first scan data that constitute the reference data. r The first scan data is integrated to generate reference data.
[0153] The map data generation unit 107 generates map data using, for example, a SLAM algorithm.
[0154] The map data generation unit 107 generates map data based on, for example, the reference data generated by the reference data generation unit 105 and a plurality of second scan data measured by the LiDAR 130. The map data generation unit 107 generates the map data by, for example, aligning the second scan data with the reference data using an ICP algorithm. The map data generation unit 107 may also generate the map data by aligning the second scan data with the reference data using an NDT algorithm.
[0155] The map data generation unit 107 generates the map data further based on, for example, motion data of the LiDAR 130 when the LiDAR 130 measured each of the plurality of second scan data, which data is measured by the IMU 140. The map data generation unit 107, for example, identifies the position of the measuring device 100 and the rotation angle of the LiDAR 130 when the LiDAR 130 measured each of the second scan data, based on the motion data of the LiDAR 130 when the LiDAR 130 measured each of the second scan data, and generates the map data by integrating each of the second scan data based on the position of the measuring device 100 and the rotation angle of the LiDAR 130 when the LiDAR 130 measured each of the second scan data. For example, in a case where the LiDAR 130 measures one piece of second scan data and then measures other pieces of second scan data adjacent in time, the map data generation unit 107 identifies the relative position between the position of the measuring device 100 when the LiDAR 130 measured the one piece of second scan data and the position of the measuring device 100 when the LiDAR 130 measured the other piece of second scan data, and the relative rotation angle between the rotation angle of the LiDAR 130 when the LiDAR 130 measured the one piece of second scan data and the rotation angle of the LiDAR 130 when the LiDAR 130 measured the other piece of second scan data, and integrates the second scan data by applying a translation matrix corresponding to the relative position and an inverse rotation matrix of the relative rotation angle to the other piece of second scan data to align the other piece of second scan data with the one piece of second scan data.
[0156] The reference data generating unit 105 updates the reference data in response to, for example, the map data generating unit 107 aligning the second scan data with the reference data. r The reference data is updated by replacing the scan data measured by the LiDAR 130 earliest among the scan data with the second scan data aligned with the reference data by the map data generation unit 107. The reference data generation unit 105 updates the reference data by, for example, r The reference data is updated by ranking the scan data in descending order of time of measurement by the LiDAR 130 and replacing the lowest-ranked scan data with second scan data aligned with the reference data by the map data generation unit 107. When the reference data generation unit 105 updates the reference data, the map data generation unit 107 may generate map data based on the reference data updated by the reference data generation unit 105 and the plurality of second scan data measured by the LiDAR 130.
[0157] The storage unit 102 may store the updated reference data. The storage unit 102 may also store the pre-update reference data.
[0158] The pose graph generation unit 109 generates a pose graph of the measurement device 100. The pose graph generation unit 109 generates the pose graph of the measurement device 100 using, for example, a SLAM algorithm. The map data generation unit 107 may generate map data further based on the pose graph of the measurement device 100 generated by the pose graph generation unit 109.
[0159] The pose graph generation unit 109 generates a pose graph for the measuring device 100 based on, for example, the reference data generated by the reference data generation unit 105 and a plurality of second scan data measured by the LiDAR 130. The pose graph generation unit 109 generates the pose graph for the measuring device 100 by setting the position of the measuring device 100 when the LiDAR 130 measured the scan data as a vertex of the pose graph for the measuring device 100. For example, when the LiDAR 130 measures one scan data and then measures another scan data adjacent in time, the pose graph generation unit 109 generates the pose graph for the measuring device 100 by setting the relative positions between the position of the measuring device 100 when the LiDAR 130 measured the one scan data and the position of the measuring device 100 when the LiDAR 130 measured the other scan data as odometry edges of the pose graph for the measuring device 100.
[0160] The pose graph generation unit 109 performs loop detection based on, for example, the position of the measurement device 100 when the LiDAR 130 measured each piece of second scan data. The pose graph generation unit 109 detects a loop when, for example, the measurement interval from the time when the LiDAR 130 measured the second scan data at a first vertex of the pose graph of the measurement device 100 to the time when the LiDAR 130 measured the second scan data at a second vertex of the pose graph of the measurement device 100 is longer than the measurement interval threshold stored in the storage unit 102, and the relative position between the position of the measurement device 100 represented by the first vertex and the position of the measurement device 100 represented by the second vertex is shorter than the relative position threshold stored in the storage unit 102.
[0161] The pose graph generation unit 109 may generate a loop edge in response to detecting a loop. Here, the explanation will be continued assuming that the vertex that is the start point of the loop edge is the first vertex, and the vertex that is the end point of the loop edge is the second vertex.
[0162] The pose graph generator 109 may perform pose adjustment in response to generating the loop edge. For example, the pose graph generator 109 derives a relative position between the position of the measurement device 100 represented by the first vertex and the position of the measurement device 100 represented by the second vertex, by aligning the second scan data measured by the LiDAR 130 at the second vertex, which is the end point of the loop edge, with the second scan data measured by the LiDAR 130 at the first vertex, which is the start point of the loop edge. Next, the pose graph generator 109 adjusts the second vertex based on the derived relative position. Thereafter, the pose graph generator 109 sequentially adjusts other vertices of the pose graph of the measurement device 100 that correspond to second scan data measured after the time when the LiDAR 130 measured the second scan data at the first vertex, based on the adjusted second vertex.
[0163] The grouping unit 106 groups the plurality of second scan data measured by the LiDAR 130. The grouping unit 106 groups the plurality of second scan data based on, for example, motion data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each piece of second scan data. The grouping unit 106 groups the plurality of second scan data based on, for example, the rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of second scan data.
[0164] The grouping unit 106 groups the plurality of second scan data so that the FOV in the horizontal direction of the LiDAR 130 becomes 360 degrees when the second scan data grouped into the same group is integrated. r The second scan data measured during a period of half a rotation around N are grouped into the same group, whereby the plurality of second scan data are grouped. gThe following description will be given assuming that N second scan data are grouped into the same group. g Pieces are natural numbers.
[0165] For example, the map data generation unit 107 aligns each piece of second scan data with the reference data before the grouping unit 106 groups the pieces of second scan data. For example, the map data generation unit 107 may align each piece of second scan data with the reference data after the grouping unit 106 groups the pieces of second scan data.
[0166] The map data generation unit 107 generates map data for each group, for example, based on the reference data generated by the reference data generation unit 105 and the plurality of second scan data grouped by the grouping unit 106. The map data generation unit 107 generates map data for each group, for example, by aligning the second scan data grouped into the same group by the grouping unit 106 with the reference data.
[0167] The map data generating unit 107 may generate, for example, N maps grouped into the same group. g The map data generating unit 107 simultaneously aligns the N second scan data with the reference data. g The second scan data may be individually registered to the reference data.
[0168] The reference data generating unit 105 updates the reference data based on, for example, the second scan data grouped into the same group by the grouping unit 106. The reference data generating unit 105 updates the reference data in response to, for example, the map data generating unit 107 aligning the second scan data grouped into the same group with the reference data. The reference data generating unit 105 updates the reference data based on, for example, the N r The scan data are ranked in descending order of the time measured by the LiDAR130, and the N scan data with the lowest ranking are gThe scan data are grouped into the same group by the grouping unit 106 and aligned with the reference data by the map data generating unit 107. g The reference data is updated by replacing it with the second scan data.
[0169] The pose graph generating unit 109 generates a pose graph for the measurement device 100 in units of groups, for example, based on the reference data generated by the reference data generating unit 105 and the plurality of second scan data grouped by the grouping unit 106. For example, the pose graph generating unit 109 generates a pose graph for the measurement device 100 in units of groups based on the reference data generated by the reference data generating unit 105 and the plurality of second scan data grouped by the grouping unit 106. g The pose graph of the measuring device 100 is generated for each group by setting the position of the measuring device 100 when the LiDAR 130 measured the second scan data that was measured earliest among the second scan data as a vertex of the pose graph of the measuring device 100. The pose graph generation unit 109 generates a pose graph of the measuring device 100 for each group by, for example, g The second scan data are ranked in descending order of the time at which they were measured by the LiDAR 130, and the position of the measuring device 100 when the LiDAR 130 measured the second scan data with the highest ranking is set as the vertex of the pose graph of the measuring device 100, thereby generating a pose graph for the measuring device 100 in groups.
[0170] The communication unit 108 communicates with the map data generation device 200. The communication unit 108 communicates with the map data generation device 200 via the network 20, for example.
[0171] The communication unit 108 transmits various data to the map data generation device 200, for example. The communication unit 108 transmits various data generated by the generation unit 101, for example. The communication unit 108 transmits various data stored in the storage unit 102, for example. The communication unit 108 transmits various data acquired by the acquisition unit 104, for example.
[0172] The communication unit 108 receives, for example, various data from the map data generation device 200. The communication unit 108 receives, for example, map data generated by the map data generation device 200. The communication unit 108 may also receive a pose graph of the measuring device 100 generated by the map data generation device 200.
[0173] 14 shows an example of the functional configuration of the map data generation device 200. The map data generation device 200 includes a generation unit 201, a storage unit 202, an acquisition unit 204, a grouping unit 206, and a data transmission unit 208. The generation unit 201 includes a reference data generation unit 205, a map data generation unit 207, and a pose graph generation unit 209. It is not essential that the map data generation device 200 include all of these components.
[0174] The storage unit 202 stores various data. The storage unit 202 stores various data similar to the various data stored by the storage unit 102.
[0175] The acquiring unit 204 acquires various data. The acquiring unit 204 may store the acquired various data in the storage unit 202.
[0176] The acquiring unit 204 acquires various data from, for example, the measurement device 100. The acquiring unit 204 acquires various data from the measurement device 100 by receiving the various data from the measurement device 100 via the network 20, for example.
[0177] The acquisition unit 204 acquires, for example, various data similar to the various data acquired by the acquisition unit 104. The acquisition unit 204 acquires, for example, a plurality of first scan data measured by the LiDAR 130 during a predetermined period. The acquisition unit 204 acquires, for example, motion data of the LiDAR 130 measured by the IMU 140 during the predetermined period, the motion data being the first scan data of the plurality of first scan data when the LiDAR 130 measured the first scan data of the plurality of first scan data. The acquisition unit 204 acquires, for example, second scan data measured by the LiDAR 130. The acquisition unit 204 acquires, for example, motion data of the LiDAR 130 measured by the IMU 140, the motion data being the second scan data of the plurality of second scan data when the LiDAR 130 measured the second scan data of the plurality of second scan data. The acquisition unit 204 may acquire measurement data.
[0178] The acquisition unit 204 may be an example of a first acquisition unit. The acquisition unit 204 may be an example of a second acquisition unit.
[0179] The generating unit 201 generates various data. For example, the generating unit 201 generates various data based on various data stored in the storage unit 202. For example, the generating unit 201 generates various data based on various data acquired by the acquisition unit 204. The generating unit 201 may generate various data based on the generated various data. The generating unit 201 may store the generated various data in the storage unit 202.
[0180] The reference data generation unit 205 generates reference data. The reference data generation unit 205 generates the reference data based on, for example, a plurality of first scan data measured by the LiDAR 130 and motion data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each of the plurality of first scan data. The reference data generation unit 205 may have the same function as the reference data generation unit 105.
[0181] The map data generation unit 207 generates map data using, for example, a SLAM algorithm.
[0182] The map data generation unit 207 generates map data based on, for example, the reference data generated by the reference data generation unit 205 and the plurality of second scan data measured by the LiDAR 130. The map data generation unit 207 may have the same function as the map data generation unit 107.
[0183] The pose graph generation unit 209 generates a pose graph of the measurement device 100. The pose graph generation unit 209 generates the pose graph of the measurement device 100 using, for example, the SLAM algorithm.
[0184] The pose graph generator 209 generates a pose graph of the measurement device 100 based on, for example, the reference data generated by the reference data generator 205 and a plurality of second scan data measured by the LiDAR 130. The pose graph generator 209 may have the same function as the pose graph generator 109.
[0185] The data transmitting unit 208 transmits various data to the measurement device 100 via the network 20. The data transmitting unit 208 transmits various data generated by the generating unit 201 to the measurement device 100, for example.
[0186] 15 schematically illustrates an example of the hardware configuration of a computer 1200 that functions as the measurement device 100 or the map data generation device 200. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of the device according to the above embodiment, or can cause the computer 1200 to perform operations or one or more "parts" associated with the device according to the above embodiment, and / or can cause the computer 1200 to perform a process or steps of the process according to the above embodiment. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.
[0187] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphics controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications interface 1222, a storage device 1224, a DVD drive 1226, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive 1226 may be a DVD-ROM drive, a DVD-RAM drive, or the like. The storage device 1224 may be a hard disk drive, a solid-state drive, or the like. The computer 1200 also includes legacy input / output units such as a ROM 1230 and a keyboard 1242, which are connected to the input / output controller 1220 via an input / output chip 1240.
[0188] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller itself, and causes the image data to be displayed on the display device 1218.
[0189] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive 1226 reads programs or data from a DVD-ROM 1227 or the like and provides them to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.
[0190] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or programs that depend on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, etc.
[0191] The programs are provided by a computer-readable storage medium such as a DVD-ROM 1227 or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, RAM 1214, or ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and causes cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.
[0192] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, the DVD-ROM 1227, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.
[0193] Furthermore, the CPU 1212 may cause all or a necessary portion of a file or database stored in an external recording medium such as the storage device 1224, the DVD drive 1226 (DVD-ROM 1227), an IC card, etc. to be read into the RAM 1214, and may perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write back the processed data to the external recording medium.
[0194] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0195] The above-described programs or software modules may be stored in a computer-readable storage medium on or near the computer 1200. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.
[0196] The blocks in the flowcharts and block diagrams in the present embodiments may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, including integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.
[0197] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.
[0198] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0199] Computer-readable instructions may be provided locally or over a wide area network (WAN) such as a local area network (LAN), the Internet, etc. to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or programmable circuitry, such that the processor or programmable circuitry executes the computer-readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0200] Although the present invention has been described above using embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.
[0201] It should be noted that the execution order of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order. [Explanation of symbols]
[0202] 10 System, 20 Network, 100 Measurement device, 101 Generation unit, 102 Storage unit, 103 Measurement data generation unit, 104 Acquisition unit, 105 Reference data generation unit, 106 Grouping unit, 107 Map data generation unit, 108 Communication unit, 109 Pose graph generation unit, 110 Box unit, 120 Base unit, 121 Bottom unit, 122 Mounting unit, 124 Support unit, 130 LiDAR, 135 Output surface, 140 IMU, 150 Motor, 160 Slip ring, 200 Map data generation device, 201 Generation unit, 202 Storage unit, 204 Acquisition unit, 205 Reference data generation unit, 206 Grouping unit, 207 Map data generation unit, 208 Data transmission unit, 209 Pose graph generation unit, 1200 Computer, 1210 Host controller, 1212 CPU, 1214 RAM, 1216 graphics controller, 1218 display device, 1220 input / output controller, 1222 communication interface, 1224 storage device, 1226 DVD drive, 1227 DVD-ROM, 1230 ROM, 1240 input / output chip, 1242 keyboard
Claims
1. a measurement device comprising: a LiDAR (Light Detection and Ranging); an IMU (Inertial Measurement Unit); a base portion having a mounting portion on which the IMU is mounted and a support portion that supports the LiDAR; and a motor that rotates the base portion, wherein a support surface on which the support portion supports the LiDAR is perpendicular to a mounting surface on which the mounting portion mounts the IMU, and the center of the IMU passes through an axis of rotation of the LiDAR when the base portion rotates due to the mechanical energy of the motor; or a support surface on which the support portion supports the LiDAR is parallel to the mounting surface on which the mounting portion mounts the IMU, and the center of the IMU passes through a line that is perpendicular to the axis of rotation of the LiDAR when the base portion rotates due to the mechanical energy of the motor; a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period in a state in which the base unit is rotating and not translating due to the mechanical energy of the motor, and motion data of the LiDAR when the LiDAR measured each of the plurality of first scan data, measured by the IMU during the predetermined period, in order to generate reference data that is referenced when generating map data using a SLAM (Simultaneous Localization and Mapping) algorithm; a reference data generation unit that generates the reference data based on the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data; a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR while the base unit is rotating and translating due to the mechanical energy of the motor; a map data generating unit that generates the map data based on the reference data generated by the reference data generating unit and the plurality of second scan data; A system comprising:
2. The LiDAR outputs a first laser light having an output direction corresponding to a direction of a first vector included in a plane perpendicular to the support surface, and a second laser light having an output direction corresponding to a direction of a second vector included in a plane perpendicular to the support surface and having an opposite direction to the first vector; The first acquisition unit acquires the plurality of first scan data measured during the predetermined period that is equal to or longer than a period for the LiDAR to rotate halfway around the rotation axis, and the movement data of the LiDAR when the LiDAR measured each of the first scan data. The system of claim 1 .
3. 2. The system of claim 1, wherein the reference data generation unit generates the reference data by identifying the rotation angle of the LiDAR when the LiDAR measured each of the first scan data based on the movement data of the LiDAR when the LiDAR measured each of the first scan data, and integrating each of the first scan data based on the rotation angle of the LiDAR when the LiDAR measured each of the first scan data.
4. 4. The system of claim 3, wherein the reference data generator generates the reference data by integrating the first scan data based on a result of aligning the first scan data using an Iterative Closest Point (ICP) algorithm.
5. The second acquisition unit further acquires motion data of the LiDAR measured by the IMU when the LiDAR measured each of the plurality of second scan data, The system comprises: A grouping unit that groups the plurality of second scan data based on the movement data of the LiDAR when the LiDAR measured each of the plurality of second scan data. Furthermore, the map data generating unit generates the map data by aligning the second scan data grouped into the same group by the grouping unit with the reference data; A system according to any one of claims 1 to 4.
6. The LiDAR outputs a first laser light having an output direction corresponding to a direction of a first vector included in a plane perpendicular to the support surface, and a second laser light having an output direction corresponding to a direction of a second vector included in a plane perpendicular to the support surface and having an opposite direction to the first vector; The grouping unit groups the plurality of second scan data by grouping the second scan data measured during a period in which the LiDAR rotates halfway around the rotation axis into the same group. The system of claim 5.
7. the reference data generation unit updates the reference data based on the second scan data grouped into the same group by the grouping unit; the map data generation unit generates the map data based on the reference data updated by the reference data generation unit and the plurality of second scan data. The system of claim 5.
8. a pose graph generation unit that generates, for each group, a pose graph that represents a trajectory of the measuring device in a graph structure based on the reference data generated by the reference data generation unit and the plurality of second scan data grouped by the grouping unit. Furthermore, the map data generation unit generates the map data further based on the pose graph generated by the pose graph generation unit. The system of claim 5.
9. The second acquisition unit further acquires motion data of the LiDAR measured by the IMU when the LiDAR measured each of the plurality of second scan data, The map data generation unit generates the map data further based on the movement data of the LiDAR when the LiDAR measured each of the plurality of second scan data. A system according to any one of claims 1 to 4.
10. LiDAR and IMU and a base portion having a mounting portion for mounting the IMU and a support portion for supporting the LiDAR; a motor that rotates the base portion; Equipped with The support surface on which the support portion supports the LiDAR is perpendicular to the mounting surface on which the mounting portion mounts the IMU, and the center of the IMU passes through the rotation axis of the LiDAR when the base portion rotates due to the mechanical energy of the motor, or The support surface on which the support part supports the LiDAR is parallel to the mounting surface on which the mounting part mounts the IMU, and the center of the IMU passes through a straight line perpendicular to the rotation axis of the LiDAR when the base part rotates by the mechanical energy of the motor. Measuring equipment.
11. a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period in a state in which the base unit is rotating and not translating due to the mechanical energy of the motor, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the first scan data of the plurality of first scan data, in order to generate reference data that is referenced when generating map data using a SLAM algorithm; a reference data generation unit that generates the reference data based on the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data; a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR while the base unit is rotating and translating due to the mechanical energy of the motor; a map data generating unit that generates the map data based on the reference data generated by the reference data generating unit and the plurality of second scan data; The measurement device of claim 10 further comprising:
12. a LiDAR, an IMU, a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR, and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit mounts the IMU, and a center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, or a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit mounts the IMU, and a center of the IMU passes through a line that is perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, a first acquisition unit that acquires a plurality of first scan data measured by the LiDAR during a predetermined period while the base unit is rotating and not translating due to the mechanical energy of the motor, and motion data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the first scan data of the plurality of first scan data, in order to generate reference data that is referenced when generating the map data; a reference data generation unit that generates the reference data based on the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data; a second acquisition unit that acquires a plurality of second scan data measured by the LiDAR while the base unit is rotating and translating due to the mechanical energy of the motor; a map data generating unit that generates the map data based on the reference data generated by the reference data generating unit and the plurality of second scan data; A map data generating device comprising:
13. A map data generation method executed by a measurement device comprising: a LiDAR; an IMU; a base unit having a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR; and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit mounts the IMU, and the center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit mounts the IMU, and the center of the IMU passes through a line that is perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, a first acquisition step of acquiring a plurality of first scan data measured by the LiDAR during a predetermined period while the base portion is rotating and not translating due to the mechanical energy of the motor, and movement data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, in order to generate reference data to be referenced when generating map data using a SLAM algorithm; a reference data generation step of generating the reference data based on the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data; a second acquisition step of acquiring a plurality of second scan data measured by the LiDAR while the base portion is rotating and translating due to the mechanical energy of the motor; a map data generating step of generating the map data based on the reference data generated in the reference data generating step and the plurality of second scan data; A map data generation method comprising:
14. A program for causing a computer to execute the map data generating method according to claim 13.
15. a base unit having a LiDAR, an IMU, a mounting unit on which the IMU is mounted and a support unit that supports the LiDAR; and a motor that rotates the base unit, wherein a support surface on which the support unit supports the LiDAR is perpendicular to a mounting surface on which the mounting unit mounts the IMU, and a center of the IMU passes through an axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, or a support surface on which the support unit supports the LiDAR is parallel to the mounting surface on which the mounting unit mounts the IMU, and a center of the IMU passes through a line that is perpendicular to the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor, a first acquisition step of acquiring a plurality of first scan data measured by the LiDAR during a predetermined period while the base portion is rotating and not translating due to the mechanical energy of the motor, and movement data of the LiDAR measured by the IMU during the predetermined period when the LiDAR measured each of the plurality of first scan data, in order to generate reference data to be referenced when generating the map data; a reference data generation step of generating the reference data based on the plurality of first scan data and the movement data of the LiDAR when the LiDAR measured each of the first scan data; a second acquisition step of acquiring a plurality of second scan data measured by the LiDAR while the base portion is rotating and translating due to the mechanical energy of the motor; a map data generating step of generating the map data based on the reference data generated in the reference data generating step and the plurality of second scan data; A map data generation method comprising:
16. A program for causing a computer to execute the map data generating method according to claim 15.
Citation Information
Patent Citations
Three-dimensional laser scanner based on rotatable single-line laser radar
CN113777580A
Lidar device, system, and method for controlling the same
CN114667462A
Laser radar measuring device , vehicle equipment
CN208172246U
Vehicles with Multiple Light Detection and Ranging Devices (LIDAR)
JP2018517889A
Integrated Movement Measurement Unit
US20200271689A1