Methods, apparatus, and systems for managing objects

A system for managing objects is provided. The system comprises a data collection gateway and a plurality of apparatus. Each of the plurality of apparatus obtains parameters relating to objects in a farm from a server through the data collection gateway. The parameters include a reference threshold weight of the objects. Each of the plurality of apparatus collects weights of the objects through sensors. Also, each of the plurality of apparatus adjusts the reference threshold weight based on the obtained parameters to generate an adjusted threshold weight. Further, each of the plurality of apparatus sorts the objects to different areas in the farm based on the adjusted threshold weight and the collected weights.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to Chinese Patent Application No. 201910142215.X, filed on Feb. 26, 2019, which is incorporated herein in its entirety by reference.

TECHNICAL FIELD

The present disclosure relates generally to managing objects such as livestock, and more particularly, to methods, apparatus, and systems for growing and sorting objects.

BACKGROUND

Quality of livestock may affect the market price of the livestock. In order to reduce costs and increase profits, farms need to produce livestock with high quality such as livestock with moderate weights and lower fat. One solution is to feed the livestock in separate groups. With this solution, farms can select livestock to meet specific market requirements such as select livestock within a specific range of weights or feeding requirements such as feeding livestock by phases of growing condition of the livestock. However, it may be difficult and expensive to manually determine a basis such as a threshold weight of the livestock for sorting the livestock to meet the specific market requirements or feeding requirements. In addition, due to a lack of data relating to livestock from other farms and external factors such as market price or market requirements, it may be difficult to comprehensively consider various factors to determine the basis. Moreover, it may be difficult to efficiently sort the livestock in separate groups or collect precise data relating to the livestock without repeatedly training the livestock.

Thus, it would be desirable to develop apparatus, systems, and methods that take into account at least some of the issues discussed above, as well as other possible issues.

SUMMARY

Exemplary implementations of the present disclosure are directed to managing objects such as livestock. Exemplary implementations use a system, such as a growth and marketing sorting system, comprising a plurality of apparatus to collect data relating to objects through sensors and sort the objects to different areas in a farm. Exemplary implementations can obtain parameters relating to objects such data from outside of a farm via a server. Exemplary implementations can adjust the basis for sorting livestock in separate groups based on the parameters obtained from the server and/or data collected through sensors. Exemplary implementations can upload the adjusted basis and data collected through sensors to the server from the plurality of apparatus. In some embodiments, the exemplary implementations can be realized in a distributed system such as a blockchain system.

Exemplary implementations can provide multiple advantages over existing solutions. For example, by obtaining parameters relating to objects such as data from outside of the farm via a server and/or collecting data relating to objects through sensors, the plurality of apparatus can comprehensively consider various factors including marketing factors to determine the basis for sorting livestock in separate groups and can select objects with higher quality to increase the profits of the farm. Also, the system deployed in a farm can collect precise data relating to the objects through sensors without repeatedly training the objects, facilitate sorting objects such as livestock in separate groups, and predict timing for selling objects on the market. Thus, it can save labor cost of the farm. Moreover, by adjusting the basis, the plurality of apparatus can select specific ranges of objects for specific market requirements or feeding requirements such as feeding livestock by phases of growing condition of the livestock. Furthermore, by uploading the adjusted basis and data collected through sensors to the server, the system can share the adjusted basis and the collected data to others such as other farms, meat packers, or their customers.

The present disclosure thus includes, without limitation, the following exemplary implementations.

Some exemplary implementations provide a system for a farm, comprising: a data collection gateway; and a plurality of apparatus, each of which is configured to: obtain parameters relating to objects in the farm from a server through the data collection gateway, the parameters including a reference threshold weight of the objects; collect weights of the objects through sensors; adjust the reference threshold weight based on the obtained parameters to generate an adjusted threshold weight; and sort the objects to different areas in the farm based on the adjusted threshold weight and the collected weights.

In some exemplary implementations or any combination of preceding exemplary implementations of the system, the reference threshold weight has different values for at least some of the plurality of apparatus, and the adjusted threshold weight has different values for at least some of the plurality of apparatus.

In some exemplary implementations or any combination of preceding exemplary implementations of the system, one or more of the plurality of apparatus are further configured to upload the adjusted threshold weights of the one or more of the plurality of apparatus to the server through the data collection gateway for storing the adjusted threshold weights in a database.

In some exemplary implementations or any combination of preceding exemplary implementations of the system, at least one of the plurality of apparatus is configured to adjust the reference threshold weight based on an adjusted threshold weight of at least another apparatus of the plurality of apparatus.

In some exemplary implementations or any combination of preceding exemplary implementations of the system, each of the plurality of apparatus is connected to the data collection gateway via a data bus.

In some exemplary implementations or any combination of preceding exemplary implementations of the system, the objects include livestock.

Some exemplary implementations provide an apparatus, comprising: an entry gate; a sorting scale coupled to the entry gate; an exit gate coupled to the sorting scale; a sorting gate; a plurality of gates coupled to the sorting gate; and a processor and a memory storing executable instructions that, in response to execution by the processor, cause the apparatus to: open the entry gate to enable an object to enter the sorting scale through the entry gate; obtain a weight of the object using the sorting scale; move the sorting gate based on the weight of the object to form a passageway between the exit gate and one of the plurality of gates; and thereafter, open the exit gate to enable the object to pass through the passageway and reach the one of the plurality of gates.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the apparatus being caused to move the sorting gate based on the weight of the object includes being caused to: determine a threshold weight based on parameters relating to a plurality of objects obtained from a server; perform a comparison between the weight of the object and the threshold weight; and move the sorting gate based on the comparison to form the passageway.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the memory stores further executable instructions that, in response to execution by the processor, cause the apparatus to further: obtain weights of the plurality of objects using the sorting scale; and upload the weights to the server for storing the weights in a database.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the memory stores further executable instructions that, in response to execution by the processor, cause the apparatus to further: close the entry gate for a number of times; and upon determining that the number of times has a threshold value, generate a warning signal indicating that the entry gate is not closed.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the memory stores further executable instructions that, in response to execution by the processor, cause the apparatus to further: determine that the object is within the sorting scale for a predetermined period of time; and in response, utilize a mechanism or generate a signal to stimulate the object to pass through the exit gate.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the memory stores further executable instructions that, in response to execution by the processor, cause the apparatus to further: determine that the object is within the sorting scale for a predetermined period of time; and in response, open the entry gate while the exit gate is open to facilitate the object to pass through the exit gate by enabling another object to enter the sorting scale through the entry gate.

In some exemplary implementations or any combination of preceding exemplary implementations of the apparatus, the memory stores further executable instructions that, in response to execution by the processor, cause the apparatus to further: swing the sorting gate to facilitate the object to pass through the passageway and reach the one of the plurality of gates.

Some exemplary implementations provide a method implemented by an apparatus. The apparatus comprises an entry gate, a sorting scale, an exit gate, a sorting gate, and a plurality of gates, and the method comprises: opening the entry gate to enable an object to enter the sorting scale through the entry gate; obtaining a weight of the object using the sorting scale; moving the sorting gate based on the weight of the object to form a passageway between the exit gate and one of the plurality of gates; and thereafter, opening the exit gate to enable the object to pass through the passageway and reach the one of the plurality of gates.

These and other features, aspects, and advantages of the present disclosure will be apparent from a reading of the following detailed description together with the accompanying figures, which are briefly described below. The present disclosure includes any combination of two or more features or elements set forth in this disclosure, regardless of whether such features or elements are expressly combined or otherwise recited in a specific example implementation described herein. This disclosure is intended to be read holistically such that any separable features or elements of the disclosure, in any of its aspects and exemplary implementations, should be viewed as combinable unless the context of the disclosure clearly dictates otherwise.

It will therefore be appreciated that this Brief Summary is provided merely for purposes of summarizing some exemplary implementations so as to provide a basic understanding of some aspects of the disclosure. Accordingly, it will be appreciated that the above described exemplary implementations are merely examples and should not be construed to narrow the scope or spirit of the disclosure in any way. Other example implementations, aspects and advantages will become apparent from the following detailed description taken in conjunction with the accompanying figures which illustrate, by way of example, the principles of some described exemplary implementations.

DETAILED DESCRIPTION

Some implementations of the present disclosure will now be described more fully hereinafter with reference to the accompanying figures, in which some, but not all implementations of the disclosure are shown. Indeed, various implementations of the disclosure may be embodied in many different forms and should not be construed as limited to the implementations set forth herein; rather, these exemplary implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. For example, unless otherwise indicated, reference to something as being a first, second or the like should not be construed to imply a particular order. Also, something may be described as being above something else (unless otherwise indicated) may instead be below, and vice versa; and similarly, something described as being to the left of something else may instead be to the right, and vice versa. Like reference numerals refer to like elements throughout.

Exemplary implementations of the present disclosure are generally directed to managing objects such as livestock, and in particular, to methods, apparatus, and systems for managing objects such as feeding or sorting objects. It should be understood that the methods, apparatus, and systems are applicable to any of a number of objects such as pigs, cattle, sheep, goats, horses, mules, asses, buffalo, and camels or the like.

FIG.1illustrates an exemplary infrastructure100for managing objects, according to exemplary implementations of the present disclosure. As shown, in some embodiments, the infrastructure100may include a server102connected to a database104. Server102may store or retrieve information from database104. In one embodiment, server102and/or database104may be in a cloud. The infrastructure100may also include a user interface106such as a browser or an application (“App”) to allow a user to provide inputs such as parameters relating to objects to server102. The infrastructure100may further include one or more systems112, e.g., systems112aand112b. The systems112may be connected to server102via a data network108. Each system112may be deployed for a respective farm110to facilitate sorting objects such as livestock in the farm110. For example, system112amay be deployed for the farm110ato facilitate sorting livestock in the farm110a, and system112bmay be deployed for the farm110bto facilitate sorting livestock in the farm110b. It should also be understood that the infrastructure100may include one or more additional or alternative subsystems than those shown inFIG.1.

As shown inFIG.1, in some embodiments, each system112(e.g., system112a) includes a plurality of apparatus116(e.g., apparatus116a,116band116c) and a data collection gateway114. In these examples, each of the plurality of apparatus116is connected to the data collection gateway114via a data bus118. The data bus118may be a Controller Area Network (CAN) data bus or RS485 data bus. In other embodiments, the system112may include only one apparatus116connected to the data collection gateway114via the data bus118.

In some embodiments, for a system112(e.g., system112a), each of the plurality of apparatus116(e.g., apparatus116a,116band116c) is configured to obtain parameters relating to objects in a farm (e.g., farm110a) from server102through the data collection gateway114. In these examples, the parameters include a reference threshold weight of the objects. The reference threshold weight may be used to facilitate sorting the objects in the farm, as described with greater details below.

In some embodiments, the reference threshold weight may have a same value for the plurality of apparatus116in a farm110. In other embodiments, some of the apparatus116in the farm110may need different values of the reference threshold weight for sorting the objects to meet different market requirements (e.g., selecting particular range of market weights) or feeding requirements (e.g., feeding objects by group according to different growing phases of the objects). In these examples, the reference threshold weight may have different values for at least some of the plurality of apparatus116in the farm110. For example, the reference threshold weight for apparatus116amay be different from the reference threshold weight for apparatus116bin the farm110a.

In some embodiments, for a system (e.g., system112a), the parameters relating to the objects may include at least a number of the objects (e.g., the number of the objects may be 500), a range of market weights, a market price of the objects, and weights of other objects from at least another farm. The parameters may also include other information, as described with greater details below.

The system112may collect data relating to objects through sensors and upload the collected data to server102. The sensors may be installed or attached to the apparatus116. Data collected by the apparatus116can be uploaded to server102through the data collection gateway114via the data bus118. To ensure the accuracy of the collected data, an Internet of Things (IoT) based on the data bus118such as CAN data bus or RS485 data bus can be formed between the data collection gateway114and the apparatus116or among some of the apparatus116. Server102can store the collected data in database104. In some embodiments, the apparatus116can also store the collected data. In some embodiments, for a system (e.g., system112a), each of the plurality of apparatus116is configured to collect weights of the objects through sensors. Each of the plurality of apparatus116may upload the collected weights to server102for storing the collected weights in database104.

As described above, server102may provide parameters relating to objects, including the reference threshold weight, to each of the apparatus116of a system112in a farm110. In these examples, for a system (e.g., system112a), each of the apparatus116is configured to adjust the reference threshold weight based on the obtained parameters to generate an adjusted threshold weight. For example, each of the apparatus116may adjust the reference threshold weight based on the obtained median weight or average weight of objects on the same day to generate an adjusted threshold weight. It should be understood that different adjusted threshold weights can be used to sort different quality of objects. When a specific apparatus can sort a higher quality of objects than other apparatus based on an adjusted threshold weight of the specific apparatus, other apparatus in the farm or apparatus in other farms may further adjust their reference threshold weights based on the adjusted threshold weight of the specific apparatus.

In some embodiments, for a system (e.g., system112a), at least one of the plurality of apparatus116is configured to adjust the reference threshold weight based on an adjusted threshold weight of at least another apparatus of the plurality of apparatus116in the same farm (e.g., farm110a). For example, apparatus116aand apparatus116bmay adjust the reference threshold weight based on an adjusted threshold weight of apparatus116cin the same farm110a. In other embodiments, at least one of the plurality of apparatus116in a farm (e.g., farm110a) may adjust the reference threshold weight based on an adjusted threshold weight of apparatus in other farms (e.g., farm110b). For example, apparatus116aand apparatus116bin a farm110amay adjust the reference threshold weight based on an adjusted threshold weight of apparatus in a farm110b. In some embodiments, one or more of the plurality of apparatus116are further configured to upload the adjusted threshold weights to server102through the data collection gateway114. In these examples, the adjusted threshold weights can be stored in database104.

In some embodiments, server102may obtain parameters relating to objects from database104. The parameters relating to objects may include the reference threshold weight. In other embodiments, the parameters relating to objects may not include the reference threshold weight, server102may generate the reference threshold weight based on the information retrieved from database104. In some embodiments, server102may dynamically update the reference threshold weight. In some embodiments, server102may dynamically provide the updated reference threshold weight to database104, apparatus116, and/or the users, respectively. In some embodiments, server102can be connected to the one or more data collection gateways114. The reference threshold weight and the updated reference threshold weight can be transmitted to apparatus116via the one or more data collection gateways114.

The system112may sort the objects to different areas in the farm110based on the adjusted threshold weight and/or data relating to the objects collected through sensors in the farm110. In some embodiments, for a system (e.g., system112a), each of the apparatus116is configured to sort the objects to different areas in the farm110abased on the adjusted threshold weight and the collected weights. The adjusted threshold weight may have a same value for the plurality of apparatus116in the farm110. In other embodiments, some apparatus in a farm need different values of the adjusted reference threshold weight for sorting objects to meet different market requirements or feeding requirements. In these examples, the adjusted threshold weight may have different values for at least some of the plurality of apparatus116. In addition, it should be noted that the adjusted threshold weight in different farms110may have same or different value(s) for the apparatus116.

As describe above, in some embodiments, the objects include livestock. For example, the livestock may include pigs, cattle, sheep, goats, horses, mules, asses, buffalo, and camels or the like.

The system112may include any of a number of different subsystems (each an individual system) for performing one or more functions or operations. The subsystems may be co-located or directly coupled to one another, or in some embodiments, various ones of the subsystems may communicate with one another across one or more computer networks. Further, although shown as part of the system112, it should be understood that any one or more of the apparatus116and the data collection gateway114may function or operate as a separate system without regard to any of the other subsystems. It should also be understood that the system112may include one or more additional or alternative subsystems than those shown inFIG.1.

Although the above description primarily refers to system112a, similar functions and processes can be applied to other systems such as system112bin the infrastructure100.

In some embodiments, in the infrastructure100, database104may include a blockchain database. Using a blockchain technology, a plurality of farms are able to access same data, such as the data stored in the blockchain database. Due to the nature of the blockchain technology, data on the blockchain are almost impossible to be forged and/or falsified, which may increase data integrity and safety. The data stored in the blockchain database may include parameters relating to the objects, such as the reference threshold weight of objects, the adjusted reference threshold weight of the objects, and data collected from sensors or the like.

In some embodiments, apparatus116may form a blockchain to share information such as parameters within each other. In these embodiments, apparatus116may not need to retrieve parameters stored in database104via server102. Instead, one apparatus116may receive the parameters from other apparatus116using blockchain technology. For example, one apparatus116(e.g., apparatus116a) may request parameters (“token”) such as a reference threshold weight from other apparatus116to adjust its own threshold weight. In this example, the requesting apparatus116may generate a unique address using private and public keys and broadcast the unique address to other apparatus116. After receiving the unique address of apparatus116a, other apparatus116(e.g., apparatus116b) may send the requested parameters to the unique address such that the requesting apparatus116acan receive the requested parameters.

In some embodiments, WiFi or cellular networks (e.g., 2G, 3G, 4G, 5G or the like) may not be available for apparatuses116to communicate with each other to exchange information. In these embodiments, apparatuses116may communicate with each other through satellite communication. Alternatively, apparatuses116may form a local IoT network to communicate with each other without accessing to external network such as Internet.

FIG.2illustrates a block diagram of exemplary modules for managing objects, according to example implementations of the present disclosure. As shown, in some embodiments, the infrastructure100may provide a Cloud Service200for users, including a User Management Service202, a Parameters Configuration Service204, a Data Display and Analysis Service206, and a System Maintenance Service208.

The User Management Service202may include one or more modules for managing information relating to users of the Cloud Service200. As shown inFIG.2, in some embodiments, the User Management Service202may include a User Creation Module210, a User Deletion Module212, a User Modification Module214, a Password Modification Module216, and a User Registration Module218.

The User Creation Module210can create accounts of different user groups to access the Cloud Service200. In some embodiments, the user groups may include a super administrator group, an administrator group, and an operator group. Users in the super administrator group may access, modify and/or delete all information (e.g., information relating to user groups) stored in database104. Users in the administrator group may access, modify and/or delete limited information (e.g., information relating to the operator group) stored in database104. Users in the operator group may have no permission to access, modify and/or delete information relating to the super administrator group and the administrator group stored in database104.

The User Deletion Module212can delete information relating to the accounts, such as user name. The User Modification Module214can modify information relating to the accounts, such as user name. In some embodiments, users in the super administrator group may access, modify and/or delete the accounts of the administrator group and the accounts of the operator group. In other embodiments, users in the administrator group may access, modify and/or delete the accounts of the operator group. In further examples, users in the operator group may modify its own user information. The Password Modification Module216can modify passwords of the accounts. The User Registration Module218can manage registration of users. In some embodiments, the User Registration Module218can create a registration code. The registration code may be a unique code effective for a given period of time.

The Parameters Configuration Service204may include one or more modules for configuring parameters. As shown inFIG.2, in some embodiments, the Parameters Configuration Service204may include an Apparatus Management Module220, a Message Configuration Module222, a Warning Configuration Module224, and a Timing Configuration Module226.

The Apparatus Management Module220can set parameters relating to objects for apparatus116. In some embodiments, the parameters relating to objects may include an operation parameters such as a predetermined weight, a predetermined period of time, a calibration value for a sorting scale, a time interval for re-opening the entry gate, and a duration for opening a sorting gate or the like. For example, the predetermined weight can be an indication that an object enters into or leaves a sorting gate. The predetermined period of time can be an indication of a duration that an object has stayed within the sorting gate.

In some embodiments, the parameters relating to objects may include a reference parameter such as a reference threshold weight, a range of market weights, a number of the market objects, and a market price of the objects, a range of weights of objects, a objects for sorting, or the like. For example, the reference threshold weight can be used as a basis for sorting the objects based on weights of the objects.

In some embodiments, the parameters relating to objects may include a statistic parameter such as a statistical percentage of the objects, a number of the objects in a farm, a number of other objects from at least another farm, weights of the objects in a farm, weights of other objects from at least another farm, a percentile of weights of the objects in a farm, and a percentile of weights of other objects from at least another farm or the like. In some embodiments, the parameters relating to objects may include a combination of the operation parameter, reference parameter, and/or statistic parameter.

The Message Configuration Module222can set contact information of users, such as telephone number of users. The Warning Configuration Module224can set forms (e.g., text message or dialog window) or contents of a warning signal. The Timing Configuration Module226can set a timing for the infrastructure100. For example, the timing can be a period of time for automatically backing up data stored in the infrastructure100. In another example, the timing can be a period of time for calibrating the apparatus116, the data collection gateway114, and/or server102.

The Data Display and Analysis Service206may include one or more modules for displaying and analyzing data relating to objects. As shown inFIG.2, in some embodiments, the Data Display and Analysis Service206may include an Individual Object Module228, a Group-objects Module230, and a Big Data Analysis Module232. As shown, in some embodiments, the Individual Object Module228may include Sorting Data of Individual Object242, Collected Data of Individual Object244, a Growth Report of Individual Object246, and a Sorting Frequency of Individual Object248. For example, the Sorting Data of Individual Object242may include different areas that an individual object may be sorted to. The Collected Data of Individual Object244may include data such as weights of an individual object collected by the apparatus116. The Growth Report of Individual Object246may include a growth report of weights of an individual object. The Sorting Frequency of Individual Object248may include a frequency of sorting an individual object within a period of time.

As shown inFIG.2, in some embodiments, the Group-objects Module230may include an Overview of Group-objects250, Sorting Data of Group-objects252, Collected Data of Group-objects254, a Growth Report of Group-objects256, a Daily Report of Group-objects258, and a Market Prediction of Group-objects260. For example, the Overview of Group-objects250may include sorting data, collected data, a growth report, or a daily report of objects for apparatus (e.g., apparatus116) in a farm (e.g., farm110a). The Sorting Data of Group-objects252may include sorting data of objects for an apparatus, such as an average weight, a sorting frequency, or a remaining number of objects for the apparatus. The Collected Data of Group-objects254may include data such as weights of objects collected by an apparatus. The Growth Report of Group-objects256may include a growth report of weights of objects for an apparatus. The Daily Report of Group-objects258may include a daily report of sorting data and collected data of objects for an apparatus.

The Market Prediction of Group-objects260may include a prediction of objects to be sold on the market, such as a range of market weights to be sold on the market, a market price of objects to be sold on the market, or a time interval of sorting objects to be sold on the market.

As shown inFIG.2, in some embodiments, the Big Data Analysis Module232may include a Breeds Analysis262, a Fodders Analysis264, an Environment Analysis266, and a Regions Analysis268. In these examples, the Big Data Analysis Module232may perform a big data analysis to calculate a basis for managing objects using the Breeds Analysis262, Fodders Analysis264, Environment Analysis266, and/or Regions Analysis268. In one example, the optimal basis may be a predetermined amount of fodders for feeding objects. For example, the Breeds Analysis262may include an analysis of qualities of objects having different breeds. The Fodders Analysis264may include an analysis of qualities of objects fed with different fodders. The Environment Analysis266may include an analysis of qualities of objects fed in different environments. The Regions Analysis268may include an analysis of qualities of objects fed within different regions.

The System Maintenance Service208may include one or more modules to perform maintenance for systems112(e.g., system112aand system112b). As shown inFIG.2, in some embodiments, the System Maintenance Service208may include a Data Backup Module234, a Data Recovery Module236, a System Recording Module238, and a Message Recording Module240. The Data Backup Module234can backup data relating to objects. The Data Recovery Module236can recovery data relating to objects. The System Recording Module238can record data relating to a use of the systems112. The Message Recording Module240can record messages sent by the systems112to users.

In some embodiments, information (e.g., parameters and data) as described above with reference toFIG.2may be stored in database104.

FIG.3illustrates a block diagram of an exemplary data collection gateway, according to example implementations of the present disclosure. As shown, in some embodiments, the data collection gateway114may include a main thread300. The main thread300may create child threads such as a processing thread302, a real-time data transmitting thread304, a historical data transmitting thread306, and a daemon thread308.

As shown inFIG.3, in some embodiments, the processing thread302may receive parameters relating to objects and/or commands from server102and transmit the received parameters and/or commands to the apparatus116. In some embodiments, the processing thread302may store the received parameters in a configuration file310. The real-time data transmitting thread304may receive data collected by the apparatus116and transmit the received data to server102.

In some embodiments, the connection between the apparatus116and server102may be interrupted. In these examples, the real-time data transmitting thread304may store the received data in a temporary data file312. Also, the historical data transmitting thread306may dynamically monitor the connection and may transmit the data stored in the temporary data file312to server102once the connection is recovered. In some embodiments, the daemon thread308may monitor the operation of the data collection gateway114. For example, the daemon thread308may restart the data collection gateway114if there is no parameters, commands, and/or data transmitted for a predetermined period of time. In some embodiments, users of the infrastructure100may set the predetermined period of time or a specified time interval for restarting the data collection gateway114.

FIGS.4A and4Beach illustrates a block diagram of an exemplary farm, according to example implementations of the present disclosure. As shown inFIG.4A, in some embodiments, the farm110may include a feeding area402and a rest area404. The feeding area402may include a low-weight area406, a medium-weight area408, and a high-weight area410. The low-weight area406, the medium-weight area408, and the high-weight area410are connected to the apparatus116, respectively. In these examples, the apparatus116may sort objects to the low-weight area406, the medium-weight area408, or the high-weight area410based on the adjusted threshold weight and the collected weights that are described above. In some embodiments, the feeding area402may include a quarantine area412. Weak or sick objects may be fed in the quarantine area412. In some embodiments, the quarantine area412may be connected to the apparatus116directly. The apparatus116may sort weak or sick objects to the quarantine area412. In some embodiments, the farm110may include a one-way gate418. The objects in the feeding area402may pass through the one-way gate418to the rest area404.

In some embodiments, as shown inFIG.4A, the feeding area402may include one or more dry fodders414. The rest area404may include one or more watering tanks416. In these examples, objects can eat dry fodders in the feeding area402and drink water in the rest area404. The farm as shown inFIG.4Bis similar to the farm as shown inFIG.4A. One difference is that inFIG.4B, the feeding area402may include one or more dry-wet fodders420. In these examples, objects have dry fodders together with water.

FIGS.5A and5Beach illustrates an exemplary apparatus and/or its components, according to example implementations of the present disclosure. As shown inFIG.5A, in some embodiments, the apparatus116includes an entry gate502, a sorting scale504coupled to the entry gate502, and an exit gate506coupled to the sorting scale504. The apparatus116also includes a sorting gate508and a plurality of gates510(e.g., gates510a,510b, and510c) coupled to the sorting gate508. Objects may be sorted to three different areas through the three gates510a,510b, and510c. The apparatus further includes a controller512to control the operation of the apparatus116.

FIG.5Billustrates the controller512, according to example implementations of the present disclosure. As shown inFIG.5B, in some embodiments, the controller512may include one or more modules such as an entry gate controlling module522, a data collecting module524, a sorting gate controlling module526, and an exit gate controlling module528. The controller512may also include other modules not shown inFIG.5B. Functions of the modules may be performed by a processor such a Central Processing Unit (CPU), as described with reference toFIG.9below.

The entry gate controlling module522may control the status of the entry gate502. In some embodiments, the entry gate controlling module522is configured to open the entry gate502to enable an object such as a livestock to enter the sorting scale504through the entry gate502. In order to collect precise data relating to the object through sensors, the apparatus116needs to ensure that the entry gate502works properly. For example, the entry gate controlling module522may detect the status of the entry gate502to determine whether the entry gate502is closed. After the object enters the sorting scale504through the entry gate502, the entry gate502should be closed properly. Thus, another object cannot enter the sorting scale504through the entry gate502and interfere collecting data of the object in the sorting scale504. In some embodiments, the entry gate controlling module522is configured to close the entry gate502for a number of times. Upon determining that the number of times has a threshold value (e.g., 5 times), the entry gate controlling module522is configured to generate a warning signal indicating that the entry gate502is not closed. The warning signal can notify a user of the apparatus116that the entry gate502may not work properly, e.g., due to the malfunction of the entry gate502.

The data collecting module524may collect data relating to the object after the object enters the sorting scale504through the entry gate502. In some embodiments, the data collecting module524is configured to obtain a weight of the object using the sorting scale504. The sorting scale504may include one or more sensors to measure weights of objects. In some embodiments, the data collecting module524is configured to obtain weights of a plurality of objects using the sorting scale504and upload the weights to a server (e.g., server102) for storing the weights in a database (e.g., database104). As described above, by uploading data collected through sensors to server, the system in the farm can share its collected data through server to others such as other farms, meat packers, or their customers.

The sorting gate controlling module526may control the status of the sorting gate508using the data collected by the data collecting module524. In some embodiments, the sorting gate controlling module526is configured to move the sorting gate508based on the weight of the object to form a passageway between the exit gate506and one of the plurality of gates510(e.g., gate510a). The object can move to different designated areas (e.g., low-weight area406, medium-weight area408, high-weight area410, or quarantine area412) through the passageway.

To form the passageway, in some embodiments, the sorting gate controlling module526is configured to determine a threshold weight based on parameters relating to the plurality of objects obtained from server102, and perform a comparison between the weight of the object and the threshold weight. The parameters may include a reference threshold weight as described above. In some embodiments, the sorting gate controlling module526is configured to move the sorting gate508based on the comparison to form the passageway. For example, if the weight of the object (e.g., 105 kilograms) is greater than the threshold weight (e.g., 100 kilograms), which may indicate that the object meets a specific market requirement or feeding requirement and can be sold on the market. The sorting gate controlling module526may move the sorting gate508to form a passageway between the exit gate506and the gate510a. Thus, the object can move to a designated area (e.g., high-weight area410) through the passageway between the exit gate506and the gate510a.

In some embodiments, the apparatus116may include a corral514as shown inFIG.5A. The corral514may be connected between the exit gate506and the plurality of gates510. In these examples, the passageway can be formed within the corral514.

The exit gate controlling module528may control the status of the exit gate to allow the object to move to different designated areas (e.g., high-weight area410). In some embodiments, after moving the sorting gate508, the exit gate controlling module528is configured to open the exit gate506to enable the object to pass through the passageway and reach the one of the plurality of gates510. In conventional solutions, the exit gate506may be opened before moving the sorting gate508. In these conventional solutions, however, the object may pass through the exit gate506before the passageway between the exit gate506and one of the plurality of gates510is formed. In this situation, when the sorting gate508moves to form the passageway, the moving sorting gate508may hit the object and the object may get injured. Opening the exit gate506after moving the sorting gate508as described in the present disclosure can avoid the accidental injury to the object. This is because, when the object passes through the exit gate506, the sorting gate508has been moved to form the passageway. Thus, the object may simply pass through the already formed passageway and may not be hit by the sorting gate508.

The controller512may also control the operation of the apparatus116to help the object to move to different designated areas (e.g., high-weight area410). In some embodiments, the sorting gate controlling module526is configured to determine that the object is within the sorting scale504for a predetermined period of time. The sorting gate controlling module526can notify the exit gate controlling module528. In response, the exit gate controlling module528is configured to utilize a mechanism or generate a signal to stimulate the object to pass through the exit gate506. For example, the exit gate controlling module528may vibrate the exit gate506or generate a pungent odour to stimulate the object to pass through the exit gate506.

In other embodiments, the sorting gate controlling module526is configured to determine that the object is within the sorting scale504for a predetermined period of time. The sorting gate controlling module526can notify the entry gate controlling module522. In response, the entry gate controlling module522is configured to open the entry gate502while the exit gate506is open to facilitate the object to pass through the exit gate506by enabling another object to enter the sorting scale through the entry gate502. For example, the object may be a first pig within the sorting scale504for a predetermined period of time such as 5 minutes. The entry gate controlling module522can open the entry gate502such that a second pig can enter the sorting scale504through the opened entry gate502. Due to the limited space of the sorting scale504, the second pig may push or kick the first pig to expel the first pig to pass through the opened exit gate506to different designated areas (e.g., high-weight area410).

When passing through the passageway, the object may stay in the passageway, which may significantly affect the efficiency of sorting the objects to designated areas. In some embodiments, the sorting gate controlling module526is configured to swing the sorting gate508to facilitate the object to pass through the passageway and reach the one of the plurality of gates510.

In some embodiments, the gates510are one-way gates. The object may pass through one of the one-way gates (e.g., gate510a) from the passageway. By using one-way gates, after the object has passed through a one-way gate (e.g., gate510a), the object can be prohibited from returning back to the passageway. In other embodiments, the gates510may be two-way gates.

In some embodiments, the object may have a unique identifier such as a Radio Frequency Identification (RFID) card attached to the object. The apparatus116may include a signal receiver516as shown inFIG.5Ato retrieve information stored in the unique identifier. The signal receiver516may transmit the retrieved information to a memory of the controller512or the apparatus116for storing.

In some embodiments, the apparatus116may include a cylinder518connected to the sorting gate508as shown inFIG.5A. The sorting gate controlling module526can swing the sorting gate508through the cylinder518.

In some embodiments, the apparatus116may include a cylinder electromagnetic valve520as shown inFIG.5A. The sorting gate controlling module526may control the status of the sorting gate508through the cylinder electromagnetic valve520. Specifically, the cylinder electromagnetic valve520can control the cylinder518connected to the sorting gate508, which may cause the sorting gate508to swing. Similarly, the entry gate controlling module522and the exit gate controlling module528may control the status of the entry gate502and the exit gate506through the cylinder electromagnetic valve520, respectively.

FIG.5Cillustrates another exemplary apparatus116, according to example implementations of the present disclosure. Comparing to the apparatus116shown inFIG.5A, the apparatus116shown inFIG.5C, includes two one-way gates (i.e., gates510dand510e) instead of three. Thus, objects may be sorted to two different areas through the two gates510dand510e. The apparatus116shown inFIG.5Calso includes an axis530connected to the sorting gate508and the gates510. The apparatus116may swing the sorting gate508through the axis530.

FIG.5Dillustrates a three-dimensional structure of the apparatus116, according to example implementations of the present disclosure. As shown, in some embodiments, the apparatus116may include a casing532connected to the top of the sorting gate508. The casing532can protect the sorting gate508. For example, the casing532can prevent the sorting gate508from rusting.

FIG.5Eillustrates an external frame structure of the sorting scale504, according to example implementations of the present disclosure. As shown, in some embodiments, the sorting scale504may include a main frame534and a plurality of panels536. In some embodiments, the sorting gate508may include a sensor-supporting component538connected to the controller512. The sensor-supporting component538may support or hold sensors. In some embodiments, the sorting gate508may include a connecting component540. The connecting component540may connect the external frame structure of the sorting scale504with an internal frame structure of the sorting scale504, which will be illustrated below.

FIG.5Fillustrates an internal frame structure of the sorting scale504, according to example implementations of the present disclosure. As shown, in some embodiments, the sorting scale504may include the entry gate502, exit gate506, cylinder518, and cylinder electromagnetic valve520as described above. In some embodiments, the sorting scale504may also include a gate frame542and a channel frame544. The gate frame542and the channel frame544may form a channel546for objects to pass through the sorting gate508.

As shown inFIG.5F, in some embodiments, the sorting scale504may include a proximity switch548. The proximity switch548may detect the status of the entry gate502and send the result to the entry gate controlling module522for controlling the entry gate502. For example, when proximity switch548detects that the entry gate502is not closed, it sends the result to the entry gate controlling module522. The entry gate controlling module522may close the entry gate502for a number of times or generate a warning signal indicating that the entry gate502is not closed properly as described above.

As shown inFIG.5F, in some embodiments, the sorting scale504may include a preventing device550, which may prevent objects from lying down. The preventing device550may generate a signal or utilize a mechanism to prevent objects from lying within the sorting scale504. This may facilitate objects to pass through the sorting scale504.

As shown inFIG.5F, in some embodiments, the sorting scale504may include a marking device552. The marking device552may leave a mark on an object when the object is detected abnormal. For example, when sensors, such as certain medical sensors, detect a potential viral infection of an object, the marking device552may leave a mark on the object. In some embodiments, the marking device552can be an inkjet device.

As shown inFIG.5F, in some embodiments, the sorting scale504may include a connecting rod554. The external frame structure of the sorting scale504and the internal frame structure of the sorting scale504can be connected together through the connecting rod554.

FIG.6is a flowchart illustrating various operations in a method600of sorting objects, according to example implementations of the present disclosure. The method600may be performed by the apparatus116, which is described above with reference toFIGS.5A-5F. In some implementations, as shown inFIG.6, at block602, the apparatus116may be initialized. For example, the apparatus116may receive a reference threshold weight from server102for initialization. At block604, the apparatus116can close the exit gate506and open the entry gate502to allow an object to enter the sorting scale504. The sorting scale504may collect a weight of the object through sensors. At block606, the apparatus116can determine whether the collected weight of the object is higher than a predetermined weight. If not (“N”), the object may have not entered into the sorting scale504. In this situation, the apparatus116can continue to monitor whether the collected weight of the object is higher than the predetermined weight. Upon determining that the weight of the object is higher than the predetermined weight (i.e., “Y” at block606), which may indicate that the object have entered into the sorting scale504, the method600can proceed to block608.

At block608, the apparatus116can close the entry gate502. The apparatus116can wait for a predetermined time period, as shown at block610. This is because entry gate controlling module522may need a time period to actually close the entry gate502. For example, a user of the apparatus116may set the predetermined time period. At block612, the apparatus116can determine whether the entry gate502is closed properly. If not, the apparatus116can close the entry gate502for a number of times to ensure that the entry gate502is closed. At block614, the apparatus116can determine whether the number of times has a threshold value (e.g., 5 times). If not, the apparatus116can open the entry gate502and wait for a predetermined time period, as shown at block616and block618, respectively. The method600can go back to block608from block618. Repeating the method600from block608to block618may ensure that the entry gate502works properly. By doing so, the apparatus116may collect precise data relating to the object through sensors. Upon determining that the number of times has the threshold value, the apparatus116can generate a warning signal, as shown at block620. The warning signal can notify the user that the entry gate502may not work properly, e.g., due to the malfunction of the entry gate502. The process can proceed to block622.

On the other hand, upon determining that the entry gate502is closed properly at block612. The process can proceed to block622from block612. At block622, the apparatus116can collect and process data relating to the object such as the weight of the object. For example, the apparatus116can filter out glitch data and calculate an average value of the collected data. The apparatus116can store and upload the collected data to server102for sharing the collected data to others such as other farms, meat packers, or their customers, as shown at block624. At block626, the apparatus116can move the sorting gate508based on the weight of the object to form a passageway between the exit gate506and one of the plurality of gates510. For example, the passageway can be formed between the exit gate506and gate510awhen the weight of the object is higher than the reference threshold weight, as shown at block628. Similarly, the passageway can be formed between the exit gate506and gate510bor gate510c, as shown at block630and block632, respectively.

After the passageway is formed, at block634, the apparatus116can open the exit gate506. As described above, opening the exit gate506after moving the sorting gate508can avoid the accidental injury to the object.

At block636, the apparatus116can determine whether the weight of the object is lower than the predetermined weight. If so, the object may have left the sorting scale504and entered the passageway. In this situation, the apparatus116can close the exit gate506, as shown at block638. At block640, the apparatus116can utilize a mechanism, such as swing the sorting gate508, to facilitate the object to pass through the passageway and reach the one of the plurality of gates510.

If the apparatus116determines that the weight of the object is not lower than the predetermined weight at block636, this may indicate that the object is still within the sorting scale504. In this situation, the apparatus may utilize a mechanism to facilitate the object to leave the sorting scale504and pass through the exit gate506. For example, at block644, the apparatus116can determine whether the exit gate506has opened for a predetermined period of time (e.g., 5 minutes). If not, the method600can proceed back to636. Upon determining that the exit gate506has opened for the predetermined period of time, the apparatus116can open the entry gate502while the exit gate506is open, as shown at block646. In this situation, another object can enter the sorting scale504through the opened entry gate502. As described above, due to the limited space of the sorting scale504, the other object may push or kick the object stayed in the sorting scale504to expel the object to leave the sorting scale504and pass through the opened exit gate506.

The apparatus116can monitor whether the weight of the object is lower than the predetermined weight, as shown at block648. Upon determining that the weight of the object is lower than the predetermined weight, which may indicate that the object has left the sorting scale504and entered the passageway, the apparatus116can close the exit gate506, store information indicating the status of opening the entry gate502while opening the exit gate506, as shown at block650. The user may access the stored information.

The method600can proceed to block642from block640or block650. At block642, the apparatus116can clear the collected data such as the weight of the object to zero. The method600can proceed to block604to start sorting other objects similarly as described above.

FIG.7is a flowchart illustrating various operations in a method700of sorting objects, according to other example implementations of the present disclosure. As shown at block702, the method700includes opening an entry gate502to enable an object to enter a sorting scale504through the entry gate502. At block704, the method700includes obtaining a weight of the object using the sorting scale504. At block706, the method700includes moving the sorting gate508based on the weight of the object to form a passageway between an exit gate506and one of the plurality of gates510. Thereafter, at block708, the method700includes opening the exit gate506to enable the object to pass through the passageway and reach the one of the plurality of gates510. Based on the method700, objects can be sorted to different areas in accordance with specific market requirements or feeding requirements.

FIG.8is a flowchart illustrating various operations in a method800of managing livestock, according to example implementations of the present disclosure. In order to help livestock efficiently pass through multiple gates (e.g., entry gate502, exit gate506, sorting gate508, and/or gates510) of the apparatus116, training the livestock is required to ensure that the livestock is familiar with the apparatus116. As shown at block802, the method800may include training livestock. In some embodiments, at block802, the multiple gates (e.g., entry gate502, exit gate506, sorting gate508, and gates510) of the apparatus116may be all opened by default to avoid accidental injury to the livestock.

At block804, the method800may include setting parameters relating to livestock. In some embodiments, the parameters relating to livestock may be obtained from server102through the data collection gateway114. In some embodiments, the parameters relating to livestock may be set by a user of the system112.

At block806, the method800may include sorting livestock in a feeding mode. Under the feeding mode, livestock may be sorted to different areas to have different fodders. For example, livestock sorted to the low-weight area406may have fodders with higher nutrition, and livestock sorted to the high-weight area410may have fodders with lower nutrition. Sorting livestock in the feeding mode can reduce the difference of weights among the livestock, and therefore can feed the livestock by phase to increase the profit for farms.

At block808, the method800may include sorting livestock in a market mode. Under the market mode, livestock may be sorted to two areas such as a market area and a pending area. For example, livestock sorted to the market area can be sold on the market and those sorted to the pending area may continue being fed in the farm110. Sorting livestock in the market mode can automatically sort qualified livestock for selling on the market, and therefore can significantly reduce labor cost.

FIG.9illustrates hardware components of the controller512, according to example implementations of the present disclosure. As shown, in some embodiments, the controller512may include a CPU902for executing instructions stored in a memory904.

As described above, in some embodiments, the controller512may include one or more modules such as an entry gate controlling module522, a sorting gate controlling module526, and an exit gate controlling module528. In some embodiments, these modules may be connected to the CPU902and may control gates (e.g., the entry gate502, the sorting scale504, and the exit gate506) through respective cylinder electromagnetic valve based on commands provided by the CPU902. In some embodiments, the controller512may include a marking controlling module916connected to the CPU902. For example, the entry gate controlling module522may control the status of the entry gate502through an entry gate cylinder electromagnetic valve906. Similarly, the sorting gate controlling module526and the exit gate controlling module528may control the status of the sorting gate508and exit gate506through a sorting gate cylinder electromagnetic valve908and an exit gate cylinder electromagnetic valve910, respectively.

As shown inFIG.9, in some embodiments, the controller512may include a data collecting module524connected to the CPU902. In some embodiments, the data collecting module524may collect data measured by a weight sensor912and transmit the data to the CPU902for processing.

As described above, the apparatus116may include a signal receiver516to retrieve information from a unique identifier such as a RFID of the object. As shown inFIG.9, in some embodiments, the controller512may include an ID detecting module914connected to the CPU902. The ID detecting module914may detect RFID of the object in the retrieved information from the signal receiver516and transmit the retrieved information to the memory904of the controller512for storing.

As shown inFIG.9, in some embodiments, the controller512may include a marking controlling module916connected to the CPU902. The marking controlling module916may control the status of the marking device552through a marking device cylinder electromagnetic valve918. For example, when sensors detect a potential viral infection of an object, the marking controlling module916may control the marking device552to leave a mark on the object.

As described above, the proximity switch548may detect the status of the entry gate502and send the result to the entry gate controlling module522for controlling the entry gate502. In some embodiments, the proximity switch548may send the result to the CPU902, which may send commands based on the result to the entry gate controlling module522for controlling the entry gate502.

As shown inFIG.9, in some embodiments, the controller512may include a CAN transceiver module920connected to the CPU902. The CAN transceiver module920may receive parameters relating to objects from server102and upload the data collected through sensors to server102.

As shown inFIG.9, in some embodiments, the controller512may include a power supply circuit module922connected to the CPU902. The power supply circuit module922may provide an output voltage924for the system. In some embodiments, the controller512may include a display processing module926connected to the CPU902. The display processing module926may control a display928to display data collected through sensors. In some embodiments, the controller512may include an Input/Output processing module930connected to the CPU902. The Input/Output processing module930may connect to a keyboard932to allow users of the system112to input information.

Certain implementations may be implemented as a computer program product that may include instructions stored on a machine-readable medium. These instructions may be used to program a general-purpose or special-purpose processor to perform the described operations. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read-only memory (ROM); random-access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or another type of medium suitable for storing electronic instructions. The machine-readable medium may be referred to as a non-transitory machine-readable medium.

As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising”, “includes”, and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Also, the terms “first,” “second,” “third,” “fourth,” etc., as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation. Therefore, the terminology used herein is for the purpose of describing particular implementations only and is not intended to be limiting.