The present disclosure relates to control, operation and navigation of an autonomous device, particularly in the context of a mobile robot transporting a plurality of articles from one location to another.
Robotic vehicles may be configured to carry out a certain task autonomously or semi-autonomously for a variety of applications including product transportation and material handling. Autonomous mobile robotic vehicles typically have the ability to navigate and to detect objects automatically and may be used alongside human workers, thereby potentially reducing the cost and time required to complete otherwise inefficient operations such as basic labor, transportation and maintenance. Examples of commercial mobile robots with article carrying capacity include OTTO™ mobile platforms, Kuka™ mobile robots, MiR™ mobile platforms, Kiva™ warehouse robots, and Harvest AI™ agricultural robots.
U.S. Pat. No. 8,915,692, for example, describes a methodology to autonomously transport articles, one article at a time, using a mobile robot within a boundary subsystem.
Further, some autonomous vehicles can use wireless communication with a number of beacons in order to determine a position of the vehicle within a workspace. For example, U.S. Pat. No. 6,799,099 issued to Zeitler et. al. discusses a material handling system with high frequency radio location devices, where the position of a device is determined through the device communicating in Ultra Wideband (UWB) signals with a plurality of stationary beacons. In such systems, the operation space of the device is determined by the position of such stationary beacons, and the operation space of the device is restricted by the effective range of the wireless communications.
Furthermore, such systems may be used in combination with a system for determining the orientation of the vehicle such as an internal Inertial Measurement Unit (IMU) for further localization. However, IMUs experience drift, which results in increasing error over time, and as a result require periodic recalibration. It is contemplated that a method can be used to recalibrate the IMU using references such as the beacons of the localization system, for example, in order to reduce accumulated error. By taking advantage of the localization system's innate architecture, this advantage may be achieved without the need for additional hardware or components.
The current invention discloses novel methodologies to facilitate transporting articles, multiple articles at a time, using a mobile robot.
In accordance with one disclosed aspect, a method for transportation of articles using a mobile robot is provided. The mobile robot generally includes a mobile base, a manipulator which rotates with respect to the mobile base, a storage platform disposed on the base and one or more sensors, and mobile robot is provided with a navigation system. The method includes a detecting step, a mapping step, a selecting step, a first determining step, a loading step, a first travelling step, a second determining step, an orienting step, an unloading step, and a second travelling step. The detecting step involves detecting, by one or more sensors, a plurality of articles to be transported at a predetermined pick-up area. The mapping step involves mapping, by a processing unit, the detected plurality of articles onto a global map based on an absolute coordinate system and storing the global map in a memory of the processing unit. The selecting step involves selecting, by the processing unit, a selected set of articles out of the detected plurality of articles according to predetermined parameters. In the first determining step, the processing unit determines a determined sequence for picking up the selected set of articles. In the loading step, the manipulator of the mobile robot loads the selected set of articles onto the mobile robot according to the determined sequence. The first travelling step involves the mobile robot travelling from the pick-up area to a predetermined drop-off area according to the navigation system, followed by the second determining step in which the processing unit determines a target position within the drop-off area. After the second determining step, the mobile base orients in a direction which does not require the base to be re-oriented for unloading at least two consecutive articles of the selected set of articles in the orienting step. Finally, in the second travelling step, the mobile robot travels from the drop-off area back to the pick-up area. The method may then repeat from the detecting step until all articles are transported. In certain embodiments, the processing unit may comprise a local server or cloud server, which is disposed external to the mobile robot.
The selecting step may include determining, by the processing unit, a best article to select according to the predetermined parameters. The predetermined parameters may include distance from an object, and/or obstacles detected near the object. The selecting step may also include determining, by the processing unit, a ranking of the detected plurality of articles. The first determining step may include following the determined ranking of articles. The first determining step may also include basing the determination at least in part on the global map generated in the mapping step.
The second determining step may include determining the target position based on: a relative position of the robot with respect to an object detected by the one or more sensors, an absolute position based on the absolute coordinate localization system, or any combination of the two. The predetermined settings may include a drop-off pattern, drop-off spacing, physical dimensions of the drop-off area, physical dimensions of the articles and physical dimensions of the defined operating area.
In this case, the unloading step may further include a calculating step, an aligning step, and placing step, and a switching step. In the calculating step, the processing unit calculates the number of articles which may be placed in a row at the drop-off area based off the settings. In the aligning step, the mobile robot orients itself parallel to the row. In the placing step, articles are placed into the row. In the switching step, the processing unit causes the robot to switch to a new row when the maximum number of articles in a row is detected. In this unloading step, there may also be the steps of moving, by the mobile robot, in a direction parallel to the row to control spacing between articles of the same row and adjusting, by the mobile robot, the angular orientation of a manipulator with respect to the heading of the mobile robot to control spacing of articles between different rows.
Alternatively, the unloading step may include determining, by the processing unit, an optimal unloading position and orientation, and a number of articles to be unloaded based on information from the one or more sensors, moving, by the mobile robot, to achieve the position and orientation, unloading articles around the position according to a predetermined pattern, and repeating from the determining step when the number of articles has been unloaded. In either case, the method may also further include avoiding, by the mobile robot, articles mapped in the global map during the loading, travelling, and unloading steps.
In accordance with another aspect, the unloading step may include determining, by the processing unit, in a determining step, an optimal unloading position and orientation for the mobile robot and a number of articles to be unloaded, based on the predetermined settings; moving the mobile robot to achieve the optimal unloading position and orientation; unloading articles around the optimal unloading position and orientation; and repeating from the determining step when the number of articles to be unloaded has been unloaded. In the determining step, the optimal unloading position and orientation for the mobile robot may be determined so as to avoid the mobile robot going outside of a defined operating area.
In accordance with another aspect, also disclosed herein is a method for expanding an operation space of a mobile robot. This method includes determining, by a processing unit, that the mobile robot has completed a work task in the operation space followed by assigning, by the processing unit, a relocation task to the mobile robot, the relocation task comprising moving one or more beacons of a plurality of beacons from a first position of each of the one of more beacons to a second position of each of the one or more beacons. The method then includes executing, by the mobile robot, the relocation task, the task involving navigating, by the mobile robot, to a first beacon of the one or more beacons located at a first position using a localization system comprising the plurality of beacons, interacting, by the mobile robot, with the first beacon to ready the first beacon for transport, transporting, by the mobile robot, the first beacon to a second position for the beacon, comprising navigating using the localization system, and repeating from the navigating step for each other beacon of the one or more beacons to be moved. The method then includes assigning, by the processing unit, a new work task to the mobile robot in the operation space defined by new beacon positions. In this manner, once the work task (e.g. a method of transportation of articles) has been completed for one operation space, the mobile robot can automatically define a new operation space, and perform the work task in the new operation space, without requiring human intervention.
Navigating using the localization system may include navigating using a UWB, RADAR, WLAN, Wi-Fi, Bluetooth, or Acoustic localization system, and/or navigating using a localization system comprising a mobile beacon disposed on the mobile robot in communication with the plurality of beacons. In the latter case, navigating using the localization system when transporting the first beacon to a second position for the beacon may include determining, by the mobile robot, the orientation of the mobile robot using the mobile beacon and the beacon which is being transported in communication with the remainder of the plurality of beacons. The second position may be along a line extending through the first beacon and a second beacon of the operation space, and the second position may be approximately equidistant from the second beacon as the first beacon. Said line may lie along an edge of the operation space. Interacting, by the mobile robot, with the first beacon may include engaging, by the mobile robot, an end effector of a manipulator of the mobile robot with the beacon.
In accordance with another aspect, also disclosed herein is a method for alignment recalibration of a mobile robot. The disclosed method includes a recalibration identifying step, a recalibration aligning step, a recalibration determining step, and a recalibration moving step. The recalibration identifying step involves identifying, by a processing unit, a movable reference object based on information from one or more sensors on the mobile robot. The recalibration aligning step involves aligning, by the processing unit, one or more axes of an orientation system based on at least one of a line defined by a face of the reference object or an angle of a corner of the reference object. In the recalibration determining step, the processing unit determines whether the reference object is to be moved to a new position based on at least a measure of if the reference object is at least partially obstructed. In the recalibration moving step, the mobile robot moves the reference object to the new position upon determination that the reference object is to be moved.
In the recalibration aligning step, aligning one or more axes of an orientation system may include calibrating an Inertial Measurement Unit (IMU). Identifying the movable reference object may involve detecting the reference object using one or more of an electromagnetic, optical, or acoustic sensor system. Identifying the movable reference object may involve detecting a movable beacon of a localization system of the mobile robot, and the localization system may be any one of an electromagnetic, optical, or acoustic localization system.
In the following, embodiments of the present disclosure will be described with reference to the appended drawings. However, various embodiments of the present disclosure are not limited to arrangements shown in the drawings.
Referring to
The processing unit 108 may establish an absolute coordinate system by communicating, through the mobile robot 100, with one or more static reference points, such as beacons 130 using a positioning system. For example, an absolute coordinate system may be established by at least a UWB tag 107 disposed on the mobile robot 100 communicating with the fixed beacons 130 through UWB by measuring time of flight to determine the distance of the robot from the beacon. Two UWB tags 107 may be disposed on the robot 100 with a certain distance from each other to enable determining the orientation of the robot 100 in the absolute coordinate system. The processing unit 108 may correlate the information from the mobile robot's 100 one or more sensors, such as the detected articles in the field of view 106, with the established absolute coordinate system to generate a persistent map of the position of articles and store it in the memory. The map may be updated as the mobile robot 100 moves and rotates, seeing additional obstacles and articles such as deposited articles 122 at the drop-off area 120, or other articles 112 at the pick-up area 110.
The UWB beacons may provide the coordinates of the mobile robot 100 in 2 dimensions (x,y) or 3 dimensions (x,y,z). In case the field, where the mobile robot 100 is working in, has negligible changes in elevation, the coordinates of the robot 100 and the articles could be mapped in two dimensions by the processing unit 108. Otherwise (for example, if the field has a considerable slope or the field has steps and ramps), the processing unit 108 may create a three-dimensional map of the field using the UWB beacons and the sensors onboard the robot.
The robot 100 is configured to pick up a plurality of articles from a pick-up area 110, transport the articles to a destination, and drop them off at a drop-off site 120.
When the robot 100 is facing towards the pick-up area 110, the processing unit 108 selects a set of articles (labeled 1 through 5) out of the plurality of articles 112 at the pick-up area 110 according to a predetermined set of criteria and parameters. The criteria may include selecting a set of articles that their pick-up consume the least amount of time and energy from the robot 100. The criteria may use a cost function of weighted parameters such as distance to be moved, rotation required, and obstructions for each of the detected articles from the plurality of articles 112. The processing unit 108 may be configured to assign a cost value to each article in the plurality or articles 112 based on the cost function, for example and then may determine a sequence for picking up the selected set of articles. The processing unit 108 may do so by further considering the effect on the cost functions of each other article by selecting a given article to pick up, for example, and minimizing this cost in order to minimize movement needed to access and load each of the selected articles onto the transport surface 104.
The processing unit 108 then directs the mobile robot 100 to load the selected articles onto the transport surface 104. In this configuration, the robot 100 first approaches the first article from the set of selected articles (labeled 1 through 5) through a first planned route 140, then moves to pick up each individual article from the remainder of the selected articles through subsequent planned routes 142. In order to facilitate placing multiple articles to the transport surface 104, the transport surface 104 and the manipulator 102 may rotate with respect to each other so that the manipulator has access to different locations of the transport surface 104, such as by rotating the transport surface 104 with respect to the chassis of the robot 100 as a rotating table, or by rotating the manipulator 102 with respect to the chassis 100, for example. However, there may be other methods to facilitate placing multiple articles on the transport surface 104. For example, the transport surface 104 may have rollers and conveyor belts to facilitate locating and distributing the loaded articles on the transport surface 104 once an article is loaded to it using the manipulator 102, or the manipulator 102 may move on rails to access different levels of a multi-levelled transport surface 104, or any other method of accessing and storing a plurality of articles.
When each article of the set of articles has been loaded onto the transport surface 104, the mobile robot 100 travels along route 144 to the drop-off area 120 (details shown in
Referring to
Referring now to
As the robot 100 is traveling towards the identified location 52, it may use the absolute coordinate system through communicating with beacons 130 for example (robot's communication with beacons 130 is shown by lines 150 in
Referring to
Referring now to
An optional variation of the drop-off method is shown in
In
The mobile robot 300 of
The mobile robot 300 then moves 342 to drop-off area 320 to place the loaded articles next to placed articles 322. In this illustrative embodiment, the method of filling the drop-off area 320 may be modified to facilitate the differing operational characteristics of the mobile robot 300 by placing the articles 322 in a cluster rather than rows, as the manipulator 302 allows for this pattern of placement while minimizing movement of the mobile robot 300. For other manipulator configurations on the mobile robot 300, other filling methods may be optimal and can be derived through a cost function analysis. The unloading step for this illustrative embodiment is shown in
Referring to
Referring to
Referring to
After a subset of articles have been selected, the method 50 then proceeds to a loop of steps for preparing the selected articles for transport. In the approaching step 508, the processing unit sends a signal directing the transport unit, such as a mobile robot with a manipulator and a transport surface, to approach one of the selected articles. In the next step, the loading step 510, the processing unit directs the transport unit to load the article it has approached, such as engaging the article with the manipulator unit of the mobile robot, picking up the article, and placing it on the transport surface of the mobile robot, for example. The loading step 510 may also include additional steps including configuring of the transport surface to accommodate additional articles, such as rotating a rotating table, or rolling rollers to move recently-loaded articles to accommodate new articles being loaded, for example. During the approaching 508 and loading 510 steps, the processing unit may refer to the map generated in mapping step 504 to avoid collisions with articles it previously detected. The method 50 then proceeds to the first of two checks in the loading process 500. In the first check 512, the processing unit checks if the transport unit is fully loaded, such as counting the number of articles loaded and determining whether the transport surface can carry additional articles. If the transport unit is not fully loaded, the method 50 proceeds to the second check 514, whereas if it is fully loaded, the method 50 proceeds to moving step 516, exiting the loop. In the second check 514, the processing unit checks if there are additional articles remaining in the subset of articles selected in selecting step 506. If there are articles remaining, the method 50 loops back to approaching step 508 for the next article in the selected subset. If there are no articles remaining in the selected subset, then the method 50 proceeds to moving step 516, exiting the loop. In moving step 516, the processing unit directs the transport unit to move from the predetermined pick-up area to the predetermined drop-off area to unload the articles. During this step 516, the processing unit may refer to the map generated in mapping step 504 to avoid collisions with articles it previously detected.
The method 50 then proceeds to the unloading process 550, starting at detection step 552. In detection step 552, the one or more sensors detect a drop-off line located at the drop-off area. This may be done while the transport unit is in transit between the pick-up area and the drop-off area, where the sensors mounted on the unit may have an improved field of view, for example. Additional steps may occur during detection step 552, such as calibration of various sensors, localization onto an absolute coordinate system, and mapping of detected articles and features onto a persistent global map by the processing unit, for example. After detection step 552, the method 50 then enters a loop of steps for unloading the articles from transport. In the aligning step 554, the transport unit aligns itself along a placement line generally parallel to the drop-off line, such as the drop-off line detected in detection step 552, or another line which the processing unit determines such as a line parallel but spaced apart from the detected drop-off line if the detected drop-off line is fully occupied by articles, for example. The aligning step 554 may also involve aligning the manipulator, such as rotating the manipulator at an offset angle with respect to the direction of motion of the robot for more efficient unloading, for example. The method 50 then proceeds to placing step 556, wherein the processing unit directs the transport unit to place an article it has transported along the placement line. The transport unit may be directed to use its manipulator to move an article from its transport surface onto the placement line, for example. The processing unit then goes into a series of checks. In the first check 558, the processing unit determines if all the articles the transport unit transported from the pick-up area have been placed in the drop-off area, such as by keeping count, for example. If all transported articles have not been placed, the method 50 proceeds to second check 560, and if all transported articles have been placed, the method 50 then proceeds to third check 566. In the second check 560, the processing unit determines whether there is sufficient space in the placement line to accommodate further placement of articles. The processing unit may do this through the use of sensors detecting vacant spaces, by using the absolute coordinate system to determine the position of the transport unit, or by any other method. If there is sufficient space in the line, the processing unit directs the transport unit to advance one space in advancing step 562, and the method 50 then loops back to placement step 556. If the processing unit determines that there is insufficient space, the method 50 instead moves to line switching step 564 wherein the processing unit determines a new placement line and directs the transport unit to align with the new placement line by looping back to aligning step 554. In the third check 566, the processing unit checks if there are additional articles remaining at the pick-up area for further transporting to the drop-off area. The processing unit may do this by using the map generated in mapping step 504, or it may actively search for additional articles, for example. If the processing unit determines that there are additional articles to transport, the method 50 proceeds to moving step 568 wherein the processing unit directs the transport unit to move back to pick-up area to pick up more articles, and the method 50 returns to detecting step 502. If instead the processing unit determines there are no additional articles to transport, then the method 50 ends 570.
Referring to
After a subset of articles have been selected, the method 60 then proceeds to a loop of steps for preparing the selected articles for transport. In the approaching step 608, the processing unit sends a signal directing the transport unit, such as a mobile robot with a manipulator and a transport surface, to the selected loading position. In the next step, the loading step 610, the processing unit directs the transport unit to load an article within reach of the loading position the transport unit has approached, such as engaging the article with the manipulator unit of the mobile robot, picking up the article, and placing it on the transport surface of the mobile robot, for example. The loading step 610 may also include additional steps including configuring of the transport surface to accommodate additional articles, such as rotating a rotating table, or rolling rollers to move recently-loaded articles to accommodate new articles being loaded, for example. During the approaching 608 and loading 610 steps, the processing unit may refer to the map generated in mapping step 604 to avoid collisions with articles it previously detected. The method 50 then proceeds to the first of three checks in the loading process 600. In the first check 612, the processing unit checks if the transport unit is fully loaded, such as counting the number of articles loaded and determining whether the transport surface can carry additional articles. If the transport unit is not fully loaded, the method 60 proceeds to the second check 614, whereas if it is fully loaded, the method 60 proceeds to moving step 618, exiting the loop. In the second check 614, the processing unit checks if there are additional articles remaining within reach of the manipulator from the loading position of the transport unit. If there are articles remaining, the method 60 loops back to loading step 610 for to load an additional article. If there are no articles remaining within reach, then the method 60 proceeds to the third check 616. In the third check, the processing unit determines whether or not there are further articles to be loaded for transporting to the drop-off area. If the processing unit determines that there are further articles, the method 60 loops back to selecting step 606 to select a new loading position to pick up the additional articles. If the processing unit determines that there are no other articles, the method 60 proceeds to moving step 618 exiting the loop. In moving step 618, the processing unit directs the transport unit to move from the predetermined pick-up area to the predetermined drop-off area to unload the articles. During this step 618, the processing unit may refer to the map generated in mapping step 604 to avoid collisions with articles it previously detected.
The method 60 then proceeds to the unloading process 650, starting at detection step 652. In detection step 652, the one or more sensors detect a drop-off area, which may be defined in terms of an absolute coordinate system, or through detection of articles already placed at or near the drop-of area, or through any other method of detection. This may be done while the transport unit is in transit between the pick-up area and the drop-off area, where the sensors mounted on the unit may have an improved field of view, for example. Additional steps may occur during detection step 652, such as calibration of various sensors, localization onto an absolute coordinate system, and mapping of detected articles and features onto a persistent global map by the processing unit, for example. After detection step 652, the method 60 then enters a loop of steps for unloading the articles from transport. In selection step 654, the processing unit selects a position within the detected drop-off area for unloading articles. This selection may be based on a number of factors including minimizing a certain value such as energy cost due to movement, or time required to complete loading, maximizing a certain value such as accessibility to articles to ease navigation, for example. The selection may be aided by information provided by one or more sensors or the global map. The method 60 then proceeds to approach step 656, where the processing unit directs the transport unit to approach the selected unloading position. The next step is the placing step 658, wherein the processing unit directs the transport unit to place an article it has transported while located at the unloading position. The transport unit may be directed to use its manipulator to move an article from its transport surface onto the drop-off area near the unloading position, for example. The processing unit then goes into a series of checks. In the first check 660, the processing unit determines if all the articles the transport unit transported from the pick-up area have been placed in the drop-off area, such as by keeping count, for example. If all transported articles have not been placed, the method 60 proceeds to second check 662, and if all transported articles have been placed, the method 60 then proceeds to third check 664. In the second check 662, the processing unit determines whether there is sufficient space within reach of the transport unit near the unloading position suitable to accommodate further placement of articles. The processing unit may do this through the use of sensors detecting vacant spaces, by using the absolute coordinate system to determine the position of the transport unit, or by any other method, and it may do so taking into account the placement pattern desired for articles at the drop-off area. If there is sufficient space, the method 60 then loops back to placement step 658. If the processing unit determines that there is insufficient space, the method 60 instead loops back to selection step 654 wherein the processing unit determines a new unloading position. In the third check 664, the processing unit checks if there are additional articles remaining at the pick-up area for further transporting to the drop-off area. The processing unit may do this by using the map generated in mapping step 604, or it may actively search for additional articles, for example. If the processing unit determines that there are additional articles to transport, the method 60 proceeds to moving step 666 wherein the processing unit directs the transport unit to move back to pick-up area to pick up more articles, and the method 60 returns to detecting step 602. If instead the processing unit determines there are no additional articles to transport, then the method 60 ends 668.
Referring to
Referring to
The position of each beacon 830 to 835 is determined in an arbitrary global or relative coordinate system. This determination could be done manually by measuring the position of the beacons in the coordinate system or automatically using a predetermined protocol and using the UWB distance signals communicated between the beacons. For example, the protocol could be that the far most beacon in the pick-up area, beacon 830, is set to the origin of the coordinate system, the imaginary line connecting beacon 830 to the other beacon in the pick-up area, beacon 831, defines the positive X direction, the right-hand rule is used to determine the Y axis of the coordinate system, and then the location for all other beacons 831 to 835 are determined in this coordinate system based on the UWB signals communicated among the beacons 830 to 835. In case a 3D location determination is required, the protocol could further include identifying a Z axis which starts at the origin and is extended normal to a plane that passes through beacons 830 to 832.
Given the location of the beacons 830 to 835 are determined in the coordinate system, as the robot is moving from pick up cell 811 to drop-off cell 812, at some point the measured location of the robot using the beacons 830 to 833 will identify that the robot is in the drop-off cell 812 and then beacons 832 to 835 will be used to localize the robot 800. The buffer area could be determined based on a predetermined distance around the intermediary beacons 832,834. For example, the buffer area may be defined by lines 40 cm into the pick-up and drop-off cells 811 and 812.
Referring to
Usually, an external agent such as a human operator must then manually move beacons 902-905 to new positions around a new operation space such as bay 912, and manually move the robot to bay 912, as the robot cannot function outside of operation space 910 due to being out of range of the localization system provided by beacons 902-905. However, in the disclosed embodiment, the robot 901 recognizes that it has completed all available tasks assigned to it within operation space 910, and additionally has tasks in additional bays 912 and 914 assigned to it. Upon completion of the tasks in operation space 910, the mobile robot 901 then begins the process of moving the operation space 910 from its initial bay to bay 912. To move the operation space 910, the robot 901 moves beacon 902 to a first new position 906, and beacon 903 to a second new position 907. New positions 906 and 907 are on the opposite side of, and substantially equally distant to, beacons 904 and 905 compared to initial positions of beacons 902 and 903. Ideally, the beacons 902 and 903 are moved one at a time, with the remaining three beacons acting to localize robot 901. By moving beacons 902 and 903 across the positions of beacons 904 and 905, the mobile robot 901 can move within a space where it remains within range of the localization system provided by the remaining 3 beacons. For example, when the robot 901 is moving beacon 902, it first moves from operation space 910 into the adjacent bay 912, but staying relatively near beacons 904 and 905 such that beacon 903 remains in range. The robot 901 then moves into access pathway 916 and moves to pick up beacon 902. The robot 901 then moves beacon 902 to new position 906 following path 930. However, when the robot 901 is moving along path 930, it may reach a point where beacon 903 is out of effective range. The robot 901 can still carry out navigation based on the two remaining beacons 904 and 905. For example, while the robot 901 may be out of effective range of beacon 903, it may still be in functional range of beacon 903. In such a case, the robot 901 may be receiving distance information from beacon 903, but the distance information may be relatively inaccurate. The robot 901 remains within effective range of beacons 904 and 905 at all times and receives accurate distance information from these two beacons, thus, through triangulation or trilateration, the robot 901 can at least narrow down its position to one of two possible points with accuracy. The robot 901 may further use the inaccurate information from beacon 903 coupled with historical data to determine which of the two possible points it is located in, for example. When beacon 902 is placed in new position 906, the robot 901 may then navigate back to pick up beacon 903, using beacons 902 (at 906), 904 and 905 when the robot 901 is in bay 912, and beacons 903, 904 and 905 when it is in space 910. When beacon 903 is picked up, the robot 901 again uses the accurate information from beacons 904 and 905 coupled with inaccurate data from beacon 902 (at 906) and/or historical data to navigate along path 932 until robot 901 is within effective range of beacon 902, and places beacon 903 at new position 907. The operation space 910 is now redefined as bay 912, and the robot 901 can then carry out the task of moving and arranging articles 922 in bay 912 using the beacons 904, 905, 902 (at 906), and 903 (at 907) for localization.
When the robot 901 has completed all tasks in the operation space 910 (now 912), it can repeat the process, this time moving beacons 904 and 905 to new positions 908 and 909 along paths 934 and 936 respectively, redefining the operation space 910 as bay 914 in order to allow the robot 901 to move and arrange articles 924. In this manner, the robot 901 can effect horizontal operation space expansion as the robot 901 can continuously move into adjacent operation spaces to continue operation.
Referring to
As seen in
Referring now to
The field 1010 may continue to extend for any length, and the robot 1001, by following this method, will be able to eventually access and move all articles 1022 in field 1010. For example, as seen in
Furthermore, the vertical operation space expansion of
Referring to
Referring to
Referring to
Referring to
As previously described, the localization system may determine the position of robot 1401 through interaction of electromagnetic waves such as UWB, RADAR, WLAN, Wi-Fi or Bluetooth for example, or may use other forms of transmission such as acoustic pressure waves. The waves may be sent from the transceiver on the robot 1401, or one or more of the beacons 1402, 1403, 1404 and/or 1405. In other possible embodiments, the localization system may determine the position of the robot 1401 by a LiDAR, vision camera or IR sensor on the robot. The sensor may measure the position of at least a subset of beacons 1402 to 1405 with respect to the mobile robot 1401 and then use the measurements to calculate the position of the robot 1401 in the operation space 1410.
Reference beacon 1405 may be substantially similar to localization beacons 1402, 1403, and 1404 and may additionally act as a fourth localization beacon to provide redundancy in the event of one of the beacons 1402, 1403, or 1404 failing, or to provide additional accuracy in localization, for example. The robot 1401 may additionally use additional sensors such as IR/Visible light cameras to assist in navigation and avoid collision with obstacles, for example, and may use internal devices such as an Inertial Measurement Unit (IMU), accelerometers, gyroscopes, odometers, or any other device to assist in navigation.
In the depicted embodiment, mobile robot 1401 is in the process of carrying articles 1422 from pick-up area 1412 to drop-off area 1414. The mobile robot 1401 does so using a combination of UWB localization using communication between an on-board transceiver and beacons 1402, 1403, 1404, and 1405 and LiDAR to determine its position. The robot 1401 additionally uses an IMU to determine its orientation θ, which is defined by the angle between the workspace coordinate system XY 1450 and the robot's coordinate system XrYr 1452. However, in reality, IMUs usually experience drift over time, especially when the robot cycles through the operation space 1410 for several times, and needs to be recalibrated. For example, after a number of cycles, the IMU signals may give measurements that define the robot's coordinate system as the XIMUYIMU coordinate system 154 which is drifted by a from the actual robot's coordinate system 1452. In order to fix the drift issue, the robot 1401 may detect reference beacon 1405 using a LiDAR detection ray for example, shown at 1440. The robot 1401 may specifically detect a distinguishing feature 1430 of reference beacon 1405, such as a characteristic face or angle of a corner, for example. The robot 1401 can use the distinguishing feature 1430 of the reference beacon 1405 as an orientation reference and recalibrate the IMU signals to overcome IMU drift, given the orientation of the distinguishing feature 1430 is known. The orientation of the distinguishing feature 1430 could be a prior knowledge, could be determined based on the IMU and LiDAR measurements at a time when the IMU has not yet drifted, or could be determined based on a sensor on the robot, such as LiDAR, and another reference with a known orientation such as a line of dropped off articles 1432.
In order to calibrate or recalibrate the on-board IMU, the orientation of the distinguishing feature 1430 is measured using the LiDAR (which is usually reliable, sufficiently accurate, and does not experience drift), and then calculating the orientation of the robot by using the measured orientation of the feature 1430 with respect to the robot and knowing the orientation of the feature 1430 with respect to the operation space 1410, and then compensating for the IMU drift using the calculated orientation of the robot. As the feature 1430 does not change between cycles of the robot 1401 moving articles from the pick-up area 1412 to the drop-off area 1414 and vice-versa, the orientation reference from the distinguishing feature 1430 could be considered a reliable reference to recalibrate the IMU. In other embodiments, a vision camera could be used instead of the LiDAR or in combination with the LiDAR to measure an orientation reference from the distinguishing feature 1430.
Eventually, however, as the collection of articles 1424 deposited at the drop-off area 1414 increases, the visibility of reference beacon 1405 may be decreased due to obstruction of line-of-sight for LiDAR, for example. When this occurs, the robot 1401 may have increasing difficulty identifying the feature 1430 of the reference beacon 1405. In such a case, the mobile robot 1401 moves to reference beacon 1405 and transports it to a new position 1406. During this process, the robot 1401 may use the last deposited row of articles 1424 as a reference, drawing a reference line 1432. The reference line 1432 is based directly on the previous detection of feature 1430, can be used to calibrate the positioning of the feature 1430 on reference beacon 1405 at new position 1406 for consistency. After the reference beacon 1405 has been placed at new location 1406, the robot 1401 can continue with its article transportation task using the reference beacon 1405 at 1406 to recalibrate the IMU while placing articles 1424 in new drop-off area 1416, until the position 1406 also begins to be obstructed, in which case the robot 1401 then moves it to second additional position 1407, continuing to work, moving the beacon to 1408 when position 1407 is occluded, and so on.
Referring to
It is contemplated that the various disclosed methods for expanding the operation space of a mobile robot or methods for alignment recalibration may also be incorporated with the various methods/systems for transportation of a plurality of articles using a mobile robot as previously disclosed.
While specific embodiments have been described and illustrated, such embodiments should be considered illustrative of the invention only and not as limiting the invention as construed in accordance with the accompanying claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CA2020/050713 | 5/26/2020 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62854915 | May 2019 | US | |
62868726 | Jun 2019 | US | |
62885553 | Aug 2019 | US |