Skip to content

Latest commit

 

History

History
118 lines (102 loc) · 4.65 KB

README.md

File metadata and controls

118 lines (102 loc) · 4.65 KB

EwasteNonDestructiveDisassembly

Description

The "E-waste Non-Destructive Disassembly Robot" project is a cutting-edge endeavor aimed at addressing the pressing issue of electronic waste (e-waste) through an innovative robotic system. The project focuses on developing a robot capable of disassembling electronic devices without causing damage, facilitating efficient recycling and reuse of valuable components.

Key Features:

  • Utilizes the ABB IRB120 robotic manipulator as the core hardware platform.
  • Implements a pure mechanical tool-changing mechanism for the seamless switching of specialized tools.
  • Utilizes the Intel RealSense D435 camera and a custom vision algorithm for precise component localization.
  • Develops algorithms for approaching, engaging, and unfastening screws with high accuracy.
  • Incorporates a central node for supervision, coordination, and fault tolerance.
  • Comprehensive documentation is provided in a detailed thesis and accompanying video.

The project aims to contribute to sustainable e-waste management by offering an environmentally friendly and efficient solution for disassembling electronic devices. By enabling the safe extraction of valuable components, it promotes recycling and reduces the environmental impact of e-waste.

Feature

  • Pure Mechanical Tool changing algorithm
  • Detect screws and locate their position precisely.
  • Tool-changing algorithm that has 100% success in getting and returning tools.
  • Central node that coordinates and determines the order of operation.
  • Successfully approach and engage with screws.
  • Unscrewing algorithm that can predict precisely when the screw is completely out.

Connection Diagram

Project Cycle

Requirements

  • Operating system
    • Ubuntu 20.04 Focal Fossal
  • Framework
    • Ros1 Noetic
    • Python 3.8 or above
    • Moveit 1
    • PyTorch

How To

First Run the robot to start the connection

roslaunch control start.launch robot_ip:=<robot_ip>

Second start the system

rosrun Central_node starterSystem.py

Install ROS dependencies

sudo apt-get install ros-noetic-moveit*
sudo apt-get install ros-noetic-abb*
sudo apt-get install ros-noetic-industrial*
sudo apt-get install ros-noetic-trac-ik-kinematics-plugin
sudo apt-get install ros-noetic-joint*
sudo apt-get install ros-noetic-control*

Python Libraries

pip3 install numpy
pip3 install opencv-python
pip3 install open3d
pip3 install seaborn
pip3 install torch
pip3 install torchvision

Build the workspace

cd ~/EwasteNonDestructiveDisassembly
rosdep install --from-paths src --ignore-src --rosdistro=noetic -y
catkin build

🚨 This step must be done in both master and slave PC

Run the system

In the Master PC

Terminal 1

roslaunch ft_sensor_driver force_filtered.launch

Terminal 2

ls /dev/tty* #select the tty that contain the ACM
rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

In the slave PC

Terminal 1

roscore

Terminal 2

#adjust the starter file to see which file should start first
rosrun CentralNode starterSystem.py

Integration

GP drawio

Full video

final-video-1_fOKIRNww.mp4

Resources

https://www.linkedin.com/in/ebrahim-abdelghafar/ : All Project Resources