Automatic robot pouring
A sensor-controlled robotic arm system adjusts its inclination using a PID controller to accurately pour larger volumes of fluids, addressing the limitations of existing robotic systems in fluid transfer tasks and enhancing their versatility and efficiency.
Patent Information
- Application Number
- PCT/US2024/036336
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-01
- Publication Date
- 2026-01-08
AI Technical Summary
Robotic arms struggle to accurately transfer large volumes of fluids without specialized tools, which are often complex and expensive, limiting their versatility and efficiency in various workflows.
A sensor-based feedback loop system for a robotic arm that continuously adjusts its inclination to achieve precise pouring of materials into a target container, using a Proportional Integral Derivative (PID) controller to monitor and control the pouring process, allowing it to handle volumes greater than 50 mL with accuracy.
Enables robotic arms to transfer larger volumes of fluids with high precision and versatility, without the need for costly customization, facilitating a range of tasks including reformatting, filtering, and mixing, while maintaining efficiency and flexibility.
Smart Images

Figure US2024036336_08012026_PF_FP_ABST
Abstract
Description
AUTOMATIC ROBOT POURINGBRIEF DESCRIPTION OF THE DRAWINGS
[0001] The accompanying drawings illustrate a number of exemplary embodiments and are a part of the specification. Together with the following description, these drawings demonstrate and explain various principles of the present disclosure.
[0002] FIG. 1 is a block diagram of an exemplary feedback loop for automatic robot pouring.
[0003] FIG. 2 is a block diagram of an exemplary environment for automatic robot pouring.
[0004] FIG. 3 is a diagram of inclination for automatic robot pouring.
[0005] FIGS. 4A-B are illustrations of an example automatic robot pouring.
[0006] FIG. 5A-B are illustrations of an example automatic robot pouring.
[0007] FIG. 6 is an illustration of an example automatic robot pouring.
[0008] FIG. 7 is an illustration of an example automatic robot pouring.
[0009] FIG. 8 is an illustration of an example automatic robot pouring.
[0010] FIG. 9 is a flow diagram of an exemplary method for automatic robot pouring.
[0011] FIG. 10 is a block diagram of an exemplary computing environment for automatic robot pouring.
[0012] Throughout the drawings, identical reference characters and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specificembodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the present disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0013] Robots and other robotic systems / devices are capable of performing various tasks that require manipulation of tools or other physical objects. For example, a robotic arm may have multiple degrees-of-freedom (DOF) of movement or articulation, allowing the robotic arm to perform different tasks rather than being restricted to a particular task. This further allows collaboration with other robots for various workflows.
[0014] Transferring fluids (e.g., liquid, powder, and / or any other flowing or non- viscous material) often requires specialized tools, particularly when precision is needed. For example, pipettes, liquid handlers, and / or other media dispensers are often complex and / or expensive. Further, such media dispensers may be difficult to use with robots. For example, robotic arms are often unable to manipulate such media dispensers or would require cost- prohibitive customization at the expense of being able to perform other tasks. Moreover, such media dispensers are often limited to transferring small volumes (e.g., around 50 mL or less), further restricting use cases. Accordingly, there is a need for a non-specialized robotic arm capable of transferring larger volumes of fluids with accuracy and precision.
[0015] The present disclosure is generally directed to automatic robot pouring. As will be explained in greater detail below, embodiments of the present disclosure may use a sensorfor measuring how much material is in a target container as part of a feedback loop for a controller of a robot arm. The controller may continuously update an arm inclination of the robot arm holding a source container until a desired amount is poured into the target container. The systems and methods described herein advantageously improves a robot arm, providing further functionality, without requiring cost-prohibitive specialization.
[0016] Features from any of the embodiments described herein may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims.
[0017] The following will provide, with reference to FIGS. 1-10, detailed descriptions of automatic robot pouring. Detailed descriptions of example systems will be provided in connection with FIGS. 1, 2, 4A-B, 5A-B, 6, 7, 8, and 10. Detailed descriptions of example pouring will be provided in connection with FIG. 3. Detailed descriptions of example related methods will be provided in connection with FIG. 9.
[0018] FIG. 1 is a simplified block diagram of an example feedback loop for a robot system 100 for automatic robot pouring. FIG. 1 includes a controller 110, a process 108, and a sensor 112. Controller 110 may correspond to a controller, such as a processor and / or software / logic, configured to control an output to process 108 for bringing a process variable to a desired value (e.g., a set point). For example, when transferring a material (e.g., a fluid such as a liquid solution and / or a solid such as a powder) from a source container to a target container (e.g., via pouring from the source container to the target container), the set point may correspond to a target amount of the material desired in the target container. The set point maybe input into controller 110, which in some implementations may correspond to a ProportionalIntegral Derivative (PID) controller or other appropriate controller. Based on continuous feedback (e.g., a measured process variable from sensor 112), controller 110 may continuously output a control signal to process 108 for effectuating the set point value for the process variable.
[0019] For example, process 108 may correspond to a robot arm and control thereof. As will be described in further detail below, the output from controller 110 may control (at process 108) the robot arm to manipulate the source container to transfer the target amount of material. In some examples, process 108 may be affected by disturbances corresponding to unexpected and / or uncontrollable aspects affecting process 108, such as inconsistencies in flow / pour rates of materials, disturbances to an operating environment, other operating changes, etc. that may affect the process variable. Process 108 may perform based on the control output from controller 110 to produce a resulting value of process variable (e.g., pouring / transferring material), which may then be measured by sensor 112.
[0020] As will be described further below, sensor 112 may correspond to any sensor configured to measure the process variable. Sensor 112 may correspond to one or more sensors configured to measure a current amount of material in the target container, such as a weight sensor, an optical sensor, a capacitive sensor, and / or any other sensor for detecting a characteristic of the source container, the target container, and / or material therein. Controller 110 may determine an updated output control based on the measurement from sensor 112. For instance, in a PID control scheme, controller 110 may determine an error (e.g., a difference between the set point and the measured process variable) along with gain factors (e.g., a proportional gain factor, an integral gain factor, and a derivative gain factor, which may be inputand / or dynamically adjusted). Controller 110 may calculate the P (proportional) aspect by applying the proportional gain factor to the error, the I (integral) aspect by applying the integral gain factor to the error and to a cycle time and added to a cumulative total integral value, and the D (derivative) aspect by applying the derivative gain factor to a ramp rate (e.g., slope of error change). Controller 110 may combine the calculated P, I, and D values for outputting the control signal. As will be described further below, the set point and process variable may represent the amount of material but may be converted or otherwise recalculated into a variable suitable for controlling a robot arm.
[0021] FIG. 2 illustrates a simplified block diagram of an example robot system 200 (corresponding to robot system 100) for automatic robot pouring. FIG. 2 includes a controller 210 (corresponding to controller 110), a sensor 212 (corresponding to sensor 112), a target container 222, a source container 220, a robot arm 206, and a target amount 214. As described herein, target container 222 may correspond to any container for holding material, such as a flask, beaker, etc., which may have an opening through which a desired amount of material may be transferred, and may further correspond to a container to be used for further processing of the material as needed (e.g., holding a sample for measuring, for further preparation, etc.). Source container 220 may correspond to any container for holding material such as a container having an opening through which the desired amount of material may be transferred, and in some examples, may correspond to a large volume container (e.g., greater than approximately 50 mL) which may hold an amount and / or require transferring of a desired amount greater than what would be feasible / efficient to transfer using a media dispenser.
[0022] In other words, transferring the desired amount of the material from source container 220 to target container 222 through manipulation of source container 220 (e.g., via pouring) without requiring specialized tools / process may be desirable. For example, target container 222 may correspond to one of many target containers such that a partial transfer of an aliquot (e.g., corresponding to the desired amount) from one source container 220 to multiple target containers 222 may be needed. In other examples, target container 222 may be of equal or greater volume than source container 220 such that the desired amount corresponds to a total transfer of material from source container 220 to target container 222. Non-limiting examples for transferring material may include reformatting between containers, transferring into and / or through a filter, transferring into a container with a filter and vacuum, compounding multiple liquids into a formulation, mixing powders and / or liquids, etc.
[0023] Robot arm 206 may correspond to a robot system having more than one degree-of-freedom (DOF) articulation / movement, such as a robot arm having 3DOF, 6DOF, etc. movement. In some examples, robot arm 206 may be configured to perform a variety of tasks, and / or work in collaboration with other robots as part of a robot system such that configuring a specific robot for transferring material may undesirably add inefficiencies (e.g., adding overhead for setting up such a specific robot), and further reduces capabilities of robot arm 206. Robot arm 206 may be configured to manipulate source container 220, such as by directly grasping and manipulating source container 220 (e.g., lifting and / or tilting to effectuate pouring of material), using an end effector to hold source container 220. As will be described further below, manipulating source container 220 may effectuate a transfer / pour rate, which may correspondto a control parameter for robot arm 206, such as an arm inclination although in other examples one or more other control parameters may be used.
[0024] Sensor 212 may correspond to one or more sensors capable of measuring one or more characteristics of the material in target container 222 to directly and / or indirectly measure an amount (e.g., based on volume, weight, concentration, etc.) of the material therein. For example, sensor 212 may correspond to a weight sensor configured to weigh the material in target container 222 (e.g., which may include weighing target container 222 and taring to a weight of target container 222 itself).
[0025] Controller 210 may correspond to a controller (e.g., a processor, microprocessor, circuitry and / or logic including software and hardware, etc.) configured to provide control signals to robot arm 206 (e.g., update the arm inclination) based on a feedback loop with sensor 212. Controller 210 may be integrated with or otherwise internal to robot arm 206 and / or may be external to robot arm 206 and communicatively coupled via wired and / or wireless connections. Similarly, controller 210 may be integrated with sensor 212 (e.g., internal to a common device) and / or external to sensor 212, and communicatively coupled via wired and / or wireless connections.
[0026] Controller 210 may continuously monitor a current amount of material in target container 222 based on measurements from sensor 212. Controller 210 may compare the current amount with a target amount 214. Target amount 214 may correspond to the desired amount of material to be transferred to target container 222. Target amount 214 may, in some examples, correspond directly to a measurable characteristic of the desired amount (e.g., a desired weight or other measurement as measured by sensor 212) although in other examplesmay indirectly correspond to the desired amount (e.g., a conversion such as target amount 214 being a weight converted from a desired volume based on a density conversion).
[0027] Controller 210 may determine an updated control parameter (e.g., updated arm inclination) based on the comparison. For example, controller 210 may determine a rate of change of the amount of material in target container 222 based on measurements from sensor 212. Controller 210 may further determine a desired rate of change to reach target amount 214 and update the arm inclination based on the desired rate of change. In one example, sensor 212 may detect weight such that the change of weight in target container 222 may correlate to a pour / transfer rate of material from source container 220. FIG. 3 illustrates a pour rate.
[0028] FIG. 3 illustrates an environment 300 including a source container 320 (corresponding to source container 220), and a target container 322 (corresponding to target container 222). Source container 320 may be manipulated (e.g., tilted) at a tilt angle 326 to pour a material 324 from source container 320 to target container 322. Tilt angle 326 may be defined with respect to a horizontal axis (e.g., corresponding to a surface perpendicular to a direction of gravity), although in other examples, other coordinate bases may be used. A pour rate of material 324 may directly relate to tilt angle 326, such as a steeper tilt (e.g., smaller angle) may relate to a higher pour rate. Further, other characteristics of material 324 (e.g., viscosity, granularity, etc.) may affect the pour rate, which in some examples may be detected via sensors.
[0029] Returning to FIG. 2, in some examples, tilt angle 326 may directly correspond to the arm inclination (e.g., when based on the same coordinate system), although in other examples, the arm inclination may indirectly represent tilt angle 326. For instance, rather than sensing and calculating tilt angle 326 directly, the arm inclination may be used (e.g., bymaintaining a relationship between a coordinate system of tilt angle 326 and a coordinate system used by robot arm 206).
[0030] In yet further examples, controller 210 may use rates of changes and / or PID scheme described herein to allow updating arm inclination without expressly calculating tilt angle 326 and / or other related factors. For example, controller 210 may effectuate a rate of change of the weight measured in target container 222 (e.g., correlating a particular arm inclination to a particular measured rate of change) and continuously update the rate of change (e.g., via linear extrapolation or other appropriate scaling of the arm inclination to calculate a new arm inclination). Controller 210 may bias the desired rate of change to undershoot target amount 214, such that as target amount 214 is approached, controller 210 may reduce the rate of change so as not to overshoot target amount 214.
[0031] In some implementations, controller 210 may incorporate parameters corresponding to one or more material characteristics as measured by sensor 212. Examples of parameters may include, without limitation, a density of the material, a viscosity of the material, a flow rate of the material, a dielectric constant of the material, an emulsion of the material, or a type of material (e.g., a material of emulsion, a material of sand, a material of dry and / or wet soils, foam peanuts and / or other packing material, loose elements such as rocks, dry ice, etc.) and / or any other appropriate parameter that may be detected by sensor 212. Further, sensor 212 may detect a parameter corresponding to a characteristic of source container 220 and / or target container 222. For instance, controller 210 may consider parameters such as a shape, weight, etc. of source container 220 and / or target container 222 (e.g., calculating arm inclination further based on a shape / type of source container 220).
[0032] In addition, robot arm 206 may be configured to perform one or more ancillary tasks. For example, an ancillary task to transferring / pouring the material may include agitating the material in source container 220 (e.g., shaking source container 220 and / or stirring the material within) to allow delivery of a homogenous representative aliquot from source container 220 to target container 222 (and / or other target containers of less volume than source container 220). In addition, this agitation may allow for less material to be lost or otherwise trapped in source container 220 prior to transfer to target container 222 (e.g., having an equal or greater volume). In other examples, agitating source container 220 may correspond to washing a solid material in a liquid, such that only the liquid portion is poured from source container 220 and the solid material may be kept in source container 220 (rather than escaping into target container 222).
[0033] Another example ancillary task may include additional tool manipulation to aid in transferring the material. For example, in addition to adjusting the arm inclination of robot arm 206, a tool such as a spoon, spatula, or other appropriate tool may be used to better control removal of the material from source container 220 to target container 222. In some examples, the tool may correspond to a stream of liquid (e.g., water) that may be directed into source container 220 to act as a vehicle for driving the material out of source container 220 and into target container 222. In yet other examples, a stream of liquid may be used to wash the material such that the liquid may be discarded before transferring material. Further, in some implementations, robot arm 206 may also manipulate the tool, although in other examples another robot arm may coordinate with robot arm 206 to manipulate the tool. Further, in some examples, controller 210 may control the manipulation of the tool (e.g., as another controlparameter such as for moving the spoon, controlling a nozzle, etc.), although in other examples a separate controller may be used.
[0034] Moreover, although not explicitly described herein, controlling robot arm 206 may include positioning source container 220 appropriately over target container 222 in order to pour material into target container 222, including after updating the arm inclination, using appropriate sensors and control signals. Further, robot arm 206 may include controllers for converting a control parameter such as arm inclination to an appropriate movement (e.g., by actuating motors and / or other actuators appropriately for achieving the arm inclination).
[0035] FIGS. 4A-4B, 5A-5B, 6, 7, 8 illustrate various examples of robot arms performing automatic pouring, as described herein, with various types of containers. FIG. 4A illustrates an example environment 400 including a robot arm 406 (corresponding to any robot / robot arm described herein such as robot arm 206), a source container 420 (corresponding to any source container described herein such as source container 220), and a target container 422 (corresponding to any target container described herein such as target container 222). Robot arm 406 may include a gripper 405 (e.g., mechanical fingers and / or other mechanisms that may grip objects for manipulation and may apply force to grip objects although in other examples, may penetrate object surface, apply attractive forces, and / or otherwise produce adhesion to the object) further including an end effector 407A and an end effector 407B (e.g., tools configured to interface with an object, such as gripper tools that may be a particular shape for particular object shapes / sizes, although in other examples may correspond to other types of tools for gripping / manipulating objects).
[0036] FIG. 4A illustrates end effector 407A having a geometry suited for gripping source container 420 (e.g., having a generally concave shape matching a diameter / shape of a neck of source container 420 having a circular f las k / bottle shape) such that robot arm 406 may use gripper 405, and more specifically end effector 407 A, to grip and manipulate source container 420. End effector 407B may have a geometry suited for gripping other types of objects that may be different from source container 420. For example, end effector 407B may be suited to manipulate target container 422 (having a circular flask / bottle shape of a different diameter than that of source container 420), such as by first grabbing target container 422 and placing it in a location suitable for material transfer (e.g., a staging area that may include a platform that may correspond to a scale / weight sensor and / or having available space to allow robot arm 406 to maneuver and manipulate objects). Robot arm 406 may then begin manipulating source container 420, for instance based on an arm inclination as described herein.
[0037] FIG. 4B illustrates an environment 401 in which robot arm 406 is pouring a material 424 (e.g., any material for transfer as described herein) from source container 420 to target container 422, using sensor feedback as described herein. Robot arm 406 may continue adjusting the arm inclination, which in FIGS. 4A and 4B correspond to rotating gripper 405 although in other examples may further correspond to rotating / moving other portions of robot arm 406 as needed.
[0038] FIG. 5A illustrates an environment 500 including a robot arm 506 (corresponding to any robot / robot arm described herein such as robot arm 206 and / or robot arm 406), a source container 520 (corresponding to any source container described herein such as source container 220 and / or source container 420) holding a material 524 (corresponding to anymaterial for transfer as described herein), and a target container 522 (corresponding to any target container described herein such as target container 222 and / or target container 422). Robot arm 506 may include a gripper 505 (corresponding to any gripper described herein, such as gripper 405) further including an end effector 507 (corresponding to any end effector described herein). End effector 507 may have a geometry (e.g., wide and generally planar) suitable for gripping source container 520 having a generally box-like shape.
[0039] FIG. 5B illustrates an environment 501 of robot arm 506 pouring material 524 from source container 520 to target container 522 using sensor feedback to adjust and arm inclination as described herein. As further illustrated in FIG. 5B, adjusting the arm inclination may include adjusting / rotating multiple sections of robot arm 506, including gripper 505, to achieve the desired inclination to manipulate source container 520.
[0040] FIG. 6 illustrates an environment 600 including a robot arm 606 (corresponding to any robot / robot arm described herein such as robot arm 206 and / or robot arm 406), a source container 620 (corresponding to any source container described herein such as source container 220 and / or source container 420) holding a material 624 (corresponding to any material for transfer as described herein), and a target container 622 (corresponding to any target container described herein such as target container 222 and / or target container 422). Robot arm 606 may include a gripper 605 (corresponding to any gripper described herein, such as gripper 405) further including an end effector 607 (corresponding to any end effector described herein). FIG. 6 illustrates another example of a staging area, different shapes / types of containers for source container 620 and target container 622. FIG. 6 further illustrates another example of end effector607 suitable for manipulating source container 620 as well as other orientations that robot arm606 and portions thereof may actuate for adjusting arm inclination as described herein.
[0041] FIG. 7 illustrates an environment 700 including a robot arm 706 (corresponding to any robot / robot arm described herein such as robot arm 206 and / or robot arm 406), a source container 720 (corresponding to any source container described herein such as source container 220 and / or source container 420) holding a material 724 (corresponding to any material for transfer as described herein), and a target container 722 (corresponding to any target container described herein such as target container 222 and / or target container 422). Robot arm 706 may include a gripper 705 (corresponding to any gripper described herein, such as gripper 405) further including an end effector 707 (corresponding to any end effector described herein). FIG. 7 illustrates yet another example of a staging area (e.g., having a structure for holding target container 722), different shapes / types of containers for source container 720 and target container 722. FIG. 7 further illustrates yet another example of end effector 707 suitable for manipulating source container 720 as well as other orientations that robot arm 706 and portions thereof may actuate for adjusting arm inclination as described herein.
[0042] FIG. 8 illustrates an environment 800 including a robot arm 806 (corresponding to any robot / robot arm described herein such as robot arm 206 and / or robot arm 406), a source container 820 (corresponding to any source container described herein such as source container 220 and / or source container 420) holding a material 824 (corresponding to any material for transfer as described herein), and a target container 822 (corresponding to any target container described herein such as target container 222 and / or target container 422). Robot arm 806 may include a gripper 805 (corresponding to any gripper described herein, suchas gripper 405) further including an end effector 807 (corresponding to any end effector described herein). FIG. 8 illustrates an alternative example of a staging area (e.g., having a structure for holding target container 822), different shapes / types of containers for source container 820 and target container 822. FIG. 8 further illustrates an alternative example of end effector 807 suitable for manipulating source container 820 as well as other orientations that robot arm 806 and portions thereof may actuate for adjusting arm inclination as described herein.
[0043] FIG. 9 is a flow diagram of an exemplary method 900 for automatic robot pouring. The steps shown in FIG. 9 may be performed by any suitable robot system and / or any suitable computer-executable code, including the system(s) illustrated in FIGS. 1, 2, 4A-4B, SA- 56, 6, 7, 8, and / or 10. In one example, each of the steps shown in FIG. 9 may represent an algorithm whose structure includes and / or is represented by multiple sub-steps, examples of which will be provided in greater detail below.
[0044] As illustrated in FIG. 9, at step 902 one or more of the systems described herein may measure, with a sensor, a current amount of material in a target container. For example, sensor 212 may measure a current amount of material in target container 222.
[0045] The systems described herein may perform step 902 in a variety of ways. In one example, sensor 212 may further detect at least one characteristic corresponding to a parameter used for determining an updated arm inclination.
[0046] At step 904 one or more of the systems described herein may compare the current amount with a target amount. For example, controller 210 may compare the current amount with target amount 214.
[0047] The systems described herein may perform step 904 in a variety of ways. In one example, controller 210 may directly compare the current amount (e.g., a measurement by sensor 212) with target amount 214. In other examples, controller 210 may convert one or both values for comparison. In yet other examples, the comparison may include an error or delta calculation, although in other examples may include other calculations (e.g., determining a ratio or percent, a rate of change, etc.).
[0048] At step 905 one or more of the systems described herein may determine whether the target amount was reached. For example, controller 210 may determine whether the current amount is within an acceptable threshold (e.g., a desired delta or error value, a desired percentage, a range or margin, etc.) of target amount 214. In some examples, the acceptable threshold may vary based on one or more of the parameters described herein, and / or may be another parameter used for determining arm inclination. If the target amount has not been reached, method 900 may continue to step 906 and may otherwise end (or proceed to another process).
[0049] At step 906 one or more of the systems described herein may determine, based on the comparison, an updated arm inclination for a robot arm having more than one degree-of-freedom (DOF) articulation. For example, controller 210 may determine an updated arm inclination for robot arm 206 based on the comparison at step 904.
[0050] The systems described herein may perform step 906 in a variety of ways. In one example, determining the updated arm inclination may further include determining a rate of change of the amount of the material in the target container based on the sensor, determining adesired rate of change to reach the target amount, and determining the updated arm inclination based on the desired rate of change.
[0051] At step 908 one or more of the systems described herein may move the robot arm into the updated arm inclination to manipulate a source container into transferring the target amount of the material from the source container to the target container. For example, robot arm 206 may move into the updated arm inclination to manipulate (e.g., tilt) source container 220 into transferring (e.g., pouring) the target amount of material from source container 220 to target container 222.
[0052] The systems described herein may perform step 908 in a variety of ways. In one example, controller 210 may continuously monitor and update (e.g., via a feedback loop with sensor 212) the arm inclination of robot arm 206, which may correspond to returning to step 902 and / or repeating one or more steps of method 900. Further, in some examples, controller 210 may control robot arm 206 for one or more ancillary tasks (e.g., before, between and / or after any of the steps of method 900). For example, robot arm 206 may agitate the material in source container 220 as described herein. In another example, robot arm 206 may manipulate a secondary tool (e.g., a spoon / spatula, a stream of liquid, etc.) to remove the material from the target container as described herein.
[0053] Various systems described herein may perform method 900. FIG. 10 illustrates an exemplary network environment 1000 implementing aspects of the present disclosure. The network environment 1000 includes computing device 1002, a network 1004, and robot 1006 (which may correspond to robot arm 206). Computing device 1002 may be a client device or user device, such as a desktop computer, laptop computer, tablet device, smartphone, or othercomputing device. Computing device 1002 may include a physical processor 1030, which may be one or more processors, memory 1040, which may store data, and other elements not explicitly shown (e.g., a display, user input device, etc.).
[0054] Robot 1006 may represent or include one or more robot device capable of one or more DOF articulation as described herein. Robot 1006 may include one or more robot arms. Further, sensors (e.g., sensor 212) and controllers (e.g., controller 210) may be implemented with robot 1006, although in otherexamples may be implemented with computing device 1002. Robot 1006 may include a physical processor 1030, which may include one or more processors, memory 1040, as well as other elements not explicitly illustrated.
[0055] Computing device 1002 may be communicatively coupled to robot 1006 through network 1004. Network 1004 may represent any type or form of communication network, such as the Internet, and may comprise one or more physical connections, such as LAN, and / or wireless connections, such as WAN.
[0056] In one example, a system for transferring a target amount of material from a source container to a target container, includes a robot arm having more than one degree-of- freedom (DOF) articulation configured to manipulate the source container based on an arm inclination to transfer the target amount of the material from the source container to the target container, a sensor configured to measure a current amount of the material in the target container, and a controller configured to update the arm inclination of the robot arm based on a feedback loop with the sensor.
[0057] In some examples, the controller is configured to update the arm inclination by comparing the current amount with the target amount and determining an updated arminclination based on the comparison. In some examples, the controller is configured to update the arm inclination by determining a rate of change of the amount of the material in the target container based on the sensor, determining a desired rate of change to reach the target amount, and determining an updated arm inclination based on the desired rate of change. In some examples, the controller is configured to determine the desired rate of change that biased to undershooting the target amount.
[0058] In some examples, the robotic arm is further configured to agitate the material in the source container. In some examples, the controller is configured to update the arm inclination based on a parameter corresponding to a material characteristic of the material that relates to the sensor. In some examples, the parameter corresponds to at least one of a density of the material, a viscosity of the material, a flow rate of the material, a dielectric constant of the material, an emulsion of the material, or a type of material. In some examples, the sensor is further configured to detect the material characteristic.
[0059] In some examples, the controller is configured to update the arm inclination based on a parameter corresponding to a characteristic of the source container or the target container. In some examples, the sensor is further configured to detect the characteristic of the source container of the target container.
[0060] In some examples, the sensor corresponds to at least one of a weight sensor, an optical sensor, or a capacitive sensor. In some examples, the robot arm further comprises an end effector configured to hold the source container.
[0061] In one example, a method for transferring a target amount of material from a source container to a target container includes (i) measuring, with a sensor, a current amount ofthe material in the target container, (ii) comparing, with a controller coupled to a robot arm having more than one degree-of-freedom (DOF) articulation, the current amount with the target amount, (iii) determining an updated arm inclination based on the comparison, and (iv) moving the robot arm into the updated arm inclination to manipulate the source container into transferring the target amount of the material into the target container.
[0062] In some examples, determining the updated arm inclination further comprises determining a rate of change of the amount of the material in the target container based on the sensor, determining a desired rate of change to reach the target amount, and determining the updated arm inclination based on the desired rate of change.
[0063] In some examples, the method includes agitating the material in the source container with the robot arm. In some examples, the method includes detecting, with the sensor, at least one characteristic corresponding to a parameter used for determining the updated arm inclination. In some examples, the method includes manipulating a secondary tool to remove the material from the target container.
[0064] In one example, a non-transitory computer-readable medium comprises one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to: (i) measure, with a sensor, a current amount of material in a target container, (ii) compare the current amount with a target amount, (iii) determine, based on the comparison, an updated arm inclination for a robot arm having more than one degree-of-freedom (DOF) articulation, and (iv) move the robot arm into the updated arm inclination to manipulate a source container into transferring the target amount of the material from the source container to the target container.
[0065] In some examples, determining the updated arm inclination further comprises instructions for determining a rate of change of the amount of the material in the target container based on the sensor, determining a desired rate of change to reach the target amount, and determining the updated arm inclination based on the desired rate of change. In some examples, the non-transitory computer-readable medium further includes instructions for agitating the material in the source container with the robot arm.
[0066] As detailed above, the computing devices and systems described and / or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the memory devices described herein. In their most basic configuration, these computing device(s) may each include at least one memory device and at least one physical processor.
[0067] In some examples, the term "memory device" generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, a memory device may store, load, and / or maintain one or more of the modules described herein. Examples of memory devices include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, or any other suitable storage memory.
[0068] In some examples, the term "physical processor" generally refers to any type or form of hardware-implemented processing unit capable of interpreting and / or executing computer-readable instructions. In one example, a physical processor may access and / or modify one or more modules stored in the above-described memory device. Examples of physicalprocessors include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), hardware accelerators, graphics processing units (GPUs), co-processors, portions of one or more of the same, variations or combinations of one or more of the same, or any other suitable physical processor.
[0069] Although described / illustrated as separate elements, the instructions described and / or illustrated herein may represent portions of a single instruction, code, program, and / or application. In addition, in certain embodiments one or more of these instructions may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks. For example, one or more of the instructions described and / or illustrated herein may represent instructions stored and configured to run on one or more of the computing devices or systems described and / or illustrated herein. One or more of these instructions may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.
[0070] In some embodiments, the term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, without limitation, transmissiontype media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solidstate drives and flash media), and other distribution systems.
[0071] The process parameters and sequence of the steps described and / or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and / or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various exemplary methods described and / or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
[0072] The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the present disclosure.
[0073] Unless otherwise noted, the terms "connected to" and "coupled to" (and their derivatives), as used in the specification and claims, are to be construed as permitting both direct and indirect (i.e., via other elements or components) connection. In addition, the terms "a" or "an," as used in the specification and claims, are to be construed as meaning "at least one of." Finally, for ease of use, the terms "including" and "having" (and their derivatives), as used in the specification and claims, are interchangeable with and have the same meaning as the word comprising.
Claims
WHAT IS CLAIMED IS:
1. A system for transferring a target amount of material from a source container to a target container, the system comprising: a robot arm having more than one degree-of-freedom (DOF) articulation configured to manipulate the source container based on an arm inclination to transfer the target amount of the material from the source container to the target container; a sensor configured to measure a current amount of the material in the target container; and a controller configured to update the arm inclination of the robot arm based on a feedback loop with the sensor.
2. The system of claim 1, wherein the controller is configured to update the arm inclination by: comparing the current amount with the target amount; and determining an updated arm inclination based on the comparison.
3. The system of claim 1, wherein the controller is configured to update the arm inclination by: determining a rate of change of the amount of the material in the target container based on the sensor; determining a desired rate of change to reach the target amount; anddetermining an updated arm inclination based on the desired rate of change.
4. The system of claim 3, wherein the controller is configured to determine the desired rate of change that biased to undershooting the target amount.
5. The system of claim 1, wherein the robotic arm is further configured to agitate the material in the source container.
6. The system of claim 1, wherein the controller is configured to update the arm inclination based on a parameter corresponding to a material characteristic of the material that relates to the sensor.
7. The system of claim 6, wherein the parameter corresponds to at least one of: a density of the material; a viscosity of the material; a flow rate of the material; a dielectric constant of the material; an emulsion of the material; or a type of material.
8. The system of claim 6, wherein the sensor is further configured to detect the material characteristic.
9. The system of claim 1, wherein the controller is configured to update the arm inclination based on a parameter corresponding to a characteristic of the source container or the target container.
10. The system of claim 9, wherein the sensor is further configured to detect the characteristic of the source container of the target container.
11. The system of claim 1, wherein the sensor corresponds to at least one of: a weight sensor; an optical sensor; or a capacitive sensor.
12. The system of claim 1, wherein the robot arm further comprises an end effector configured to hold the source container.
13. A method for transferring a target amount of material from a source container to a target container, the method comprising: measuring, with a sensor, a current amount of the material in the target container; comparing, with a controller coupled to a robot arm having more than one degree-of- freedom (DOF) articulation, the current amount with the target amount; determining an updated arm inclination based on the comparison; andmoving the robot arm into the updated arm inclination to manipulate the source container into transferring the target amount of the material into the target container.
14. The method of claim 13, wherein determining the updated arm inclination further comprises: determining a rate of change of the amount of the material in the target container based on the sensor; determining a desired rate of change to reach the target amount; and determining the updated arm inclination based on the desired rate of change.
15. The method of claim 13, further comprising agitating the material in the source container with the robot arm.
16. The method of claim 13, further comprising detecting, with the sensor, at least one characteristic corresponding to a parameter used for determining the updated arm inclination.
17. The method of claim 13, further comprising manipulating a secondary tool to remove the material from the target container.
18. A non-transitory computer-readable medium comprising one or more computerexecutable instructions that, when executed by at least one processor of a computing device, cause the computing device to: measure, with a sensor, a current amount of material in a target container; compare the current amount with a target amount; determine, based on the comparison, an updated arm inclination for a robot arm having more than one degree-of-freedom (DOF) articulation; and move the robot arm into the updated arm inclination to manipulate a source container into transferring the target amount of the material from the source container to the target container.
19. The non-transitory computer-readable medium of claim 18, wherein determining the updated arm inclination further comprises instructions for: determining a rate of change of the amount of the material in the target container based on the sensor; determining a desired rate of change to reach the target amount; and determining the updated arm inclination based on the desired rate of change.
20. The non-transitory computer-readable medium of claim 18, further comprising instructions for agitating the material in the source container with the robot arm.
Citation Information
Patent Citations
Injection apparatus, injection method, and injection program
US20210394363A1
Method for transferring a pourable medium
US20220024040A1