Patent ID: 12252382

It will be understood that elements in the drawings are illustrated for simplicity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the drawings may be exaggerated relative to other elements to help to improve understanding of embodiments of the present disclosure.

DETAILED DESCRIPTION

Specific examples according to this disclosure are described below. It should be understood, however, that various modifications, equivalents, and alternatives are also within the scope of the present disclosure.

As noted above, some existing robotic unloading solutions are limited in throughput. For example, systems that rely on holding or attaching to each individual item to be unloaded (e.g., using an arm with a suction attachment) may be limited by (i) the need to precisely detect the presence and position of each item to permit accurate handling, and/or (ii) the difficulty in holding or attaching to various types of goods, which may have widely-varying form factors. For example, the same robot may need to grasp conventional boxes, tires, and bags of sand or rice during a single unloading operation. The systems, structures, mechanisms, and processes described herein can be used to unload and transfer a variety of different items, including boxes, bags, pallets, single packaged items, etc. “Item,” “goods,” “box,” and other examples of transferred and/or unloaded items described herein should be understood as non-limiting, generic terms to encompass any item that may be handled by the robotic systems described herein.

Some implementations according to this disclosure provide robots and associated methods based on an alternative goods-handling process. As described herein, robots can insert thin-tipped wedges underneath goods to scoop the goods and seamlessly transfer the goods onto a robot-mounted conveyer belt. In some cases, a single scooping operation may result in multiple stacked goods being transferred to the conveyer belt at once, greatly improving throughput compared to robots that rely on individual handling of each item. In some implementations, a blocking assembly delimits movement of goods during transfer, reducing or preventing damage to goods that may fall during the transfer process. In some implementations, a series of conveyor belts working synchronously along with jam-detecting sensors can be used. In such arrangements, the plurality of conveyor belts can be controlled such that goods are transported without blockage/damage based on feedback from sensors. In some implementations, a precisely-controlled movement routine is used to compensate for possible floor-surface irregularities and item fragility.

FIG.1illustrates an example of a robotic system100. The robotic system100includes a mobile base assembly110and a lifting assembly130coupled to a front portion of the mobile base assembly110. The lifting assembly130is movable with respect to the mobile base assembly110. The mobile base assembly110may be configured to move the robotic system100with respect to a surface, for example, the ground surface, on which the robotic system100is located. The mobile base assembly110may enable the robotic system100to be placed in proximity to an object or environment associated with a task to be performed by the robotic system100. For example, the mobile base assembly110may cause the robotic system100to move across a container, or across a warehouse or a dockyard to access an ocean container or a truck containing goods to be unloaded.

In some implementations, as shown inFIG.1, the mobile base assembly110includes drive wheels, for example, a first drive wheel112and a second drive wheel114. The first drive wheel112may be coupled to a first drive motor116and the second drive wheel114may be coupled to a second drive motor118. The first drive motor116and the second drive motor118may, respectively, drive the first drive wheel112and the second drive wheel114in order to move the mobile base assembly110in any direction, for example a forward direction, a backward direction, as well as to turn the mobile base assembly110in a clockwise or counterclockwise motion parallel to the surface on which the mobile base assembly110is located, independent of an orientation of the robotic system100. In some implementations, the first drive motor116and the second drive motor118operate in unison. In some implementations, the first drive motor116and the second drive motor118can operate independently of one another. In some implementations, the first drive motor116and/or the second drive motor118are coupled, respectively, to the first drive wheel112and/or the second drive wheel114via a differential transmission.

In some implementations, the first drive wheel112and the second drive wheel114of the mobile base assembly110include a holonomic motion mechanism having one or more holonomic wheels, for example, Mecanum or Omni wheels, each of which is adapted to be driven by an independently-controlled motor, for example, a swerve motor. Such wheels can provide additional degrees of freedom for robot movement, reducing movement constraints. For example, the holonomic motion mechanism can allow the robotic system100to travel easily in tight spaces and to move from one dock or truck-bed to another. In some implementations, the holonomic motion of the robotic system100is achieved via a swerve drive system. A regular cylindrical wheel is rotated along a first axis by a first motor, and the wheel is mounted on a swerve assembly in which a second motor revolves the wheel around a vertical axis passing through ground contact. The swerve action facilitates orienting the driving wheel in a desired orientation. For example, the robotic system100(e.g., the mobile base assembly110) can include four swerve assemblies having four drive wheels, four corresponding drive motors, and four swerve motors. In some implementations, a differential tank drive may be implemented, in which a belt track system is provided on either lateral side of the robotic system100. The belt track system facilitates moving the robotic system100forward, backward or rotating the robotic system about a vertical axis.

In some implementations, the mobile base assembly110is considered to be holonomic if the controllable degrees of freedom for movement are equal to the total degrees of freedom. Such a mobile base assembly110may translate in any direction while simultaneously rotating. This is different than most types of ground vehicles, such as car-like vehicles, tracked vehicles, or wheeled differential-steer (skid-steer) vehicles, which cannot translate in any direction while rotating at the same time. In some implementations, the mobile base assembly110is configured to be driven on a levelled surface. In some implementations, the mobile base assembly110is configured to be driven on an unlevelled surface.

In some implementations, the mobile base assembly110includes a battery and a computing device170mounted on a base platform. The battery may provide power to the computing device and any of the drive motors116,118and/or swerve motor and sensors of the robotic system100. In some implementations, the battery includes one or more batteries or one or more battery packs to allow better distribution of mass across the mobile base assembly110. In some implementations, the battery includes a sealed lead acid battery or a Lithium-ion battery or Lithium Iron Phosphate battery. The computing device170may include a processor, a memory, a communication interface, and one or more I/O interfaces. The memory can store computer-readable and executable instructions, which, when executed by the processor, cause the robotic system100to operate in an autonomous or semi-autonomous manner in regard to a particular task or in regard to sensor data received by the processor from one or more sensors of the robotic system100. The computing device170need not be included in the mobile base assembly110but, rather, can be arranged in various locations in and/or on the robotic system100. Further details on the computing device170are provided below.

The mobile base assembly110may include sensors including, but not limited to, a laser rangefinder, camera120, LIDAR122, inertial measurement unit (IMU), proximity sensor, limit switch, bumper sensor, infrared sensor, ultrasonic sensor, and/or a sonar sensor. A limit switch provides data indicating whether the switch is being pressed by an item. The laser rangefinder can spin to collect sensor data associated with a two-dimensional (2D) depth map of an environment, for example, the dockyard, warehouse, ocean container or truck, in which the robotic system100is operating. The design of the mobile base assembly110allows the laser rangefinder to collect sensor data over a wide field of view. LIDAR(s)122facilitate tracking side walls of the container to navigate the robotic system100inside a container or other enclosure. Camera(s)120aid in observing the flow and locations of goods and identifying any issues in unloading of the goods. The cameras120can detect locations of goods prior to interaction with the robotic system100and/or when being handled by the robotic system100, e.g., to determine a position of an item on a wedge block132or a conveyer belt142.

Referring toFIGS.1and2, the robotic system100further includes the lifting assembly130configured to move relative to the mobile base assembly110. The lifting assembly130may be coupled to the front portion of the mobile base assembly110. In some implementations, the lifting assembly130includes one or more wedge blocks132, each of which is connected to a front edge111of the mobile base assembly110. Each wedge block132may be pivotably connected to the front edge111of the mobile base assembly110, and the wedge block132may be pivotable along a hinge axis (X-X′), as shown inFIG.3. In some implementations, each wedge block132is pivotable independently of one another.

In some implementations, each wedge block132has a width (along the X-X′ axis) in a range from 5 mm to 50 mm, from 10 mm to 100 mm, from 10 mm to 50 mm, or from 75 mm to 125 mm. In some implementations, each wedge block132has a length (along the Y-Y′ axis) in a range from 150 mm to 250 mm. In some implementations, each wedge block132has a thickness (along the vertical axis Z-Z′) in a range from 30 mm to 70 mm. These values have been found to satisfy constraints associated with mounting the wedge blocks, ensure gradual lifting of items, and result in items being transferred efficiently to the conveyor assembly140. In some implementations, a narrower wedge block132(e.g., with a width less than or equal to 125 mm, 100 mm, 75 mm, 50 mm, or 25 mm) can provide improved effectiveness in handling/transferring items. In some implementations, a shorter wedge block (e.g., less than 250 mm, less than 200 mm, or less than 150 mm) can advantageously promote transfer of small items.

In addition to or instead of independent movement of the wedge blocks132(discussed in more detail below), in some implementations, the lifting assembly130(including the wedge blocks) is configured to move as a whole with respect to the mobile base assembly110. For example, an actuator139(represented schematically inFIG.2) can mechanically couple the lifting assembly130to the mobile base assembly110and can be controlled (e.g., by computing device170) to move the lifting assembly130laterally, vertically, and/or forward/backward with respect to the mobile base assembly110. In some implementations, the computing device170is configured to use the actuator139to lift the lifting assembly130to an elevated position, for example (i) when the robotic system100is ascending a ramp such as a dock ramp, to assist in unobstructed movement, and/or (ii) to align the lifting assembly130with a target elevation, such as the starting point of a trailer or an elevated at which items to be unloaded are located.

Referring toFIG.3, an example of a wedge block132of the lifting assembly130is illustrated. The wedge block132is configured to be pivotably coupled to the front edge111of the mobile base assembly110along the hinge axis (X-X′). In some implementations, each wedge block132is translatable in one or more directions. For example, one or more motors can be configured to translate the wedge blocks132laterally along the X-X′ axis (as a group and/or individually with respect to one another to adjust a spacing between adjacent wedge blocks132). As another example, one or more motors can be configured to translate the wedge blocks132vertically along a vertical axis Z-Z′ perpendicular to the X-X′ axis, as a group and/or individually. As another example, one or more motors can be configured to translate the wedge blocks132forward/backward along a forward/backward axis Y-Y′ perpendicular to the X-X′ and Z-Z′ axes. This forward/backward motion can be motion caused by the retracting mechanism136(e.g., such that the motors is a motor of the retracting mechanism136) or motion caused by another motor and actuator mechanism. Mechanism(s) that can cause movement of the wedge blocks132laterally, vertically, and/or forward/backward are illustrated schematically inFIG.2as actuators137, which can represent one actuator or multiple distinct actuators. These actuators137and the other actuators described herein can use any suitable mechanism and motion, e.g., a spring-loaded actuator, an electrical actuator, a pneumatic actuator, or a hydraulic actuator, to cause rotational and/or linear motion to effect the lateral, vertical, and/or forward/backward movements.

In some implementations, the geometric parameters of the wedge blocks132and the lifting assembly130are such that the lifting assembly130is configured to cover and/or extend across an entire width of a container from which goods are to be unloaded. For example, a width of the wedge block132, a gap between adjacent wedge blocks132, and a number of wedge blocks132in the lifting assembly130may result in the lifting assembly130extending across an entire width of the container. In some implementations, adjacent wedge blocks132are separated from one another by a distance in a range from 3 mm to 7 mm.

In some implementations, each wedge block132of the lifting assembly130is made of a high-strength metal (e.g., stainless steel) with hardened surfaces. In some implementations, an anti-friction coating may be provided at least on top and/or bottom faces of the wedge blocks132of the lifting assembly130. A top coating can permit the wedge block132to slide more easily against goods above the wedge block132, and a bottom coating can permit the wedge block132to slide more easily against floor surfaces. In some implementations, a front portion of the wedge block132or a complete wedge block132can be composed of Teflon or another low-friction soft material to reduce damage to goods and floor surfaces.

During an operation of the robotic system100(for example, when lifting a box or a pile of boxes to unload a container), at least a portion of the wedge blocks132are slid under an item or pile/stack of goods, and the wedge blocks132are actuated to lift the goods. The wedge blocks132are shaped as tapering wedges with thin front edges133that permit the front edges133to be slid into the very narrow spaces that, in almost all cases, are found between goods and an underlying floor surface. The front edges133can be fillets. In some implementations, the fillet radius is between 0.1 mm and 0.3 mm. In some implementations, the wedge blocks132have a taper angle in a range from 1.8° to 2.8°. These values have been found to provide effective lifting and transfer of items and to permit the wedge blocks132to reliably be inserted under items.

Once the front edge133is under a good, the wedge block132can be moved forward (e.g., by translation of the robotic system100using the mobile base assembly110, or independently), pivoted about the X-X′ axis, and/or translated upward vertically along the Z-Z′, to cause the item to move further up and along the wedge block132. A single wedge block132can be moved under an item or pile/stack of goods, and/or multiple wedge blocks132can be simultaneously moved under the item or pile/stack of goods.

As a result of one or more of the foregoing movements (e.g., forward movement of the robotic system100and/or movement of the wedge blocks132), the item or pile/stack of goods is slid towards a rear side of the mobile base assembly110. For example, referring again toFIG.2, the wedge blocks132may be controlled (e.g., based on signals/commands from the computing device170) to rotate in the counter-clockwise direction (as shown with curved arrow ‘C’) to lift a good, leading to movement of the item towards the rear side of the mobile base assembly110.

As noted above, referring toFIGS.2and3, in some implementations the wedge blocks132of the lifting assembly130are adapted to individually and independently pivot around the hinge axis (X-X′) at the front edge111of the mobile base assembly110. In some implementations, this pivoting movement of the wedge block132is caused by an actuator134, as shown inFIG.2. The actuator134may include, but not limited to, a spring-loaded actuator, an electrical actuator, a pneumatic actuator, or a hydraulic actuator. In the example ofFIG.2, the actuator134is a pneumatic actuator134that controls a linear movement of a member135(e.g., a rod) along the straight arrow ‘L’. The member135is pivotably coupled to the wedge block132, such that the linear movement of the member135causes a pivoting motion of the wedge block132. In some implementations, the lifting assembly130includes one or biasing elements, in addition to the actuator134, that facilitate and ensure that a front edge133of the wedge block132touches the floor of the container. The one or more biasing elements can include any mechanism that moves the lifting assembly130or a portion thereof, e.g., spring-loaded retracting mechanism136, and/or actuators134,137, and/or139. Also, in some implementations, the pivoting motion of the wedge block132(e.g., by virtue of linear movement of the actuator134) facilitates avoiding any obstruction (for example, bolts, weld seams, or any protruding object) on the floor surface of the container or the ground, to reduce or prevent the collision between the front edge133and the floor surface or obstruction, and/or to reduce or prevent harmful collisions between the wedge block132and goods, helping to manage any unevenness of the floor surface. Further details on control of the wedge blocks are discussed below in reference toFIG.6.

Referring toFIG.3, in some implementations, at least one wedge block132of the lifting assembly130optionally includes a spring-loaded retracting mechanism136. The retracting mechanism136may be actuated electrically or hydraulically, e.g., based on signals/commands from the computing device170, or can be passive (operating only based on the force of springs). The spring-loaded retracting mechanism136can be used to retract a front portion132aof the wedge block132towards a rear portion132bof the wedge block132, thereby reducing the length of the wedge block132and/or lifting the wedge block132off the floor surface. For example, during a forward motion of the robotic system100, when the wedge block132touches any obstacle on the floor surface, the spring136amay be compressed in response to a force between the front portion132aand the obstacle, thereby retracting the front portion132aof the wedge block132towards the rear portion132bof the wedge block132.

As another example, while one or more wedge blocks132of the lifting assembly130are in a retracted position, remaining wedge block(s)132may remain in their original (e.g., unretracted) position and be slid under goods during forward motion of the mobile base assembly110or the robotic system100. After the remaining wedge blocks132have traveled further in the forward direction, all the wedge blocks132(including the retracted wedge block(s)132) of the lifting assembly130may be lifted using their respective actuators134and/or137(e.g., as described in conjunction with the process600), so that the obstruction on the floor may be avoided. Once the obstacle is avoided, all the wedge blocks132would be lowered down, again touching the floor of the container.

The spring-loaded retracting mechanism136of each wedge block132can permit each wedge block132to retract individually, e.g., based on whether the wedge block132encounters an obstacle. In some implementations, the spring-loaded retracting mechanism136permits retraction to a maximum distance in a range from 3 mm to 20 mm, from 3 mm to 10 mm, from 5 mm to 20 mm, from 10 mm to 20 mm, or from 10 mm to 30 mm. These distances have been found to be compatible with forward-movement step sizes that provide a desired high rate of unloading, and to also provide acceptable mechanical behavior of the wedge blocks132while reducing or avoiding damage caused by obstacles.

In some implementations, one or more conveyers (e.g., a conveyer belt) are provided on an upper surface of the wedge block132, e.g., on upper surface(s) of one or both of the front portion132aand the rear portion132b. The conveyer can be controlled (e.g., by the computing device170) to transfer, rearward, items on the wedge block132. The conveyer can extend and be configured to move along the forward/rearward direction, (e.g., along the Y-Y′ axis).

In some implementations, gaps are provided between two adjacent wedge blocks132of the lifting assembly130, and each individual wedge block132may be controlled to move along a width-direction of the lifting assembly130, e.g., along the front edge111of the mobile base assembly110/along the X-X′ axis. The lifting assembly130may further include one or more actuators, for example, spring-loaded, electrical, or hydraulic actuators, that can be controlled (e.g., by the computing device170) to move the wedge blocks132of the lifting assembly130along the width-direction thereof. In some implementations, the wedge blocks132can be moved along the width direction, using the corresponding actuators, to (i) align the lifting assembly130across an entire width of the container from which the goods are to be unloaded, (ii) arrange the wedge blocks132in front of one or more target goods or set of goods, and/or (iii) avoid the wedge blocks132colliding with obstructions while the robotic system100travels.

In some implementations, the computing device170receives data from one or more sensors of the robotic system100(e.g., the laser rangefinder, the camera120, the LIDAR122, IMU, proximity sensor, limit switch, bumper sensor, infrared sensor, ultrasonic sensor, and/or sonar sensor), and uses the sensor data to determine a width and/or position of a container in which goods are located, position(s) of one or more goods to be unloaded, and/or position(s) of one or more obstacles. Based on the determined width and/or positions, the computing device170can control the actuators to: align the wedge blocks132with the container and/or cause the wedge blocks132to extend across an entirety of the container; laterally align one or more wedge blocks132with the goods, so as to unload the goods; and/or move one or more wedge blocks132out of lateral alignment with the obstacle, so that the wedge blocks132do not collide with the obstacle.

In some implementations, one or more of the wedge blocks132includes an inflatable section which is inflated when the wedge block132has been slid under goods, e.g., under the bottom-most goods of a stack of goods. The inflated section lifts the goods and makes it easier for the rest of the wedge blocks132to slide below the goods. For example,FIGS.10A-10Billustrate an example of a wedge block132including an inflatable section147, shown in a side view. InFIG.10A, the inflatable section147is deflated, such that the front edge133of the wedge block132can slide under items. InFIG.10B, the inflatable section147is inflated, causing an item on the inflatable section147to be lifted by the inflatable section147and more easily transferred rearward. The inflatable section147can inflate based on a command/signal provided by the computing device170.

In some implementations, the goods inside a trailer, container, or other enclosure are placed on a corrugated sheet. For example, the corrugated sheets can be placed throughout the floor of the trailer/container. The wedge blocks132of the robotic system100may be adjusted to slide under the corrugated sheet on which the goods are placed. Upon the further forward movement of the robotic system100inside the trailer/container, the corrugated sheet and thus the goods travel towards the rear side of the mobile base assembly110, so as to arrive at a conveyor assembly disposed downstream of the mobile base assembly110for unloading the goods outside the trailer or the container.

In some contexts—for example, when unloading goods from trailers or containers with uneven floor surfaces or floor debris—there is an increased likelihood that the front edges133of the wedge blocks132may collide directly into goods rather than sliding under the goods. Given the thinness of the front edges133, the front edges133may penetrate into or otherwise damage the goods. At least to reduce the likelihood of this damage, in some implementations, the robotic system100is configured to implement a specific synchronized motion of the wedge blocks132.

An example of this synchronized unloading process600is shown inFIG.6. The process600can be performed, for example, by the robotic system100based on commands/signals provided by the computing device170. As shown inFIG.6, in the process600, optionally, a group of wedge blocks132is lowered (602). For example, the wedge blocks132can be lowered until they touch a floor surface, are at a lower limit of their movement range, or are at or within a predetermined distance from the floor surface. “Raised/lifted” and “lowered,” with reference to the process600, can include rotary motion as described in reference toFIG.2(e.g., using the actuator134) and/or vertical, translational motion using actuator137. The group of wedge blocks132can be all wedge blocks132of the robotic system100or a subset thereof. In the subsequent description of the process600, “the wedge blocks132” refers to this group of wedge blocks132, which may or may not be all of the wedge blocks132.

In some implementations, operation602need not be actively performed. For example, the wedge blocks132can naturally be in the lowered position when operation604is initiated. The wedge blocks132can be at a common vertical level and/or a common position along a forward/backward direction.

A first set of the wedge blocks132is moved forward by a small distance (e.g., along the Y-Y′ axis) and then lifted (604). The first set is a strict subset of the wedge blocks132and includes one or more wedge blocks132. In some implementations, the first set includes alternative wedge blocks of the wedge blocks, e.g., every other edge block. In some implementations, the first set includes at least two adjacent edge blocks. The first set can be moved forward by the small distance so as to move under an item to be unloaded, and then be raised to as to lift the item. The small distance can be, for example, in a range from 1 mm to 5 mm, from 1 mm to 10 mm, from 3 mm to 20 mm, from 3 mm to 10 mm, from 5 mm to 20 mm, from 10 mm to 20 mm, or from 10 mm to 30 mm. In some implementations, the first set is lifted by a distance in range from 1 mm to 5 mm, from 1 mm to 10 mm, from 5 mm to 20 mm, from 10 mm to 20 mm, from 10 mm to 30 mm, from 10 mm to 50 mm, or another distance. These distance ranges have been found to be large enough to facilitate high unloading throughput, while being small enough to avoid damage to the item in the case where the wedge blocks132collide with the item. The lifting distance refers to a distance by which a distal end of each wedge block132(e.g., the front edge133) is lifted.

A second set of the wedge blocks132is moved forward and lifted (606). The second set of wedge blocks can be all remaining wedge blocks of the group of wedge blocks132(that is, the wedge blocks132excluding the first set of wedge blocks132). The second set can include one or more wedge blocks132. In some implementations, the second set of wedge blocks132is moved forward and lifted to reach the same forward and vertical positions as the first set of wedge blocks. For example, after the first set has been moved, the second set can be moved forward between 1 mm and 5 mm or between 1 and 10 mm, and the second set can be moved up between 1 mm and 5 mm or between 1 and 10 mm. Accordingly, the second set moves to a position where the second set holds the item that was previously held only by the first set.

The movement of the second set (606) can occur entirely or partially after movement of the first set (604). For example, the movement of the second set (606) can occur after the first set has reached its target position. The movement of the second set (606) can occur entirely after the first set has moved forward (604), entirely after the first set has been lifted (604), or both. The movement of the second set (606) can occur entirely after the first set has moved forward by a distance in any of the ranges discussed for forward movement with respect to operation604, entirely after the first set has been lifted by a distance in any of the ranges discussed for vertical movement with respect to operation604, or both. The movement of the second set (606) can begin after movement of the first set (604) has begun.

Continuing in reference toFIG.6, optionally, the first set of wedge blocks132is lowered, moved forward again, and lifted again (608). Operation608can be performed at least partially after operation606, as described for operation606with respect to operation604. The lowering in operation608can be, for example, to the initial vertical level of the first set when operation604was initiated (e.g., to the floor surface, or another level as described with respect to operation602). However, the lowering is not limited thereto, and can be performed to another predetermined vertical level. In some implementations, the lowering includes movement of the first set of wedge blocks132in the backward direction, e.g., to an initial forward/backward position before the first set of wedge blocks132were moved forward in operation604. The movement forward and lifting in operation608can be performed as described for operation604.

Continuing in reference toFIG.6, optionally, the second set of wedge blocks132is lowered, moved forward again, and lifted again (610). Operation610can be performed at least partially after operation608, as described for operation606with respect to operation604. The lowering in operation608can be, for example, to the initial vertical level of the second set when operation606was initiated (e.g., to the floor surface, or another level as described with respect to operation602). However, the lowering is not limited thereto, and can be performed to another predetermined vertical level. In some implementations, the lowering includes movement of the second set of wedge blocks132in the backward direction, e.g., to an initial forward/backward position before the second set of wedge blocks132were moved forward in operation606. The movement forward and lifting in operation610can be performed as described for operation606.

Operations608and610can optionally repeat until an end condition is met (612). For example, operations608and610can repeat until the robotic system100has moved a predetermined distance forward or has reached a target position.

Optionally, when the end condition is met, lifting of the item continues by lifting with both the first set and the second set of wedge blocks132simultaneously (614), or by stopping lifting operations, e.g., switching to a mode in which unloading is performed by moving the robotic system100forward without separately lifting the wedge blocks132.

In some implementations, operations604,606,608, and610are performed repeatedly while the robotic system100moves forward in a trailer or container, e.g., until the robotic system100satisfies a position condition, for example, advances a predetermined amount or reaches the end of the trailer or container. As the robotic system100moves forward, the process600promotes damage-free lifting of goods, and the movement of the robotic system100and separate movement of the wedge blocks132promotes transfer of goods onto conveyer belts142. In some implementations, the robotic system100moves forward at a speed between 0.05 meters/second and 0.2 meters/second, e.g., while performing the process600.

It will be understood that the process600is not restricted to use with wedge blocks and robotic systems having any of the particular structures described herein but, rather, can generally be applied to robotic systems having forward-extending lifting members (e.g., paddles, tine, forks, wedges, platforms, etc.) that can lift and transfer items, and example of which is the wedge blocks discussed herein.

Referring toFIGS.1,4and5, in some implementations, the robotic system100includes a conveyor assembly140. The conveyor assembly140may be provided on a top face of the mobile base assembly110. In some implementations, as shown inFIGS.4and5, the conveyor assembly140includes a plurality of conveyor belts142, each of which run across the top face of the mobile base assembly110, over a pair of rollers adapted to be rotated independently by a corresponding motor. The conveyer belts142can extend along a forward/backward direction of the robotic system100. The plurality of conveyor belts142and the conveyor assembly140are configured to move any goods/items placed thereon and guide the goods/items outside the container towards the rear side of the robotic system100. For example, the plurality of conveyer belts142can be configured and controlled to carry items away from the lifting assembly130. Movement of the conveyer belts142can be performed based on signals/commands provided by the computing device170. In some implementations, the conveyer belts142can be run independently in forward or backward directions.

In some implementations, each conveyor belt142of the plurality of conveyor belts142is driven individually, by a respective drive motor. The plurality of conveyor belts142may be adapted (e.g., shaped, arranged, and/or controlled) to converge the unloaded goods from a width of the container to a narrower conveyor assembly at the rear side of the robotic system100. The convergence of the goods may be achieved by operating the conveyor belts142at variable speeds compared to each other. For example, outer conveyer belt(s)142can be operated more slowly than inner conveyer belt(s)142. In some implementations, referring toFIG.5, a set of barriers148(e.g., guide plates148), forming a funnel-type mechanism148a, are arranged to cause goods to move from being arranged across the width of the container at the lifting assembly130to being arranged across a narrower conveyor assembly at the rear side of the robotic system100(bottom ofFIG.5).

Based on their independent control in some implementations, the conveyer belts142can provide targeted transfer, e.g., can, for example, be operated selectively to transfer one item at a time from the robot. For example, a first of the conveyer belts142, on which a first item is arranged, can transfer the item backwards, while a second of the conveyer belts142, on which a second item is arranged, can temporarily not operate. After the first item has been transferred rearward of the robotic system100, the second conveyer belt can be operated to transfer the second item. Accordingly, items can be singulated.

In some implementations, the computing device170receives data from one or more of the sensors indicative of locations of items on the wedge blocks132and/or the conveyer belts142. Alternatively, or in addition, the computing device170can receive data from one or more sensors integrated with the conveyer assembly140to detect a jam condition. For example, the computing device170can receive data from limit switch(es), camera(s), IMU(s), and/or bumper(s). Based on the data, the computing device170can identify a jam condition (i) predictive of a current jam between multiple items and/or (ii) predictive of a possible jam between multiple items, e.g., should the items be moved rearward simultaneously. Identification of the jam condition can be based on at least one of sizes of the items, relative locations of the items, a detected number of items or shapes of the items, to provide several non-exhaustive examples. In some implementations, the computing device170determines a number of items being transferred from the conveyor assembly140rearward. If the number or a rate of such items is below a threshold number or rate, the computing device170can infer that a jam is present (identify a jam condition). As another example, in some implementations, the computing device170receives sensor data indicative of a position of an item on the conveyor assembly140, e.g., from a proximity sensor or camera. If the item does not move or moves sufficiently slowly over a period of time, the computing device170can identify a jam condition.

In some implementations, based on identifying the jam condition, the computing device170operates the conveyer belts142selectively to alleviate the jam condition. For example, one or more of the conveyer belts142can be operated in reverse (transferring item(s) forward) to clear a jam condition. As another example, the conveyer belts142can be operated one-by-one or otherwise only partially, to transfer the items without causing a jam.

Various arrangements of multiple conveyer belts142are within the scope of this disclosure. For example, in some implementations, as shown inFIG.9, the conveyor assembly140includes a wide conveyer belt141adjacent to the lifting assembly130, the wide conveyer belt141extending across most or all of a width of the robotic system100. The conveyor assembly140can further include, rearward of the wide conveyer belt141, multiple narrower conveyer belts143arranged to receive items from the wide conveyer belt141. The narrower conveyer belts143can be arranged side-by-side across a width of the robotic system100and can be (though need not be) arranged at multiple angles.

FIG.11illustrates another example of a conveyer assembly140including multiple conveyer belts. In this example, the conveyer assembly140includes, adjacent to the lifting assembly at the front side of the conveyor assembly140, inwardly-directed conveyer belts1102that transfer items from the lateral edges towards a middle of the conveyor assembly140. Other conveyer belts are directed rearward with various speeds as shown inFIG.11. A low-speed conveyer belt1104is arranged at the front side between the inwardly-directed conveyer belts1102. Medium-speed and high-speed conveyer belts1108,1110are arranged serially rearward of the low-speed conveyer belt1104. Side conveyer belts1112are arranged on opposite lateral sides of the conveyer belts1108,1110. A funnel1106(e.g., a wall/barrier) directs items towards the lateral middle of the conveyor assembly140for transfer further rearward.

In some implementations, the conveyer assembly140includes sloped conveyer belts. The sloped conveyer belts can transfer items from near ground level to customer conveyer belts (not illustrated) that receive unloaded items from the robotic system. These customer conveyer belts may be arranged at about a meter from ground level. As such, sloped conveyer belts can transfer items upward to the level of these elevated customer conveyer belts.

For example, as shown inFIG.12, in some implementations, different conveyer belts of the conveyor assembly140have different inclinations. In an example of the conveyor assembly140, one or more front conveyer belts1202have a gradual upward inclination, and one or more rear conveyer belts1204have a steeper upward inclination. For example, the front conveyer belts1202can be the inwardly-directed conveyer belts1102and the low-speed conveyer belt1104, and the rear conveyer belts1204can be the medium-speed, high-speed, and side conveyer belts1108,1110,1112. For clarity, the lifting assembly is not shown inFIG.12. The angular orientation of the front conveyer belts1202with respect to the rear conveyer belts1204can be fixed or controllable (e.g., by the computing device170using any suitable actuator), in various implementations.

In some implementations, the conveyer assembly140is controllably tiltable/rotatable. This rotation can permit the lifting assembly130to be raised off the ground (e.g., to 100-200 mm off the ground) when the robotic assembly100is navigating up a ramp, e.g., to enter a container from which good are being unloaded. The lifting assembly130is raised so as to not impede forward movement of the robotic system.

In the example ofFIG.12, the robotic system100includes an actuator1206that can be controllably rotated (e.g., by the computing device170) to rotate the conveyer assembly140. The actuator1206can include any one or more suitable actuators, e.g., a spring-loaded actuator, an electrical actuator, a pneumatic actuator, or a hydraulic actuator. The rotation can be about a lateral axis, e.g., an axis parallel to the axis about which the actuator134causes the wedge blocks132to rotate. The axis of rotation of the conveyer assembly140can be arranged approximately at a center of the weight distribution of the conveyer assembly140along the forward-backward direction, e.g., within 10% or 20% of a length of the conveyer assembly140from the center. This arrangement can reduce torque requirements for the actuator1206.

As another example, in some implementations, as shown inFIG.13, the actuator1206can be arranged at or adjacent to a rear of the conveyor assembly140.

The robotic system100need not include multiple conveyer belts142. For example, in some implementations, one conveyer belt142is included, e.g., a conveyer belt142stretching across all or most of a width of the robotic system100.

In some implementations, the conveyer belts142are arranged, and the wedge blocks132are configured, such that items lifted up by the wedge blocks132fall, shift, or slide onto the conveyer belts142. Accordingly, in some implementations, no manual work or additional mechanisms are necessary to move goods from the front of the robotic system100(where the goods are lifted and transferred by the lifting assembly130) to the rear of the robotic system100(to which the goods are transferred by the conveyer belts142), and the robotic system100can unload with high throughput and minimal or no intervention. For example, in some implementations, a distance between a forward edge of the conveyer belts142is within 3 mm, 5 mm, or 10 mm of the hinge axis X-X′ about which the wedge blocks rotate, to allow lifted goods to fall or slip immediately onto the conveyer belts142. In some implementations, the wedge blocks132are configured to rotate to an angle of at least 20°, at least 30°, or at least 40° above a level plane (e.g., with respect to a floor surface on which the robotic system100moves), to promote falling or slipping of lifted goods away from the front edge133toward the conveyer belts142.

In some implementations, the robotic system100includes a horizontal conveyor belt (not shown), telescopic conveyor (not shown), and/or an incline conveyor belt (not shown) provided at the rear side of the mobile base assembly110and downstream of the conveyor assembly140, so as to transfer the goods unloaded from the container. The horizontal conveyor belt or the incline conveyor belt may be driven by a respective motor.

According to a non-limiting working example of the robotic system100, as shown inFIG.7, a process700including navigating the robotic system100adjacent to goods (702), e.g., such that the goods702are in proximity to a front side of the robotic system100, where the lifting assembly130is located. The robotic system100can be navigated using the mobile base assembly110. For example, one or more sensors of the robotic system100can detect the presence of goods at a location, and the robotic system100can be moved adjacent to the location using the mobile base assembly110.

Front edges133of one or more wedge blocks132of the robotic system100are slid under the goods (704). Operation704can include controlled movement of individual wedge blocks132and/or control of the robotic system100as a whole (e.g., using the mobile base assembly110to move the robotic system100forward). The goods may be a single item or a pile (e.g., stack) of items, such as a stack of boxes. For example, the front edges133can be slid under the bottom-most goods of a first pile of goods in front of the robotic system100. During operation704, the wedge blocks132can be tilted downward (e.g., be oriented at a negative angle with respect to a level plane), for example, based on control using the actuator134.

The wedge blocks132are moved to transfer the goods from the wedge blocks132onto the conveyer belts142(706). In some implementations, operation706includes moving the robotic system100(including the wedge blocks132) forward, such that the wedge blocks132slide further under the goods, the goods slide up on the wedge blocks132based on the wedge shape of the wedge blocks132, and the goods slide onto the conveyer belts142. That is, operation706need not include controlled movement of the wedge blocks132independent of the robotic system100as a whole. Instead, or additionally, operation706can include lifting movement by the wedge blocks132, e.g., upward rotation of the wedge blocks132and/or vertical lifting by the wedge blocks132. This movement can cause the goods to slide or fall onto the conveyer belts142. In some cases, an entire stack of goods can be transferred onto the conveyer belt in a single sliding (704) and moving (706) process, providing high unloading throughput.

In some implementations, operations704and/or706include the process600.

In some implementations, operation705includes lifting the wedge blocks132to a target height, and then controlling the wedge blocks to transfer the goods rearward onto the conveyer belts142. Controlling the wedge blocks132can include rotating the wedge blocks132(e.g., rotating the tips of the wedge blocks132up so that the goods slide rearward) and/or controlling the optional conveyer(s) that may be included on top sides of the wedge blocks132, as described above.

Continuing in reference toFIG.7, the conveyer belts142are controlled to transfer the goods toward a rear of the robotic system100(708), e.g., toward an entrance of the container or out of the container. In some implementations, a speed of the conveyor belts142is adjusted to control the outflow of goods. In some implementations, a rear height of the conveyor assembly140is adjusted to match the height of a horizontal, telescopic, or inclined conveyor disposed downstream of the conveyor assembly140.

Process700can be performed entirely or substantially continuously, e.g., with the robotic system100continuing to move forward into a container, slide the wedge blocks132under encountered goods, and transfer the goods onto the conveyer belts142and rearward.

Referring toFIGS.1,4,5, and8, in some implementations, the robotic system100includes a blocking assembly150arranged over the mobile base assembly110and/or the conveyor assembly140. For example, the blocking assembly150may be provided above the conveyor assembly140and rearwardly of the lifting assembly130. The blocking assembly150may be made of rigid material or flexible material. Also, the blocking assembly150may be made as a single piece unit, or as an array of different segments arranged to form a single wall-like barrier. The wall-like barrier extends across at least a portion of a width of the robotic system100and extends vertically, such that goods collide with the barrier while being moved backward by the conveyor assembly140and/or while being moved or falling toward the conveyer assembly.

FIG.8illustrates the robotic system100in a front view. As shown inFIG.8, the blocking assembly150can include an array of strip curtains156(sometimes referred to as “dock curtains”). The strip curtains156, which are flexible, hang downward from a suspension arm154arranged above the mobile base assembly110and/or the conveyor assembly140. The suspension arm154is supported by one or more supports152. The array of strip curtains156extends laterally across at least a portion of a width of the robotic system100. The strip curtains156can be composed of plastic, e.g., polyvinyl chloride (PVC). The hanging strip curtains156form a loose barrier. It will be understood that the blocking assembly150is not limited to being composed of strip curtains but, rather, that various other materials and structures can provide a suitable barrier. In some implementations, the blocking assembly has a width and/or a height in a range from 200 cm to 250 cm.

The blocking assembly150is configured to restrict or resist movement of at least some goods being transferred. For example, the blocking assembly150can be configured to restrict or resist movement of at least goods positioned above bottom-most goods in a pile of goods. It is typical that such piles of goods may fall/collapse during unloading, for example, while being lifted/moved using the wedge blocks132and/or while being moved using the conveyer belts142. Absent a mechanism to arrest the movement of high-up goods, higher-up goods may be damaged by falling. The blocking assembly150presents a barrier with which goods will collide during transfer, slowing down the goods' fall and providing a more gradual unloading of goods arranged as a pile of goods. For example, from a pile of goods, the bottom-most goods may cross the blocking assembly150and be transferred by the conveyor assembly140(with the blocking assembly150restricting their movement only slightly or not at all). Higher-up goods may fall relatively slowly based on contact with the barrier, and, upon falling onto the conveyer assembly, be transferred rearward in turn.

In some implementations, the blocking assembly150is a controllable rigid or semi-rigid structure that can be controlled (e.g., by the computing device170) to move vertically. For example, the blocking assembly150can have a “garage door”-like structure that can be raised and lowered like a shutter. The computing device170can raise and lower the blocking assembly150to permit flow of items below the shutter in a controlled manner.

In some implementations, the computing device170can use data from sensors (e.g., cameras) to determine a height of a top of an item being handled and, based on the height, determine a target height of a lower edge of the shutter (or other blocking element of the blocking assembly150) to permit passage of the item. Accordingly, for example, for a stack of items, the lowest item in the stack can be transferred while higher items are selectively blocked. When the lowest item has been transferred past the blocking assembly150, the next-lowest item will fall onto the conveyer assembly140(in some cases, slowed by the blocking assembly150to reduce damage) and can then be transferred in turn, e.g., in some cases with additional movement of the blocking assembly150.

In some implementations, the blocking assembly150includes a suspension system, e.g., springs. In some implementations, the blocking assembly150includes a vertical conveyer belt on a forward-facing side of the blocking assembly150. The vertical conveyer belt can be controlled to move downwards, such that items in contact with the conveyer belt (e.g., elevated items in a stack of items) are moved down by the conveyer belt. The conveyer belt can act to regulate (e.g., reduce) the speed with which the items move down, e.g., to reduce or prevent damage to the items that might occur if the items fell down in an uncontrolled manner.

Referring toFIG.4, in some implementations, the robotic system100includes a hinge160provided on a chassis of the mobile base assembly110. The hinge160facilitates folding part of the robotic system100at a hinge joint of the hinge160. The folding of the robotic system100offers sufficient walking space for manual operators to enter the container for maintenance, inspection or other purposes. The action of folding the robotic system100may be performed at the hinge joint by manual operators or electrical or hydraulic actuators.

In some implementations, one or both lateral sides of the robotic system100include a suspension system162. The suspension system162can include spring-loaded members (e.g., soft members, such as foam members) that can extend to contact walls of an enclosure (e.g., trailer/container) in which the robotic system100navigates. Based on the springs, the members can move outwards and contract based on forces applied between the walls and the members. Accordingly, the robot can navigate seamlessly along the walls without colliding harmfully with the walls. In some implementations, a contact or pressure sensor integrated with the suspension system can detect compression of the suspension system to alert the computing device170that the robotic system100is pressing against a wall on a particular lateral side. In response, the computing device170can control the robotic system100to move away from the wall.

In some implementations, the robotic system100includes a computing device170(shown only schematically inFIG.1) including a data processor and a memory storing non-transitory computer-readable instructions which can be executed by the data processor. The computing device170may include one or more controllers and a communication interface. The computing device170may be coupled to a power supply located in the mobile base assembly110or elsewhere, such as the battery. The power supply may be coupled to one or more sensors and to one or more actuators. The one or more sensors may transmit sensor data to the computing device170. The computing device170may be connected (e.g., electrically and/or communicatively connected) to sensors, actuators, and/or motors. The computing device170can receive sensor data from the sensors. The computing device170can control movement of the motors and/or actuators. For example, the actuators may include the first drive motor116, the second drive motor118, the actuator134, actuators137, actuator1206, and/or the spring-loaded retracting mechanism136. These and/or other actuators may be coupled to the computing device170and may receive control commands from the computing device170.

In some implementations, at least one of the first drive motor116, the second drive motor118, the actuator134, actuator1206, and actuators137may be configured with a low gear ratio and coupled to a corresponding controller of the controllers. Each motor can be individually controlled via the corresponding controller to actuate according to a control command provided from the computing device. The one or more controllers may include a current controller, a force controller, and/or a position controller. The current controller can be configured to generate actuation signals in response to input signals received from the force controller. The actuation signals can be provided to the first drive motor116, the second drive motor118, the actuator134, and/or the actuators137. The force controller can receive inputs associated with a measured interaction force (Fi), a maximum interaction force (Fm), and a desired/objective output force (Fo). The position controller can be configured to output the desired or objective output force (Fo) based on inputs of measured and desired/objective position/location data associated with a position/location of the vertical gantry structure and/or the mobile base assembly.

The first drive motor116, the second drive motor118, the actuator134, the actuator1206, and/or the actuators137may include closed loop current feedback control for actuation of the first and second drive wheels112,114and the wedge blocks132. Stepper motors, brushed DC (direct current) motors or brushless direct current (BLDC) motors can be configured to generate high torque at low speeds, allowing lower gear ratio transmissions or gear trains to be used. The robotic system100may control coil current of the first drive motor116, the second drive motor118, the actuator134, actuator1206, and/or the actuators137based on feedback associated with a rotor position of the corresponding motor. The rotor position can be measured via an Optical encoder, or a Hall effect sensor and a magnet mounted to the motor. The closed loop current feedback control allows instantaneous actuator current to be determined. In some implementations, the closed loop current feedback control is implemented by a position and/or velocity control loop of the motor using a proportional-integral-derivative (PID) control loop mechanism.

In some implementations, the computing device170is a first computing device coupled to a second computing device180via a network. The second computing device180may be located remotely from the robotic system100. In some implementations, as shown inFIG.1, the robotic system100includes the second computing device180, which may include a data processor, a memory storing non-transitory computer-readable instructions, a communication interface, an input device and a display including a graphical user interface. The second computing device180may be configured to receive user inputs and to generate control commands to control the robotic system100to perform a task, to navigate an environment, or to transmit sensor data to the second computing device. The second computing device180may receive the user input via the input device and/or the GUI. The user inputs can be processed and transmitted via the communication interface to the communication interface of the first computing device170. The communication interfaces may be wired communication interfaces and/or wireless communication interfaces. Once received, the robotic system100may be configured to generate an actuation signal responsive to the user input causing the robotic system100to perform one or more operations. In some implementations, the input device includes a joystick, a keyboard, a mouse, or a touchscreen. The second computing device180can be configured to perform any of the control, sensing, processing, etc., operations described above for the first computing device170, such that the robotic system can partially or entirely remote-controlled.

In accordance with some implementations of the present disclosure, the design of thin front-edged wedge blocks132of the lifting assembly130may work with or without slip-sheets placed below goods. Such slip sheets may be required for some conventionally-known unloading systems. Also, in some implementations, the design of the wedge blocks132makes unloading operations independent of the type, size, or shape of goods or orientation of the goods inside the container. The goods may include, but not limited to, tires, jute bags, cement bags, pouches, bottles, carton boxes, stacked or shrink-wrapped goods, pallets, etc., any of which may be lifted using the wedge blocks132and transferred to the conveyer belts142. In some implementations, the retraction mechanism136of individual wedge block132allows the robotic system100to work even in the presence of protruding elements or obstacles on the floor of the container.

Further, the conveyor assembly140provided behind the wedge blocks132facilitates continuous operation of unloading the goods from the container.

Moreover, in some implementations, once the robotic system100aligns with a container, the robotic system100can enter the container at a constant or near-constant speed and unload goods automatically and gradually. For example, in some implementations, the robotic system100need not (though may) implement any sensors to locate any goods, or to locate positions of specific goods, inside the container before unloading. For example, once aligned with a container, the robotic system100can move continuously forward (e.g., optionally while performing operations606,608repeatedly) to continuously unload goods. In some implementations, the robotic system100does not require any modifications to be made to trailers or the way goods are placed inside the container, and thus does not necessitate placing the goods on a slip sheet, a belt that can be pulled, or on a conveyor belt system inside the container as required for some conventional robots.

Additionally, since the robotic system100of the present disclosure may work with or without gripping goods for unloading operations, the robotic system100need not (though may) include any robotic manipulator, pneumatic or mechanical grippers.

As noted above, the wedge blocks132of the robotic system100may include an inflatable section which is inflated once the wedge blocks132are placed and slid under the bottom-most goods of a pile of goods. The inflated section lifts the goods and makes it easier for the rest of the wedge blocks132to slide below the goods.

The provision of folding the robotic system100(e.g., using hinge160) can facilitate providing access to manual operators to enter inside the container in case the robotic system100fails to operate. Once the manual operator resolves the issue, they can unfold the robotic system100, and the robotic system100will continue the unloading operation.

Various examples according to the present disclosure have been described above with reference to the accompanying drawings. However, the scope of the present disclosure is not limited to the illustrated examples. It will be understood that various modifications and combinations can be made without departing from the scope of this disclosure. For example, although robotic systems have been described as including assemblies (e.g., a mobile base assembly, a conveyer assembly, and a lifting assembly), implementations according to the present disclosure can include any one or more of those assemblies. Moreover, the assemblies themselves, and the described components of the assemblies, can represent contributions of the present disclosure, e.g., without necessarily being included in a robotic system or assembly as described in some examples above.

Herein, the terms “attached”, “connected”, “interconnected”, “contacting”, “mounted”, “coupled” and the like can mean either direct or indirect attachment or contact between elements, unless stated otherwise.

While considerable emphasis has been placed herein on the particular features of this disclosure, it will be appreciated that various modifications can be made, and that many changes can be made in the preferred embodiments without departing from the principles of the disclosure. These and other modifications in the nature of the disclosure or the preferred embodiments will be apparent to those skilled in the art from the disclosure herein, whereby it is to be distinctly understood that the foregoing descriptive matter is to be interpreted merely as illustrative of the disclosure and not as a limitation.