Embodiments described herein relate generally to a data processing device, a mobile body system, a mobile body, a data processing method, and a storage medium.
There is a mobile body that moves by autonomously traveling over a traveling surface such as a floor surface or the like. Technology is desirable in which the mobile body can move with higher accuracy to a set position.
According to one embodiment, a data processing device is configured to process data related to a mobile body. The mobile body moves by autonomously traveling over a traveling surface. The data processing device is further configured to calculate a first error occurring in a first movement from a first position to a transit position. The first movement includes a translational motion and a turning motion. The data processing device is further configured to predict, based on the first error, a second error occurring in a second movement from the transit position to a second position. The second movement includes a turning motion. The data processing device is further configured to correct a movement amount of the mobile body in the second movement by using the first and second errors.
Various embodiments will be described hereinafter with reference to the accompanying drawings.
The drawings are schematic and conceptual; and the relationships between the thickness and width of portions, the proportions of sizes among portions, etc., are not necessarily the same as the actual values thereof. Further, the dimensions and proportions may be illustrated differently among drawings, even for identical portions.
In the specification and drawings, components similar to those described or illustrated in a drawing thereinabove are marked with like reference numerals, and a detailed description is omitted as appropriate.
An invention according to an embodiment is related to a mobile body, a data processing device, and a mobile body system including the mobile body and the data processing device. The data processing device processes data necessary for the mobile body to travel. As an example, the mobile body is an automated guided vehicle (AGV) and can move autonomously to a designated position by traveling over a floor surface. For example, after loading an object on the mobile body at some position, the mobile body automatically moves to a designated position. The loaded object is unloaded from the mobile body at the position after moving. The mobile body may pull the object. The mobile body may be a rail guided vehicle (RGV) moving along a preset trajectory. The mobile body may include, as a mobile mechanism, two-wheel drive or four-wheel drive wheels, or a caterpillar. The mobile body may include a multi-legged mechanism having two or more legs.
Specific examples of the mobile body will now be described with reference to
In the illustrated example, the mobile body 10 moves over the traveling surface by a differential drive technique. Specifically, the mobile body 10 translates frontward (travels forward) by causing normal rotation of the drive wheels 12a and 12b at equal rotational speeds. The mobile body 10 translates backward (travels backward) by causing reverse rotation of the drive wheels 12a and 12b at equal rotational speeds. The mobile body 10 turns frontward and leftward by causing normal rotation of the drive wheel 12b, and by causing normal rotation of the drive wheel 12a at a higher rotational speed than the drive wheel 12b. The mobile body 10 may rotate leftward by causing normal rotation of the drive wheel 12a, and by causing reverse rotation of the drive wheel 12b at the same rotational speed as the drive wheel 12a. Herein, rotational motion is treated as one type of turning motion. The mobile body 10 turns backward and leftward by causing reverse rotation of the drive wheel 12b, and by causing reverse rotation of the drive wheel 12a at a higher rotational speed than the drive wheel 12b. The mobile body 10 turns frontward and rightward by causing normal rotation of the drive wheel 12a, and by causing normal rotation of the drive wheel 12b at a higher rotational speed than the drive wheel 12a. The mobile body 10 may rotate rightward by causing reverse rotation of the drive wheel 12a, and by causing normal rotation of the drive wheel 12b at the same rotational speed as the drive wheel 12a. The mobile body 10 turns backward and rightward by causing reverse rotation of the drive wheel 12a, and by causing reverse rotation of the drive wheel 12b at a higher rotational speed than the drive wheel 12a. The mobile body 10 cannot move linearly leftward or rightward.
The external sensor 14 (a second sensor) detects information outside the mobile body 10. For example, the external sensor 14 is a laser rangefinder (LRF) located at the front or back of the mobile body 10. The LRF measures the distances between the mobile body 10 and surrounding objects. The external sensor 14 may be a camera. The camera images the surroundings of the mobile body 10. Both a LRF and a 5 camera may be included as the external sensor 14.
The internal sensor 15 (a first sensor) detects information inside the mobile body 10. For example, the internal sensor 15 is an acceleration sensor or an angular velocity sensor. The acceleration sensor or the angular velocity sensor detects the 10 acceleration or the angular velocity when the mobile body 10 moves. The internal sensor 15 may be an encoder that detects the rotational speed of a motor. In such a case as shown in
The pedestal 16 is located at a portion of the vehicle body 11 and includes a placement surface 16a. The placement surface 16a faces upward. When the mobile body 10 is placed on a horizontal traveling surface, the placement surface 16a also is horizontal. An object can be placed on the placement surface 16a. The raising/lowering device 17 raises or lowers the pedestal 16. The control device 18 controls operations of the mobile body 10. Specifically, the control device 18 controls the drive source 13 so that the mobile body 10 moves according to a movement plan. The control device 18 also receives and processes data acquired by the external sensor 14 and the internal sensor 15. The control device 18 operates the raising/lowering device 17 to raise and lower the object.
A movement command to the mobile body 10 may be transmitted from a higher-level system. The mobile body 10 may read a movement command that is preset. A movement command of the mobile body 10 may be set by direct input by a person. 35
As shown in
The mobile body 10 raises the pedestal 16 by operating the raising/lowering device 17 in a state in which the pedestal 16 is positioned under the basket cart 100. The placement surface 16a of the pedestal 16 contacts the bottom surface of the basket cart 100. By further raising the pedestal 16, the basket cart 100 is lifted, and wheels 101 of the basket cart 100 separate from the traveling surface. Or, the raising/lowering device 17 may raise the pedestal 16 so that the wheels 101 are not separated from the traveling surface, and the basket cart 100 is supported from below. As a result, the entire load of the basket cart 100 can be prevented from being applied to the mobile body 10. The mobile body 10 transports the basket cart 100 by moving along the traveling surface in a state in which the placement surface 16a contacts the basket cart 100.
The environment map is referenced when moving the mobile body 10. The environment map is a map in which the surrounding environment within the range of movement of the mobile body 10 is shown in two dimensions. The environment map may be generated from sensor data of any time series, or may be generated using a drawing of the structure of a building. Preregistered locations are set in the environment map. The position of starting the movement, the position of ending the movement, the position of starting the transport of the basket cart 100, the position of unloading the basket cart 100, temporary stop positions, etc., are set as preregistered locations. When operating the mobile body 10, first, the start position of the operation of the mobile body 10 and the destination of the mobile body are set manually. The mobile body 10 generates a movement path from the current position of the mobile body 10 to the designated registered location while referring to position/orientation information and periphery information on the environment map, and follows the movement path. The position/orientation information indicates the position and orientation of the mobile body on the map. The orientation is represented by the angle around the vertical direction with respect to a reference orientation. The mobile body 10 may be actually positioned at any location in the state in which the position and orientation of the mobile body 10 indicated by the position/orientation information matches the position and orientation of the mobile body 10 on the environment map, and that position may be set as a registered location. The registered location may be set manually.
As shown in
The control device 18 of the mobile body 10 functions as a sensor controller 18a and a movement controller 18b. The sensor controller 18a controls the external sensor 14 and the internal sensor 15. The sensor controller 18a also receives data detected by the external sensor 14 and the internal sensor 15.
The data processing device 20 functions as an acquisition part 21, a movement planning part 22, an error calculator 23, a correction part 24, and a prediction part 25. The acquisition part 21 acquires data of the sensors from the sensor controller 18a and calculates the position or orientation of the mobile body 10. The movement planning part 22 generates the movement plan of the mobile body 10 while referring to the calculated position or orientation. The movement plan indicates the necessary motion and movement amount for the mobile body 10 to move from one position to another position. The movement controller 18b controls the drive source 13 so that the mobile body 10 moves according to the movement plan.
The error calculator 23 calculates the error occurring due to the movement partway through implementing of the movement plan. The calculation of the error refers to registered information 32 and position/orientation information 33 of the environment map 31. Registered information 32 is data of the position and orientation of the mobile body 10 at a prescribed registered location in the environment map 31, and is calculated before moving to the registered location. The position/orientation information 33 is information of the position and orientation of the mobile body 10 calculated based on data from one of the sensors, and is calculated after moving to the registered location.
The correction part 24 corrects the remaining movement amount of the movement plan based on the calculated error. Based on the calculated error, the prediction part 25 predicts the error that will occur in the remaining movement of the movement plan. The prediction part 25 further corrects, based on the predicted error, the movement amount corrected by the correction part 24. The movement controller 18b controls the drive source 13 so that the mobile body 10 moves the movement amount output from the prediction part 25.
A specific example of the mobile body system 1 will now be described with reference to
At the first position P1, first, the acquisition part 21 acquires data of the external sensor 14. Based on the data, the acquisition part 21 calculates the relative positional relationship between the first position P1 and the second position P2. When the external sensor 14 is a LRF, the relative positional relationship of the second position P2 with respect to the first position P1 is calculated using point cloud data acquired by the LRF. Or, instead of the data of the external sensor 14, the acquisition part 21 may acquire position data that is pre-generated manually.
The movement planning part 22 generates a movement plan for the mobile body 10 to move from the first position P1 to the second position P2. Specifically, the movement plan includes a first movement and a second movement. The first movement is the movement from the first position P1 to a transit position P3, and includes the translational motion shown in
The movement controller 18b causes the mobile body 10 to perform the first movement by controlling the drive source 13. First, the mobile body 10 travels forward toward the second position P2 in the translational motion shown in
When the first movement is completed, the acquisition part 21 acquires data obtained by the sensors and calculates the position/orientation information 33. When the external sensor 14 is a LRF or a camera, the acquisition part 21 generates a map of the information of the surroundings of the mobile body 10 based on the data obtained by the LRF or the camera. The generated map indicates the position and orientation of the mobile body 10 with respect to the surrounding objects. The position and orientation of the mobile body 10 at the transit position P3 in the map generated by the acquisition part 21 are calculated as the position/orientation information 33.
The error calculator 23 uses the position/orientation information 33 calculated by the acquisition part 21 and the registered information 32 included in the environment map 31 to calculate the first error that includes a first turning error. The registered information 32 includes the position and orientation of the mobile body 10 at the registered location. For example, the transit position P3 is set as a registered location; and the position and orientation of the mobile body 10 at the transit position P3 is pre-calculated. The error calculator 23 calculates the difference between the orientation of the mobile body 10 at the transit position P3 of the registered information 32 and the orientation of the mobile body 10 at the transit position P3 of the position/orientation information 33 as the first turning error occurring due to the turning motion of the first movement. The first error may include a first translation error in addition to the first turning error. For example, the error calculator 23 may calculate the difference between the transit position P3 of the registered information 32 and the position of the mobile body 10 of the position/orientation information 33 as the first translation error occurring due to the translational motion of the first movement.
The correction part 24 corrects the movement amount of the second movement based on the first error to reduce the difference between the target second position P2 and the position of the mobile body 10 after the second movement. The corrected movement amount (x2, y2) is represented by the following Formula 1, wherein “x1” is the movement amount in the X-direction in the second movement, “y1” is the movement amount in the Y-direction in the second movement, and Δθ is the first turning error.
Based on the first error calculated by the error calculator 23, the prediction part 25 predicts a second error that will occur in the second movement. The second error includes a second turning error predicted to occur in the turning motion of the second movement. The second turning error is predicted based on the first turning error. Based on the predicted second error, the prediction part 25 further corrects the movement amount corrected by the correction part 24. For example, the first turning error when turning an angle θ1 in the turning motion of the first movement is taken as Δθ. The movement amount (x3, y3) that is corrected when turning an angle θ2 in the turning motion of the second movement is represented by the following Formula 2.
In the illustrated example, the first movement includes a turning motion of 180 degrees. The second movement includes a right turning motion of 90 degrees and a left turning motion of 90 degrees. The angles θ1 and θ2 each are 180 degrees.
When the second movement includes a translational motion, a second translation error of the translational motion of the second movement may be predicted based on the first translation error of the translational motion of the first movement. For example, the ratio of the first translation error to the movement amount of the translational motion of the first movement is calculated. The second translation error is predicted by multiplying the ratio by the movement amount of the translational motion of the second movement. In such a case, the second error includes the second translation error and the second turning error. The movement amount is corrected using the second translation error and the second turning error. The prediction part 25 transmits the corrected movement amount (x3, y3) to the movement controller 18b. The movement controller 18b controls the drive source 13 to move the mobile body 10 the movement amount (x3, y3). As shown in
There are cases where a safety zone is set in front of the mobile body 10 to avoid impacts between the mobile body 10 and other objects. The mobile body 10 stops when an object is detected inside the safety zone. When a safety zone is set in front of the mobile body 10, and if the mobile body 10 moves frontward toward the second position P2, the mobile body 10 approaches the basket cart 110 that is already placed, and the basket cart 110 is detected inside the safety zone. As a result, the mobile body 10 can no longer be moved toward the second position P2. By moving toward the second position P2 backward as shown in
When the mobile body 10 moves to the second position P2, the mobile body 10 lowers the pedestal 16. As a result, the basket cart 100 is placed inside the section S2. The mobile body 10 moves toward the next transport target.
In the data processing method PM according to the embodiment, the movement planning part 22 sets the multiple sections S as shown in
Although the position/orientation information is compared with the registered information in the example above, it is also possible to compare the position/orientation information with the movement amount of the first movement of the movement plan. The difference between the position/orientation information at the first position P1 and the position/orientation information at the transit position P3 corresponds to the actual movement amount of the mobile body 10. If the difference matches the planned movement amount of the first movement, then there is no error in the movement amount of the mobile body 10. The error calculator 23 may calculate the first error by comparing the actual movement amount and the planned movement amount of the first movement.
Advantages of the embodiment will now be described.
There are cases where an error of the movement amount of the mobile body 10 occurs due to slipping of the wheel 12 with respect to the traveling surface when the mobile body 10 moves. Slipping also occurs easily when the mobile body 10 transports an object (a basket cart) because the mobile body 10 is driven with a larger force. When a portion (the wheels) of the object being transported contacts the traveling surface as shown in
For this problem, first, the data processing device 20 according to the embodiment calculates the first error occurring in the first movement from the first position P1 to the transit position P3. Based on the calculated first error, the data processing device 20 predicts the second error occurring in the second movement from the transit position P3 to the second position P2. In other words, the error that occurred in a portion of the movement plan that is already performed is used to predict the error occurring in another portion of the movement plan to be subsequently performed. The data processing device 20 uses the first and second errors to correct the movement amount of the second movement. The movement amount is corrected based on the first error that already occurred, and the movement amount is further corrected based on the second error predicted to occur; as a result, the mobile body 10 can move with higher accuracy to the second position P2.
This method is particularly effective when various data such as the weight of the mobile body 10, the weight of the basket cart 100 to be transported, the friction coefficient of the wheel 12, the friction coefficient of the wheel 101, the friction coefficient of the traveling surface, etc., are not available. It is also possible to pre-estimate the movement amount due to slipping when such data is available. However, time and effort are necessary to prepare data for all of the basket carts to be transported. According to the embodiment, such data can be omitted because the second error can be predicted based on the first error occurring in the first movement.
Compared to a translational motion, slipping occurs particularly easily in a turning motion. The movement amount due to slipping in the turning motion is greater than the movement amount due to slipping in the translational motion. Therefore, the embodiment is effective at least when calculating or predicting the turning error. It is favorable for the data processing device 20 to calculate the first turning error occurring in the first movement, predict the second turning error occurring in the second movement based on the first turning error, and use these turning errors to correct the movement amount of the second movement.
The embodiment is particularly effective for a differential-drive mobile body. A differential-drive mobile body has various advantages compared to an omni-directionally-movable mobile body. For example, compared to an omni-directionally-movable mobile body, the mechanism or structure of a differential-drive mobile body is simple and easy to realize. Also, when calculating the motion of the mobile body, the motion can be expressed using simpler formulas. On the other hand, the directions in which a differential-drive mobile body can move are limited. For example, when the mobile body includes an omniwheel mechanism, a mecanum wheel mechanism, etc., and is omni-directionally movable, the error that occurs is calculated in real time when moving the mobile body; and the error can be corrected. Even when an error occurs when moving along the route shown in
In the mobile body system according to the first modification, the method for calculating the first error is different from the method described above. A specific example of the method for calculating the first error according to the first modification will now be described with reference to
First, as shown in
After traveling forward, the mobile body 10 performs a turning motion as shown in
Based on the first error, the correction part 24 corrects the movement amount in the turning motion shown in
Compared to the data processing method PM shown in
In the mobile body system according to the second modification, the method for calculating the first error is different from the method described above. Similarly to the first modification, the method according to the second modification calculates the first error by referring to a portion of an object proximate to the target position. The motion of the mobile body 10 according to the second modification is similar to, for example, the motion shown in
As shown in
In the data processing method described above, the second error is predicted based on the first error that occurs in a portion of the movement plan. According to the method described above, the second error can be predicted with high accuracy even when data such as the weight of the mobile body 10, the weight of the basket cart 100, the friction coefficient of the wheel 12, the friction coefficient of the wheel 101, the friction coefficient of the traveling surface, etc., are not available. Herein, such data is called condition data. When the condition data is available, it is also possible to predict the error before implementing the movement plan.
The mobile body system 1a according to the third modification shown in
The movement planning part 22 generates a movement plan from the current position (the first position) to the target position (the second position). The prediction part 25 acquires condition data related to the mobile body 10, condition data related to the basket cart 100 to be transported, etc. The prediction part 25 also refers to the error data 34 and acquires the error corresponding to the acquired condition data and the movement amount shown in the movement plan. The acquired error is the error predicted to occur in the movement plan. The prediction part 25 corrects the movement amount of the movement plan based on the acquired error. The movement controller 18b moves the mobile body 10 according to the corrected movement amount.
According to the embodiments above, the data processing device 20 and the storage device 30 may be located separately from the mobile body 10 and may communicate with the mobile body 10 (the control device 18). Or, as shown in
For example, a computer 90 shown in
The ROM 92 stores programs controlling operations of the computer 90. The ROM 92 stores programs necessary for causing the computer 90 to realize the processing described above. The RAM 93 functions as a memory region into which the programs stored in the ROM 92 are loaded.
The CPU 91 includes a processing circuit. The CPU 91 uses the RAM 93 as work memory and executes the programs stored in at least one of the ROM 92 or the storage device 94. When executing the programs, the CPU 91 executes various processing by controlling configurations via a system bus 98.
The storage device 94 stores data necessary for executing the programs and/or data obtained by executing the programs.
The input interface (I/F) 95 can connect the computer 90 and an input device 95a. The input I/F 95 is, for example, a serial bus interface such as USB, etc. The CPU 91 can read various data from the input device 95a via the input I/F 95.
The output interface (I/F) 96 can connect the computer 90 and an output device 96a. The output I/F 96 is, for example, an image output interface such as Digital Visual Interface (DVI), High-Definition Multimedia Interface (HPMI (registered trademark)), etc. The CPU 91 can transmit data to the output device 96a via the output I/F 96 and cause the output device 96a to display an image.
The communication interface (I/F) 97 can connect the computer 90 and a server 97a outside the computer 90. The communication I/F 97 is, for example, a network card such as a LAN card, etc. The CPU 91 can read various data from the server 97a via the communication I/F 97.
The storage device 94 includes at least one selected from a hard disk drive (HDD) and a solid state drive (SSD). The input device 95a includes at least one selected from a mouse, a keyboard, a microphone (audio input), and a touchpad. The output device 96a includes at least one selected from a monitor, a projector, a printer, and a speaker. A device such as a touch panel that functions as both the input device 95a and the output device 96a may be used.
The processing performed by the control device 18, the data processing device 20, or the data processing device 20a may be realized by one computer 90, or may be realized by the collaboration of multiple computers 90. When the data processing device 20 is embedded in the mobile body 10 as shown in
The processing of the various data described above may be recorded, as a program that can be executed by a computer, in a magnetic disk (a flexible disk, a hard disk, etc.), an optical disk (CD-ROM, CD-R, CD-RW, DVD-ROM, DVD±R, DVD±RW, etc.), semiconductor memory, or another non-transitory computer-readable storage medium.
For example, the information that is recorded in the recording medium can be read by a computer (or an embedded system). The recording format (the storage format) of the recording medium is arbitrary. For example, the computer reads a program from the recording medium and causes a CPU to execute the instructions recited in the program based on the program. In the computer, the acquisition (or the reading) of the program may be performed via a network.
The embodiments of the present invention includes the following features.
A data processing device, configured to:
The device according to feature 1, wherein
The device according to feature 2, wherein
The device according to feature 2 or 3, wherein
The device according to feature 2 or 3, wherein
The device according to feature 2 or 3, wherein
7. The device according to feature 2 or 3, wherein
A data processing device, configured to:
A mobile body system, comprising:
The system according to feature 9, wherein
According to embodiments above, a data processing device, a mobile body system, a mobile body, a data processing method, a program, and a storage medium are provided in which a mobile body can move with higher accuracy to a set position.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the invention. Moreover, above-mentioned embodiments can be combined mutually and can be carried out.
Number | Date | Country | Kind |
---|---|---|---|
2022-048256 | Mar 2022 | JP | national |
This is a continuation application of International Patent Application PCT/JP2023/011863, filed on Mar. 24, 2023. This application also claims priority to Japanese Patent Application No. 2022-048256, filed on Mar. 24, 2022. The entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2023/011863 | Mar 2023 | WO |
Child | 18826408 | US |