Storage Library System

JP2024522103A5Active Publication Date: 2025-05-21MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023572958
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-05-25
Filing Date
2022-05-18
Publication Date
2025-05-21
Estimated Expiration
2042-05-18

AI Technical Summary

Technical Problem

Existing storage library systems face limitations in accessing a full set of slots due to the reliance on a single rail pair, leading to potential failures and inefficiencies in media access and storage capacity.

Method used

A storage library system with robots equipped with multiple foot devices and a locomotion mechanism that allows them to move between different rails, enabling access to a broader range of slots without requiring a full move between rail pairs, and incorporating distributed intelligence for enhanced adaptability and scalability.

Benefits of technology

The system achieves higher availability, flexibility, and reliability by allowing robots to navigate around failures, distribute intelligence, and scale independently, improving media access and storage capacity while optimizing workload distribution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The storage library system includes a plurality of slots for storing items, a plurality of rails, and a robot for interacting with the items. The robot has at least two foot devices, each having a respective gripping mechanism for releasably engaging the foot device with the rails. The robot also has a movement mechanism for moving the robot from a first position in which one or more of the foot devices are in abutment with a second one of the rails while a first one or more of the foot devices are engaged with a first one of the rails, to a second position in which one or more of the foot devices are in abutment with a third one of the rails. The robot also has an end effector for interacting with the items in the slots.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to storage library systems. [Background technology]

[0002] A storage library system may provide high-capacity storage of items (including, but not limited to, physical media items). The storage library system comprises a plurality of slots for holding the items and at least one robotic means for accessing the items. For example, a storage library system may comprise a plurality of rows, each row comprising tens or hundreds of vertically stacked slots. For example, one or more robots may be provided that can move between slots to retrieve items from a slot, place items into a slot, or move items between two slots.

[0003] A storage library system that stores physical media items may be referred to as a "data storage library system" or a "data archive." A data storage library system that stores tape cartridges is commonly referred to as a "tape library" (also known as a tape silo or tape jukebox). A data storage library system that stores optical discs (e.g., CDs, DVDs, etc.) is commonly referred to as an "optical jukebox" (also known as an optical disc library). Summary of the Invention

[0004] 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 the items. The robot comprises at least one end effector (e.g., a reader, grabber, or other actuator) for interacting with the items in the slots, at least two foot devices, and a movement mechanism. Each foot device comprises a respective gripping mechanism for releasably engaging the foot device with one of the rails. The robot also comprises a drive mechanism for moving the robot along the rails. The movement mechanism is constructed and arranged to move the robot from a first position in which one or more of the foot devices are engaged with a first rail of the rails while one or more of the foot devices are in abutment with a second rail of the rails, to a second position in which one or more of the foot devices are in abutment with a third rail of the rails.

[0005] At the first location, the robot can access a first set of one or more slots (i.e., a first location in the storage library system). At the second location, the robot can access a second set of one or more slots (i.e., a second location in the storage library system). The second set of slots includes at least one slot that was inaccessible by the robot at the first location. Thus, moving the robot between locations allows the robot to access more of the slots.

[0006] At least one location feature (e.g., an RFID tag, or an optical, magnetic, or capacitive marking) may be present to enable the robot to determine its location within the storage library system. Moving the robot from the first position to the second position may include one or more of rotating the robot about the second foot out of the plane of the rail, rotating the robot about the second foot in the plane of the rail, and translating the robot in the plane of the rail. A storage library system may include multiple similar robots or a "swarm" of similar robots.

[0007] This Summary is provided to introduce in a simplified form some concepts 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. The claimed subject matter is not limited to implementations that solve any or all of the disadvantages discussed herein.

[0008] To facilitate an understanding of the present disclosure and to show how embodiments may be carried into effect, reference will now be made, by way of example, to the accompanying drawings. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 illustrates a schematic diagram of a storage library system according to examples described herein. [Figure 2] FIG. 1 illustrates a schematic diagram of a robot according to examples described herein. [Figure 3] 1 is a flowchart illustrating locomotion actions that can be performed by a robot. [Figure 4] 1A and 1B are diagrams illustrating examples of movement actions that can be performed by a robot. [Figure 5] FIG. 1 is a schematic diagram illustrating an exemplary storage library system having multiple robots. [Figure 6]FIG. 10 is a diagram illustrating an exemplary passing motion of two robots. [Figure 7] FIG. 10 is a diagram illustrating another example of a movement action that can be performed by a robot. [Figure 8] FIG. 10 is a diagram illustrating another example of a movement action that can be performed by a robot. [Figure 9] FIG. 10 is a diagram illustrating another example of a movement action that can be performed by a robot. [Figure 10a] FIG. 1 is a diagram illustrating a schematic diagram of an exemplary storage library system arrangement. [Figure 10b] FIG. 1 is a diagram illustrating an exemplary storage library system apparatus. [Figure 11] 1A and 1B illustrate exemplary arrangements of slots in a storage library system. [Figure 12] 1A and 1B illustrate exemplary arrangements of slots in a storage library system. [Figure 13] FIG. 10 is a diagram schematically illustrating an example of a gray code printed on one side of a rail. [Figure 14] 1A-1C are diagrams illustrating specific examples of foot devices. [Figure 15a] 10A and 10B show schematic diagrams of particular examples of gripping mechanisms in open positions; [Figure 15b] 10A and 10B show schematic diagrams of particular examples of gripping mechanisms in a closed position. [Figure 16] 1A and 1B are diagrams illustrating specific examples of movement mechanisms. DETAILED DESCRIPTION OF THE INVENTION

[0010] The present disclosure relates to a storage library system (e.g., a data storage library system) having multiple rails along which robots can travel. Each robot can move along the length of the rail to access items at different locations within the storage library system. Some, but not all, locations are accessible from a given rail. As described in detail below, the robot includes hardware that allows the robot to move between different rails, thereby accessing more locations within the storage library system. Even without performing "full" movement between different rails, the same hardware still allows the robot to move relative to at least one rail (e.g., the robot can swerve to let another robot pass). Examples described herein provide one or more of the following advantages:

[0011] Higher Availability & Minimal Fault Effect Area - Robots are not limited to a single rail pair. Any failure of a robot or rail pair etc. will not result in failure of the remaining robots on the rails, which can move freely in and out of unaffected areas and avoid the failure point by overtaking the area of ​​the failed robot / rail.

[0012] Distributed intelligence - In some instances, robots can be autonomous, meaning they can react more efficiently to the changing environment around them, adding an additional layer of safety. On-board processing of sensors avoids the need to stream sensor data from the robot to a controller over high-bandwidth communication channels, improving reliability and enabling larger swarms.

[0013] Flexible Layout & Reliable Storage - Functional elements within a storage library system (e.g., writers, readers, storage units, etc.) are integrated through a network of rails used by robots to travel. How they are connected to each other is unconstrained, as robots can move between the rails (different arrangements may be more suitable in different situations). The modular approach provides adaptability and the ability to scale up the system based on workload properties (e.g., to increase read / write throughput and / or the storage capacity of the system). Furthermore, robots can be fetched independently; that is, robotics can be scaled up independently from storage by adding more robots as needed as the workload increases.

[0014] Small, Lightweight & Agile Robot Design - Moving along a single axis rather than supporting multiple axes allows robots to be smaller and lighter, require fewer dedicated actuators and mechanical structures, and use less power to operate.

[0015] Service flexibility - During normal operation, the fact that robots can move between different rails means that any robot can access any media or any read / write drive in the library. This facilitates load balancing according to workload demands. This feature also allows for additional routing options, improving access to media in situations where elevated congestion exists (traditional tape library robots have only one available route between any item of media and drive, i.e., through one of a few robots; a bottleneck).

[0016] High Performance—Separating the load / unload functions from the pick / delivery allows media to be prepared adjacent to the drives (where robot overcrowding can be an issue), speeding media exchange. This maximizes drive utilization and improves their efficiency. The division of functions also allows for specialized designs for those tasks, enabling high performance and reliability. FIG. 1 schematically illustrates a storage library system 100 according to an example described herein. The storage library system 100 includes multiple slots 120 for holding items, at least one robot 200 (also referred to as a “shuttle”), and multiple rails 110. An optional central control system 130 is also shown in FIG. 1; in other examples, the functionality of the control system 130 can be implemented in a decentralized manner across multiple robots 200; for example, a distributed control system may exist, or in a fully autonomous system, the robots may cooperate with each other in a distributed manner.

[0017] In operation, robot 200 moves about storage library system 100 using rails 110 to access items stored in slots 120. Each of rails 110 may be substantially identical in construction, allowing robot 200 to travel on any one or more of rails 110 at a given time. Rails 110 may be parallel rails (equidistant pairs).

[0018] It should be understood that the exact arrangement and number of slots 120 and rails 110 may vary. In this example, the slots 120 are arranged in horizontal rows 121, with a horizontal rail 110 located between each row 121. Specifically, the first row 121a of slots 120 is located between the first rail 110a and the second rail 110b, and the second row 121b of slots 120 is located between the second rail 110b and the third rail 110c.

[0019] For reference, a right-handed coordinate system is introduced in which the rail 110 lies in the xy plane, with the x-axis parallel to the rail 110 and the y-axis perpendicular to the rail 110. The z-axis can be seen in later figures and extends away from the plane of the rail 110 (out of the page in FIG. 1). The side of the slot 120 along which the robot 200 travels may be referred to as the "front."

[0020] When at least some of the items held in 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 FIG. 1 .

[0021] Robot 200 may transition a given physical storage medium to write drive 150, where the physical storage medium may be written. Specifically, when a particular media item is to be written using write drive 150, robot 200 may transition the media item from write drive 150 to slot 120 for storage.

[0022] The robot 200 may transition a given physical storage medium to the read drive 160, where it may be read. Specifically, the robot 200 may transition a particular media item between the slot 120 and the read drive 160, allowing data written to the media item to be read.

[0023] In an example, there may be multiple write drives 150 (e.g., one per column 121) and / or multiple read drives 160 (e.g., one per column 121). For performance reasons, it may be preferable to position the read drives 160 close to the slots 120. In an example, writing to media may have looser latency requirements, so it may be acceptable to have write drives 150 located farther from the slots 120 (e.g., farther from storage system 100) than the read drives 160. In other examples, there may be a different number of write drives 150 and read drives 160; for example, there may be a read drive 160 in every column 121, but only one or two write drives 150 (e.g., located in the bottom column 121). An example is shown in FIG. 11, discussed later below.

[0024] A write drive interface 151 may be included, allowing the robot 200 to interface with a write drive 150. A read drive interface 161 may be included, allowing the robot 200 to interface with a read drive 160. For example, interfaces 151, 161 may act as a staging area for media to be read, i.e., the robot 200 can "drop" physical storage media off at interfaces 151, 161 to be added to a queue and written / read at a later time. This means that the robot 200 can return to slot 120 and continue its work.

[0025] In the example of FIG. 1 , write drive 150 and read drive 160 are separate units, but it should be understood that a single drive may be provided for performing both write and read operations. In an example, one or more of write drive 150, read drive 160, or a single drive for performing both write and read operations may be included in robot 200 itself. For example, end effector 240 of robot 200 itself may include a write drive and / or a read drive. In such an example, some or all of the transitions described above are unnecessary. For example, robot 200 may include an “internal” write drive 150, meaning that robot 200 itself can write to a given physical storage medium and does not need to transition it to an external write drive 150 (however, if robot 200 does not also include an internal read drive 160, robot 200 may still need to transition it to an external read drive 160). Similarly, robot 200 may be equipped with an "internal" read drive 160, meaning that robot 200 itself can read from a given physical storage medium and does not need to transfer it to an external read drive 160 (however, if robot 200 does not also include an internal write drive 150, robot 200 may still need to transfer it to an external write drive 150). A robot 200 with both an internal write drive 150 and an internal read drive 160 (or a single read-write drive) may not need to transfer physical storage media at all (however, this is not precluded, as robot 200 may still transfer physical storage media for other purposes, such as maintenance, for example).

[0026] A more detailed example of the robot 200 is shown in Figure 2. The robot 200 includes a first foot device 210, a second foot device 220, a locomotion mechanism 230, and an end effector 240.

[0027] In this example, robot 200 also includes a controller 250, a communications interface 260, a power supply 270, and a sensing system 280. These are optional features. As noted above, robot 200 may also include one or more of write drive 150 and read drive 160 (or a single drive that provides both write and read functionality).

[0028] The controller 250 is for controlling the first foot device 210, the second foot device 220, the locomotion mechanism 230, and the end effector 240. The controller 250 may be implemented, for example, using one or more processors. In an example, the functionality of the central control system 130 shown in FIG. 1 (and described in more detail below) may instead be implemented in a distributed manner across one or more robots 200, with each robot 200 using its internal controller 250.

[0029] The communication interface 260 enables the robot 200 to receive data from and / or transmit data over a communication link (illustrated by the dotted arrow in FIG. 1 ). In some examples, the robot 200 may receive routing information from the control system 130. In alternative or additional examples, the robot 200 may communicate with one or more other robots as part of a mesh network. Preferably, the communication link is a wireless communication link, although it is not excluded that the communication link be a wired communication link. A wireless communication link is particularly advantageous when the robot 200 includes an internal power source 270, since the robot 200 may be untethered from the control system 130 and can move freely throughout the library. In examples, the robot 200 may use, for example, low-friction components, regenerative braking, to conserve power.

[0030] The power source 270 is for powering the robot 200. In a first example, the power source 270 may be an internal power source of the robot 200, such as an on-board battery. The advantage of this is that the robot 200 does not require a connection to an external power source. In other examples, the robot 200 may not have its own power source 270, but instead may receive power from an external power source via a wired or wireless connection. The advantage of this is that the robot 200 does not require an on-board power source 270, may be smaller and / or lighter, and the robot 200 does not require charging. In a particular example, the robot 200 may receive power via the rails 110.

[0031] Sensing system 280 enables robot 200 to determine its location within storage library system 100. Examples of location determination are described below. Sensing system 280 may include, for example, one or more optical sensors.

[0032] The first foot device 210 includes a first gripping mechanism 211 for releasably engaging the first foot device 210 with one of the rails 110. The second foot device 220 includes a second gripping mechanism 221 for releasably engaging the second foot device 220 with one of the rails 110. The distance between the foot devices 210, 220 is substantially equal to the distance between an adjacent pair of rails 110. Thus, when the first foot device 210 is engaged with one of the rails 110, the second foot device 220 can engage with an adjacent one of the rails 110. In FIG. 1 , for example, the first foot device 210 is engaged with the first rail 110a and the second foot device 220 is engaged with the second rail 110b.

[0033] Any suitable gripping mechanism capable of releasably engaging with the rail 110 may be used. For example, one or more of the gripping mechanisms 211, 221 may be mechanical gripping mechanisms (examples are shown in FIGS. 14, 15a, and 15b, described below) arranged to physically engage the rail 110. In other examples, the rail 110 may be magnetic (i.e., ferromagnetic), and one or more of the gripping mechanisms 211, 221 may comprise at least one electromagnet for selectively engaging the rail 110 via electromagnetic force. In a further example, one or more of the gripping mechanisms 211, 221 may comprise both mechanical and electromechanical means for gripping the rail 110. In a still further example, another method is to use air bearings and squirt compressed air through the bearings for low-friction cushioning. Mechanical grippers may still be used to wrap around the rail, with air pressure providing the bearing solution. Note also that permanent magnets may be used to engage the foot device with the rail 110. These permanent magnets can be selectively engaged by mechanically moving the magnets closer to the rail 110 .

[0034] The gripping mechanism 211 of the first foot device 210 and the gripping mechanism 221 of the second foot device 220 do not have to be of the same type.

[0035] The robot 200 also includes at least one drive mechanism for propelling the robot 200 along the length of the rail 110. In some examples, the drive mechanism is located within the body of the robot 200 (rather than one or more of the foot devices). For example, the drive mechanism may be a pusher mounted on the body that pushes the robot 200 along the rail.

[0036] In an alternative or additional example, at least one of the first foot device 210 and the second foot device 220 comprises a drive mechanism for propelling the robot 200 along the length of the rail 110 to which the foot device is currently engaged. In the example of Figure 2, the first foot device 210 and the second foot device 220 are substantially identical in structure, with the first foot device 210 comprising a first drive mechanism 212 and the second foot device 220 comprising a second drive mechanism 222.

[0037] In an example, the drive mechanism may include wheels with high friction surfaces for interacting with the rail 110. In another example, the drive mechanism may include arc gears (either straight or helical) and the rail 110 includes linear gears with which the arc gears of the drive mechanism can engage.

[0038] In other examples, a single mechanism may provide the gripping mechanism 211 and the drive mechanism in one or more foot devices. For example, the rail 110 may be constructed with alternating permanent magnet poles, and a single mechanism may comprise multiple electromagnets that can be selectively controlled to both engage the foot device with the rail 110 and propel the foot device along the rail 110 (in a manner similar to a stepper motor). The advantage of this is that the gripper and rail drive (drive mechanism) are the same part, which may reduce robot complexity and part count / cost. This type of setup may also be reversed, with the robot comprising an array of permanent magnets and the rail comprising multiple electromagnets that are selectively controlled.

[0039] The end effector 240 enables the robot 200 to interact with items in the slot 120. The end effector 240 may include one or more of a grabber for removing items from and / or placing items into the slot 120, a reader for reading data from items in the slot 120, and a writer for writing data to items in the slot 120. To give the robot 200 a more stable base for interacting with items in the slot 120, it may be preferable, but not required, to activate the end effector 240 only when both foot devices 210, 220 are engaged with the rail 110.

[0040] The particular type of end effector 240 depends on the type of item held in slot 120. Examples of such items include physical storage media (e.g., made of laser-written silica glass, tape, or other optical media) or non-storage computing resources such as optical computing devices.

[0041] Another example of end effector 240 is a cleaning or maintenance device. For example, robot 200 with such a cleaning device may travel around storage library system 100 to clean or otherwise maintain items in slots 120. Another example of end effector 240 is a camera. Robot 200 may send pictures of damage to items in slots 120 and / or to components of storage library system 100 to another device (e.g., central control system 130) via communications interface 260.

[0042] The robot 200 may be equipped with two or more end effectors of the same or different types.

[0043] In some examples, storage library system 100 includes at least one robot 200 having a first type of end effector 240 and at least one robot 200 having a second type of end effector 240. This is particularly advantageous in the context of the present disclosure, where each robot 200 can move between rails 110, because each of the robots 200 can access overlapping portions of such storage library system 100. For example, one robot 200 can be a maintenance robot with maintenance devices, and another robot 200 can be a read / write robot that accesses items in slots 120.

[0044] The locomotion mechanism 230 enables the robot 200 to perform locomotion maneuvers (also referred to as rail-switching maneuvers) between the rails 110. A variety of specific types of locomotion maneuvers are possible, which may depend on the specific structure of the robot 200, the number of foot devices, the arrangement of the rails 110, etc. Generally speaking, the locomotion mechanism 230 is constructed and arranged to move the robot 200 from a first position in which a first one or more of the foot devices are engaged with a first one of the rails while one or more of the foot devices are in abutment with a second one of the rails, to a second position in which one or more of the foot devices are in abutment with a third one of the rails. In other words, the robot 200 may keep one or more of the foot devices engaged with one of the rails and use that one or more foot devices as anchors for moving between the rails 110. The controller 250 may control the robot 200 to perform locomotion maneuvers.

[0045] Figure 3 is a flowchart illustrating an example locomotion maneuver. Figure 4 shows a series of images of this exemplary locomotion maneuver being performed by the robot 200. In this example, the robot 200 is equipped with two foot devices (as in the example of Figure 2). Initially, the robot 200 is in a first position where the first foot device 210 is engaged with the first rail 110a and the second foot device 220 is engaged with the second rail 110b. The locomotion maneuver then proceeds as follows:

[0046] In S301, the controller 250 controls the first gripping mechanism 211 to remove the first foot device 210 from the first rail 110a. At this time, the first foot device 210 may remain in contact with the first rail 110a (however, it is no longer engaged with the first rail 110a).

[0047] In S302, the controller 250 controls the movement mechanism 230 to move the robot 200 while the second foot device 220 is engaged with the second rail 110b, so that the first foot device 210 moves from a state in which it abuts the first rail 110a to a state in which it abuts the third rail 110c. In this example, moving the robot 200 S302 includes rotating the robot 200 around the second foot device 220 out of the plane of the rail 110 (xy plane). Specifically, the robot 200 is rotated substantially 180 degrees around the second foot device 220, with the second rail 110b being the axis of rotation. In other words, the second foot device 200 (i.e., the one that remains engaged with the rail 110) is used as an anchor for moving the robot 200. In this example, this movement S302 also includes pivoting the first foot unit 210 (i.e., the non-grasping side of the robot 200) an additional 180 degrees in the same direction so that it is in the correct way up at the end of the pivot motion. Both of these pivot actions can be provided by the same locomotion mechanism 230. An exemplary locomotion mechanism 230 for performing both of these actions is described below with reference to FIG. 14.

[0048] In S303, the controller 250 controls the first gripping mechanism 211 to engage the first foot device 210 with the third rail 110c, thereby completing the movement action.

[0049] It should be understood that the movements shown in FIG. 4 are merely examples and that other movements are possible to move the robot 200 from the first position to the second position.

[0050] FIG. 7 shows an example of a locomotion maneuver performed by a robot 200 having four foot devices 220a, 220b, 220c, and 220d. In this example, the robot 200 has a generally rectangular cross-section (in the yz plane). The foot devices 220a, 220b, 220c, and 220d are located at the x-direction edges of the robot 200's body. As in the examples of FIGS. 3 and 4, moving the robot 200 involves rotating the robot 200 out of the plane of the rails 110 (the xy plane) around a foot device (in this case, foot device 220a) that remains firmly fixed to one rail. Note that in this example, the foot device 220d that is brought into (new) engagement with a rail (in this example, the third rail 110c) is not the same foot device 220b that disengaged from that rail 110a at the start of the locomotion maneuver. As in the previous example, foot device 220d can be rotated in the same direction to properly align with new rail 110c for engagement. Similar structures can be used where robot 200 has a cross section with a different shape. Particularly suitable shapes are regular polygons, including triangles, squares (as in the example of FIG. 7), pentagons, hexagons, etc.

[0051] FIG. 8 shows an example of a locomotion maneuver performed by a robot 200 equipped with two foot devices 210, 220. In this example, the locomotion mechanism 230 rotates the robot 200 about the engaged foot device (the second foot device 220 in this example) in the plane of the rail 110 (the xy plane). Specifically, the robot 200 is pivoted substantially 180 degrees in the xy plane about the second foot device 220. In the example, this movement also includes pivoting the first foot device 210 (i.e., the non-grasping side of the robot 200) another 180 degrees in the same direction so that it is in the correct up-down orientation at the end of the pivoting motion. Both of these pivoting maneuvers can be provided by the same locomotion mechanism 230. In other examples, the first foot device 210 is constructed to be able to engage with the rail in either orientation, in which case it does not need to be rotated before engaging a new rail.

[0052] In some examples, the robot 200 may perform locomotion maneuvers in two or more stages, for example, using one or more different foot apparatuses as "anchors" for each stage. FIG. 9 shows such an example. In this example, the robot 200 includes four foot apparatuses: two first foot apparatuses 210 a, 210 b and two second foot apparatuses 220 a, 220 b. Each foot apparatus is located at the end of a "leg" in this example. In this example, the locomotion mechanism 230 translates the robot 200 within the plane of the rail 110 (the x-y plane) when performing locomotion maneuvers (i.e., without rotation in any of the directions described above).

[0053] Specifically, the robot 200 starts in a position where the (two) first foot devices 210a, 210b are in abutment with the first rail 110a and the (two) second foot devices 220a, 220b are engaged with the second rail 110b. The movement mechanism 230 then completes the first stage by using the first foot devices 210a, 210b as anchors to move the second foot devices 220a, 220b to the third rail 110c. The movement mechanism 230 then completes the second stage by using the second foot devices 220a, 220b as anchors to move the first foot devices 210a, 210b to the second rail 110b. In an example, one or more of the "legs" may have a "knee." The ability of the robots 200 to perform locomotion acts means that each robot 200 can itself move between the rails 110 to access the slots 120 in different rows 121. This has a number of advantages.

[0054] The robots 200 are independent in the sense that they can move anywhere. No additional hardware (e.g., a vertical "elevator") is required to move the robots 200 between rows 121.

[0055] The robot 200 itself can retrieve items from or deliver items to slots 120 in any row 121 without needing to collaborate with other robots.

[0056] The number of potential routes that robot 200 can utilize from its current location to the location of target slot 120 is greatly increased. This means that robot 200 can avoid each other (see example in FIG. 6 ). It also means that even if, for example, there is a problem or obstruction in a section of one of rails 110, i.e., robot 200 cannot pass through that particular section, robot 200 can still navigate to target slot 120. It also means that robot 200 can potentially identify and utilize an optimal route to a target location within library system 100.

[0057] The robot 200 can be easily removed for maintenance.

[0058] There may be multiple identical robots 200 or "flocks" of identical robots 200 within library system 100. An example is shown in FIG. 5, where there are six robots 200 in library system 100 with eight rows 121 of slots 120 and nine rails 110 (using the same alternating rail-row arrangement of FIGS. 1 and 3). In FIG. 5, a single "panel" 101 of slots 120 and rails 110 is shown. In other examples described below, there may be more panels 101.

[0059] In some examples, the drive mechanism 212, 222 of one of the foot devices 210, 220 may be activated only when the foot device 210, 220 is engaged with the rail 110. That is, the robot 200 may move along the rail 110 with only a single foot device 210, 220 engaged. This allows two robots 200 to pass each other using only a minimal amount of space. An example of such a passing action is illustrated in FIG. 6.

[0060] In the example of FIG. 6, there are two robots 200a, 200b. Only three rails 110a-c are shown for simplicity's sake. The first robot 200a is in a first position with its first foot device 210a engaged with the first rail 110a and its second foot device 220a engaged with the second rail 110b. The second robot 200b has its second foot device 220b engaged with the third rail 110c, but the first foot device 220a is not engaged with any rail 110. Specifically, the movement mechanism (not shown) of the second robot 200b is activated to rotate the first foot device 210b of the second robot 200b out of the plane of the rails 110 and, in particular, out of the path of the first robot 200a. This means that even though there are only three rails 110, the first robot 200a and the second robot 200b can pass each other.

[0061] Thus, further advantages are realized when multiple robots 200 are present in the storage library system 100. For example: The control system 130 can dynamically allocate robot services to where they are needed during operation, which means that the control system 130 can balance service loads and be robust to failures.

[0062] The system is more scalable, for example, because more robots 200 can be added (see prior art, which is limited to one or two robots per rail because robots on the same rail cannot pass each other; in prior art, more can be used, but the usefulness of each robot decreases with each additional robot).

[0063] Adjacent sleeves can share rail hardware, which may reduce library costs and simplify storage.

[0064] In a still further example, storage library system 100 may comprise multiple panels 101. An example is shown in Figure 10a, where storage library system 100 comprises a series of four panels 101. Each panel 101 may have a structure as shown in the example of Figure 5 described above.

[0065] In this case, the robot 200 may also use the movement mechanism 230 to move between the first panel 101 and a second panel 101 adjacent to the first panel 101. To do so, the first foot device 210 is disengaged from the first rail 110a as before, but the robot 200 is then moved to an orientation where the first foot device 210 abuts a rail on the second panel 101 adjacent to the first panel, and then engaged with that rail. The movement mechanism 230 may then move the robot 200 again to cause the second foot device 220 to encounter another rail on the second panel 101.

[0066] A similar arrangement can be achieved with a single panel 101 having a side-to-side zigzag ("serpentine") plan, as shown in Figure 10b. This effectively elongates the horizontal dimension, and the robots 200 use their primary drive systems to move along it (i.e., along the rails 110, in the x-direction).

[0067] 10b also allows the robot to use the movement mechanism 230 to move "across" portions of panels (in the same manner described above for moving between different panels 101), even though this is unnecessary. This type of movement provides an alternative, and potentially faster, route to adjacent panel portions (than the robot 200 moving along the rails 110). It may also allow the robot 200 to avoid hardware failures and / or other robots in a manner similar to that described above.

[0068] 11 shows an exemplary arrangement in which one or more drives 500 are located separate from the panel 101. The drives 500 may be, for example, one or more write drives 150 or one or more read drives 160 (as described above). At least one of the rails 110 extends from the panel 101 to the drives 500 to allow the robots 200 to access the drives 500. Thus, another advantage of the movement act is realized because all of the robots 200 can reach the drives 500 without requiring all of the rails 110 to be connected to the drives 500.

[0069] 12 shows an example arrangement in which at least one non-panel rail 111 is provided. These non-panel rails 111 are rails having a structure similar to the (panel-) rails 110, but their location is such that the robot 200 cannot access items in the slots 120 when engaged with one of the non-panel rails 111. In this example, the non-panel rails 111 are located above the panels 101. The robot 200 may use these non-panel rails 111 to move between the panels 101 and / or to access other parts of the storage library system 100.

[0070] Storage library system 100 may include at least one location feature to enable robot 200 to determine its location within storage library system 100. Sensing system 280 of robot 200 may be used to detect the at least one location feature, thereby enabling robot 200 to determine its location within storage library system 100.

[0071] A first example of a location feature is an RFID tag located on one of the rails. A second example of a location feature is an optical linear code (e.g., a barcode or a Gray code). An example of a Gray code is shown in Figure 13. In some examples, each of the rails 110 includes a respective location feature.

[0072] 13, the Gray code is printed on one side (top in this example) of the rail 110. The Gray code may be an optical Gray code, a magnetic Gray code, or a capacitive Gray code. The sensing system 280 therefore comprises an optical, magnetic, or capacitive sensor. By reading the Gray code at the current position of the robot 200, the robot 200 can uniquely determine its location.

[0073] In examples, robot 200 includes an internal location module configured to determine the location of robot 200 within media storage library system 200. This is particularly advantageous given that, as noted, robot 200 roams freely within storage library system 100.

[0074] A particular exemplary construction of the robot 200 will now be described with reference to FIGS.

[0075] 14 shows an exemplary first foot device 210. The structure of the second foot device 220 may be substantially the same as that of the first foot device 210 and therefore will not be described in detail (the structure of the second foot device 220 may be a mirror image of the structure of the first foot device 210).

[0076] The gripping mechanism 221 of this particular example is shown in more detail in Figures 15a and 15b (viewed from the opposite side to Figure 14). Figure 15a shows the gripping mechanism 221 in a first (closed) state, and Figure 15b shows the gripping mechanism 221 in a second (open) state.

[0077] In this example, the gripping mechanism 221 includes a first frame 401a and a second frame 401b, which pivot about respective first and second pivot axes 407a and 407b. A gear mechanism 405 is provided for counter-rotating the first and second frames 401a and 401b. Each frame has one or more wheels for engaging with the rail 110. In this example, the first frame 401a includes two wheels 402a and 403a, and the second frame 401b also includes two wheels 402b and 403b, although other arrangements are possible. Additional wheels may be provided (not shown in FIG. 14 ), such as wheels running on the front of the rail 110, to provide additional stability.

[0078] A motor 406 is provided that is operable to cause a gear mechanism 405 to move the first frame 401 a and the second frame 401 b between closed and open positions so that the wheels grip and release the sides of the rail 110. The gripping mechanism 221 is shown in a closed position in Figure 15a and in an open position in Figure 15b.

[0079] The foot device 210 shown in FIG. 14 also includes a drive mechanism 222 for propelling the robot 200 along the rail 110. In this example, the drive mechanism 222 includes a first arc gear 411 a and a second arc gear 411 b. The second arc gear 411 b is driven by a motor 413 (two orthogonal bevel gears in this example) via a connecting link 412. The second arc gear 411 b engages the first arc gear 411 a, so that during operation, the first and second arc gears counter-rotate. In the arrangement shown in FIG. 14, the first arc gear 411 a engages with the (front) teeth 111 of the rail 110. In general, the first arc gear 411 a engages with the teeth 111 of whatever rail 110 the gripping mechanism 221 is currently engaged with.

[0080] FIG. 16 shows the movement mechanism 230 of this particular example. The movement mechanism includes two rack and pinion devices, each including a pinion 421 a, 421 b (bevel gear) configured to engage with a rack 422 a, 422 b having a curved profile about the x-axis. The pinions 421 a, 421 b can be driven by a movement motor 423. For example, when the first pinion 421 a is driven, the first pinion 421 a rotates to move along the length of the curved rack 422 a, thereby acting to rotate the first foot device 210 relative to the main body of the robot 200. When the first foot device 210 is engaged with the rail, it moves the robot 200 in the manner described above in connection with FIG. 4. When the first foot device 210 is not engaged with the rail, it rotates the first foot device 210. The second pinion 421b and the second rack 422b operate in a similar manner.

[0081] It should be understood that the examples described herein are to be understood as illustrative examples of embodiments of the present invention. Further examples are provided below.

[0082] The term “control module” may be used generally to refer to a module for controlling robot 200 or a robot of storage library system 100. Such a control module may be implemented in controller 250 of robot 200, in central control system 130, or using any combination thereof, as described previously. The control module may be configured to control robot 200 to perform a transfer act by controlling the gripping mechanisms of one or more of the foot devices to disengage one or more foot devices from the second rail, controlling the transfer mechanism to move the robot from a first position to a second position while a first one or more of the foot devices are engaged with a first one of the rails, and controlling the gripping mechanisms of one or more of the foot devices to engage one or more of the foot devices with a third rail.

[0083] The foot device that engages the new rail may or may not be the same as the foot device that disengages from the previous rail. Thus, the movement mechanism may be constructed and arranged to move the robot from a first position where the first foot device is engaged with a first rail of the rails while the second foot device abuts a second rail of the rails, to a second position where the second foot device abuts a third rail of the rails.

[0084] In an example, the storage library system includes at least one location feature to enable the robot to determine its location within the storage library system. Exemplary location features include an RFID tag located on at least one of the rails, an optical mark located on at least one of the rails. The robot may include a sensing system for detecting the location feature to determine the robot's location within the storage library system. Examples of optical marks include barcodes, QR codes, and optical, magnetic, or capacitive linear codes (e.g., Gray codes).

[0085] Moving the robot (by the movement 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 devices out of the plane of the rail, rotating the robot about the first one or more foot devices in the plane of the rail, and translating the robot in the plane of the rail.

[0086] In some examples, the end effector may be positioned to interact with items on more than one side of the robot. This is particularly advantageous in examples where, for example, movement acts performed by the robot 200 involve changing orientations of the robot 200 relative to the slot 120. This may be achieved using a single end effector that can move to access different sides of the robot 200, or using multiple end effectors, each positioned to operate on different sides of the robot 200 (e.g., one per "face"). For example, in the example of FIG. 4, the robot 200 preferably "flipped," thus allowing the end effector to interact with items on both sides of the robot 200. As another example, in the example of FIG. 7, the robot 200 preferably rotates 90 degrees for each movement act, presenting a different side of the robot 200 to the slot 120, thus allowing the end effector to interact with items on all four sides of the robot 200.

[0087] The end effector may be, for example, at least one of a grabber, a reader, a writer, a camera, a maintenance device, and a cleaning device. The robot may be equipped with two or more end effectors of the same or different types. While it may be preferable to activate an end effector only when the robot 200 is engaged with two or more rails, this is not strictly required. That is, it is not excluded that the robot 200 may be able to access the slot 120 even when engaged with only a single rail (e.g., using a single foot device).

[0088] At least some of the items stored in the storage library system may be physical storage media, and the storage library system may include at least one drive for reading and / or writing to the physical storage media. The drive may be separate from the robot, or the robot may include one or more drives.

[0089] More than one robot may be present in a storage library system (i.e., 2, 3, 4, 5, etc.). In examples, there may be dozens or hundreds of robots. The robots may or may not all be substantially identical; for example, some of the robots may have different types of end effectors.

[0090] In examples, the storage library system includes a central control system for controlling the robots. In other examples, the robots may communicate directly with each other to cooperate.

[0091] In examples, the drive mechanism may be located on one of the foot units. In such cases, the drive mechanism may be activatable while only that foot unit is engaged with the rail.

[0092] In examples, the slots are disposed in at least two different planes, and the third rail along which the movement mechanism moves the first foot device is not located in the same plane as the first and second rails. This includes examples where the slots are disposed in at least two panels occupying different planes (e.g., FIG. 10a). The robot may be able to use the movement mechanism to move from one panel to another, for example, by engaging rails on adjacent panels or by traversing one or more intermediate rails. This also includes examples where the slots are disposed in a single "serpentine" panel (e.g., FIG. 10b), and the robot can move from a first portion of the panel occupying a first plane to a second portion of the panel occupying a second plane different from the first plane.

[0093] Described herein is a method for controlling a robot of a storage library system having a plurality of slots for storing items, a plurality of rails, the robot having an end effector for interacting with items in the slots, at least two foot devices, and a drive mechanism for moving the robot along the rails, the method including controlling a gripping mechanism to disengage a first one or more of the foot devices from a first rail, controlling a movement mechanism to move the robot from a first position in which one or more of the foot devices are engaged with a first rail of the rails while one or more of the foot devices are in abutment with a second rail of the rails, to a second position in which one or more of the foot devices are in abutment with a third rail of the rails, and controlling the gripping mechanism to engage one or more of the foot devices with the third rail, thereby causing the robot to perform a movement action.

[0094] Generally, a robot is provided for use in a storage library system having a plurality of slots and a plurality of rails for storing items, the robot including an end effector for interacting with items in the slots, at least two foot devices, each having a respective gripping mechanism for releasably engaging the foot device with one of the rails, a drive mechanism for moving the robot along the rails, and a translation mechanism constructed and arranged to move the robot from a first position in which one or more of the foot devices are in abutment with a second rail of the rails while a first one or more of the foot devices are engaged with a first rail of the rails, to a second position in which one or more of the foot devices are in abutment with a third rail of the rails.

[0095] It should be understood that the processors or processing systems or circuits referred to herein may, in practice, be provided by a single chip or integrated circuit or multiple chips or integrated circuits, and may optionally be provided as a chipset, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a graphics processing unit (GPU), etc. The chip(s) may comprise circuitry (and possibly firmware) for embodying at least one or more of data processor(s), digital signal processor(s), baseband circuitry, and radio frequency circuitry, which are configurable to operate according to 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 may be executable by a processor, or by hardware, or by a combination of tangibly stored software and hardware (and tangibly stored firmware).

[0096] While at least some aspects of the embodiments described herein with reference to the drawings involve computer processes implemented in a processing system or processor, the present invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for practicing the present invention. The program may be in the form of non-transitory source code, object code, code intermediate source, and object code, e.g., in partially compiled form, or any other non-transitory form suitable for use in implementing the processes according to the present invention. The carrier may be any entity or device capable of retaining a program. For example, the carrier may include a storage medium such as a solid-state drive (SSD) or other semiconductor-based RAM; a ROM, e.g., a CD-ROM or semiconductor ROM; a magnetic recording medium, e.g., a floppy disk or hard disk; a typical optical memory device, etc.

[0097] The examples described herein are to be understood as illustrative examples of embodiments of the present invention. Additional embodiments and examples are contemplated. Any feature described in connection with any one example or embodiment may be used alone or in combination with other features. In addition, any feature described in connection with 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 used within the scope of the present invention, as defined by the claims.

Claims

1. 1. A storage library system comprising: Multiple slots for storing items; Multiple rails and a robot for interacting with the item; Including, The robot comprises: an end effector for interacting with the item in the slot; at least two foot devices; a drive mechanism for moving the robot along the rail; Including, the at least two foot devices each having a respective gripping mechanism for releasably engaging the foot device with one of the rails; the robot includes a translation mechanism constructed and arranged to move the robot from a first position in which one or more of the at least two foot devices are in abutment with a second rail of the rails while a first one or more of the at least two foot devices are engaged with a first rail of the rails, to a second position in which one or more of the at least two foot devices are in abutment with a third rail of the rails. Storage library system.

2. 10. The storage library system of claim 1, comprising at least one location feature for enabling the robot to determine its location within the storage library system.

3. 3. The storage library system of claim 2, wherein the at least one location feature comprises one or more of an RFID tag located on at least one of the rails and readable by a sensing system of the robot, and an optical mark located on at least one of the rails and readable by a sensing system of the robot.

4. 2. The storage library system of claim 1, wherein the movement mechanism is constructed and arranged to move the robot from the first position to the second position by rotating the robot about the first one or more foot devices out of the plane of the rail.

5. 2. The storage library system of claim 1, wherein the movement mechanism is constructed and arranged to move the robot from the first position to the second position by rotating the robot about the first one or more foot devices in the plane of the rail.

6. 2. The storage library system of claim 1, wherein the translation mechanism is constructed and arranged to move the robot from the first position to the second position by translating the robot in a plane of the rail.

7. 2. The storage library system of claim 1, wherein each foot device of the robot is located at an end of a respective leg device of the robot, and the movement mechanism is constructed and arranged to move the robot from the first position to the second position by moving at least one leg device.

8. 2. The storage library system of claim 1, wherein at least some of the items stored in the storage library system are physical storage media, and wherein the storage library system includes at least one drive for one or both of reading and writing to the physical storage media.

9. 10. The storage library system of claim 1, wherein the end effectors are positioned to interact with items on either side of the robot.

10. 10. The storage library system of claim 9, wherein the end effector includes at least one of a grabber, a reader, a writer, a camera, a maintenance device, and a cleaning device.

11. 10. The storage library system of claim 1, comprising two or more robots.

12. 2. The storage library system of claim 1, wherein the drive mechanism is activatable while only the first one or more of the at least two foot devices are engaged with a rail.

13. 2. The storage library system of claim 1, wherein the slots are arranged in at least two different planes, and the third rail, onto which the movement mechanism moves the first one or more foot devices, is not located in the same plane as the first rail and the second rail.

14. 2. The storage library system of claim 1, controlling the gripping mechanisms of one or more of the at least two foot devices to disengage the one or more foot devices from the second rail; controlling the movement mechanism to move the robot from the first position to the second position while the first one or more foot devices of the at least two foot devices are engaged with the first one of the rails; controlling the gripping mechanism of one or more of the at least two foot devices to engage the one or more of the at least two foot devices with the third rail; a control module configured to control the robot to perform a movement action by:

15. 1. A computer program for controlling a robot of a storage library system including a plurality of slots for storing items and a plurality of rails, the robot including an end effector for interacting with the items in the slots, at least two foot devices, and a drive mechanism for moving the robot along the rails, the computer program, when executed by one or more processing units, comprising: controlling a gripping mechanism to disengage a first one or more of the at least two foot devices from a first rail; controlling a movement mechanism to move the robot from a first position in which the first one or more of the at least two foot devices are in abutment with the first rail of the rails while a second one or more of the at least two foot devices are engaged with a second rail of the rails, to a second position in which one or more of the at least two foot devices are in abutment with a third rail of the rails; controlling a gripping mechanism to engage the one or more of the at least two foot devices with the third rail; A computer program comprising instructions configured to cause the robot to perform a movement action.