Systems and methods for vertical farming

The vertical farming system addresses space and energy optimization through automated conveyor systems and AI-driven tasks, enhancing crop yield and efficiency by minimizing manual intervention.

JP7829843B2Active Publication Date: 2026-03-16OISHII FARM CORPORATION
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-06-19
Publication Date
2026-03-16

AI Technical Summary

Technical Problem

Conventional vertical farming systems face challenges in optimizing space, energy consumption, and environmental control, and require manual intervention for tasks like pest control and harvesting.

Method used

A vertical farming system with movable racks and integrated automation, including conveyor systems, lighting, irrigation, and AI for pest control, pollination, and harvesting, to optimize space and reduce manual intervention.

Benefits of technology

Enhances crop yield and efficiency by optimizing space, reducing energy consumption, and automating essential farming tasks, while maintaining controlled environmental conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007829843000025
    Figure 0007829843000025
  • Figure 0007829843000026
    Figure 0007829843000026
  • Figure 0007829843000027
    Figure 0007829843000027
Patent Text Reader

Abstract

To provide systems and methods in which a growing environment is controlled to cultivate and maximize yield of an agricultural crop.SOLUTION: A vertical farm system includes at least one enclosure separated into a day section and a night section, a plurality of racks disposed within the at least one enclosure and configured to hold plants, a conveyor system configured to move the plurality of racks through the day and night sections of the at least one enclosure, and at least one of an irrigation system, a lighting system or a harvesting system disposed within the at least one enclosure and being stationary relative to the plurality of racks.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Related Applications

[0001] This application claims the priority and benefit of U.S. Provisional Patent Application No. 63 / 613,377, filed on December 21, 2023, entitled "Systems and Methods for Vertical Farming", the content of which is incorporated herein by reference in its entirety.

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 soilless 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, a minimal carbon footprint, and the avoidance of pesticides and runoff that could otherwise harm the surrounding environment. These practices can also be constructed and deployed anywhere in the world, thereby supplying specific agriculture to regions where such practices do not exist.

[0004] Traditional vertical farming requires a controlled and protected environment to ensure efficient crop growth and harvesting. Within the farming system, there are numerous automated or fixed crop sections requiring specific control and input. Appropriate infrastructure and tools are needed to maintain light, irrigation, air circulation, temperature control, harvesting, and mowing. The farm setting requires spatial optimization to enable efficient performance of various maintenance and other tasks. Taking these variables and requirements into account presents technical challenges for vertical farming, and therefore necessitates continuous iteration and consistent optimization. [Overview of the Initiative] [Problems that the invention aims to solve]

[0005] The objective of the present invention is to provide a vertical farming system with a layout optimized in terms of 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 daytime-night cycle, while fixed locations are provided around the farm for the delivery of light, irrigation, airflow, mowing, 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 problem]

[0009] An exemplary embodiment of the present invention provides a vertical farming system comprising: at least one housing separated into a daytime section and a nighttime section; a plurality of racks arranged 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 arranged within the at least one housing and fixed to the plurality of racks.

[0010] In an exemplary embodiment, each of the multiple racks comprises a central frame and a plurality of troughs positioned on the central frame.

[0011] In an exemplary embodiment, each of the multiple racks further comprises at least one of rollers or casters positioned on a central frame.

[0012] In an exemplary embodiment, each of the multiple troughs includes one or more plant holders.

[0013] In an exemplary embodiment, each of the troughs is provided with at least one of either a filling opening for supplying irrigation fluid to the trough or a discharge opening for releasing irrigation fluid from the trough.

[0014] In an exemplary embodiment, each of the multiple racks includes a top-mount assembly configured to be attached to a conveyor system.

[0015] In an exemplary embodiment, the conveyor system is an overhead conveyor system.

[0016] In exemplary embodiments, 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 includes one or more toggle switches configured to guide the plurality of racks around turns within the conveyor system.

[0019] In an exemplary embodiment, a vertical farming system includes a lighting system comprising multiple lighting fixtures fixed to multiple racks.

[0020] In an exemplary embodiment, the multiple lighting fixtures extend into the path of the multiple racks as the racks are moved through the vertical farming system, such that the multiple lighting fixtures extend between the multiple troughs.

[0021] In an exemplary embodiment, the lighting system is located in the daytime section of at least one housing.

[0022] In an exemplary embodiment, the night section of at least one housing does not have any lighting fixtures.

[0023] In an exemplary embodiment, a vertical farming system comprises an irrigation system, the irrigation system comprising one or more irrigation stations that deliver irrigation fluid to a plurality of troughs.

[0024] In an exemplary embodiment, the irrigation station is isolated from others across at least one entire enclosure.

[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 one or more tanks to a plurality of troughs.

[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 discharge 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 the following: 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 spits; 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 housing, and a second HVAC unit associated with a nighttime section of at least one housing.

[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 located within at least one housing.

[0040] In an exemplary embodiment, at least one housing comprises multiple housings.

[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 fruit from plants includes: (A) one or more robots, each of which comprises (i) a camera and (ii) an end effector; (B) one or more edge devices, each of which is operably connected to a corresponding camera of one or more robots and configured to receive first image data relating to at least one two-dimensional image captured by the corresponding camera and to output second image data including at least one two-dimensional image and information relating to a corresponding timestamp; (B) a programmatic logic controller operably connected to one or more robots; and (C) a server operably connected to the programmatic logic controller and comprising computer-readable memory, wherein (i) programmatic (ii) A programmatic logic controller module configured to receive operating state data for one or more robots from a logic controller, input the operating state data into memory, and transmit robot operation commands to the programmatic logic controller; (ii) One or more communication bridges, each associated with one or more corresponding robots, each of which is configured to receive second image data and store the second image data in memory; (iii) One or more frame synchronization modules, each associated with one or more corresponding robots, each of which, at least at one point in time, 1. retrieves first operating state data and second image data from memory for the corresponding robot among the one or more robots, 2. synchronizes the second image data with the corresponding first operating state data, and 3.(iv) an inference module configured to output first synchronization data to memory based on synchronization, wherein the synchronization data includes information relating to at least one captured image and a corresponding first operating state of the corresponding robot; (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, wherein the neural network is configured through training to receive the synchronization data, process the synchronization data, and 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 at least one image, and at least one keypoint associated with the fruit image in at least one image; and (v) the processed synchronization data and one or more A server comprising: (vi) a 3D module configured to determine a set of points in three dimensions representing the location of a fruit in a three-dimensional world frame based on the robot motion state data of each robot; and (vi) an aggregator module configured to 1. generate a world map including the locations of the fruit in the world frame and the locations of the end effectors in the world frame based on the set of points; 2. determine an ideal approach angle to the fruit for one of the corresponding end effectors of one or more robots based on the world map; and 3. make the ideal approach angle available to a programmatic logic controller module so that the programmatic logic controller can control one of the corresponding robots to move the corresponding end effector along the approach angle to harvest the fruit.

[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 obstruction field of view of the fruit.

[0046] An exemplary embodiment of the present invention provides a pollination system comprising: (A) a housing configured to house an insect nest; (B) a gate system operably connected to the housing, 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 in order to control the number of insects in the surrounding space surrounding the pollination system.

[0047] In an exemplary embodiment, the exit gate assembly comprises a proximal portion, a distal portion, a central portion positioned between the proximal and distal portions, a first gate between the proximal and central portions, and a second gate between the central and distal portions, wherein the controller is configured to operate the first and second gates in sequence, so that in a first step of the sequence, the first gate is opened to allow one or more insects to enter the central portion from the proximal 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 the surrounding space through the distal portion from the central portion.

[0048] In an exemplary embodiment, the entrance gate assembly includes a trapdoor configured to allow insects to enter the nest while preventing them from leaving it.

[0049] In an exemplary embodiment, the pollination system further comprises one or more servo motors for opening and closing first and second gates.

[0050] In an exemplary embodiment, the vision system includes a camera.

[0051] In an exemplary embodiment, the camera is positioned above at least one of the exit gate assembly or the entrance gate assembly.

[0052] In an exemplary embodiment, the camera is positioned 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, a camera is positioned to capture images of insects within the exit gate assembly and the entrance gate assembly via a 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 a lighting system arranged to guide light through a second common wall.

[0059] In an exemplary embodiment, the first common wall is located on the opposite side of the second common wall.

[0060] In an exemplary embodiment, the controller includes a computing unit.

[0061] In an exemplary embodiment, the computing unit includes a bee detection module configured to detect the location of insects within an exit gate assembly and an 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 within a horizontal and vertical reference coordinate system at that time.

[0063] In an exemplary embodiment, the computing unit further comprises a central portion wasp count estimation module configured to estimate the current number of insects in the central portion of the exit gate assembly based on insect location data.

[0064] In an exemplary embodiment, the current number of insects in the central portion is estimated using an exponential filter.

[0065] In an exemplary embodiment, the computing unit further comprises an insect tracking module configured to generate insect count adjustment data relating to the number of insects entering and exiting an entrance gate assembly.

[0066] In an exemplary embodiment, the insect tracking module tracks the number of insects entering and leaving the entrance gate assembly by tracking the trajectory of insects within the entrance gate assembly over a predetermined period of time in order to determine whether the number of insects in the surrounding space is increasing or decreasing.

[0067] In an exemplary embodiment, the insect tracking module generates insect count adjustment data using filtering techniques.

[0068] To illustrate the exemplary features, the filtering techniques include Kalman filtering, nearest neighbor filtering, 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 relating to the number of bees in the enclosure based on insect count adjustment data, insect release data, and reset data, wherein the reset data is associated with a scheduled dormancy period in which the nest is closed and the insect count data is reset, and the insect release data is associated with the number of bees released by the exit gate assembly, and the command logic module is 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 downtime begins during the nighttime period and ends during the daytime period that follows the nighttime period.

[0071] In an exemplary embodiment, the computing unit further comprises an exit gate control module configured to operate first and second gates based on control data generated by a 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's nest is a beehive, and the insect is a bee.

[0074] An exemplary embodiment of the present invention provides a pest management system comprising: a card configured to hold a pest that lands on or flies to the card; a scanner that generates image data associated with an image of the pest held on the card; and a neural network configured, through training, to receive and process the image data to generate a corresponding output including identification data related to the pest.

[0075] In an exemplary embodiment, the image data includes a gigapixel image.

[0076] In an exemplary embodiment, the output includes a report that provides pest information based on identification data.

[0077] In an exemplary embodiment, the pest information includes the class of the pest, the number of pests, or the proportion of each pest species. [Brief explanation of the drawing]

[0078] The features and advantages of exemplary embodiments of the present invention can be better understood by referring to the following detailed description when interpreted in conjunction with the accompanying drawings. [Figure 1] This is a representative diagram of a vertical farming system according to an exemplary embodiment of the present invention. [Figure 2] This is a perspective view of a rack according to an exemplary embodiment of the present invention. [Figure 3] This is a perspective view of a part of a rack according to an exemplary embodiment of the present invention. [Figure 4] This is a perspective view of a part of a rack according to an exemplary embodiment of the present invention. [Figure 5] This is a top view of a conveyor system according to an exemplary embodiment of the present invention. [Figure 6] This is a perspective view showing a rack moving within a conveyor system according to an exemplary embodiment of the present invention. [Figure 7] This is a top view of a conveyor system according to an exemplary embodiment of the present invention. [Figure 8] This is a perspective view of a vertical farming system according to an exemplary embodiment of the present invention. [Figure 9] This is a cross-sectional view of a vertical farming system according to an exemplary embodiment of the present invention. [Figure 10] A perspective view showing a lighting system according to an exemplary embodiment of the present invention. [Figure 11] This is a perspective view showing a part of an irrigation system according to an exemplary embodiment of the present invention. [Figure 12]This is a block diagram showing a part of an irrigation system according to an exemplary embodiment of the present invention. [Figure 13A] This is a cross-sectional view of a gutter according to an exemplary embodiment of the present invention. [Figure 13B] This is a cross-sectional view of a gutter according to an exemplary embodiment of the present invention. [Figure 14] This is a block diagram of an irrigation system according to an exemplary embodiment of the present invention. [Figure 15] This is a block diagram of an irrigation system according to an exemplary embodiment of the present invention. [Figure 16A] An irrigation system according to an exemplary embodiment of the present invention is shown. [Figure 16B] An irrigation system according to an exemplary embodiment of the present invention is shown. [Figure 17] This is a block diagram of an environmental control system according to an exemplary embodiment of the present invention. [Figure 18] This chart shows the change in average temperature over time within a vertical farming system according to an exemplary embodiment of the present invention. [Figure 19] This is a block diagram of an environmental control system according to an exemplary embodiment of the present invention. [Figure 20] This is a block diagram of an environmental control system according to an exemplary embodiment of the present invention. [Figure 21] This is a block diagram of a pest control system according to an exemplary embodiment of the present invention. [Figure 22] This flowchart shows the process for generating a pest recognition artificial intelligence model according to an exemplary embodiment of the present invention. [Figure 23] This shows a report generated by a pest control system according to an exemplary embodiment of the present invention. [Figure 24] This is a block diagram of a harvesting station according to an exemplary embodiment of the present invention. [Figure 25A] A perspective view showing a part of a harvesting robot according to an exemplary embodiment of the present invention. [Figure 25B] A perspective view showing a scaffold for a harvesting robot according to an exemplary embodiment of the present invention. [Figure 26] This flowchart shows the process by which a PLC module according to an exemplary embodiment of the present invention is executed. [Figure 27] A flowchart shows the process performed by the frame synchronization module according to an exemplary embodiment of the present invention. [Figure 28] This flowchart shows the process performed by the calibration module according to an exemplary embodiment of the present invention. [Figure 29A] A flowchart shows the process executed by the inference module according to an exemplary embodiment of the present invention. [Figure 29B] This is an image of a picking environment according to an exemplary embodiment of the present invention. [Figure 29C] Figure 29B is an image showing the picking environment after execution of the inference module according to an exemplary embodiment of the present invention. [Figure 30] A flowchart shows a process performed by a three-dimensional module according to an exemplary embodiment of the present invention. [Figure 31] This flowchart shows the process performed by the aggregator module 574-n according to an exemplary embodiment of the present invention. [Figure 32] This flowchart shows the process performed by a safety module according to an exemplary embodiment of the present invention. [Figure 33] This is a block diagram of a pollination system according to an exemplary embodiment of the present invention. [Figure 34A] This is a cross-sectional view of a pollination system according to an exemplary embodiment of the present invention. [Figure 34B] This is a cross-sectional view of a pollination system according to an exemplary embodiment of the present invention. [Figure 35] This is a top cross-sectional view of a bee gate system according to an exemplary embodiment of the present invention. [Figure 36] This is a perspective view of a bee station according to an exemplary embodiment of the present invention. [Figure 37] This is an exploded view of the Hachigate system according to an exemplary embodiment of the present invention. [Figure 38] This is a block diagram showing various computer modules of a beehive computing unit according to an exemplary embodiment of the present invention. [Figure 39] This flowchart shows the operation of an exit gate assembly according to an exemplary embodiment of the present invention. [Figure 40] This flowchart shows the process performed by the bee detection module according to an exemplary embodiment of the present invention. [Figure 41] This flowchart outlines the process performed by the central bee number estimation module according to an exemplary embodiment of the present invention. [Figure 42] This flowchart shows the process performed by the bee tracking module according to an exemplary embodiment of the present invention. [Figure 43] This flowchart shows a process executed by a command logic module according to an exemplary embodiment of the present invention. [Figure 44] This flowchart shows the process performed by the exit gate control module 382 according to an exemplary embodiment of the present invention. [Figure 45] This is a block diagram showing a machine learning platform according to an exemplary embodiment of the present invention. [Modes for carrying out the invention]

[0079] While the present invention is described in exemplary embodiments in relation to vertical farming, 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 others are not. In this regard, the term “fixed” should be interpreted as meaning fixed in a fixed position, such as in the case of a manufacturing fixture that holds a workpiece in a fixed position during the manufacturing process. As a more specific example related to the present invention, a robot may be fixed in the sense that it is fixed to a non-movable platform in the manufacturing environment, but otherwise could move freely to perform manufacturing tasks. In contrast, non-fixed components can move freely from point to point within the vertical farming system and are not fixed in a fixed position.

[0081] Figure 1 shows a layout of a vertical farming system, generally referred to as reference numeral 1, according to an exemplary embodiment of the present invention. The vertical farming system 1 includes a housing 10 that houses the main components of system 1. In the exemplary embodiment, the housing 10 may be a cleanroom, and to minimize the transport of particulate matter by people moving into the housing 10, workers and other personnel may enter and exit through an airlock, with or without an air shower stage, and may wear protective clothing such as hoods, face masks, gloves, boots, and coveralls. The housing 10 may be a standalone structure or part of a facility comprising multiple housings 10, and in the exemplary embodiment, it may be a walled section 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 a containment environment provided by a housing 10. In an exemplary embodiment, the racks 20 are configured to move along a substantially rectangular path within the housing 10, as indicated by arrow A. In this regard, the vertical farming system 1 may include a conveyor system 40 on which the racks 20 are mounted and moved within the housing 10. In an exemplary embodiment, as will be described in more detail below, the conveyor system 40 may include tracks on which the racks 20 are guided as they move through the housing 10. The vertical farming system 1 may include a plurality of housings 10, each having corresponding racks 20 and conveyor systems 40, and each housing 10 is preferably sealed from other housings 10 to prevent cross-contamination.

[0083] In exemplary embodiments, the crops grown in vertical farming 1 may include, for example, flowering crops such as strawberries, tomatoes, melons, peppers, eggplants, and berries, as well as non-flowering crops such as leafy vegetables, root vegetables, and mushrooms. Furthermore, the crops grown may include, for example, woody crops such as citrus fruits, apples, nuts, and olives, as well as staple crops such as wheat, rice, and corn.

[0084] As shown in the figure, the enclosure 10 is divided 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, but no lighting is provided during the nighttime cycle. In exemplary embodiments, the daytime and nighttime cycles may be based on any number of total hours, such as 6 hours, 12 hours, 24 hours or more. For example, if a “day” or the total number of hours in the photoperiod is 24 hours, the number of hours constituting the daytime cycle may be 12 hours, and the number of hours constituting the nighttime cycle may be 12 hours, or any other period of time that is added to the total 24-hour photoperiod. It should be understood that the number of hours in a “day” is not limited to 24 hours, and in exemplary embodiments, the number of hours in each “day” may be less than or greater than 24 hours, and each “day” may have a different total number of hours (e.g., 22 hours on the first day, 26 hours on the second day, 20 hours on the third day, etc.). In exemplary embodiments, the number of hours in the daytime cycle may or may not be equal to the number of hours in the nighttime cycle. For example, if a "day" has 24 hours, the daytime cycle is 14 hours and the nighttime cycle is 10 hours. Furthermore, in exemplary embodiments, the number of hours in the daytime cycle and the number of hours in the nighttime cycle may vary from day to day.

[0085] The two halves of the housing 10 may be separated by a partition 12 made of, for example, plastic, cloth, metal panel (insulated or uninsulated) or any other suitable material, and which is opaque enough to prevent a significant amount of light from entering the night portion of the housing 10. In exemplary embodiments, instead of a partition 12, the housing 10 may be divided into separate rooms, one room providing a daytime cycle and the other room providing a nighttime cycle.

[0086] System 1 further includes a harvesting station 500 and a worker platform 65. As will be described in more detail below, the harvesting station 500 may be a robotic harvesting station including one or more robots controlled to harvest ripe or semi-ripe fruits or vegetables as the crops mature. The worker platform 65 may include components such as scaffolding, ladders and lifts to allow workers to access the racks 20 at various heights as they pass through the racks 20. In exemplary embodiments, the harvesting station 500 and the worker platform 65 are generally fixed in relation to the racks 20, which also move around the housing on the conveyor system 40. The harvesting station 500 and the worker platform 65 can be located at any point within the housing 10, for example, at both ends of the housing 10, in the center of the housing 10, or on the sides of the housing 10. The harvesting station 500 and the worker platform 65 may be located directly adjacent to each other at the same location within the housing 10, or they may be located spaced apart from each other at different locations within the housing 10. In an exemplary embodiment, multiple harvesting stations 500 and / or multiple worker platforms 65 can be arranged throughout the housing 10.

[0087] System 1 also includes an irrigation system comprising one or more irrigation stations 70 positioned at intervals along the path of the racks 20. As will be described in more detail below, the irrigation stations 70 are generally fixed in relation to the racks 20 and operate to supply water or aqueous fertilizer solution (referred to herein as “irrigation fluid”) to the crops held in each rack 20 and to discharge water or aqueous fertilizer solution from the racks 20.

[0088] Figures 2 to 4 show 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 on a conveyor system 40 and oriented horizontally. Although the rack 20 is shown to have eight troughs 24, it should be understood that each rack 20 may include any number of troughs 24, such as four, six, ten, twelve, or more troughs 24. In the exemplary embodiment, the rack 20 does not include outer frame elements, and instead the rigidity of the overall structure allows the plant holder to be supported on a single vertical central frame 22. Alternatively, the rack 20 may include any number of vertical and / or horizontal elements, such as outer frame elements, to provide the rack 20 with sufficient support and strength. The troughs 24 are stacked on the central frame 22, spaced vertically apart from one another, and each trough 24 is mounted to the central frame 22 at approximately the longitudinal center of the trough 24 to optimize balance. The rack 20 may include mounts 31 that hold the troughs 24. Casters 23 may be positioned at the bottom of the central frame 22 so that the rack 20 can move along the floor of the enclosure 10. The rack 20 may be made of, for example, aluminum, plastic, or other types of rigid material. In exemplary embodiments, the rack 20 is fabricated using any suitable construction technique, such as welding or three-dimensional printing.

[0089] Figure 8 is a perspective view of System 1 according to an exemplary embodiment of the present invention, showing racks 20 moving on a conveyor system 30 via a fixed platform 15 capable of holding, for example, a lighting system (including luminaires) and irrigation system components. In the exemplary embodiment shown in Figure 8, the night cycle portion and the day 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 day cycle portion. However, it should be understood that, as shown in Figure 1, the night cycle portion and the day cycle portion of the housing 10 may also be arranged side by side such that each rack 20 follows a loop having a long section that is entirely in the day cycle portion and another long section that is entirely in the night cycle portion. It should also be understood that the racks 20 can follow any other path within the housing 10, with one or more sections of varying lengths, allowing for differences in lighting throughout a selected period.

[0090] As clearly shown in Figure 9, the rack 20 can move freely between the scaffolding 15 and align with the fixed irrigation station 70 due to the cantilever structure of the scaffolding 15. In this regard, as shown in Figure 10, the scaffolding 15 may include a cross piece 17 extending in the direction of movement of the rack 20, the cross piece 17 may have an opening through which a set of luminaires 18 can extend horizontally (and laterally with respect to the direction of movement of the rack 20). This allows the luminaires 18 to be held in place in a cantilevered arrangement to enable the rack 20 to pass through the scaffolding without interference. For example, as shown in Figure 9, the central frame 22 of each rack 20 can pass between cantilevered luminaires 18 extending in opposite directions from both sides of each scaffolding 15. In exemplary embodiments, the scaffolding 15 may hold multiple sets of luminaires 18, each set positioned at a specific height above the corresponding trough 24 of the rack 20. This arrangement allows all plants in each trough 24 within each rack 20 to be exposed to an appropriate amount of light as the racks 20 pass through system 1. The lighting fixtures 18 are fixed and held on each platform 15 on the conveyor system 40 as the racks 20 pass through each platform 15. This overall configuration is advantageous in that it does not require moving the lighting components around the housing 10 to simulate a daytime-night cycle, which could require excessive wiring, cause accidents, and / or result in damage to the lighting components or other components of system 1. Another advantage of this configuration is that it requires less control over the lighting components, as there is no need to turn off or dim the lights to simulate nighttime, and the lighting components can simply be omitted from the nighttime cycle portion of the housing 10. Alternatively or in addition, the lighting components may be located in the nighttime cycle portion of the housing 10, providing less light compared to the lighting components located in the daytime cycle portion of the housing 10.

[0091] In exemplary embodiments, the lighting fixture 18 may include, for example, a light source such as an incandescent, fluorescent, halogen, LED (light-emitting diode), laser, or HID (high-intensity discharge) light source. The lighting system may include intensity controls and drivers so that the light intensity can be adjusted for different plant species and / or different parts of the growth cycle.

[0092] Figure 3 is a more detailed view of the bottom of a 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 and casters 23 are attached. The guide bar 21 is fixed to a central frame 22 and extends substantially parallel to the trough 24. As will be described in more detail below, the casters 23 and rollers 26 are sufficiently spaced apart from each other to allow the casters 23 and rollers 26 to traverse along the conveyor system 40, while the guide bar 21 provides sufficient rigidity to the rack 20 so that the rack 20 remains stable during movement within the conveyor system 40. In an exemplary embodiment, the rack 20 may include bumpers 27 positioned 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 other racks 20 or any other object that may be in the path of the rack 20.

[0093] Figure 4 is a more detailed view of the top of a rack 20 according to an exemplary embodiment of the present invention. A top mount assembly 29 is positioned at the top end of the rack 20, and its purpose is to mount it to a conveyor system 40, which may be an overhead conveyor. In this regard, the top mount assembly 29 may include clamps, brackets, or other structural components configured to mount to the conveyor system 40. In the exemplary embodiment, the top mount assembly 29 includes a swivel so that the rack 20 remains in the same orientation around a turn.

[0094] As most clearly shown in Figures 3 and 4, each trough 24 includes a series of plant holders 25 into which one or more plants and corresponding amounts of growing 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 arranged in a single row, each trough 24 can include any number of rows of plant holders 25, with any number of plant holders 25 in each row. Furthermore, although the trough 24 is shown as a substantially rectangular component, it should be understood that the trough 24 may have any other arbitrary shape, and the plant holders 25 may be arranged along any surface of the trough 24. In exemplary embodiments, the plant holders 25 are openings formed in the trough 24, and such openings may be circular in shape to accommodate circular plant pots, or may have any other suitable shape. In exemplary embodiments, the plants in each plant holder 25 may or may not be held in pots. For example, plants may be held directly in each plant holder 25 without corresponding plant pots. Furthermore, in an exemplary embodiment, the rack 20 can carry plants so that the plant roots can be used in an aerated cultivation system, in which case the plant holder 25 can be omitted.

[0095] In exemplary embodiments 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 may include one or more drains located at any other location around the trough 24, such as at the bottom of the trough 24, or may not include any drains. In exemplary embodiments, the irrigation fluid may 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 a conveyor system 40 according to an exemplary embodiment of the present invention. The bottom of the conveyor system 40 includes a guide assembly 41 comprising an internal guide rail 42A, an external guide rail 42B, and a track 44 that guides the rollers 26 of the racks 20 so that the racks 20 follow a predetermined path within the housing 10. In this regard, the guide rails 42A and 42B generally guide the racks 20 along straight sections of the path, while the track 44 generally guides the racks 20 along curved sections of the path. For example, the track 44 may be located within the conveyor system 40 to which the racks 20 are shifted to a different section of the path, and in this regard, one or more toggle switches 45 may be included. As shown in Figure 6, each rack 20 may be transported such that it is shifted to a position to follow a different section of the path, while ensuring that each caster 23 of the rack 20 follows each of the tracks 44 and that the racks 20 remain facing the same direction. In the embodiment shown in Figure 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 that they 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 be in contact with the floor while the rack 20 is moving along the guide rails 42A, 42B, but may be in contact with the floor (or the bottom surface of the track 44) when the rack 20 is moving along the track 44. In this regard, the casters 23 provide further stability to the rack 20 while the rack 20 is being switched in the opposite direction.

[0098] Figure 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 the racks 20 along the guide assembly 41 across the entire housing 10. The conveyor 47 may be an overhead conveyor, for example, a powered overhead conveyor, a synchronous powered overhead conveyor, an asynchronous powered overhead conveyor (e.g., a power-and-free conveyor), an open-track overhead conveyor, or a closed-track overhead conveyor. In exemplary embodiments, the conveyor system 40 is not limited to an overhead conveyor, and other exemplary embodiments may include a conveyor that drives the racks 20 from the bottom, from the bottom and top, or from any other point on the racks 20. Furthermore, the conveyor system 40 is not limited to the extent that the racks 20 are moved individually, and in other exemplary embodiments, the racks 20 may be connected to each other and transported as a single unit. In exemplary embodiments, 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 winding units, and one or more electrical control units. Suitable conveyors are available from, for example, 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] Figure 11 is a partial view of an irrigation station, generally referred to as reference numeral 70, according to an exemplary embodiment of the present invention. Any number of irrigation stations 70 can be arranged within the housing 10, and in the exemplary embodiment, the number of irrigation stations 70 may be in the range of 5 to 15, or less or more. An irrigation station 70 includes a support structure 71 that holds a plurality of irrigation subassemblies 74. Each irrigation subassembly 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 fluidly connected to each tank 76, and the lower end of the overflow pipe 84 is fluidly connected to a main discharge pipe 86. Each irrigation subassembly 74 is positioned at a corresponding height such that each trough 24 of the rack 20 aligns with the corresponding irrigation subassembly 74 as the rack 20 moves to a position adjacent to the irrigation station 70. As will be explained in more detail below, this makes it possible to fill each trough 24 in the rack 20 with irrigation fluid and then discharge the irrigation fluid from each trough 24 before the rack 20 moves downstream.

[0101] Figure 12 shows the flow of irrigation fluid during filling and discharging of the trough 24 by the irrigation station 70. Irrigation fluid is introduced into the irrigation station 70 from the main irrigation fluid supply section of the upper irrigation subassembly 74, enters there, and begins to fill the corresponding tank 76. Once the filling process begins, the piston assembly 78 moves the stopper 79 to engage with the side wall 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 subassembly 74 to the corresponding spigot assembly 80, and then supplies the irrigation fluid to the trough 24 through the upper filling opening 30. The discharging process can be initiated after a predetermined period of time during which the plants in the trough 24 are sufficiently immersed. The immersion period may be any appropriate period, such as 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 allowing 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 subassembly 74 directly below the uppermost irrigation subassembly. The next irrigation subassembly 74 can then 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. The irrigation process then continues downward until the lowest trough is irrigated and discharged, with any overflow irrigation fluid in the tank being 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 section at the top of each irrigation station 70.

[0103] The irrigation station 70 is not limited to the above description, and in other exemplary embodiments, each tank 76 of each irrigation subassembly 74 may be supplied with irrigation fluid separately, rather than each subassembly 74 depending on the irrigation fluid being discharged from the trough 24 directly above it, in which case the irrigation fluid may be discharged, for example, directly from the trough 24 to the main discharge pipe. In another exemplary embodiment, each subassembly 74 may not have a corresponding tank 76, and instead may have a supply-discharge line to which the irrigation fluid is delivered to the upper end of the corresponding trough 24, and then the irrigation fluid is pumped out of the trough 24.

[0104] Figures 13A and 13B show a trough 1024 according to another exemplary embodiment of the present invention. The trough 1024 includes a lower end 1027, a side 1028, and an upper end 1029. The upper end 1029 includes a plurality of openings 1030 configured to hold planted or unplanted plants. The height of the trough 1024 varies from the maximum height at the proximal end to the minimum height at the distal end. The trough 1024 may include a pocket 1025 at the proximal end to assist the irrigation process, as will be described in more detail below.

[0105] During the irrigation process, the irrigation supply point 70, consisting of a spigot 72, fills the trough 1024 with irrigation fluid, and once filled, suctions 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 the fluid can then be removed using the same spigot 72 or a separate suction line (not shown). The spigot 72 can be positioned in a fixed position above the pocket 1034 to allow for more efficient filling of the trough 1024 while avoiding excessive spillage.

[0106] Figure 14 shows an irrigation system, generally referred to as reference no. 1030, according to an exemplary embodiment that can be used with the trough 1024. The irrigation system 1030 includes tanks 1032 which may be located inside or above the housing 10. During the irrigation process, the irrigation fluid is pre-filled into the tanks 1032. Filling of the tanks 1032 may begin from the leftmost tank 1032 through a valve, such as a ball valve or solenoid, and overflow into the tanks 1032 to the right. Each tank 1032 may include a water level sensor to detect when each tank 1032 is filled with an appropriate amount of water. A lifting mechanism 1034, such as a pneumatic cylinder, can then be controlled to lower the spigot 72 into the trough. A flexible hose 1036 can be used to allow the spigot 72 to rise and fall relative to fixed piping. Ball valves 1038 from each tank 1032 can then be opened to allow the irrigation fluid to flow from the tanks 1032 into the trough 1024. After the trough 1024 has been submerged for a predetermined time, the ball valve 1038 closes and the self-priming pump 1040 is turned on to pump 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 discharging sequence was successful. In exemplary embodiments, low-level and high-level sensors can be added to the tank 1032 to ensure proper operation, and / or overflow piping can be used to ensure that the amount of fluid in each tank does not exceed a predetermined amount ("determined amount" can refer to a desired amount of fluid sent to the trough when the valve is open). Also in exemplary embodiments, a proximity sensor can be used on the lifting mechanism 1034 to ensure proper movement.

[0107] Figure 15 shows an irrigation system, collectively referred to as reference no. 1130, according to another exemplary embodiment that can be used with the trough 1024. The irrigation system 1130 includes tanks 1132. Filling of the tanks 1132 begins from the uppermost tank 1132, through a valve such as a ball valve or solenoid, and can overflow into the lower tanks 1132. Each tank 1132 may include a water level sensor to detect 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 operated to allow the flow of irrigation fluid from the tanks 1138 to the trough 1024. After the immersion time, the three-way valve 1138 is reversed to connect a pump 1140 to the trough 1024. Each pump 1140 is turned on to draw irrigation fluid from their respective troughs 1024 into the tank 1138 directly below the pump 1140. For example, a lifting mechanism 1134, such as a pneumatic cylinder, can be controlled to lower and raise the spigot 72 relative to the trough. A flexible hose 1136 can be used to allow the spigot 72 to rise and fall relative to fixed piping. By lifting the spigot 72, the rack can be marked without interference, and by lowering it, the flood and discharge sequence can be initiated. 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 sequence was successful. In exemplary embodiments, low and high fluid level sensors can be added to the tank 1132 to ensure proper operation. Also in exemplary embodiments, the lifting mechanism 1134 can use proximity sensors to ensure proper movement.

[0108] In exemplary embodiments, drip irrigation technology can be used to supply water directly to individual pots. Typically, pressurized lines and flow-controlled emitters are used to balance the amount of water supplied to each plant. However, pressurizing the irrigation system is often difficult in mobile plant systems. In these types of systems, using gravity to move the water is more practical.

[0109] Figures 16A and 16B show a drip irrigation system, collectively referred to as reference no. 1230, according to an exemplary embodiment of the present invention. System 1230 provides a mechanism for delivering substantially equal amounts of water to pots with limited head height. Specifically, system 1230 includes a subassembly 1240 (only one subassembly is shown in Figures 16A and 16B), each subassembly 1240 associated with a corresponding trough 1024. Subassembly 1240 includes a fixed spigot 1242, a funnel 1244, and a plurality of tubes 1248, each connected to the corresponding reservoirs 1246 and reservoirs 1248. The spigot 1242 supplies a constant amount of irrigation fluid to the funnel 1244. The total volume of irrigation fluid delivered is sufficient to irrigate the total number X plants held by the trough 1024 at one time. The funnel 1244 has X openings at its base. When irrigation fluid is added to the funnel 1244, the funnel openings divide the fluid into X small streams. In this regard, the funnel 1244 narrows near the openings, thereby allowing small amounts of fluid to form a consistent head height above the openings. This results in X flows with similar flow rates. Each flow from the funnel 1244 is captured by its corresponding reservoir 1246. Each tube 1248 is connected to the base of its corresponding reservoir 1248 and leads to its corresponding individual pots, thereby delivering fluid to the pots. If the tubes 1248 were connected directly to the funnel without intermediate reservoirs 1246, differences in tube resistance and elevation would result in an uneven distribution of water. The reservoirs 1246 act as buffers, allowing pre-distributed amounts of water to flow into the individual pots at any rate permitted by the tubes 1248. An overflow channel can be added to the reservoir 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 deliver irrigation fluid to plants in 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 the exemplary embodiment of the present invention. Therefore, in the 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, air particulate matter count, and carbon dioxide concentration) within the enclosure 10. For example, the environmental control system can simulate morning, noon, and evening temperatures that optimize crop growth by controlling the air temperature and / or other parameters within the enclosure 10 to vary over 24 hours (or any other predetermined photoperiod). Figure 17 shows the components of an environmental control system, collectively referred to as reference numeral 100, according to an exemplary embodiment of the present invention. The temperature control system 100 includes one or more HVAC units 102 and one or more air circulation units 104 located within the enclosure 10. The former primarily control air temperature and relative humidity, while the latter focus on air velocity. The HVAC units 102 may be located on the ceiling or inside the enclosure 10, and each HVAC unit 102 is primarily located inside the corresponding daytime / nighttime halves of the enclosure 10. An air circulation unit 104, which may include a circulating fan, can be positioned on the scaffolding 15 at points throughout the housing 10 to circulate the environmentally conditioned air generated by the HVAC unit 102. Separating the airflow unit and the HVAC unit in this way improves the airflow through the housing 10 while minimizing environmental fluctuations, thereby enabling minimization of energy consumption, miniaturization of equipment, and reduction of height restrictions for the entire system 1.

[0113] In an exemplary embodiment, the environmental control system 100 alters the air temperature, relative humidity, and air velocity within the enclosure so that each rack 20 encounters a temperature, humidity, and velocity variation profile that simulates daytime-nighttime environmental conditions as it moves around the enclosure 100 during the half-day period. The environmental variation can occur over a 24-hour period or any other predetermined period. For example, as shown in Figure 18, each rack 20 can traverse an environmental variation profile within a predetermined period, with 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°C 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, environmental conditions may be higher or lower than these ranges. For example, the minimum temperature range may be lower than 8°C to 10°C, and the maximum temperature range may be higher than 25°C to 30°C. Furthermore, in exemplary embodiments, daytime humidity may be controlled to a relative humidity range of 60% to 80%, and nighttime humidity may be controlled to a relative humidity range of 75% to 95%. 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, an anemometer, and a CO2 sensor, which are, to name a few, placed at various points within the housing 10, installed in fixed positions, and / or fixed to the racks 20 so that the sensors can measure the entire plant environment as the racks 20 move through the housing 10. In a more specific example, each rack 20 encounters the lowest temperature in the temperature change profile within the nighttime half of the housing 10 and the highest temperature within the daytime half of the housing. Temperature and other environmental parameters can be controlled to gradually change to an appropriate daytime range as the racks 20 move through and into the daytime half, and to gradually change to an appropriate nighttime range as the racks 20 move from the daytime half to the nighttime half. Environmental conditions can be selected based on many factors, such as the type of crop, the desired harvest time, and energy efficiency.

[0114] Figure 19 shows an environmental control system, collectively referred to as reference number 2100, according to an exemplary embodiment of the present invention. The environmental control system 2100 includes a plenum area within the housing 10 to facilitate air circulation. The plenum area may include plenum walls 2110A, 2110B that separate the plenum area from other areas of the housing 10. In this regard, the plenum walls 2110A, 2110B may be made of insulating material such as, for example, a plastic sheet, cloth, a metal panel, or any other suitable material. Some or all of the plenum walls 2110A, 2110B may include slits or other openings that allow conditioned air to circulate between the plenum area and other areas 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 located within the enclosure 10. The HVAC units 2102A, 2102B can be located in the upper part of the enclosure 10, for example, on the ceiling, and each HVAC unit 2102A, 2102B is mainly located within the corresponding daytime / nighttime half of the enclosure 10. The air circulation units 2104A, 2104B may be located on the scaffolding 15 at points throughout the enclosure 10 to circulate the environmentally conditioned air generated by the HVAC units 2102A, 2102B. As shown in Figure 19, plenum walls 2110A, 2110B may be arranged to separate the enclosure 10 into daytime and nighttime sections. For example, one plenum wall 2110A may be positioned closest to the side wall of the housing, another plenum wall 2110B may be positioned closest to the opposite side wall of the housing, and two other plenum walls 2110C, 2110D may be positioned between the two side plenum walls 2110A, 2110B, thereby forming a daytime section 2120 on one side of the housing 10 and a nighttime section 2130 on the opposite side of the housing 10. One or more airflow baffles 2114 may be placed throughout the system 2100 to guide the airflow in the appropriate direction.

[0116] Figure 20 illustrates the conditioning and circulation of air within the enclosure 10 resulting from the operation of the environmental control system 2100. During the daytime 2120, conditioned air (indicated by arrow A) is sent from the HVAC unit 2102A down the plenum area to the bottom of the enclosure 10 where the racks 20 are housed. This air then passes through the racks 20 (and associated plants), gaining heat and humidity. The recirculated air (indicated by arrow B) is sent back to the HVAC unit 2012A and mixed with the conditioned air via the air circulation unit 2104A. The circulated air is then reconditioned and can be recirculated again through the racks 20. During the nighttime 2130, conditioned air (indicated by arrow C) is sent downward from the HVAC unit 2102B to the bottom of the side plenum in the duct, where the cool air in the duct is blown laterally to the racks. The heated air (indicated by arrow D) is drawn in from the top and bottom of the rack in the duct and returned to the regulated HVAC unit 2102B. In an exemplary embodiment, air circulation units 2104A and 2104B are used to create climate uniformity.

[0117] In exemplary embodiments, cooling capacity can be provided by a system including components such as, for example, a unit cooler, a duct system with an air conditioner, a direct expansion unit, and a combination thereof. In exemplary embodiments, air can also be delivered directly to individual plants using air tubes, such as air tubes mounted in the same orientation as the aforementioned lighting fixtures 18.

[0118] Pest control system

[0119] In an exemplary embodiment, the vertical farming system 1 includes a pest control system, collectively referred to as reference no. 200. As shown in Figure 21, the pest control system 200 includes a card 210 coated with an adhesive that can hold insects that may fly or crawl on it. In this regard, the card 210 can hold common crop pests such as aphids, thrips, beetles, and mites. These pests are typically in the size range of 0.5 mm to 10 mm and are often difficult to see and / or identify with the human eye. Within a period of time, for example, more than an hour, more than a day, and more than a month, thousands of insects may crawl or fly on 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 pest from the large image of such pests in the gigapixel image 212 of card 210.

[0120] In an exemplary embodiment, each housing 10 in a farm consisting of multiple housings 10 may include one or more cards 210 located in different sections of the housing 10. One or more cards 210 in each section may be scanned individually, or multiple cards may be scanned at once to generate a composite of card images. In an exemplary embodiment, all cards from the same housing 10 are scanned at once to generate a gigapixel image. In an exemplary embodiment, each image 212 may have a size of, for example, 5 GB or more.

[0121] Figure 22 shows a process for generating an artificial intelligence model 230 for pest recognition 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 may include data associated with the characteristics of specific pest species and tags associated with those pest species. For example, in the case of aphids, the training data may include data associated with the unique shape of aphids and tags associated with aphids identified based on their unique shape. For example, a training dataset can be generated using a computer vision API (Application Programming Interface) such as the AWS Rekognition API, Microsoft Computer Vision, or Google Cloud Vision API.

[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 fed to a neural network algorithm that applies appropriate weights to the input data or independent variables to determine appropriate dependent variables, in which case one or more dependent variables are determined and combined to determine the final result (e.g., identification of images of pests in an image dataset and classification of the identified pests). In exemplary embodiments, the neural network algorithm may be implemented using deep learning frameworks such as 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 may be tested for accuracy, recall, F1 score, inter-associative crossover (IoU), and mean absolute error (MAE).

[0124] In exemplary embodiments, the pest recognition model 230 may be a machine learning recognition model such as a Support Vector Machine (SVM) model, a Bag of Feature Model, or a Viola-Jones Model. In embodiments, the pest recognition model 230 may be a deep learning image recognition model such as Faster RCNN (Region-based Convolutional Neural Network), Single Shot Detector (SSD), or You Only Look Once (YOLO).

[0125] In an exemplary embodiment, the pest recognition AI model can generate a report indicating the presence or absence of pests within a section of the enclosure 10. Figure 23 shows an example of a report generated by the pest management system 200, including the types of pests identified within the enclosure, the number detected, and the proportion of each pest to the total number of all detected pests. Links may 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 card 210 can be manually confirmed by a person who looks at card 210 and visually spots any pests. 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 housing 10.

[0127] In exemplary embodiments, it is possible to detect pests that are not present in the training set for inspection. In this regard, unsupervised and / or semi-supervised learning algorithms can be used to detect pests outside the original training set. AI training can be bootstrapped using a large unlabeled dataset of historical data and a small subset of labeled data. Suitable techniques that may be used in this regard include, among other things, fusion 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, and integrated handling and machine vision tools attached to machine vision technology and artificial intelligence. In this regard, Figure 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 reside within the server 560. The server may also include a 3D module 572, an inference module 568, a training module 570, memory 561, and a PLC module 562. The modules of server 560 may consist of software components, hardware components, or a combination of hardware and software components. Furthermore, one or more modules may be combined, and / or one or more modules may be separated into submodules. Although only one server 560 is shown in Figure 24, multiple servers may be provided, and it should be understood that multiple enclosures 10 (or "farms") include one or more harvest stations 500 associated with one or more of the multiple servers.Furthermore, although only one PLC 556 is shown in Figure 24, it should be understood that the harvesting station 500 may include multiple PLCs, and each PLC may be associated with one or more corresponding harvesting robots 552-1, 552-2...552-n.

[0130] Harvesting robots 552-1, 552-2...552-n include corresponding camera units 553-1, 553-2...553-n. In exemplary embodiments, camera units 553-1, 553-2...553-n may be stereoscopic red-green-blue depth (RGBD) cameras, such as the Intel® RealSense® D405 camera (Intel Corporation, Santa Clara, California, USA). Other types of cameras may be used, such as simple stereo, structured light, or solid-state LiDAR.

[0131] As will be described in more detail below, the harvesting station 500 operates to identify ripe fruit within a closed field of view of the crop environment and to harvest the ripe fruit without causing damage to the plants or the environment. In exemplary embodiments, the harvesting station 500 may also be configured to count the number of flowers in 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 fixed platform so that they can access the crop and perform the harvesting process as the racks 20 move along the conveyor system 40. As shown in Figures 25A and 25B, in exemplary embodiments, the harvesting robots 552-1, 552-2...552-n are 6-axis robots and may include multiple joints and end effectors 555. The end effector 555 may be a gripper configured to grasp the stem and cut the stem to remove the ripe fruit, or the gripper may have a more claw-like configuration for directly grasping the fruit and pulling the fruit from the stem. Here, the end effector 555 may comprise a grip portion for holding the stem and a separate cutting portion for cutting the stem while the stem is held in the gripper portion. This allows the end effector 555 to place the still-gripped harvested fruit onto a tray or other storage / packaging component. As will be described in more detail below, camera units 553-1, 553-2...553-n operate to capture images of the crop and the surrounding environment to assist the harvesting process. In exemplary embodiments, the harvesting robot may be a commercially available robot such as, for example, Yaskawa Motoman (Yaskawa America, Inc., Miamisburg, Ohio, USA) or FANUC LR Mate (FANUC America Corporation, Rochester Hills, MI, USA).

[0132] As shown in Figure 25A, the harvesting robots 552-1, 552-2…552-n may be fixed and held on a scaffolding 590. The scaffolding 590 may include multiple levels, with any number of harvesting robots 552-1, 552-2…552-n supported at each level, so that any number of harvesting robots 552-1, 552-2…552-n can access the plants held on the racks 20. In this regard, once each rack 20 enters the harvesting station area, the racks 20 may be held in a fixed position to allow time for the harvesting robots 552-1, 552-2…552-n to harvest the fruit. Once harvested, the fruit may be placed on trays or other temporary storage components by the harvesting robots 552-1, 552-2…552-n, and the trays or other temporary storage components may then be transported to a packaging station by a separate transport system.

[0133] The edge devices 554-1, 554-2...554-n process the image data captured by the camera units 553-1, 553-2...553-n into data that can be used to execute various processes on the server 560. In this regard, the edge devices 554-1, 554-2...554-n may be devices such as, to give a few examples, NVIDIA® Jetson Nano (registered trademark) (NVIDIA Corporation, Santa Clara, California, USA), soc (system on a chip), sbc (single board computer), Raspberry Pi (Cambridge, UK), Intel® Edison (Intel Corporation, Santa Clara, California, USA), and Intel® NUC. In an exemplary embodiment, the edge devices 554-1, 554-2...554-n execute a camera driver and transmit information from the camera to the server 560 via the Ethernet-IPC bridges 555-1, 555-2...555-n. In this regard, Ethernet-IPC bridges 555-1, 555-2...555n may include, for example, ZeroMQ bridges, RabbitMQ bridges, WebRTC gateways, or gRPC bridges. Edge devices 554-1, 554-2...554-n may be configured to output data to memory, along with a timestamp, which may be a serialized message or payload sent via, for example, inter-process communication (e.g., shared memory, memory-mapped files, file descriptors, pipes, Unix domain sockets, etc.). The data placed in memory may be image data contained within a message container, and the message may 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 server 560 receive input from edge devices 554-1, 554-2...554-n and perform operations as described in more detail below. In this context, messages are sent from the bridges of edge devices 554-1, 554-2...554-n, received by the corresponding Ethernet-IPC bridges 555-1, 555-2...555n in server 560, and then placed in server memory 561. Server memory 561 (commonly referred to as IPC) is a module that facilitates communication between all modules within server 560. In Figure 24, all connections / arrows within the modules in server 560 are made using server memory 561 as through interconnects between modules. In an exemplary embodiment, image messages may be passed from edge devices 554-1, 554-2...554-n to Ethernet-IPC bridges 555-1...555-n in server 560 at a rate of, for example, 30 times per second.

[0135] The PLC module 562 is configured to communicate with PLC 556 to obtain the operating status of harvesting robots 552-1, 552-2...552-n, and to provide commands to the harvesting robots to perform harvesting, trimming, and other operations. These commands include, but are not limited to, the position for picking, the trajectory for the harvesting robot to perform picking, verification of the success / failure of the picking operation, the position for the placement of the picked berries / fruits, and verification of the success / failure of the placement of the picked berries / fruits. In this regard, the PLC module 562 can determine the operating status of harvesting robots 552-1, 552-2...552-n, for example, where the robot is located, whether the robot is idle, and whether the robot is in picking mode. The PLC module 562 can communicate with PLC 556 using conventional industrial communication protocols. The PLC module 562 places robot operating status data in the memory module 561 for use by other modules on the server 560. Robot operation status data may be in a serialized memory format that describes what a particular robot or set of robots is doing at a given time.

[0136] The following is an example of pseudocode for implementing PLC module 562.

[0137]

number

[0138] Figure 26 is a flowchart showing the process performed 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 farm for each robot. In step S2603, if the PLC module 562 determines that a robot is idle, it skips the robot and analyzes the next robot. In step S2607, if it determines that a robot is scanning, additional tug information is read from PLC 556, and the PLC module 562 then uses memory module 561 to broadcast relevant notification messages to various other modules. In step 2611, if the PLC module 562 determines that a robot is performing calibration, picking, and / or placement, relevant notification messages are broadcast to various other modules using memory module 561. In step S2615, if the PLC module 562 determines that a robot is waiting for pick data, the PLC module 562 reads the pick data from safety modules 576-n when the data is ready, and then outputs the pick data to PLC 556 for the robot index. If the PLC module 562 cannot determine the robot's status (for example, disabled or unknown), the PLC module 562 returns an error message.

[0139] The frame synchronization modules 564-1...564-n are configured to read directly from the memory module 561 to acquire image messages and robot motion state data, and to synchronize the robot motion state with the captured image. In this regard, each time the robots 552-1, 552-2...552-n start scanning an image, the frame synchronization modules 564-1...564-n can receive a notification indicating that they must find a suitable image from the scanning events that matches the robot motion state. Since the robots 552-1, 552-2...552-n are moving during the scanning events, the captured images may be blurred, and therefore, in exemplary embodiments, 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 a scan event and confirms that the robot is not moving, the frame synchronization modules 564-1...564-n can select an captured image frame and output a synchronization frame message to the memory module 561 containing information about the captured image frame and the corresponding robot motion state data. Thus, the captured image frame is synchronized with the robot motion state at a specific point in time.

[0140] The following is an example of pseudocode for implementing frame synchronization modules 564-1...564-n.

[0141]

number

[0142] Figure 27 is a flowchart showing the process performed by a 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 timestamp from the memory module 561, and the image data is stored in an image buffer indexed by the timestamp. 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. Otherwise, the frame synchronization module 564-n checks whether the oldest event in the queue can be processed. In the exemplary embodiment, if the event timestamp is close to the timestamp of the image in the image buffer, the event can be processed. If such a match is found, the frame synchronization module 564-n packs the event data together with the retrieved image into a message and then broadcasts the message to various modules in the pipeline using the memory module 561. The processed event data can then be retrieved from the queue.

[0143] Calibration modules 566-1...566-n are configured to perform initial calibration of robots 552-1, 552-2...552-n and camera units 553-1, 553-2...553-n or update existing calibrations using synchronous frame messages generated by frame synchronization modules 564-1...564-n. In this regard, PLC 556 may be placed in a calibration mode that causes robots 552-1, 552-2...552-n to perform multiple movements while transmitting relevant captured images to server 560. Calibration modules 566-1...566-n can then use this information to perform internal and external calibration of camera units 553-1, 553-2...553-n.

[0144] The following is an example of pseudocode for implementing calibration modules 566-1...566-n.

[0145]

number

[0146] Figure 28 is a flowchart showing the process performed by a calibration module 566-n according to an exemplary embodiment of the present invention. After the initial loading of calibration configuration 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 refines calibration points on the object to be calibrated. In step S1-2805, if a sufficient number of calibration points are detected in the frame, the calibration module 566-n adds the robot transformation, calibration points, and IDs to the buffer. In step S1-2807, if a sufficient number of robot transformations, calibration points, and IDs have been collected from multiple images, the calibration module 566-n performs internal and external camera calibration. Step S1-2807 includes a substep including step S2-2809, in which the calibration module 566-n calculates internal camera parameters, 3D translation, 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 a substep including step S3-2811, in which the calibration module 566-n starts eye-in-hand camera calibration, looping through all robot transformations and uniquely generated 3D translation and rotation. Step S2-2809 includes a substep including step S4-2813, in which the calibration module 566-n adds the robot transformations and uniquely generated 3D translation and rotation to the calibration backend. The backend removes mathematically degenerate samples. In step S4-2815, if a sufficient number of samples have been collected after the removal of mathematically degenerate samples, the calibration module 566-n calculates the external transformation. In step S4-2817, calibration module 566-n saves the internal and external calibrations as configuration maps to Kubernetes (or other container orchestration tools).

[0147] The inference module 568 is configured to use captured 2D images to generate messages containing inference data, which are then placed 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 inference on incoming real-time data. The inference module 568 can perform operations such as object detection, masking, maturity detection, bounding box and keypoint detection, to name a few. In exemplary embodiments, the inference module 568 can use an object detection model and a separate keypoint detection model. In exemplary embodiments, the inference module 568 can perform its operations using one or more neural networks, such as Mask R-CNN, YOLOACT, Keypoint R-CNN, GSNet, Detectron2, and PointRend, to name a few. In exemplary embodiments, 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 synchronous frame message generated by the frame synchronization modules 564-1...564-n, and the output may be an inference output message containing robot motion state data, the original input message, depth (as part of the RGBD data), mask, object detection, maturity detection, bounding box, keypoint, and other relevant information.

[0148] The following is an example of pseudocode for inference module 568.

[0149]

number

[0150] Figure 29A is a flowchart showing the process performed by an inference module 568 according to an exemplary embodiment of the present invention. After the initial loading of the inference model, the inference module 568 receives image data from the memory module 561 (step S1-2901). In step S1-2903, the inference module 568 performs inference on the image data. Step S1-2903 may include substeps including step S2-2905 in which the inference module 568 performs a mask and bounding box detection model, step S2-2907 in which the inference module 568 performs a keypoint and bounding box detection model, step S2-2909 in which the inference module 568 combines the model outputs using, for example, bounding box IoU and the Hungarian algorithm, and step S2-2911 in which the inference module 568 calculates the width, height, and ripeness of the berries. In these steps, detection near the edges of the image may be discarded. In step S2-2913, the inference module 568 packages the detection into a message, and in step S2-2915, it uses the memory module 561 to broadcast the message to various modules in the pipeline.

[0151] Figure 29A is an image of the picking environment before running the inference module 568 according to an exemplary embodiment of the present invention. Figure 29B shows the output of the inference module, including a mask, bounding box, keypoint, and ripeness scoring. In the exemplary embodiment, ripeness may be determined by the inference module 568 based on fruit color and / or other parameters. The ripeness score can be based on a scale of 0 to 1, where lower scores correspond to "unripe" fruits, medium scores correspond to "ripe" fruits, and higher scores correspond 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 neural networks. This is preferably run separately rather than as part of a real-time system. The training module 570 can train models using publicly available datasets for strawberries and / or other parts of the plant, such as the StrawDI and "Strawberry Harvest Point Location, Ripeness and Weight Estimation" datasets. The datasets may be in standard formats, such as COCO, KITTI, and Cityscapes, to name a few examples. Alternatively, the datasets may be custom datasets created, managed, and annotated.

[0153] The 3D module 572 is configured to convert a captured 2D image into 3D image information based on inference output messages generated by the inference module 568. In this regard, the 3D module 572 can perform operations such as calculating the width and height (mm or other appropriate units of measurement) of the strawberry, 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, to name a few, a global world frame, the relative position of the robot, the relative position of the camera, and the relative position of the strawberry. The inputs to the 3D module 572 are full RGBD data from cameras 553-1...553-n, as well as 2D keypoints and 2D masks from the inference module 568. The 3D module 572 integrates all of these components, fills in any gaps, and corrects them for camera calibration. The 3D module 572 can generate a set of 3D points representing the position of the strawberry relative to the camera that captured the image of the strawberry. Next, 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] The following is an example of pseudocode for implementing the 3D module 572.

[0155]

number

[0156] Figure 30 is a flowchart showing the process performed by a 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 performs steps S2-3003 to S2-3019. In step S2-3003, the 3D module 572 analyzes the depth image and model output, and in step S2-3005, the 3D module 572 searches for camera intrinsicity. In step S2-3007, the 3D module 572 extracts 2D points for all keypoints in the detection of each berry and adds dimension to the tensor. In step S2-3009, the 3D module 572 converts the 2D points to 3D points using camera intrinsicity and depth projection function. In step S2-3011, the 3D module 572 calculates the 3D distance to determine the width and height of the berry in 3D space. In step S2-3013, the 3D module 572 sorts the 3D detections by the Z-axis (depth) in preparation for 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, 3D keypoints, and associated model output into a message, and in step S2-3019, uses the memory module 561 to broadcast the message to various modules in the pipeline.

[0157] Aggregator modules 574-1...574-n are configured to aggregate 3D image data and use multiple 3D images to generate a world map of strawberries in a world frame. In this regard, frame synchronization modules 564-1...564-n, inference module 568, and 3D module 572 can "fire" only once per image so that the world map of strawberries is not known without the aggregation of those images. In this regard, aggregator modules 574-1...574-n can generate a world map using multiple collected 3D images, e.g., one to sixteen images, to generate a world map of strawberries in a world frame. After the world map is projected onto the world frame, aggregator modules 574-1...574-n can remove overlapping images and determine the ideal approach angle for the end effector 555. The ideal approach angle can be determined by determining the minimum occlusion image for a particular strawberry from multiple collected 3D images of that strawberry, and then calculating the ideal approach angle based on the determined minimum occlusion image.

[0158] The following is an example of pseudocode for implementing aggregator modules 574-1...574-n.

[0159]

number

[0160] Figure 31 is a flowchart showing the process performed by an 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 transformation tree with the new transformation. In step S3105, the aggregator module 574-n transforms the point cloud into a specified frame and filters and excludes points based on distance and maturity criteria. In step S3107, the aggregator module 574-n resets the data cache for a new scan and aggregates the filtered data. Once sufficient data has been collected, in step S3109, the aggregator module 574-n performs clustering, for example, using density-based spatial clustering of noisy applications (DBSCAN) or hierarchical density-based spatial clustering of noisy applications (HDBSCAN). In step S3111, for each cluster, the aggregator module 574-n calculates a metric, selects the minimum occlusion scan, and determines the best selection point, including angle, height, and width. The clusters may be filtered based on error and maturity 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 broadcasts the messages to various modules in the pipeline.

[0161] Safety modules 576-1...576-n are configured to determine whether a particular strawberry pick is within a boundary. In this regard, safety modules 576-1...576-n can determine, based on the output of aggregator modules 574-1...574-n, whether a particular pick violates one or more rules. One or more rules may relate, for example, to a predetermined area in which the pick should be restricted, to whether the approach angle is within a predetermined safety angle, and, to name a few, whether the pick causes the robot to operate outside of safety parameters.

[0162] The following is an example of pseudocode for embedding safety modules 576-1...576-n.

[0163]

number

[0164] Figure 32 is a flowchart showing the process performed by safety module 576-n according to an exemplary embodiment of the present invention. After the safety module 576-n is initialized to consist of a predetermined safety zone (per robot) including acceptable boundaries along the X, Y, and Z axes, the safety module 576-n performs steps S3203 to S3209 for each incoming message (step S3201) that includes 3D pick positions from a set of scans. In step S3203, the safety module 576-n extracts the cluster centroid from the received message. In step S3205, the safety module 576-n filters the pick positions based on the safety zone and discards clusters based on acceptable boundaries along the X, Y, and Z axes. In step S3207, the safety module 576-n generates output messages that have been filtered out, and in step S3209, it broadcasts the messages to various modules in the pipeline using memory module 561.

[0165] pollination system

[0166] In an exemplary embodiment, System 1 may include a pollination system that stores one or more beehives and periodically releases a large number of bees, the number of bees being determined based on the number of flowers in the housing 10 or any other factor related to bee pollination. In this regard, Figure 33 is a block diagram of a pollination system, collectively referred to as Reference No. 300, according to an exemplary embodiment of the present invention. The pollination system 300 comprises a bee station 310, a server 330, and a camera robot 350. The bee station 310, the server 330, and the camera robot 350 can communicate via a network 380, such as a wide area network or a local area network. Each housing 10 may include one or more bee stations 310.

[0167] Figures 34A and 34B show simplified block diagrams of both sides of a bee station, collectively referred to as reference numeral 310, according to an exemplary embodiment of the present invention. The bee station 310 includes a nest 312 held within a nest housing 314. The nest housing 314 may be any commercially available beehive, such as NATUPOL® (Koppert Biological Systems, Inc., Howell, MI, USA). A bee gate system, collectively referred to as reference numeral 320, is mounted on the nest housing 314. The bee gate system 320 includes a bee exit gate assembly 322 and a bee inlet gate assembly 330, which are arranged side by side. A vision system including a camera 340 is positioned above the bee exit gate assembly 322 and the bee inlet gate assembly 330 to track the movement of bees entering and exiting the nest, thereby allowing the number of bees in the housing 10 to be controlled using the bee exit gate assembly 322. The bee exit gate assembly 322 and the bee inlet gate assembly 330 share an upper wall 350, which can be made of a transparent material such as plexiglass or clear acrylic. A lighting system 352 is positioned below the bee gate system 320 to backlight the bees inside the bee gate system 320 so that a camera 340 can see the bees. The lighting system 352 may be, for example, an LED strip. The bee exit gate assembly 322 and the bee inlet gate assembly 330 also include a shared bottom wall 351, which can be made of a translucent material such as frosted glass or translucent acrylic.

[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, and 328 are separated 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 nest at a time, depending on the pollination requirements. In this regard, the first gate 323 may be opened first to allow some bees to enter the central portion 326 from the proximal portion 324, then the first gate 323 may be closed, and then the second gate 325 may be opened to allow 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 nest but prevents any bees from leaving it. In exemplary embodiments, the trap door 332 may be provided separately as part of the nest housing 314 or may be integrated as part of the bee gate system 320.

[0170] Figure 35 is a top cross-sectional view of a bee gate system 320 according to an exemplary embodiment of the present invention. Slot 354 is formed through a portion of the upper wall 350 on the bee exit gate assembly 322, corresponding to the movement of the first and second gates 323,325 between an open configuration and a closed configuration. If a trapdoor 332 is provided as part of the bee gate system 320, a separate slot (not shown) may be provided in the trapdoor 332 (otherwise, if the trapdoor 332 is provided separately from the nest housing 314, a separate slot may not be necessary). The bee exit gate assembly 322 and the bee inlet gate assembly 330 are separated by a wall 416. A platform 402 is positioned adjacent to the bee exit gate assembly 322 and the bee inlet gate assembly 330 to support other components of the bee gate system 320, such as components for controlling the operation of the first and second gates 323,325, which may include servo motors. The sensors may also be used to control the operation of the first and second gates 323,325 and may be located on the underside of the bee gate system 320, connected via bolts in holes 409 having sensing slots 419.

[0171] Figure 36 is a perspective view of a bee station 310 according to an exemplary embodiment of the present invention. As previously mentioned, the bee station 310 includes a nest 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 positioned between the upper housing and the lower housings 342, 344. The upper housing 342 encloses a computing unit, which will be described in more detail below. The intermediate housing 346 functions to enclose a focal length spacer for a camera 340. The lower housing 344 encloses a lighting system 352, among other components. The bee exit gate assembly 322 and the bee inlet gate assembly 330 are positioned between the lower housing and the intermediate housings 344, 346. Platform 402 supports components including, for example, a first servo motor 348 for a first gate 323 and a second servo motor 349 for a second gate 325.

[0172] Figure 37 is an exploded view of a Hachigate system 320 according to an exemplary embodiment of the present invention. Inside the upper housing 342 is a computing unit which may 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, China). The computing unit may also include a Power over Ethernet (PoE) connection 362, such as a Raspberry Pi PoE HAT.

[0173] As shown in Figure 37, a spacer 366 is provided on the axle on platform 402 to separate the first gates 323, 325 from the second gate 325, and sensors 368A and 368B corresponding to the first gate 323 and the second gate are provided below platform 402.

[0174] The Hachigate system 320 can receive power and data via a PoE connection and is controlled by a single-board computer 360 which is 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 and 368B, and two motors 348 and 349.

[0175] Figure 38 is a block diagram showing various computer modules of a beehive computing unit, collectively referred to as 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 location of bees in various regions of the bee exit and bee entrance assemblies 322 and 330. In connection with this, the bee detection module 372 can return global bee location data relating to the locations of bees in the proximal, central, and distal portions 324, 326, and 328 of the bee exit assembly 322, as well as in the bee entrance assembly 330. Each bee detected in various regions may be given an (x,y) coordinate, where the x coordinate is relative to the horizontal axis and the y coordinate is relative to the vertical axis.

[0177] The following is an example of pseudocode for implementing the bee detection module 372.

[0178]

number

[0179] Figure 40 is a flowchart showing the process performed by a 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 configured to hold the camera's output. In step S1-4001, the bee detection module 372 continuously captures frames from the camera in an infinite loop, and in step S1-4003, converts the current frame 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 thresholding and morphological calculations (S1-4009). Step S1-4009 includes substeps S2-4011 to S2-4019. In step S2-4011, the bee detection module 372 calculates the number of bees entering / exiting the bee inlet assembly 330 by calling the bee tracking module 376. In step S2-4013, the bee detection module 372 calculates the number and location of bees in different areas (e.g., beehive, airlock, farm, bypass) based on the processed image. In step S2-4015, the bee detection module 372 estimates the area occupancy rate based on the detected bees and a predetermined area mask. In step S2-4017, the bee detection module 372 generates a message containing the detection results, including the location, number, and area occupancy rate of the bees, and broadcasts the message to various modules in the pipeline. The bee detection module 372 can also check for recalibration and reset requests and respond by recalibrating the camera or resetting the tracking system as necessary.

[0180] The central bee count estimation module 374 uses bee location data to estimate the current number of bees in the central portion 326 of the bee exit assembly 322. In this regard, the bee counter estimation module 374 can use an exponential filter to estimate the current number of bees in the central portion 326. An exemplary pseudocode for implementing the central bee count estimation module 374 is as follows:

[0181]

number

[0182] Figure 41 is a flowchart showing the process performed by the central bee count estimation module 374 according to an exemplary embodiment of the present invention. In step S4101, the central bee count estimation module 374 receives the current number of bees detected in the airlock from a message. In step S4103, the central bee count estimation module 374 adjusts the bee count estimation using an exponential moving average, modifying it to give more weight to higher, more recent readings. This adjustment accounts for the tendency of the sensor to undercount by increasing the weight (alpha) when a larger number is observed. In step S4105, the central bee count estimation module 374 returns the updated estimated bee count of the airlock, which is available to other modules.

[0183] The bee tracking module 376 tracks the number of bees entering and exiting the bee inlet assembly 330. In this regard, bees may enter the bee inlet assembly 330 but not necessarily enter the beehive, and in some cases may exit the bee inlet assembly 330 without entering the beehive at all. Therefore, the bee tracking module 376 tracks the trajectory of bees within the bee inlet assembly 330 over a predetermined period to determine an increase or decrease in the number of bees in the enclosure 10. The bee tracking module 376 may use filtering techniques to generate bee tracking data, which may include, for example, Kalman filtering, nearest neighbor filtering, extended Kalman filtering, and unscented Kalman filtering. The bee tracking data is then used by the bee tracking module 376 to generate bee count adjustment data to subtract or add to the number of bees in the enclosure 10.

[0184] The following is an example of pseudocode for implementing the bee tracking module 376.

[0185]

number

[0186] Figure 42 is a flowchart showing the process performed 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 position along with previous position and tracking information. In step S4206, the bee tracking module 376 calculates a corrected center point ("bypass_cx") of the bypass region to ensure that it is a non-integer value. This adjustment is important to prevent an exact match with the center point, as errors may occur in the calculation of the direction of movement. In step S4208, the bee tracking module 376 iterates through the current and previous centroid positions and calculates the change in position relative to the corrected 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 for changes in the marker of its position relative to "bypass_cx". In step S4212, the bee tracking module 376 returns a net delta representing the overall movement of the bee across the bypass region in the current time step.

[0187] The command logic module 378 generates control data for the exit gate control module 382 to cycle through opening the first and second gates 323 and 325. The control data can be based on bee limit settings, current bee count data, and scheduled rest periods. Scheduled rest periods can occur at the start of nighttime periods, at which point the hive door is closed, and then the count can be reset and the hive door opened at the start of the next daytime period. The command logic module 378 tracks the number of bees in the enclosure to generate bee count data based on bee count adjustment data generated by the bee tracking module 376, bee release data generated by the exit gate control module 382 (described later), and reset data.

[0188] An example of pseudocode for command logic module 378 is as follows:

[0189]

number

[0190] Figure 43 is a flowchart showing the process performed by a 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 a state file from memory and uses a default if no state file exists. In step S4301, the command logic module 378 performs a receive mode override, which 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 new bee population limits received from an external source and saves these updates to memory. This ensures that the system maintains the latest operating parameters even after a reboot. In step S4305, the command logic module 378 performs a manual update of the bee count and allows manual correction or adjustment of the bee count while saving these changes to a state file. In step S4307, if a reset is performed 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 processes new bee detection data after waiting. In step S4311, the instruction logic module 378 updates the controller with the latest status of the airlock motors. In step S4313, the command logic module 378 adjusts the number of bees inside based on the net change (delta) of bees detected by the bee tracking module 376 to pass through the bee inlet 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 needs (e.g., excessive bee discharge or airlock locking). In step S4317, the command logic module 378 calls the central bee count estimation module 374 for an exponential 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 need, and the new state is stored in memory so that the system can be sure to recover the current operating state after an interruption.

[0191] The exit gate control module 382 operates the first and second gates 323 and 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. An exemplary pseudocode for implementing the exit gate control module 382 is as follows:

[0192]

number

[0193] Figure 44 is a flowchart showing the process performed by an 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 required to achieve or maintain this state. A target state is set to match the current state to establish a baseline for operation. In step S4401, the exit gate control module 382 obtains the current gate state from a 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 subscribed sockets. Upon receiving a command, the exit gate control module 382 issues commands to adjust the motor accordingly ("send_motor_state_command" method), aiming to transition the gate to the requested state. In step S4407, the exit gate control module 382 updates motor commands to manage speed regardless of movement, address potential sticking issues, and disengage the motor as needed. In step S4409, the exit gate control module 382 processes the incoming message and updates the motor state, then creates a message containing the current motor state, and in step S4411, broadcasts the message to various modules in the pipeline.

[0194] Figure 39 is a flowchart illustrating the operation of an exit gate assembly 322 according to an exemplary embodiment of the present invention. The process shown in Figure 39 can be repeated periodically, for example, every 5 seconds, every 10 seconds, every minute, or at any other time interval. 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 may occur at a predetermined time after the first gate 323 was initially opened. In step S05, both the first and second gates 323,325 are left closed for a certain period of time to allow the bee numbers to settle. This step provides sufficient time for the bee tracking module 376 to track the number of bees entering and leaving the bee inlet assembly 330 and for the central portion bee count estimation module 374 to estimate the current number of bees in the central portion 326. In step S07, the second gate 325 is opened, releasing the bees from the central section 326. In step S10, after it is determined that the central section 326 is empty (step S09), bee release data is sent to the bee counter module 378 to adjust the number of bees inside the housing 10. Next, in step S11, the second gate 325 is closed.

[0195] In an exemplary embodiment, the camera robot 350 may be located on a fixed platform and may include a vision system configured to identify and count the number of flowers on a crop as the rack 20 passes over the robot 350. In another exemplary embodiment, the number of flowers may be determined using a vision system integrated within the harvesting system 500, for example, 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 fruit ripeness analysis. The vision system may implement machine vision image processing techniques such as neural network / deep learning / machine learning processing and pattern recognition, including, for example, stitching / registration, filtering, thresholding, pixel counting, segmentation, edge detection, color analysis, blob detection and extraction, template matching, gauging / measurement, and comparison with a target value to determine a "pass / fail" or "go / don't go" result.

[0196] It should be understood that the bee stations described herein are not limited to use in indoor vertical farming environments, and in other exemplary embodiments, the bee stations of the present invention can be used in other agricultural environments, such as outdoor farming, indoor farming, conventional farming, and greenhouse farming. For the purposes of this disclosure, one or more computer systems configured to perform a particular operation or action means that software, firmware, hardware, or a combination thereof is installed on the system that causes the system to perform the operation or action during operation. One or more computer programs configured to perform a particular operation or action means that one or more programs, when executed by a data processing device, include instructions that cause the device to perform the operation or action.

[0197] The subject matter and functional embodiments described herein can be implemented in digital electronic circuits, tangibly embodied computer software or firmware, computer hardware including structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more modules of computer programs, i.e., computer program instructions encoded on a tangible, non-transient program carrier for execution by a data processing device or for controlling the operation of a data processing device. Alternatively or in addition thereto, the program instructions can be encoded in artificially generated propagating signals, such as machine-generated electrical signals, optical signals, or electromagnetic signals, which are generated to encode information for transmission to a suitable receiving device for execution by a data processing device. Computer storage media can be machine-readable memory devices, machine-readable memory boards, random-access or serial-access memory devices, or one or more combinations thereof. However, computer storage media are not propagating signals.

[0198] The term "data processing device" encompasses all kinds of devices, machines, and equipment for processing data, including, for example, programmable processors, computers, or multiple processors or computers. A device may include specialized logic circuits such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, a device may also include code that constitutes the execution environment for the computer program in question, such as processor firmware, protocol stacks, database management systems, operating systems, or one or more of these.

[0199] A computer program (also called, or written as, a program, software, software application, module, software module, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and can be deployed in any form, including as a standalone 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. A program may be stored in 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, a file that stores one or more modules, subprograms, or parts of code. A computer program can be deployed to run on one computer, or on multiple computers located in one site, or distributed across multiple sites and interconnected by a communication network.

[0200] As used herein, “engine” or “software engine” refers to a software-implemented input / output system that provides an output distinct from its inputs. An engine can be a library, platform, software development kit ("SDK"), or a functional coding block such as an object. Each engine can be implemented on any suitable type of computing device, such as a server, mobile phone, tablet computer, notebook computer, music player, e-reader, laptop or desktop computer, PDA, smartphone, or other fixed or portable device including one or more processors and computer-readable media. Furthermore, two or more engines may be implemented on the same computing device or on different computing devices.

[0201] The processes and logic flows described herein can be executed by one or more programmable computers running one or more computer programs to perform functions by manipulating input data to produce outputs. The processes and logic flows can also be executed by dedicated logic circuits, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and the devices can also be implemented as dedicated logic circuits.

[0202] A computer suitable for running computer programs may, for example, be based on a general-purpose or dedicated microprocessor, or both, or any other type of central processing unit. Generally, the central processing unit receives instructions and data from read-only memory or random-access memory, or both. Essential elements of a computer are a central processing unit for executing or running 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, such as magnetic, magneto-optical disks, or optical disks, or is operablely coupled to them to receive data from them, transfer data to them, or both. However, a computer does not need to have such devices. Furthermore, a computer can be incorporated into another device, for example, 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 storage device, such as a Universal Serial Bus (USB) flash drive.

[0203] Suitable computer-readable media for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, as well as magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. Processors and memory may be complemented by or incorporated into dedicated logic circuits.

[0204] To provide user interaction, embodiments of the subject matter described herein may be implemented on 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, and on a computer having an input device for providing input to the computer, such as a keyboard, mouse, or a presence display or other surface. User interaction may also be provided using other types of devices, for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or haptic feedback, and input from the user may be received in any form, including acoustic, voice, or haptic input. Furthermore, the computer may interact with the user by sending resources to a device used by the user, for example, by sending a web page to a web browser on the user's client device in response to a request received from a web browser, and by receiving resources from the device.

[0205] Embodiments of the subject matter described herein can be implemented as a computing system including, for example, a backend component as a data server, or a middleware component such as an application server, or a frontend component such as a client computer having a graphical user interface or a web browser on which a user can interact with the implementation of the subject matter described herein, or as any combination of one or more such backend, middleware, or frontend components. The components of the system can be interconnected by digital data communication in any form or medium, such as 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 via a communication network. The relationship between a client and a server arises from computer programs running on each computer that have a client-server relationship with each other.

[0207] While this specification includes many specific details of implementation, these should not be interpreted as limitations on the scope of any invention or claim, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described in this specification in relation to separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately or in any suitable partial combination in multiple embodiments. Furthermore, features may be described above as acting in a particular combination and may even be initially described in the claims as such, but one or more features from a combination described in the claims may, in some cases, be cut from the combination, and the combination described in the claims may be directed towards a partial combination or a variation of a partial combination.

[0208] Similarly, although operations are shown in a specific order in the drawings, this should not be understood as requiring that such operations be performed in a specific or sequential order, or that all shown operations be performed, in order to achieve the desired result. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged in multiple software products.

[0209] Figure 45 is a block diagram showing an exemplary machine learning platform for carrying out various aspects of the present invention, according to several exemplary embodiments of the present invention.

[0210] System 1500 may include a data entry engine 1510 which may further include a data search engine 1504 and a data transformation engine 1506. The data search engine 1504 may be configured to access, interpret, request, or receive data that can be reorganized, reformatted, or modified (for example, so that it can be interpreted by other engines, such as the data entry engine 1510). For example, the data search engine 1504 may request data from a remote source using an API. The data entry engine 1510 may be configured to access, interpret, request, format, reformatted, or receive input data from a data source 1502. For example, the data entry engine 1510 may be configured to use the data transformation engine 1506 to perform data reorganization or other modifications, such as data dimensionality reduction. The data source 1502 may reside 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 may include one or more of the following: training data 1502a (e.g., input data for supplying a machine learning model as part of one or more training processes), validation data 1502b (e.g., data that at least one processor can compare model outputs to, for example, to determine model output quality), and / or reference data 1502c. In some embodiments, the data input engine 1510 may be implemented using at least one computing device. For example, data from the data source 1502 may be acquired via one or more I / O devices and / or network interfaces. Furthermore, the data may be stored in appropriate 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 storage or system memory. The system 1500 may include a feature engine 1520.The feature extraction engine 1520 may include a feature annotation and labeling engine 1512 (for example, configured to annotate or label features from a model or data that can be extracted by a feature extraction engine 1514), a feature extraction engine 1514 (for example, configured to extract one or more features from a model or data), and / or a feature scaling and selection engine 1516. The feature scaling and selection engine 1516 may be configured to determine, select, limit, constrain, concatenate, or define features (e.g., AI functions) for use in an AI model. The system 1500 may also include a machine learning (ML) modeling engine 1530, which may be configured to perform one or more operations on a machine learning model (e.g., model training, model reconfiguration, model validation, model testing), such as those described in the processes described herein. For example, the ML modeling engine 1530 may perform operations for training a machine learning model, such as adding, deleting, or modifying model parameters. Training of a machine learning model may be supervised, semi-supervised, or unsupervised. In some embodiments, training a machine learning model may involve multiple epochs or passes of data (e.g., training data 1502a) through a machine learning model process (e.g., a training process). In some embodiments, different epochs may have different degrees of supervision (e.g., supervised, semi-supervised, or unsupervised). Data to the model for training the model may include input data (e.g., as described above) and / or data previously output from the model (e.g., forming recursive learning feedback). Model parameters may include one or more of the following: seed values, 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 may include or represent dependencies or interdependencies, hierarchies, and / or relationships between model parameters and / or models that may be static or dynamic.The combinations and configurations of model parameters and the relationships between model parameters discussed herein are cognitively impractical for the human mind to maintain or use. Without limiting the disclosed embodiments, machine learning models can include millions, trillions, or billions of model parameters. The ML modeling engine 1530 may include a model selection engine 1532 (e.g., configured to select a model from among several models based on input data), a parameter selection engine 1534 (e.g., configured to add, remove, and / or modify one or more parameters of a model), and / or a model generation engine 1536 (e.g., configured to generate one or more machine learning models according to model input data, model output data, comparison data, and / or validation data, etc.). Similar to the data input engine 1510, the featureization engine 1520 can be implemented on a computing device. In some embodiments, the model selection engine 1532 may be configured to receive inputs and / or send outputs to an ML algorithm database 1590. Similarly, the feature generation engine 1520 can utilize storage or system memory to store data, and can utilize one or more I / O devices or network interfaces to send 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 untrained.Machine learning models may be, or may include, one or more of the following types of models, but are not limited to, statistical models, algorithms, neural networks (NNs), convolutional neural networks (CNNs), generative neural networks (GNNs), Word2Vec models, bag of words models, term frequency-inverse document frequency (tf-idf) models, generative pre-trained transformer (GPT) models (or other autoregressive models), proximity policy optimization (PPO) models, nearest neighbor models (e.g., k-nearest neighbor models), linear regression models, k-means clustering models, Q-learning models, time-lag (TD) models, deep adversarial network models, or any other types of models further described herein (e.g., metamodels).

[0211] The system 1500 may further include a predictive output generation engine 1540, an output validation engine 1550 (for example, configured to apply validation data to machine learning model outputs), a feedback engine 1570 (for example, configured to apply user and / or machine feedback to the model), and a model improvement engine 1560 (for example, configured to update or reconfigure the model). In some embodiments, the feedback engine 1570 may receive inputs and / or send outputs (for example, outputs from trained, partially trained, or untrained models) to a results metric database 1580. The results metric database 1580 may be configured to store outputs from one or more models and may be configured to associate outputs with one or more models. In some embodiments, the results metric database 1580 or other devices (for example, the model improvement engine 1560 or the feedback engine 1570) may be configured to correlate outputs, detect trends in output data, and / or infer changes to inputs or model parameters to cause specific model outputs or types of model outputs. In some embodiments, the model refinement engine 1560 can receive output from the predictive output generation engine 1540 or the output verification engine 1550. In some embodiments, the model refinement engine 1560 can transmit the received output to the feature 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 operations described in the claims can be performed in a different order and still achieve the desired results. As an example, the processes shown in the accompanying drawings do not necessarily require the specific order or sequence shown to achieve the desired results. In certain embodiments, multitasking and parallel processing may be advantageous.

[0213] Having described the present invention in detail in this manner, it will be understood and apparent to those skilled in the art that many of the physical modifications illustrated in the detailed description of the present invention can be made without altering the concepts and principles of the invention embodied therein. It should also be understood that numerous embodiments incorporating only some of the preferred embodiments are possible, and with respect to those parts, the concepts and principles of the invention embodied therein should not be altered. Therefore, these embodiments and any configurations should be considered in all respects as illustrative and / or illustrative and not restrictive, and the scope of the present invention should be indicated not by the foregoing description but by the appended claims, and therefore should include all alternative embodiments and modifications to these embodiments that fall within the same meaning and scope as the claims. [Explanation of symbols]

[0214] 1. Vertical farming system 10 cabinets 15 Scaffolding 18 Lighting fixtures 20 racks 21 Guide Bars 23 Caster 24 Gutter 25 Plant holders 26 Laura 27 Bumper 29 Top Mount Assembly 30 Upper filling opening 32 Side discharge opening 31 Mount 40 Conveyor Systems 41 Guide Assembly 42A Internal guide rail 42B External guide rail 44 tracks 45 Switching means 47 Conveyor 65 Worker Platform 70 Irrigation Stations 71 Support structure 74 Irrigation subassemblies 76 tanks 78 Piston Assembly 79 Stopper 80 Spigot Assembly 82 Discharge Trays 84 Overflow pipe 500 harvest stations

Claims

1. A vertical farming system, At least one enclosure separated into a daytime section and a nighttime section, A plurality of racks, arranged within at least one enclosure and configured to hold plants, A conveyor system configured to move the plurality of racks through the daytime and nighttime sections of at least one enclosure, At least one of the following is disposed within the housing and fixed to the plurality of racks: an irrigation system, a lighting system, or a harvesting system. Equipped with, Each of the aforementioned racks is The central frame and Multiple gutters arranged in the central frame, Equipped with, Each of the plurality of gutters is provided with at least one of a filling opening for supplying irrigation fluid to the gutter, or a discharge opening for releasing irrigation fluid from the gutter. The vertical farming system comprises an irrigation system, the irrigation system comprising one or more irrigation stations that deliver irrigation fluid to the plurality of culverts, Each of the one or more irrigation stations is: One or more tanks for holding irrigation fluid, One or more spigots for delivering the irrigation fluid from one or more tanks to the plurality of troughs, Equipped with, Each of the one or more irrigation stations comprises a plurality of subassemblies, and each subassembly is: One of the one or more tanks mentioned above, One of the corresponding spigots from the one or more spigots mentioned above, Equipped with, A vertical farming system in which, in each of the one or more irrigation stations, each of the plurality of subassemblies is positioned such that the corresponding spigot delivers the irrigation fluid to the corresponding one of the troughs of the rack when one of the plurality of racks is positioned next to the irrigation station.

2. The vertical farming system according to claim 1, wherein each of the multiple racks further comprises at least one of rollers or casters disposed on the central frame.

3. The vertical farming system according to claim 1, wherein each of the plurality of troughs comprises one or more plant holders.

4. The vertical farming system according to claim 1, wherein each of the plurality of racks comprises a top-mount assembly configured to be attached to the conveyor system.

5. The vertical farming system according to claim 1, wherein the conveyor system is an overhead conveyor system.

6. The vertical farming system according to claim 5, wherein 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.

7. The vertical farming system according to claim 5, wherein the conveyor system comprises one or more tracks configured to guide the plurality of racks through the conveyor system.

8. The vertical farming system according to claim 7, wherein the conveyor system comprises one or more toggle switches configured to guide the plurality of racks around turns within the conveyor system.

9. The vertical farming system according to claim 1, wherein the vertical farming system comprises a lighting system, and the lighting system comprises a plurality of lighting fixtures fixed to the plurality of racks.

10. The vertical farming system according to claim 9, wherein 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 troughs.

11. The vertical farming system according to claim 9, wherein the lighting system is located in the daytime section of the at least one housing.

12. The vertical farming system according to claim 11, wherein the night section of the at least one housing is not equipped with lighting fixtures.

13. The vertical farming system according to claim 1, wherein the irrigation stations are spaced apart from each other across the entirety of at least one housing.

14. The vertical farming system according to claim 1, wherein the plurality of subassemblies are stacked and arranged.

15. Each subassembly is: Stopper and, A piston assembly for moving the stopper, The vertical farming system according to claim 1, further comprising:

16. The vertical farming system according to claim 15, wherein 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.

17. The vertical farming system according to claim 16, wherein during discharge operations, the stopper is moved by the piston assembly to release the blockage of the discharge opening of the trough so that the irrigation fluid can be discharged from the corresponding trough.

18. The vertical farming system according to claim 17, wherein 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 subassembly.

19. The vertical farming system according to claim 1, wherein one or more of the tanks are arranged adjacent to each other.

20. The aforementioned vertical farming system, A valve that controls the flow of the irrigation fluid from one or more tanks to one or more spigots, A pump configured to remove the irrigation fluid from the plurality of gutters, or A sensor configured to detect the level of irrigation fluid in one or more tanks, The vertical farming system according to claim 1, further comprising at least one of the following.

21. The vertical farming system according to claim 1, further comprising an environmental control system.

22. The aforementioned environmental control system is A first heating, ventilation, and air conditioning (HVAC) unit associated with the daytime section of at least one housing, A second HVAC unit associated with the night section of the at least one housing, One or more air circulation units, The vertical farming system according to claim 21, comprising:

23. The vertical farming system according to claim 1, wherein the plant is a strawberry plant.

24. 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