How can a 6-DOF robotic arm pick objects while the conveyor belt is still moving?

Hello everyone,

I am student and i am working on a project with a 6-DOF robotic arm (Arduino Mega +3motor step for dof 1 2 3 + 3 PCA9685 servo shield for dof 4 5 6 + vacuum ) to pick and sort two types of milk cartons (Fami and Milo). A camera with YOLO is used to classify the cartons and send coordinates to the Arduino for picking.

At the moment, I can make it work when the conveyor is stopped. But my goal is to keep the conveyor running continuously while the robot still picks accurately (pick-on-the-fly).

I don’t have an encoder on the motor step.

  • One possible approach I’m thinking about is visual servoing (image-based closed-loop control), or alternatively predicting the interception point based on velocity estimated from the camera.
  • Could anyone suggest which method would be more reliable in this case, or share other approaches (e.g., additional sensors, different strategies) that might work better?

If you have done something similar or know good references (GitHub projects, tutorials, videos), I would be very grateful if you could share them.

Thank you!

A quick reply. Do you know if the conveyer always moves at the same speed?

1 Like

Align one coordinate with the conveyor direction and speed while picking.

Isn't a 6 DOF robot arm much over the real requirement? A simple pusher could direct one type of cartons into its road. A light barrier or the like could signal when the carton is in place for pushing.