The present disclosure relates to a storage library system.
A storage library system can provide high-capacity storage of items (including, but not limited to, physical media items). A storage library system comprises a plurality of slots for holding the items, and at least one robotic means of accessing the items. For example, a storage library system may comprise a plurality of rows, each row comprising tens or hundreds of slots, stacked vertically. One or more robots may be provided which can move between slots to e.g. retrieve an item from a slot, place an item in a slot, or migrate an item between two slots.
A storage library system storing physical media items may be referred to as a “data storage library system”, or a “data archive”. A data storage library system storing tape cartridges is commonly called a “tape library” (aka a tape silo or tape jukebox). A data storage library system storing optical discs (e.g. CDs, DVDs, etc.) is commonly called an “optical jukebox” (aka an optical disc library).
According to a first aspect disclosed herein, there is provided a storage library system comprising: a plurality of slots for storing items; a plurality of rails; and a robot for interacting with said items. The robot comprises: at least one end-effector (e.g. a reader, a grabber or other actuator) for interacting with items in the slots; at least two foot arrangements; and a transfer mechanism. Each foot arrangement comprises a respective gripping mechanism for releasably engaging that foot arrangement with one of the rails. The robot also comprises a drive mechanism for moving the robot along the rails. The transfer mechanism is constructed and arranged to move the robot, while a first one or more of the foot arrangements remains engaged with a first of the rails, from a first position in which one or more of the foot arrangements is in abutment with a second of the rails to a second position in which one or more of the foot arrangements is in abutment with a third of the rails.
In the first position, the robot is able to access a first set of one or more slots (i.e. a first position of the storage library system). In the second position, the robot is able to access a second set of one or more slots (i.e. a second position of the storage library system). The second set of slots comprises at least one slot which was not accessible by the robot in the first position. Hence, transferring the robot between positions allows the robot to access more of the slots.
There may be at least one localization feature (e.g. an RFID tag or an optical, magnetic, or capacitive marking) present for allowing the robot to determine its location in the storage library system. Moving the robot from the first position to the second position may comprise one or more of: rotating the robot about the second foot out of the plane of the rails, rotating the robot about the second foot in the plane of the rails, and translating the robot in the plane of the rails. The storage library system may comprise a plurality or “swarm” of similar robots.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Nor is the claimed subject matter limited to implementations that solve any or all of the disadvantages noted herein.
To assist understanding of the present disclosure and to show how embodiments may be put into effect, reference is made by way of example to the accompanying drawings in which:
The present disclosure relates to a storage library system (e.g. a data storage library system) having a plurality of rails on which robots can run. Each robot can move along the length of the rails to access items at different locations in the storage library system. Some, but not all locations are accessible from a given rail. As will be described in detail below, the robot comprises hardware enabling the robot itself to transfer between different rails and thereby access more locations within the storage library system. Even without performing a “complete” transfer between different rails, the same hardware still enables the robot to move relative to at least one rail (e.g. the robot might move out of the way to let another robot pass). Examples described herein provide one or more of the following advantages:
In operation, the robot 200 uses the rails 110 to move around the storage library system 100 to access items stored in the slots 120. Each of the rails 110 may be substantially the same in construction, allowing the robot 200 to run on any one or more of the rails 110 at a given time. The rails 110 may be parallel rails (equidistant pairs).
It will be appreciated that the exact arrangement and number of slots 120 and rails 110 can vary. In this example, the slots 120 are arranged in horizontal rows 121, with a horizontal rail 110 being located between each row 121. Specifically, a first row 121a of slots 120 is located between a first rail 110a and a second rail 110b, and a second row 121b of slots 120 is located between the second rail 110b and a third rail 110c.
For reference, a right-handed coordinate system is introduced in which the rails 110 lie in the x-y plane, with the x-axis being parallel with the rails 110 and the y-axis being perpendicular to the rails 110. The z-axis can be seen in later figures and extends away from the plane of the rails 110 (out of the page in
When at least some of the items held in the slots 120 are physical storage media, at least one write drive 150 for writing to the physical storage media and/or at least one read drive 160 for reading from the physical storage media may be provided as shown in
The robot 200 may migrate a given physical storage media to a write drive 150 where that physical storage media can be written to. Specifically, when a particular media item is written to using the write drive 150, the robot 200 may migrate the media item from the write drive 150 to a slot 120 for storage.
The robot 200 may migrate a given physical storage media to the read drive 160 where that physical storage media can be read. Specifically, the robot 200 may migrate a particular media item between a slot 120 and the read drive 160 to enable the data written to that media item to be read.
In examples, there may be a plurality of write drives 150 (e.g. one per row 121) and/or a plurality of read drives 160 (e.g. one per row 121). For performance reasons, it may be preferably to locate the read drive(s) 160 close to the slots 120. In examples writing media may have looser latency requirements so it may be acceptable to have the write drive(s) 150 located further from the slots 120 than the read drive(s) 160 (e.g. remote from the storage system 100). In other examples, there may be different numbers of write drives 150 and read drives 160, e.g. there may be a read drive 160 on every row 121, but only one or two write drives 150 (e.g. located on the bottom row 121). An example is shown in
A write drive interface 151 may be included allowing the robot 200 to interface with the write drive 150. A read drive interface 161 may be included allowing the robot 200 to interface with the read drive 160. For example, the interfaces 151, 161 may serve as a staging area for media to be read, i.e. the robot 200 may “drop off” physical storage media at the interface 151, 161 to be added to a queue to be written/read later. This means that the robot 200 can return to the slots 120 and continue working.
In the example of
A more detailed example of the robot 200 is shown in
In this example, the robot 200 also comprises, a controller 250, a communication interface 260, a power supply 270, and a sensing system 280. These are optional features. As mentioned above, the robot 200 may also comprise one or more of a write drive 150 and a read drive 160 (or a single drive providing both write and read functionality).
The controller 250 is for controlling the first foot arrangement 210, second foot arrangement 220, transfer mechanism 230, and end-effector 240. The controller 250 may be implemented, for example, using one or more processors. In examples, the functionality of the central control system 130 shown in
The communications interface 260 allows the robot 200 to receive data from and/or send data via a communication link (illustrated with a dotted arrow in
The power supply 270 is for powering the robot 200. In a first example, the power supply 270 may be an internal power supply of the robot 200, such as an on-board battery. An advantage of this is that the robot 200 does not require a connection to an external power supply. In other examples, the robot 200 may not comprise a power supply 270 of its own, and may instead receive power from an external power supply via a wired or wireless connection. Advantages of this include that the robot 200 does not require an on-board power supply 270 and can be made smaller and/or lighter, and that the robot 200 does not need re-charging. In a specific example, the robot 200 may receive power via the rails 110.
The sensing system 280 allows the robot 200 to determine its location within the storage library system 100. Examples of localization will be described later. The sensing system 280 for example may comprise one or more optical sensors.
The first foot arrangement 210 comprises a first gripping mechanism 211 for releasably engaging the first foot arrangement 210 with one of the rails 110. The second foot arrangement 220 comprises a second gripping mechanism 221 for releasably engaging the second foot arrangement 220 with one of the rails 110. The distance between the foot arrangements 210, 220 is substantially equal to the distance between adjacent pairs of rails 110. Hence, if the first foot arrangement 210 is engaged with one of the rails 110, the second foot arrangement 220 may engage with an adjacent one of the rails 110. The
Any suitable gripping mechanism may be used which can releasably engage with the rails 110. For example, one or more of the gripping mechanisms 211, 221 may be a mechanical gripping mechanism (an example is shown in
The gripping mechanism 211 of the first foot arrangement 210 and the gripping mechanism 221 of the second foot arrangement 220 do not need to be the same type.
The robot 200 also comprises at least one drive mechanism for propelling the robot 200 along the length of the rails 110. In some examples, the drive mechanism is be located within the main body of the robot 200 (rather than one or more of the foot arrangements). For example, the drive mechanism could be a propeller mounted on the main body that pushes the robot 200 along the rails.
In alternative or additional examples, at least one of the first foot arrangement 210 and second foot arrangement 220 comprises a drive mechanism for propelling the robot 200 along the length of the rail 110 with which that foot arrangement is currently engaged. In the example of
In an example, the drive mechanism may comprise a wheel with a high-friction surface for interacting with the rails 110. In another example, the drive mechanism may comprise a circular gear (either straight or helical) and the rails 110 comprise a linear gear with which the circular gear of the drive mechanism can engage.
In other examples, a single mechanism may provide the gripping mechanism 211 and the drive mechanism in one or more foot arrangements. For example, the rail 110 could be constructed of alternating permanent magnetic poles, and the single mechanism may comprise a plurality of electromagnets which can be selectively controlled to both engage the foot arrangement with and propel the foot arrangement along the rail 110 (in a similar manner to a stepper motor. An advantage of this is that the gripper and the rail drive (drive mechanism) is the same part, which could reduce the robot complexity and part count/cost. This sort of set up could also be reversed, with the robot comprising an array of permanent magnets and the rails comprising a plurality of electromagnets which are selectively controlled.
The end-effector 240 allows the robot 200 to interact with the items in the slots 120. The end-effector 240 may comprise one or more of: a grabber for removing items from and/or placing items into the slots 120; a reader for reading data from items in the slots 120; and a writer for writing data to items in the slots 120. To give the robot 200 a more stable base from which to interact with the items in the slots 120, it may be preferable to activate the end-effector 240 only when both foot arrangements 210, 220 are engaged with rails 110, but this is not essential.
The specific type of end-effector 240 depends on the type of items held in the slots 120. Examples of such items include physical storage media (e.g. made of laser-written silica glass, tapes or other optical media), or non-storage computing resources such as optical computation units, etc.
Another example of an end-effector 240 is a cleaning or maintenance apparatus. For example, a robot 200 having such a cleaning apparatus may roam the storage library system 100 to clean or otherwise maintain items in the slots 120. another example of an end-effector 240 is a camera. The robot 200 may send pictures of the items in the slots 120 and/or damage to parts of the storage library system 100 to another device (e.g. central control system 130) via the communications interface 260.
The robot 200 may comprise two or more end-effectors of the same or different types. In some examples, the storage library system 100 comprises at least one robot 200 having an end-effector 240 of a first type, and at least one robot 200 having an end-effector 240 of a second type. This is particularly advantageous in the context of the present disclosure, where each robot 200 can transfer between rails 110, because each of the robots 200 can access overlapping portion so the storage library system 100. For example, one robot 200 might be a maintenance robot having a maintenance apparatus, and another robot 200 might be a read/write robot which accesses the items in the slots 120.
The transfer mechanism 230 allows the robot 200 to perform a transfer action (also called a rail-switching action) between the rails 110. Various specific types of transfer action are possible, which can depend on the particular construction of the robot 200, number of foot arrangements, arrangement of the rails 110, etc. Put generally, the transfer mechanism 230 is constructed and arranged to move the robot 200, while a first one or more of the foot arrangements remains engaged with a first of the rails, from a first position in which one or more of the foot arrangements is in abutment with a second of the rails to a second position in which one or more of the foot arrangements is in abutment with a third of the rails. In other words, the robot 200 may keep one or more of the foot arrangements engaged with one of the rails and use those one or more foot arrangements as an anchor to transfer between rails 110. The controller 250 may control the robot 200 to perform the transfer action.
At S301, the controller 250 controls the first gripping mechanism 211 to disengage the first foot arrangement 210 from the first rail 110a. The first foot arrangement 210 may then remain in abutment with the first rail 110a (though it is no longer engaged with the first rail 110a).
At S302, the controller 250 controls the transfer mechanism 230 to move the robot 200, while the second foot arrangement 220 is engaged with the second rail 110b, such that the first foot arrangement 210 moves from being in abutment with the first rail 110a to being in abutment with the third rail 110c. In this example, moving S302 the robot 200 comprises rotating the robot 200 out of the plane of the rails 110 (the x-y plane) about the second foot arrangement 220. Specifically, the robot 200 is pivoted substantially 180 degrees around the second foot arrangement 220 with the second rail 110b being the axis of rotation. In other words, the second foot arrangement 200 (i.e. the one which remains engaged with a rail 110) is used as an anchor to move the robot 200. In this example, this movement S302 also comprises pivoting the first foot arrangement 210 (i.e. the ungripped side of the robot 200) a further 180 degrees in the same direction so it is the correct way up at the end of the pivot operation. Both these pivoting actions may be provided by the same transfer mechanism 230. An example transfer mechanism 230 for performing both these actions is described below with reference to
At S303, the controller 250 controls the first gripping mechanism 211 to engage the first foot arrangement 210 with the third rail 110c. This completes the transfer action.
It is appreciated that the motion shown in
In some examples, the robot 200 may perform the transfer action in two or more stages, e.g. using a different one or more foot arrangements as the “anchor” for each stage.
Specifically, the robot 200 begins in a position in which the (two) first foot arrangements 210a, 210b are in abutment with the first rail 110a and the (two) second foot arrangements 220a, 220b are engaged with the second rail 110b. The transfer mechanism 230 then completes a first stage by using the first foot arrangements 210a, 210b as anchors to move the second foot arrangements 220a, 220b to the third rail 110c. Then, the transfer mechanism 230 completes a second stage by using the second foot arrangements 220a, 220b as anchors to move the first foot arrangements 210a, 210b to the second rail 110b. In examples, one or more of the “legs” may have a “knee”. The ability of the robots 200 to perform the transfer action means that each robot 200 itself can move between rails 110 to access slots 120 on different rows 121. This has many advantages:
The robot 200 is independent in the sense that they can move anywhere. Additional hardware (e.g. a vertical “elevator”) for moving the robot 200 between rows 121 is not required.
The robot 200 itself can retrieve items from and delivery items to slots 120 in any row 121, rather than needing to coordinate with other robots.
The number of possible routes for the robot 200 to take from its current position to the position of a target slot 120 is increased massively. This means that the robots 200 can avoid each other (see example of
There may be a plurality, or “swarm”, of identical robots 200 in the library system 100. An example is shown in
In some examples, the drive mechanism 212, 222 of one of the foot arrangements 210, 220 may activate when only that foot arrangement 210, 220 is engaged with a rail 110. That is, the robot 200 may move along a rail 110 with only a single foot arrangement 210, 220 engaged. This allows two robots 200 to pass one another using only minimal space. An example of such a passing action is illustrated in
In the example of
Further advantages are hence realized when there is a plurality of robots 200 in the storage library system 100. For example:
In this case, the robot 200 may also use the transfer mechanism 230 to transfer between a first panel 101 and a second panel 101 adjacent the first panel 101. To do so, the first foot arrangement 210 is disengaged from the first rail 110a as before, but then the robot 200 is moved to an orientation in which the first foot arrangement 210 is in abutment with a rail on a second panel 101 adjacent the first, before being engaged with that rail. The transfer mechanism 230 may then move the robot 200 again to bring the second foot arrangement 220 to meet another rail of the second panel 101.
A similar arrangement can be realized with a single panel 101 having a boustrophedonic (“snaking”) plan, as shown in
The example arrangement of
The storage library system 100 may comprise at least one localization feature for allowing the robot 200 to determine its location in the storage library system 100. The sensing system 280 of the robot 200 may be used to detect the at least one localization feature and thereby enable the robot 200 to determine its location within the storage library system 100.
A first example of a localization feature is an RFID tag located on one of the rails. A second example of a localization feature is an optical linear code (e.g. a bar code or a Gray code). An example of a Gray code is shown in
In
In an example, the robot 200 comprises an internal location module configured to determine a location of the robot 200 in the media storage library system 200. This is particularly advantageous given the fact that, as mentioned, the robot 200 is free-roaming within the storage library system 100.
A specific example construction of the robot 200 will now be described with reference to
The gripping mechanism 221 of this specific example is shown in more detail in
In this example, the gripping mechanism 221 comprises a first frame 401a and a second frame 401b which pivot about a respective first pivot 407a and second pivot 407b. A gearing mechanism 405 is provided for counter-rotating the first frame 401a and second frame 401b. Each frame has one or more wheels for engaging with the rail 110 In this example, the first frame 401a comprises two wheels 402a, 403a and the second frame 401b also comprises two wheels 402b, 403b, though other arrangements are possible. Additional wheels may be provided (not shown in
A motor 406 is provided which is operable to cause the gearing mechanism 405 to move the first frame 401a and second frame 401b between a closed state and an open state, such that the wheels grab and release the sides of the rail 110. The gripping mechanism 221 is shown in a closed state in
The foot arrangement 210 shown in
It will be appreciated that the examples described herein are to be understood as illustrative examples of embodiments of the invention. Further examples are given below.
The term “control module” may be used generally to refer to a module for controlling the robot 200 or robots of the storage library system 100. Such a control module maybe implemented, as noted earlier, at the controller 250 of the robot 200, at the central control system 130, or using any combination of the these. The control module may be configured to control the robot 200 to perform a transfer action by: controlling the gripping mechanism of one or more of the foot arrangements to disengage the one or more foot arrangements from the second rail; controlling the transfer mechanism to move the robot, while the first one or more of the foot arrangements remains engaged with the first of the rails, from the first position to the second position; and controlling the gripping mechanism of one or more of the foot arrangements to engage one or more of the foot arrangements with the third rail.
The foot arrangement which engages with the new rail may or may not be the same foot arrangement which disengaged from the old rail. Hence, the transfer mechanism may be constructed and arranged to move the robot, while a first foot arrangement remains engaged with a first of the rails, from a first position in which a second foot arrangement is in abutment with a second of the rails to a second position in which the second foot arrangements is in abutment with a third of the rails.
In an example, the storage library system comprises at least one localization feature for allowing the robot to determine its location in the storage library system. Example localization features include: an RFID tag located on at least one of the rails; an optical marking located on at least one of the rails. The robot may comprise a sensing system for detecting the localization feature to determine the robots' location in the storage library system. Examples of optical markings include barcodes, QR codes, and optical, magnetic or capacitive linear codes (e.g. Gray codes).
Moving the robot (by the transfer mechanism) from the first position to the second position may include one or more of: rotating the robot, about the first one or more foot arrangements, out of the plane of the rails; rotating the robot, about the first one or more foot arrangements, in the plane of the rails; and translating the robot in the plane of the rails.
In some examples, the end-effector may be arranged to interact with items on more than one side of the robot. This is advantageous in particular for examples in which the transfer action performed by the robot 200 involves the orientation of the robot 200 changing with respect to the slots 120. This can be achieved using a single end-effector which can move to access different sides of the robot 200, or using a plurality of end-effectors each arranged to operate relative to a different side of the robot 200 (e.g. one per “face”). For example, in the example of
The end-effector may be, for example, at least one of a grabber; a reader; a writer; a camera; a maintenance apparatus; and a cleaning apparatus. The robot may comprise two or more end-effectors of the same or different types. It may be preferably to only activate the end-effector when the robot 200 is engaged with two or more rails, although this is not strictly necessary. That is, it is not excluded that the robot 200 might be able to access the slots 120 even when only engaged with a single rail (e.g. using a single foot arrangement).
At least some of the items stored in the storage library system may be physical storage media, and the storage library system may comprise at least one drive for reading and/or writing the physical storage media. The drive(s) may be separate from the robot(s), or the robot(s) may comprise one or more drive(s).
There may be two or more robots in the storage library system (i.e. two, three, four, five, etc.). In examples, there may be tens or even hundreds of robots. The robots may all be substantially identical or not, e.g. some of the robots may have different types of end-effectors
In an example, the storage library system comprises a central control system for controlling the robot(s). In other examples, the robots may communicate with each other directly to cooperate. In examples, the drive mechanism may be located in one of the foot arrangements. In such cases, the drive mechanism may be activatable while only the foot arrangement of the drive mechanism is engaged with a rail.
In examples, the slots are arranged in at least two different planes, and wherein the third rail to which the transfer mechanism moves the first foot arrangement is not located in the same plane as the first and second rail. This includes examples in which the slots are arranged in at least two panels occupying different planes (e.g.
Described herein is a method of controlling a robot of a storage library system comprising a plurality of slots for storing items, a plurality of rails, the robot comprising: an end-effector for interacting with the items in the slots; at least two foot arrangements and a drive mechanism for moving the robot along the rails; the method comprising causing the robot to perform a transfer action by: controlling a gripping mechanism to disengage a first one or more of the foot arrangements from a first rail; controlling a transfer mechanism to move the robot, while a first one or more of the foot arrangements remains engaged with a first of the rails, from a first position in which one or more of the foot arrangements is in abutment with a second of the rails to a second position in which one or more of the foot arrangements is in abutment with a third of the rails; and controlling a gripping mechanism to engage the one or more of the foot arrangements with the third rail.
Generally, there is provided a robot for use in a storage library system comprising a plurality of slots for storing items and a plurality of rails. The robot comprises an end-effector for interacting with the items in the slots; at least two foot arrangements each having a respective gripping mechanism for releasably engaging the foot arrangement with one of the rails; a drive mechanism for moving the robot along the rails; and a transfer mechanism constructed and arranged to move the robot, while a first one or more of the foot arrangements remains engaged with a first of the rails, from a first position in which one or more of the foot arrangements is in abutment with a second of the rails to a second position in which one or more of the foot arrangements is in abutment with a third of the rails.
It will be understood that the processor or processing system or circuitry referred to herein may in practice be provided by a single chip or integrated circuit or plural chips or integrated circuits, optionally provided as a chipset, an application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), digital signal processor (DSP), graphics processing units (GPUs), etc. The chip or chips may comprise circuitry (as well as possibly firmware) for embodying at least one or more of a data processor or processors, a digital signal processor or processors, baseband circuitry and radio frequency circuitry, which are configurable so as to operate in accordance with the exemplary embodiments. In this regard, the exemplary embodiments may be implemented at least in part by computer software stored in (non-transitory) memory and executable by the processor, or by hardware, or by a combination of tangibly stored software and hardware (and tangibly stored firmware).
Although at least some aspects of the embodiments described herein with reference to the drawings comprise computer processes performed in processing systems or processors, the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of non-transitory source code, object code, a code intermediate source and object code such as in partially compiled form, or in any other non-transitory form suitable for use in the implementation of processes according to the invention. The carrier may be any entity or device capable of carrying the program. For example, the carrier may comprise a storage medium, such as a solid-state drive (SSD) or other semiconductor-based RAM; a ROM, for example a CD ROM or a semiconductor ROM; a magnetic recording medium, for example a floppy disk or hard disk; optical memory devices in general; etc.
The examples described herein are to be understood as illustrative examples of embodiments of the invention. Further embodiments and examples are envisaged. Any feature described in relation to any one example or embodiment may be used alone or in combination with other features. In addition, any feature described in relation to any one example or embodiment may also be used in combination with one or more features of any other of the examples or embodiments, or any combination of any other of the examples or embodiments. Furthermore, equivalents and modifications not described herein may also be employed within the scope of the invention, which is defined in the claims.
Number | Date | Country | Kind |
---|---|---|---|
21175799.2 | May 2021 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2022/029721 | 5/18/2022 | WO |