Information processing method, information processing device, and information processing program

By rotating the robot to estimate and correct the IMU tilt using a rotation matrix, the method addresses the challenge of inaccurate position estimation, improving mapping and obstacle detection accuracy in autonomous mobile robots.

WO2025249277A1PCT designated stage Publication Date: 2025-12-04SONY GROUP CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/018464
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-30
Filing Date
2025-05-21
Publication Date
2025-12-04

AI Technical Summary

Technical Problem

Autonomous mobile robots face challenges in accurately estimating their position due to improper orientation of the IMU, leading to vertical position errors and inaccurate mapping or obstacle detection, which is difficult to correct post-installation.

Method used

The method involves rotating the robot to estimate the tilt of the IMU using angular velocity data, calculating a rotation matrix to correct measurement data, and updating this matrix during turns to improve self-position estimation accuracy.

Benefits of technology

This approach allows for highly accurate self-position estimation by correcting IMU measurement data, reducing errors and enhancing the robot's ability to create precise maps and avoid obstacles.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025018464_04122025_PF_FP_ABST
    Figure JP2025018464_04122025_PF_FP_ABST
Patent Text Reader

Abstract

[Problem] To provide an information processing method, an information processing device, and an information processing program capable of inferring information regarding the inclination of a sensor mounted on a movable body. [Solution] According to the information processing method of the present disclosure, a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration is turned, angular velocity data or acceleration data detected from the sensor is acquired in accordance with the turning of the movable body, and information regarding the inclination of the sensor with respect to the movable body is inferred on the basis of the acquired angular velocity data or the acceleration data.
Need to check novelty before this filing date? Find Prior Art

Description

Information processing method, information processing device, and information processing program

[0001] The present disclosure relates to an information processing method, an information processing device, and an information processing program.

[0002] Autonomous mobile robots are often used in warehouses and other facilities to transport cargo and other items. These robots move around the facility while estimating their own position using sensors such as an IMU (Inertial Measurement Unit). To accurately estimate their own position, the IMU must be installed in the correct orientation relative to the robot. For example, the coordinate plane defined by the roll and pitch axes of the IMU's coordinate system (sensor coordinate system) must be parallel to the plane of movement of the robot (or the coordinate plane defined by the roll and pitch axes of the robot coordinate system).

[0003] If the IMU coordinate plane is not parallel to the moving surface, i.e., if the IMU is installed at an angle, a vertical position error occurs when estimating the self-position. If there is a vertical position estimation error, for example, when a robot moves while detecting obstacles using a depth camera, it may detect a non-existent step on the moving surface and mistakenly recognize it as an obstacle, or when creating a 3D map of the environment by autonomously moving the robot, it may be unable to create a highly accurate map.

[0004] The orientation of the IMU (IMU tilt) is affected by hardware processing, assembly, etc. The tilt of the IMU relative to the moving surface is also affected by the weight or size of the robot's payload, wear on the robot's tires, etc. IMUs are often mounted inside the robot's body, and it is often difficult to measure the IMU tilt using physical measurement methods after installation.

[0005] Japanese Patent Application Laid-Open No. 2023-138046

[0006] The present disclosure provides an information processing method, an information processing device, and an information processing program that can estimate information related to the tilt of a sensor mounted on a movable body.

[0007] According to the information processing method of the present disclosure, a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration is rotated, angular velocity data or acceleration data detected from the sensor in response to the rotation of the movable body is acquired, and information regarding the inclination of the sensor relative to the movable body is estimated based on the acquired angular velocity data or acceleration data.

[0008] 1 is a block diagram of a robot that is a movable body according to a first embodiment of the present disclosure. FIG. 1 is a diagram showing an example of an installation of an IMU. FIG. 2 is a diagram showing an example of an angular velocity vector of an IMU. A flowchart of an example of overall processing performed by an information processing device of the robot. A flowchart of an example of data collection processing. A flowchart of an example of data analysis processing. A flowchart of an example of data display processing. A flowchart of an example of data application processing. A diagram showing an example of a UI screen display. A diagram showing an example of a UI screen display. A diagram showing an example of a UI screen display. A diagram showing an example of a UI screen display. A diagram showing an example of a UI screen display. A diagram showing an example of a robot positioned on an inclined moving surface. A diagram showing an example in which inward acceleration is detected when the robot is turned. A flowchart showing a first example of a movement of the robot when turning in a second embodiment. A flowchart showing a second example of a movement of the robot when turning in the second embodiment. A flowchart of an example of data analysis processing in the second embodiment. A block diagram of an example of an information processing system including a robot according to a third embodiment and a computer.

[0009] Hereinafter, embodiments of an information processing method, an information processing device, and a program will be described with reference to the drawings. The following description will focus on the main components of the information processing method, the information processing device, and the program, but the information processing method, the information processing device, and the program may include components and functions that are not shown or described. The following description does not exclude components and functions that are not shown or described.

[0010] First Embodiment FIG. 1 is a block diagram of a robot 1, which is a movable body according to a first embodiment of the present disclosure. The robot 1 is equipped with an information processing device 100 that performs processing according to the first embodiment of the present disclosure, wheels 110, a drive system (not shown), and the like, and is a mobile body that can autonomously move within an environment such as a warehouse. The robot 1 moves (e.g., runs) while estimating its three-dimensional position using data acquired by an IMU (Inertial Measurement Unit) 2, data from an odometry unit 6, and the like. The IMU 2 is a sensor capable of detecting three-axial acceleration and three-axial angular velocity. Instead of the IMU 2, the robot 1 may be equipped with both or at least one of an angular velocity sensor that detects three-axial angular velocity and an acceleration sensor that detects three-axial acceleration.

[0011] One of the features of the robot 1 according to the first embodiment of the present disclosure is that, even when the IMU 2 is installed at an angle with respect to the plane on which the robot 1 moves, information related to the inclination of the IMU 2 is estimated with high accuracy, thereby enabling highly accurate estimation of the robot's own position. The plane of movement is the surface on which the robot 1 moves (the traveling surface) and is the surface facing the robot 1. In this embodiment, information related to the inclination of the IMU 2 is estimated by utilizing the fact that the angular velocity vector acquired from the measurement data of the IMU 2 when the robot 1 turns on a flat surface is parallel to the normal vector of the plane of movement. The inclination of the IMU 2 will be described using FIG. 2 .

[0012] Figure 2 shows an example of an ideal posture in which the IMU 2 is installed without tilting relative to the moving surface (left image), and an example in which the IMU 2 is installed with a tilt relative to the moving surface (right image).

[0013] Σs is the coordinate system of IMU2 (sensor coordinate system), s x, s y, s The z represents the x-axis (roll axis), y-axis (pitch axis), and z-axis (yaw axis) of the sensor coordinate system. The x-axis (roll axis), y-axis (pitch axis), and z-axis (yaw axis) of the sensor coordinate system correspond to the fourth, fifth, and sixth axes in the second coordinate system, respectively.

[0014] Σr is the coordinate system of robot 1 (robot coordinate system), r x,r y, r z represents the x-axis (roll axis), y-axis (pitch axis), and z-axis (yaw axis) of the robot coordinate system. The plane of movement of the robot 1 is r x-axis and r The plane (coordinate plane) formed by the y-axis is parallel to the robot coordinate system. r The direction of the x-axis is assumed to be the direction of movement of the robot 1. The robot coordinate system corresponds to a first coordinate system including a first axis and a second axis that are parallel to the plane of movement of the robot 1 and perpendicular to each other, and a third axis that is perpendicular to the plane of movement. The x-axis (roll axis), y-axis (pitch axis), and z-axis (yaw axis) in the robot coordinate system correspond to the first axis, second axis, and third axis in the first coordinate system, respectively. The first axis, second axis, and third axis in the first coordinate system correspond to the fourth axis, fifth axis, and sixth axis in the second coordinate system, respectively.

[0015] In the installation state shown in the left figure r x-axis and s The x-axis is parallel, r y-axis and s The y-axis is parallel. On the other hand, in the right figure, s The x-axis is r It is not parallel to the x-axis direction. s The y-axis direction is r It is not parallel to the y-direction. In other words, in the robot coordinate system r x-axis and r In the sensor coordinate system, the coordinate plane formed by the y-axis is s x-axis and s The coordinate plane formed by the y-axis is tilted. If the IMU 2 is installed at an angle like this, errors will occur mainly in height when estimating the robot 1's self-position. For example, if the IMU 2 is r If the IMU 2 is installed tilted downward by 0.1 degrees relative to the x-axis (forward), a height error of 10 m × tan(0.1°) = 1.7 cm will occur when the robot 1 moves 10 m. Installing the IMU 2 in an ideal posture is difficult in reality with the assembly accuracy required for actual work. Even if the IMU 2 is installed ideally, tilting of the IMU 2 relative to the moving surface may occur after the fact due to factors such as the weight or size of the payload (attached object) mounted on the robot 1 and wear on the wheels 110 of the robot 1.

[0016] In this embodiment, the angular velocity vector of the IMU 2 obtained by rotating the robot 1 on a plane, particularly a plane perpendicular to the vertical direction (a plane with no tilt), is parallel to the normal vector of the plane. This information about the tilt of the IMU 2 (e.g., a rotation matrix and the relative angle of the IMU 2 with respect to the moving plane, as described below) is estimated, and the measurement data (angular velocity data and acceleration data) of the IMU 2 is corrected to achieve highly accurate self-location estimation. However, the plane on which the robot 1 rotates does not necessarily have to be perpendicular to the vertical direction; it can be any plane that can be considered approximately perpendicular to the vertical direction. In other words, as long as the estimated tilt information falls within an acceptable error range, the robot 1 can also be rotated on an inclined plane. In this embodiment, a rotation matrix indicating the relationship between the robot coordinate system and the sensor coordinate system is estimated as information about the tilt of the IMU 2, and the measurement data is corrected using the rotation matrix. Furthermore, the relative angle of the IMU 2 with respect to the moving plane (how much it has rotated with respect to the roll axis, pitch axis, and yaw axis of the robot coordinate system) is calculated by decomposing the rotation matrix.

[0017] 3 shows examples of angular velocity vectors obtained from the measurement data of the IMU 2 when the robot 1 is rotated on a flat moving surface in the states shown in the left and right diagrams of FIG. 2. The angular velocity vector ω r =(ω x ,ω y ,ω z ) is obtained as an upward vector along the diagram. As shown in the left figure, when IMU2 is installed without tilting relative to the plane (sensor coordinate system Σs s x-axis and s The coordinate plane of the y-axis and the robot coordinate system Σr r x-axis and r y-axis coordinate plane is parallel), and the angular velocity vector ω r is perpendicular to the moving plane, that is, in the robot coordinate system Σr r It is parallel to the z-axis (sensor coordinate system Σs s (It is also parallel to the z-axis.) That is, the x-component of the angular velocity vector ω x and the y component ωy can be considered as zero.

[0018] On the other hand, as shown in the right figure, IMU2 moves along the moving surface (or the robot coordinate system Σr) r x-axis and r y-axis coordinate plane), the angular velocity vector ω r is the sensor coordinate system Σs s It is not parallel to the z-axis (in the robot coordinate system Σr r (It is parallel to the z-axis.) Angular velocity vector ω r is tilted with respect to the sensor coordinate system Σs. Therefore, when viewed from the sensor coordinate system Σs, the x-component of the angular velocity vector ω x and the y component ω y also result in non-zero values. Using this, a rotation matrix that represents the relationship between the sensor coordinate system and the robot coordinate system is estimated. The estimated rotation matrix is ​​used to correct the measurement data of the IMU2, and by using the corrected data, the accuracy of the self-position estimation is improved. The estimated rotation matrix is ​​also used to calculate the amount of rotation of the IMU2 with respect to each axis of the robot coordinate system (the relative angle with respect to the moving plane).

[0019] The method for calculating the rotation matrix will be explained below. s R r Then, s R r can be expressed by the following equation (1). s n rx s n ry s n rz are the unit vectors of the x-axis, y-axis, and z-axis of the robot coordinate system Σr as seen from the sensor coordinate system Σs. s n rx s n ry s n rz are 3-by-1 vectors, s R r is a 3-row, 3-column matrix. s n rx s n ry s n rz ​By seeking s R r can be obtained.

[0020] The angular velocity vector measured when the robot 1 is turned (here, s ω r ) is detected as an upward vector parallel to the vertical direction, and therefore can be said to represent the rotation axis of the robot 1, i.e., the z-axis of the robot coordinate system. Therefore, the angular velocity vector s ω r is normalized as shown in the following equation (2), the unit vector in the z-axis direction of the robot coordinate system Σr as seen from the sensor coordinate system Σs is s n rz That is, we can obtain the unit vector s n rz corresponds to the third unit vector representing the direction in the sensor coordinate system Σs corresponding to the direction of the z-axis in the robot coordinate system Σr.

[0021] After this, the unit vector of the x-axis of the robot coordinate system Σr as seen from the sensor coordinate system Σs s n rx and the unit vector of the y-axis s n ry Then, the rotation matrix s R r is obtained.

[0022] The tilt of the x-axis of the sensor coordinate system of IMU2 (angle deviation around the roll axis) is indefinite when robot 1 is simply turning, so the above unit vector s n rz and the unit vector of the y-axis of the sensor coordinate system is calculated as shown in the following equation (3). This gives a unit vector in the x-axis direction that is perpendicular to both of the above vectors, i.e., a unit vector that represents the direction of the x-axis of the robot coordinate system Σr as seen from the sensor coordinate system Σs. s n rx Find the unit vector s n rx corresponds to the first unit vector representing the direction in the sensor coordinate system Σs corresponding to the direction of the x-axis in the robot coordinate system Σr.

[0023] ​s n rx and s n rz By finding this, it becomes possible to make corrections to align the orientations of the horizontal planes (coordinate planes specified by the x-axis and y-axis) of the robot coordinate system and the sensor coordinate system. Note that the rotation angle around the yaw axis (angular deviation around the yaw axis) is indefinite, but the rotation angle is assumed to be the design value (here, 0).

[0024] lastly s n ry is calculated using the same concept as in equation (3). That is, as shown in the following equation (4), the unit vector s n rz and unit vector s n rx By calculating the cross product with s n ry Find the unit vector s n ry corresponds to the second unit vector representing the direction in the sensor coordinate system Σs corresponding to the direction of the y-axis in the robot coordinate system Σr.

[0025] From the above results, the rotation matrix shown in the above-mentioned equation (1) can be obtained.

[0026] When correcting the measurement vector of IMU2 using the rotation matrix, the inverse matrix of the rotation matrix is ​​calculated and multiplied by the measurement vector (angular velocity vector or acceleration vector). This results in a corrected measurement vector (corrected angular velocity vector or corrected angular velocity vector), which is used for self-localization.

[0027] Furthermore, the rotation angle (relative angle with respect to the moving plane) of the IMU 2 for each of the x-axis, y-axis, and z-axis of the robot coordinate system may be calculated based on the rotation matrix. For example, by expressing the rotation matrix as in the following formula (5), the rotation angle (tilt) θ of the IMU 2 for each of the x-axis, y-axis, and z-axis of the robot coordinate system can be calculated. x , θ y , θ z The formula (5) is an example, and other formulas may be used.

[0028] The following describes in detail the information processing device 100 provided in the robot 1. The information processing device 100 includes an IMU 2, a UI (User Interface) 3, a path planning unit 4, a position control unit 5, an odometry unit 6 (speed measurement unit), a data acquisition unit 7, a database (DB) 8, an analysis unit 9 (estimation unit), an output information generation unit 10, a memory unit 11, and a camera 12.

[0029] The UI (User Interface) 3 includes an input interface through which the user inputs various instruction information or data, and an output interface that outputs various information. The input interface may be any configuration that allows information to be input, such as a touch panel, buttons, or a voice input device. The output interface may be any device that allows information to be output, such as a display device that displays information or a communication device that communicates with a user's terminal device.

[0030] The memory unit 11 stores various information related to the robot 1. For example, it stores specification information for various components of the robot 1 (e.g., the IMU 2, the odometry unit 6, the wheels 110, the body, the drive system, the CPU (Central Processing Unit), the UI 3, and the camera 12). Design information for the sensor coordinate system and the robot coordinate system is also stored. Information or data generated during processing by each unit in this embodiment may also be stored in the memory unit 11. For example, information about the tilt of the IMU 2 estimated by the analysis unit 9 (such as a rotation matrix and the rotation angle of the IMU 2 relative to each axis (the angle relative to the moving surface)), output information generated by the output information generation unit 10, and a movement plan generated by the path planner 4 may also be stored. The memory unit 11 is accessible from the UI 3, the output information generation unit 10, the analysis unit 9, the path planner 4, the position control unit 5, and the data acquisition unit 7 of the robot 1. The memory unit 11 may be any hardware storage unit, such as a volatile or non-volatile memory device, a hard disk, or an SSD (Solid State Drive).

[0031] The camera 12 is an imaging device that captures the environment in which the robot 1 moves (for example, the environment inside a warehouse). The camera 12 may be any camera, such as a depth camera, a color camera, a stereo camera, or an infrared camera. The number of cameras 12 may be one or more, and one or more types of cameras 12 may be used. In the example of this embodiment, it is assumed that the camera 12 includes one or more depth cameras.

[0032] The path planning unit 4 generates a movement plan including the path along which the robot 1 will move and the actions to be performed by the robot 1 at the start point, intermediate points, and destination point of the movement, in accordance with user instruction information input to the UI 3. Examples of actions to be performed by the robot 1 include turning. Turning is performed to collect angular velocity data of the IMU 2 for estimating the rotation matrix and the like, as described above. When determining the turning point in the movement plan, a flat point may be searched for and determined as the target turning point.

[0033] The turning may be performed at a target position specified by the user or a target position determined by the movement plan. Alternatively, the turning operation for data collection may result from a turning operation performed when a change of direction is necessary while moving along a route (for example, when the robot 1 is moving straight north and then turns east or west). The turning position (target position) may be the starting point of the robot 1, a point along the route where turning is easy (for example, a flat area), or the destination point. The turning operation may be performed, for example, around an axis along the vertical direction of the robot 1. The turning operation may be performed using a rotation angle (for example, 90°, 360°, 700°, etc.) or information about the time required for turning as a parameter. 360 degrees corresponds to one rotation around the rotation axis of the robot 1. Turning may be performed at multiple positions along the movement route.

[0034] When a turn is made during the execution of a movement plan, the rotation matrix may be updated each time a turn is made, and subsequent self-localization may be performed based on the updated rotation matrix. Alternatively, whether to update the rotation matrix may be determined after the execution of the movement plan is completed, and before that determination, the rotation matrix at the start of plan execution may be used to perform self-localization. Note that if a rotation matrix has never been generated, an initial rotation matrix (e.g., a rotation matrix based on the design information of the robot 1) may be used, or correction may not be performed using a rotation matrix. Operations other than turning that the robot 1 is made to perform may include operations that are originally intended for the robot 1, such as loading and unloading operations when the robot 1 is to transport luggage.

[0035] The odometry unit 6 (speed measurement unit) calculates the speed of the robot 1 from the number of rotations and angle of the robot's wheels 110 at regular time intervals (sampling intervals) and outputs the speed data.

[0036] The position control unit 5 controls the robot 1 based on the movement plan generated by the path planning unit 4. The position control unit 5 controls the robot 1's movement (autonomous movement control) while recognizing its own position based on the measurement data (angular velocity data and acceleration data) from the IMU 2 and the velocity data acquired from the odometry unit 6. At this time, the position control unit 5 may correct the measurement data from the IMU 2 using a rotation matrix provided by the analysis unit 9 or a rotation matrix stored in the memory unit 11, and estimate its own position using the corrected measurement data. Other information, such as image data captured by the camera 12, may also be used for the autonomous movement control. For example, the image data may be used to detect nearby obstacles and control the robot 1's movement to avoid the obstacles. Furthermore, if the robot 1 is equipped with a lidar or laser, the lidar or laser may be used to detect nearby obstacles and control the robot 1's movement to avoid the obstacles. Map data of the movement environment may also be used.

[0037] The data acquisition unit 7 acquires the measurement data from the IMU 2 and the velocity data from the odometry unit 6 at regular time intervals during execution of the plan of the robot 1 in accordance with a data acquisition instruction from the user, and stores the acquired measurement data and velocity data in a database (DB) 8. Note that the time interval for acquiring velocity data from the odometry unit 6 and the time interval for acquiring measurement data from the IMU 2 may be the same or different.

[0038] The analysis unit 9 uses the information stored in the DB 8 to perform various processes, including a process for estimating information about the tilt of the IMU 2. As an example, the analysis unit 9 estimates a rotation matrix using the above-described method based on measurement data acquired when the robot 1 turns. The analysis unit 9 corresponds to an estimation unit that estimates information about the tilt of the IMU 2. The number of measurement data samples used to estimate the rotation matrix may be one or more. Information about the estimated rotation matrix may be stored in the memory unit 11. At this time, the previous rotation matrix may be updated. The updated rotation matrix in the memory unit 11 may be read out by the position control unit 5 and used to correct the measurement data. That is, the position control unit 5 uses the updated rotation matrix to correct the measurement data (angular velocity data or acceleration data) of the IMU 2, and performs self-position estimation using the corrected measurement data, etc.

[0039] The analysis unit 9 also estimates positions passed by the robot 1 (for example, positions passed from the start point of the movement plan to the destination point) using the corrected measurement data of the IMU 2 and the speed data of the odometry unit 6, and acquires the sequence of estimated positions as an estimation result of the robot's own position after correction (first position history data). The analysis unit 9 also estimates positions passed by the robot 1 using the uncorrected measurement data of the IMU 2 and the speed data of the odometry unit 6, and acquires the sequence of estimated positions as an estimation result of the robot's own position before correction (second position history data). The estimated position is a three-dimensional position, but can also be a two-dimensional position.

[0040] The output information generation unit 10 generates output information to be displayed on the UI 3 based on the estimation results of the analysis unit 9, information from the storage unit 11, and the like. As an example, the output information may include the estimation results of the self-position before correction and the estimation results of the self-position after correction in the form of a graph or the like. Furthermore, image data may be generated in which an object of the IMU 2 is placed on an object of the robot 1's body (an object of the robot 1's exterior). In this case, the object of the IMU 2 may be placed with the tilt estimated by the analysis unit 9, and the rotation angle values ​​for each axis may also be displayed based on information about the estimated tilt. This allows the user to intuitively understand how much the IMU 2 is tilted from the ideal state. Alternatively, image data may be generated in which the object of the IMU 2 is placed on the object of the body of the robot with the tilt before estimation.

[0041] The UI 3 displays the output information generated by the output information generating unit 10 so that the user can visually recognize it.

[0042] An example of processing performed by the information processing device 100 of the robot 1 will be described below using the flowcharts of Figures 4 to 8 and specific examples of output information in Figures 9 and 10. First, an outline of this processing will be described as follows.

[0043] A movement plan for moving the robot 1 from a starting point to a destination point is created, and the movement plan includes a process for turning at the starting point, any intermediate point, or the destination point. The movement plan is executed to control the robot 1. When the robot 1 arrives at the destination point, information about the tilt of the IMU 2 (the rotation matrix and the rotation angle of the IMU 2 about each axis) is estimated based on the angular velocity data acquired during the turning. The estimated rotation matrix is ​​used to correct the measurement data of the IMU 2 acquired during execution of the movement plan of the robot 1. Based on the corrected measurement data and velocity data acquired by the odometry unit 6 during movement, the robot 1 estimates the positions it has passed (self-location estimation) and obtains the estimated self-location result. Furthermore, the measurement data before correction and the velocity data are used to perform self-location estimation, and the estimated self-location result is obtained. Both self-location estimation results are visually presented to the user. The user can confirm the difference between the self-location estimation results with and without correction. For example, if the result after correction matches or is closer to the actual environment than the result without correction, the user decides to accept the current estimation result and updates the information about the tilt of the IMU 2 (the rotation matrix and the rotation angle of the IMU 2 about each axis) stored in the robot 1. Details of this process will be explained below.

[0044] 4 shows a flowchart of an example of the overall processing performed by the information processing device 100 of the robot 1. The overall processing in FIG. 4 is performed in the order of data collection processing (S10), data analysis processing (S20), data display processing (S30), applicability determination processing (S40), and data application processing (S50). The processing in FIG. 4 is started, for example, when an instruction is input by the user. The user's instruction may include a starting point and a destination point, and may also include positions (points) to turn to and positions (points) to pass through.

[0045] FIG. 5 is a flowchart of an example of the data collection process (S10). The path planning unit 4 generates a movement plan including a path for the robot 1 to travel in accordance with user instructions, and the movement plan also includes a turning plan (S11). The turning plan may also include information such as the turning position, turning angle, or turning time duration. The position control unit 5 starts the movement (travel) of the robot 1 based on the movement plan generated by the path planning unit 4 (S12). When the robot 1 arrives at a target turning position, such as the starting point or an intermediate point, it turns the robot 1 on the spot. From the start to the arrival, the sensor data (angular velocity data, acceleration data) are read from the IMU 2 and the velocity data from the odometry unit 6 are read at regular time intervals and stored in the DB 8 (S14). When the robot 1 arrives at the destination point, it stops moving (S16).

[0046] FIG. 6A is a flowchart of an example of the data analysis process (S20). The analysis unit 9 acquires angular velocity data from the DB 8 to be used to estimate information about the tilt of the IMU 2 (here, a rotation matrix) (S21). FIG. 6B is a detailed flowchart of step S21. The analysis unit 9 detects angular velocity data whose angular velocity (angular velocity around the z-axis) is equal to or greater than a threshold among the angular velocity data acquired when the velocity is equal to or less than a threshold (S23, S24, S25). By detecting data indicating that the robot 1 is sufficiently slow and the angular velocity is large, i.e., that the robot 1 is turning in place, angular velocity data with little noise can be acquired. Angular velocity data detection is repeated until a number of angular velocity data samples equal to or greater than the threshold is detected. For example, by performing a rotation for a predetermined period of time, such as 20 seconds, a number of angular velocity data samples equal to or greater than the threshold can be detected. Once a number of angular velocity data samples equal to or greater than the threshold is detected (S26), the detected angular velocity data is used to generate an angular velocity vector to be used to estimate the rotation matrix. For example, the average of the detected angular velocity data is used as the angular velocity vector for estimation. At this time, a robust estimation method such as the least squares method may be used to determine the angular velocity vector for estimation. Using the determined angular velocity vector, the rotation matrix and the rotation angle (tilt) of the IMU 2 with respect to each axis are estimated by the method described above as information regarding the tilt of the IMU 2 (S22 in FIG. 6A). Data on the estimated rotation matrix and the rotation angle of the IMU 2 with respect to each axis may be stored in the storage unit 11.

[0047] 7A and 7B are flowcharts showing an example of the data display process (S30). The process of FIG. 7A and the process of FIG. 7B are performed sequentially or simultaneously in parallel. However, there may be cases where only one of the processes of FIG. 7A and FIG. 7B is performed.

[0048] In FIG. 7A , the output information generation unit 10 acquires data on the tilt (rotation angle) of the IMU 2 acquired by the analysis unit 9 (S31), reads out external appearance data of the robot 1's body and definition data of the robot 1's coordinate system from the storage unit 11, and generates image data in which an object of the IMU 2 having the estimated rotation angle for each axis is superimposed on an object of the body. It also generates image data in which an object of the IMU 2 with the tilt before estimation is superimposed on an object of the body. These two pieces of image data are displayed on the UI 3 as output information. This allows the user to intuitively understand the actual degree to which the IMU 2 is tilted relative to the plane of movement. At this time, the estimated rotation angle values ​​for each axis may also be displayed.

[0049] 9 shows an example of image data (left image) in which the IMU2 object with a pre-estimation attitude and the aircraft object are superimposed, and image data (right image) in which the IMU2 object with a post-estimation attitude and the aircraft object are superimposed, displayed on the UI3 screen 15. The dashed arrowed line extending from IMU2 indicates the degree to which IMU2 is tilted relative to the plane of movement or the robot's aircraft. In the left image, the coordinate plane of the x-axis and y-axis of IMU2 is parallel to the plane of movement (or the coordinate plane of the x-axis and y-axis of the robot coordinate system), but in the right image, it is tilted in the x-axis and y-axis directions, respectively.

[0050] In FIG. 7B , the output information generation unit 10 acquires the rotation matrix data estimated by the analysis unit 9 (S31). Based on the sensor data (angular velocity data, acceleration data) of the IMU 2 and the velocity data of the odometry unit 6 stored in the DB 8, and the rotation matrix data, the output information generation unit 10 performs self-location estimation to acquire a corrected self-location estimation result (S32). The output information generation unit 10 displays output information including the corrected self-location estimation result and the pre-correction self-location estimation result on the UI 3 (S36). The user compares the displayed estimation results and decides whether to apply the rotation matrix to the robot 1 (whether to use it in future self-location estimations by the robot 1). For example, if the corrected self-location estimation result is an improvement over the pre-correction self-location estimation result, the user decides to adopt the current estimation result.

[0051] The user inputs an instruction from the UI 3 as to whether or not to apply the information about the tilt of the IMU 2 estimated by the analysis unit 9 (the rotation matrix and the rotation angle of the IMU 2 about each axis) (S40 in FIG. 4). If an instruction to apply is input, a data application process (S50) is performed. If an instruction not to apply is input, the process in FIG. 4 ends. At this time, the information about the estimated tilt of the IMU 2 may be discarded.

[0052] 8 is a flowchart of an example of the data application process (S50). When a user inputs an instruction to apply the estimation result of the analysis unit 9, the UI 3 updates the information stored in the storage unit 11 (the rotation matrix and the rotation angle of the IMU 2 relative to each axis) using the information about the estimated tilt of the IMU 2 (S51).

[0053] FIG. 10 shows an example of the screen display of output information 20, including the estimated self-position before correction (left) and the estimated self-position after correction (right). In this example, the robot 1 starts from a point where the x-axis position and z-axis position are both 0, climbs a slope, and after climbing, goes straight a short distance, turns around on the same path, and then descends the same slope, returning halfway up the slope. In the example of the estimated self-position before correction shown on the left, errors in the installation orientation of the IMU 2 accumulate, resulting in a large deviation in the z-axis position between going up and down the slope, even though the path is the same. On the other hand, in the example of the estimated self-position after correction shown on the right, the deviation in the z-axis position between going up and down the slope is significantly reduced. If the user selects "OK" on this screen (corresponding to an instruction to apply the estimation results of the analysis unit 9), the information stored in the memory unit 11 is updated with the information regarding the estimated tilt of the IMU 2. This corrects the tilt of the IMU 2. On the other hand, if "restore" is selected, the information about the estimated tilt of the IMU 2 is discarded.

[0054] 4 to 10, the movement plan for the robot 1 includes a turning operation of the robot 1. In other words, measurement data that can be used to estimate the tilt is extracted from measurement data detected while the robot 1 is performing normal operations, and the attitude (tilt) of the IMU 2 is estimated. In contrast, in this configuration example 1, the robot 1 is turned on the spot in accordance with a turning command from a user, rather than as part of the robot 1's normal operations, as an operation specialized for calibration.

[0055] 11 shows an example of the screen display of UI 3. When the user selects IMU tilt correction from the menu on the screen, a confirmation message 21 is displayed. When the user selects "OK," a message 22 is displayed asking the user whether or not it is OK to rotate the robot 1 at its current position. When the user selects "OK," a rotation instruction is output from UI 3 to the position control unit 5, and a data acquisition instruction is output to the data acquisition unit 7 to instruct the data acquisition unit 7 to acquire data in conjunction with the rotation operation of the robot 1.

[0056] The position control unit 5 rotates the robot 1 by a certain angle or for a certain period of time in accordance with a rotation instruction from the UI 3. The data acquisition unit 7 acquires measurement data output from the IMU 2 at certain time intervals when the robot 1 is rotating, and stores the acquired measurement data in the DB 6. The analysis unit 9 generates an angular velocity vector from the angular velocity data included in the acquired measurement data, and uses the angular velocity vector to estimate a rotation matrix, etc.

[0057] The output information generator 10 generates, as output information, estimation result data 23 (the right diagram in FIG. 11 ) indicating the IMU posture before and after estimation, and displays it on the screen of the UI 3. In this example, the estimation result indicates that the IMU 2 is tilted 0.22 degrees to the right (tilt in the pitch direction) and 0.14 degrees forward (tilt in the roll direction) relative to the direction of travel of the robot 1. A rotation matrix is ​​generated to correct this tilt. When the user selects "OK" on the screen of the estimation result data 23, the data of the current estimation result (rotation matrix and rotation angle values ​​for each axis) is overwritten in the storage unit 11, thereby correcting the tilt of the IMU 2. On the other hand, when the user selects "Undo," the current estimation result is deleted.

[0058] (Other Configuration Example 2) Reliability information regarding the estimation result of the information regarding the tilt of the IMU 2 may be generated, and the generated reliability information may be included in the output information and displayed on the UI 3.

[0059] When estimating information about the tilt of the IMU 2, it is assumed that the angular velocity vector to be used for estimation is determined using the least squares method from multiple angular velocity data acquired for estimation. x , ω y , ω z The average values ​​of each (average ω x , average ω y , average ω z ) is calculated and used as the angular velocity vector for estimation. In other words, the components of the angular velocity vector to be calculated are μ x , μ y , μ z Then, h = Σ (μ x -ω x ) 2 +Σ(μ y -ω y ) 2 +Σ(μ z -ω z ) 2 μ that minimizes x , μ y , μ z In this case, μ x is ω x The average of μ y is ω y The average of μ z is ω z The coefficient of determination of the function h or the RMSE (Root Mean Squared Error) of the residual is calculated as reliability information and displayed on the UI 3. By checking the reliability information, the user can understand the uncertainty of the estimation result. The reliability information is generated by the analysis unit 9 during estimation.

[0060] A method may be used in which a Kalman filter is created and the tilt (rotation matrix) of the IMU 2 is estimated from multiple angular velocity data. In this case, the covariance matrix or the like may be displayed to the user as reliability information of the estimation result.

[0061] When the least squares method or the Kalman filter is used, information indicating the RMSE of the residual or the covariance matrix of the Kalman filter may be used as the reliability information. This reliability information may be displayed in association with the estimated tilt (attitude) of the IMU 2. A specific example will be shown below with reference to FIG. 12 .

[0062] FIG. 12 shows an example of an estimation result screen 25 displayed on the UI 3, in which a line with an arrow indicating the estimated tilt of the IMU 2 is displayed, with reliability information 24 associated with the tip of the arrow. In this example, the reliability information 24 is displayed three-dimensionally within an oval frame, and a message is displayed stating that the reliability of the estimation is low and urging the user to check the installation of the IMU. The user checks whether the IMU is securely attached to the robot 1 (for example, whether it is wobbly). If the user selects "Retry," the information processing device 100 rotates the robot 1 again to estimate information related to the tilt of the IMU 2. If the user selects "Cancel," the information processing device 100 ends the processing.

[0063] Another example of reliability information is ω z and ω x A graph showing the relationship between ω and ω is displayed on the UI3 screen. x Standard deviation σ x Similarly, ω z and ω y Display a graph showing the relationship between ω y Standard deviation σ y may be displayed.

[0064] FIG. 13 shows the estimation result screen 26 displayed on the UI 3, in which ω z and ω x A plot of points representing ω is displayed. x Standard deviation σ x The line 26a is a line ω z and ω xThe approximated lines 26b and 26c between them are lines indicating a confidence interval (for example, a 95 percent confidence interval). In this example, the reliability of the estimation is considered low, and a message is displayed urging the user to check the installation of the IMU. The user checks whether the IMU is securely attached to the robot 1 (for example, whether it is wobbly). If the user selects "Retry," the information processing device 100 rotates the robot 1 again to estimate information related to the tilt of the IMU 2. If the user selects "Cancel," the information processing device 100 cancels the process.

[0065] The reliability information may be stored in the storage unit 11, and the history of the stored reliability information may be displayed each time information related to the tilt of the IMU 2 is estimated, allowing the user to check the transition of the reliability information. The user may update the information related to the tilt of the IMU 2 stored in the storage unit 11 using the current estimation result only if the reliability has improved. If the reliability information has not improved, a message suggesting that the robot 1 be moved to a different location, or a message confirming whether a malfunction has occurred in the robot 1 or the information processing device 100 itself, may be displayed on the screen of the UI 3 or transmitted to the user's terminal device.

[0066] (Other Configuration Example 3) In the above embodiment, one piece of information about the tilt of IMU 2 (rotation matrix and rotation angle for each axis) is calculated for one rotation, but the measurement data acquired for one rotation may be divided into multiple time intervals, information about the tilt of IMU 2 may be estimated for each time interval, and the average of these may be used as the estimation result.

[0067] (Alternative Configuration Example 4) In this embodiment, a three-dimensional map of the moving environment may be generated using the estimated rotation matrix. By moving the robot 1 within an area for which a three-dimensional map is to be generated and accumulating the results of self-position estimation calculated with high accuracy using the estimated rotation matrix, a highly accurate three-dimensional map can be generated. The position control unit 5 may be equipped with a map generation unit that generates the three-dimensional map.

[0068] (Alternative Configuration Example 5) In this embodiment, the IMU 2 is mounted on the robot 1, but the IMU 2 may also be mounted on a movable body other than the robot 1. For example, the IMU 2 may be mounted on an air vehicle such as a drone, or may be a device equipped with a platform that can rotate (swivel) around an axis along the vertical direction. Even in such a case, by configuring an information processing device that includes the IMU 2, a data acquisition unit 7, and an analysis unit 9 (posture estimation unit), it is possible to estimate information related to the tilt of the IMU 2 and perform processing using the measurement data of the IMU 2 with high accuracy.

[0069] (Effects of this embodiment) As described above, according to this embodiment, information related to the tilt of the IMU 2 is estimated using angular velocity data acquired when the robot 1 turns, so the tilt of the IMU 2 can be corrected with high accuracy and self-position estimation can be performed. For example, a tilt of 0.1° to 0.2° can be corrected. Furthermore, the time required to acquire multiple samples of angular velocity data for estimation can be short, such as about 10 seconds in the case of turning on the spot, and the estimation process can be completed in a short time.

[0070] Second Embodiment In the first embodiment, information about the tilt of the IMU 2 (the rotation matrix and the rotation angles about each axis) was estimated using angular velocity data of the IMU 2. In the second embodiment, information about the tilt of the IMU 2 is estimated using acceleration data. The acceleration data may be acceleration included in the measurement data of the IMU 2. Alternatively, an acceleration sensor separate from the IMU 2 may be provided in the robot 1, and acceleration data output from the acceleration sensor may be used. The block diagram of the robot 1 or the information processing device 100 in the second embodiment is the same as that in the first embodiment, shown in FIG. 1, and only the processing of some blocks differs from that in the first embodiment. Below, descriptions common to the first embodiment will be omitted as appropriate. The various configuration examples and modified examples described in the first embodiment are equally applicable to this embodiment, as long as no operational contradictions arise.

[0071] Below we explain how to estimate information about the tilt of IMU 2 (here, the rotation matrix) using acceleration data from IMU 2. Here we assume that the acceleration data from IMU 2 measured on an inclined surface is used, but it is also possible to measure on a flat surface with no tilt.

[0072] 14 shows an example in which the robot 1 is positioned on an inclined moving surface (inclined surface) 30. In this state, it is assumed that the robot 1 is rotated parallel to the surface, acceleration data is acquired from the IMU 2, and a rotation matrix is ​​estimated.

[0073] Among the accelerations measured by the IMU 2, the gravitational acceleration is detected by the IMU 2 as a vertically upward acceleration. In the sensor coordinate system, this detected direction is the sum of the relative angle between the IMU 2 and the moving surface and the inclination of the moving surface, added to the angle in the z-axis direction. When the robot 1 is rotated around the center of rotation along the inclined surface 30 and then turned around (180°) to the opposite position, the gravitational acceleration appears as an acceleration component with an opposite sign. Therefore, by adding the accelerations before and after the rotation, the influence of the inclination of the moving surface can be eliminated. However, it is assumed here that the robot 1 is stopped when the acceleration vectors before and after the rotation are acquired, and accelerations other than the gravitational acceleration are zero. Therefore, a normalized vector (e.g., an average vector) is calculated by adding the accelerations (acceleration vectors) before and after the rotation, and this vector is converted into the vector of Equation (2) in the first embodiment described above. s w r By using it as s n rz Then, in accordance with the same procedure as in the first embodiment, the following can be obtained according to the formulas (3) and (4): s n rx s n ry The rotation matrix can be estimated by calculating the rotation angle for each axis.

[0074] On the other hand, when acquiring an acceleration vector while the robot 1 is turning, an inward acceleration a occurs due to the rotation. The acceleration a is expressed by the following equation (6), where r is the distance from the center of rotation of the robot 1 to the IMU 2, and ω is the angular velocity.

[0075] 15 is a diagram illustrating that when the robot 1 is rotated (turned) around the central axis 31 at an angular velocity ω, the IMU 2 detects an inward acceleration a in addition to the gravitational acceleration. r is the distance from the central axis 31 to the IMU 2. The central axis 31 does not have to be an actual axis, but may be a virtual axis.

[0076] This inward acceleration is superimposed on the gravitational acceleration when estimating information about the tilt of IMU2, and is included in the acceleration vector, causing an error. Therefore, the following constraint equation (7) is obtained for the angular accuracy θ (>0) required for estimation. Here, the angular accuracy θ is the angular accuracy for roll and pitch, respectively, as follows: x and θ y When g is the acceleration due to gravity.

[0077] Substituting equation (6) into equation (7) gives the following equation (8).

[0078] By rearranging equation (8) with respect to ω, the constraint on the angular velocity is obtained as shown in the following equation (9), where || is the symbol representing the absolute value.

[0079] Therefore, when acquiring an acceleration vector while rotating the robot 1, the rotation matrix can be estimated to satisfy the desired angular accuracy by rotating the robot 1 at an angular velocity that satisfies equation (9) (e.g., by rotating at a slow speed).

[0080] An example of the operation of the robot 1 or the information processing device 100 in this embodiment will be described below. When performing the data collection process (S10), data analysis process (S20), data display process (S30), and data application process (S50) described in the first embodiment, the differences in operation from the first embodiment will be mainly described.

[0081] 5 in the first embodiment, the processing shown in Fig. 16 or 17 is performed when the robot 1 turns in the second embodiment. In the data collection processing, the operations other than those during turning are the same as those in the first embodiment.

[0082] 16 is a flowchart showing a first example of the operation of the robot 1 during rotation in the second embodiment. The position control unit 5 starts the rotation of the robot 1 (S101). While rotating the robot 1 at a constant speed that satisfies equation (8), the data acquisition unit 7 acquires acceleration data from the IMU 2 at positions corresponding to a plurality of predetermined required rotation angles and stores the data in the DB 6 (S102, S103, S104). After acquiring acceleration data for each of the required rotation angles, the rotation is stopped (S105).

[0083] FIG. 17 is a flowchart showing a second example of the operation of the robot 1 during rotation in the second embodiment. While acceleration data was acquired while the robot 1 was rotating in the first operation example of FIG. 16 , in the second operation example of FIG. 17 , the robot 1 is rotated and then stopped to repeatedly acquire acceleration data. The position control unit 5 temporarily stops the rotation of the robot 1 after the robot 1 has rotated to the first of a plurality of predetermined rotation angles (S111). While the robot 1 is stopped, the data acquisition unit 7 acquires acceleration data from the IMU 2 (or acceleration sensor) and stores the data in the DB 6 (S112, S113). After acquiring the acceleration data, the robot 1 is again rotated to the next rotation angle, and once the next rotation angle is reached, the robot 1 is temporarily stopped. Acceleration data is acquired in the same manner and stored in the DB 6 (S114). After acquiring acceleration data for each of the plurality of predetermined rotation angles, this process ends. In the first operation example of FIG. 16, acceleration data is acquired while the robot 1 is turning, so it is necessary to turn the robot 1 at a slow speed that satisfies equation (8). However, in the second operation example of FIG. 17, acceleration data is acquired while the robot is stopped from turning, so there is no need to impose constraints on the angular velocity (rotational speed) as in equation (8) when turning.

[0084] Fig. 18 is a flowchart of an example of data analysis processing in the second embodiment. Instead of the processing in the flowchart of Fig. 6 in the first embodiment, the processing shown in the flowchart of Fig. 18 is performed.

[0085] The analysis unit 9 determines an acceleration vector to be used for estimation from the acceleration data acquired by the operation of the flowchart in FIG. 16 or 17 (S202). For example, the analysis unit 9 calculates an average acceleration by averaging accelerations measured at opposite positions, such as 0° and 180°, or 90° and 270°. The number of samples of the average acceleration may be one or more. Then, as in the first embodiment, the analysis unit 9 determines the acceleration vector to be used for estimation using a least squares method or the like. For example, the analysis unit 9 calculates the average of the x, y, and z components of the multiple average accelerations to use as the acceleration vector to be used for estimation. From the determined acceleration vector, information about the tilt of the IMU 2 (the rotation matrix and the rotation angle of the IMU 2 relative to each axis) is estimated using the method described above (S202).

[0086] As described above, according to this embodiment, by using the acceleration data of the IMU 2 acquired in response to turning, even when the robot 1 is on an inclined surface, it is possible to estimate with high accuracy information about the tilt of the IMU 2. Furthermore, if the acceleration data used for estimation is acquired while the turning of the robot 1 is temporarily stopped, it is not necessary to consider the influence of inward acceleration, and therefore the accuracy of estimation can be further improved.

[0087] 19 is a block diagram of an example of an information processing system including a robot 1A according to a third embodiment and a computer 40. In the first embodiment described above, the information processing device 100 was mounted on the robot 1, but in the third embodiment, the functions of the information processing device 100 are distributed between the robot 1A and the computer 40. The computer 40 is, for example, a device such as a PC (personal computer) or a server. The robot 1A and the computer 40 are connected via a communication network such as a wireless LAN (local area network) or the Internet.

[0088] The robot 1A includes an IMU 2, a position control unit 5, an odometry unit 6, a data acquisition unit 7, and a DB 8. The computer 40 includes an input UI 3A, an output UI 3B, a path planning unit 4, an analysis unit 9, and a memory unit 11. At least one of the data acquisition unit 7 and the DB 8 may be provided in the computer 40. If the DB 8 is provided in the computer 40, data acquired by the data acquisition unit 7 may be transmitted to the computer 40 in real time. The robot 1A may be provided with a memory unit. The input UI 3A corresponds to the input-related functions of the UI 3 in FIG. 1 , and the output UI 3B corresponds to the output-related functions of the UI 3 in FIG. 1 .

[0089] By distributing the functions of the information processing device 100 in this way and having the computer 40 execute processing with a high load, high-speed processing is possible even if the robot 1A is not equipped with a high-performance CPU or the like.

[0090] At least a portion of the information processing device described in each of the above-described embodiments may be configured with hardware or software. In the case of a software configuration, a program that realizes at least a portion of the functions of the information processing device may be stored on a recording medium such as a flexible disk or CD-ROM, and may be read and executed by a computer. The recording medium is not limited to removable media such as magnetic disks and optical disks, but may also be fixed recording media such as hard disk drives and memories.

[0091] In addition, a program that realizes at least some of the functions of an information processing device may be distributed via a communication line (including wireless communication) such as the Internet. Furthermore, the program may be encrypted, modulated, or compressed and distributed via a wired or wireless line such as the Internet, or stored on a recording medium.

[0092] The aspects of the present disclosure are not limited to the individual embodiments described above, but include various modifications that may be conceived by those skilled in the art, and the effects of the present disclosure are not limited to the above-described contents. In other words, various additions, modifications, and partial deletions are possible within the scope of the conceptual idea and spirit of the present disclosure, which is derived from the contents defined in the claims and their equivalents.

[0093] The present disclosure can be configured as follows: [Item 1] An information processing method comprising: rotating a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration; acquiring angular velocity data or acceleration data detected by the sensor in response to the rotation of the movable body; and estimating information relating to the inclination of the sensor with respect to the movable body based on the acquired angular velocity data or acceleration data. [Item 2] The movable body has a first coordinate system including a first axis and a second axis that are parallel to a surface facing the movable body and perpendicular to each other, and a third axis that is perpendicular to the surface; the sensor has a second coordinate system including a fourth axis corresponding to the first axis, a fifth axis corresponding to the second axis, and a sixth axis corresponding to the third axis; the angular velocity data represents an angular velocity vector including angular velocities with respect to the fourth axis, the fifth axis, and the sixth axis in the second coordinate system; a third unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the third axis of the first coordinate system is determined based on the angular velocity vector; a first unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the first axis of the first coordinate system is determined based on the cross product of the third unit vector and a unit vector representing the direction of the second axis of the first coordinate system; and a second unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the second axis of the first coordinate system is determined based on the cross product of the first unit vector and the third unit vector. The information processing method according to item 1, further comprising: generating a rotation matrix representing a relationship between the first coordinate system and the second coordinate system as information representing the tilt of the sensor based on the first unit vector, the second unit vector, and the third unit vector; [Item 3] calculating a rotation angle of the sensor relative to the first axis, the second axis, and the third axis of the first coordinate system based on the rotation matrix.[Item 4] The movable body has a first coordinate system including a first axis and a second axis that are parallel to a surface facing the movable body and perpendicular to each other, and a third axis that is perpendicular to the surface; the sensor has a second coordinate system including a fourth axis corresponding to the first axis, a fifth axis corresponding to the second axis, and a sixth axis corresponding to the third axis; the acceleration data represents an acceleration vector including accelerations with respect to the fourth axis, the fifth axis, and the sixth axis in the second coordinate system; an average vector is generated by averaging a plurality of the acceleration vectors acquired at a plurality of different rotation angles during rotation of the movable body; a third unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the third axis of the first coordinate system is determined based on the average vector; and a first unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the first axis of the first coordinate system is determined based on the cross product of the third unit vector and a unit vector that represents the direction of the second axis of the first coordinate system; The information processing method according to any one of items 1 to 3, further comprising: determining a second unit vector, which is a unit vector in a direction of the second coordinate system corresponding to the second axis of the first coordinate system, based on the cross product of the first unit vector and the third unit vector; and generating a rotation matrix representing the relationship between the first coordinate system and the second coordinate system as information representing the tilt of the sensor, based on the first unit vector, the second unit vector, and the third unit vector. [Item 5] The information processing method according to item 2 or 4, further comprising: rotating the movable body on a plane perpendicular to the vertical direction. [Item 6] The information processing method according to item 2 or 4, further comprising: rotating the movable body on a plane inclined with respect to the plane perpendicular to the vertical direction. [Item 7] The information processing method according to any one of items 4 to 6, further comprising: [Item 9] The information processing method according to any one of Items 1 to 8, wherein the movable body is rotated for a predetermined time or by a predetermined rotation angle.[Item 10] The information processing method according to any one of items 1 to 9, comprising receiving information instructing the movable body to turn, and turning the movable body at a point where the movable body was located at the time the information was received. [Item 11] The information processing method according to any one of items 1 to 10, comprising creating a movement plan for moving the movable body along a path, the movement plan including a plan for turning the movable body at a target position included in the path, controlling the movable body in accordance with the movement plan to move along the path, and turning the movable body at the target position when the movable body arrives at the target position. [Item 12] The information processing method according to any one of items 1 to 11, comprising moving the movable body along a path, acquiring at least one of angular velocity data and acceleration data detected by the sensor while the movable body is moving, correcting the acquired at least one of the angular velocity data and the acceleration data based on information about the estimated tilt, and estimating a history of positions passed by the movable body based on the corrected at least one of the angular velocity data and the acceleration data, thereby generating first position history data. [Item 13] The information processing method according to item 12, estimating a history of positions passed by the movable body based on at least one of the acquired angular velocity data and the acceleration data to generate second position history data, and outputting the first position history data and the second position history data. [Item 14] The information processing method according to any one of items 1 to 13, outputting image data in which an object representing the sensor is placed on an object representing a body of the movable body based on the estimated tilt. [Item 15] The information processing method according to any one of items 1 to 14, receiving information instructing whether or not to accept the tilt estimation result, and if the information indicates that the tilt estimation result is to be accepted, correcting information relating to the tilt of the sensor stored in the movable body based on the estimated information about the tilt.[Item 16] The information processing method according to any one of items 1 to 15, comprising: acquiring a plurality of angular velocity data or a plurality of acceleration data in response to the turning; estimating information about the tilt of the sensor based on the acquired plurality of angular velocity data or a plurality of acceleration data; calculating information about a variance of the plurality of angular velocity data or a variance of the plurality of acceleration data; generating reliability information about the tilt estimation result based on the information about the variance; and outputting the reliability information. [Item 17] The information processing method according to item 16, determining whether or not there is a problem with the installation state of the sensor based on the reliability information; and if it is determined that there is a problem with the installation state of the sensor, outputting a message urging a user to check whether or not the installation state of the sensor is appropriate. [Item 18] The information processing method according to any one of items 1 to 17, wherein the sensor is an IMU or at least one of an angular velocity sensor and an acceleration sensor. [Item 19] An information processing device comprising: a control unit that rotates a movable body equipped with a sensor that can detect at least one of angular velocity and acceleration, a data acquisition unit that acquires angular velocity data or acceleration data detected from the sensor in response to the rotation of the movable body, and an estimation unit that estimates an inclination of the sensor with respect to the movable body based on the acquired angular velocity data or the acceleration data. [Item 20] A program that causes a computer to execute: rotating a movable body equipped with a sensor that can detect at least one of angular velocity and acceleration, acquiring angular velocity data or acceleration data detected from the sensor in response to the rotation of the movable body, and estimating the inclination of the sensor with respect to the movable body based on the acquired angular velocity data or the acceleration data.

[0094] REFERENCE SIGNS LIST 1 Robot 1A Robot 4 Path planning unit 5 Position control unit 6 Odometry unit 7 Data acquisition unit 8 Database (DB) 9 Analysis unit 10 Output information generation unit 11 Storage unit 12 Camera 40 Computer 100 Information processing device 110 Wheel

Claims

1. An information processing method comprising: rotating a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration; acquiring angular velocity data or acceleration data detected by the sensor in response to the rotation of the movable body; and estimating information regarding the inclination of the sensor relative to the movable body based on the acquired angular velocity data or acceleration data.

2. The movable body has a first coordinate system including a first axis and a second axis that are parallel to a surface facing the movable body and perpendicular to each other, and a third axis that is perpendicular to the surface; the sensor has a second coordinate system including a fourth axis corresponding to the first axis, a fifth axis corresponding to the second axis, and a sixth axis corresponding to the third axis; the angular velocity data represents an angular velocity vector including angular velocities with respect to the fourth, fifth, and sixth axes in the second coordinate system; a third unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the third axis of the first coordinate system is determined based on the angular velocity vector; a first unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the first axis of the first coordinate system is determined based on the cross product of the third unit vector and a unit vector representing the direction of the second axis of the first coordinate system; a second unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the second axis of the first coordinate system is determined based on the cross product of the first unit vector and the third unit vector; The information processing method according to claim 1 , further comprising generating a rotation matrix representing the relationship between the first coordinate system and the second coordinate system as information representing the tilt of the sensor based on the first unit vector, the second unit vector, and the third unit vector.

3. The information processing method according to claim 2, further comprising calculating a rotation angle of the sensor relative to the first axis, the second axis, and the third axis of the first coordinate system based on the rotation matrix.

4. The movable body has a first coordinate system including a first axis and a second axis that are parallel to a surface facing the movable body and perpendicular to each other, and a third axis that is perpendicular to the surface; the sensor has a second coordinate system including a fourth axis corresponding to the first axis, a fifth axis corresponding to the second axis, and a sixth axis corresponding to the third axis; the acceleration data represents an acceleration vector including accelerations relative to the fourth, fifth, and sixth axes in the second coordinate system; an average vector is generated by averaging a plurality of the acceleration vectors acquired at a plurality of different rotation angles during rotation of the movable body; a third unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the third axis of the first coordinate system is determined based on the average vector; and a first unit vector that is a unit vector in a direction of the second coordinate system that corresponds to the first axis of the first coordinate system is determined based on the cross product of the third unit vector and a unit vector representing the direction of the second axis of the first coordinate system; 2. The information processing method according to claim 1, further comprising: determining a second unit vector, which is a unit vector in a direction of the second coordinate system corresponding to the second axis of the first coordinate system, based on the cross product of the first unit vector and the third unit vector; and generating a rotation matrix representing the relationship between the first coordinate system and the second coordinate system as information representing the tilt of the sensor, based on the first unit vector, the second unit vector, and the third unit vector.

5. The information processing method according to claim 2 or 4, wherein the movable body is rotated on a plane perpendicular to the vertical direction.

6. The information processing method according to claim 2 or 4, wherein the movable body is rotated on a plane inclined relative to a plane perpendicular to the vertical direction.

7. The information processing method according to claim 4, wherein the plurality of rotation angles include angles at which the movable body is positioned opposite to each other with respect to the center of rotation when rotating.

8. The information processing method according to claim 4, further comprising calculating a rotation angle of the sensor relative to the first axis, the second axis, and the third axis of the first coordinate system based on the rotation matrix.

9. The information processing method according to claim 1, wherein the movable body is rotated for a predetermined time or by a predetermined rotation angle.

10. The information processing method according to claim 1, further comprising receiving information instructing the movable body to turn, and turning the movable body at a position where the movable body was located at the time when the information was received.

11. The information processing method of claim 1, further comprising: creating a movement plan for moving the movable body along a path; the movement plan including a plan for turning the movable body at a target position included in the path; controlling the movable body in accordance with the movement plan to move along the path; and turning the movable body at the target position when the movable body arrives at the target position.

12. The information processing method according to claim 1, further comprising the steps of: moving the movable body along a path; acquiring at least one of angular velocity data and acceleration data detected by the sensor while the movable body is moving; correcting the acquired at least one of the angular velocity data and acceleration data based on information relating to the estimated tilt; and estimating a history of positions taken by the movable body based on the corrected at least one of the angular velocity data and acceleration data, thereby generating first position history data.

13. The information processing method according to claim 12, further comprising: estimating a history of positions passed by the movable body based on at least one of the acquired angular velocity data and the acquired acceleration data; generating second position history data; and outputting the first position history data and the second position history data.

14. The information processing method according to claim 1, further comprising outputting image data in which an object representing the sensor is arranged on an object representing the body of the movable body based on the estimated tilt.

15. An information processing method according to claim 1, further comprising receiving information indicating whether to accept the estimated result of the tilt, and if the information indicates that the estimated result of the tilt is to be accepted, correcting information relating to the tilt of the sensor stored in the movable body based on the information relating to the estimated tilt.

16. The information processing method according to claim 1, further comprising: acquiring a plurality of said angular velocity data or a plurality of said acceleration data in response to said turning; estimating information relating to said inclination of said sensor based on said acquired plurality of said angular velocity data or a plurality of said acceleration data; calculating information relating to the variance of said plurality of said angular velocity data or the variance of said plurality of said acceleration data; generating reliability information of the estimation result of said inclination based on said information relating to said variance; and outputting said reliability information.

17. An information processing method as described in claim 16, further comprising determining whether there is a problem with the installation state of the sensor based on the reliability information, and if it is determined that there is a problem with the installation state of the sensor, outputting a message urging the user to check whether the installation state of the sensor is appropriate.

18. The information processing method according to claim 1, wherein the sensor is an IMU or at least one of an angular velocity sensor and an acceleration sensor.

19. An information processing device comprising: a control unit that rotates a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration; a data acquisition unit that acquires angular velocity data or acceleration data detected from the sensor in response to the rotation of the movable body; and an estimation unit that estimates the inclination of the sensor relative to the movable body based on the acquired angular velocity data or acceleration data.

20. A program executed by a computer, which rotates a movable body equipped with a sensor capable of detecting at least one of angular velocity and acceleration, acquires angular velocity data or acceleration data detected by the sensor in response to the rotation of the movable body, and estimates the inclination of the sensor relative to the movable body based on the acquired angular velocity data or acceleration data.

Citation Information

Patent Citations

  • Attitude determination method, position calculation method and attitude determination device

    JP2012194175A

  • Inverted pendulum vehicle, and method for correcting output value of angle sensor

    JP2013116684A

  • Methods and apparatus to automate multi-point inertial sensor calibration

    US20220113163A1