Patent Description:
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).

<CIT> discloses a modular data storage system for handling and storing data cartridges.

<CIT> discloses a library comprising a plurality of media storage cells and at least one media picker robot.

<CIT> discloses a plurality of storage cell rows and a plurality of robots coupled to guide rails, which allow the robots to move along the rows of storage cells. The robots have displacement mechanisms that allow the pickers to move between rows of storage cells.

<CIT> discloses an operating vehicle for transporting a storage container along a storage rack.

<CIT> discloses a direction switching module for lift robots using a pair of pinions coupled to a rack for propelling vertically and horizontally according to the track's orientation.

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.

Nor is the claimed subject matter limited to implementations that solve any or all of the disadvantages noted herein. The scope and limits of the application are defined by the appended claims.

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:.

<FIG> shows schematically a storage library system <NUM> in accordance with examples described herein. The storage library system <NUM> comprises a plurality of slots <NUM> for holding items, at least one robot <NUM> (also called a "shuttle"), and a plurality of rails <NUM>. An optional central control system <NUM> is also shown in <FIG> - in other examples, the functionality of the control system <NUM> may be implemented in a decentralized manner across a plurality of robots <NUM>, e.g. there could also be a distributed control system, or in a fully autonomous system the robots could coordinate with each other in a distributed manner.

In operation, the robot <NUM> uses the rails <NUM> to move around the storage library system <NUM> to access items stored in the slots <NUM>. Each of the rails <NUM> may be substantially the same in construction, allowing the robot <NUM> to run on any one or more of the rails <NUM> at a given time. The rails <NUM> may be parallel rails (equidistant pairs).

It will be appreciated that the exact arrangement and number of slots <NUM> and rails <NUM> can vary. In this example, the slots <NUM> are arranged in horizontal rows <NUM>, with a horizontal rail <NUM> being located between each row <NUM>. Specifically, a first row 121a of slots <NUM> is located between a first rail 110a and a second rail 110b, and a second row 121b of slots <NUM> 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 <NUM> lie in the x-y plane, with the x-axis being parallel with the rails <NUM> and the y-axis being perpendicular to the rails <NUM>. The z-axis can be seen in later figures and extends away from the plane of the rails <NUM> (out of the page in <FIG>). The side of the slots <NUM> on which the robot <NUM> runs may be referred to as the "front".

When at least some of the items held in the slots <NUM> are physical storage media, at least one write drive <NUM> for writing to the physical storage media and/or at least one read drive <NUM> for reading from the physical storage media may be provided as shown in <FIG>.

The robot <NUM> may migrate a given physical storage media to a write drive <NUM> where that physical storage media can be written to. Specifically, when a particular media item is written to using the write drive <NUM>, the robot <NUM> may migrate the media item from the write drive <NUM> to a slot <NUM> for storage.

The robot <NUM> may migrate a given physical storage media to the read drive <NUM> where that physical storage media can be read. Specifically, the robot <NUM> may migrate a particular media item between a slot <NUM> and the read drive <NUM> to enable the data written to that media item to be read.

In examples, there may be a plurality of write drives <NUM> (e.g. one per row <NUM>) and/or a plurality of read drives <NUM> (e.g. one per row <NUM>). For performance reasons, it may be preferably to locate the read drive(s) <NUM> close to the slots <NUM>. In examples writing media may have looser latency requirements so it may be acceptable to have the write drive(s) <NUM> located further from the slots <NUM> than the read drive(s) <NUM> (e.g. remote from the storage system <NUM>). In other examples, there may be different numbers of write drives <NUM> and read drives <NUM>, e.g. there may be a read drive <NUM> on every row <NUM>, but only one or two write drives <NUM> (e.g. located on the bottom row <NUM>). An example is shown in <FIG> discussed later below.

A write drive interface <NUM> may be included allowing the robot <NUM> to interface with the write drive <NUM>. A read drive interface <NUM> may be included allowing the robot <NUM> to interface with the read drive <NUM>. For example, the interfaces <NUM>, <NUM> may serve as a staging area for media to be read, i.e. the robot <NUM> may "drop off" physical storage media at the interface <NUM>, <NUM> to be added to a queue to be written/read later. This means that the robot <NUM> can return to the slots <NUM> and continue working.

In the example of <FIG>, the write drive <NUM> and read drive <NUM> are separate units, but it is appreciated that a single drive could be provided for performing both write and read operations.

In examples, one or more of the write drive <NUM>, read drive <NUM>, or a single drive for performing both write and read operations may be comprised in the robot <NUM> itself. For example, the end-effector <NUM> of the robot <NUM> itself may comprise a write drive and/or read drive. In such examples, some or all of the migration described above is unnecessary. For example, the robot <NUM> may comprise an "internal" write drive <NUM> which means that the robot <NUM> itself can write to a given physical storage media and does not need to migrate it to an external write drive <NUM> (although it might still need to migrate it to an external read drive <NUM> if the robot <NUM> does not also include an internal read drive <NUM>). Similarly, the robot <NUM> may comprise an "internal" read drive <NUM> which means that the robot <NUM> itself can read from a given physical storage media and does not need to migrate it to an external read drive <NUM> (although it might still need to migrate it to an external write drive <NUM> if the robot <NUM> does not also include an internal write drive <NUM>). A robot <NUM> comprising both an internal write drive <NUM> and internal read drive <NUM> (or a single read-write drive) may not need to migrate the physical storage media at all (though it is not excluded because, for example, the robot <NUM> may still migrate physical storage media for other purposes such as maintenance).

A more detailed example of the robot <NUM> is shown in <FIG>. The robot <NUM> comprises a first foot arrangement <NUM>, a second foot arrangement <NUM>, a transfer mechanism <NUM>, an end-effector <NUM>.

In this example, the robot <NUM> also comprises, a controller <NUM>, a communication interface <NUM>, a power supply <NUM>, and a sensing system <NUM>. These are optional features. As mentioned above, the robot <NUM> may also comprise one or more of a write drive <NUM> and a read drive <NUM> (or a single drive providing both write and read functionality).

The controller <NUM> is for controlling the first foot arrangement <NUM>, second foot arrangement <NUM>, transfer mechanism <NUM>, and end-effector <NUM>. The controller <NUM> may be implemented, for example, using one or more processors. In examples, the functionality of the central control system <NUM> shown in <FIG>(and described in more detail below) may instead be implemented in a distributed fashion across one or more robots <NUM>, with each robot <NUM> using its internal controller <NUM>.

The communications interface <NUM> allows the robot <NUM> to receive data from and/or send data via a communication link (illustrated with a dotted arrow in <FIG>). In some examples, the robot <NUM> may receive routing information from the control system <NUM>. In alternative or additional examples, the robot <NUM> may communicate with one or more other robots as part of a mesh network. Preferably, the communication link is a wireless communication link, but it is not excluded that the communication link is a wired communication link. A wireless communication link is particular advantageous when the robot <NUM> comprises an internal power supply <NUM>, because then the robot <NUM> may be untethered from the control system <NUM> and can move freely throughout the library. In examples, the robot <NUM> may use e.g. low-friction components, regenerative braking to save power.

The power supply <NUM> is for powering the robot <NUM>. In a first example, the power supply <NUM> may be an internal power supply of the robot <NUM>, such as an on-board battery. An advantage of this is that the robot <NUM> does not require a connection to an external power supply. In other examples, the robot <NUM> may not comprise a power supply <NUM> 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 <NUM> does not require an on-board power supply <NUM> and can be made smaller and/or lighter, and that the robot <NUM> does not need re-charging. In a specific example, the robot <NUM> may receive power via the rails <NUM>.

The sensing system <NUM> allows the robot <NUM> to determine its location within the storage library system <NUM>. Examples of localization will be described later. The sensing system <NUM> for example may comprise one or more optical sensors.

The first foot arrangement <NUM> comprises a first gripping mechanism <NUM> for releasably engaging the first foot arrangement <NUM> with one of the rails <NUM>. The second foot arrangement <NUM> comprises a second gripping mechanism <NUM> for releasably engaging the second foot arrangement <NUM> with one of the rails <NUM>. The distance between the foot arrangements <NUM>, <NUM> is substantially equal to the distance between adjacent pairs of rails <NUM>. Hence, if the first foot arrangement <NUM> is engaged with one of the rails <NUM>, the second foot arrangement <NUM> may engage with an adjacent one of the rails <NUM>. The <FIG>, for example, the first foot arrangement <NUM> is engaged with the first rail 110a and the second foot arrangement <NUM> is engaged with the second rail 110b.

Any suitable gripping mechanism may be used which can releasably engage with the rails <NUM>. For example, one or more of the gripping mechanisms <NUM>, <NUM> may be a mechanical gripping mechanism (an example is shown in <FIG>, <FIG> described below) arranged to physically engage with the rail <NUM>. In other examples, the rails <NUM> may be magnetic (i.e. ferromagnetic), and one of more of the gripping mechanisms <NUM>, <NUM> may comprise at least one electromagnet for selectively engaging with the rail <NUM> via the electromagnetic force. In further examples, one or more of the gripping mechanisms <NUM>, <NUM> may comprise both mechanical and electromechanical means for gripping the rails <NUM>. In yet further examples, another method is to use an air bearing, and shoot pressurised air through the bearing for a low friction cushion. A mechanical gripper may still be used to envelope the rail, with the air pressure providing a bearing solution. It is also noted that permanent magnets may be used to engage a foot arrangement with a rail <NUM>. These permanent magnets may be selectively engaged by mechanically moving the magnets closer to the rail <NUM>.

The gripping mechanism <NUM> of the first foot arrangement <NUM> and the gripping mechanism <NUM> of the second foot arrangement <NUM> do not need to be the same type.

The robot <NUM> also comprises at least one drive mechanism for propelling the robot <NUM> along the length of the rails <NUM>. In some examples, the drive mechanism is be located within the main body of the robot <NUM> (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 <NUM> along the rails.

In alternative or additional examples, at least one of the first foot arrangement <NUM> and second foot arrangement <NUM> comprises a drive mechanism for propelling the robot <NUM> along the length of the rail <NUM> with which that foot arrangement is currently engaged. In the example of <FIG>, the first foot arrangement <NUM> and second foot arrangement <NUM> are substantially the same in construction, with the first foot arrangement <NUM> comprising a first drive mechanism <NUM> and the second foot arrangement <NUM> comprising a second drive mechanism <NUM>.

In an example, the drive mechanism may comprise a wheel with a high-friction surface for interacting with the rails <NUM>. In another example, the drive mechanism may comprise a circular gear (either straight or helical) and the rails <NUM> 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 <NUM> and the drive mechanism in one or more foot arrangements. For example, the rail <NUM> 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 <NUM> (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 <NUM> allows the robot <NUM> to interact with the items in the slots <NUM>. The end-effector <NUM> may comprise one or more of: a grabber for removing items from and/or placing items into the slots <NUM>; a reader for reading data from items in the slots <NUM>; and a writer for writing data to items in the slots <NUM>. To give the robot <NUM> a more stable base from which to interact with the items in the slots <NUM>, it may be preferable to activate the end-effector <NUM> only when both foot arrangements <NUM>, <NUM> are engaged with rails <NUM>, but this is not essential.

The specific type of end-effector <NUM> depends on the type of items held in the slots <NUM>. 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 <NUM> is a cleaning or maintenance apparatus. For example, a robot <NUM> having such a cleaning apparatus may roam the storage library system <NUM> to clean or otherwise maintain items in the slots <NUM>. another example of an end-effector <NUM> is a camera. The robot <NUM> may send pictures of the items in the slots <NUM> and/or damage to parts of the storage library system <NUM> to another device (e.g. central control system <NUM>) via the communications interface <NUM>.

The robot <NUM> may comprise two or more end-effectors of the same or different types.

In some examples, the storage library system <NUM> comprises at least one robot <NUM> having an end-effector <NUM> of a first type, and at least one robot <NUM> having an end-effector <NUM> of a second type. This is particularly advantageous in the context of the present disclosure, where each robot <NUM> can transfer between rails <NUM>, because each of the robots <NUM> can access overlapping portion so the storage library system <NUM>. For example, one robot <NUM> might be a maintenance robot having a maintenance apparatus, and another robot <NUM> might be a read/write robot which accesses the items in the slots <NUM>.

The transfer mechanism <NUM> allows the robot <NUM> to perform a transfer action (also called a rail-switching action) between the rails <NUM>. Various specific types of transfer action are possible, which can depend on the particular construction of the robot <NUM>, number of foot arrangements, arrangement of the rails <NUM>, etc. Put generally, the transfer mechanism <NUM> is constructed and arranged to move the robot <NUM>, 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 <NUM> 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 <NUM>. The controller <NUM> may control the robot <NUM> to perform the transfer action.

<FIG> is a flow chart showing an example of the transfer action. <FIG> shows a series of images of this example transfer action being performed by the robot <NUM>. In this example, the robot <NUM> comprises two foot arrangements (as in the example of <FIG>). Initially, the robot <NUM> is in a first position in which the first foot arrangement <NUM> is engaged with the first rail 110a and the second foot arrangement <NUM> is engaged with the second rail 110b. The transfer action then proceeds as follow:.

At S301, the controller <NUM> controls the first gripping mechanism <NUM> to disengage the first foot arrangement <NUM> from the first rail 110a. The first foot arrangement <NUM> 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 <NUM> controls the transfer mechanism <NUM> to move the robot <NUM>, while the second foot arrangement <NUM> is engaged with the second rail 110b, such that the first foot arrangement <NUM> 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 <NUM> comprises rotating the robot <NUM> out of the plane of the rails <NUM> (the x-y plane) about the second foot arrangement <NUM>. Specifically, the robot <NUM> is pivoted substantially <NUM> degrees around the second foot arrangement <NUM> with the second rail 110b being the axis of rotation. In other words, the second foot arrangement <NUM> (i.e. the one which remains engaged with a rail <NUM>) is used as an anchor to move the robot <NUM>. In this example, this movement S302 also comprises pivoting the first foot arrangement <NUM> (i.e. the ungripped side of the robot <NUM>) a further <NUM> 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 <NUM>. An example transfer mechanism <NUM> for performing both these actions is described below with reference to <FIG>.

At S303, the controller <NUM> controls the first gripping mechanism <NUM> to engage the first foot arrangement <NUM> with the third rail 110c. This completes the transfer action.

It is appreciated that the motion shown in <FIG> is only an example and that other motions are possible to move the robot <NUM> from the first position to the second position.

<FIG> shows an example of a transfer action performed by a robot <NUM> having four foot arrangements 220a, 220b, 220c, 220d. The robot <NUM> in this example has a substantially square cross-section (in the y-z plane). The foot arrangements 220a, 220b, 220c, 220d are arranged on the x-direction edges of the body of the robot <NUM>. Like the example of <FIG> and <FIG>, moving the robot <NUM> comprises rotating the robot <NUM> out of the plane of the rails <NUM> (the x-y plane) about the foot arrangement which remains anchored to one rail (foot arrangement 220a in this case). Note that in this example, the foot arrangement 220d which is brought into (new) abutment with a rail (the third rail 110c in this example) is not the same foot arrangement 220b which was disengaged with its rail 110a at the start of the transfer action. Like the earlier example, the foot arrangement 220d may be rotated in the same direction in order to correctly align with the new rail 110c for engagement. Similar constructions may be used in which the robot <NUM> has a cross-section with a different shape. Particularly suitable shapes are regular polygons including a triangle, square (as in the example of <FIG>), pentagon, hexagon, etc..

<FIG> shows an example of a transfer action performed by a robot <NUM> comprising two foot arrangements <NUM>, <NUM>. In this example, the transfer mechanism <NUM> rotates the robot <NUM> in the plane of the rails <NUM> (the x-y plane) about the engaged foot arrangement (the second foot arrangement <NUM> in this example). Specifically, the robot <NUM> is pivoted substantially <NUM> degrees around the second foot arrangement <NUM> in the x-y plane. In examples, this movement also comprises pivoting the first foot arrangement <NUM> (i.e. the ungripped side of the robot <NUM>) a further <NUM> 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 <NUM>. In other examples, the first foot arrangement <NUM> may be constructed as being able to engage with a rail in either orientation, in which case it does not need to be rotated itself before engaging with the new rail.

In some examples, the robot <NUM> 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. <FIG> shows such an example. In this example, the robot <NUM> comprises four foot arrangements: two first foot arrangements 210a, 210b, and two second foot arrangements 220a, 220b. Each foot arrangement in this example is located on the end of a "leg". In this example, the transfer mechanism <NUM> translates the robot <NUM> in the plane of the rails <NUM> (the x-y plane) when performing the transfer action (i.e. without rotation in either of the directions described above).

Specifically, the robot <NUM> 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 <NUM> 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 <NUM> 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 <NUM> to perform the transfer action means that each robot <NUM> itself can move between rails <NUM> to access slots <NUM> on different rows <NUM>. This has many advantages:.

There may be a plurality, or "swarm", of identical robots <NUM> in the library system <NUM>. An example is shown in <FIG> in which there are six robots <NUM> in a library system <NUM> comprising eight rows <NUM> of slots <NUM> and nine rails <NUM> (using the same alternating rail-row arrangement of <FIG> and <FIG>). In <FIG>, a single "panel" <NUM> of slots <NUM> and rails <NUM> is shown. In other examples, described below, there may be more panels <NUM> present.

In some examples, the drive mechanism <NUM>, <NUM> of one of the foot arrangements <NUM>, <NUM> may activate when only that foot arrangement <NUM>, <NUM> is engaged with a rail <NUM>. That is, the robot <NUM> may move along a rail <NUM> with only a single foot arrangement <NUM>, <NUM> engaged. This allows two robots <NUM> to pass one another using only minimal space. An example of such a passing action is illustrated in <FIG>.

In the example of <FIG>, there are two robots 200a, 200b. Only three rails 110a-c are shown for the sake of simplicity. The first robot 200a is in a first position in which its first foot arrangement 210a is engaged with the first rail 110a and its second foot arrangement 220a is engaged with the second rail 110b. The second robot 200b has its second foot arrangement 220b engaged with the third rail 110c, but the first foot arrangement 220a is not engaged with any rail <NUM>. Specifically, the transfer mechanism (not shown) of the second robot 200b has been activated to rotate the first foot arrangement 210b of the second robot 200b out of the plane of the rails <NUM> and, in particular, out of the way of the first robot 200a. This means that the first robot 200a and second robot 200b can pass each other even though there are only three rails <NUM>.

Further advantages are hence realized when there is a plurality of robots <NUM> in the storage library system <NUM>. For example:.

In yet further examples, the storage library system <NUM> may comprise a plurality of panels <NUM>. An example is shown in <FIG> in which the storage library system <NUM> comprises a series of four panels <NUM>. Each panel <NUM> may have the construction as shown in the example of <FIG> described earlier.

In this case, the robot <NUM> may also use the transfer mechanism <NUM> to transfer between a first panel <NUM> and a second panel <NUM> adjacent the first panel <NUM>. To do so, the first foot arrangement <NUM> is disengaged from the first rail 110a as before, but then the robot <NUM> is moved to an orientation in which the first foot arrangement <NUM> is in abutment with a rail on a second panel <NUM> adjacent the first, before being engaged with that rail. The transfer mechanism <NUM> may then move the robot <NUM> again to bring the second foot arrangement <NUM> to meet another rail of the second panel <NUM>.

A similar arrangement can be realized with a single panel <NUM> having a boustrophedonic ("snaking") plan, as shown in <FIG>. This effectively elongates the horizontal dimension which the robots <NUM> use their primary drive system to move along (i.e. in the x direction, along the rail <NUM>).

The example arrangement of <FIG> also allows the robot to use the transfer mechanism <NUM> to transfer "across" the portions of the panel (in the same manner described above for transferring between different panels <NUM>), though it is not necessary. This type of transfer provides an alternative, and potentially faster, route to the adjacent panel portion (than the robot <NUM> moving along the rail <NUM>). It can also allow the robot <NUM> to avoid hardware failures and/or other robots in a similar manner to described above.

<FIG> shows an example arrangement in which one or more drives <NUM> are located separately from the panels <NUM>. The drives <NUM> may be, for example, one or more write drives <NUM> or one or more read drives <NUM> (as described above). At least one of the rails <NUM> extends from a panel <NUM> to the drives <NUM> in order to allow robots <NUM> to access the drives <NUM>. Hence, another advantage of the transfer action is realized because all robots <NUM> can reach the drives <NUM> without requiring every rail <NUM> to be connected to the drives <NUM>.

<FIG> shows an example arrangement in which there is provided at least one non-panel rail <NUM>. These non-panel rails <NUM> are rails with a similar construction to the (panel-) rails <NUM>, but their location is such that the robot <NUM> cannot access items in the slots <NUM> when engaged with one of the non-panel rails <NUM>. In this example, the non-panel rails <NUM> are located above the panels <NUM>. The robot <NUM> may use these non-panel rails <NUM> to transfer between panels <NUM> and/or access other parts of the storage library system <NUM>.

The storage library system <NUM> may comprise at least one localization feature for allowing the robot <NUM> to determine its location in the storage library system <NUM>. The sensing system <NUM> of the robot <NUM> may be used to detect the at least one localization feature and thereby enable the robot <NUM> to determine its location within the storage library system <NUM>.

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 <FIG>. In some examples, each of the rails <NUM> comprises a respective localization feature.

In <FIG>, a Gray code is printed on one side (the top, in this example) of a rail <NUM>. The Gray code may be an optical Gray code, a magnetic Gray code, or a capacitive Gray code. The sensing system <NUM> comprises, accordingly, an optical, magnetic, or capacitive sensor. By reading the Gray code at the current location of the robot <NUM>, the robot <NUM> is able to uniquely determine its location.

In an example, the robot <NUM> comprises an internal location module configured to determine a location of the robot <NUM> in the media storage library system <NUM>. This is particularly advantageous given the fact that, as mentioned, the robot <NUM> is free-roaming within the storage library system <NUM>.

A specific example construction of the robot <NUM> will now be described with reference to <FIG>.

<FIG> shows an example first foot arrangement <NUM>. The construction of the second foot arrangement <NUM> may be substantially the same as that of the first foot arrangement <NUM> and is therefore not described in detail (the construction of the second foot arrangement <NUM> may be a mirror-image of that of the first foot arrangement <NUM>).

The gripping mechanism <NUM> of this specific example is shown in more detail in <FIG> (viewed from the other side relative to <FIG>). <FIG> shows the gripping mechanism <NUM> in a first (closed) state, and <FIG> shows the gripping mechanism <NUM> in a second (open) state.

In this example, the gripping mechanism <NUM> 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 <NUM> 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 <NUM> 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 <FIG>), such as wheels which run on the front of the rails <NUM> to provide additional stability.

A motor <NUM> is provided which is operable to cause the gearing mechanism <NUM> 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 <NUM>. The gripping mechanism <NUM> is shown in a closed state in <FIG> and in an open state in <FIG>.

The foot arrangement <NUM> shown in <FIG> also comprises a drive mechanism <NUM> for propelling the robot <NUM> along the rail <NUM>. In this example, the drive mechanism <NUM> comprises a first circular gear 411a and second circular gear 411b. The second circular gear 411b is driven by a motor <NUM> via a coupling link <NUM> (two orthogonal bevel gears in this example). The second circular gear 411b engages with the first circular gear 411a and, hence, in operation the first and second circular gears counter-rotate. In the arrangement shown in <FIG>, the first circular gear 411a engages with teeth <NUM> of the (front side of) the rail <NUM>. In general, the first circular gear 411a will engage with the teeth <NUM> of any rail <NUM> to which the gripping mechanism <NUM> is currently engaged.

<FIG> shows the transfer mechanism <NUM> of this specific example. The transfer mechanism comprises two rack-and-pinion arrangements, each comprising a pinion 421a, 421b (bevel gears) arranged to engage with a rack 422a, 422b having a curved profile around the x-axis. The pinions 421a, 421b are drivable by a transfer motor <NUM>. When, for example, the first pinion 421a is driven, the first pinion 421a will rotate to move along the length of the curved rack 422a, thereby acting to rotate the first foot arrangement <NUM> relative to the main body of the robot <NUM>. If the first foot arrangement <NUM> is engaged with a rail, this will cause the robot <NUM> to move in the manner described above in relation to <FIG>. If the first foot arrangement <NUM> is not engaged with a rail, this will cause the first foot arrangement <NUM> to rotate. The second pinion 421b and second rack 422b operate in a similar manner.

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 <NUM> or robots of the storage library system <NUM>. Such a control module maybe implemented, as noted earlier, at the controller <NUM> of the robot <NUM>, at the central control system <NUM>, or using any combination of the these. The control module may be configured to control the robot <NUM> 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 <NUM> involves the orientation of the robot <NUM> changing with respect to the slots <NUM>. This can be achieved using a single end-effector which can move to access different sides of the robot <NUM>, or using a plurality of end-effectors each arranged to operate relative to a different side of the robot <NUM> (e.g. one per "face"). For example, in the example of <FIG>, the robot <NUM> "flips" and therefore it would be preferable for the end-effector to be able to interact with items on either side of the robot <NUM>. As another example, in the example of <FIG>, the robot <NUM> rotates <NUM> degrees per transfer action, presenting a different side of the robot <NUM> to the slots <NUM> and therefore it would be preferable for the end-effector to be able to interact with items on all four sides of the robot <NUM>.

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 <NUM> is engaged with two or more rails, although this is not strictly necessary. That is, it is not excluded that the robot <NUM> might be able to access the slots <NUM> 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. <FIG>). The robot may be able to transfer from one panel to another using the transfer mechanism, e.g. by engaging with a rail of an adjacent panel, or by traversing one or more intermediate rails. This also includes examples in which the slots are arranged in a single, "snaking", panel (e.g. <FIG>) and the robot is able to transfer from a first portion of the panel occupying a first plane so a second portion of the panel occupying a second, different plane from the first plane.

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..

Claim 1:
A storage library system (<NUM>) comprising:
a plurality of slots (<NUM>) for storing items;
a plurality of rails (<NUM>); and
a robot (<NUM>) for interacting with said items, the robot (<NUM>) comprising:
an end-effector (<NUM>) for interacting with the items in the slots (<NUM>);
at least two foot arrangements (<NUM>, <NUM>);
a drive mechanism (<NUM>) for moving the robot (<NUM>) along the rails (<NUM>);
characterized in that:
the foot arrangements (<NUM>, <NUM>) each have a respective gripping mechanism (<NUM>) for releasably engaging the foot arrangement (<NUM>, <NUM>) with one of the rails (<NUM>); and
the robot (<NUM>) comprises a transfer mechanism (<NUM>) constructed and arranged to move the robot (<NUM>), while a first one or more of the foot arrangements (<NUM>) remains engaged with a first of the rails (110b), from a first position in which one or more of the foot arrangements (<NUM>) is in abutment with a second of the rails (110a) to a second position in which one or more of the foot arrangements (<NUM>) is in abutment with a third of the rails (110c).