Purpose: Develop an intelligent robotic system using the Niryo One robot to optimally grasp, transport, and place irregular products in containers based on size and packaging volume.
Optimize Container Selection: Automatically select the most suitable container for each irregular product based on its dimensions and the available packaging volume.
Optimal Product Placement: Determine the most efficient position for each product inside the container to maximize space utilization and stability.
Seamless Integration: Implement an algorithm that integrates with the Niryo One robot, using the robot's camera for space identification and placement optimization.
Methodology
Data Upload:
Product Dimensions: Upload dimensions of the irregular products.
Container Volumes: Upload available container volumes and dimensions.
Space Identification:
Camera Usage: Use the Niryo One's camera to scan and identify the internal dimensions and available space in the containers.
Algorithm Development:
Container Selection Algorithm: Develop an algorithm that evaluates the product dimensions against available container volumes to select the most suitable container for each product.
Placement Optimization Algorithm: Create a placement algorithm that determines the most efficient corner and orientation for each product within the selected container.
Robot Control:
Command Integration: Load the developed algorithms into the control system of the Niryo One robot.
Execution: Command the Niryo One robot to grasp, transport, and place the irregular products in the selected containers in the optimal positions determined by the algorithm.
Technical Specifications
Robot: Niryo One with integrated camera and gripping tools.
Software: Custom algorithms for container selection and product placement optimization.
Data Inputs: Product dimensions and container volumes.
Deliverables
Algorithm Code: Complete and functional code for the container selection and placement optimization algorithms.
Integration Guide: Documentation for integrating the algorithms with the Niryo One robot.
Test Results: Reports on the system’s accuracy and efficiency in real-world test scenarios.
User Guide: Instructions for uploading product dimensions, and container volumes, and using the new system with the Niryo One robot.
Success Criteria
Accuracy: The system should select the most suitable container and placement in at least 90% of test cases.
Efficiency: The robot should complete the grasping, transporting, and placement operations within a reasonable time, ideally less than 30 seconds per product.
Stability: Products should be securely placed in the containers without slipping during transport.
Risks and Mitigation
Risk: Incorrect space identification by the camera.
Mitigation: Regularly calibrate the camera and use advanced image processing techniques.
Risk: Algorithmic inefficiencies.
Mitigation: Continuously test and refine the algorithms to ensure optimal performance.
At the end of the project, we aim to have a fully functional system that efficiently packages irregular products into the most suitable containers, optimizing both space and stability.
Research Results
Similar projects' codes and videos were used in our project.
https://github.com/zt-yang/diffusion-ccsp
https://diffusion-ccsp.github.io/
Adaptive dense robotic packing for irregular objects
https://youtu.be/k_BJhVG2qOw?si=rXPShepyYA6b9aKk
NIRYO TUTORIALS FOR NED ONE
Niryo One Tutorial - First Steps
https://youtu.be/-r-Iz-_XR0g?si=6ET_w-nJxsFpOhIW
Programming NIRYO with Jupyterlab
Demo JupyterLab-Niryo-One
https://youtu.be/BJnAcmdi9gU?si=JaXqQcy63p6anE6_
Programming NIRYO with Blockly
https://youtu.be/zIWtRv7uJfI?si=Pvzcdd10klNK85kI
NIRYO ONE TUTORIAL
https://youtu.be/z1jiK4WewZU?si=eiA4VvEsKcbGWyZi
https://youtu.be/AgYxy18cZHI?si=ALMdZFFAH-Pghb-j
UTILIZING THE VISION SET
https://youtu.be/S8BlA9ycF18?si=otuka0_EqtUEr2Ab
BLOCKLY
https://youtu.be/yjE8g4NEqqs?si=oPG0z05FNb8iKu1e
Niryo Ned One can only hold objects that are as heavy as toy blocks make sure when you program the code to set the dimensions of the objects in line with the typical dimensions of toy blocks
When writing the code the freelancer should add instructions and comments that a coding novice can comprehend. This will help me to understand how the code works and when necessary I should be able to change some of the code for my preferences.