Multiple Fruit Grader Machine

Share :

Choose Language:

[google-translator]

Details

Innovator Details

Innovation Details

Problem Addressed

Building a more efficient and less labour-intensive technology for fruit grading.

Technology

The multiple fruit grading machine has an adjustable grading section which makes it versatile to be used on different fruits, even on walnuts which is the smallest. Currently, no other solutions like this exist. This eliminated the need for having different grading machines for different fruits. The machine has a rolling section that cleans the fruit first and then grades it. Design improvements have also been made. Earlier to operate the machine, the operator had to bend but with the addition of a foot lever, now operating is easier. Another add-on has been added for the segregation of damaged and diseased fruits. This works based on an AI module available separately for Rs. 20000.

Societal Impact

This machine will empower growers with a cost-effective solution that enhances the value of their harvest without imposing financial burdens. By embracing this technology, farmers can not only enhance the market value of their harvest but also contribute to a safer and more sustainable food production process. Automation of the grading process will make farmers’ lives easier and more comfortable.

Current status

Not being able to go into production due to funding issues

Have thoughts on this innovation or suggestions for improvement? Kindly Share your feedback !

` : ''; /* * Location / map. * * We first try to find decimal * latitude + longitude in the * database location field. */ const locationValue = practice.location || ''; const coordinates = gridExtractCoordinates( locationValue ); let mapHTML = ''; if(coordinates){ const lat = coordinates.lat; const lng = coordinates.lng; /* * OpenStreetMap embed. * * The marker is directly visible. */ const delta = 0.035; const west = lng - delta; const east = lng + delta; const south = lat - delta; const north = lat + delta; const mapURL = 'https://www.openstreetmap.org/export/embed.html' + '?bbox=' + encodeURIComponent(west) + ',' + encodeURIComponent(south) + ',' + encodeURIComponent(east) + ',' + encodeURIComponent(north) + '&layer=mapnik' + '&marker=' + encodeURIComponent(lat) + ',' + encodeURIComponent(lng); mapHTML = ` `; }else{ mapHTML = `
Location coordinates are not available for this practice.
`; } /* * PAS fields. */ const pasFields = [ ['PAS 1', practice.pas_1], ['PAS 2', practice.pas_2], ['PAS 3', practice.pas_3], ['PAS 4', practice.pas_4], ['PAS 5', practice.pas_5] ]; let pasHTML = ''; pasFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ pasHTML += `
${gridEscapeHTML( item[0] )}
${gridFormatText( item[1] )}
`; } }); if(!pasHTML){ pasHTML = `
No PAS / resource information available.
`; } /* * Practice fields. */ const practiceFields = [ ['Crop', practice.crop], ['Crop Family', practice.crop_family], [ 'Crop Scientific Name', practice.crop_scientific_name ], [ 'Crop Vernacular Name', practice.crop_vernacular_name ], [ 'Pest Taxonomy', practice.pest_taxonomy ], [ 'Pest Group', practice.pest_group ], [ 'Pest Scientific Name', practice.pest_scientific_names ], [ 'Pest Vernacular Names', practice.pest_vernacular_names ], [ 'Pest Vector Name', practice.pest_vector_name ], [ 'Formulation', practice.formulation ], [ 'Ingredients', practice.ingredients ], [ 'Dosage', practice.dosage ], [ 'Control Mode', practice.control_mode ], [ 'Problem Statement', practice.problem_statement ], [ 'Problem Scale', practice.problem_scale ], [ 'Manufacturing Capacity', practice.manufacturing_capacity ], [ 'Scalability', practice.scalability ], [ 'Potential Users', practice.potential_users ], [ 'Technology Transfer Terms', practice.technology_transfer_terms ], [ 'Scope for Technology Transfer Support', practice.scope_for_technology_transfer_support ], [ 'Limitations', practice.limitations ], [ 'Limitations of Approach', practice.limitations_of_approach ], [ 'Precautions', practice.precautions ] ]; let practiceHTML = ''; practiceFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ practiceHTML += gridDetailRow( item[0], item[1] ); } }); if(!practiceHTML){ practiceHTML = `
No additional practice details available.
`; } /* * References. */ const referenceFields = [ ['References', practice.references], ['Paper Link 1', practice.paper_link_1], ['Paper Link 2', practice.paper_link_2], ['Paper Link 5', practice.paper_link_5], ['Similar Paper / Patent / Practice', practice.similar_paper_patent_practice], ['Website', practice.website], ['Website Details', practice.website_details], ['Blog Link 1', practice.blog_link_1], ['Blog Link 2', practice.blog_link_2], ['Blog Link 3', practice.blog_link_3], ['Blog Link 5', practice.blog_link_5], ['News Link 1', practice.news_link_1], ['News Link 2', practice.news_link_2], ['News Link 3', practice.news_link_3], ['News Link 4', practice.news_link_4], ['News Link 5', practice.news_link_5] ]; let referencesHTML = ''; referenceFields.forEach(function(item){ if( item[1] !== null && item[1] !== undefined && String(item[1]).trim() !== '' ){ referencesHTML += gridDetailRow( item[0], item[1] ); } }); if(!referencesHTML){ referencesHTML = `
No reference information available.
`; } /* * Final HTML. */ app.innerHTML = `
${imageHTML}
${mapHTML}
${ type ? `
${gridEscapeHTML(type)}
` : '' }

${gridEscapeHTML(title)}

${ category ? `
${gridEscapeHTML(category)}
` : '' } ${ reference ? `
GIAN Reference: ${gridEscapeHTML(reference)}
` : '' }
About the Practice
${ detail ? `
Detail
${gridFormatText(detail)}
` : `
No practice description available.
` }
About the Innovator
${ innovator ? gridDetailRow( 'Knowledge Provider / Innovator', innovator ) : '' } ${ address ? gridDetailRow( 'Address', address ) : '' } ${ city ? gridDetailRow( 'City', city ) : '' } ${ district ? gridDetailRow( 'District', district ) : '' } ${ state ? gridDetailRow( 'State', state ) : '' } ${ pincode ? gridDetailRow( 'PIN Code', pincode ) : '' } ${ practice['Email Address (if any)'] ? gridDetailRow( 'Email', practice['Email Address (if any)'] ) : '' } ${ practice['Contact no: (if any)'] ? gridDetailRow( 'Contact No.', practice['Contact no: (if any)'] ) : '' }
Practice / Technology Details
${practiceHTML}
PAS / Resources
${pasHTML}
References
${referencesHTML}
${imageFallbackScript} `; /* * Back button. */ const backButton = document.getElementById( 'grid-back-practices' ); if(backButton){ backButton.addEventListener( 'click', function(){ /* * Reloading restores the * paginated database. */ window.location.reload(); } ); } /* * Keep map/image at top of * details after AJAX. */ app.scrollIntoView({ behavior:'smooth', block:'start' }); }; /* ===================================================== COORDINATE DETECTION ===================================================== */ window.gridExtractCoordinates = function(value){ if(!value){ return null; } const text = String(value); /* * Decimal pair: * * 21.1702, 72.8311 * * 21.1702 72.8311 */ const match = text.match( /(-?\d+(?:\.\d+)?)\s*[,;]\s*(-?\d+(?:\.\d+)?)/ ); if(match){ const lat = parseFloat(match[1]); const lng = parseFloat(match[2]); if( lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180 ){ return { lat:lat, lng:lng }; } } return null; }; /* ===================================================== DETAIL ROW ===================================================== */ window.gridDetailRow = function(label,value){ return `
${gridEscapeHTML(label)}: ${gridFormatText(value)}
`; }; /* ===================================================== SAFE TEXT ===================================================== */ window.gridEscapeHTML = function(value){ if( value === null || value === undefined ){ return ''; } const div = document.createElement('div'); div.textContent = String(value); return div.innerHTML; }; window.gridEscapeAttribute = function(value){ return gridEscapeHTML(value) .replace( /"/g, '"' ); }; /* ===================================================== FORMAT LONG TEXT + LINKS ===================================================== */ window.gridFormatText = function(value){ if( value === null || value === undefined || value === '' ){ return ''; } let text = gridEscapeHTML(value); /* * Convert URLs into clickable links. */ text = text.replace( /(https?:\/\/[^\s<]+)/g, function(url){ return ` ${url} `; } ); /* * Preserve line breaks. */ text = text.replace( /\r?\n/g, '
' ); return text; }; })();

Got questions? Contact us!

Got questions? Contact us!