JP7770696B2 - System, measuring device, map data generating device, map data generating method and program - Google Patents
System, measuring device, map data generating device, map data generating method and programInfo
- Publication number
- JP7770696B2 JP7770696B2 JP2023187612A JP2023187612A JP7770696B2 JP 7770696 B2 JP7770696 B2 JP 7770696B2 JP 2023187612 A JP2023187612 A JP 2023187612A JP 2023187612 A JP2023187612 A JP 2023187612A JP 7770696 B2 JP7770696 B2 JP 7770696B2
- Authority
- JP
- Japan
- Prior art keywords
- lidar
- data
- unit
- scan data
- measured
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Optical Radar Systems And Details Thereof (AREA)
Description
本発明は、システム、測定装置、地図データ生成装置、地図データ生成方法及びプログラムに関する。 The present invention relates to a system, a measurement device, a map data generation device, a map data generation method, and a program.
特許文献1には、衛星測位とSLAM(Simultaneous Localization and Mapping)とを適切に使い分けて、種々の環境下において、安定した自動走行を実現させる自動走行システムが記載されている。
[先行技術文献]
[特許文献]
[特許文献1]特開2022-146457号公報
Patent Document 1 describes an automated driving system that realizes stable automated driving in various environments by appropriately using satellite positioning and SLAM (Simultaneous Localization and Mapping).
[Prior art documents]
[Patent Documents]
[Patent Document 1] JP 2022-146457 A
本発明の一実施態様によれば、システムが提供される。前記システムは、LiDAR(Light Detection And Ranging)と、IMU(Inertial Measurement Unit)と、前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部と、前記ベース部を回転させるモータとを有し、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面に対して垂直であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通る、又は、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通る、測定装置を備えてよい。前記システムは、SLAMアルゴリズムを用いて地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARよって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得部を備えてよい。前記システムは、前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部を備えてよい。前記システムは、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARよって測定された複数の第2スキャンデータを取得する第2取得部を備えてよい。前記システムは、前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部を備えてよい。 According to one embodiment of the present invention, a system is provided. The system may include a measurement device including a LiDAR (Light Detection and Ranging), an IMU (Inertial Measurement Unit), a base having a mounting portion on which the IMU is mounted and a support portion supporting the LiDAR, and a motor for rotating the base, 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 wherein 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 perpendicular to the axis of rotation of the LiDAR when the base portion 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 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, 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 by the LiDAR during the predetermined period. 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 and translating due to the mechanical energy of the motor. 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.
前記システムにおいて、前記LiDARは、前記支持面に対して垂直な平面に含まれる第1ベクトルの向きを出力方向とする第1レーザ光と、前記支持面に対して垂直な平面に含まれ、且つ、前記第1ベクトルと向きが反対である第2ベクトルの向きを出力方向とする第2レーザ光とを出力してよく、前記第1取得部は、前記LiDARが前記回転軸を中心に半回転する期間以上の前記予め定められた期間の間に測定された、前記複数の第1スキャンデータと前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとを取得してよい。 In the system, the LiDAR may output a first laser light whose output direction is the direction of a first vector contained in a plane perpendicular to the support surface, and a second laser light whose output direction is the direction of a second vector contained in a plane perpendicular to the support surface and opposite to the direction of the first vector, and the first acquisition unit may acquire the plurality of first scan data measured during the predetermined period that is equal to or longer than the period for the LiDAR to rotate half a revolution around the rotation axis, and the movement data of the LiDAR when the LiDAR measured each of the first scan data.
前記いずれかのシステムにおいて、前記参照データ生成部は、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データに基づいて前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの回転角度を特定し、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記回転角度に基づいて前記各第1スキャンデータを統合することによって、前記参照データを生成してよい。 In any of the above systems, the reference data generation unit may generate 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.
前記いずれかのシステムにおいて、前記参照データ生成部は、ICP(Iterative Closest Point)アルゴリズムによって前記各第1スキャンデータを位置合わせした結果にさらに基づいて前記各第1スキャンデータを統合することによって、前記参照データを生成してよい。 In any of the above systems, the reference data generation unit may generate the reference data by integrating the first scan data based on the results of aligning the first scan data using an ICP (Iterative Closest Point) algorithm.
前記いずれかのシステムにおいて、前記第2取得部は、前記IMUによって測定された、前記LiDARが前記複数の第2スキャンデータの各第2スキャンデータを測定したときの前記LiDARの運動データをさらに取得してよく、前記システムは、前記LiDARが前記複数の第2スキャンデータの前記各第2スキャンデータを測定したときの前記LiDARの前記運動データに基づいて、前記複数の第2スキャンデータをグループ化するグルーピング部をさらに備えてよく、前記地図データ生成部は、前記グルーピング部によって同一グループにグループ化された第2スキャンデータを前記参照データに位置合わせすることによって、前記地図データを生成してよい。 In any of the above systems, the second acquisition unit may further acquire movement 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 movement 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 with the reference data.
前記いずれかのシステムにおいて、前記LiDARは、前記支持面に対して垂直な平面に含まれる第1ベクトルの向きを出力方向とする第1レーザ光と、前記支持面に対して垂直な平面に含まれ、且つ、前記第1ベクトルと向きが反対である第2ベクトルの向きを出力方向とする第2レーザ光とを出力してよく、前記グルーピング部は、前記LiDARが前記回転軸を中心に半回転する期間の間に測定された第2スキャンデータを同一グループにグループ化することによって、前記複数の第2スキャンデータをグループ化してよい。 In any of the above systems, the LiDAR may output a first laser beam having an output direction aligned with a first vector contained in a plane perpendicular to the support surface, and a second laser beam having an output direction aligned with a second vector contained 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 the second scan data measured during a period in which the LiDAR makes one-half rotation around the rotation axis into the same group.
前記いずれかのシステムにおいて、前記参照データ生成部は、前記グルーピング部によって同一グループにグループ化された第2スキャンデータに基づいて、前記参照データを更新してよく、前記地図データ生成部は、前記参照データ生成部によって更新された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成してよい。 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.
前記いずれかのシステムは、前記参照データ生成部によって生成された前記参照データと、前記グルーピング部によってグループ化された前記複数の第2スキャンデータとに基づいて、前記測定装置の軌跡をグラフ構造で表現したポーズグラフをグループ単位で生成するポーズグラフ生成部をさらに備えてよく、前記地図データ生成部は、前記ポーズグラフ生成部によって生成された前記ポーズグラフにさらに基づいて、前記地図データを生成してよい。 Any of the above systems may further include a pose graph generation unit that generates a pose graph that represents the trajectory of the measuring device in a graph structure for each group 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.
前記いずれかのシステムにおいて、前記第2取得部は、前記IMUによって測定された、前記LiDARが前記複数の第2スキャンデータの各第2スキャンデータを測定したときの前記LiDARの運動データをさらに取得してよく、前記地図データ生成部は、前記LiDARが前記複数の第2スキャンデータの前記各第2スキャンデータを測定したときの前記LiDARの前記運動データにさらに基づいて、前記地図データを生成してよい。 In any of the above systems, the second acquisition unit may further acquire movement 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 movement data of the LiDAR when the LiDAR measured each of the second scan data of the plurality of second scan data.
本発明の一実施態様によれば、測定装置が提供される。前記測定装置は、LiDARを備えてよい。前記測定装置は、IMUを備えてよい。前記測定装置は、前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部を備えてよい。前記測定装置は、前記ベース部を回転させるモータを備えてよい。前記支持部が前記LiDARを支持する支持面は、前記搭載部が前記IMUを搭載する搭載面に対して垂直であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通ってよい、又は、前記支持部が前記LiDARを支持する支持面は、前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通ってよい。 According to one embodiment of the present invention, a measurement device is provided. The measurement device may include a LiDAR. The measurement device may include an IMU. The measurement device may include a base having a mounting portion on which the IMU is mounted and a support portion that supports the LiDAR. The measurement device may include a motor that rotates the base. The support surface on which the support portion supports the LiDAR may be perpendicular to the mounting surface on which the mounting portion mounts the IMU, and the center of the IMU may pass through the axis of rotation of the LiDAR when the base portion rotates due to the mechanical energy of the motor, or the support surface on which the support portion supports the LiDAR may be parallel to the mounting surface on which the mounting portion mounts the IMU, and the center of the IMU may pass through a line perpendicular to the axis of rotation of the LiDAR when the base portion rotates due to the mechanical energy of the motor.
前記測定装置は、SLAMアルゴリズムを用いて地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARよって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得部と、前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部と、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARよって測定された複数の第2スキャンデータを取得する第2取得部と、前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部とをさらに備えてよい。 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 while the base portion is rotating and not translating due to the mechanical energy of the motor, and movement 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 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 portion 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.
本発明の一実施態様によれば、LiDARと、IMUと、前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部と、前記ベース部を回転させるモータとを有し、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面に対して垂直であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通る、又は、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通る、測定装置によって測定された測定データに基づいて、SLAMアルゴリズムを用いて地図データを生成する地図データ生成装置が提供される。前記地図データ生成装置は、前記地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARよって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得部を備えてよい。前記地図データ生成装置は、前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部を備えてよい。前記地図データ生成装置は、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARよって測定された複数の第2スキャンデータを取得する第2取得部を備えてよい。前記地図データ生成装置は、前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部を備えてよい。 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 the support surface on which the support unit supports the LiDAR is perpendicular to the mounting surface on which the mounting unit mounts the IMU, and the center of the IMU passes through the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or the 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 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 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 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 measured by the LiDAR during the predetermined period. The map data generation device may include 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. The map data generation device 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.
本発明の一実施態様によれば、LiDARと、IMUと、前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部と、前記ベース部を回転させるモータとを有し、前記支持部が前記LiDARを支持する支持面は、前記搭載部が前記IMUを搭載する搭載面に対して垂直であり、前記IMUの中心は、前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通る、又は、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通る、測定装置によって実行される地図データ生成方法が提供される。前記地図データ生成方法は、SLAMアルゴリズムを用いて地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARよって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得段階を備えてよい。前記地図データ生成方法は、前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成段階を備えてよい。前記地図データ生成方法は、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARよって測定された複数の第2スキャンデータを取得する第2取得段階を備えてよい。前記地図データ生成方法は、前記参照データ生成段階で生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成段階を備えてよい。 According to one embodiment of the present invention, there is provided a map data generation method executed by a measurement device comprising: a LiDAR; an IMU; a base having a mounting portion on which the IMU is mounted and a support portion supporting the LiDAR; and a motor for rotating the base, wherein 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 axis of rotation of the LiDAR when the base portion rotates due to the mechanical energy of the motor; or the 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 perpendicular to the axis of rotation of the LiDAR when the base portion 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 portion is rotating due to the 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, 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 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 portion is rotating due to the mechanical energy of the motor and is moving in a translational manner. The map data generation method may include a map data generation step of generating the map data based on the reference data generated in the reference data generation step and the plurality of second scan data.
本発明の一実施態様によれば、コンピュータに、前記地図データ生成方法を実行させるためのプログラムが提供される。 According to one embodiment of the present invention, a program for causing a computer to execute the map data generation method is provided.
本発明の一実施態様によれば、LiDARと、IMUと、前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部と、前記ベース部を回転させるモータとを有し、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面に対して垂直であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通る、又は、前記支持部が前記LiDARを支持する支持面は前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通る、測定装置によって測定された測定データに基づいて、SLAMアルゴリズムを用いて地図データを生成する地図データ生成装置によって実行される地図データ生成方法が提供される。前記地図データ生成方法は、前記地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARよって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得段階を備えてよい。前記地図データ生成方法は、前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成段階を備えてよい。前記地図データ生成方法は、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARよって測定された複数の第2スキャンデータを取得する第2取得段階を備えてよい。前記地図データ生成方法は、前記参照データ生成段階で生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成段階を備えてよい。 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 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 the support surface on which the support unit supports the LiDAR is perpendicular to the mounting surface on which the mounting unit mounts the IMU, and the center of the IMU passes through the axis of rotation of the LiDAR when the base unit rotates due to the mechanical energy of the motor; or the 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 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 portion 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, 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 portion is rotating and translating due to the mechanical energy of the motor. The map data generation method may include a map data generation step of generating the map data based on the reference data generated in the reference data generation step and the plurality of second scan data.
本発明の一実施態様によれば、コンピュータに、前記地図データ生成方法を実行させるためのプログラムが提供される。 According to one embodiment of the present invention, a program for causing a computer to execute the map data generation method is provided.
尚、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。 Note that the above summary of the invention does not list all of the necessary features of the present invention. Also, subcombinations of these features may also constitute inventions.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the invention as defined by the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
図1は、測定装置100のハードウェア構成の一例を概略的に示す。測定装置100は、ボックス部110、ベース部120、LiDAR130、IMU140、モータ150、及びスリップリング160を備える。測定装置100は、不図示のCPU(Central Processing Unit)等の演算処理装置をさらに備えてよい。尚、測定装置100がこれらの全ての構成を含むことは必須とは限らない。 Figure 1 shows an example of the hardware configuration of the 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 CPU (Central Processing Unit) (not shown). Note that it is not essential for the measuring device 100 to include all of these components.
ボックス部110は、各種デバイスを収容する。ボックス部110は、例えば、ベース部120を回転させるモータ150を収容する。ボックス部110は、例えば、ベース部120とモータ150とを接続するスリップリング160を収容する。 The box section 110 houses various devices. For example, the box section 110 houses a motor 150 that rotates the base section 120. The box section 110 houses, for example, a slip ring 160 that connects the base section 120 and the motor 150.
ボックス部110の上面には、ベース部120が配置されていてよい。例えば、ベース部120がボックス部110に配置される配置面は、水平面と平行な面である。図1では、ベース部120の配置面が、xy平面と平行な面である場合の一例を図示している。尚、図1におけるxyz座標系は、測定装置100の座標系である。 A base unit 120 may be disposed on the upper surface of the box unit 110. For example, the surface on which the base unit 120 is disposed on the box unit 110 is a surface parallel to the horizontal plane. Figure 1 illustrates an example in which the surface on which the base unit 120 is disposed is a surface parallel to the xy plane. Note that the xyz coordinate system in Figure 1 is the coordinate system of the measurement device 100.
ボックス部110は、不図示のハンドグリップを有してもよい。測定装置100のユーザは、ハンドグリップで測定装置100を保持した状態で移動することによって、測定装置100を移動させてよい。 The box unit 110 may have a hand grip (not shown). A user of the measuring device 100 may move the measuring device 100 by holding the measuring device 100 by the hand grip.
ベース部120は、搭載部122を有してよい。搭載部122は、IMU140を搭載してよい。例えば、搭載部122がIMU140を搭載する搭載面は、ベース部120の配置面と平行な面である。図1では、搭載部122の搭載面がxy平面と平行な面である場合の一例を図示している。 The base unit 120 may have a mounting unit 122. The mounting unit 122 may mount the IMU 140. For example, the mounting surface of the mounting unit 122 on which the IMU 140 is mounted is a plane parallel to the placement surface of the base unit 120. Figure 1 illustrates an example in which the mounting surface of the mounting unit 122 is a plane parallel to the xy plane.
搭載部122の搭載面は、例えば、ベース部120の底面部121から突出している。搭載部122の搭載面は、底面部121から突出していなくてもよい。図1では、搭載部122の搭載面が底面部121からz軸の正方向に突出している場合の一例を図示している。 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. Figure 1 shows 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.
搭載部122及び底面部121は一体であってよい。搭載部122及び底面部121は異なる部材であってもよい。 The mounting portion 122 and the bottom portion 121 may be integrated. The mounting portion 122 and the bottom portion 121 may also be separate components.
ベース部120は、支持部124を有してよい。支持部124は、LiDAR130を支持してよい。例えば、支持部124がLiDAR130を支持する支持面は、ベース部120の配置面に対して垂直である。例えば、支持部124の支持面は、底面部121に対して垂直である。例えば、支持部124の支持面は、搭載部122の搭載面に対して垂直である。図1では、支持部124の支持面がxy平面に対して垂直な面である場合の一例を図示している。 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 placement 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. Figure 1 illustrates an example in which the support surface of the support unit 124 is perpendicular to the xy plane.
ベース部120は、例えば、回転運動する。ベース部120は、例えば、スリップリング160を介してモータ150から取得した機械的エネルギーで回転運動する。 The base unit 120, for example, rotates. The base unit 120, for example, rotates using mechanical energy obtained from the motor 150 via the slip ring 160.
ベース部120は、例えば、回転軸を中心に時計回りに回転運動する。ベース部120は、例えば、回転軸を中心に反時計回りに回転運動する。図1では、ベース部120がz軸と平行な回転軸を中心にxy平面内で回転運動する場合の一例を図示している。 The base unit 120 rotates, for example, clockwise around the rotation axis. The base unit 120 rotates, for example, counterclockwise around the rotation axis. Figure 1 shows an example in which the base unit 120 rotates in the xy plane around a rotation axis parallel to the z axis.
ベース部120は、例えば、予め定められた回転速度で回転運動する。ベース部120は、例えば、30rpm(revolutions per minute)の回転速度で回転運動する。ベース部120は、その他の任意の回転速度で回転運動してもよい。 The base unit 120 rotates at a predetermined rotational speed, for example. The base unit 120 rotates at a rotational speed of 30 rpm (revolutions per minute), for example. The base unit 120 may rotate at any other rotational speed.
LiDAR130は、レーザ光を出力し、反射点で反射されたレーザ光の反射光に基づいてレーザ光の出力位置と反射点との間の距離を測定してよい。例えば、LiDAR130は、レーザ光の伝搬速度がc[m/s]である場合において、レーザ光の出力時刻から反射光の受光時刻までの時間がt[s]である場合、レーザ光の出力位置と反射点との間の距離をx[m]とすると、x[m]=1/2×t[s]×c[m/s]から、レーザ光の出力位置と反射点との間の距離を測定する。 LiDAR130 may output laser light and measure the distance between the output position of the laser light and the reflection point based on the reflected light of the laser light reflected at the reflection point. For example, if the propagation speed of the laser light is c [m/s], and the time from the time the laser light is output to the time the reflected light is received is t [s], and the distance between the output position of the laser light and the reflection point is x [m], LiDAR130 measures the distance between the output position of the laser light and the reflection point using x [m] = 1/2 × t [s] × c [m/s].
LiDAR130は、レーザ光の出力位置と各反射点との間の距離を測定することによって、各反射点の集合で構成される点群データを取得してよい。ここでは、LiDAR130が点群データを取得することが、LiDAR130がスキャンを実行することであるものとする。尚、点群データをスキャンデータと記載する場合がある。 LiDAR130 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 LiDAR130 is considered to be performing a scan by LiDAR130. Note that point cloud data may also be referred to as scan data.
LiDAR130は、例えば、予め定められたスキャン間隔でスキャンを実行する。LiDAR130は、例えば、100msのスキャン間隔でスキャンを実行する。LiDAR130は、その他の任意のスキャン間隔でスキャンを実行してもよい。 LiDAR130 performs scans at, for example, a predetermined scan interval. LiDAR130 performs scans at, for example, a scan interval of 100 ms. LiDAR130 may also perform scans at any other scan interval.
LiDAR130は、例えば、出力面135からレーザ光を出力する。LiDAR130は、例えば、出力面135から複数のレーザ光を出力する。LiDAR130は、例えば、支持部124の支持面に対して垂直な平面に含まれる第1ベクトルの向きを出力方向とする第1レーザ光と、支持部124の支持面に対して垂直な平面に含まれ且つ第1ベクトルと向きが反対である第2ベクトルの向きを出力方向とする第2レーザ光とを出力する。 LiDAR 130 outputs laser light from, for example, output surface 135. LiDAR 130 outputs multiple laser light beams from, for example, output surface 135. LiDAR 130 outputs, for example, a first laser light beam whose output direction is the direction of a first vector contained in a plane perpendicular to the support surface of support portion 124, and a second laser light beam whose output direction is the direction of a second vector contained in a plane perpendicular to the support surface of support portion 124 and has a direction opposite to that of the first vector.
LiDAR130は、例えば、円筒形状を有する。この場合、LiDAR130は、円筒の側面である出力面135からレーザ光を出力する。LiDAR130は、その他の任意の形状を有してもよい。 LiDAR 130 has, for example, a cylindrical shape. In this case, LiDAR 130 outputs laser light from output surface 135, which is the side surface of the cylinder. LiDAR 130 may also have any other shape.
LiDAR130は、例えば、赤外線領域の波長のレーザ光を出力するレーザ光源を含む。LiDAR130は、例えば、可視光領域の波長のレーザ光を出力するレーザ光源を含む。LiDAR130は、紫外線領域の波長のレーザ光を出力するレーザ光源を含んでもよい。 LiDAR130 includes, for example, a laser light source that outputs laser light with a wavelength in the infrared region. LiDAR130 includes, for example, a laser light source that outputs laser light with a wavelength in the visible light region. LiDAR130 may also include a laser light source that outputs laser light with a wavelength in the ultraviolet region.
LiDAR130は、モータ150の機械的エネルギーで回転運動するベース部120と一体となって回転運動してよい。したがって、LiDAR130は、回転式LiDARであってよい。 The LiDAR 130 may rotate integrally with the base 120, which rotates using the mechanical energy of the motor 150. Therefore, the LiDAR 130 may be a rotating LiDAR.
IMU140は、LiDAR130の運動データを測定する。IMU140は、例えば、LiDAR130がスキャンデータを測定したときのLiDAR130の運動データを測定する。 IMU 140 measures the movement data of LiDAR 130. For example, IMU 140 measures the movement data of LiDAR 130 when LiDAR 130 measures scan data.
IMU140は、例えば、LiDAR130の回転運動を示すLiDAR130の運動データを測定する。IMU140は、例えば、LiDAR130の並進運動を示すLiDAR130の運動データを測定する。IMU140は、例えば、LiDAR130の回転運動及び並進運動の両方を示すLiDAR130の運動データを測定する。 The IMU 140 measures, for example, motion data of the LiDAR 130 indicating the rotational motion of the LiDAR 130. The IMU 140 measures, for example, motion data of the LiDAR 130 indicating the translational motion of the LiDAR 130. The IMU 140 measures, for example, motion data of the LiDAR 130 indicating both the rotational motion and translational motion of the LiDAR 130.
例えば、IMU140の中心は、ベース部120がモータ150の機械的エネルギーで回転運動するときのLiDAR130の回転軸lrを通る。例えば、支持部124の支持面は、搭載部122の搭載面に対して垂直であり、且つ、IMU140の中心はLiDAR130の回転軸を通る。図1では、IMU140の中心がz軸と平行な回転軸lrを通る場合の一例を図示している。 For example, the center of IMU 140 passes through the rotation axis lr of LiDAR 130 when base unit 120 rotates due to the mechanical energy of motor 150. For example, the support surface of support unit 124 is perpendicular to the mounting surface of mounting unit 122, and the center of IMU 140 passes through the rotation axis lr of LiDAR 130. Figure 1 illustrates an example where the center of IMU 140 passes through the rotation axis lr parallel to the z-axis.
例えば、IMU140の中心を通る中心線lcは、回転軸lrと平行である。図1では、中心線lcが回転軸lrと一致している場合の一例を図示している。 For example, the center line l c passing through the center of the IMU 140 is parallel to the rotation axis l r . Fig. 1 illustrates an example in which the center line l c coincides with the rotation axis l r .
測定装置100は、不図示のカメラをさらに備えてもよい。カメラは、測定装置100の任意の位置に搭載されてよい。カメラは、例えば、RGBカメラである。カメラは、赤外線カメラであってもよい。 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.
測定装置100は、例えば、地図データを生成する。測定装置100は、例えば、三次元地図データを生成する。 The measuring device 100 generates, for example, map data. The measuring device 100 generates, for example, three-dimensional map data.
測定装置100は、例えば、取得した各種データに基づいて、地図データを生成する。測定装置100は、例えば、測定した測定データに基づいて、地図データを生成する。測定データは、例えば、LiDAR130が測定したスキャンデータを含む。測定データは、例えば、IMU140が測定したLiDAR130の運動データを含む。測定データは、例えば、スキャンデータ及びLiDAR130の運動データの両方を含む。測定装置100は、測定装置100が備えるカメラが撮像した撮像画像データに基づいて、地図データ生成を生成してもよい。 The measuring device 100 generates map data, for example, based on various acquired data. The measuring device 100 generates map data, for example, based on measured measurement data. The measurement data includes, for example, scan data measured by the LiDAR 130. The measurement data includes, for example, movement data of the LiDAR 130 measured by the IMU 140. The measurement data includes, for example, both scan data and movement data of the LiDAR 130. The measuring device 100 may generate map data based on image data captured by a camera provided in the measuring device 100.
測定装置100は、例えば、SLAMアルゴリズムを用いて地図データを生成する。SLAMアルゴリズムとは、LiDARやカメラ等のセンサを用いて自己位置推定と地図データの生成を同時に実行するアルゴリズムである。SLAMアルゴリズムによって、測定装置100等のような位置が変化する装置は、地図データが存在しない未知の環境であっても、地図データを作成しながら自機の軌跡を計算し、生成した地図上における自機の位置を推定できる。尚、SLAMアルゴリズムを用いて地図データを生成する詳細については、後述する。 The measuring device 100 generates map data using, for example, the SLAM algorithm. The SLAM algorithm is an algorithm that simultaneously estimates its own position and generates map data using sensors such as LiDAR and cameras. The SLAM algorithm allows a device whose position changes, such as the measuring device 100, to calculate its own trajectory while creating map data, even in an unknown environment where no map data exists, and estimate its own position on the generated map. Details of generating map data using the SLAM algorithm will be discussed later.
測定装置100は、測定装置100のポーズグラフを生成してもよい。測定装置100のポーズグラフとは、測定装置100の軌跡をグラフ構造で表現したものである。測定装置100は、例えば、SLAMアルゴリズムを用いて測定装置100のポーズグラフを生成する。尚、SLAMアルゴリズムを用いて測定装置100のポーズグラフを生成する詳細については、後述する。 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. Details of generating a pose graph for the measurement device 100 using the SLAM algorithm will be described later.
測定装置100は、ロボット等の移動体に搭載されてもよい。この場合、測定装置100は、測定装置100のユーザが測定装置100を移動させることなく、移動できる。 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.
レーザ光の出力面が側面に位置し、且つ、底面が水平面と平行になるように固定的に配置されている従来の典型的なLiDARは、水平方向のFOV(Field of View)が360度であり、垂直方向のFOVが30度である。当該LiDARは固定的に配置されており且つ垂直方向のFOVが狭いので、垂直方向の長さが長い高層ビル等の構造物を当該LiDARでスキャンする場合、当該LiDARのユーザは、当該LiDARの垂直方向のFOVを拡張するために、当該LiDARを手動で傾けなければならなかった。したがって、垂直方向の長さが長い構造物が存在する測定対象環境を当該LiDARでスキャンする場合、当該LiDARのユーザの負担が大きかった。以上より、垂直方向の長さが長い構造物が存在する測定対象環境をLiDARでスキャンする場合のユーザの負担を軽減できることが望ましい。 A typical conventional LiDAR, in which the laser light output surface is located on the side and the bottom surface is fixedly positioned so that it is parallel to the horizontal plane, has a horizontal FOV (Field of View) of 360 degrees and a vertical FOV of 30 degrees. Because this LiDAR is fixedly positioned and has a narrow vertical FOV, when scanning a structure with a long vertical length, such as a high-rise building, the LiDAR user must manually tilt the LiDAR to expand the LiDAR's vertical FOV. Therefore, when using this LiDAR to scan a measurement environment containing a structure with a long vertical length, the LiDAR user must place a heavy burden on the LiDAR user. Given the above, it is desirable to be able to reduce the burden on the user when using LiDAR to scan a measurement environment containing a structure with a long vertical length.
これに対して、本実施形態に係る測定装置100によれば、レーザ光が出力面135から出力されるLiDAR130は、底面が水平面に対して垂直になるように配置されている。この場合、例えば、静止状態のLiDAR130の水平方向のFOVが30度であり、垂直方向のFOVが270度である。そして、モータ150の機械的エネルギーでLiDAR130を水平面に対して垂直な回転軸を中心に回転運動させることによって、測定装置100のユーザによる手動作業なしに、LiDAR130の水平方向のFOVを360度に拡張できる。以上より、底面が水平面に対して垂直であり且つLiDAR130を水平面に対して垂直な回転軸を中心に回転可能に配置することによって、本実施形態に係る測定装置100は、LiDARの水平方向のFOVを確保しつつ、垂直方向の長さが長い構造物が存在する測定対象環境をLiDARでスキャンする場合のユーザの負担を軽減できる。さらに、本実施形態に係る測定装置100は、IMU140の中心がLiDAR130の回転軸を通る構造を有するので、LiDAR130の回転運動を含み得るLiDAR130の運動データを高精度に測定できる。 In contrast, according to the measurement device 100 of this embodiment, the LiDAR 130, which outputs laser light from the output surface 135, is positioned so that its bottom surface is perpendicular to the horizontal plane. In this case, for example, the horizontal FOV of the stationary LiDAR 130 is 30 degrees, and its vertical FOV is 270 degrees. Then, by using the mechanical energy of the motor 150 to rotate the LiDAR 130 around 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. Thus, by positioning the LiDAR 130 so that its bottom surface is perpendicular to the horizontal plane and so that it can rotate around a rotation axis perpendicular to the horizontal plane, the measurement device 100 of this embodiment can ensure the horizontal FOV of the LiDAR while reducing the burden on the user when scanning a measurement environment containing structures with long vertical lengths using the LiDAR. 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, making it possible to measure with high accuracy the movement data of the LiDAR 130, which may include the rotational movement of the LiDAR 130.
図2は、測定装置100のハードウェア構成の他の一例を概略的に示す。ここでは、図1に示される測定装置100とは異なる点を主に説明する。尚、図2では、ボックス部110、モータ150、及びスリップリング160の記載を省略するものとする。 Figure 2 shows a schematic diagram of another example of the hardware configuration of the measuring device 100. Differences from the measuring device 100 shown in Figure 1 will be mainly explained here. Note that the box unit 110, motor 150, and slip ring 160 are omitted from Figure 2.
IMU140は、支持部124に搭載されてよい。IMU140は、例えば、支持部124の支持面に搭載されてよい。尚、図2では、IMU140が支持部124に搭載されていることを示すために、LiDAR130が点線で記載されている。 The IMU 140 may be mounted on the support portion 124. The IMU 140 may be mounted, for example, on the support surface of the support portion 124. Note that in Figure 2, the LiDAR 130 is drawn with dotted lines to indicate that the IMU 140 is mounted on the support portion 124.
搭載部122及び支持部124は一体であってよい。搭載部122及び支持部124は異なる部材であってもよい。 The mounting portion 122 and the support portion 124 may be integral. The mounting portion 122 and the support portion 124 may also be separate components.
支持部124は、例えば、LiDAR130を支持面で支持している状態で、LiDAR130と支持面との間にIMU140を搭載するための空隙を有する。この場合、IMU140は、当該空隙内に搭載されてよい。 For example, the support section 124 has a gap between the LiDAR 130 and the support surface in which the IMU 140 is mounted, while the LiDAR 130 is supported on the support surface. In this case, the IMU 140 may be mounted within the gap.
例えば、支持部124の支持面は、搭載部122の搭載面と平行であってよい。例えば、支持部124の支持面は、搭載部122の搭載面と同一面であってよい。図2では、支持部124の支持面が搭載部122の搭載面と同一面であり、且つ、支持部124の支持面がxy平面に対して垂直な面である場合の一例を図示している。 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. Figure 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.
例えば、IMU140の中心は、回転軸lrに対して垂直な直線を通る。例えば、支持部124の支持面は、搭載部122の搭載面と平行であり、且つ、IMU140の中心は、回転軸lrに対して垂直な直線を通る。例えば、支持部124の支持面は、搭載部122の搭載面と同一面であり、且つ、IMU140の中心は、回転軸lrに対して垂直な直線を通る。図2では、IMU140の中心がz軸と平行な回転軸lrに対して垂直であり、且つ、x軸と平行な直線を通る場合の一例を図示している。 For example, the center of IMU 140 passes through a line perpendicular to 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 IMU 140 passes through a line perpendicular 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 IMU 140 passes through a line perpendicular to the rotation axis l r . Figure 2 illustrates an example where the center of IMU 140 is perpendicular to the rotation axis l r , which is parallel to the z-axis, and passes through a line parallel to the x-axis.
例えば、中心線lcは、回転軸lrに対して垂直である。図2では、中心線lcがz軸と平行な回転軸lrに対して垂直であり且つx軸と平行である場合の一例を図示している。 For example, the center line l_c is perpendicular to the rotation axis l_r . Figure 2 illustrates an example in which the center line l_c is perpendicular to the rotation axis l_r , which is parallel to the z-axis, and is parallel to the x-axis.
図3は、地図データを生成する処理の流れの一例を説明するための説明図である。ここでは、SLAMアルゴリズムを用いて地図データを生成する処理の流れの一例を3つのStepに分けて説明する。 Figure 3 is an explanatory diagram illustrating an example of the process flow for generating map data. Here, an example of the process flow for generating map data using the SLAM algorithm is explained in three steps.
Step1では、SLAMアルゴリズムを用いて地図データを生成するときに参照される参照データを生成する。参照データは、例えば、モータ150の機械的エネルギーでベース部120が回転運動しており且つベース部120が並進運動していない状態でLiDAR130よって測定されたスキャンデータに基づいて生成される。尚、モータ150の機械的エネルギーでベース部120が回転運動しており且つベース部120が並進運動していない状態でLiDAR130よって測定されたスキャンデータを、第1スキャンデータと記載する場合がある。 In Step 1, reference data is generated that is referenced when generating map data using the SLAM algorithm. The reference data is generated, for example, based on scan data measured by LiDAR 130 when the base unit 120 is rotating due to the mechanical energy of the motor 150 and is not moving in a translational manner. Note that the scan data measured by LiDAR 130 when the base unit 120 is rotating due to the mechanical energy of the motor 150 and is not moving in a translational manner may be referred to as first scan data.
Step2では、モータ150の機械的エネルギーでベース部120が回転運動しており且つベース部120が並進運動している状態でLiDAR130よって測定された複数のスキャンデータをグループ化する。尚、モータ150の機械的エネルギーでベース部120が回転運動しており且つベース部120が並進運動している状態でLiDAR130よって測定されたスキャンデータを、第2スキャンデータと記載する場合がある。 In Step 2, multiple scan data measured by LiDAR 130 while the base unit 120 is rotating and translating due to the mechanical energy of motor 150 are grouped. Note that the scan data measured by LiDAR 130 while the base unit 120 is rotating and translating due to the mechanical energy of motor 150 may be referred to as second scan data.
Step3では、Step1で生成された参照データ及びStep2でグループ化された複数の第2スキャンデータに基づいて、SLAMアルゴリズムを用いて地図データを生成する。例えば、第2スキャンデータを参照データに位置合わせすることによって、地図データが生成される。ここで、「位置合わせする」とは、地図データの座標系で位置合わせすることを意味するものであるとする。尚、地図データの座標系をマップ空間と記載する場合がある。 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 groups grouped in Step 2. For example, map data is generated by aligning the second scan data with the reference data. Here, "align" refers to aligning in the coordinate system of the map data. The coordinate system of the map data may also be referred to as map space.
Step3では、Step1で生成された参照データ及びStep2でグループ化された複数の第2スキャンデータに基づいて、SLAMアルゴリズムを用いて測定装置100のポーズグラフをさらに生成してよい。 In Step 3, a pose graph for the measurement device 100 may be further generated using the SLAM algorithm based on the reference data generated in Step 1 and the multiple second scan data groups grouped in Step 2.
図4は、参照データを生成する処理の一例を説明するための説明図である。尚、LiDAR130が第1レーザ光及び出力方向が第1レーザ光の出力方向と反対である第2レーザ光の2本のレーザ光を同時に出力し、LiDAR130の回転速度が30rpmであり、LiDAR130のスキャン間隔が100msであり、且つ、静止状態のLiDAR130の水平方向のFOVが30度であるものとする。 Figure 4 is an explanatory diagram illustrating an example of the process of 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, that 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.
図4において破線で示されている範囲は、n回目のスキャンの範囲である。図4において破線で示されている範囲は、n+1回目のスキャンの範囲である。nは自然数である。尚、図4におけるxyz座標系は、測定装置100の座標系である。 The range indicated by the dashed line in Figure 4 is the range of the nth scan. The range indicated by the dashed line in Figure 4 is the range of the n+1th scan. n is a natural number. Note that the xyz coordinate system in Figure 4 is the coordinate system of the measurement device 100.
LiDAR130の回転速度が30rpmであり、LiDAR130のスキャン間隔が100msであり、且つ、静止状態のLiDAR130の水平方向のFOVが30度である場合、LiDAR130は、n回目のスキャンからn+1回目のスキャンまでの間に回転軸lrを中心に18度回転する。よって、n回目のスキャンからn+1回目のスキャンまでの間にLiDAR130が回転する回転角度が静止状態のLiDAR130の水平方向のFOVより小さい。したがって、n回目のスキャンの範囲及びn+1回目のスキャンの範囲が重複範囲を有する。以上より、2本のレーザ光を同時に出力するLiDAR130は、LiDAR130が180度回転する期間以上の間、第1スキャンデータを測定することによって、水平方向のFOVを360度に拡張できる。尚、図4において、n回目のスキャンの範囲及びn+1回目のスキャンの範囲が重複する重複範囲が斜線で示されている。 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 18 degrees around the rotation axis lr between the nth scan and the n+1th scan. Therefore, the rotation angle of the LiDAR 130 between the nth scan and the n+1th scan is smaller than the horizontal FOV of the stationary LiDAR 130. Therefore, the range of the nth scan and the range of the n+1th scan overlap. As described above, the LiDAR 130 that simultaneously outputs two laser beams can expand its horizontal FOV to 360 degrees by measuring first scan data for a period of time longer than the LiDAR 130 rotates 180 degrees. 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.
下記の式によって、LiDAR130が180度回転する期間の間にLiDAR130がスキャンを実行するスキャン回数を導出できる。尚、下記の式の右辺は、ある実数に対して当該実数以上の最小の整数を導出する天井関数である。 The following formula can be used to derive the number of scans that LiDAR130 will perform during the period in which it rotates 180 degrees. Note that the right-hand side of the formula below is a ceiling function that derives the smallest integer greater than or equal to a given real number.
LiDAR130のスキャン頻度はLiDAR130のスキャン間隔の逆数であるので、LiDAR130のスキャン間隔が100msである場合のLiDAR130のスキャン頻度は10Hzである。上記の式にLiDAR130の回転速度=30rpm及びLiDAR130のスキャン頻度=10Hzをそれぞれ代入することによって、LiDAR130の回転速度が30rpmであり、且つ、LiDAR130のスキャン間隔が100msである場合、LiDAR130が180度回転する期間の間にLiDAR130がスキャンを実行するスキャン回数が10回であることを導出できる。 Since the scanning frequency of LiDAR130 is the reciprocal of the scanning interval of LiDAR130, when the scanning interval of LiDAR130 is 100 ms, the scanning frequency of LiDAR130 is 10 Hz. By substituting the rotation speed of LiDAR130 = 30 rpm and the scanning frequency of LiDAR130 = 10 Hz into the above equation, it can be derived that when the rotation speed of LiDAR130 is 30 rpm and the scanning interval of LiDAR130 is 100 ms, the number of scans that LiDAR130 performs during the period in which LiDAR130 rotates 180 degrees is 10.
測定装置100は、例えば、LiDAR130よって予め定められた期間の間に測定された複数の第1スキャンデータと、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとに基づいて、参照データを生成する。測定装置100は、例えば、LiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の運動データに基づいてLiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の回転角度を特定し、LiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の回転角度に基づいて当該各第1スキャンデータを統合することによって、参照データを生成する。 The measurement device 100 generates reference data, for example, based on multiple first scan data measured by the LiDAR 130 over a predetermined period of time and movement data of the LiDAR 130 measured by the IMU 140 over the predetermined period of time when the LiDAR 130 measured each of the multiple first scan data. The measurement device 100 generates reference data by, for example, determining the 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.
当該予め定められた期間は、LiDAR130の水平方向のFOVが360度になるように定められてよい。例えば、当該予め定められた期間は、2本のレーザ光を同時に出力するLiDAR130が180度回転する期間以上となるように定められてよい。例えば、LiDAR130の回転速度が30rpmであり、LiDAR130のスキャン間隔が100msであり、且つ、静止状態のLiDAR130の水平方向のFOVが30度である場合、当該予め定められた期間は、LiDAR130が180度回転する期間である1sより長い10sとなるように定められてよい。この場合、LiDAR130は、LiDAR130が5回転する間、第1スキャンデータを測定する。当該予め定められた期間は、LiDAR130が180度回転する期間である1sとなるように定められてもよい。この場合、LiDAR130は、LiDAR130が半回転する間、第1スキャンデータを測定する。 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 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 while the LiDAR 130 rotates half a revolution.
ここで、LiDAR130がn回目に測定した第1スキャンデータ及びLiDAR130がn+1回目に測定した第1スキャンデータを統合する処理の一例を説明する。LiDAR130がn回目の第1スキャンデータを測定したときのLiDAR130の回転角度がθnであり、LiDAR130がn+1回目の第1スキャンデータを測定したときのLiDAR130の回転角度がθn+1である場合、測定装置100は、LiDAR130がn回目の第1スキャンデータを測定した時刻からLiDAR130がn+1回目の第1スキャンデータを測定した時刻までの間にLiDAR130がΔθ=θn+1-θnだけ回転したことを特定する。Δθは、LiDAR130がn回目に第1スキャンデータを測定したときのLiDAR130の回転角度とLiDAR130がn+1回目に第1スキャンデータを測定したときのLiDAR130の回転角度との間の相対回転角度を表す。次に、測定装置100は、LiDAR130がn+1回目に測定した第1スキャンデータに対してΔθの逆回転行列を適用することによって、LiDAR130がn+1回目に測定した第1スキャンデータをLiDAR130がn回目に測定した第1スキャンデータに位置合わせする。その後、LiDAR130がn回目に測定した第1スキャンデータ及びLiDAR130がn+1回目に測定した第1スキャンデータを統合する。 Here, an example of a process for integrating the first scan data measured the nth time by the LiDAR 130 and the first scan data measured the n+1th time by the LiDAR 130 will be described. If the rotation angle of the LiDAR 130 when the LiDAR 130 measured the nth first scan data is θ n , and the rotation angle of the LiDAR 130 when the LiDAR 130 measured the n+1th first scan data is θ n+1 , the measurement device 100 determines that the LiDAR 130 rotated by Δθ = θ n+1 - θ n between the time when the LiDAR 130 measured the nth first scan data and the time when the LiDAR 130 measured the n +1th first scan data. Δθ represents the relative rotation angle between the rotation angle of LiDAR 130 when LiDAR 130 measures the first scan data the nth time and the rotation angle of LiDAR 130 when LiDAR 130 measures the first scan data the n+1th time. Next, measurement device 100 aligns the first scan data measured by LiDAR 130 the n+1th time with the first scan data measured by LiDAR 130 the nth time by applying the inverse rotation matrix of Δθ to the first scan data measured by LiDAR 130 the n+1th time. Thereafter, the first scan data measured by LiDAR 130 the nth time and the first scan data measured by LiDAR 130 the n+1th time are integrated.
測定装置100が備えるLiDAR130は、垂直方向のFOVをより広くすべく、底面が水平面に対して垂直になるように配置されている。そして、測定装置100は、LiDAR130を回転させることによって、LiDAR130の水平方向のFOVを360度に拡張している。その一方で、回転状態のLiDARによって時間的に隣接して測定された2個のスキャンデータ間の重複範囲の割合は、LiDARの回転運動に起因して、静止状態のLiDARによって時間的に隣接して測定された2個のスキャンデータ間の重複範囲の割合と比較して低い。LiDARのスキャン間隔が同一である場合、LiDARの回転速度が高速になるほど、時間的に隣接して測定された2個のスキャンデータ間の重複範囲の割合が低くなる。尚、「時間的に隣接して測定された2個のスキャンデータ」とは、時間的に連続して測定された2個のスキャンデータを意味するものであり、例えば、LiDAR130がn回目に測定したスキャンデータ及びLiDAR130がn+1回目に測定したスキャンデータの2個のスキャンデータである。 The LiDAR 130 included in the measurement device 100 is positioned so that its bottom surface is perpendicular to the horizontal plane to widen the vertical FOV. The measurement device 100 rotates the LiDAR 130, thereby expanding 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 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 scan data measured by LiDAR130 the nth time and the scan data measured by LiDAR130 the n+1th time.
例えば、LiDAR130の回転速度が30rpmであり、且つ、LiDAR130のスキャン間隔が100msである場合、前述のとおり、LiDAR130は、n回目のスキャンからn+1回目のスキャンまでの間に回転軸lrを中心に18度回転する。この場合、LiDAR130が回転運動以外の運動をしていないと仮定すると、n回目のスキャンの範囲とn+1回目のスキャンの範囲との間の重複範囲の割合は、(30度-18度)÷30度×100=40%である。 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 18 degrees around the rotation axis lr between the nth scan and the n+1th scan. In this case, assuming that the LiDAR 130 is not performing any movement other than rotation, the overlapping range ratio between the range of the nth scan and the range of the n+1th scan is (30 degrees - 18 degrees) ÷ 30 degrees × 100 = 40%.
SLAMアルゴリズムを用いて地図データを生成する場合、ICPアルゴリズムやNDT( Normal Distributions Transform)アルゴリズム等のスキャンデータを位置合わせする位置合わせアルゴリズムが必要不可欠である、スキャンデータ間の重複範囲の割合が低い場合、位置合わせアルゴリズムの安定性及び信頼性が低下する。そして、位置合わせアルゴリズムの安定性及び信頼性の低下は、SLAMアルゴリズムを用いて生成される地図データの精度に対して悪影響を及ぼす。したがって、SLAMアルゴリズムを用いて高精度な地図データを生成するためには、位置合わせアルゴリズムの安定性や信頼性を高くすることが重要である。以上より、回転状態のLiDARによって測定されたスキャンデータ間の重複範囲の割合を高くすることによって、位置合わせアルゴリズムの安定性及び信頼性を高くできることが望ましい。 When generating map data using the SLAM algorithm, an alignment algorithm for aligning scan data, such as the ICP algorithm or the NDT (Normal Distributions Transform) algorithm, is essential. If the overlapping area between scan data is low, the stability and reliability of the alignment algorithm decreases. This decrease in the stability and reliability of the alignment 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 alignment algorithm. For these reasons, it is desirable to increase the stability and reliability of the alignment algorithm by increasing the overlapping area between scan data measured by a rotating LiDAR.
これに対して、本実施形態に係る測定装置100は、測定装置100の移動の開始に先立って、回転運動のみをしている状態のLiDAR130で複数の第1スキャンデータを測定する。そして、測定装置100は、当該複数の第1スキャンデータと、IMU140によって測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとに基づいて、参照データを生成する。前述のとおり、測定装置100がIMU140の中心がLiDAR130の回転軸を通る構造を有する。よって、測定装置100は、LiDAR130が当該各第1スキャンデータを測定したときのLiDAR130各回転角度間の相対回転角度を高精度に特定できるので、当該各第1スキャンデータ間の位置合わせの精度が高い参照データを生成できる。そして、測定装置100の移動が開始した後に位置合わせアルゴリズムを実行する場合、第2スキャンデータを参照データに位置合わせする。参照データは、LiDAR130の水平方向のFOVが360度になるように定められた期間以上の間LiDAR130によって測定された当該複数の第1スキャンデータに基づいて生成されているので、第2スキャンデータと参照データとの間の重複範囲の割合が高い。さらに、参照データを構成する当該各第1スキャンデータ間の位置合わせの精度が高いので、測定装置100は、第2スキャンデータを高精度に位置合わせされた参照データに位置合わせできる。以上により、本実施形態に係る測定装置100は、測定装置100の移動の開始に先立って参照データを生成することによって、位置合わせアルゴリズムの安定性及び信頼性を高くすることができ、SLAMアルゴリズムを用いた高精度な地図データの生成に貢献できる。 In contrast, the measuring device 100 according to this embodiment measures multiple first scan data sets using the LiDAR 130 while it is only performing rotational motion prior to the start of movement of the measuring device 100. The measuring device 100 then generates reference data based on the multiple first scan data sets and the movement data of the LiDAR 130 measured by the IMU 140 at the time the LiDAR 130 measured each of the multiple 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 determine the relative rotation angles between the LiDAR 130 rotation angles 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 the alignment algorithm is executed after the measuring device 100 begins movement, the second scan data sets are aligned with the reference data. Because the reference data is generated based on the multiple first scan data measured by LiDAR 130 over a period of time or longer that is set so that the horizontal FOV of LiDAR 130 is 360 degrees, 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 that make up 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 prior to the start of movement of the measuring device 100, thereby improving the stability and reliability of the alignment algorithm and contributing to the generation of highly accurate map data using the SLAM algorithm.
図5は、参照データ及び第2スキャンデータの関係の一例を説明するための説明図である。ここでは、第2スキャンデータが、測定装置100の移動が開始した直後にLiDAR130によって測定されているものとする。 Figure 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 begins to move.
図5において実線で示されている範囲は、参照データの範囲である。図5において点線で示されている範囲は、第2スキャンデータの範囲である。尚、図5におけるxyz座標系は、測定装置100の座標系である。 The range indicated by the solid line in Figure 5 is the range of the reference data. The range indicated by the dotted line in Figure 5 is the range of the second scan data. Note that the xyz coordinate system in Figure 5 is the coordinate system of the measurement device 100.
図5に図示されている一例によれば、参照データの範囲は、第2スキャンデータの範囲を包含する。これは、図5に図示されている参照データと第2スキャンデータとの間の重複範囲の割合が極めて高いことを意味する。 In the example shown in Figure 5, the range of the reference data encompasses the range of the second scan data. This means that the overlapping range between the reference data and the second scan data shown in Figure 5 is extremely high.
図6は、スキャンデータを参照データに位置合わせする処理の一例を説明するための説明図である。ここでは、測定装置100がICPアルゴリズムによってスキャンデータを参照データに位置合わせする処理の一例を主に説明する。尚、図6における「〇」は参照データを構成する点Prであり、図6における「▽」はスキャンデータを構成する点Psであるものとする。 6 is an explanatory diagram illustrating 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 using the ICP algorithm by the measurement device 100 will be mainly described. Note that the "◯" in FIG. 6 represents point Pr constituting the reference data, and the "▽" in FIG. 6 represents point Ps constituting the scan data.
図6の上段に図示されている図は、スキャンデータの複数の点Psのそれぞれを、参照データの複数の点Prのいずれかにマッチングする処理(「処理1」と記載する場合がある)の一例を説明するための説明図である。ここでは、測定装置100が、RANSAC(Random Sample Consensus)アルゴリズムによって、スキャンデータを参照データに事前に位置合わせしているものとして、説明を続ける。 6 is an explanatory diagram for explaining an example of a process (sometimes referred to as "Process 1") for matching each of a plurality of points Ps of the scan data with one of a plurality of points Pr of the reference data. 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.
測定装置100は、例えば、点Psからのマップ空間上の距離が最も短い点Prを特定することによって、点Psを点Prにマッチングする。測定装置100は、例えば、最近傍点探索を実行することによって、点Psからのマップ空間上の距離が最も短い点Prを特定する。測定装置100は、例えば、最近傍点探索を実行するにあたり、スキャンデータの複数の点Psからk-d木を構築し、構築したk-d木を用いて最近傍探索を実行する。図6の上段に図示されている一例において、測定装置100が、点Ps1を点Pr1にマッチングし、点Ps2を点Pr3にマッチングし、点Ps3を点Pr3にマッチングし、点Ps4を点Pr4にマッチングし、点Ps5を点Pr4にマッチングし、且つ、点Ps6を点Pr6にマッチングしたものとして、説明を続ける。 The measurement apparatus 100 matches point Ps to point Pr , for example, by identifying point Pr that is the closest distance from point Ps in map space. The measurement apparatus 100 identifies point Pr that is the closest distance from point Ps in map space by, for example, performing a nearest neighbor search. When performing the nearest neighbor search, the measurement apparatus 100, for example, constructs a k-d tree from multiple points Ps of the scan data and performs the nearest neighbor search using the constructed k-d tree. The description will continue assuming that , in the example shown in the upper part of FIG. 6 , the measurement apparatus 100 matches point Ps1 to point Pr1 , point Ps2 to point Pr3 , point Ps3 to point Pr3 , point Ps4 to point Pr4, point Ps5 to point Pr4 , and point Ps6 to point Pr6 .
図6の中段に図示されている図は、スキャンデータを参照データに位置合わせするための位置合わせ行列を決定する処理(「処理2」と記載する場合がある)の一例を説明するための説明図である。ここでは、測定装置100が処理1におけるマッチング結果に基づいて位置合わせ行列を決定する場合の一例を主に説明する。 The diagram in the middle of Figure 6 is an explanatory diagram illustrating an example of a process (sometimes referred to as "Process 2") for determining an alignment matrix for aligning scan data with reference data. Here, we will mainly explain an example in which the measurement device 100 determines an alignment matrix based on the matching results in Process 1.
測定装置100は、スキャンデータの複数の点Psのそれぞれについて、点Psの当該点Psにマッチングされた点Prに対するマップ空間における位置の誤差を決定し、当該位置の誤差の総和が最小となるように、位置合わせ行列を決定する。位置合わせ行列は、例えば、回転行列を含む。位置合わせ行列は、例えば、平行移動行列を含む。図6の中段に図示されている一例において、測定装置100は、処理1におけるマッチング結果に基づいて、点Ps1の点Pr1に対するマップ空間における位置の誤差e1、点Ps2の点Pr3に対するマップ空間における位置の誤差e2、点Ps3の点Pr3に対するマップ空間における位置の誤差e3、点Ps4の点Pr4に対するマップ空間における位置の誤差e4、点Ps5の点Pr4に対するマップ空間における位置の誤差e5、及び点Ps6の点Pr6に対するマップ空間における位置の誤差e6の総和etotal=e1+e2+e3+e4+e5+e6が最小となるように、位置合わせ行列を決定する。 For each of a plurality of points Ps in the scan data, the measurement device 100 determines a position error in the map space of the point Ps relative to a point Pr matched to the point Ps , and determines a registration matrix such 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 Figure 6, the measurement device 100 determines an alignment matrix based on the matching results in process 1 so that the sum e total = e 1 + e 2 + e 3 + e 4 + e 5 + e 6 of the positional error e 1 in map space of point P s1 relative to point P r1 , the positional error e 2 in map space of point P s2 relative to point P r3 , the positional error e 3 in map space of point P s3 relative to point P r3 , the positional error e 4 in map space of point P s4 relative to point P r4 , the positional error e 5 in map space of point P s5 relative to point P r4 , and the positional error e 6 in map space of point P s6 relative to point P r6 is minimized.
図6の下段に図示されている図は、スキャンデータと参照データとの間の位置関係が予め定められた終了条件を満たしているか否かを判定する処理(「処理3」と記載する場合がある)の一例を説明するための説明図である。ここでは、測定装置100が、処理2によって決定された位置合わせ行列を用いてスキャンデータを参照データに位置合わせしているものとして、説明を続ける。 The diagram shown in the lower part of Figure 6 is an explanatory diagram illustrating an example of a process (sometimes referred to as "Process 3") that determines whether the positional relationship between the scan data and the reference data satisfies a predetermined termination condition. Here, the explanation will continue assuming that the measurement device 100 aligns the scan data with the reference data using the alignment matrix determined by Process 2.
測定装置100は、スキャンデータと参照データとの間の位置関係が終了条件を満たすと判定した場合、ICPアルゴリズムによってスキャンデータを参照データに位置合わせする処理を終了させてよい。一方で、測定装置100は、スキャンデータと参照データとの間の位置関係が終了条件を満たさないと判定した場合、処理1を再度実行してよい。この場合、測定装置100は、スキャンデータと参照データとの間の位置関係が終了条件を満たすと判定するまで、処理1から処理3を繰り返し実行する。 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.
終了条件は、例えば、スキャンデータが参照データに位置合わせされた後のスキャンデータの点Psのそれぞれと、参照データの点Prのそれぞれとのマップ空間における位置の誤差の総和が、予め定められた誤差閾値より小さいことである。測定装置100は、例えば、最近傍点探索を実行することによって、スキャンデータが参照データに位置合わせされた後のスキャンデータの点Psからのマップ空間上の距離が最も短い点Prを特定することによって、当該点Psを点Prにマッチングする。図6の下段に図示されている一例において測定装置100は、点Ps1を点Pr1にマッチングし、点Ps2を点Pr2にマッチングし、点Ps3を点Pr3にマッチングし、点Ps4を点Pr4にマッチングし、点Ps5を点Pr5にマッチングし、且つ、点Ps6を点Pr6にマッチングしてよい。その後、測定装置100は、点Ps1の点Pr1に対するマップ空間における位置の誤差e'1、点Ps2の点Pr2に対するマップ空間における位置の誤差e'2、点Ps3の点Pr3に対するマップ空間における位置の誤差e'3、点Ps4の点Pr4に対するマップ空間における位置の誤差e'4、点Ps5の点Pr5に対するマップ空間における位置の誤差e'5、及び点Ps6の点Pr6に対するマップ空間における位置の誤差e'6の総和e'total=e'1+e'2+e'3+e'4+e'5+e'6が誤差閾値より小さい場合、スキャンデータと参照データとの間の位置関係が終了条件を満たすと判定してよい。 The termination condition may be, for example, that the sum of positional errors in map space between each point Ps of the scan data after the scan data has been aligned with the reference data and each point Pr of the reference data is smaller than a predetermined error threshold. The measurement device 100, for example, performs a nearest neighbor search to identify a point Pr that is the shortest distance in map space from the point Ps of the scan data after the scan data has been aligned with the reference data, and matches the point Ps to the point Pr . In an example shown in the lower part of FIG. 6 , the measurement device 100 may match point Ps1 to point Pr1 , point Ps2 to point Pr2 , point Ps3 to point Pr3 , point Ps4 to point Pr4 , point Ps5 to point Pr5 , and point Ps6 to point Pr6 . Then, the measurement device 100 may determine that the positional relationship between the scan data and the reference data satisfies the termination condition if the sum e'total = e'1 + e'2 + e'3 + e'4 + e'5 + e'6 of the positional error e'1 in map space of point Ps1 relative to point Pr1 , the positional error e'2 in map space of point Ps2 relative to point Pr2 , the positional error e'3 in map space of point Ps3 relative to point Pr3, the positional error e'4 in map space of point Ps4 relative to point Pr4 , the positional error e'5 in map space of point Ps5 relative to point Pr5 , and the positional error e'6 in map space of point Ps6 relative to point Pr6 is less than the error threshold.
図7は、測定装置100のポーズグラフの一例を概略的に示す。ここでは、測定装置100のポーズグラフの各構成要素について説明する。 Figure 7 shows an example of a pose graph for the measurement device 100. Here, we will explain each component of the pose graph for the measurement device 100.
図7における黒丸は、測定装置100のポーズグラフの頂点である。頂点は、LiDAR130が第2スキャンデータを測定したときの測定装置100の位置を表す。 The black circles in Figure 7 are vertices of the pose graph of the measurement device 100. The vertices represent the position of the measurement device 100 when the LiDAR 130 measured the second scan data.
図7における実線は、測定装置100のポーズグラフのオドメトリ辺である。オドメトリ辺は、LiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がa+1回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置を表す。aは自然数である。 The solid lines in Figure 7 are odometry edges in 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 measured the second scan data the ath time and the position of the measurement device 100 when the LiDAR 130 measured the second scan data the a+1th time. a is a natural number.
オドメトリ辺の始点である頂点がLiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置に対応してよい。オドメトリ辺の終点である頂点がLiDAR130がa+1回目に第2スキャンデータを測定したときの測定装置100の位置に対応してよい。 The vertex that is the starting 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 ath 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+1th time.
図7における点線は、測定装置100のポーズグラフのループ辺である。ループ辺は、周回路であるループが検出された場合に生成される辺である。尚、ループを検出することをループ検出と記載する場合がある。 The dotted lines in Figure 7 are loop edges in the pose graph of the measurement device 100. Loop edges are edges that are generated when a loop, which is a circular path, is detected. Note that detecting a loop is sometimes referred to as loop detection.
測定装置100は、例えば、LiDAR130が第2スキャンデータを測定したときの測定装置100の位置に基づいて、ループ検出を実行する。測定装置100は、例えば、第1頂点によって表されるLiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置と、第2頂点によって表されるLiDAR130がa+α回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置が予め定められた相対位置閾値より短い場合、ループを検出する。この場合、ループ辺の始点である頂点がLiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置に対応し、ループ辺の終点である頂点がLiDAR130がa+α回目に第2スキャンデータを測定したときの測定装置100の位置に対応する。αは自然数であり、α≧αthを満たす。αthは測定間隔閾値であってよい。 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. For example, the measurement device 100 detects a loop when the relative position between the position of the measurement device 100 when the LiDAR 130 measured the second scan data the ath 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 ath 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 that satisfies α≧ αth . αth may be a measurement interval threshold.
図7に図示されている測定装置100のポーズグラフの一例において、頂点Vmがループ辺の始点であり、頂点Vnがループ辺の終点である。頂点Vmは、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100の位置を表し、頂点Vnは、LiDAR130がn回目に第2スキャンデータを測定したときの測定装置100の位置を表す。m及びnは自然数であり、n=m+αの関係が成立する。 In an example of a pose graph of the measurement device 100 shown in Figure 7, vertex Vm is the start point of a loop edge, and vertex Vn is the end point of the loop edge. Vertex Vm represents the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the mth time, and vertex Vn represents the position of the measurement device 100 when the LiDAR 130 measured the second scan data for the nth time. m and n are natural numbers, and the relationship n = m + α holds.
測定装置100は、ループ辺を生成したことに応じて、ポーズグラフを調整する。尚、ポーズグラフを調整することをポーズ調整と記載する場合がある。 The measurement device 100 adjusts the pose graph in response to generating the loop edge. Note that adjusting the pose graph may also be referred to as pose adjustment.
ポーズ調整において、頂点によって表されるLiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置が変数である。一方で、ポーズ調整において、オドメトリ辺によって表されるLiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がa+1回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置が定数である。 In pose adjustment, the position of the measurement device 100 when the LiDAR 130, represented by the vertex, measured the second scan data for the ath time is a variable. On the other hand, in pose adjustment, the relative position between the position of the measurement device 100 when the LiDAR 130, represented by the odometry edge, measured the second scan data for the ath 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.
例えば、測定装置100は、ループ辺の終点である頂点によって表される測定装置100の位置でLiDAR130がa+α回目に測定した第2スキャンデータを、ループ辺の始点である頂点によって表される測定装置100の位置でLiDAR130がa回目に測定した第2スキャンデータに位置合わせすることによって、LiDAR130がa回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がa+α回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置を導出する。図7に図示されている測定装置100のポーズグラフの一例において、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がn回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置を位置合わせアルゴリズムに位置合わせすることによって、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がn回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置を導出する。 For example, the measuring device 100 derives the relative position between the position of the measuring device 100 when LiDAR 130 measured the second scan data on 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 LiDAR 130 measured the second scan data on the a+αth time by aligning the second scan data measured by LiDAR 130 on 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 the example pose graph of the measurement device 100 shown in FIG. 7, 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 aligned with an alignment algorithm to derive 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.
次に、測定装置100は、導出した相対位置に基づいて、ループ辺の終点である頂点を調整する。図7に図示されている測定装置100のポーズグラフの一例において、ループ辺の終点である頂点Vnを頂点V'nに調整する。 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 Figure 7, the vertex Vn that is the end point of the loop edge is adjusted to the vertex V'n .
その後、測定装置100は、調整後の頂点によって表されるa+α回目に第2スキャンデータを測定したときの測定装置100の位置、及び、a+α回目に第2スキャンデータを測定したときの測定装置100の位置とa+α-1回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置に基づいて、a+α-1回目に第2スキャンデータを測定したときの測定装置100の位置を表す頂点を調整する。以降では、同様にして、a+α-2回目に第2スキャンデータを測定したときの測定装置100の位置を表す頂点、a+α-3回目に第2スキャンデータを測定したときの測定装置100の位置を表す頂点、・・・と順々に頂点を調整する。 Then, the measuring device 100 adjusts the vertex representing the position of the measuring device 100 when the second scan data was measured on the (a+α-1)th time, based on the position of the measuring device 100 when the second scan data was measured on the (a+α)th time, which is represented by the adjusted vertex, and the relative position between the position of the measuring device 100 when the second scan data was measured on the (a+α)th time and the position of the measuring device 100 when the second scan data was measured on the (a+α-1)th time. Thereafter, the vertices are adjusted in the same manner, successively adjusting the vertices representing the position of the measuring device 100 when the second scan data was measured on the (a+α-2)th time, the vertex representing the position of the measuring device 100 when the second scan data was measured on the (a+α-3)th time, and so on.
ポーズ調整によって、ポーズグラフが最適化される。尚、ポーズグラフが最適化されることをポーズグラフ最適化と記載する場合がある。 Pose adjustment optimizes the pose graph. Note that optimizing the pose graph is sometimes referred to as pose graph optimization.
図8は、ポーズ調整前の測定装置100のポーズグラフ及びポーズ調整前の測定装置100のポーズグラフに対応する地図データの一例を概略的に示す。図8の上段に図示されている図は、ポーズ調整前の測定装置100のポーズグラフの一例である。図8の下段に図示されている図は、ポーズ調整前の測定装置100のポーズグラフに対応する地図データの一例である。 Figure 8 schematically shows 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. The diagram shown in the upper part of Figure 8 is an example of a pose graph of the measuring device 100 before pose adjustment. The diagram shown in the lower part of Figure 8 is an example of map data corresponding to the pose graph of the measuring device 100 before pose adjustment.
図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフは、図7に図示されている測定装置100のポーズグラフと同一である。したがって、図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフに関する主な事項については、記載を省略する。 The pose graph of the measuring device 100 before pose adjustment shown in the upper part of Figure 8 is identical to the pose graph of the measuring device 100 shown in Figure 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 Figure 8 will be omitted.
図8の下段に図示されている図における点Vmは、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100のマップ空間上の位置を示す。図8の下段に図示されている図における点Vmは、図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフにおける頂点Vmに対応する。 Point Vm in the diagram shown in the lower part of Fig. 8 indicates the position in map space of the measurement device 100 when the LiDAR 130 measured the second scan data for the mth time. Point Vm in the diagram shown in the lower part of Fig. 8 corresponds to vertex Vm in the pose graph of the measurement device 100 before pose adjustment shown in the upper part of Fig. 8.
図8の下段に図示されている図における点Vnは、LiDAR130がn回目に第2スキャンデータを測定したときの測定装置100のマップ空間上の位置を示す。図8の下段に図示されている図における点Vnは、図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフにおける頂点Vnに対応する。 Point Vn in the diagram shown in the lower part of Fig. 8 indicates the position in map space of the measurement device 100 when the LiDAR 130 measured the second scan data for the nth time. Point Vn in the diagram shown in the lower part of Fig. 8 corresponds to vertex Vn in the pose graph of the measurement device 100 before pose adjustment shown in the upper part of Fig. 8.
図8の下段に図示されている図における点線は、測定装置100のマップ空間上の軌跡を表す。図8の下段に図示されている測定装置100のマップ空間上の軌跡は、図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフのオドメトリ辺に対応する。 The dotted line in the diagram shown in the lower part of Figure 8 represents the trajectory of the measurement device 100 in map space. The trajectory of the measurement device 100 in map space shown in the lower part of Figure 8 corresponds to the odometry edge of the pose graph of the measurement device 100 before pose adjustment shown in the upper part of Figure 8.
図8の下段に図示されている図において破線で囲まれた領域Rmは、LiDAR130によるm回目のスキャンの範囲である。図8の下段に図示されている図において破線で囲まれた領域Rnは、LiDAR130によるn回目にスキャンの範囲である。図8の下段に図示されている図における太実線は、LiDAR130によって測定された第2スキャンデータである。 In the diagram shown in the lower part of Fig. 8, the region Rm surrounded by a dashed line is the range of the mth scan by the LiDAR 130. In the diagram shown in the lower part of Fig. 8, the region Rn surrounded by a dashed line 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. 8 is the second scan data measured by the LiDAR 130.
図8の上段に図示されているポーズ調整前の測定装置100のポーズグラフによれば、ループ検出によってループ辺が検出された段階でループが閉じていない。これにより、図8の下段に図示されている地図データ上では、実世界の同一場所が複数存在している。 According to the pose graph of the measurement device 100 before pose adjustment shown in the upper part of Figure 8, the loop is not closed at the stage when the loop edge is detected by loop detection. As a result, the map data shown in the lower part of Figure 8 shows multiple instances of the same real-world location.
図9は、ポーズ調整前の測定装置100のポーズグラフ及びポーズ調整後の測定装置100のポーズグラフの一例を概略的に示す。図9の上段に図示されている図は、ポーズ調整前の測定装置100のポーズグラフの一例である。図9の下段に図示されている図は、ポーズ調整後の測定装置100のポーズグラフである。 Figure 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 Figure 9 is an example of a pose graph of the measurement device 100 before pose adjustment. The diagram shown in the lower part of Figure 9 is an example of a pose graph of the measurement device 100 after pose adjustment.
図9の上段に図示されているポーズ調整前の測定装置100のポーズグラフは、図7に図示されている測定装置100のポーズグラフと同一である。したがって、図9の上段に図示されているポーズ調整前の測定装置100のポーズグラフに関する主な事項については、記載を省略する。 The pose graph of the measuring device 100 before pose adjustment shown in the upper part of Figure 9 is identical to the pose graph of the measuring device 100 shown in Figure 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 Figure 9 will be omitted.
測定装置100は、ループ辺を生成したことに応じて、ポーズ調整を実行する。測定装置100は、例えば、図8の下段に図示されている領域Rnに含まれる、LiDAR130がn回目に測定した第2スキャンデータを、図8の下段に図示されている領域Rmに含まれる、LiDAR130がm回目に測定した第2スキャンデータに位置合わせすることによって、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100の位置とLiDAR130がn回目に第2スキャンデータを測定したときの測定装置100の位置との間の相対位置を導出する。測定装置100は、導出した相対位置に基づいて、ループ辺の終点である頂点Vnを頂点V'nに調整し、以降では、順々に、頂点Vn-1を頂点V'n-1に調整し、頂点Vn-2を頂点V'n-2に調整し、・・・、頂点Vm+1を頂点V'm+1に調整する。 The measurement device 100 performs pose adjustment in response to generating the loop edge. For example, the measurement device 100 aligns the second scan data measured by the LiDAR 130 the nth time, which is included in the region R n illustrated in the lower part of Fig. 8 , with the second scan data measured by the LiDAR 130 the mth time, which is included in the region R m illustrated in the lower part of Fig. 8 , thereby deriving the relative position between the position of the measurement device 100 when the LiDAR 130 measured the second scan data the mth time and the position of the measurement device 100 when the LiDAR 130 measured the second scan data the nth time. Based on the derived relative positions, the measurement device 100 adjusts vertex Vn , which is the end point of the loop edge, to vertex V'n , and then adjusts vertex Vn -1 to vertex V'n-1 , vertex Vn -2 to vertex V'n -2 , ..., and adjusts vertex Vm+1 to vertex V'm+1 .
図9の下段に図示されている図における黒丸は、ポーズ調整後の測定装置100のポーズグラフの頂点である。図9の下段に図示されている図における実線は、ポーズ調整後の測定装置100のポーズグラフのオドメトリ辺である。 The black circles in the diagram at the bottom of Figure 9 are the vertices of the pose graph of the measurement device 100 after the pose adjustment. The solid lines in the diagram at the bottom of Figure 9 are the odometry edges of the pose graph of the measurement device 100 after the pose adjustment.
図10は、ポーズ調整後の測定装置100のポーズグラフ及びポーズ調整後の測定装置100のポーズグラフに対応する地図データの一例を概略的に示す。図10の上段に図示されている図は、ポーズ調整後の測定装置100のポーズグラフである。図10の下段に図示されている図は、ポーズ調整後の測定装置100のポーズグラフに対応する地図データである。 Figure 10 shows an example of a pose graph of the measuring device 100 after pose adjustment and map data corresponding to the pose graph of the measuring device 100 after pose adjustment. The diagram shown in the upper part of Figure 10 is the pose graph of the measuring device 100 after pose adjustment. The diagram shown in the lower part of Figure 10 is map data corresponding to the pose graph of the measuring device 100 after pose adjustment.
図10の上段に図示されているポーズ調整後の測定装置100のポーズグラフは、図9の下段に図示されているポーズ調整後の測定装置100のポーズグラフと同一である。したがって、図10の上段に図示されているポーズ調整後の測定装置100のポーズグラフに関する主な事項については、記載を省略する。 The pose graph of the measuring device 100 after pose adjustment shown in the upper part of Figure 10 is identical to the pose graph of the measuring device 100 after pose adjustment shown in the lower part of Figure 9. Therefore, a description of the main points regarding the pose graph of the measuring device 100 after pose adjustment shown in the upper part of Figure 10 will be omitted.
図10の下段に図示されている図における点Vmは、LiDAR130がm回目に第2スキャンデータを測定したときの測定装置100のマップ空間上の位置を示す。図10の下段に図示されている図における点Vmは、図10の上段に図示されているポーズ調整後の測定装置100のポーズグラフにおける頂点Vmに対応する。 Point Vm in the diagram shown in the lower part of Fig. 10 indicates the position in map space of the measurement device 100 when the LiDAR 130 measured the second scan data for the mth time. Point Vm in the diagram shown in the lower part of Fig. 10 corresponds to vertex Vm in the pose graph of the measurement device 100 after the pose adjustment shown in the upper part of Fig. 10.
図10の下段に図示されている図における点V'nは、LiDAR130がn回目に第2スキャンデータを測定したときの測定装置100のマップ空間上の位置を示す。図10の下段に図示されている図における点V'nは、図10の上段に図示されているポーズ調整後の測定装置100のポーズグラフにおける頂点V'nに対応する。 Point V' n in the diagram shown in the lower part of Fig. 10 indicates the position in map space of the measurement device 100 when the LiDAR 130 measured the second scan data for the nth time. Point V' n in the diagram shown in the lower part of Fig. 10 corresponds to vertex V' n in the pose graph of the measurement device 100 after the pose adjustment shown in the upper part of Fig. 10.
図10の下段に図示されている図における点線は、測定装置100のマップ空間上の軌跡を表す。図10の下段に図示されている測定装置100のマップ空間上の軌跡は、図10の上段に図示されているポーズ調整後の測定装置100のポーズグラフのオドメトリ辺に対応する。 The dotted line in the diagram shown in the lower part of Figure 10 represents the trajectory of the measurement device 100 in map space. The trajectory of the measurement device 100 in map space shown in the lower part of Figure 10 corresponds to the odometry edge of the pose graph of the measurement device 100 after pose adjustment shown in the upper part of Figure 10.
図10の上段に図示されているポーズ調整前の測定装置100のポーズグラフによれば、ポーズ調整によってループが閉じたことがわかる。したがって、ポーズ調整によって、図10の下段に図示されている地図データ上では、実世界の同一場所が複数存在しなくなった。以上より、ポーズグラフ最適化によって地図データの精度が向上するといえる。 The pose graph of the measuring device 100 before pose adjustment, shown in the upper part of Figure 10, shows 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 Figure 10. From the above, it can be said that pose graph optimization improves the accuracy of map data.
図11は、地図データを生成する処理の流れの他の一例を説明するための説明図である。ここでは、SLAMアルゴリズムを用いて地図データを生成する処理の流れの一例を3つのStepに分けて説明する。尚、LiDAR130が第1レーザ光及び出力方向が第1レーザ光の出力方向と反対である第2レーザ光の2本のレーザ光を同時に出力し、LiDAR130の回転速度が30rpmであり、LiDAR130のスキャン間隔が100msであり、且つ、静止状態のLiDAR130の水平方向のFOVが30度であるものとする。 Figure 11 is an explanatory diagram illustrating 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 is explained in three steps. It is assumed that 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, that the rotation speed of LiDAR 130 is 30 rpm, that the scan interval of LiDAR 130 is 100 ms, and that the horizontal FOV of LiDAR 130 in a stationary state is 30 degrees.
図11の上段に図示されている図は、参照データを生成する処理の一例であるStep1を説明するための説明図である。図11の上段に図示されている図における「Si'」は、LiDAR130によってi回目に測定された第1スキャンデータである。iは自然数である。ここでは、参照データを構成するスキャンデータの数が50個であり、LiDAR130が10s間、第1スキャンデータを測定するものとして、説明を続ける。 The diagram shown in the upper part of Fig. 11 is an explanatory diagram for explaining Step 1, which is an example of a process for generating reference data. "S i '" in the diagram shown in the upper part of Fig. 11 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 continue 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.
LiDAR130のスキャン間隔が100msであり、且つ、LiDAR130が10s間第1スキャンデータを測定するので、LiDAR130は、第1スキャンデータを100回測定する。したがって、100個の第1スキャンデータが存在する。この場合、100個の第1スキャンデータをLiDAR130よって測定された時刻が遅い順に順位付けをし、順位が高い50個の第1スキャンデータを選択することによって、参照データが生成されてよい。 Since the scan interval of LiDAR 130 is 100 ms and LiDAR 130 measures the first scan data for 10 seconds, 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 they were measured by LiDAR 130, and the 50 first scan data with the highest rankings may be selected to generate reference data.
図11の中段に図示されている図は、複数の第2スキャンデータをグループ化する処理の一例であるStep2を説明するための説明図である。図11の中段に図示されている図における「Sj」は、LiDAR130によってj回目に測定された第2スキャンデータである。図11の中段に図示されている図における「Gk」は、k番目にグループ化されたグループである。j及びkは自然数である。 The diagram shown in the middle of Fig. 11 is an explanatory diagram for explaining Step 2, which is an example of a process for grouping a plurality of second scan data. "S j " in the diagram shown in the middle of Fig. 11 is the second scan data measured the jth time by the LiDAR 130. "G k " in the diagram shown in the middle of Fig. 11 is the kth group. j and k are natural numbers.
複数の第2スキャンデータは、例えば、IMU140によって測定された、LiDAR130が複数の第2スキャンデータの各第2スキャンデータを測定したときのLiDAR130の運動データに基づいて、グループ化される。複数の第2スキャンデータは、LiDAR130が各第2スキャンデータを測定したときのLiDAR130の回転角度に基づいて、グループ化される。同一グループにグループ化された第2スキャンデータは、LiDARの回転角度に基づいて統合されてよい。 The multiple second scan data are grouped, for example, based on the movement data of LiDAR 130 measured by IMU 140 when LiDAR 130 measured each of the multiple second scan data. The multiple second scan data are grouped based on the rotation angle of LiDAR 130 when LiDAR 130 measured each of the multiple second scan data. Second scan data grouped into the same group may be integrated based on the rotation angle of the LiDAR.
複数の第2スキャンデータは、例えば、同一グループにグループ化された第2スキャンデータを統合したときのLiDAR130の水平方向のFOVが360度になるように、グループ化される。複数の第2スキャンデータは、例えば、LiDAR130が回転軸lrを中心に半回転する期間の間に測定された第2スキャンデータが同一グループにグループ化されるように、グループ化される。例えば、LiDAR130の回転速度が30rpmであり、且つ、LiDAR130のスキャン間隔が100msである場合、LiDAR130が回転軸lrを中心に半回転する期間の間に時間的に隣接して測定された10個の第2スキャンデータが、同一グループにグループ化される。 The plurality of second scan data are grouped, for example, so that the horizontal FOV of the LiDAR 130 becomes 360 degrees when the second scan data grouped in the same group are combined. The plurality of second scan data are grouped, for example, so that second scan data measured during a period in which the LiDAR 130 rotates halfway around the rotation axis lr are grouped in the same group. For example, if the rotation speed of the LiDAR 130 is 30 rpm and the scan interval of the LiDAR 130 is 100 ms, 10 pieces of second scan data measured adjacent in time during a period in which the LiDAR 130 rotates halfway around the rotation axis lr are grouped in the same group.
複数の第2スキャンデータの各第2スキャンデータは、例えば、参照データに位置合わせされる。複数の第2スキャンデータの各第2スキャンデータは、例えば、複数の第2スキャンデータがグループ化される前に参照データに位置合わせされる。複数の第2スキャンデータの各第2スキャンデータは、複数の第2スキャンデータがグループ化された後に参照データに位置合わせされてもよい。 Each of the multiple second scan data may be aligned to the reference data, for example. Each of the multiple second scan data may be aligned to the reference data before the multiple second scan data are grouped, for example. Each of the multiple second scan data may be aligned to the reference data after the multiple second scan data are grouped.
参照データは、例えば、参照データに位置合わせされた第2スキャンデータに基づいて、更新される。参照データは、例えば、参照データを構成する複数のスキャンデータをLiDAR130よって測定された時刻が遅い順に順位付けをし、順位が最も低いスキャンデータを、参照データに位置合わせされた第2スキャンデータに置き換えることによって、更新される。参照データの更新は、参照データの生成の一例であってよい。 The reference data is updated, for example, based on second scan data aligned with the reference data. The reference data is updated, for example, by ranking the multiple scan data that make up the reference data in descending order of the time measured by LiDAR 130, and replacing the lowest-ranked scan data with second scan data aligned with the reference data. Updating the reference data may be an example of generating reference data.
図11の下段に図示されている図は、SLAMアルゴリズムを用いて地図データ及び測定装置100のポーズグラフを生成する処理の一例であるStep3を説明するための説明図である。図11の下段に図示されている図における「Gk」は、図11の中段に図示されているStep2においてk番目にグループ化されたグループである。 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. "G k " in the diagram shown in the lower part of Fig. 11 is the kth group formed in Step 2 shown in the middle part of Fig. 11.
地図データは、例えば、図11の中段に図示されているStep2においてグループ化された複数の第2スキャンデータに基づいて、グループ単位で生成される。地図データは、例えば、同一グループにグループ化された第2スキャンデータをグループ単位で参照データに位置合わせすることによって、生成される。 The map data is generated in groups based on the multiple second scan data grouped in Step 2 shown in the middle of Figure 11. The map data is generated by aligning the second scan data grouped in the same group with the reference data on a group-by-group basis, for example.
参照データは、例えば、同一グループにグループ化され、且つ、参照データに位置合わせされた第2スキャンデータに基づいて、更新される。参照データは、例えば、参照データを構成する複数のスキャンデータをLiDAR130よって測定された時刻が遅い順に順位付けをし、順位が低いグループを構成する数のスキャンデータを、同一グループにグループ化され、且つ、参照データに位置合わせされた第2スキャンデータに置き換えることによって、更新される。 The reference data is updated, for example, based on second scan data grouped into the same group and aligned with the reference data. The reference data is updated, for example, by ranking the multiple scan data that make up the reference data in descending order of the time measured by LiDAR 130, and replacing the number of scan data that make up the lowest-ranked group with second scan data grouped into the same group and aligned with the reference data.
測定装置100のポーズグラフは、例えば、図11の中段に図示されているStep2においてグループ化された複数の第2スキャンデータに基づいて、グループ単位で生成される。例えば、測定装置100のポーズグラフがグループ単位で生成される場合、同一グループにグループ化された第2スキャンデータをLiDAR130よって測定された時刻が早い順に順位付けをし、順位が最も高い第2スキャンデータをLiDAR130が測定したときの測定装置100の位置を、測定装置100のポーズグラフの頂点とする。 The pose graph of the measuring device 100 is generated in groups, for example, based on the multiple second scan data grouped in Step 2 shown in the middle of Figure 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 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.
地図データ及び測定装置100のポーズグラフを、グループ化された複数の第2スキャンデータに基づいてグループ単位で生成することによって、測定装置100のポーズグラフを構成する頂点の数を少なくすることができる。これにより、ポーズグラフ生成処理やポーズグラフ最適化処理の処理負担を軽減しつつ、回転状態のLiDARによって測定されたスキャンデータ基づいて地図データを生成できる。SLAMアルゴリズムは処理対象のデータの数及び演算数が膨大となり得るアルゴリズムであるので、ポーズグラフ生成処理やポーズグラフ最適化処理の処理負担を軽減できることは重要である。 By generating map data and the pose graph of the measuring device 100 in groups based on multiple grouped second scan data, the number of vertices that make up the pose graph of the measuring device 100 can be reduced. This reduces the processing burden 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 amount of data and perform a huge number of calculations, it is important to be able to reduce the processing burden of the pose graph generation process and pose graph optimization process.
図12は、システム10の一例を概略的に示す。システム10は、測定装置100を備えてよい。システム10は、地図データ生成装置200を備えてよい。 Figure 12 shows a schematic diagram of an example of the system 10. The system 10 may include a measurement device 100. The system 10 may include a map data generation device 200.
測定装置100は、例えば、地図データ生成装置200と通信する。測定装置100は、例えば、ネットワーク20を介して、地図データ生成装置200と通信する。 The measuring device 100 communicates with, for example, the map data generation device 200. The measuring device 100 communicates with the map data generation device 200 via, for example, the network 20.
ネットワーク20は、例えば、LAN(Local Area Network)を含む。LANは、例えば、Wi-Fi(登録商標)等の規格に準拠した無線LANを含む。LANは、イーサネット(登録商標)等の規格に準拠した有線LANを含んでもよい。ネットワーク20は、移動体通信ネットワークを含んでよい。ネットワーク20は、インターネットを含んでよい。ネットワーク20は、ケーブルを含んでもよい。 The network 20 may include, for example, a LAN (Local Area Network). The LAN may include, 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 include a mobile communication network. The network 20 may include the Internet. The network 20 may also include cables.
測定装置100は、例えば、各種データを地図データ生成装置200に送信する。測定装置100は、例えば、測定装置100によって測定された測定データを地図データ生成装置200に送信する。測定装置100は、測定装置100が備えるカメラによって撮像された撮像画像データを地図データ生成装置200に送信してもよい。 The measuring device 100, for example, transmits various data to the map data generation device 200. The measuring device 100, for example, transmits measurement data measured by the measuring device 100 to the map data generation device 200. The measuring device 100 may also transmit captured image data captured by a camera provided in the measuring device 100 to the map data generation device 200.
地図データ生成装置200は、地図データを生成する。地図データ生成装置200は、測定装置100が地図データを生成する場合と同様にして、地図データを生成してよい。 The map data generation device 200 generates map data. The map data generation device 200 may generate map data in the same manner as when the measurement device 100 generates map data.
地図データ生成装置200は、例えば、測定装置100から取得した各種データに基づいて、地図データを生成する。地図データ生成装置200は、例えば、測定装置100から、ネットワーク20を介して、各種データを受信することによって、測定装置100から各種データを取得する。 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.
地図データ生成装置200は、例えば、測定装置100によって測定された測定データに基づいて、地図データを生成する。地図データ生成装置200は、測定装置100が備えるカメラによって撮像された撮像画像データに基づいて、地図データを生成してもよい。 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.
地図データ生成装置200は、測定装置100のポーズグラフを生成してもよい。地図データ生成装置200は、測定装置100がポーズグラフを生成する場合と同様にして、測定装置100のポーズグラフを生成してよい。 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 the measurement device 100 generates a pose graph.
地図データ生成装置200は、ネットワーク20を介して、生成した各種データを測定装置100に送信してよい。地図データ生成装置200は、例えば、地図データを測定装置100に送信する。地図データ生成装置200は、測定装置100のポーズグラフを測定装置100に送信してもよい。 The map data generation device 200 may transmit the various generated data to the measuring device 100 via the network 20. The map data generation device 200 may, for example, transmit map data to the measuring device 100. The map data generation device 200 may also transmit the pose graph of the measuring device 100 to the measuring device 100.
図13は、測定装置100の機能構成の一例を概略的に示す。測定装置100は、生成部101、格納部102、取得部104、グルーピング部106、及び通信部108を備える。生成部101は、測定データ生成部103、参照データ生成部105、地図データ生成部107、及びポーズグラフ生成部109を有する。尚、測定装置100がこれらの全ての構成を含むことは必須とは限らない。 Figure 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 for the measuring device 100 to include all of these components.
格納部102は、各種データを格納する。格納部102は、例えば、各種閾値を格納する。格納部102は、例えば、誤差閾値を格納する。格納部102は、例えば、相対位置閾値を格納する。格納部102は、測定間隔閾値を格納してよい。格納部102は、参照データを構成するスキャンデータの数を示すスキャン数情報を格納してもよい。 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 also store scan number information indicating the number of scan data that make up the reference data.
取得部104は、各種データを取得する。取得部104は、例えば、LiDAR130から各種データを取得する。取得部104は、例えば、IMU140から各種データを取得する。取得部104は、取得した各種データを格納部102に格納してよい。 The acquisition unit 104 acquires various data. For example, the acquisition unit 104 acquires various data from the LiDAR 130. For example, the acquisition unit 104 acquires various data from the IMU 140. The acquisition unit 104 may store the acquired various data in the storage unit 102.
取得部104は、例えば、LiDAR130よって予め定められた期間の間に測定された複数の第1スキャンデータを取得する。取得部104は、例えば、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データを取得する。取得部104は、第1取得部の一例であってよい。 The acquisition unit 104 acquires, for example, multiple pieces of first scan data measured by the LiDAR 130 over a predetermined period of time. The acquisition unit 104 acquires, for example, movement data of the LiDAR 130 measured by the IMU 140 over the predetermined period of time, each piece of first scan data from the multiple pieces of first scan data. The acquisition unit 104 may be an example of a first acquisition unit.
取得部104は、例えば、LiDAR130によってLiDAR130が回転軸lrを中心に半回転する期間以上の予め定められた期間の間に測定された複数の第1スキャンデータと、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとを取得する。取得部104は、例えば、LiDAR130によってLiDAR130が回転軸lrを中心に半回転する期間より長い予め定められた期間の間に測定された複数の第1スキャンデータと、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとを取得する。取得部104は、LiDAR130によってLiDAR130が回転軸lrを中心に半回転する期間である予め定められた期間の間に測定された複数の第1スキャンデータと、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとを取得してもよい。 The acquisition unit 104 acquires, for example, a plurality of first scan data measured by the LiDAR 130 during a predetermined period that is equal to or longer than the period for the LiDAR 130 to rotate half a revolution around the rotation axis lr , and movement data of the LiDAR 130 measured during the predetermined period by the IMU 140 when the LiDAR 130 measured each of the first scan data of the plurality of first scan data. The acquisition unit 104 acquires, for example, a plurality of first scan data measured by the LiDAR 130 during a predetermined period that is longer than the period for the LiDAR 130 to rotate half a revolution around the rotation axis lr , and movement data of the LiDAR 130 measured during the predetermined period by the IMU 140 when the LiDAR 130 measured each of the first scan data of the plurality of first scan data. The acquisition unit 104 may acquire a plurality of first scan data measured by the LiDAR 130 during a predetermined period during which the LiDAR 130 rotates half a revolution around the rotation axis l/ r , and movement data of the LiDAR 130 measured by the IMU 140 during the predetermined period when the LiDAR 130 measured each of the first scan data of the plurality of first scan data.
取得部104は、例えば、LiDAR130によって測定された第2スキャンデータを取得する。取得部104は、例えば、IMU140によって測定された、LiDAR130が当該複数の第2スキャンデータの各第2スキャンデータを測定したときのLiDAR130の運動データを取得する。取得部104は、第2取得部の一例であってよい。 The acquisition unit 104 acquires, for example, second scan data measured by the LiDAR 130. The acquisition unit 104 acquires, for example, movement data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each second scan data of the plurality of second scan data. The acquisition unit 104 may be an example of a second acquisition unit.
生成部101は、各種データを生成する。生成部101は、例えば、格納部102に格納されている各種データに基づいて、各種データを生成する。生成部101は、例えば、取得部104によって取得された各種データに基づいて、各種データを生成する。生成部101は、生成した各種データに基づいて、各種データを生成してもよい。生成部101は、生成した各種データを格納部102に格納してよい。 The generation unit 101 generates various data. The generation unit 101 generates various data, for example, based on various data stored in the storage unit 102. The generation unit 101 generates various data, for example, based on various data acquired by the acquisition unit 104. The generation unit 101 may generate various data based on the generated various data. The generation unit 101 may store the generated various data in the storage unit 102.
測定データ生成部103は、測定データを生成する。測定データ生成部103は、例えば、LiDAR130がスキャンデータを測定したことに応じて、測定データを生成する。測定データ生成部103は、IMU140がLiDAR130の運動を測定したことに応じて、測定データを生成してもよい。 The measurement data generation unit 103 generates measurement data. For example, the measurement data generation unit 103 generates measurement data in response to the LiDAR 130 measuring scan data. The measurement data generation unit 103 may also generate measurement data in response to the IMU 140 measuring the movement of the LiDAR 130.
参照データ生成部105は、参照データを生成する。参照データ生成部105は、例えば、LiDAR130によって測定されたスキャンデータに基づいて、参照データを生成する。 The reference data generation unit 105 generates reference data. The reference data generation unit 105 generates reference data based on, for example, scan data measured by the LiDAR 130.
参照データ生成部105は、例えば、LiDAR130によって測定された複数の第1スキャンデータと、IMU140によって測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとに基づいて、参照データを生成する。参照データ生成部105は、例えば、LiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の運動データに基づいてLiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の回転角度を特定し、LiDAR130が当該各第1スキャンデータを測定したときのLiDAR130の回転角度に基づいて当該各第1スキャンデータを統合することによって、参照データを生成する。参照データ生成部105は、例えば、LiDAR130が一の第1スキャンデータを測定し、その後、時間的に隣接して他の第1スキャンデータを測定した場合において、LiDAR130が当該一の第1スキャンデータを測定したときのLiDAR130の回転角度とLiDAR130が当該他の第1スキャンデータを測定したときのLiDAR130の回転角度との間の相対回転角度を特定し、当該他の第1スキャンデータに対して相対回転角度の逆回転行列を適用することにより当該他の第1スキャンデータを当該一の第1スキャンデータに位置合わせすることによって、当該各第1スキャンデータを統合する。 The reference data generation unit 105 generates reference data, for example, based on multiple first scan data measured by the LiDAR 130 and the movement data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each of the multiple first scan data. The reference data generation unit 105 generates reference data, for example, by identifying the 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. For example, when the LiDAR 130 measures one piece of first scan data and then measures other pieces 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 applying an inverse rotation matrix of the relative rotation angle to the other piece of first scan data to align the other piece of first scan data with the one piece of first scan data.
参照データ生成部105は、ICPアルゴリズムによって複数の第1スキャンデータの各第1スキャンデータを位置合わせした結果にさらに基づいて各第1スキャンデータを統合することによって、参照データを生成してもよい。参照データ生成部105は、例えば、ICPアルゴリズムによって一の第1スキャンデータの次に測定された他の第1スキャンデータを当該一の第1スキャンデータに位置合わせすることによって、当該各第1スキャンデータを統合する。参照データ生成部105は、NDTアルゴリズムによって複数の第1スキャンデータの各第1スキャンデータを位置合わせした結果にさらに基づいて各第1スキャンデータを統合することによって、参照データを生成してもよい。 The reference data generation unit 105 may generate reference data by integrating each of the first scan data based on the result of aligning each of the first scan data of the multiple first scan data using an ICP algorithm. The reference data generation unit 105 integrates each of the first scan data, for example, by aligning other first scan data measured after one of the first scan data with the first scan data using an ICP algorithm. The reference data generation unit 105 may generate reference data by integrating each of the first scan data based on the result of aligning each of the first scan data of the multiple first scan data using an NDT algorithm.
参照データ生成部105は、例えば、複数の第1スキャンデータの数が、格納部102に格納されているスキャン数情報によって示されるスキャンデータの数より多い場合、当該複数の第1スキャンデータから、参照データを構成する第1スキャンデータを選択することによって、参照データを生成する。ここでは、スキャン数情報によって示されるスキャンデータの数がNr個であるものとして、説明を続ける。Nrは自然数である。 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, from the plurality of first scan data, first scan data that constitute the reference data. Here, the explanation will continue assuming that the number of scan data indicated by the scan number information is Nr , where Nr is a natural number.
例えば、参照データ生成部105は、当該複数の第1スキャンデータをLiDAR130よって測定された時刻が遅い順に順位付けをし、順位が高いNr個の第1スキャンデータを、参照データを構成する第1スキャンデータとして選択する。その後、参照データ生成部105は、選択したNr個の第1スキャンデータを統合することによって、参照データを生成する。 For example, the reference data generation unit 105 ranks the plurality of first scan data in descending order of the time measured by the LiDAR 130, and selects the Nr first scan data with the highest rank as first scan data constituting the reference data. Then, the reference data generation unit 105 generates the reference data by integrating the selected Nr first scan data.
地図データ生成部107は、地図データを生成する。地図データ生成部107は、例えば、SLAMアルゴリズムを用いて地図データを生成する。 The map data generation unit 107 generates map data. The map data generation unit 107 generates map data using, for example, a SLAM algorithm.
地図データ生成部107は、例えば、参照データ生成部105によって生成された参照データと、LiDAR130によって測定された複数の第2スキャンデータとに基づいて、地図データを生成する。地図データ生成部107は、例えば、ICPアルゴリズムによって第2スキャンデータを参照データに位置合わせすることによって、地図データを生成する。地図データ生成部107は、NDTアルゴリズムによって第2スキャンデータを参照データに位置合わせすることによって、地図データを生成してもよい。 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 multiple pieces of second scan data measured by the LiDAR 130. The map data generation unit 107 generates 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 map data by aligning the second scan data with the reference data using an NDT algorithm.
地図データ生成部107は、例えば、IMU140によって測定された、LiDAR130が複数の第2スキャンデータの各第2スキャンデータを測定したときのLiDAR130の運動データにさらに基づいて、地図データを生成する。地図データ生成部107は、例えば、LiDAR130が当該各第2スキャンデータを測定したときのLiDAR130の運動データに基づいてLiDAR130が当該各第2スキャンデータを測定したときの測定装置100の位置及びLiDAR130の回転角度を特定し、LiDAR130が当該各第2スキャンデータを測定したときの測定装置100の位置及びLiDAR130の回転角度に基づいて当該各第2スキャンデータを統合することによって、地図データを生成する。地図データ生成部107は、例えば、LiDAR130が一の第2スキャンデータを測定し、その後、時間的に隣接して他の第2スキャンデータを測定した場合において、LiDAR130が当該一の第2スキャンデータを測定したときの測定装置100の位置とLiDAR130が当該他の第2スキャンデータを測定したときの測定装置100の位置との間の相対位置、及び、LiDAR130が当該一の第2スキャンデータを測定したときのLiDAR130の回転角度とLiDAR130が当該他の第2スキャンデータを測定したときのLiDAR130の回転角度との間の相対回転角度を特定し、当該他の第2スキャンデータに対して相対位置に対応する平行移動行列及び相対回転角度の逆回転行列を適用することにより当該他の第2スキャンデータを当該一の第2スキャンデータに位置合わせすることによって、当該各第2スキャンデータを統合する。 The map data generation unit 107 generates map data further based on, for example, movement data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each of the multiple pieces of second scan data. The map data generation unit 107 generates map data by, for example, identifying the position of the measuring device 100 and the rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of second scan data based on the movement data of the LiDAR 130 when the LiDAR 130 measured each piece of second scan data, and integrating each piece of 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 piece of 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 measurement device 100 when the LiDAR 130 measured the one piece of second scan data and the position of the measurement 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.
参照データ生成部105は、例えば、地図データ生成部107が第2スキャンデータを参照データに位置合わせしたことに応じて、参照データを更新する。参照データ生成部105は、例えば、参照データを構成するNr個のスキャンデータのうちLiDAR130よって測定された時刻が最も早いスキャンデータを地図データ生成部107により参照データに位置合わせされた第2スキャンデータに置き換えることによって、参照データを更新する。参照データ生成部105は、例えば、参照データを構成するNr個のスキャンデータを、LiDAR130よって測定された時刻が遅い順に順位付けをし、順位が最も低いスキャンデータを地図データ生成部107により参照データに位置合わせされた第2スキャンデータに置き換えることによって、参照データを更新する。地図データ生成部107は、参照データ生成部105が参照データを更新した場合、参照データ生成部105によって更新された参照データと、LiDAR130によって測定された複数の第2スキャンデータとに基づいて、地図データを生成してよい。 The reference data generation unit 105 updates the reference data in response to, for example, the map data generation unit 107 aligning the second scan data with the reference data. The reference data generation unit 105 updates the reference data, for example, by replacing the scan data measured by the LiDAR 130 earliest among the Nr scan data constituting the reference 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, ranking the Nr scan data constituting the reference data in descending order of the time measured by the LiDAR 130 and replacing the scan data with the lowest ranking with the 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 multiple second scan data measured by the LiDAR 130.
格納部102は、更新後の参照データを格納してよい。格納部102は、更新前の参照データを格納してもよい。 The storage unit 102 may store the updated reference data. The storage unit 102 may also store the reference data before the update.
ポーズグラフ生成部109は、測定装置100のポーズグラフを生成する。ポーズグラフ生成部109は、例えば、SLAMアルゴリズムを用いて測定装置100のポーズグラフを生成する。地図データ生成部107は、ポーズグラフ生成部109によって生成された測定装置100のポーズグラフにさらに基づいて、地図データを生成してよい。 The pose graph generation unit 109 generates a pose graph for the measuring device 100. The pose graph generation unit 109 generates a pose graph for the measuring device 100 using, for example, a SLAM algorithm. The map data generation unit 107 may generate map data further based on the pose graph for the measuring device 100 generated by the pose graph generation unit 109.
ポーズグラフ生成部109は、例えば、参照データ生成部105によって生成された参照データと、LiDAR130によって測定された複数の第2スキャンデータとに基づいて、測定装置100のポーズグラフを生成する。ポーズグラフ生成部109は、LiDAR130がスキャンデータを測定したときの測定装置100の位置を、測定装置100のポーズグラフの頂点にすることによって、測定装置100のポーズグラフを生成する。ポーズグラフ生成部109は、例えば、LiDAR130が一のスキャンデータを測定し、その後、時間的に隣接して他のスキャンデータを測定した場合において、LiDAR130が当該一のスキャンデータを測定したときの測定装置100の位置とLiDAR130が当該他のスキャンデータを測定したときの測定装置100の位置との間の相対位置を、測定装置100のポーズグラフのオドメトリ辺にすることによって、測定装置100のポーズグラフを生成する。 The pose graph generation unit 109 generates a pose graph for the measurement device 100 based on, for example, the reference data generated by the reference data generation unit 105 and multiple pieces of second scan data measured by the LiDAR 130. The pose graph generation unit 109 generates the pose graph for the measurement device 100 by setting the position of the measurement device 100 when the LiDAR 130 measured the scan data as the vertex of the pose graph for the measurement device 100. For example, when the LiDAR 130 measures one piece of scan data and then measures another piece of scan data adjacent in time, the pose graph generation unit 109 generates the pose graph for the measurement device 100 by setting the relative positions between the position of the measurement device 100 when the LiDAR 130 measured the one piece of scan data and the position of the measurement device 100 when the LiDAR 130 measured the other piece of scan data as odometry edges of the pose graph for the measurement device 100.
ポーズグラフ生成部109は、例えば、LiDAR130が複数の第2スキャンデータの各第2スキャンデータを測定したときの測定装置100の位置に基づいて、ループ検出を実行する。ポーズグラフ生成部109は、例えば、測定装置100のポーズグラフの第1頂点においてLiDAR130が第2スキャンデータを測定した時刻から測定装置100のポーズグラフの第2頂点においてLiDAR130が第2スキャンデータを測定した時刻までの間の測定間隔が格納部102に格納されている測定間隔閾値より長く、且つ、当該第1頂点によって表される測定装置100の位置と当該第2頂点によって表される測定装置100の位置との間の相対位置が格納部102に格納されている相対位置閾値より短い場合、ループを検出する。 The pose graph generation unit 109 performs loop detection, for example, based on the position of the measurement device 100 when the LiDAR 130 measured each of the multiple pieces 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.
ポーズグラフ生成部109は、ループを検出したことに応じて、ループ辺を生成してよい。ここでは、ループ辺の始点である頂点が当該第1頂点であり、ループ辺の終点である頂点が当該第2頂点であるものとして説明を続ける。 The pose graph generation unit 109 may generate a loop edge in response to detecting a loop. Here, we will continue the explanation 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.
ポーズグラフ生成部109は、ループ辺を生成したことに応じて、ポーズ調整を実行してよい。例えば、ポーズグラフ生成部109は、ループ辺の終点である当該第2頂点においてLiDAR130によって測定された第2スキャンデータを、ループ辺の始点である当該第1頂点においてLiDAR130によって測定された第2スキャンデータに位置合わせすることによって、当該第1頂点によって表される測定装置100の位置と当該第2頂点によって表される測定装置100の位置との間の相対位置を導出する。次に、ポーズグラフ生成部109は、導出した相対位置に基づいて当該第2頂点を調整する。その後、ポーズグラフ生成部109は、調整された当該第2頂点に基づいて、当該第1頂点においてLiDAR130が第2スキャンデータを測定した時刻よりも後に測定された第2スキャンデータに対応する測定装置100のポーズグラフのその他の頂点を順々に調整する。 The pose graph generator 109 may perform pose adjustment in response to generating a loop edge. For example, the pose graph generator 109 aligns 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, to derive 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. 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 in 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.
グルーピング部106は、LiDAR130によって測定された複数の第2スキャンデータをグループ化する。グルーピング部106は、例えば、IMU140によって測定された、LiDAR130が当該複数の第2スキャンデータの各第2スキャンデータを測定したときのLiDAR130の運動データに基づいて、当該複数の第2スキャンデータをグループ化する。グルーピング部106は、例えば、LiDAR130が当該各第2スキャンデータを測定したときのLiDAR130の回転角度に基づいて、当該複数の第2スキャンデータをグループ化する。 The grouping unit 106 groups multiple pieces of second scan data measured by the LiDAR 130. The grouping unit 106 groups the multiple pieces of second scan data, for example, based on the movement 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 multiple pieces of second scan data, for example, based on the rotation angle of the LiDAR 130 when the LiDAR 130 measured each piece of second scan data.
グルーピング部106は、例えば、同一グループにグループ化された第2スキャンデータを統合したときのLiDAR130の水平方向のFOVが360度になるように、当該複数の第2スキャンデータをグループ化する。グルーピング部106は、例えば、LiDAR130が回転軸lrを中心に半回転する期間の間に測定された第2スキャンデータを同一グループにグループ化することによって、当該複数の第2スキャンデータをグループ化する。ここでは、Ng個の第2スキャンデータを同一グループにグループ化するものとして、説明を続ける。Ng個は自然数である。 The grouping unit 106 groups the plurality of second scan data, for example, so that the horizontal FOV of the LiDAR 130 becomes 360 degrees when the grouped second scan data are integrated. The grouping unit 106 groups the plurality of second scan data, for example, by grouping the second scan data measured during a period in which the LiDAR 130 makes a half rotation around the rotation axis lr into the same group. Here, the description will continue assuming that Ng pieces of second scan data are grouped into the same group, where Ng is a natural number.
地図データ生成部107は、例えば、グルーピング部106が当該複数の第2スキャンデータをグループ化する前に、当該各第2スキャンデータを参照データに位置合わせする。地図データ生成部107は、例えば、グルーピング部106が当該複数の第2スキャンデータをグループ化した後に、当該各第2スキャンデータを参照データに位置合わせしてもよい。 The map data generation unit 107 may, for example, align each piece of second scan data with the reference data before the grouping unit 106 groups the pieces of second scan data. The map data generation unit 107 may, for example, align each piece of second scan data with the reference data after the grouping unit 106 groups the pieces of second scan data.
地図データ生成部107は、例えば、参照データ生成部105によって生成された参照データと、グルーピング部106によってグループ化された当該複数の第2スキャンデータとに基づいて、地図データをグループ単位で生成する。地図データ生成部107は、例えば、グルーピング部106によって同一グループにグループ化された第2スキャンデータを参照データに位置合わせすることによって、地図データをグループ単位で生成する。 The map data generation unit 107 generates map data in groups, for example, based on the reference data generated by the reference data generation unit 105 and the multiple second scan data grouped by the grouping unit 106. The map data generation unit 107 generates map data in groups, for example, by aligning the second scan data grouped into the same group by the grouping unit 106 with the reference data.
地図データ生成部107は、例えば、同一グループにグループ化されたNg個の第2スキャンデータを参照データに同時に位置合わせする。地図データ生成部107は、同一グループにグループ化されたNg個の第2スキャンデータを参照データに個別に位置合わせしてもよい。 For example, the map data generation unit 107 simultaneously aligns the Ng pieces of second scan data grouped into the same group with the reference data. Alternatively, the map data generation unit 107 may individually align the Ng pieces of second scan data grouped into the same group with the reference data.
参照データ生成部105は、例えば、グルーピング部106によって同一グループにグループ化された第2スキャンデータに基づいて、参照データを更新する。参照データ生成部105は、例えば、地図データ生成部107が同一グループにグループ化された第2スキャンデータを参照データに位置合わせしたことに応じて、参照データを更新する。参照データ生成部105は、例えば、参照データを構成するNr個のスキャンデータをLiDAR130よって測定された時刻が遅い順に順位付けをし、順位が低いNg個のスキャンデータを、グルーピング部106によって同一グループにグループ化され、且つ、地図データ生成部107によって参照データに位置合わせされたNg個の第2スキャンデータに置き換えることによって、参照データを更新する。 The reference data generation unit 105 updates the reference data, for example, based on the second scan data grouped into the same group by the grouping unit 106. The reference data generation unit 105 updates the reference data, for example, in response to the map data generation unit 107 aligning the second scan data grouped into the same group with the reference data. The reference data generation unit 105 updates the reference data, for example, by ranking the Nr scan data constituting the reference data in descending order of the time measured by the LiDAR 130 and replacing the Ng scan data with the lowest rankings with the Ng second scan data that have been grouped into the same group by the grouping unit 106 and aligned with the reference data by the map data generation unit 107.
ポーズグラフ生成部109は、例えば、参照データ生成部105によって生成された参照データと、グルーピング部106によってグループ化された複数の第2スキャンデータとに基づいて、測定装置100のポーズグラフをグループ単位で生成する。ポーズグラフ生成部109は、例えば、同一グループにグループ化されたNg個の第2スキャンデータのうちLiDAR130よって測定された時刻が最も早い第2スキャンデータをLiDAR130が測定したときの測定装置100の位置を、測定装置100のポーズグラフの頂点とすることによって、測定装置100のポーズグラフをグループ単位で生成する。ポーズグラフ生成部109は、例えば、同一グループにグループ化されたNg個の第2スキャンデータをLiDAR130よって測定された時刻が早い順に順位付けをし、順位が最も高い第2スキャンデータをLiDAR130が測定したときの測定装置100の位置を、測定装置100のポーズグラフの頂点とすることによって、測定装置100のポーズグラフをグループ単位で生成する。 The pose graph generation unit 109 generates a pose graph for the measurement device 100 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 pose graph generation unit 109 generates a pose graph for the measurement device 100 for each group, for example, by setting the position of the measurement device 100 when the LiDAR 130 measured the second scan data that was measured earliest among the N g pieces of second scan data grouped into the same group as a vertex of the pose graph for the measurement device 100. The pose graph generation unit 109 generates a pose graph for the measurement device 100 for each group, for example, by ranking the N g pieces of second scan data grouped into the same group in descending order of the time of measurement by the LiDAR 130, and setting the position of the measurement device 100 when the LiDAR 130 measured the second scan data with the highest ranking as a vertex of the pose graph for the measurement device 100.
通信部108は、地図データ生成装置200と通信する。通信部108は、例えば、ネットワーク20を介して、地図データ生成装置200と通信する。 The communication unit 108 communicates with the map data generation device 200. The communication unit 108 communicates with the map data generation device 200, for example, via the network 20.
通信部108は、例えば、地図データ生成装置200に各種データを送信する。通信部108は、例えば、生成部101によって生成された各種データを送信する。通信部108は、例えば、格納部102に格納されている各種データを送信する。通信部108は、例えば、取得部104によって取得された各種データを送信する。 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.
通信部108は、例えば、地図データ生成装置200から各種データを受信する。通信部108は、例えば、地図データ生成装置200によって生成された地図データを受信する。通信部108は、地図データ生成装置200によって生成された測定装置100のポーズグラフを受信してもよい。 The communication unit 108 receives various data from, for example, 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.
図14は、地図データ生成装置200の機能構成の一例を概略的に示す。地図データ生成装置200は、生成部201、格納部202、取得部204、グルーピング部206、及びデータ送信部208を備える。生成部201は、参照データ生成部205、地図データ生成部207、及びポーズグラフ生成部209を有する。尚、地図データ生成装置200がこれらの全ての構成を含むことは必須とは限らない。 Figure 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. Note that it is not essential for the map data generation device 200 to include all of these components.
格納部202は、各種データを格納する。格納部202は、格納部102によって格納される各種データと同様の各種データを格納する。 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.
取得部204は、各種データを取得する。取得部204は、取得した各種データを格納部202に格納してよい。 The acquisition unit 204 acquires various data. The acquisition unit 204 may store the acquired various data in the storage unit 202.
取得部204は、例えば、測定装置100から各種データを取得する。取得部204は、例えば、測定装置100から、ネットワーク20を介して、各種データを受信することによって、測定装置100から各種データを取得する。 The acquisition unit 204 acquires various data from, for example, the measurement device 100. The acquisition unit 204 acquires various data from the measurement device 100, for example, by receiving the various data from the measurement device 100 via the network 20.
取得部204は、例えば、取得部104が取得する各種データと同様の各種データを取得する。取得部204は、例えば、LiDAR130よって予め定められた期間の間に測定された複数の第1スキャンデータを取得する。取得部204は、例えば、IMU140によって当該予め定められた期間の間に測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データを取得する。取得部204は、例えば、LiDAR130によって測定された第2スキャンデータを取得する。取得部204は、例えば、IMU140によって測定された、LiDAR130が当該複数の第2スキャンデータの各第2スキャンデータを測定したときのLiDAR130の運動データを取得する。取得部204は、測定データを取得してもよい。 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, multiple pieces of first scan data measured by the LiDAR 130 over a predetermined period of time. The acquisition unit 204 acquires, for example, movement data of the LiDAR 130 measured by the IMU 140 over the predetermined period of time when the LiDAR 130 measured each piece of first scan data from the multiple pieces 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, movement data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each piece of second scan data from the multiple pieces of second scan data. The acquisition unit 204 may also acquire measurement data.
取得部204は、第1取得部の一例であってよい。取得部204は、第2取得部の一例であってよい。 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.
生成部201は、各種データを生成する。生成部201は、例えば、格納部202に格納されている各種データに基づいて、各種データを生成する。生成部201は、例えば、取得部204によって取得された各種データに基づいて、各種データを生成する。生成部201は、生成した各種データに基づいて、各種データを生成してもよい。生成部201は、生成した各種データを格納部202に格納してよい。 The generation unit 201 generates various data. For example, the generation unit 201 generates various data based on various data stored in the storage unit 202. For example, the generation unit 201 generates various data based on various data acquired by the acquisition unit 204. The generation unit 201 may generate various data based on the generated various data. The generation unit 201 may store the generated various data in the storage unit 202.
参照データ生成部205は、参照データを生成する。参照データ生成部205は、例えば、LiDAR130によって測定された複数の第1スキャンデータと、IMU140によって測定された、LiDAR130が当該複数の第1スキャンデータの各第1スキャンデータを測定したときのLiDAR130の運動データとに基づいて、参照データを生成する。参照データ生成部205は、参照データ生成部105と同様の機能を有してよい。 The reference data generation unit 205 generates reference data. The reference data generation unit 205 generates the reference data based on, for example, multiple pieces of first scan data measured by the LiDAR 130 and the movement data of the LiDAR 130 measured by the IMU 140 when the LiDAR 130 measured each piece of first scan data of the multiple pieces of first scan data. The reference data generation unit 205 may have the same functions as the reference data generation unit 105.
地図データ生成部207は、地図データを生成する。地図データ生成部207は、例えば、SLAMアルゴリズムを用いて地図データを生成する。 The map data generation unit 207 generates map data. The map data generation unit 207 generates map data using, for example, the SLAM algorithm.
地図データ生成部207は、例えば、参照データ生成部205によって生成された参照データと、LiDAR130によって測定された複数の第2スキャンデータとに基づいて、地図データを生成する。地図データ生成部207は、地図データ生成部107と同様の機能を有してよい。 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 multiple pieces of second scan data measured by the LiDAR 130. The map data generation unit 207 may have the same functions as the map data generation unit 107.
ポーズグラフ生成部209は、測定装置100のポーズグラフを生成する。ポーズグラフ生成部209は、例えば、SLAMアルゴリズムを用いて測定装置100のポーズグラフを生成する。 The pose graph generation unit 209 generates a pose graph for the measurement device 100. The pose graph generation unit 209 generates a pose graph for the measurement device 100 using, for example, the SLAM algorithm.
ポーズグラフ生成部209は、例えば、参照データ生成部205によって生成された参照データと、LiDAR130によって測定された複数の第2スキャンデータとに基づいて、測定装置100のポーズグラフを生成する。ポーズグラフ生成部209は、ポーズグラフ生成部109と同様の機能を有してよい。 The pose graph generator 209 generates a pose graph for the measurement device 100 based on, for example, the reference data generated by the reference data generator 205 and multiple pieces of second scan data measured by the LiDAR 130. The pose graph generator 209 may have the same functions as the pose graph generator 109.
データ送信部208は、ネットワーク20を介して、測定装置100に各種データを送信する。データ送信部208は、例えば、測定装置100に、生成部201によって生成された各種データを送信する。 The data transmission unit 208 transmits various data to the measurement device 100 via the network 20. The data transmission unit 208 transmits, for example, various data generated by the generation unit 201 to the measurement device 100.
図15は、測定装置100又は地図データ生成装置200として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、上記実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、上記実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、上記実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又は全てに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。 Figure 15 shows a schematic diagram of 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 embodiments, or can cause the computer 1200 to perform operations or one or more "parts" associated with the device according to the above embodiments, and/or can cause the computer 1200 to perform a process or steps of the process according to the above embodiments. 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.
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボード1242のようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。 The computer 1200 according to this embodiment includes a CPU 1212, RAM 1214, and 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.
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。 The CPU 1212 operates according to programs stored in the ROM 1230 and RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer provided in the RAM 1214 or into the graphics controller itself, and causes the image data to be displayed on the display device 1218.
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD-ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。 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.
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。 ROM 1230 stores therein a boot program and the like that is executed by computer 1200 upon activation, and/or programs that depend on the hardware of computer 1200. I/O chip 1240 may also connect various I/O units to I/O controller 1220 via USB ports, parallel ports, serial ports, keyboard ports, mouse ports, etc.
プログラムは、DVD-ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。 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 storage device 1224, RAM 1214, or ROM 1230, which are also examples of computer-readable storage media, and executed by CPU 1212. The information processing described in these programs is read by computer 1200, resulting in cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing the operation or processing of information in accordance with the use of computer 1200.
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。 For example, when communication is performed between computer 1200 and an external device, CPU 1212 may execute a communication program loaded into RAM 1214 and instruct communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of CPU 1212, communication interface 1222 reads transmission data stored in a transmission buffer area provided in RAM 1214, storage device 1224, DVD-ROM 1227, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes received data received from the network to a reception buffer area or the like provided on the recording medium.
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD-ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。 The CPU 1212 may also cause all or a necessary portion of a file or database stored on an external recording medium such as the storage device 1224, DVD drive 1226 (DVD-ROM 1227), IC card, etc. to be read into the RAM 1214, and perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write the processed data back to the external recording medium.
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。 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. CPU 1212 may perform various types of processing on data read from 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 program's instruction sequence, and write the results back to RAM 1214. CPU 1212 may also search for information in files, databases, 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, 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.
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。 The programs or software modules described above may be stored on computer-readable storage media on or near computer 1200. Recording media such as a hard disk or RAM provided within a server system connected to a dedicated communications network or the Internet can also be used as computer-readable storage media, thereby providing the programs to computer 1200 via the network.
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。 The blocks in the flowcharts and block diagrams in this embodiment may represent stages of a process in which an operation is performed or "parts" of a device 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. Dedicated circuitry may include digital and/or analog hardware circuitry, and may include integrated circuits (ICs) and/or discrete circuits. Programmable circuitry may include reconfigurable hardware circuitry including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements, such as field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs).
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。 A computer-readable storage medium may include any tangible device capable of storing instructions executed by a suitable 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 flowchart or block diagram. 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.
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。 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.
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。 The 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 to a programmable circuit, such that the processor or programmable circuit 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.
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 The present invention has been described above using embodiments, but the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be clear 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.
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。 The order of execution 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" or "prior to," and it should be noted that processes can be performed in any order unless the output of a previous process is used in a subsequent process. Even if the operational flow in the claims, specifications, and drawings is described using terms such as "first," "next," etc. for convenience, this does not mean that the processes must be performed in that order.
10 システム、20 ネットワーク、100 測定装置、101 生成部、102 格納部、103 測定データ生成部、104 取得部、105 参照データ生成部、106 グルーピング部、107 地図データ生成部、108 通信部、109 ポーズグラフ生成部、110 ボックス部、120 ベース部、121 底面部、122 搭載部、124 支持部、130 LiDAR、135 出力面、140 IMU、150 モータ、160 スリップリング、200 地図データ生成装置、201 生成部、202 格納部、204 取得部、205 参照データ生成部、206 グルーピング部、207 地図データ生成部、208 データ送信部、209 ポーズグラフ生成部、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1226 DVDドライブ、1227 DVD-ROM、1230 ROM、1240 入出力チップ、1242 キーボード 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 (16)
SLAM(Simultaneous Localization and Mapping)アルゴリズムを用いて地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARによって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得部と、
前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部と、
前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARによって測定された複数の第2スキャンデータを取得する第2取得部と、
前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部と
を備える、システム。 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 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.
前記第1取得部は、前記LiDARが前記回転軸を中心に半回転する期間以上の前記予め定められた期間の間に測定された、前記複数の第1スキャンデータと前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとを取得する、
請求項1に記載のシステム。 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 .
前記システムは、
前記LiDARが前記複数の第2スキャンデータの前記各第2スキャンデータを測定したときの前記LiDARの前記運動データに基づいて、前記複数の第2スキャンデータをグループ化するグルーピング部
をさらに備え、
前記地図データ生成部は、前記グルーピング部によって同一グループにグループ化された第2スキャンデータを前記参照データに位置合わせすることによって、前記地図データを生成する、
請求項1から4のいずれか一項に記載のシステム。 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,
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.
前記グルーピング部は、前記LiDARが前記回転軸を中心に半回転する期間の間に測定された第2スキャンデータを同一グループにグループ化することによって、前記複数の第2スキャンデータをグループ化する、
請求項5に記載のシステム。 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.
前記地図データ生成部は、前記参照データ生成部によって更新された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する、
請求項5に記載のシステム。 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.
をさらに備え、
前記地図データ生成部は、前記ポーズグラフ生成部によって生成された前記ポーズグラフにさらに基づいて、前記地図データを生成する、
請求項5に記載のシステム。 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,
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.
前記地図データ生成部は、前記LiDARが前記複数の第2スキャンデータの前記各第2スキャンデータを測定したときの前記LiDARの前記運動データにさらに基づいて、前記地図データを生成する、
請求項1から4のいずれか一項に記載のシステム。 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.
IMUと、
前記IMUを搭載する搭載部及び前記LiDARを支持する支持部を有するベース部と、
前記ベース部を回転させるモータと
を備え、
前記支持部が前記LiDARを支持する支持面は、前記搭載部が前記IMUを搭載する搭載面に対して垂直であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸を通る、又は、
前記支持部が前記LiDARを支持する支持面は、前記搭載部が前記IMUを搭載する搭載面と平行であり且つ前記IMUの中心は前記ベース部が前記モータの機械的エネルギーで回転運動するときの前記LiDARの回転軸に対して垂直な直線を通る、
測定装置。 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,
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 device.
前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部と、
前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARによって測定された複数の第2スキャンデータを取得する第2取得部と、
前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部と
をさらに備える、請求項10に記載の測定装置。 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 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;
The measuring device according to claim 10 , further comprising: 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.
前記地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARによって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得部と、
前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成部と、
前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARによって測定された複数の第2スキャンデータを取得する第2取得部と、
前記参照データ生成部によって生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成部と
を備える、地図データ生成装置。 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 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 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 configured to generate the map data based on the reference data generated by the reference data generating unit and the plurality of second scan data.
SLAMアルゴリズムを用いて地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARによって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得段階と、
前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成段階と、
前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARによって測定された複数の第2スキャンデータを取得する第2取得段階と、
前記参照データ生成段階で生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成段階と
を備える、地図データ生成方法。 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 in a state in which the base unit 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.
前記地図データを生成するときに参照される参照データを生成すべく、前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動していない状態で、前記LiDARによって予め定められた期間の間に測定された複数の第1スキャンデータと、前記IMUによって前記予め定められた期間の間に測定された、前記LiDARが前記複数の第1スキャンデータの各第1スキャンデータを測定したときの前記LiDARの運動データとを取得する第1取得段階と、
前記複数の第1スキャンデータと、前記LiDARが前記各第1スキャンデータを測定したときの前記LiDARの前記運動データとに基づいて、前記参照データを生成する参照データ生成段階と、
前記モータの機械的エネルギーで前記ベース部が回転運動しており且つ前記ベース部が並進運動している状態で、前記LiDARによって測定された複数の第2スキャンデータを取得する第2取得段階と、
前記参照データ生成段階で生成された前記参照データと、前記複数の第2スキャンデータとに基づいて、前記地図データを生成する地図データ生成段階と
を備える、地図データ生成方法。 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 unit 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.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023187612A JP7770696B2 (en) | 2023-11-01 | 2023-11-01 | System, measuring device, map data generating device, map data generating method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023187612A JP7770696B2 (en) | 2023-11-01 | 2023-11-01 | System, measuring device, map data generating device, map data generating method and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2025076014A JP2025076014A (en) | 2025-05-15 |
| JP7770696B2 true JP7770696B2 (en) | 2025-11-17 |
Family
ID=95698167
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023187612A Active JP7770696B2 (en) | 2023-11-01 | 2023-11-01 | System, measuring device, map data generating device, map data generating method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7770696B2 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018517889A (en) | 2015-03-25 | 2018-07-05 | ウェイモ エルエルシー | Vehicle with multiple light detection and ranging devices (LIDAR) |
| CN208172246U (en) | 2018-05-28 | 2018-11-30 | 南京泰司空间信息科技有限公司 | Lidar measurement device, vehicle equipment |
| US20200271689A1 (en) | 2019-02-22 | 2020-08-27 | Lyft, Inc. | Integrated Movement Measurement Unit |
| CN113777580A (en) | 2021-07-19 | 2021-12-10 | 长春理工大学 | Three-dimensional laser scanner based on rotatable single line laser radar |
| CN114667462A (en) | 2019-08-07 | 2022-06-24 | 内布拉斯·奥佐 | Laser radar apparatus, system, and control method thereof |
-
2023
- 2023-11-01 JP JP2023187612A patent/JP7770696B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018517889A (en) | 2015-03-25 | 2018-07-05 | ウェイモ エルエルシー | Vehicle with multiple light detection and ranging devices (LIDAR) |
| CN208172246U (en) | 2018-05-28 | 2018-11-30 | 南京泰司空间信息科技有限公司 | Lidar measurement device, vehicle equipment |
| US20200271689A1 (en) | 2019-02-22 | 2020-08-27 | Lyft, Inc. | Integrated Movement Measurement Unit |
| CN114667462A (en) | 2019-08-07 | 2022-06-24 | 内布拉斯·奥佐 | Laser radar apparatus, system, and control method thereof |
| CN113777580A (en) | 2021-07-19 | 2021-12-10 | 长春理工大学 | Three-dimensional laser scanner based on rotatable single line laser radar |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025076014A (en) | 2025-05-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109521403B (en) | Parameter calibration method, device and equipment of multi-line laser radar and readable medium | |
| US12275146B2 (en) | Simulation of tasks using neural networks | |
| JP2024041815A (en) | System and method for scene reconstruction that disentangles light and matter fields - Patents.com | |
| CN108638062B (en) | Robot positioning method, device, positioning equipment and storage medium | |
| KR102068419B1 (en) | Method, apparatus and computer readable medium for adjusting point cloud data collection trajectory | |
| KR20210022016A (en) | Method and system for improving depth information of feature points using camera and lidar | |
| CN110223380B (en) | A scene modeling method, system and device integrating aerial and ground perspective images | |
| JP2018144152A (en) | Robot simulation device, robot simulation method, robot simulation program, computer-readable recording medium and recording device | |
| JP2018144158A (en) | Robot simulation device, robot simulation method, robot simulation program, computer-readable recording medium and recording device | |
| CN104040444A (en) | Computer program product and method for generating and simulating models of objects | |
| JP2018144154A (en) | Robot simulation device, robot simulation method, robot simulation program, computer-readable recording medium and recording device | |
| JP6347215B2 (en) | Shape inspection apparatus, shape inspection method and program | |
| US20190340317A1 (en) | Computer vision through simulated hardware optimization | |
| KR102516002B1 (en) | Survey robot-based indoor space positioning and mapping method and appartus | |
| JP7770696B2 (en) | System, measuring device, map data generating device, map data generating method and program | |
| CN108520543A (en) | A kind of method that relative accuracy map is optimized, equipment and storage medium | |
| Raffaeli et al. | Context dependent automatic view planning: the inspection of mechanical components | |
| JP4972642B2 (en) | High-precision real-time ray tracing | |
| JP2017058360A (en) | Systems and methods for generating paths for processing physical profiles of parts | |
| CN117082235A (en) | Evaluation system, evaluation method, electronic equipment and storage medium | |
| JP7093680B2 (en) | Structure difference extraction device, structure difference extraction method and program | |
| US11620846B2 (en) | Data processing method for multi-sensor fusion, positioning apparatus and virtual reality device | |
| JP4423811B2 (en) | Three-dimensional shape measurement system and three-dimensional shape measurement method | |
| JP2018144153A (en) | Robot simulation device, robot simulation method, robot simulation program, computer-readable recording medium and recording device | |
| CN109188369B (en) | Support device, method for manufacturing the same, and control method, apparatus, device, and medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241030 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250902 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250912 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20251007 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251028 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7770696 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |