System and method for vertical farming
The vertical farming system addresses space and energy optimization by dividing the environment into day and night sections, using a conveyor system, and integrating AI for pest control and pollination, thereby improving crop yield and efficiency.
Patent Information
- Application Number
- JP2024098476
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-28
- Filing Date
- 2024-06-19
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2044-06-19
AI Technical Summary
Conventional vertical farming systems face challenges in optimizing space, energy consumption, and environmental control while ensuring efficient crop growth and harvesting, particularly in maintaining day-night cycles and integrating automated pest control and pollination processes.
A vertical farming system with a housing divided into daytime and nighttime sections, utilizing a conveyor system to move racks through these sections, incorporating lighting, irrigation, and harvesting systems, and employing artificial intelligence for pest control and pollination, along with a partially automated setup.
The system optimizes space and energy use, ensures consistent environmental control, and automates key agricultural processes like harvesting and pest management, enhancing crop yield and efficiency.
Smart Images

Figure 2025100304000001_ABST
Abstract
Description
Related Applications
[0001] This application claims the priority and benefit of U.S. Provisional Patent Application No. 63 / 613,377, entitled "Systems and Methods for Vertical Farming," filed on December 21, 2023, the content of which is hereby incorporated by reference in its entirety into this specification.
Technical Field
[0002] The present invention relates to systems and methods for non-conventional agriculture, and more particularly, to systems and methods for non-conventional agriculture in which the growth environment is controlled to cultivate crops and maximize their yields.
Background Art
[0003] Conventional vertical farming involves growing crops in vertically stacked layers and often incorporates environmentally controlled agriculture aimed at optimizing plant growth, as well as soil-less farming methods such as hydroponics, aquaponics, and aeroponics in year-round operations. Vertical farming promotes higher crop productivity, quality, and efficiency due to the protected indoor environment, with no variations in weather conditions, pests, lighting, and the use of pesticides and chemicals. Vertical farming requires only a fraction of the land compared to traditional farming methods, resulting in far less disruption to the surrounding environment and ecosystem. Sustainable practices can be adopted, including renewable energy, water, and nutrient recycling, minimal carbon footprint, and the avoidance of pesticides and runoff that could otherwise harm the surrounding environment. Additionally, these practices can be built and deployed anywhere in the world, thereby supplying specific agriculture to areas where such practices do not exist.
[0004] Traditional vertical farming requires a controlled and protected environment to ensure efficient crop growth and harvesting. There are a number of automated or fixed crop sections within the agricultural system that require specific controls and inputs. Appropriate infrastructure and tools are needed to maintain light, irrigation, air circulation, temperature control, harvesting, and trimming. Farm settings require spatial optimization to enable the efficient execution of various maintenance and other tasks. Taking these variables and requirements into account presents technical challenges for vertical farming and thus requires continuous iteration and consistent optimization.
Summary of the Invention
Problems to be Solved by the Invention
[0005] An object of the present invention is to provide a vertical farming system with a layout optimized with respect to space, energy consumption, environmental control, and access.
[0006] Another object of the present invention is to provide a vertical farming system in which crops are moved throughout the farm in a day-night cycle while providing fixed locations around the farm for the delivery of light, irrigation, air flow, trimming, harvesting, and other activities necessary for plant growth.
[0007] Another object of the present invention is to provide a vertical farming system that uses artificial intelligence for pest control, pollination, harvesting, and the like.
[0008] Another object of the present invention is to provide a vertical farming system that is at least partially or fully automated.
Means for Solving the Problems
[0009] A vertical farming system according to an exemplary embodiment of the present invention includes at least one housing separated into a daytime section and a nighttime section, a plurality of racks disposed within the at least one housing and configured to hold plants, a conveyor system configured to move the plurality of racks through the daytime and nighttime sections of the at least one housing, and at least one of an irrigation system, a lighting system, or a harvesting system disposed within the at least one housing and fixed to the plurality of racks.
[0010] In an exemplary embodiment, each of the plurality of racks includes a central frame and a plurality of gutters disposed on the central frame.
[0011] In an exemplary embodiment, each of the plurality of racks further includes at least one of a roller or a caster disposed on the central frame.
[0012] In an exemplary embodiment, each of the plurality of gutters includes one or more plant holders.
[0013] In an exemplary embodiment, each of the plurality of gutters includes at least one of a filling opening for supplying irrigation fluid to the gutter or a discharge opening for discharging irrigation fluid from the gutter.
[0014] In an exemplary embodiment, each of the plurality of racks includes a top mount assembly configured to attach to the conveyor system.
[0015] In an exemplary embodiment, the conveyor system is an overhead conveyor system.
[0016] In an exemplary embodiment, the conveyor system is an electric overhead conveyor, a synchronous electric overhead conveyor, an asynchronous electric overhead conveyor, an open track overhead conveyor, or a closed track overhead conveyor.
[0017] In an exemplary embodiment, the conveyor system comprises one or more tracks configured to guide a plurality of racks through the conveyor system.
[0018] In an exemplary embodiment, the conveyor system comprises one or more toggle switches configured to guide the plurality of racks around a turn within the conveyor system.
[0019] In an exemplary embodiment, the vertical farming system comprises a lighting system, the lighting system comprising a plurality of lighting fixtures fixed to the plurality of racks.
[0020] In an exemplary embodiment, the plurality of lighting fixtures extend into the path of the plurality of racks as the racks are moved through the vertical farming system such that the plurality of lighting fixtures extend between the plurality of gutters.
[0021] In an exemplary embodiment, the lighting system is located in a daylight section of at least one housing.
[0022] In an exemplary embodiment, there are no lighting fixtures in a night section of at least one housing.
[0023] In an exemplary embodiment, the vertical farming system comprises an irrigation system, the irrigation system comprising one or more irrigation stations configured to deliver irrigation fluid to the plurality of gutters.
[0024] In an exemplary embodiment, the irrigation stations are spaced apart from others throughout at least one housing.
[0025] In an exemplary embodiment, each of the one or more irrigation stations comprises one or more tanks for holding irrigation fluid and one or more spigots for delivering the irrigation fluid from the one or more tanks to the plurality of gutters.
[0026] In an exemplary embodiment, each of the one or more irrigation stations includes a plurality of sub-assemblies, and each sub-assembly includes a corresponding one of the one or more tanks and a corresponding one of the one or more spigots.
[0027] In an exemplary embodiment, at each of the one or more irrigation stations, each of the plurality of sub-assemblies is arranged such that when one of the plurality of racks is disposed adjacent to the irrigation station, the corresponding spigot delivers irrigation fluid to a corresponding one of the gutters of the rack.
[0028] In an exemplary embodiment, the plurality of sub-assemblies are arranged stacked on top of each other.
[0029] In an exemplary embodiment, each sub-assembly further includes a stopper and a piston assembly for moving the stopper.
[0030] In an exemplary embodiment, during the filling operation, the stopper is moved by the piston assembly to block the discharge opening of the corresponding gutter while the spigot delivers irrigation fluid to the corresponding gutter of the plurality of gutters.
[0031] In an exemplary embodiment, during the discharging operation, the stopper is moved by the piston assembly to release the blocking of the discharge opening of the corresponding gutter so that the irrigation fluid is discharged from the gutter.
[0032] In an exemplary embodiment, each sub-assembly further includes a discharge tray for receiving the discharged irrigation fluid and guiding the discharged irrigation fluid to a corresponding tank of the immediately adjacent sub-assembly.
[0033] In an exemplary embodiment, the one or more tanks are arranged adjacent to each other.
[0034] In an exemplary embodiment, the one or more tanks are disposed on top of at least one housing.
[0035] In an exemplary embodiment, the vertical farming system further comprises at least one of a valve that controls the flow of irrigation fluid from one or more tanks to one or more spigots, a pump configured to remove irrigation fluid from a plurality of gutters, or a sensor configured to detect the level of irrigation fluid in one or more tanks.
[0036] In an exemplary embodiment, the vertical farming system further comprises an environmental control system.
[0037] In an exemplary embodiment, the environmental control system comprises a first heating, ventilation, and air conditioning (HVAC) unit associated with a daytime section of at least one enclosure and a second HVAC unit associated with a nighttime section of at least one enclosure.
[0038] In an exemplary embodiment, the environmental control system further comprises one or more air circulation units.
[0039] In an exemplary embodiment, the environmental control system further comprises one or more plenums disposed within at least one enclosure.
[0040] In an exemplary embodiment, at least one enclosure comprises a plurality of enclosures.
[0041] In an exemplary embodiment, the plant is a strawberry plant.
[0042] In an exemplary embodiment, the plant is a tomato plant.
[0043] According to an exemplary embodiment of the present invention, a system for automatically harvesting fruits from plants includes: (A) one or more robots, each of the one or more robots comprising: (i) a camera; and (ii) an end effector; (B) one or more edge devices, each of the one or more edge devices being operably connected to a corresponding one of the one or more cameras of the one or more robots, receiving first image data related to at least one two-dimensional image captured by the corresponding camera, and configured to output second image data including information related to the at least one two-dimensional image and a corresponding timestamp; (B) a programmable logic controller operably connected to the one or more robots; (C) a server comprising a computer-readable memory and operably connected to the programmable logic controller, the server including: (i) a programmable logic controller module configured to receive operation state data of the one or more robots from the programmable logic controller, input the operation state data into the memory, and transmit robot operation instructions to the programmable logic controller; (ii) one or more communication bridges, each associated with a corresponding one of the one or more robots, each of the one or more communication bridges being configured to receive the second image data and store the second image data in the memory; (iii) one or more frame synchronization modules, each associated with a corresponding one of the one or more robots, each of the one or more frame synchronization modules being configured to: 1. obtain first operation state data and second image data from the memory for the corresponding robot of the one or more robots at at least one point in time; 2. synchronize the second image data with the corresponding first operation state data; 3.Based on synchronization, it is configured to output first synchronization data to a memory, where the synchronization data includes information related to at least one captured image and the corresponding first operating state of the robot. One or more frame synchronization modules, and (iv) an inference module configured to process the first synchronization data output by each of the one or more frame synchronization modules using a neural network, where the neural network receives the synchronization data, processes the synchronization data, and through training, is configured to generate a corresponding output including the depth of the fruit image of the fruit in at least one image captured by one or more cameras, at least one mask associated with the fruit image in the at least one image, and at least one key point associated with the fruit image in the at least one image. An inference module, and (v) based on the processed synchronization data and the robot operating state data of each of the one or more robots, a 3D module configured to determine a set of points in 3D representing the position of the fruit in the 3D world frame, and (vi) an aggregator module, which: 1. Based on the set of points, generates a world map including the position of the fruit in the world frame and the position of the end effector in the world frame; 2. Based on the world map, determines an ideal approach angle to the fruit at the corresponding end effector of one of the one or more robots; 3. Configured to make the ideal approach angle available to the programmable logic controller module so that the programmable logic controller can control the corresponding one of the one or more robots to move the corresponding end effector along the approach angle to harvest the fruit. An aggregator module, and a server comprising the above components.
[0044] In an exemplary embodiment, the output of the inference module further includes fruit ripeness detection, at least one bounding box, and at least one object detection.
[0045] In an exemplary embodiment, determining the ideal approach angle includes determining the minimum occlusion field of view of the fruit.
[0046] A pollination system according to an exemplary embodiment of the present invention includes: (A) a housing configured to accommodate an insect nest; and (B) a gate system operably connected to the housing, the gate system comprising: (i) an exit gate assembly; (ii) an entrance gate assembly; and (iii) a vision system configured to capture images of insects within the exit gate assembly and the entrance gate assembly; and (C) a controller configured to operate the exit gate assembly and the entrance gate assembly based on images captured by the vision system to control the number of insects in the surrounding space surrounding the pollination system.
[0047] In an exemplary embodiment, the exit gate assembly includes a proximal portion, a distal portion, a central portion disposed between the proximal portion and the distal portion, a first gate between the proximal portion and the central portion, and a second gate between the central portion and the distal portion, and the controller is configured to operate the first gate and the second gate in a sequence, whereby, in a first step of the sequence, the first gate is opened to allow one or more insects to enter from the proximal portion into the central portion, in a second step of the sequence, the first gate is closed, and in a third step of the sequence, the second gate is opened to allow one or more insects to enter from the central portion through the distal portion into the surrounding space.
[0048] In an exemplary embodiment, the entrance gate assembly includes a trap door configured to allow insects to enter the nest while preventing them from exiting the nest.
[0049] In an exemplary embodiment, the pollination system further includes one or more servo motors for opening and closing the first and second gates.
[0050] In an exemplary embodiment, the vision system includes a camera.
[0051] In an exemplary embodiment, the camera is disposed above at least one of the exit gate assembly or the entrance gate assembly.
[0052] In an exemplary embodiment, the camera is disposed below at least one of the exit gate assembly or the entrance gate assembly.
[0053] In an exemplary embodiment, the exit gate assembly and the entrance gate assembly share a first common wall.
[0054] In an exemplary embodiment, the first common wall is made of a transparent material.
[0055] In an exemplary embodiment, the camera is arranged to capture images of insects within the exit gate assembly and the entrance gate assembly through the first common wall.
[0056] In an exemplary embodiment, the exit gate assembly and the entrance gate assembly share a second common wall.
[0057] In an exemplary embodiment, the second common wall is made of a translucent material.
[0058] In an exemplary embodiment, the pollination system further comprises an illumination system arranged to direct light through the second common wall.
[0059] In an exemplary embodiment, the first common wall is on the opposite side of the second common wall.
[0060] In an exemplary embodiment, the controller comprises a computing unit.
[0061] In an exemplary embodiment, the computing unit comprises a bee detection module configured to detect the positions of insects within the exit gate assembly and the entrance gate assembly at a given time based on image data generated by a vision system.
[0062] In an exemplary embodiment, the bee detection module is configured to output wide-area insect position data in a horizontal and vertical reference coordinate system at that time.
[0063] In an exemplary embodiment, the computing unit further comprises a central part bee number estimation module configured to estimate the current number of insects in the central part of the exit gate assembly based on the insect position data.
[0064] In an exemplary embodiment, the current number of insects in the central part is estimated using an exponential filter.
[0065] In an exemplary embodiment, the computing unit further comprises an insect tracking module configured to generate insect number adjustment data related to the number of insects entering and exiting the entrance gate assembly.
[0066] In an exemplary embodiment, the insect tracking module tracks the number of insects entering and exiting the entrance gate assembly by tracking the trajectories of the insects in the entrance gate assembly within a predetermined period to determine an increase or decrease in the number of insects in the surrounding space.
[0067] In an exemplary embodiment, the insect tracking module uses filtering techniques to generate the insect number adjustment data.
[0068] In an exemplary embodiment, the filtering techniques include Kalman filtering, nearest neighbor, extended Kalman filtering, or unscented Kalman filtering.
[0069] In an exemplary embodiment, the computing unit further comprises a command logic module configured to determine insect count data related to the number of bees in the housing based on insect count adjustment data, insect release data, and reset data, the reset data being associated with a scheduled rest period during which the hive is closed and the insect count data is reset, the insect release data being associated with the number of bees released by the exit gate assembly, and the command logic module being configured to determine control data for the operation of the exit gate assembly based on the insect count data, insect count limit data, and reset data.
[0070] In an exemplary embodiment, the scheduled rest period begins during a nighttime period and ends during a daytime period following the nighttime period.
[0071] In an exemplary embodiment, the computing unit further comprises an exit gate control module configured to operate the first and second gates based on control data generated by the command logic control module.
[0072] In an exemplary embodiment, the exit gate control module is further configured to generate insect release data based on the number of insects released from the exit gate assembly.
[0073] In an exemplary embodiment, the insect hive is a bee hive and the insects are bees.
[0074] A pest management system according to an exemplary embodiment of the present invention comprises a card configured to hold pests that land on or fly towards the card, a scanner configured to generate image data associated with an image of the pests held on the card, and a neural network configured through training to receive the image data and process the image data to generate a corresponding output including identification data related to the pests.
[0075] In an exemplary embodiment, the image data includes gigapixel images.
[0076] In an exemplary embodiment, the output includes a report that provides pest information based on the identification data.
[0077] In an exemplary embodiment, the pest information includes the class of pests, the number of pests, or the percentage of each pest type.
Brief Description of the Drawings
[0078] The features and advantages of the exemplary embodiments of the present invention can be more fully understood by referring to the following detailed description when interpreted in conjunction with the accompanying drawings.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13A
Figure 13B
Figure 14
Figure 15
Figure 16A
Figure 16B
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25A
Figure 25B
Figure 26
Figure 27
Figure 28
Figure 29A
Figure 29B
Figure 29C
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34A
Figure 34B
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43
Figure 44
Figure 45
DETAILED DESCRIPTION OF THE INVENTION
[0079] In an exemplary embodiment, the present invention is described in the context of vertical farming, but it should be understood that one or more of the various components, systems, and processes described herein can be applied to other types of agriculture such as indoor farming, outdoor farming, greenhouse farming, vertical farming, and non-vertical farming.
[0080] As described herein, various components of the vertical farming system of the present invention are fixed, while other components are not. In this regard, the term "fixed" should be construed to mean fixed in place, such as in the case of a manufacturing fixture that holds a workpiece in a fixed position during a manufacturing process. As a more specific example related to the present invention, a robot may be fixed to an immovable platform within a manufacturing environment, but may be fixed in the sense that it can otherwise move freely to perform manufacturing operations. In contrast, non-fixed components can move freely from point to point within the vertical farming system and are not fixed in place.
[0081] FIG. 1 shows the layout of a vertical farming system, generally designated by reference numeral 1, in accordance with an exemplary embodiment of the present invention. The vertical farming system 1 includes a housing 10 that houses the main components of the system 1. In an exemplary embodiment, the housing 10 may be a clean room, and in order to minimize the transport of fine particles by people moving within the housing 10, operators and other personnel can enter and exit through an airlock, with or without an air shower stage, and can wear protective clothing such as hoods, face masks, gloves, boots, and coveralls. The housing 10 may be a stand-alone structure or part of a facility that includes a plurality of housings 10, and in an exemplary embodiment, may be a section surrounded by the walls of a warehouse, shipping container, or other generally enclosed room.
[0082] The vertical farming system 1 includes a plurality of racks 20 configured to hold crops growing within an accommodation environment provided by a housing 10. In an exemplary embodiment, the racks 20 are configured to move along a generally rectangular path within the housing 10, as indicated by arrow A. In this regard, the vertical farming system 1 can include a conveyor system 40 to which the racks 20 are attached and moved within the housing 10. In an exemplary embodiment, as will be described in more detail below, the conveyor system 40 can include tracks along which the racks 20 are guided as they move through the housing 10. The vertical farming system 1 can include a plurality of housings 10 having corresponding racks 20 and conveyor systems 40, each housing 10 preferably being sealed from other housings 10 to prevent cross-contamination.
[0083] In an exemplary embodiment, the crops cultivated in the vertical farming method 1 can be, for example, flowering crops such as strawberries, tomatoes, melons, peppers, eggplants and berries, and non-flowering crops such as leafy vegetables, root vegetables and mushrooms, to name a few. Further, the crops to be cultivated can include, for example, woody crops such as citrus fruits, apples, nuts and olives, and staple crops such as wheat, rice and corn, to name a few.
[0084] As shown in the illustration, the housing 10 is split in half to provide both a daytime cycle and a nighttime cycle. As will be described in more detail below, during the daytime cycle, lighting is provided to simulate sunlight to stimulate crop growth, while during the nighttime cycle, no lighting is provided. In an exemplary embodiment, the daytime and nighttime cycles may be based on any number of total hours, such as, for example, 6 hours, 12 hours, 24 hours or more. For example, if the "day" or the total number of hours of the light cycle is 24 hours, the number of hours that make up the daytime cycle may be 12 hours, and the number of hours that make up the nighttime cycle may be 12 hours, or any other arbitrary time period that sums to the total 24-hour light cycle. The number of hours in a "day" is not limited to 24 hours, and in an exemplary embodiment, the number of hours in each "day" may be less than or greater than 24 hours, and it should be understood that each "day" may have a different total number of hours (e.g., the first day is 22 hours, the second day is 26 hours, the third day is 20 hours, etc.). In an exemplary embodiment, the number of hours of the daytime cycle may or may not be equal to the number of hours of the nighttime cycle. For example, if the number of hours in a "day" is 24 hours, the daytime cycle is 14 hours and the nighttime cycle is 10 hours. Further, in an exemplary embodiment, the number of hours of the daytime cycle and the number of hours of the nighttime cycle may vary from day to day.
[0085] The two halves of the housing 10 may be made of, for example, plastic, cloth, metal panels (insulated or not), or any other suitable material, and may be divided by a partition 12 that is opaque enough to prevent a significant amount of light from entering the nighttime portion of the housing 10. In an exemplary embodiment, instead of the partition 12, the housing 10 may be divided into separate rooms, with one room providing the daytime cycle and the other room providing the nighttime cycle.
[0086] System 1 further includes a harvesting station 500 and an operator platform 65. As will be described in more detail below, the harvesting station 500 may be a robotic harvesting station that includes one or more robots controlled to harvest ripe or semi-ripe fruits or vegetables as the crops ripen. The operator platform 65 can include components such as scaffolds, ladders, and lifts to enable the operator to access the rack 20 at various heights as the operator passes by the rack 20. In an exemplary embodiment, the harvesting station 500 and the operator platform 65 are generally stationary as compared to the rack 20 that moves around the housing on the conveyor system 40. The harvesting station 500 and the operator platform 65 can be placed at any point within the housing 10, such as at both ends of the housing 10, in the center of the housing 10, or on the side of the housing 10. The harvesting station 500 and the operator platform 65 may be placed directly adjacent to each other at the same position within the housing 10, or may be spaced apart from each other at different positions within the housing 10. In an exemplary embodiment, a plurality of harvesting stations 500 and / or a plurality of operator platforms 65 can be placed throughout the housing 10.
[0087] System 1 also includes an irrigation system composed of one or more irrigation stations 70 disposed at spaced positions along the path of the rack 20. As will be described in more detail below, the irrigation station 70 is generally stationary as compared to the rack 20 and operates to supply water or a water-fertilizer solution (referred to herein as "irrigation fluid") to the crops held on each rack 20 and to drain water or the water-fertilizer solution from the rack 20.
[0088] Figures 2-4 illustrate a rack 20 according to an exemplary embodiment of the present invention. The rack 20 includes a vertical central frame 22 that holds a plurality of troughs 24 mounted to a conveyor system 40 and oriented horizontally. The rack 20 is shown as having eight troughs 24, but it should be understood that each rack 20 can include any number of troughs 24, such as four, six, ten, twelve, or more troughs 24. In an exemplary embodiment, the rack 20 does not include outer frame elements and instead, due to the rigidity of the overall structure, plant holders can be supported on a single vertical central frame 22. Alternatively, the rack 20 can include any number of vertical and / or horizontal elements, such as outer frame elements, to provide sufficient support and strength to the rack 20. The troughs 24 are stacked on the central frame 22 and vertically spaced apart from each other, and each trough 24 is attached to the central frame 22 at approximately the longitudinal center of the trough 24 to optimize balance. The rack 20 can include mounts 31 for holding the troughs 24. Casters 23 may be disposed at the bottom of the central frame 22 so that the rack 20 can move along the floor of the housing 10. The rack 20 may be made of, for example, aluminum, plastic, or other types of rigid materials. In an exemplary embodiment, the rack 20 is fabricated using any suitable construction technique, such as welding or three-dimensional printing.
[0089] FIG. 8 is a perspective view of the system 1 according to an exemplary embodiment of the present invention, showing a rack 20 moving on a conveyor system 30 through a fixed scaffold 15 that can hold, for example, lighting systems (including luminaires) and irrigation system components. In the exemplary embodiment shown in FIG. 8, the night cycle portion and the daylight cycle portion of the housing 10 are arranged in a straight line with respect to each other such that each rack 20 follows a loop having a long section that is half of the night cycle portion and half of the daylight cycle portion. However, as shown in FIG. 1, it should be understood that the night cycle portion and the daylight cycle portion of the housing 10 may be arranged side by side such that each rack 20 follows a loop having a long section that is entirely in the daylight cycle portion and another long section that is entirely in the night cycle portion. It should also be understood that the rack 20 can follow any other path within the housing 10 that allows for differences in lighting over a selected period, with one or more sections of various lengths.
[0090] As clearly shown in FIG. 9, due to the cantilever structure of the scaffold 15, the rack 20 can move freely between the scaffolds 15 and align with the fixed irrigation station 70. In this regard, as shown in FIG. 10, the scaffold 15 can include a cross-piece 17 extending in the moving direction of the rack 20, and the cross-piece 17 can have an opening through which a set of lighting fixtures 18 can extend in the horizontal direction (and transverse to the moving direction of the rack 20). This allows the lighting fixtures 18 to be held in a fixed position in a cantilever arrangement so that the rack 20 can pass through the scaffold without interference. For example, as shown in FIG. 9, the central frame 22 of each rack 20 can pass between the cantilevered lighting fixtures 18 extending in opposite directions from both sides of each scaffold 15. In an exemplary embodiment, the scaffold 15 can hold multiple sets of lighting fixtures 18, and each set is disposed at a specific height above the corresponding trough 24 of the rack 20. This arrangement enables all the plants in each trough 24 within each rack 20 to be exposed to an appropriate amount of light when the rack 20 passes through the system 1. The lighting fixtures 18 are fixedly held on the scaffold 1 when the rack 20 passes through each scaffold 15 on the conveyor system 40. This overall configuration is advantageous in that it does not require excessive wiring, cause accidents, and / or result in damage to the lighting components or other components of the system 1, and there is no need to move the lighting components around the housing 10 to simulate the day-night cycle. Another advantage of this configuration is that there is no need to turn off or dim the lighting to simulate night, and the lighting components can simply be omitted from the night cycle portion of the housing 10, thus requiring less control of the lighting components. Instead of or in addition to this, the lighting components may be provided in the night cycle portion of the housing 10 with less light provided compared to the lighting components provided in the day cycle portion of the housing 10.
[0091] In an exemplary embodiment, the lighting fixture 18 can include a light source such as, by way of example and not limitation, incandescent, fluorescent, halogen, LED (light emitting diode), laser, or HID (high intensity discharge) light sources. The lighting system can include intensity control and drivers so that the intensity of the light can be adjusted for different plant species and / or different parts of the growth cycle.
[0092] FIG. 3 is a more detailed view of the bottom of the rack 20 according to an exemplary embodiment of the present invention. The rack 20 includes a guide bar 21 to which vertically oriented rollers 26 are attached and on which casters 23 are mounted. The guide bar 21 is fixed to the central frame 22 and extends substantially parallel to the trough 24. As will be described in more detail below, the casters 23 and the rollers 26 are sufficiently spaced apart from each other to allow the casters 23 and the rollers 26 to traverse along the conveyor system 40, while the guide bar 21 provides sufficient rigidity to the rack 20 such that the rack 20 remains stable during movement within the conveyor system 40. In an exemplary embodiment, the rack 20 can include bumpers 27 disposed on the guide bar 21 and / or any other part of the rack 20 to avoid damage to the rack 20 in the event of contact with another rack 20 or any other object that may be in the path of the rack 20.
[0093] FIG. 4 is a more detailed view of the top of the rack 20 according to an exemplary embodiment of the present invention. A top mount assembly 29 is disposed at the upper end of the rack 20 for the purpose of attachment to a conveyor system 40, which may be an overhead conveyor. In this regard, the top mount assembly 29 can include clamps, brackets, or other structural components configured to attach to the conveyor system 40. In an exemplary embodiment, the top mount assembly 29 includes a swivel so that the rack 20 remains in the same orientation about a turn.
[0094] As most clearly shown in FIGS. 3 and 4, each trough 24 includes a series of plant holders 25 into which one or more plants and a corresponding amount of growth medium can be inserted. Although each trough 24 is shown with 16 plant holders 25, it should be understood that each trough 24 can include any number of plant holders 25. Also, although the plant holders 25 are shown as being arranged in a single row, each trough 24 can include any number of rows of plant holders 25 and can have any number of plant holders 25 in each row. Further, although the trough 24 is shown as a generally rectangular component, it should be understood that the trough 24 can have any other shape and the plant holders 25 can be arranged along any surface of the trough 24. In an exemplary embodiment, the plant holder 25 is an opening formed in the trough 24, and such an opening can be circular in shape to accommodate a circular plant pot or can have any other suitable shape. In an exemplary embodiment, the plants within each plant holder 25 may or may not be held in a pot. For example, the plants can be held directly in each plant holder 25 without a corresponding plant pot. Further, in an exemplary embodiment, the rack 20 can carry the plants such that the roots of the plants are exposed to enable use of an aeroponic system, in which case the plant holders 25 can be omitted.
[0095] In an exemplary embodiment of the present invention, each trough 24 includes an upper filling opening 30 and a side discharge opening 32. As will be described in more detail below, the upper filling opening 30 allows the irrigation station 70 to fill each trough 24 with irrigation fluid, and the side discharge opening 32 allows the irrigation station 70 to discharge the irrigation fluid. It should be understood that each trough 24 can include one or more drains located at any other position around the trough 24, such as at the bottom of the trough 24, or may not include a drain. In an exemplary embodiment, the irrigation fluid can be discharged directly from the trough 24 to the floor of the housing 10 via a vertical support.
[0096] Conveyor system
[0097] Figures 5 and 6 show the bottom of the conveyor system 40 according to an exemplary embodiment of the present invention. The bottom of the conveyor system 40 includes a guide assembly 41 consisting of an internal guide rail 42A, an external guide rail 42B, and a track 44 that guides the rollers 26 of the rack 20 so that the rack 20 follows a predetermined path within the housing 10. In this regard, the guide rails 42A, 42B generally guide the rack 20 along a straight section of the path, while the track 44 generally guides the rack 20 along a curved section of the path. For example, the track 44 may be disposed within the conveyor system 40 where the rack 20 is shifted to another section of the path, and in this regard, may include one or more toggle switches 45. As shown in FIG. 6, each rack 20 is transported to a position such that each caster 23 of the rack 20 follows each of the tracks 44 while ensuring that the rack 20 remains facing the same direction and follows another section of the path. In the embodiment shown in FIG. 6, as indicated by the arrows, one caster 23 of the rack 20 (in this case, the right caster 23) is guided from the external guide rail 42B to the internal guide rail 42A via the switching means 45, and the other caster 23 (in this case, the left caster 23) is guided from the internal guide rail 42A to the external guide rail 42B. The rollers 26 are spaced apart so as to remain in contact with the guide rails 42A, 42B while the rack 20 is moving along the conveyor system 40. In an exemplary embodiment, the casters 23 may or may not be in direct contact with the floor of the housing 10 while the rack 20 is moving through the conveyor system 40. For example, the casters 23 may not contact the floor while the rack 20 is moving along the guide rails 42A, 42B, and may contact the floor (or the bottom surface of the track 44) when the rack 20 is moving on the track 44. In this regard, the casters 23 provide additional stability to the rack 20 while the rack 20 is being switched in the opposite direction.
[0098] FIG. 7 is a top view of a conveyor system 40 according to an exemplary embodiment of the present invention. The conveyor system 40 includes a conveyor 47 that moves a rack 20 along a guide assembly 41 across the entire housing 10. The conveyor 47 may be, for example, a powered overhead conveyor, a synchronous powered overhead conveyor, an asynchronous powered overhead conveyor (such as a power and free conveyor, etc.), an open track overhead conveyor, or a closed track overhead conveyor. In an exemplary embodiment, the conveyor system 40 is not limited to an overhead conveyor, and it should be understood that other exemplary embodiments may include conveyors that drive the rack 20 from the bottom, from the bottom and the top, or from any other point on the rack 20. Further, the conveyor system 40 is not limited to the range in which the racks 20 are individually moved, and it should be understood that in other exemplary embodiments, the racks 20 may be connected to each other and conveyed as a single unit. In an exemplary embodiment, the conveyor 47 may include components such as, for example, one or more chains, one or more trolleys, one or more brackets, one or more drive units, one or more take-up units, and one or more electrical control units. Suitable conveyors are available, for example, from Rapid Industries (Louisville, Kentucky, USA), Ultimation Industries, LLC (Roseville, Michigan, USA), Daifuku (Osaka, Japan), and Richards-Wilcox Conveyor (Aurora, Illinois, USA).
[0099] Irrigation system
[0100] FIG. 11 is a partial view of an irrigation station, generally designated by reference numeral 70, according to an exemplary embodiment of the present invention. Any number of irrigation stations 70 can be disposed within the housing 10, and in the exemplary embodiment, the number of irrigation stations 70 can be in the range of 5 to 15, or less than or more than this range. The irrigation station 70 includes a support structure 71 that holds a plurality of irrigation sub-assemblies 74. Each irrigation sub-assembly 74 includes a tank 76, a piston assembly 78, a stopper 79, a spigot assembly 80, and a discharge tray 82. An overflow pipe 84 is in fluid connection with each tank 76, and the lower end of the overflow pipe 84 is in fluid connection with the main discharge pipe 86. Each irrigation sub-assembly 74 is disposed at a corresponding height such that as the rack 20 moves to a position adjacent the irrigation station 70, each trough 24 of the rack 20 is aligned with a corresponding one of the irrigation sub-assemblies 74. As will be described in more detail below, this allows each trough 24 in the rack 20 to be filled with irrigation fluid and then drained of the irrigation fluid from each trough 24 before the rack 20 moves downstream.
[0101] FIG. 12 shows the flow of irrigation fluid during filling and draining of the trough 24 by the irrigation station 70. The irrigation fluid is introduced into the irrigation station 70 from the main irrigation fluid supply of the upper irrigation sub-assembly 74, enters therein, and begins to fill the corresponding tank 76. When the filling process starts, the piston assembly 78 moves the stopper 79 to engage the sidewall of the trough 24, thereby closing the side discharge opening 32 of the uppermost trough 24. The irrigation fluid is then supplied from the tank 76 of the uppermost irrigation sub-assembly 74 to the corresponding spigot assembly 80, and then the irrigation fluid is supplied to the trough 24 through the upper filling opening 30. The draining process can be started after a predetermined period during which the plants in the trough 24 are sufficiently immersed. The immersion period can be any suitable period, for example, 30 seconds, 1 minute, or 2 minutes.
[0102] During the discharge process, the piston assembly 78 moves the stopper 79 away from the side discharge opening 32, thereby enabling the irrigation fluid from the upper trough 24 to be discharged onto the discharge tray 82 of the upper trough 24. The discharge tray 82 guides the discharged irrigation fluid from the uppermost trough 24 to the tank 76 of the next irrigation sub-assembly 74 directly below the uppermost irrigation sub-assembly. Next, the next irrigation sub-assembly 74 can perform the same filling and discharge process for the trough 24 directly below the uppermost trough 24 using the associated piston assembly 78, stopper 79, and spigot assembly 80. Then, the irrigation process continues downward until the lowermost trough is irrigated and discharged, and any overflow irrigation fluid in the tank is discharged into the overflow pipe 84 and the main discharge pipe 86. The main discharge pipe 86 may be connected to other irrigation stations 70 throughout the housing 10 so that the irrigation fluid from each irrigation station 70 can be recirculated to the main irrigation fluid supply. In this regard, the main discharge pipe 86 may be connected to a main tank (not shown) that holds the irrigation fluid supplied to the main irrigation fluid supply at the upper part of each irrigation station 70.
[0103] The irrigation station 70 is not limited to the above description. In other exemplary embodiments, each tank 76 of each irrigation sub-assembly 74 may be supplied with irrigation fluid separately, rather than each sub-assembly 74 depending on the irrigation fluid discharged from the trough 24 directly above it. In such a case, it should be understood that the irrigation fluid may be discharged directly from the trough 24, for example, into the main discharge pipe. In another exemplary embodiment, each sub-assembly 74 may not have a corresponding tank 76. Instead, it may have a supply-discharge line through which the irrigation fluid is delivered to the upper end of the corresponding trough 24 and then pumped from the trough 24.
[0104] Figures 13A and 13B show the trough 1024 according to another exemplary embodiment of the present invention. The trough 1024 includes a lower end 1027, a side portion 1028, and an upper end 1029. The upper end 1029 includes a plurality of openings 1030 configured to hold a planted or unplanted plant. The height of the trough 1024 varies from the maximum height of the proximal end of the trough 1024 to the minimum height of the distal end. The trough 1024 can include a pocket 1025 at the proximal end thereof to assist in the irrigation process, as described in more detail below.
[0105] During the irrigation process, the irrigation supply point 70 configured by the spigot 72 fills the trough 1024 with irrigation fluid and then, when full, sucks the fluid out of the trough 1024. In this regard, the spigot 72 is automatically controlled to move to a predetermined position within the trough 1024 for filling and can then remove the fluid using the same spigot 72 or a separate suction line (not shown). The spigot 72 can be positioned at a fixed position above the pocket 1034 to enable more efficient filling of the trough 1024 while avoiding spillage.
[0106] FIG. 14 shows an irrigation system generally indicated at 1030 according to an exemplary embodiment that can be used with the trough 1024. The irrigation system 1030 includes a tank 1032 that can be disposed within or above the housing 10. During the irrigation process, the irrigation fluid is pre-filled in the tank 1032. The filling of the tank 1032 starts from the leftmost tank 1032, through a valve such as a ball valve or a solenoid, for example, and may overflow to the right within the tank 1032. Each tank 1032 can include a water level sensor that detects when each tank 1032 is filled with an appropriate amount of water. Then, a lifting mechanism 1034, such as a pneumatic cylinder, for example, can be controlled to lower the spigot 72 into the trough. A flexible hose 1036 can be used to enable the spigot 72 to move up and down relative to the fixed piping. Then, the ball valve 1038 from each tank 1032 can be opened to allow the irrigation fluid to flow from the tank 1032 into the trough 1024. After the trough 1024 has been immersed for a predetermined time, the ball valve 1038 closes and the self-priming pump 1040 can be turned on to pump the irrigation fluid from the trough 1024. A "Y" PVC fitting can be used to allow the irrigation fluid to flow naturally into the trough 1024 rather than through the pump during the filling sequence. After pumping is complete, the lifting mechanism 1034 is controlled to lift the spigot 72 from the trough 1024. An ultrasonic or other type of level sensor can be attached to the end of the spigot 72 to detect whether the filling and discharge sequences were successful. In an exemplary embodiment, low-level and high-level sensors can be added to the tank 1032 to ensure proper operation, and / or an overflow pipe can be used to ensure that the amount of fluid in each tank does not exceed a predetermined amount (the "predetermined amount" can refer to the desired amount of fluid sent to the trough when the valve is opened). Also, in an exemplary embodiment, the lifting mechanism 1034 can use proximity sensors to ensure proper movement.
[0107] FIG. 15 shows an irrigation system generally designated by reference numeral 1130, according to another exemplary embodiment that can be used with the gutter 1024. The irrigation system 1130 includes a tank 1132. Filling of the tank 1132 starts from the uppermost tank 1132 through a valve such as, for example, a ball valve or solenoid and can overflow into the lower tank 1132. Each tank 1132 can include a water level sensor that detects when each tank 1132 is filled with an appropriate amount of fluid. During the filling sequence, a three-way valve 1138, which may be an electric ball valve, is actuated to allow the flow of irrigation fluid from the tank 1138 to the gutter 1024. After the soaking time, the three-way valve 1138 is reversed to connect the pump 1140 to the gutter 1024. Each pump 1140 is turned on to draw irrigation fluid from its respective gutter 1024 into the tank 1138 directly below the pump 1140. A lift mechanism 1134, such as, for example, a pneumatic cylinder, can be controlled to lower and raise the spigot 72 with respect to the gutter. A flexible hose 1136 can be used to allow the spigot 72 to rise and fall with respect to the fixed piping. By lifting the spigot 72, it becomes possible to label without rack interference, and by lowering it, it becomes possible to initiate the flood and drain sequence. To detect whether the filling and draining sequences were successful, an ultrasonic or other type of level sensor can be attached to the end of the spigot 72. In an exemplary embodiment, low and high fluid level sensors can be added to the tank 1132 to ensure proper operation. Also, in an exemplary embodiment, the lift mechanism 1134 can use proximity sensors to ensure proper movement.
[0108] In an exemplary embodiment, drip irrigation techniques can be used to supply water directly to individual pots. Typically, a pressurized line and flow control emitter are used to balance the amount of water supplied to each plant. However, in a mobile plant system, it is often difficult to pressurize the irrigation system. In these types of systems, it is more practical to use gravity to move the water.
[0109] Figures 16A and 16B show a drip irrigation system, generally designated by reference numeral 1230, in accordance with an exemplary embodiment of the present invention. System 1230 provides a mechanism for delivering substantially equal amounts of water to pots with a limited head height. Specifically, system 1230 includes sub - assemblies 1240 (only one sub - assembly is shown in FIGS. 16A and 16B), and each sub - assembly 1240 is associated with a corresponding trough 1024. Sub - assembly 1240 includes a fixed spigot 1242, a funnel 1244, a plurality of reservoirs 1246, and a plurality of tubes 1248 each connected to a corresponding one of the plurality of reservoirs 1248. Spigot 1242 supplies a fixed amount of irrigation fluid to funnel 1244. The total volume of irrigation fluid delivered is sufficient to irrigate the total number X of plants held by trough 1024 at one time. Funnel 1244 has X openings at the base of the funnel 1244. When irrigation fluid is added to funnel 1244, the funnel openings divide the fluid into X small streams. In this regard, funnel 1244 narrows near the openings, thereby allowing a small amount of fluid to form a consistent head height above the openings. This results in X flows having similar flow rates. Each flow from funnel 1244 is captured by a corresponding one of the plurality of reservoirs 1246. Each tube 1248 is connected to the base of a corresponding one of the plurality of reservoirs 1248 and is sent to a corresponding one of the individual pots, thereby delivering fluid to the pots. If the tubes 1248 were connected directly to the funnel without the intermediate reservoirs 1246, tube resistance and elevation differences would result in non - uniform distribution of water. Reservoirs 1246 function as a buffer to allow the pre - distributed amount of water to flow to the individual pots at any rate allowed by tubes 1248. An overflow channel can be added to reservoirs 1248 to detect whether an individual tube 1248 is clogged.
[0110] In the irrigation system according to an exemplary embodiment of the present invention, it should be understood that various sensors and control modules can be used to perform the delivery of irrigation fluid to plants within the housing 10 in a controlled manner. For example, sensors can be used to detect the flow, level, and other parameters related to the perfusion fluid, as well as the operating state of the components of the perfusion system, and the information obtained by the sensors can be used by the control module to operate the various components of the perfusion system according to an exemplary embodiment of the present invention. Thus, in an exemplary embodiment of the present invention, the irrigation system may be partially or fully automated.
[0111] Environmental control system
[0112] In an exemplary embodiment, system 1 further includes an environmental control system configured to maintain a target profile (including, but not limited to, air temperature, relative humidity, air velocity, airborne particle count, and carbon dioxide concentration) within enclosure 10. For example, the environmental control system can control the air temperature and / or other parameters within enclosure 10 to vary over a 24-hour period (or any other predetermined photoperiod) to simulate morning, midday, and evening temperatures that optimize crop growth. FIG. 17 shows the components of an environmental control system, generally designated by reference numeral 100, according to an exemplary embodiment of the present invention. Temperature control system 100 includes one or more HVAC units 102 and one or more air circulation units 104 disposed within enclosure 10. The former mainly controls air temperature and relative humidity, and the latter focuses on air velocity. HVAC unit 102 can be disposed on the ceiling or inside of enclosure 10, and each HVAC unit 102 is mainly disposed within the corresponding daytime / nighttime half of enclosure 10. Air circulation unit 104, which can include a circulation fan, can be disposed on scaffold 15 at points throughout enclosure 10 to circulate the environmentally conditioned air generated by HVAC unit 102. By separating the air flow unit and the HVAC unit in this way, the air flow through enclosure 10 can be improved while minimizing environmental fluctuations, thereby enabling minimization of energy consumption, downsizing of equipment, and reduction of restrictions on the overall height of system 1.
[0113] In an exemplary embodiment, the environmental control system 100 varies the air temperature, relative humidity, and air velocity within the housing such that as each rack moves around the housing 100 during half of the day and night, the rack 20 encounters a temperature, humidity, and velocity change profile that simulates day - to - night environmental conditions. The environmental variations can occur over a 24 - hour period or some other predetermined period. For example, as shown in FIG. 18, each rack 20 can pass through an environmental variation profile within a predetermined period at a minimum temperature range of 8°C to 10°C at a relative humidity above 85%, and a maximum temperature range of 25°C to 30°C at a relative humidity of 60% to 80%. It should be understood that the present invention is not limited to these temperature or relative humidity ranges, and in other exemplary embodiments, the environmental conditions can be higher or lower than these ranges. For example, the minimum temperature range can be lower than 8°C to 10°C, and the maximum temperature range can be higher than 25°C to 30°C. Further, in an exemplary embodiment, the humidity during the day can be controlled in the range of 60% to 80% relative humidity, and the humidity at night can be controlled in the range of 75% to 95% relative humidity. In this regard, the HVAC unit 102 can be controlled using feedback from sensors such as, for example, an air temperature sensor, a humidity sensor, a wind speed sensor, and a CO2 sensor, which are, by way of several examples, arranged at various points within the housing 10, installed at fixed positions, and / or fixed to the rack 20 such that the sensor can measure the entire plant environment as the rack 20 moves within the housing 10. In a more specific example, each rack 20 encounters the minimum temperature of the temperature change profile within the night half of the housing 10 and the maximum temperature within the day half of the housing. The temperature and other environmental parameters can be controlled to gradually change to the appropriate day - time range as the rack 20 progresses into and through the day half, and to gradually change to the appropriate night - time range as the rack 20 progresses from the day half to the night half. The environmental conditions can be selected based on many factors such as, for example, the type of crop, the desired harvest time, and energy efficiency.
[0114] FIG. 19 shows an environmental control system, generally designated by reference numeral 2100, in accordance with an exemplary embodiment of the present invention. The environmental control system 2100 includes a plenum region within the housing 10 that facilitates air circulation. The plenum region can include plenum walls 2110A, 2110B that separate the plenum region from other regions of the housing 10. In this regard, the plenum walls 2110A, 2110B can be made of an insulating material such as, for example, a plastic sheet, cloth, metal panel, or any other suitable material. Some or all of the plenum walls 2110A, 2110B can include slits or other openings that allow conditioned air to circulate between the plenum region and other regions of the housing.
[0115] As described above, the environmental control system 2100 includes one or more HVAC units 2102A, 2102B and one or more air circulation units 2104A, 2104B disposed within the housing 10. The HVAC units 2102A, 2102B can be disposed at the upper portion of the housing 10, such as, for example, the ceiling, and each HVAC unit 2102A, 2102B is mainly disposed within a corresponding half of the housing 10 during the day / night. The air circulation units 2104A, 2104B can be disposed on the scaffold 15 at points throughout the housing 10 to circulate the conditioned air generated by the HVAC units 2102A, 2102B. As shown in FIG. 19, the plenum walls 2110A, 2110B can be disposed to separate the housing 10 into a day / night portion. For example, the plenum wall 2110A can be disposed closest to the side wall of the housing, and another plenum wall 2110B can be disposed closest to the opposite side wall of the housing. Two other plenum walls 2110C, 2110D are disposed between the two side plenum walls 2110A, 2110B, thereby forming a day portion 2120 on one side of the housing 10 and a night portion 2130 on the opposite side of the housing 10. One or more air flow baffles 2114 can be disposed throughout the system 2100 to direct the air flow in an appropriate direction.
[0116] FIG. 20 shows the conditioning and circulation of air within the enclosure 10 resulting from the operation of the environmental control system 2100. During the day portion 2120, conditioned air (shown by arrow A) is sent from the HVAC unit 2102A down through the plenum area to the bottom of the area of the enclosure 10 where the rack 20 is housed. This air then passes through the rack 20 (and associated plants) and acquires heat and humidity. The recirculated air (shown by arrow B) is sent back to the HVAC unit 2012A and is also mixed with the conditioned air via the air circulation unit 2104A. The circulated air can then be reconditioned and recirculated through the rack 20 again. During the night portion 2130, conditioned air (shown by arrow C) is sent downward from the HVAC unit 2102B to the bottom of the side plenum within the duct, and the cold air within the duct is blown laterally onto the rack. The warmed air (shown by arrow D) is drawn from the top and bottom of the rack within the duct and returned to the HVAC unit 2102B to be conditioned. In an exemplary embodiment, the air circulation units 2104A, 2104B are used to create climate uniformity.
[0117] In an exemplary embodiment, the cooling capacity can be provided by a system including components such as unit coolers, duct systems with air conditioners, direct expansion units, and combinations thereof. In an exemplary embodiment, air can also be delivered directly to individual plants using air ducts such as air ducts mounted in the same orientation as the aforementioned lighting fixture 18.
[0118] Pest management system
[0119] In an exemplary embodiment, the vertical farming system 1 includes a pest management system generally designated by reference numeral 200. As shown in FIG. 21, the pest management system 200 includes a card 210 to which an adhesive is applied that holds insects that may fly or crawl onto the card 210. In this regard, the card 210 can hold common crop pests such as aphids, thrips, beetles, and mites. These pests are, illustratively, in the size range of 0.5 mm to 10 mm and are often difficult to see and / or identify with the human eye. Over a period of time, for example, over a period of one hour or more, one day or more, and one month or more, thousands of insects may crawl or fly onto the card 210. In this process, the card 210 is scanned using a conventional flatbed scanner 220, thereby generating a corresponding gigapixel image 212 of the card 210. The gigapixel image 212 is then supplied to a pest recognition artificial intelligence model 230 configured to analyze and identify any pests from a large-scale image of such pests within the gigapixel image 212 of the card 210.
[0120] In an exemplary embodiment, each enclosure 10 within a farm composed of a plurality of enclosures 10 can include one or more cards 210 disposed in various sections of the enclosure 10. One or more cards 210 within each section may be scanned individually, or multiple cards may be scanned at once to generate a composite of the card images. In an exemplary embodiment, all cards from the same enclosure 10 are scanned at once to generate a gigapixel image. In an exemplary embodiment, each image 212 can have a size of, for example, 5 GB or more.
[0121] FIG. 22 is a diagram showing a process for generating a pest recognition artificial intelligence model 230 according to an exemplary embodiment of the present invention. In step S1101 of the process, training data is collected and stored in a database. The training data can include data associated with the characteristics of a specific pest type and tags associated with those pest types. For example, in the case of aphids, the training data can include data associated with the unique shape of aphids and tags associated with aphids identified based on the unique shape. For example, to name a few, a computer vision API (application programming interface) such as the AWS Rekognition API, Microsoft Computer Vision, or Google Cloud Vision API can be used to generate a training data set.
[0122] In step 1103 of the process, the neural network can be trained using the training data from step S1101. In this regard, the training data may be supplied to a neural network algorithm that applies appropriate weights to the input data or independent variables to determine an appropriate dependent variable, in which case one or more dependent variables are determined and combined to determine a final result (e.g., identification of a pest image in an image data set and classification of the identified pest). In an exemplary embodiment, the neural network algorithm may be implemented using a deep learning framework such as, for example, TensorFlow, Keras, PyTorch, MxNet, Chainer Caffe, Theano, Deeplearning4j, CNTK, and Torch.
[0123] In step S1105, the performance of the trained neural network is tested. For example, the trained neural network can be tested for, to name a few, accuracy, recall, F1 score, precision, intersection over union (IoU), mean absolute error (MAE).
[0124] In an exemplary embodiment, the pest recognition model 230 may be a machine learning recognition model such as, for example, a Support Vector Machine (SVM) model, a Bag of Feature Model, or a Viola-Jones Model. In an embodiment, the pest recognition model 230 may be a deep learning image recognition model such as, for example, Faster RCNN (Region-based Convolutional Neural Network), Single Shot Detector (SSD), You Only Look Once (YOLO), etc.
[0125] In an exemplary embodiment, the pest recognition AI model can generate a report indicating the presence or absence of pests within the section of the housing 10. Here, FIG. 23 shows an example of a report generated by the pest management system 200, including the type of pests identified within the housing, the number of detections, the percentage of each pest relative to the total number of all detected pests, etc. Links can also be provided to view the detections and / or scans.
[0126] In an exemplary embodiment, the results of the pest recognition model 230 in locating and identifying pests on the card 210 can be manually verified by a person visually spotting any pests by looking at the card 210. If pests are identified as a result of the pest recognition model and / or manual inspection, appropriate measures can be taken to remove the pests from the housing 10.
[0127] In an exemplary embodiment, pests not in the training set for inspection can be detected. In this regard, unsupervised and / or semi-supervised learning algorithms can be used to detect pests outside the original training set. A large unlabeled dataset of historical data and a small subset of labeled data can be used to bootstrap the AI training. Appropriate techniques that can be used in this regard include, among others, few-shot learning and anomaly detection.
[0128] Harvesting System
[0129] As described above, the system includes a harvesting station 500 which, in an exemplary embodiment, is fully automated using a robotic manipulator, a single-axis servo positioner, a conveyor, machine vision technology, and integrated handling and machine vision tools attached to artificial intelligence. In this regard, FIG. 24 is a block diagram of a harvesting station 500 according to an exemplary embodiment of the present invention. The harvesting station 500 includes one or more harvesting robots 552-1, 552-2... 552-n operably connected to a server 560 and a programmable logic controller (PLC) 556. Each of the harvesting robots 552-1, 552-2... 552-n may be operably connected to one or more corresponding edge devices 554-1, 554-2... 554-n, one or more corresponding Ethernet-IPC bridges 555-1, 555-2... 555-n, one or more corresponding frame synchronization modules 564-1, 564-2... 564-n, one or more corresponding calibration modules 566-1, 566-2... 566-n, one or more corresponding aggregator modules 574-1, 574-2... 574-n, and one or more corresponding safety modules 576-1, 576-2... 576-n, all of which may be present within the server 560. The server may also include a 3D module 572, an inference module 568, a training module 570, a memory 561, and a PLC module 562. The modules of the server 560 may be configured as software components, hardware components, or a combination of hardware components and software components. Further, one or more modules may be combined, and / or one or more modules may be separated into sub-modules. Although only one server 560 is shown in FIG. 24, a plurality of servers may be provided, and it should be understood that a plurality of enclosures 10 (or "farms") include one or more harvesting stations 500 associated with one or more of the plurality of provided servers.Also, although only one PLC 556 is shown in FIG. 24, it should be understood that the harvesting station 500 can include multiple PLCs, and each PLC is associated with one or more corresponding harvesting robots 552-1, 552-2... 552-n.
[0130] The harvesting robots 552-1, 552-2... 552-n include corresponding camera units 553-1, 553-2... 553-n. In an exemplary embodiment, the camera units 553-1, 553-2... 553-n may be stereo red-green-blue depth (RGBD) cameras such as, for example, an Intel (trademark) RealSense (registered trademark) D405 camera (Intel Corporation, Santa Clara, California, USA). For example, other types of cameras such as simple stereo, structured light, or solid state LiDAR may be used.
[0131] As will be described in more detail below, the harvesting station 500 operates to identify ripe fruits within a closed field of view of the crop environment and harvest the ripe fruits without causing damage to the plant or the environment. In an exemplary embodiment, the harvesting station 500 may also be configured to count the number of flowers within the housing 10 for proper control of the pollination system 300, as will be described in more detail below. The harvesting robots 552-1, 552-2... 552-n are fixed to a stationary platform such that the harvesting robots 552-1, 552-2... 552-n can access the crop and perform the harvesting process as the rack 20 moves along the conveyor system 40. As shown in FIGS. 25A and 25B, in an exemplary embodiment, the harvesting robots 552-1, 552-2... 552-n are six-axis robots and can include a plurality of joints and an end effector 555. The end effector 555 may be a gripper configured to grip the stem, cut the stem, and remove the ripened fruit, or the gripper may have a more claw-like configuration for directly gripping the fruit and pulling it out of the stem. Here, the end effector 555 may include a grip portion that holds the stem and a separate cutting portion that cuts the stem while the stem is held by the gripper portion. Thereby, the end effector 555 can place the harvested fruit that is still being gripped onto a tray or other storage / packaging component. As will be described in more detail below, the camera units 553-1, 553-2... 553-n operate to capture images of the crop and the surrounding environment to assist in the harvesting process. In an exemplary embodiment, the harvesting robot may be a commercially available robot such as, for example, a Yaskawa Motoman (Yaskawa America, Inc., Miamisburg, Ohio, USA) or a FANUC LR Mate (FANUC America Corporation, Rochester Hills, MI, USA).
[0132] As shown in Fig. 25A, the harvesting robots 552-1, 552-2…552-n may be fixedly held on the scaffold 590. The scaffold 590 may include a plurality of levels at which any number of harvesting robots 552-1, 552-2…552-n are supported so that any number of harvesting robots 552-1, 552-2…552-n can access the plants held on the rack 20. In this regard, when each rack 20 enters the harvesting station area, the rack 20 may be held in a fixed state to allow the harvesting robots 552-1, 552-2...552-n time to harvest the fruits. Once harvested, the fruits may be placed on a tray or other temporary storage component by the harvesting robots 552-1, 552-2...552-n, and then the tray or other temporary storage component may be transported to the packaging station by a separate conveyance system.
[0133] Edge devices 554-1, 554-2... 554-n process the image data captured by camera units 553-1, 553-2... 553-n into data that can be used by server 560 to perform various processes. In this regard, the edge devices 554-1, 554-2... 554-n can be devices such as, for example, NVIDIA (trademark) Jetson Nano (registered trademark) (NVIDIA Corporation, Santa Clara, California, USA), system-on-chip (SoC), single-board computer (SBC), Raspberry Pi (Cambridge, UK), Intel (trademark) Edison (Intel Corporation, Santa Clara, California, USA), and Intel (trademark) NUC. In an exemplary embodiment, the edge devices 554-1, 554-2... 554-n execute a camera driver and transmit information from the cameras to server 560 via Ethernet-IPC bridges 555-1, 555-2... 555-n. In this regard, the Ethernet-IPC bridges 555-1, 555-2... 555n can include, for example, a ZeroMQ bridge, a RabbitMQ bridge, a WebRTC gateway, or a gRPC bridge. The edge devices 554-1, 554-2... 554-n are configured to output the data to memory that can be a serialized message or payload transmitted via, for example, inter-process communication (e.g., shared memory, memory-mapped files, file descriptors, pipes, Unix domain sockets, etc.) along with a timestamp. The data placed in the memory can be the image data contained within a message container, and the message can have a binary serialization format such as, for example, Cap’n Proto, Protobuf, FlatBuffers, and JSON.
[0134] The Ethernet-IPC bridges 555-1, 555-2... 555n within the server 560 receive inputs from the edge devices 554-1, 554-2... 554-n and perform operations as described in more detail below. In this regard, messages are sent from the bridges of the edge devices 554-1, 554-2... 554-n and received by the corresponding Ethernet-IPC bridges 555-1, 555-2... 555n of the server 560 and then placed in the server memory 561. The server memory 561 (commonly referred to as IPC) is a module that facilitates communication between all the modules within the server 560. In FIG. 24, all the connections / arrows within the modules within the server 560 are made using the server memory 561 as a passing interconnect between the modules. In an exemplary embodiment, image messages may be passed from the edge devices 554-1, 554-2... 554-n to the Ethernet-IPC bridges 555-1... 555-n within the server 560, for example, at a rate of 30 times per second.
[0135] The PLC module 562 is configured to communicate with the PLC 556 to obtain the operating states of the harvesting robots 552-1, 552-2...552-n, and also to provide commands to the harvesting robots to execute harvesting, cutting-in, and other operations. These commands include, but are not limited to, the position for picking, the trajectory for the harvesting robot to perform picking, the verification of the success / failure of the execution of picking, the position for the placement of the picked liquid fruits / fruits, and the verification of the success / failure of the placement of the picked liquid fruits / fruits. In this regard, the PLC module 562 can determine the operating states of the harvesting robots 552-1, 552-2...552-n, such as, for example, where the robot is located, whether the robot is idle, and whether the robot is in the picking mode. The PLC module 562 can communicate with the PLC 556 using a conventional industrial communication protocol. The PLC module 562 places the robot operating state data in the memory module 561 for use by other modules on the server 560. The robot operating state data may be in a serialized memory format that describes what a particular robot or set of robots is doing at a given point in time.
[0136] Exemplary pseudo-code for the implementation of the PLC module 562 is as follows.
[0137]
Number
[0138] FIG. 26 is a flowchart showing a process executed by a PLC module 562 according to an exemplary embodiment of the present invention. In step S2601 of the process, the PLC module 562 reads the status of the robot and / or the firmware for each robot. In step S2603, if the PLC module 562 determines that the robot is in an idle state, the PLC module 562 skips the robot and analyzes the next robot. In step S2607, if it is determined that the robot is scanning, additional gutter information is read from the PLC 556, and then the PLC module 562 broadcasts the relevant notification message to various other modules using the memory module 561. In step 2611, if the PLC module 562 determines that the robot is performing calibration, picking, and / or placement, the relevant notification message is broadcast to various other modules using the memory module 561. In step S2615, if the PLC module 562 determines that the robot is waiting for pick data, the PLC module 562 reads the pick data from the safety module 576-n when the data is ready, and then outputs the pick data to the PLC 556 for the robot index. If the PLC module 562 cannot determine the status of the robot (e.g., an invalid or unknown state), the PLC module 562 returns an error message.
[0139] The frame synchronization modules 564-1...564-n are configured to directly read from the memory module 561 to obtain the image message and the robot operation status data, and synchronize the robot operation status with the captured image. In this regard, the frame synchronization modules 564-1...564-n can receive a notification indicating that they must find an appropriate image from the scanning event that matches the robot operation status every time the robots 552-1, 552-2...552-n start image scanning. Since the robots 552-1, 552-2...552-n are moving during the scanning event, the captured image may be blurred. Therefore, in an exemplary embodiment, the frame synchronization modules 564-1...564-n can downsample to capture separate image frames. For example, the downsampling may be one frame per second or some other frame capture rate. When the PLC module 562 receives the scanning event and confirms that the robot is not moving, the frame synchronization modules 564-1...564-n can select the captured image frame and output a synchronization frame message including information about the captured image frame and the corresponding robot operation status data to the memory module 561. Thus, the captured image frame is synchronized with the robot operation status at a specific point in time.
[0140] Exemplary pseudo-code for implementing the frame synchronization modules 564-1...564-n is as follows.
[0141]
Number
[0142] FIG. 27 is a flowchart showing a process executed by the frame synchronization module 564-n according to an exemplary embodiment of the present invention. In step S2701, the frame synchronization module 564-n receives image data and a time stamp from the memory module 561, and the image data is stored in an image buffer indexed by the time stamp. If the image buffer is too large, the oldest data may be dropped from the buffer to meet the maximum buffer limit. In step S2703, the frame synchronization module 564-n determines whether new event data is available. If so, the frame synchronization module 564-n adds the new event data to the event queue. If not, the frame synchronization module 564-n checks whether the oldest event in the queue can be processed. In an exemplary embodiment, an event can be processed if the event time stamp is close to the time stamp of the image in the image buffer. If such a match is found, the frame synchronization module 564-n packs the event data with the retrieved image into a message and then broadcasts the message to various modules in the pipeline using the memory module 561. Then, the processed event data can be removed from the queue.
[0143] The calibration modules 566-1... 566-n are configured to perform an initial calibration of the robots 552-1, 552-2... 552-n and the camera units 553-1, 553-2... 553-n or update an existing calibration using the synchronization frame messages generated by the frame synchronization modules 564-1... 564-n. In this regard, the PLC 556 may be placed in a calibration mode in which it causes the robots 552-1, 552-2... 552-n to make a plurality of movements while transmitting the associated captured images to the server 560. The calibration modules 566-1... 566-n can then use this information to perform internal and external calibrations of the camera units 553-1, 553-2... 553-n.
[0144] Exemplary pseudo-code for implementing calibration modules 566-1...566-n is as follows.
[0145]
Number
[0146] FIG. 28 is a flowchart showing the process performed by the calibration module 566-n according to an exemplary embodiment of the present invention. After an initial load of the calibration form settings (e.g., information to be calibrated, robot coordinate system information, etc.), the calibration module 566-n receives image data and timestamps from the memory module 561 (step S1-2801). In this step, duplicate input frames can be ignored and the image data can be unpacked. In step S1-2803, the calibration module 566-n detects and improves calibration points on the object to be calibrated. In step S1-2805, if a sufficient number of calibration points are detected within the frame, the calibration module 566-n adds the robot transformation, calibration points, and IDs to the buffer. In step S1-2807, when a sufficient number of robot transformations, calibration points, and IDs are collected from multiple images, the calibration module 566-n performs internal and external camera calibrations. Step S1-2807 includes sub-steps including step S2-2809, and the calibration module 566-n calculates internal camera parameters, 3D translations, and 3D rotation lists using known parameters from the object to be calibrated and from all aggregated calibration points and IDs. Step S2-2809 includes sub-steps including step S3-2811, and the calibration module 566-n starts an eye-in-hand camera calibration that loops through all robot transformations and inherently generated 3D translations and rotations. Step S2-2809 includes sub-steps including step S4-2813, and the calibration module 566-n adds the robot transformation and inherently generated 3D translations and rotations to the calibration backend. The backend excludes mathematically degenerate samples. In step S4-2815, when a sufficient number of samples are collected after removal of the mathematically degenerate samples, the calibration module 566-n calculates the external transformation. In step S4-2817, the calibration module 566-n saves the internal and external calibrations as a configuration map to Kubernetes (or other container orchestration tool).
[0147] The inference module 568 is configured to use the captured 2D image to generate a message including inference data arranged in the memory module 561. In this regard, the inference module 568 uses the results of the training module, i.e., the trained model, to perform inferences on the incoming real-time data. The inference module 568 can perform operations such as, for example, object detection, masking, ripeness detection, bounding box and keypoint detection. In an exemplary embodiment, the inference module 568 can use an object detection model and a separate keypoint detection model. In an exemplary embodiment, the inference module 568 can perform its operations using one or more neural networks such as, for example, Mask R-CNN, YOLOACT, Keypoint R-CNN, GSNet, Detectron2, and PointRend. In an exemplary embodiment, the inference module 568 can use one or more accelerators to improve speed and efficiency. Suitable accelerators include, for example, graphics processing units (GPUs), tensor processing units (TPUs), and field-programmable gate arrays (FPGAs). The input to the inference module 568 may be a synchronization frame message generated by the frame synchronization modules 564-1...564-n, and the output may be an inference output message including robot operation state data, the original input message, depth (as part of the RGBD data), mask, object detection, ripeness detection, bounding box, keypoint, and other related information.
[0148] An exemplary pseudocode of the inference module 568 is as follows.
[0149]
Number
[0150] FIG. 29A is a flowchart showing a process executed by an inference module 568 according to an exemplary embodiment of the present invention. After an initial load of the inference model, the inference module 568 receives image data from a memory module 561 (step S1-2901). In step S1-2903, the inference module 568 executes an inference on the image data. Step S1-2903 can include sub-steps in which the inference module 568 executes a mask and bounding box detection model in step S2-2905, the inference module 568 executes a keypoint and bounding box detection model in step S2-2907, the inference module 568 combines model outputs using, for example, a bounding box IoU and a Hungarian algorithm in step S2-2909, and the inference module 568 calculates the width, height, and ripeness of the berries in step S2-2911. In these steps, detections near the edges of the image may be discarded. In step S2-2913, the inference module 568 packages the detections into a message and, in step S2-2915, broadcasts the message to various modules in the pipeline using the memory module 561.
[0151] FIG. 29A is an image of a picking environment before executing the inference module 568 according to an exemplary embodiment of the present invention. FIG. 29B shows the output of the inference module including mask, bounding box, keypoint, and ripeness scoring. In an exemplary embodiment, the ripeness may be determined by the inference module 568 based on the color of the fruit and / or other parameters. The ripeness score can be based on a scale from 0 to 1, with lower range scores corresponding to "unripe" fruits, medium range scores corresponding to "ripening" fruits, and higher range scores corresponding to "ripe" fruits. It should be understood that the scoring is not limited to this scale or range.
[0152] The training module 570 prepares one or more object recognition and keypoint detection models that can use a neural network. This is preferably executed separately rather than as part of a real-time system. The training module 570 can train the model using publicly available datasets for strawberries and / or other parts of plants, such as, for example, the StrawDI and "Strawberry Harvest Point Location Maturity and Weight Estimation" datasets. The dataset may be in a standard format such as, for example, COCO, KITTI, and Cityscapes. Alternatively, the dataset may be a proprietary dataset generated using creation, management, and annotation.
[0153] The three-dimensional module 572 is configured to convert the captured two-dimensional image into three-dimensional image information based on the inference output message generated by the inference module 568. In this regard, the three-dimensional module 572 can perform operations such as, for example, calculating the width and height of the strawberry (in mm or other appropriate units of measurement), calculating the position of the stem relative to the camera, predicting the percentage of occlusion for a particular image, and adding parameters to a transformation tree that can include, for example, the global world frame, the relative position of the robot, the relative position of the camera, and the relative position of the strawberry. The input to the 3D module 572 is the full RGBD data from the cameras 553-1...553-n, as well as the 2D keypoints and 2D masks from the inference module 568. The three-dimensional module 572 integrates all of these components, fills in any holes, and corrects for camera calibration. The three-dimensional module 572 can generate a set of three-dimensional points representing the position of the strawberry relative to the camera that captured the image of the strawberry. Then, the position of the strawberry relative to the global world frame can be determined based on the known position of the robot from the robot motion state data and the position of the strawberry relative to the camera determined by the 3D module 572.
[0154] Exemplary pseudo-code for the implementation of the three-dimensional module 572 is as follows.
[0155] [Number]
[0156] Figure 30 is a flowchart showing the process performed by the three-dimensional module 572 according to an exemplary embodiment of the present invention. In step S1-3001, the 3D module 572 receives imaging data from the memory module 561. For each received image, the 3D module 572 executes steps S2-3003 to S2-3019. In step S2-3003, the 3D module 572 analyzes the depth image and the model output. In step S2-3005, the 3D module 572 searches for camera intrinsics. In step S2-3007, the 3D module 572 extracts 2D points for all keypoints in the detection of each berry and adds dimensions to the tensor. In step S2-3009, the 3D module 572 uses the camera intrinsics and the depth projection function to convert the 2D points into 3D points. In step S2-3011, the 3D module 572 calculates the 3D distance to determine the width and height of the berries in 3D space. In step S2-3013, the 3D module 572 sorts the 3D detections by the Z-axis (depth) for preparation of occlusion processing. In step S2-3015, the 3D module identifies and filters out significantly occluded points based on a predetermined maximum occlusion threshold. In step S2-3017, the 3D module packages the occlusion score, the 3D keypoints, and the associated model output into a message. In step S2-3019, the memory module 561 is used to broadcast the message to various modules in the pipeline.
[0157] The aggregator modules 574-1...574-n are configured to aggregate 3D image data and generate a world map of strawberries within a world frame using a plurality of 3D images. In this regard, the frame synchronization modules 564-1...564-n, the inference module 568, and the 3D module 572 can be "fired" only once per image so that the world map of strawberries is not known without aggregation of those images. In this regard, the aggregator modules 574-1...574-n can generate a world map using a plurality of collected 3D images, for example, from 1 to 16 images, to generate a world map of strawberries within the world frame. After the world map is projected onto the world frame, the aggregator modules 574-1...574-n can remove overlapping images and determine an ideal approach angle for the end effector 555. The ideal approach angle can be determined by determining the minimum occlusion image of a particular strawberry from a plurality of collected 3D images of that strawberry and then calculating the ideal approach angle based on the determined minimum occlusion image.
[0158] Exemplary pseudo-code for the implementation of the aggregator modules 574-1...574-n is as follows.
[0159]
Number
[0160] Figure 31 is a flowchart showing a process executed by the aggregator module 574-n according to an exemplary embodiment of the present invention. In step S3101, the aggregator module 574-n continuously receives point cloud data, and in step S3103, updates the conversion tree with a new conversion. In step S3105, the aggregator module 574-n converts the point cloud into a specified frame and filters and excludes points based on distance and ripeness criteria. In step S3107, the aggregator module 574-n resets the data cache for a new scan and aggregates the filtered data. When sufficient data is collected, in step S3109, the aggregator module 574-n performs clustering using, for example, density-based spatial clustering of applications with noise (DBSCAN) or hierarchical density-based spatial clustering of applications with noise (HDBSCAN). In step S3111, for each cluster, the aggregator module 574-n calculates a metric, selects a minimum occlusion scan, and determines the best selection points including angle, height, and width. The clusters can be filtered based on error and ripeness and sorted for picking order. In step S3113, the aggregator module 574-n uses the memory module 561 to package the data into messages and broadcast the messages to various modules in the pipeline.
[0161] The safety modules 576-1...576-n are configured to determine whether a particular strawberry pick is within the boundary. In this regard, the safety modules 576-1...576-n can determine whether a particular pick violates one or more rules based on the output of the aggregator modules 574-1...574-n. One or more rules can relate to, for example, a predetermined area where the pick should be restricted, the approach angle being within a predetermined safety angle, and, to mention a few examples, whether the pick causes the robot to function outside of safety parameters.
[0162] Exemplary pseudo-code for embedding security modules 576-1...576-n is as follows.
[0163]
Number
[0164] Figure 32 is a flowchart showing a process executed by the security module 576-n according to an exemplary embodiment of the present invention. After initialization where the security module 576-n is configured with a predetermined safety zone (per robot) including acceptable boundaries along the X, Y, and Z axes, the security module 576-n executes steps S3203 to S3209 for each incoming message (step S3201) including the 3D pick position from a set of scans. In step S3203, the security module 576-n extracts the cluster centroid from the received message. In step S3205, the security module 576-n filters the pick position based on the safety zone and discards clusters based on the acceptable boundaries along the X, Y, and Z axes. In step S3207, the security module 576-n generates an output message excluded by the filtering, and in step S3209, broadcasts the message to various modules in the pipeline using the memory module 561.
[0165] Pollination system
[0166] In an exemplary embodiment, system 1 can include a pollination system that stores one or more beehives and periodically releases a large number of bees, and the number of bees is determined based on the number of flowers in housing 10 or any other factor related to bee pollination. In this regard, FIG. 33 is a block diagram of a pollination system, generally designated by reference numeral 300, according to an exemplary embodiment of the present invention. The pollination system 300 includes a beestation 310, a server 330, and a camera robot 350. The beestation 310, the server 330, and the camera robot 350 can communicate via a network 380, such as, for example, a wide area network or a local area network. Each housing 10 can include one or more beestations 310.
[0167] Figures 34A and 34B show simplified block diagrams of both sides of a beehive station, generally designated by reference numeral 310, in accordance with an exemplary embodiment of the present invention. The beehive station 310 includes a honeycomb 312 held within a honeycomb housing 314. The honeycomb housing 314 may be any commercially available beehive box, such as NATUPOL® (Koppert Biological Systems, Inc., Howell, MI, USA), for example. A beehive gate system, generally designated by reference numeral 320, is attached to the honeycomb housing 314. The beehive gate system 320 includes a honeybee exit gate assembly 322 and a honeybee entrance gate assembly 330 arranged side by side with each other. As will be described in more detail below, a vision system including a camera 340 is disposed above the honeybee exit gate assembly 322 and the honeybee entrance gate assembly 330 to track the movement of honeybees entering and exiting the honeycomb, whereby the honeybee exit gate assembly 322 can be used to control the number of honeybees within the housing 10. The honeybee exit gate assembly 322 and the honeybee entrance gate assembly 330 share an upper wall 350 that can be made of a transparent material, such as plexiglass or clear acrylic, for example. An illumination system 352 is disposed below the beehive gate system 320 to backlight the honeybees within the beehive gate system 320 to enable the camera 340 to see the honeybees. The illumination system 352 may be, for example, an LED strip. The honeybee exit gate assembly 322 and the honeybee entrance gate assembly 330 also include a shared bottom wall 351 that can be made of a translucent material, such as frosted glass or translucent acrylic, for example.
[0168] The bee exit gate assembly 322 includes a proximal portion 324, a central portion 326, and a distal portion 328. The proximal, central, and distal portions 324, 326, 328 are divided by a first gate and a second gate 323, 325. As will be described in more detail below, the gates 323, 325 are controlled to allow only a predetermined number of bees to exit the beehive at a time, depending on the pollination requirements. In this regard, the first gate 323 may first open to allow some bees to enter from the proximal portion 324 into the central portion 326, then close the first gate 323, and then open the second gate 325 to allow the bees from the central portion 326 to enter the housing 10 through the distal portion 328.
[0169] The bee entrance gate assembly 330 includes a trap door 332 that allows bees to enter the hive but does not allow any bees to exit the hive. In an exemplary embodiment, the trap door 332 may be provided separately as part of the hive housing 314 or integrated as part of the bee gate system 320.
[0170] FIG. 35 is a top cross-sectional view of a beehive gate system 320 according to an exemplary embodiment of the present invention. A slot 354 is formed through a portion of an upper wall 350 on a honey bee exit gate assembly 322 corresponding to movement of a first gate and a second gate 323, 325 between an open configuration and a closed configuration. If a trap door 332 is provided as part of the beehive gate system 320, a separate slot (not shown) can be provided in the trap door 332 (otherwise, if the trap door 332 is provided separately from the hive housing 314, a separate slot may not be necessary). The honey bee exit gate assembly 322 and the honey bee entrance gate assembly 330 are separated by a wall 416. A platform 402 is disposed adjacent to the honey bee exit gate assembly 322 and the honey bee entrance gate assembly 330 to support other components of the beehive gate system 320, such as components for controlling the operation of the first and second gates 323, 325 that can include, for example, a servo motor. A sensor may also be used to control the operation of the first and second gates 323, 325 and may be disposed on the lower side of the beehive gate system 320 connected via a bolt in a hole 409 having a sensing slot 419.
[0171] FIG. 36 is a perspective view of the bee station 310 according to an exemplary embodiment of the present invention. As described above, the bee station 310 includes a hive housing 314 and a bee gate system 320, both of which may be supported on a common base plate 313. In addition to the components described above, the bee gate system 320 further includes an upper housing 342, a lower housing 344, and an intermediate housing 346 disposed between the upper housing and the lower housings 342, 344. The upper housing 342 encloses a computing unit that will be described in more detail below. The intermediate housing 346 functions to surround the focal length spacer of the camera 340. The lower housing 344 encloses an illumination system 352 among other components. The bee exit gate assembly 322 and the bee entrance gate assembly 330 are disposed between the lower housing and the intermediate housings 344, 346. The platform 402 supports components including, for example, a first servo motor 348 for the first gate 323 and a second servo motor 349 for the second gate 325.
[0172] FIG. 37 is an exploded view of the bee gate system 320 according to an exemplary embodiment of the present invention. Disposed within the upper housing 342 is a computing unit that can include, for example, a printed circuit board 364 and a single board computer 360. The single board computer 360 may be, for example, a Raspberry Pi (Cambridge, UK), a BeagleBoard (Michigan, USA), or a Nano Pi (Guangdong Province, China). The computing unit may also include a Power over Ethernet (PoE) connection 362 such as a Raspberry Pi PoE HAT.
[0173] As also shown in FIG. 37, a spacer 366 that separates the first gates 323, 325 from the second gate 325 is provided on the axle of the platform 402, and sensors 368A, 368B corresponding to the first gate 323 and the second gate, respectively, are provided below the platform 402.
[0174] The beehive gate system 320 can receive power and data via a PoE connection and is controlled by a single-board computer 360 operably connected to the camera 340 and the lighting system 352. The printed circuit board 364 is operably connected to the single-board computer 360, two sensors 368A, 368B, and two motors 348, 349.
[0175] FIG. 38 is a block diagram showing various computer modules of a beehive computing unit, generally designated by reference numeral 370, according to an exemplary embodiment of the present invention. The computing unit includes a bee detection module 372, a bee exit gate central portion bee count estimation module 374, a bee tracking module 376, a bee counter module 378, an exit gate control module 382, and a command logic module 380.
[0176] The bee detection module 372 uses image data from the camera 340 to detect the positions of bees in various regions of the bee exit and bee entrance assemblies 322, 330. In this regard, the bee detection module 372 can return global bee position data related to the positions of bees within the proximal, central, and distal portions 324, 326, 328 of the bee exit assembly 322 and within the bee entrance assembly 330. Each bee detected in the various regions may be given (x, y) coordinates, where the x coordinate is with respect to the horizontal axis and the y coordinate is with respect to the vertical axis.
[0177] Exemplary pseudo-code for the implementation of the bee detection module 372 is as follows.
[0178]
Number
[0179] Figure 40 is a flowchart showing the process executed by the bee detection module 372 according to an exemplary embodiment of the present invention. The camera is initialized with a specified resolution, sensor mode, and frame rate, and the raw capture array is set to hold the output of the camera. In step S1-4001, the bee detection module 372 continuously captures frames from the camera in an infinite loop. In step S1-4003, the current frame is converted to grayscale. In step S1-4005, the bee detection module 372 determines whether the camera has been calibrated. If the camera has not been calibrated, in step S1-4007, the bee detection module 372 attempts to calibrate it. If it is determined that the camera has been calibrated (or after calibration in step S1-4007), the bee detection module 372 detects bees in the frame using threshold processing and morphological operations (S1-4009). Step S1-4009 includes sub-steps S2-4011 to S2-4019. In step S2-4011, the bee detection module 372 calculates the number of bees entering / leaving at the bee entrance assembly 330 by calling the bee tracking module 376. In step S2-4013, the bee detection module 372 calculates the number and position of bees in different regions (e.g., bee nests, airlocks, farms, bypasses) based on the processed image. In step S2-4015, the bee detection module 372 estimates the area filling rate based on the detected bees and a predetermined region mask. In step S2-4017, the bee detection module 372 generates a message containing the detection results including the position, number, and area filling rate of the bees, and broadcasts the message to various modules in the pipeline. The bee detection module 372 can also check for re-calibration and reset requests and respond by re-calibrating the camera or resetting the tracking system as needed.
[0180] The central part bee count estimation module 374 estimates the current number of bees in the central part 326 of the bee exit assembly 322 using the bee position data. In this regard, the bee counter estimation module 374 can estimate the current number of bees in the central part 326 using an exponential filter. Exemplary pseudo-code for implementing the central part bee count estimation module 374 is as follows.
[0181]
Number
[0182] Figure 41 is a flowchart showing the process executed by the central part bee count estimation module 374 according to an exemplary embodiment of the present invention. In step S4101, the central part bee count estimation module 374 receives from the message the current detected number of bees in the airlock. In step S4103, the central part bee count estimation module 374 adjusts the bee count estimation using an exponentially weighted moving average, modified to give more weight to higher recent readings. This adjustment accounts for the tendency of the sensor to undercount by increasing the weight (alpha) when more counts are observed. In step S4105, the central part bee count estimation module 374 returns the updated estimated bee count of the airlock available for use by other modules.
[0183] The bee tracking module 376 tracks the number of bees entering and leaving the bee entrance assembly 330. In this regard, a bee may enter the bee entrance assembly 330 but does not necessarily have to enter the beehive. In some cases, a bee may exit the bee entrance assembly 330 without entering the beehive at all. Therefore, the bee tracking module 376 tracks the trajectories of the bees within the bee entrance assembly 330 over a predetermined period to determine an increase or decrease in the number of bees within the housing 10. The bee tracking module 376 can use filtering techniques to generate bee tracking data, and the filtering techniques can include, for example, Kalman filtering, nearest neighbor, extended Kalman filtering, and unscented Kalman filtering. Thereafter, the bee tracking data is used by the bee tracking module 376 to generate bee number adjustment data for subtracting or adding the number of bees within the housing 10.
[0184] Exemplary pseudo-code for the implementation of the bee tracking module 376 is as follows.
[0185]
Number
[0186] Figure 42 is a flowchart showing a process executed by the bee tracking module 376 according to an exemplary embodiment of the present invention. In step S4201, the bee tracking module 376 filters the detections to include only detections within the bypass region. In step S4201, the bee tracking device converts the filtered detections into an array of centroids representing the positions of the detected bees. In step S4204, the bee tracking module 376 updates the tracking device with the centroids, which manage the tracking of individual bees across frames and return the updated centroid positions along with previous positions and tracking information. In step S4206, the bee tracking module 376 calculates a modified center point ("bypass_cx") of the bypass region and ensures that it is a non-integer value. This adjustment is important to prevent an exact match with the center point and can introduce an error in the calculation of the direction of movement. In step S4208, the bee tracking module 376 iterates over the current and previous centroid positions and calculates the change in position relative to the modified bypass center. In step S4210, for each bee, the bee tracking module 376 determines whether the bee has crossed the midpoint of the bypass region by checking the signed change in its position relative to "bypass_cx". In step S4212, the bee tracking module 376 returns a net delta representing the overall movement of the bees crossing the bypass region at the current time step.
[0187] The command logic module 378 generates control data for the exit gate control module 382 to cycle the opening of the first and second gates 323, 325. The control data can be based on the bee limit setting, the current bee count data, and the scheduled rest period. The scheduled rest period can occur at the start of the night period, at which point the hive door is closed, and then the count can be reset and the hive door can open at the start of the next day period. The command logic module 378 tracks the number of bees in the housing to generate the bee count data based on the bee count adjustment data generated by the bee tracking module 376, the bee release data generated by the exit gate control module 382 (described below), and the reset data.
[0188] An exemplary pseudo-code of the command logic module 378 is as follows.
[0189]
Number
[0190] Figure 43 is a flowchart showing the process executed by the command logic module 378 according to an exemplary embodiment of the present invention. As part of the initialization procedure, the command logic module 378 attempts to load the state file from memory and uses the default if the state file does not exist. In step S4301, the command logic module 378 executes a received mode override that checks for any manual override commands that may have been sent to change the operating mode of the airlock. In step S4303, the command logic module 378 updates the system with the new bee population limit received from an external source and saves these updates to memory. This ensures that the system maintains the latest operating parameters even after a restart. In step S4305, the command logic module 378 performs a manual update of the bee count, enabling manual correction or adjustment of the bee count while saving these changes to the state file. In step S4307, if a reset is executed on a daily schedule, the command logic module 378 resets the bee count to 0 and writes this reset state to memory. In step S4309, the command logic module 378 waits and then processes new bee detection data. In step S4311, the instruction logic module 378 updates the controller with the latest state of the airlock motor. In step S4313, the command logic module 378 adjusts the internal bee count based on the net change (delta) in the number of bees detected by the bee tracking module 376 as passing through the bee entrance assembly 330. In step S4315, the command logic module 378 applies a series of logical checks and balances to determine the next state of the airlock, integrating manual overrides, environmental conditions (time-based limits), and operational requirements (e.g., excessive bee discharge or airlock locking). In step S4317, the command logic module 378 calls the central part bee count estimation module 374 for the exponentially weighted moving average of the number of bees in the airlock.In step S4319, the command logic module 378 communicates the updated number of bees and any changes in the airlock state to an external system. In step S4321, the command logic module 378 issues a command to change the airlock state based on the determined necessity, and the new state is stored in memory such that the system can reliably resume its current operating state after an interruption.
[0191] The exit gate control module 382 operates the first and second gates 323, 325 based on control data generated by the command logic control module 380. When bees are released from the exit gate assembly 322, the exit gate control module 382 generates bee release data based on the number of bees released. The bee release data is then fed back to the command logic module 378 to adjust the number of bees. Exemplary pseudo-code for implementing the exit gate control module 382 is as follows.
[0192]
Number
[0193] FIG. 44 is a flowchart showing a process executed by the exit gate control module 382 according to an exemplary embodiment of the present invention. As part of the initialization procedure, the exit gate control module 382 obtains an initial gate state from a sensor and determines the motor angle necessary to achieve or maintain this state. The target state is set to match the current state, establishing a baseline for operation. In step S4401, the exit gate control module 382 obtains the current gate state from the sensor in each iteration to understand the real-time position of the gate. In step S4403, if the gate is not currently moving (the "isMoving" property returns "False"), the exit gate control module 382 listens for new state commands from the subscribed socket. Upon receiving a command, the exit gate control module 382 issues a command to adjust the motor accordingly (the "send_motor_state_command" method), aiming to transition the gate to the requested state. In step S4407, the exit gate control module 382 updates the motor commands to manage speed, address potential sticking problems, and disengage the motor if necessary, regardless of movement. In step S4409, after processing the incoming message and updating the motor state, the exit gate control module 382 creates a message containing the current motor state and, in step S4411, broadcasts the message to various modules within the pipeline.
[0194] FIG. 39 is a flowchart showing the operation of an exit gate assembly 322 according to an exemplary embodiment of the present invention. The process shown in FIG. 39 can be repeated periodically, for example, every 5 seconds, or every 10 seconds, or every minute, or any other arbitrary period. In step S01 of the process, the first gate 323 is opened to allow bees to enter the first and second portions 324, 326 of the bee exit assembly 322. In step S03, the first gate 323 is closed, which can occur at a preset time after the first gate 323 was first opened. In step S05, both the first and second gates 323, 325 are kept closed for a certain period to allow the number of bees to settle. This step provides sufficient time for the bee tracking module 376 to track the number of bees entering and leaving the bee entrance assembly 330 and for the central portion bee number estimation module 374 to estimate the current number of bees in the central portion 326. In step S07, the second gate 325 is opened to release the bees from the central portion 326. In step S10, after it is determined that the central portion 326 is empty (step S09), bee release data is sent to the bee counter module 378 to adjust the number of bees in the housing 10. Next, in step S11, the second gate 325 is closed.
[0195] In an exemplary embodiment, the camera robot 350 can be on a fixed platform and include a vision system configured to identify and count the number of flowers of a crop as the rack 20 passes by the robot 350. In other exemplary embodiments, the number of flowers may be determined using a vision system integrated within the harvesting system 500, such as within the harvesting robots 552-1, 552-2...552-n. The vision system may be configured to recognize flowers at various growth stages and provide an analysis of the ripeness of the fruit. The vision system can implement machine vision image processing techniques such as, for example, stitching / registration, filtering, thresholding, pixel counting, segmentation, edge detection, color analysis, blob detection and extraction, template matching, gauging / measurement, neural network / deep learning / machine learning processing pattern recognition including comparison with a target value to determine a "pass / fail" or "go / don't go" result.
[0196] The beehive station as described herein is not limited to use in an indoor vertical farming environment. In other exemplary embodiments, it should be understood that the beehive station of the present invention can be used in other agricultural environments such as, for example, outdoor agriculture, indoor agriculture, conventional agriculture, and greenhouse agriculture. For the purposes of this disclosure, a system of one or more computers configured to perform a particular operation or action means that software, firmware, hardware, or a combination thereof that causes the operation or action to be performed on the system is installed on the system during operation. That one or more computer programs are configured to perform a particular operation or action means that the one or more programs include instructions that, when executed by a data processing apparatus, cause the apparatus to perform the operation or action.
[0197] The embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware including the structures disclosed in this specification and their structural equivalents, or one or more combinations thereof. The embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., as one or more modules of computer program instructions encoded on a tangible non-transitory program carrier for execution by, or to control the operation of, a data processing apparatus. Alternatively or in addition, the program instructions can be encoded in an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to a suitable receiver device for execution by a data processing apparatus. A computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random access or serial access memory device, or a combination of one or more of them. However, a computer storage medium is not a propagated signal.
[0198] The term "data processing apparatus" encompasses, by way of example, programmable processors, computers, or other kinds of devices, apparatuses, and machines for processing data, including a plurality of processors or computers. The apparatus can include dedicated logic circuitry, such as, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0199] A computer program (also referred to as a program, software, software application, module, software module, script, or code, or may be described as such) can be described in any form of programming language, including a compiled language or an interpreted language, or a declarative language or a procedural language, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may or may not correspond to a file in a file system. The program can be stored as part of a file that holds other programs or data, for example, one or more scripts stored in a markup language document, a single file dedicated to the program in question, or multiple coordinated files, for example, files that hold one or more modules, subprograms, or portions of code. A computer program can be deployed to be executed on one computer, or on one site, or distributed across multiple sites and executed on multiple computers interconnected by a communication network.
[0200] As used herein, "engine" or "software engine" refers to a software implementation input-output system that provides an output different from the input. An engine can be an encoded block of functionality such as a library, platform, software development kit ("SDK"), or object. Each engine can be implemented on any suitable type of computing device, for example, a server, mobile phone, tablet computer, notebook computer, music player, e-book reader, laptop or desktop computer, PDA, smartphone, or other fixed or portable device that includes one or more processors and a computer-readable medium. Further, two or more of the engines may be implemented on the same computing device or on different computing devices.
[0201] The processes and logical flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating input data to produce output. The processes and logical flows can also be performed by, for example, a dedicated logic circuit such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit), and the apparatus can also be implemented as a dedicated logic circuit.
[0202] Computers suitable for the execution of a computer program can be based on, by way of example, general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit receives instructions and data from a read only memory or a random access memory or both. Essential elements of a computer are a central processing unit for executing or performing instructions, and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks, or is operatively coupled to receive data from, transfer data to, or both of these. However, a computer need not have such devices. Further, a computer can be embedded in another device, e.g., a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable memory device, e.g., a universal serial bus (USB) flash drive.
[0203] Computer-readable media suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, media, and memory devices including semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, dedicated logic circuitry.
[0204] To provide for interaction with a user, embodiments of the subject matter described herein can be implemented on a computer having a display device for displaying information to the user, such as a CRT (cathode ray tube) monitor, an LCD (liquid crystal display) monitor, or an OLED display, as well as an input device for providing input to the computer, such as a keyboard, a mouse, or a computer having a touch-sensitive display or other surface. Other kinds of devices can be used to provide for interaction with a user as well, for example, feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and input received from the user can be received in any form including acoustic, speech, or tactile input. Further, the computer can interact with a user by sending a web page to a web browser on a user's client device in response to a request received from, for example, the web browser, as well as by sending resources to and receiving resources from the device used by the user.
[0205] Embodiments of the subject matter described in this specification can be implemented in a computing system that includes, for example, backend components as a data server, or includes middleware components such as, for example, an application server, or includes a frontend component, such as a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication, such as, for example, a communication network. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), such as the Internet.
[0206] A computing system can include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship between a client and a server arises by computer programs running on respective computers and having a client-server relationship to each other.
[0207] This specification includes many specific implementation details, but these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular invention. Specific features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented separately in multiple embodiments or in any suitable partial combination. Further, although features may be described above as acting in a particular combination and may even be initially claimed as such, one or more features from the claimed combination may, in some cases, be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
[0208] Similarly, although operations are shown in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in a sequential order, or that all of the operations shown be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Further, the separation of the various system modules and components in the foregoing embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products.
[0209] FIG. 45 is a block diagram showing an exemplary machine learning platform for implementing various aspects of the present invention, according to some exemplary embodiments of the present invention.
[0210] System 1500 can include a data input engine 1510 that can further include a data search engine 1504 and a data conversion engine 1506. The data search engine 1504 can be configured to access, interpret, request, or receive data that can be adjusted, reformatted, or changed (e.g., to be interpretable by other engines such as the data input engine 1510). For example, the data search engine 1504 can request data from a remote source using an API. The data input engine 1510 can be configured to access, interpret, request, format, reformulate, or receive input data from the data source 1502. For example, the data input engine 1510 can be configured to use the data conversion engine 1506 to perform a restructuring or other change of the data such as data dimensionality reduction. The data source 1502 may be present in one or more memories and / or data storages. In some embodiments, the data source 1502 may be associated with a single entity (e.g., an organization) or multiple entities. The data source 1502 can include one or more of training data 1502a (e.g., input data for feeding a machine learning model as part of one or more training processes), validation data 1502b (e.g., data against which at least one processor can compare model output to determine, for example, model output quality), and / or reference data 1502c. In some embodiments, the data input engine 1510 can be implemented using at least one computing device. For example, data from the data source 1502 can be obtained via one or more I / O devices and / or network interfaces. Further, the data may be stored in a suitable storage or system memory (e.g., during the execution of one or more operations). The data input engine 1510 may also be configured to interact with a data storage device, which may be implemented on a computing device that stores data in a storage device or system memory. System 1500 can include a characterization engine 1520.The feature extraction engine 1520 can include a feature annotation and labeling engine 1512 (configured to annotate or label features from a model or data that can be extracted by the feature extraction engine 1514, for example), a feature extraction engine 1514 (configured to extract one or more features from a model or data, for example), and / or a feature scaling and selection engine 1516. The feature scaling and selection engine 1516 can be configured to determine, select, limit, constrain, concatenate, or define features (e.g., AI capabilities) for use in an AI model. The system 1500 can also include a machine learning (ML) modeling engine 1530, which can be configured to perform one or more operations on a machine learning model (e.g., model training, model reconstruction, model validation, model testing) such as those described in the processes described herein. For example, the ML modeling engine 1530 can perform operations for training a machine learning model such as adding, deleting, or modifying model parameters. The training of the machine learning model can be supervised, semi-supervised, or unsupervised. In some embodiments, the training of the machine learning model can include passing data (e.g., training data 1502a) through a plurality of epochs or a machine learning model process (e.g., a training process). In some embodiments, different epochs can have different degrees of supervision (e.g., supervised, semi-supervised, or unsupervised). The data to the model for training the model can include input data and / or data previously output from the model (e.g., forming recursive learning feedback) (such as described above). Model parameters can include one or more of a seed value, model nodes, model layers, algorithms, functions, model connections (e.g., between other model parameters or between models), model constraints, or any other digital components that affect the output of the model. Model connections can include or represent relationships between model parameters and / or models that can be dependent or interdependent, hierarchical, and / or static or dynamic.The combinations and configurations of model parameters and the relationships between model parameters discussed in this specification are cognitively infeasible for the human mind to maintain or use. While not limiting the disclosed embodiments in any way, a machine learning model can include millions, trillions, or billions of model parameters. The ML modeling engine 1530 can include a model selection engine 1532 (configured, for example, to select a model from among a plurality of models based on input data), a parameter selection engine 1534 (configured, for example, to add, remove, and / or modify one or more parameters of a model), and / or a model generation engine 1536 (configured, for example, to generate one or more machine learning models according to model input data, model output data, comparison data, and / or verification data, etc.). Similar to the data input engine 1510, the characterization engine 1520 can be implemented on a computing device. In some embodiments, the model selection engine 1532 can be configured to receive an input and / or transmit an output to the ML algorithm database 1590. Similarly, the characterization engine 1520 can utilize storage or system memory to store data and can utilize one or more I / O devices or network interfaces to transmit or receive data. The ML algorithm database 1590 (or other data storage) can store one or more machine learning models, any of which may be fully trained, partially trained, or not trained at all.The machine learning model can be, without limitation, one or more (e.g., in the case of a meta-model) of a statistical model, an algorithm, a neural network (NN), a convolutional neural network (CNN), a generative neural network (GNN), a Word2Vec model, a bag of words model, a term frequency-inverse document frequency (tf-idf) model, a generative pre-trained transformer (GPT) model (or other autoregressive model), a proximal policy optimization (PPO) model, a nearest neighbor model (e.g., a k-nearest neighbor model), a linear regression model, a k-means clustering model, a Q-learning model, a temporal difference (TD) model, a deep adversarial network model, or any other type of model further described herein, or can include them.
[0211] System 1500 can further include a prediction output generation engine 1540, an output verification engine 1550 (configured to apply verification data to machine learning model outputs, for example), a feedback engine 1570 (configured to apply feedback from a user and / or machine to the model, for example), and a model improvement engine 1560 (configured to update or reconfigure the model, for example). In some embodiments, the feedback engine 1570 can receive an input and / or transmit an output (e.g., an output from a trained, partially trained, or untrained model) to the result metric database 1580. The result metric database 1580 may be configured to store outputs from one or more models and may be configured to associate the outputs with one or more models. In some embodiments, the result metric database 1580 or another device (e.g., the model improvement engine 1560 or the feedback engine 1570) can be configured to correlate outputs, detect trends in the output data, and / or infer changes to inputs or model parameters to cause a particular model output or type of model output. In some embodiments, the model improvement engine 1560 can receive an output from the prediction output generation engine 1540 or the output verification engine 1550. In some embodiments, the model improvement engine 1560 can transmit the received output to the characterization engine 1520 or the ML modeling engine 1530 in one or more iterative cycles.
[0212] Specific embodiments of the subject matter are described. Other embodiments are within the scope of the following claims. For example, the acts recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes shown in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain embodiments, multitasking and parallel processing may be advantageous.
[0213] Although the present invention has been described in detail in this way, it will be understood by those skilled in the art that many physical changes exemplified in the detailed description of the present invention can be made without changing the concepts and principles of the present invention embodied therein. It is also to be understood that numerous embodiments incorporating only some of the preferred embodiments are possible and that, with respect to those portions, the concepts and principles of the present invention embodied therein are not changed. Therefore, the present embodiment and any configuration should be regarded as illustrative and / or exemplary in all respects and not restrictive, and the scope of the present invention is indicated by the appended claims rather than the foregoing description, and accordingly, all alternative embodiments and modifications to the present embodiment falling within the meaning and scope equivalent to the said claims should be included.
Explanation of Signs
[0214] 1 Vertical farming system 10 Housing 15 Scaffold 18 Lighting fixture 20 Rack 21 Guide bar 23 Caster 24 Gutter 25 Plant holder 26 Roller 27 Bumper 29 Top mount assembly 30 Upper filling opening 32 Side discharge opening 31 Mount 40 Conveyor system 41 Guide assembly 42A Internal guide rail 42B External guide rail 44 Track 45 Switching means 47 Conveyor 65 Operator platform 70 Irrigation station 71 Support structure 74 Irrigation sub-assembly 76 Tank 78 Piston assembly 79 Stopper 80 Spigot assembly 82 Discharge tray 84 Overflow pipe 500 Harvesting station
Claims
1. At least one housing separated into a daytime section and a nighttime section, A plurality of racks disposed within the at least one housing and configured to hold plants, A conveyor system configured to move the plurality of racks through the daytime and nighttime sections of the at least one housing, At least one of an irrigation system, a lighting system, or a harvesting system disposed within the at least one housing and fixed to the plurality of racks, A vertical farming system comprising the above.
2. Each of the plurality of racks A central frame, A plurality of gutters disposed on the central frame, The vertical farming system according to claim 1, comprising the above.
3. Each of the plurality of racks further comprises at least one of a roller or a caster disposed on the central frame, the vertical farming system according to claim 2.
4. Each of the plurality of gutters comprises one or more plant holders, the vertical farming system according to claim 2.
5. Each of the plurality of gutters comprises at least one of a filling opening for supplying irrigation fluid to the gutter or a discharge opening for discharging irrigation fluid from the gutter, the vertical farming system according to claim 2.
6. Each of the plurality of racks comprises a top mount assembly configured to be attached to the conveyor system, the vertical farming system according to claim 1.
7. The vertical farming system according to claim 1, wherein the conveyor system is an overhead conveyor system.
8. The conveyor system according to claim 7 is an electric overhead conveyor, a synchronous electric overhead conveyor, an asynchronous electric overhead conveyor, an open track overhead conveyor, or a closed track overhead conveyor.
9. The conveyor system according to claim 7 comprises one or more tracks configured to guide the plurality of racks through the conveyor system.
10. The conveyor system according to claim 9 comprises one or more toggle switches configured to guide the plurality of racks around a turn within the conveyor system.
11. The vertical farming system according to claim 2, wherein the vertical farming system includes a lighting system, and the lighting system includes a plurality of lighting fixtures fixed to the plurality of racks.
12. The vertical farming system according to claim 11, wherein the plurality of lighting fixtures extend into the path of the plurality of racks when the racks are moved through the vertical farming system such that the plurality of lighting fixtures extend between the plurality of gutters.
13. The vertical farming system according to claim 11, wherein the lighting system is located in the daytime section of the at least one housing.
14. The vertical farming system according to claim 13, wherein there are no lighting fixtures in the nighttime section of the at least one housing.
15. The vertical farming system according to claim 5, wherein the vertical farming system includes an irrigation system, and the irrigation system includes one or more irrigation stations for delivering irrigation fluid to the plurality of gutters.
16. The vertical farming system according to claim 15, wherein the irrigation station is separated from others throughout the at least one housing.
17. Each of the one or more irrigation stations includes one or more tanks for holding irrigation fluid, and one or more spigots for delivering the irrigation fluid from the one or more tanks to the plurality of gutters, The vertical farming system according to claim 15.
18. Each of the one or more irrigation stations includes a plurality of sub-assemblies, and each sub-assembly includes a corresponding one of the one or more tanks, and a corresponding one of the one or more spigots, The vertical farming system according to claim 17.
19. In each of the one or more irrigation stations, each of the plurality of sub-assemblies is arranged such that when one of the plurality of racks is disposed adjacent to the irrigation station, the corresponding spigot delivers the irrigation fluid to a corresponding one of the gutters of the rack.
20. The vertical farming system according to claim 19, wherein the plurality of sub-assemblies are arranged in a stacked manner.
21. Each sub-assembly further includes a stopper, and a piston assembly for moving the stopper, The vertical farming system according to claim 19.
22. During the filling operation, the stopper is moved by the piston assembly to block the discharge opening of the corresponding trough while the spigot delivers the irrigation fluid to the corresponding trough of the plurality of troughs, the vertical farming system according to claim 21.
23. During the discharging operation, the stopper is moved by the piston assembly to release the blocking of the discharge opening of the trough so that the irrigation fluid is discharged from the corresponding trough, the vertical farming system according to claim 22.
24. Each subassembly further comprises a discharge tray that receives the discharged irrigation fluid and guides the discharged irrigation fluid to a corresponding tank of the immediately adjacent subassembly, the vertical farming system according to claim 23.
25. The vertical farming system according to claim 17, wherein the one or more tanks are arranged adjacent to each other.
26. The vertical farming system, a valve that controls the flow of the irrigation fluid from the one or more tanks to the one or more spigots, a pump configured to remove the irrigation fluid from the plurality of troughs, or a sensor configured to detect the level of the irrigation fluid in the one or more tanks, further comprises at least one of, the vertical farming system according to claim 17.
27. The vertical farming system according to claim 1, wherein the vertical farming system further comprises an environmental control system.
28. The environmental control system, a first heating, ventilation, and air conditioning (HVAC) unit associated with the daytime section of the at least one housing, a second HVAC unit associated with the nighttime section of the at least one housing, one or more air circulation units, comprises, the vertical farming system according to claim 27.
29. The vertical farming system according to claim 1, wherein the plant is a strawberry plant.
30. The vertical farming system according to claim 1, wherein the plant is a tomato plant.
Citation Information
Patent Citations
Artificial culture of plant and device therefor
JP2000004672A
Plant growth device
JP2012518993A
Plant cultivation device
JP2014090689A
Cultivation apparatus
JP2016007148A
Device for promoting growth of plants
JP2020191888A