This Project is an implementation for control algorithms for UFactory Lite 6 robot. Picking up a block requires,
- Identifying a block using YOLO model
- Finding the center of the box (Px,Py)
- Converting Pixel Coordinates to Robot Coordinates (Rx,Ry)
- Instructing UArm to move to the position and pick it up and place it on a fixed position
YOLO model has been trained the model on a public dataset available on Roboflow. Find it here
Conversion of Pixel Coordinates to Robot Coordinates is done by using Regression
A set of points are taken, by using the robot to place the block randomly within a range of camera. Then, the pixel coordinates of that point and the robot coordinates are taken. Using those points, we find the transformation matrix from Pixel to Robot coordinates.
Assuming only rotation of the coordinate frame. $$ \begin{bmatrix} R_x \ R_y \end{bmatrix} = \begin{bmatrix} m_1 & c_1 \ m_2 & c_2 \end{bmatrix} \begin{bmatrix} P_x \ P_y \end{bmatrix} $$
We find the transformation by, $$ R*P^{\dagger} = w $$
where $ {\dagger} $ is the PseudoInverse
where
pip install -r requirements.txt
- Run test_movement.ipynb to test if the robot is connected and can move.
- Run coord_calibration.ipynb to calibrate the camera and robot coordinate system.
- Run live_detection.ipynb to start the picking up process.

