Storage Library System
The innovative storage library system with multi-rail robots addresses single-rail limitations by enabling broader access and independent operation, enhancing availability, reliability, and scalability, and optimizing media access and throughput.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2022-05-18
- Publication Date
- 2026-07-02
Smart Images

Figure 0007884018000001 
Figure 0007884018000002 
Figure 0007884018000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a storage library system.
Background Art
[0002] A storage library system can provide high-capacity storage of items (including, but not limited to, physical media items). A storage library system includes a plurality of slots for holding items and at least one robotic means for accessing the items. For example, a storage library system includes a plurality of columns, each column having dozens or hundreds of vertically stacked slots. For example, one or more robots may be provided that can move between the slots to retrieve an item from a slot, place an item in a slot, or move an item 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 generally 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 generally 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, a storage library system is provided 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 leader, grabber, or other actuator) for interacting with items in the slots, at least two foot devices, and a moving mechanism. Each foot device comprises its own 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 moving mechanism is constructed and arranged to move the robot from a first position in which one or more of the foot devices are in contact with a second rail of the rails, with one or more of the foot devices engaged with a first rail of the rails, to a second position in which one or more of the foot devices are in contact 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., the first location of the storage library system). At the second location, the robot can access a second set of one or more slots (i.e., the second location of the storage library system). The second set of slots includes at least one slot that was inaccessible to the robot at the first location. Therefore, moving the robot between locations allows the robot to access more slots.
[0006] To enable the robot to determine its location within the storage library system, there may be at least one localization feature (e.g., an RFID tag, or an optical, magnetic, or capacity mark). Moving the robot from a first position to a second position may include one or more of the following: rotating the robot out of the plane of the rails around a second foot, rotating the robot in the plane of the rails around a second foot, and translating the robot in the plane of the rails. The storage library system may comprise multiple similar robots or a "group" of similar robots.
[0007] This summary of the invention is provided in a simplified form to introduce some of the concepts further described below in embodiments for carrying out the invention. This summary of the invention is not intended to identify the main 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 any implementation that solves any or all of the defects described herein.
[0008] To aid in understanding this disclosure and to illustrate how embodiments may be carried out, references are made to the accompanying drawings as examples. [Brief explanation of the drawing]
[0009] [Figure 1] This figure schematically illustrates a storage library system as described in this specification. [Figure 2] This figure schematically illustrates a robot as described in this specification. [Figure 3] This flowchart illustrates the types of movement that can be performed by robots. [Figure 4] This diagram schematically illustrates examples of mobility actions that can be performed by robots. [Figure 5] This diagram schematically illustrates an exemplary storage library system with multiple robots. [Figure 6]This diagram schematically illustrates the exemplary passage motion of two robots. [Figure 7] This diagram schematically illustrates another example of a movement action that can be performed by a robot. [Figure 8] This diagram schematically illustrates another example of a movement action that can be performed by a robot. [Figure 9] This diagram schematically illustrates another example of a movement action that can be performed by a robot. [Figure 10a] This diagram schematically illustrates an example storage library system configuration. [Figure 10b] This is a schematic diagram illustrating an exemplary storage library system device. [Figure 11] This diagram shows an example arrangement of slots in a storage library system. [Figure 12] This diagram shows an example arrangement of slots in a storage library system. [Figure 13] This is a schematic diagram illustrating an example of Gray code printed on one side of a rail. [Figure 14] This is a schematic diagram illustrating a specific example of a foot device. [Figure 15a] This diagram schematically illustrates a specific example of a gripping mechanism in the open position. [Figure 15b] This diagram schematically shows a specific example of a gripping mechanism in the closed position. [Figure 16] This is a schematic diagram illustrating a specific example of a mobility mechanism. [Modes for carrying out the invention]
[0010] This disclosure relates to a storage library system (e.g., a data storage library system) having multiple rails on which robots can travel. Each robot may 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 robots are equipped with hardware that enables the robots themselves to move between different rails and thereby access more locations within the storage library system. Without performing a “complete” movement between different rails, the same hardware still enables the robots to move toward at least one rail (e.g., a robot may move aside to allow another robot to pass). The examples described herein offer one or more of the following advantages:
[0011] Higher Availability & Minimum Failure Impact Area - Robots are not limited to a single rail pair. Any failure of a robot or rail pair will not result in failure of the remaining robots on the rail, and they 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 examples, robots can be autonomous, which means they can react more efficiently to a changing environment around them, adding another layer of safety. On-board processing of sensors improves reliability and enables larger groups by avoiding the need to stream sensor data from the robot to the controller via high-bandwidth communication channels.
[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 for robot passage. How they are connected to each other is unrestricted (different arrangements are more suitable in different situations) because the robot can move between rails. The modular approach provides the ability to scale the system based on adaptability and 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 scale up independently of storage by adding as many more robots as needed as the workload increases.
[0014] Small, Lightweight & Agile Robot Design - By moving along a single axis rather than supporting multiple axes, the robot can be made smaller, lighter, require fewer dedicated actuators and mechanical structures, and operate using less power.
[0015] Service Flexibility - The fact that a robot can move between different rails during normal operation means that any robot can access any media or any read / write drive within the library. This facilitates load balancing according to workload demands. This feature also enables additional routing options and improves access to media in situations where there is increased overcrowding (conventional tape library robots have only one available route between any item of media and drive, i.e., through only one of a few robots. Bottleneck).
[0016] By separating the functions of high-performance mounting / dismounting from collection / delivery, media can be prepared at locations adjacent to the drives (where robot overcrowding can be an issue), enabling faster media replacement. This maximizes the utilization of the drives and improves their efficiency. The separation of functions also allows for a design specialized for those tasks, enabling high performance and high reliability. FIG. 1 schematically shows a storage library system 100 according to an example described herein. The storage library system 100 includes a plurality of slots 120 for holding items, at least one robot 200 (also referred to as a "shuttle"), and a plurality of 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 can cooperate with each other in a distributed manner.
[0017] During operation, the robot 200 moves around the storage library system 100 using the rails 110 to access items stored in the slots 120. Each of the rails 110 may have a substantially identical structure, allowing the robot 200 to travel on any one or more of the rails 110 at a given time. The rails 110 may be parallel rails (equidistant pairs).
[0018] It should be understood that the exact arrangement and number of the slots 120 and rails 110 can vary. In this example, the slots 120 are arranged in horizontal rows 121, with horizontal rails 110 positioned between each row 121. Specifically, the first row 121a of the slots 120 is located between the first rail 110a and the second rail 110b, and the second row 121b of the 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 rail 110 lies in the xy-plane, with the x-axis parallel to rail 110 and the y-axis perpendicular to rail 110. The z-axis, which can be seen in later figures, extends away from the plane of rail 110 (outside the page in Figure 1). The side of slot 120 in which robot 200 travels can be referred to as the "front".
[0020] When at least some of the items held in slot 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 Figure 1.
[0021] The robot 200 may move a given physical storage medium to the write drive 150, where it can be written. Specifically, when a particular media item is written using the write drive 150, the robot 200 may move the media item from the write drive 150 to the slot 120 for storage.
[0022] The robot 200 can move a given physical storage medium to the read drive 160, where the physical storage medium can be read. Specifically, the robot 200 can move a particular media item between slot 120 and the read drive 160, making it possible to read the data written to that media item.
[0023] In the example, there may be multiple write drives 150 (e.g., one for each column 121) and / or multiple read drives 160 (e.g., one for each column 121). For performance reasons, it may be preferable to position the read drives 160 closer to the slots 120. In the example, since writing to media may have less stringent latency requirements, it may be acceptable to have write drives 150 located further from the slots 120 (e.g., further from the storage system 100) than the read drives 160. In other examples, there may be different numbers of write drives 150 and read drives 160; for example, there may be read drives 160 in all columns 121, but only one or two write drives 150 (e.g., located in the lower column 121). An example is shown in Figure 11, which will be discussed later below.
[0024] A write drive interface 151 may be included, allowing the robot 200 to interface with the write drive 150. A read drive interface 161 may be included, allowing the robot 200 to interface with the read drive 160. For example, interfaces 151 and 161 may function as staging areas for media to be read, i.e., the robot 200 can "download" physical storage media to interfaces 151 and 161 to be added to a queue and later written / read. This means the robot 200 can return to slot 120 and continue working.
[0025] In the example in Figure 1, the write drive 150 and the read drive 160 are separate units, but it should be understood that a single drive may be provided to perform both write and read operations. In the example, one or more of the write drive 150 and the read drive 160, or a single drive to perform both write and read operations, may be included in the robot 200 itself. For example, the end effector 240 of the robot 200 itself may have a write drive and / or a read drive. In such an example, some or all of the migrations described above are unnecessary. For example, the robot 200 may have an "internal" write drive 150, meaning that the robot 200 itself can write to a given physical storage medium and does not need to migrate it to an external write drive 150 (however, if the robot 200 also does not include an internal read drive 160, the robot 200 may still need to migrate it to an external read drive 160). Similarly, the robot 200 may have an "internal" read drive 160, meaning that the robot 200 itself can read from a given physical storage medium and does not need to migrate it to an external read drive 160 (however, if the robot 200 also does not include an internal write drive 150, the robot 200 may still need to migrate it to an external write drive 150). A robot 200 having both an internal write drive 150 and an internal read drive 160 (or a single read-write drive) may not need to migrate physical storage media at all (however, this is not ruled out, for example, as the robot 200 may still migrate physical storage media for other purposes such as maintenance).
[0026] A more detailed example of robot 200 is shown in Figure 2. Robot 200 comprises a first foot device 210, a second foot device 220, a moving mechanism 230, and an end effector 240.
[0027] In this example, the robot 200 also includes a controller 250, a communication interface 260, a power supply 270, and a sensing system 280. These are optional features. As mentioned above, the robot 200 may also include one or more of the write drive 150 and the read drive 160 (or a single drive that provides both write and read functionality).
[0028] The controller 250 controls the first foot device 210, the second foot device 220, the movement mechanism 230, and the end effector 240. The controller 250 may be implemented, for example, using one or more processors. In the example, the functionality of the central control system 130 shown in Figure 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 own internal controller 250.
[0029] The communication interface 260 allows the robot 200 to receive data from and / or transmit data via a communication link (illustrated by a dotted arrow in Figure 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, but this does not preclude the communication link from being a wired communication link. A wireless communication link is particularly advantageous when the robot 200 has an internal power supply 270, because the robot 200 may not need to be connected to the control system 130 and can move freely throughout the library. In some examples, the robot 200 may use, for example, low-friction components, regenerative braking to conserve power.
[0030] Power supply 270 is for supplying power to the robot 200. In the first example, power supply 270 may be an internal power source of the robot 200, such as an onboard 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 does not need its own power supply 270 and instead may receive power from an external power source via a wired or wireless connection. The advantages of this are that the robot 200 does not require an onboard power supply 270 and may be smaller and / or lighter, as well as the robot 200 does not require charging. In certain examples, the robot 200 may receive power via rail 110.
[0031] The sensing system 280 enables the robot 200 to determine its location within the storage library system 100. An example of location determination will be described later. The 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 and 220 is substantially equal to the distance between adjacent pairs of rails 110. Therefore, when the first foot device 210 is engaged with one of the rails 110, the second foot device 220 may engage with an adjacent rail 110. In Figure 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 positioned to physically engage with the rail 110 (examples are shown in Figures 14, 15a, and 15b, which are described below). In other examples, the rail 110 may be magnetic (i.e., ferromagnetic), and one of the gripping mechanisms 211, 221 may have at least one electromagnet for selective engagement with the rail 110 by electromagnetic force. In further examples, one or more of the gripping mechanisms 211, 221 may have both mechanical and electromechanical means for gripping the rail 110. Still in further examples, another method is to use air bearings and to eject compressed air through the bearings for low-friction cushioning. Mechanical grippers may still be used to wrap around the rail, with pneumatics providing the bearing solution. It should also be noted 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 need 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 main body of the robot 200 (rather than one or more of the foot devices). For example, the drive mechanism may be a thruster mounted on the main body that pushes the robot 200 along the rail.
[0036] In alternative or additional examples, at least one of the first foot device 210 and the second foot device 220 includes a drive mechanism for propelling the robot 200 along the length of the rail 110 with 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 one example, the drive mechanism may include a wheel having a high-friction surface for interacting with the rail 110. In another example, the drive mechanism may include an arc gear (either linear or helical), and the rail 110 may include a linear gear into which the arc gear of the drive mechanism can engage.
[0038] In other examples, a single mechanism may provide a gripping mechanism 211 and a drive mechanism within one or more foot devices. For example, the rail 110 may be constructed of alternating permanent magnet poles, and the single mechanism may comprise multiple electromagnets that can be selectively controlled to engage the foot device with the rail 110 and to propel the foot device along the rail 110 (similar to a stepping motor). The advantage of this is that the gripper and rail drive (drive mechanism) are the same part, which can 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 selectively controlled electromagnets.
[0039] The end effector 240 allows the robot 200 to interact with items in the slot 120. The end effector 240 may comprise one or more of the following: 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. It may be preferable, but is not required, to activate the end effector 240 only when both foot devices 210, 220 are engaged with the rail 110 in order to give the robot 200 a more stable base for interacting with items in the slot 120.
[0040] A particular type of end effector 240 depends on the type of item held within the slot 120. Examples of such items include physical storage media (e.g., made from laser-written silica glass, tape, or other optical media) or non-storage computing resources such as optical computing devices.
[0041] Another example of an end effector 240 is a cleaning or maintenance device. For example, a robot 200 having such a cleaning device may move around the storage library system 100 to clean or separately maintain items in the slots 120. Another example of an end effector 240 is a camera. The robot 200 may transmit photographs of damage to items in the slots 120 and / or to parts of the storage library system 100 to another device (e.g., a central control system 130) via the communication interface 260.
[0042] Robot 200 may have two or more end effectors of the same or different types.
[0043] In some examples, the storage library system 100 comprises 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 such overlapping portions of the storage library system 100. For example, one robot 200 may be a maintenance robot with maintenance equipment, and another robot 200 may be a read / write robot that accesses items in slots 120.
[0044] The movement mechanism 230 enables the robot 200 to perform movement actions (also called rail switching actions) between the rails 110. Various specific types of movement actions are possible, depending on the specific structure of the robot 200, the number of foot devices, the arrangement of the rails 110, etc. Generally speaking, the movement mechanism 230 is constructed and arranged to move the robot 200 from a first position in which one or more of the foot devices are in contact with a second rail of the rails, with one or more of the first foot devices engaged with a first rail of the rails, to a second position in which one or more of the foot devices are in contact with a third rail of the rails. In other words, the robot 200 can keep one or more of the foot devices engaged with one of the rails and use one or more of those foot devices as anchors for moving between the rails 110. The controller 250 can control the robot 200 to perform movement actions.
[0045] Figure 3 is a flowchart illustrating an example of a movement. Figure 4 shows a series of images of this exemplary movement performed by the robot 200. In this example, the robot 200 has two foot devices (as shown in the example in 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 movement then proceeds as follows:
[0046] In S301, the controller 250 controls the first gripping mechanism 211 to disengage 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, with the second foot device 220 engaged with the second rail 110b, so that the first foot device 210 moves from a state where it is in contact with the first rail 110a to a state where it is in contact with the third rail 110c. In this example, moving the robot 200 in S302 includes rotating the robot 200 out of the plane of the rails 110 (the xy-plane) around the second foot device 220. 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 rails 110) is used as an anchor for moving the robot 200. In this example, the movement S302 also involves rotating the first foot device 210 (i.e., the ungraspened side of the robot 200) another 180 degrees in the same direction so that it is in the correct way up position at the end of the rotation. Both of these rotational actions can be provided by the same movement mechanism 230. An exemplary movement mechanism 230 for performing both of these actions is described below with reference to Figure 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. This completes the movement.
[0049] The movement shown in Figure 4 is merely an example; please understand that it is possible to move the robot 200 from the first position to the second position using other movements.
[0050] Figure 7 shows an example of a movement performed by a robot 200 having four foot devices 220a, 220b, 220c, and 220d. In this example, the robot 200 has a roughly rectangular cross-section (in the yz plane). The foot devices 220a, 220b, 220c, and 220d are positioned on the x-direction edge of the body of the robot 200. Moving the robot 200, as in the examples of Figures 3 and 4, involves rotating the robot 200 out of the plane of rail 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) contact with the rail (in this example, the third rail 110c) is not the same foot device 220b that was engaged with and disengaged from rail 110a at the start of the movement. As in the previous example, the foot device 220d may be rotated in the same direction to properly align with the new rail 110c for engagement. Similar structures with cross-sections of different shapes may be used for the robot 200. Particularly preferred shapes are regular polygons, including triangles, quadrilaterals (as shown in the example in Figure 7), pentagons, hexagons, and so on.
[0051] Figure 8 shows an example of a movement act performed by a robot 200 having two foot devices 210, 220. In this example, the movement mechanism 230 rotates the robot 200 in the plane (xy plane) of the rail 110 around the engaged foot device (the second foot device 220 in this example). Specifically, the robot 200 is substantially rotated 180 degrees in the xy plane around the second foot device 220. In this example, this movement also involves rotating the first foot device 210 (i.e., the ungraspened side of the robot 200) another 180 degrees in the same direction so that it is in the correct up-and-down orientation at the end of the rotational movement. Both of these rotational acts can be provided by the same movement mechanism 230. In other examples, the first foot device 210 is constructed so that it can engage with the rail in either orientation, in which case it does not need to rotate itself before engaging with a new rail.
[0052] In some examples, the robot 200 may perform locomotion in two or more stages, for example, using one or more different foot devices as “anchors” for each stage. Figure 9 shows such an example. In this example, the robot 200 has four foot devices: two first foot devices 210a, 210b and two second foot devices 220a, 220b. Each foot device is located at the end of a “leg” in this example. In this example, the locomotion mechanism 230 translates the robot 200 in the plane of the rail 110 (xy plane) when performing locomotion (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 contact with the first rail 110a and the (two) second foot devices 220a, 220b are engaged with the second rail 110b. The moving 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 moving 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 the example, one or more of the “legs” may have “knees”. The ability of the robots 200 to perform movement actions means that each robot 200 itself can move between rails 110 and access slots 120 in different rows 121. This has many 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] Robot 200 itself does not require cooperation with other robots; it can retrieve items from or deliver items to any slot 120 in any column 121.
[0056] The number of potential routes that robot 200 can utilize from its current position to the target slot 120 is greatly increased. This means that robots 200 can avoid each other (see example in Figure 6). It also means that even if, for example, there is a problem or obstruction in one part of rail 110, i.e., robot 200 cannot pass through that particular part, robot 200 can still navigate to the target slot 120. It also means that robot 200 can potentially identify and utilize the optimal route to the target location within the library system 100.
[0057] Robot 200 can be easily removed for maintenance.
[0058] A library system 100 may contain multiple identical robots 200 or "groups" of identical robots 200. An example is shown in Figure 5, where six robots 200 exist within a library system 100 having eight slots 121 in rows 121 and nine rails 110 (using the same alternating rail-row arrangement as in Figures 1 and 3). In Figure 5, a single "panel" 101 of slots 120 and rails 110 is shown. In other examples described below, more panels 101 may exist.
[0059] In some examples, the drive mechanism 212, 222 of one of the foot devices 210, 220 may be activated only when the foot devices 210, 220 are engaged with the rail 110. That is, the robot 200 can move along the rail 110 with a single foot device 210, 220 engaged. This allows two robots 200 to pass each other using only minimal space. An example of such passing behavior is illustrated in Figure 6.
[0060] In the example in Figure 6, there are two robots 200a and 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 device 210a is engaged with the first rail 110a and its second foot device 220a is engaged with the second rail 110b. The second robot 200b has its second foot device 220b engaged with the third rail 110c, but its 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 if only three rails 110 exist, the first robot 200a and the second robot 200b can pass each other.
[0061] Therefore, further advantages are realized when multiple robots 200 are present within the storage library system 100. For example: The control system 130 can dynamically assign robot services to where they are needed during operation. This means that the control system 130 can balance the service load and be robust against failures.
[0062] • This 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 can reduce library costs and simplify storage.
[0064] • In further examples, the storage library system 100 may comprise multiple panels 101. An example is shown in Figure 10a, where the storage library system 100 comprises a series of four panels 101. Each panel 101 may have a structure as shown in the example in Figure 5, which was described earlier.
[0065] In this case, the robot 200 may also use the moving mechanism 230 to move between the first panel 101 and the 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 in which the first foot device 210 is in contact with a rail on the second panel 101 adjacent to the first panel, and then engaged with that rail. The moving mechanism 230 may then move the robot 200 again to bring the second foot device 220 into contact with another rail on the second panel 101.
[0066] A similar arrangement can be achieved by a single panel 101 having a left-right zigzag ("serpentine") plan, as shown in Figure 10b. This effectively extends the horizontal dimension, and the robot 200 uses its primary drive system to move along it (i.e., along the rail 110 in the x-direction).
[0067] The exemplary arrangement in Figure 10b also allows the robot to move "straggling" across the panel sections using the movement mechanism 230 (moving between different panels 101, in the same manner as described above), even if it is unnecessary. This type of movement provides an alternative and potentially faster route to adjacent panel sections (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] Figure 11 shows an exemplary arrangement in which one or more drives 500 are located separately from 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 panel 101 to the drive 500 to allow the robot 200 to access the drive 500. Thus, another advantage of the act of movement is realized, as all robots 200 can reach the drive 500 without requiring all rails 110 to be connected to the drive 500.
[0069] Figure 12 shows an exemplary arrangement in which at least one non-panel rail 111 is provided. These non-panel rails 111 are rails having a similar structure to the (panel-) rails 110, but their location is such that the robot 200 cannot access items in slot 120 when engaged with one of the non-panel rails 111. In this example, the non-panel rails 111 are located above panel 101. The robot 200 can use these non-panel rails 111 to move between panels 101 and / or access other parts of the storage library system 100.
[0070] The storage library system 100 may include at least one localization feature to enable the robot 200 to determine its location within the storage library system 100. The robot 200's sensing system 280 may be used to detect at least one localization feature, thereby enabling the robot 200 to determine its location within the storage library system 100.
[0071] A first example of a location-identifying feature is an RFID tag located on one of the rails. A second example of a location-identifying feature is an optical linear code (e.g., a barcode or Gray code). An example of a Gray code is shown in Figure 13. In some examples, each of the rails 110 has its own location-identifying feature.
[0072] In Figure 13, the Gray code is printed on one side of the rail 110 (the top in this example). The Gray code can be an optical Gray code, a magnetic Gray code, or a capacitive Gray code. The sensing system 280 therefore includes optical, magnetic, or capacitive sensors. By reading the Gray code at the robot 200's current position, the robot 200 can uniquely determine its location.
[0073] In the example, the robot 200 includes an internal location module configured to determine the robot 200's location within the media storage library system 200. This is particularly advantageous considering, as mentioned, that the robot 200 moves freely within the storage library system 100.
[0074] A specific exemplary structure of robot 200 will be described below with reference to Figures 14 to 16.
[0075] Figure 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 is therefore not 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 in this particular example is shown in 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 comprises a first frame 401a and a second frame 401b, which pivot around their respective first and second pivot axes 407a and 407b. A gear mechanism 405 is provided to rotate the first and second frames 401a and 401b in opposite directions. Each frame has one or more wheels for engaging with the rail 110. In this example, the first frame 401a has two wheels 402a, 403a, and the second frame 401b also has two wheels 402b, 403b, but other arrangements are possible. Additional wheels may be provided, such as wheels running in front of the rail 110 to provide additional stability (not shown in Figure 14).
[0078] A motor 406 is provided that is operable to cause a gear mechanism 405 to move a first frame 401a and a second frame 401b between a closed and an open state so that the wheel grips and releases the side of the rail 110. The gripping mechanism 221 is shown in the closed state in Figure 15a and in the open state in Figure 15b.
[0079] The foot device 210 shown in Figure 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 411a and a second arc gear 411b. The second arc gear 411b is driven by a motor 413 via a coupling link 412 (two orthogonal bevel gears in this example). The second arc gear 411b engages with the first arc gear 411a, and therefore, during operation, the first and second arc gears rotate in opposite directions. In the arrangement shown in Figure 14, the first arc gear 411a engages with the (front) teeth 111 of the rail 110. Generally, the first arc gear 411a engages with the teeth 111 of any rail 110 with which the gripping mechanism 221 is currently engaged.
[0080] Figure 16 shows a moving mechanism 230 of this particular example. The moving mechanism comprises two rack and pinion devices, each comprising pinions 421a, 421b (bevel gears) configured to engage with racks 422a, 422b having a curved profile around the x-axis. The pinions 421a, 421b are driveable by a moving motor 423. For example, when the first pinion 421a is driven, the first pinion 421a rotates to move along the length of the curved rack 422a, thereby acting to rotate the first foot device 210 relative to the body of the robot 200. When the first foot device 210 is engaged with the rail, this moves the robot 200 in the manner described above in relation to Figure 4. When the first foot device 210 is not engaged with the rail, this 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 illustrative examples of embodiments of the present invention. Further examples are provided below.
[0082] The term “control module” may generally be used to refer to a module for controlling the robot 200 or the robot of the storage library system 100. Such a control module may be implemented in the controller 250 of the robot 200, in the central control system 130, or using any combination thereof, as previously described. The control module may be configured to control the robot 200 to perform a movement by controlling one or more gripping mechanisms of the foot devices to disengage one or more foot devices from a second rail, controlling the movement mechanism to move the robot from a first position to a second position while one or more of the first foot devices are engaged with a first rail, and controlling one or more gripping mechanisms of the foot devices to engage one or more of the foot devices with a third rail.
[0083] The foot device that engages with a new rail may be the same as the foot device that is detached from the previous rail, or it may not be. Therefore, the moving mechanism may be constructed and configured to move the robot from a first position in which the second foot device is in contact with the second rail of the rails, while the first foot device is engaged with the first rail of the rails, to a second position in which the second foot device is in contact with the third rail of the rails.
[0084] In the example, the storage library system includes at least one localization feature that enables the robot to determine its location within the storage library system. Example localization features include an RFID tag located on at least one of the rails, and an optical mark located on at least one of the rails. The robot may include a sensing system for detecting localization features to determine its location within the storage library system. Examples of optical marks include barcodes, QR codes, and optical, magnetic, or capacitive linear codes (e.g., Graycode).
[0085] Moving the robot from a first position to a second position (by means of a moving mechanism) may include one or more of the following: rotating the robot out of the plane of the rail around one or more first foot devices; rotating the robot within the plane of the rail around one or more first foot devices; and translating the robot within the plane of the rail.
[0086] In some examples, the end effectors may be positioned to interact with the item on two or more sides of the robot. This is particularly advantageous in examples where the movement action performed by the robot 200 involves the orientation of the robot 200 changing relative to the slot 120. This can 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 act toward different sides of the robot 200 (e.g., one for each "face"). For example, in the example of Figure 4, it is preferable that the robot 200 "flipping" so that the end effectors can interact with the item on both sides of the robot 200. In another example, in the example of Figure 7, it is preferable that the robot 200 rotates 90 degrees with each movement action, presenting different sides of the robot 200 to the slot 120 so that the end effectors can interact with the item on all four sides of the robot 200.
[0087] The end effector may be, for example, at least one of a grabber, reader, writer, camera, maintenance device, and cleaning device. The robot may have two or more end effectors of the same or different types. It may be preferable, but not strictly necessary, to activate the end effector only when the robot 200 is engaged with two or more rails. That is, it is not ruled out that the robot 200 may be able to access the slot 120 even when it is engaged with only a single rail (for example, 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 have at least one drive for reading and / or writing to physical storage media. The drives may be separate from the robot, or the robot may have one or more drives.
[0089] There may be two or more robots in the storage library system (i.e., two, three, four, five, etc.). In the example, there may be dozens or even hundreds of robots. All robots may be substantially identical or not; for example, some of the robots may have different types of end effectors.
[0090] In one example, the storage library system includes a central control system for controlling the robots. In another example, the robots may communicate directly with each other to cooperate.
[0091] In the example, the drive mechanism may be located in one of the foot devices. In such a case, the drive mechanism may be activatable while only the foot device of the drive mechanism is engaged with the rail.
[0092] In the example, the slot is located in at least two different planes, and the third rail on which the locomotion mechanism moves the first foot device is not located in the same plane as the first and second rails. This includes an example where the slot is located in at least two panels that occupy different planes (e.g., Figure 10a). The robot may be able to move from one panel to another using the locomotion mechanism, for example, by engaging with rails on adjacent panels or by traversing one or more intermediate rails. This also includes an example where the slot is located in a single “serpentine” panel (e.g., Figure 10b), and the robot can move from a first portion of the panel that occupies a first plane to a second portion of the panel that occupies a second plane different from the first plane.
[0093] Described herein is a method for controlling a robot in a storage library system having a plurality of slots for storing items, a plurality of rails, the robot comprising 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 one or more of the first foot devices from a first rail, controlling a moving mechanism to move the robot from a first position in which one or more of the foot devices are in contact with a second rail of the rails, with one or more of the first foot devices engaged with a first rail of the rails, to a second position in which one or more of the foot devices are in contact with a third rail of the rails, and controlling a gripping mechanism to engage one or more of the foot devices with a third rail of the rails.
[0094] Generally, a robot is provided for use in a storage library system having multiple slots and multiple rails for storing items. The robot comprises an end effector for interacting with items in the slots, at least two foot devices, each having a 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 movement mechanism constructed and positioned to move the robot from a first position in which one or more of the foot devices are in contact with a second rail of the rails, with one or more of the first foot devices engaged with a first rail of the rails, to a second position in which one or more of the foot devices are in contact 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 by multiple chips or integrated circuits, and may optionally be provided as a chipset, application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), digital signal processor (DSP), graphics processing unit (GPU), etc. The chip(s) may comprise circuits (and possibly firmware) for embodying at least one or more of the following: data processor(s), digital signal processor(s), baseband circuit(s), and radio frequency circuit(s), which can be configured 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-temporary) memory, and may be executable by a processor, or by hardware, or by a combination of substantially stored software and hardware (and substantially stored firmware).
[0096] While at least some aspects of the embodiments described herein with reference to the drawings involve computer processes implemented within a processing system or processor, the present invention also extends to computer programs, in particular computer programs on or within a carrier, adapted for practicing the present invention. A program may be non-temporary source code, object code, code intermediate source, and object code in a form such as a partially compiled form, or any other non-temporary form suitable for use in the implementation of the process according to this specification. A carrier may be any entity or device capable of holding a program. For example, a carrier may include storage media such as a solid-state drive (SSD) or other semiconductor-based RAM; ROM, e.g., CD-ROM or semiconductor ROM; magnetic recording media, e.g., floppy disk or hard disk; and general optical memory devices.
[0097] The examples described herein are to be understood as illustrative examples of embodiments of the present invention. Further embodiments and examples can be imagined. Any feature described in relation to any one example or embodiment may be used alone or in combination with other features. In addition, any feature described in relation to any one example or embodiment may also be used in combination with one or more features of any other example or embodiment, or any combination of any other example or embodiment. Furthermore, equivalents and modifications not described herein may also be used within the scope of the present invention as defined in the claims.
Claims
1. A storage library system, Multiple slots for storing items, Multiple rails, A robot for interacting with the aforementioned item Includes, The aforementioned robot, 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 and Includes, Each of the at least two foot devices has a gripping mechanism for releasably engaging the foot device with one of the rails, The robot includes a moving 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 contact with a second rail of the rail, with one or more of the first foot devices of the at least two foot devices engaged with a first rail of the rail, to a second position in which one or more of the at least two foot devices are in contact with a third rail of the rail. Storage library system.
2. A storage library system according to claim 1, comprising at least one location-determining feature unit for enabling the robot to determine its location within the storage library system.
3. A storage library system according to claim 2, wherein the at least one location-identifying feature portion includes one or more of the following: an RFID tag located on at least one of the rails and readable by the robot's sensing system; and an optical mark located on at least one of the rails and readable by the robot's sensing system.
4. A storage library system according to claim 1, wherein the moving mechanism is constructed and arranged to move the robot from a first position to a second position by rotating the robot around one or more first foot devices out of the plane of the rail.
5. A storage library system according to claim 1, wherein the moving mechanism is constructed and arranged to move the robot from a first position to a second position by rotating the robot in the plane of the rail around one or more first foot devices.
6. A storage library system according to claim 1, wherein the moving mechanism is constructed and arranged to move the robot from a first position to a second position by translating the robot in the plane of the rail.
7. A storage library system according to claim 1, wherein each leg device of the robot is located at the end of each leg device of the robot, and the moving mechanism is constructed and arranged to move the robot from a first position to a second position by moving at least one leg device.
8. A storage library system according to claim 1, wherein at least a portion of the items stored in the storage library system are physical storage media, and the storage library system includes at least one drive for reading the physical storage media and / or writing to the physical storage media.
9. A storage library system according to claim 1, wherein the end effector is positioned to interact with items on either side of the robot.
10. A storage library system according to 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. A storage library system according to claim 1, comprising two or more robots.
12. A storage library system according to 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 the rail.
13. A storage library system according to claim 1, wherein the slots are arranged in at least two different planes, and the third rail, on which the moving mechanism moves one or more of the first foot devices to the third rail, is not located in the same plane as the first rail and the second rail.
14. A storage library system according to claim 1, Controlling the gripping mechanism of one or more of the at least two foot devices to disengage the one or more foot devices from the second rail, The movement mechanism is controlled to move the robot from a first position to a second position while one or more of the first foot devices among the at least two foot devices are engaged with the first rail among the rails, Control one or more of the gripping mechanisms of the at least two foot devices to engage one or more of the at least two foot devices with the third rail. A storage library system including a control module configured to control the robot to perform a movement action.
15. A computer program for controlling a robot of a storage library system including multiple slots for storing items and multiple rails, wherein the robot includes 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, and the computer program is executed by one or more processing units. Controlling the gripping mechanism to detach one or more of the first of the at least two foot devices from the first rail, Controlling the movement mechanism to move the robot from a first position in which one or more of the first of the at least two foot devices are in contact with the first of the rails, while one or more of the second of the at least two foot devices are engaged with the second of the rails, to a second position in which one or more of the at least two foot devices are in contact with the third of the rails. Controlling the gripping mechanism to engage 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.