- Purpose: Develop an intelligent robotic system using the Niryo One robot to optimally grasp, transport, and place irregular products in containers based on their size and packaging volume.
- Objectives
- 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, 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 set the dimensions of the objects in line with the typical dimensions of toy blocks
... Show more