Shape recognition - coordinates feedback

I’m hoping for some advice on where to start with this. I’m looking for a way to recognise the position of a shape within an image, and feed back the coordinates of the center or a point on that shape.

I’ve done a bit of reading but most topics quickly get into object tracking, facial recognition or 3d, but I think I need something much simpler - monochrome 2d would be fine.

The project is to build and control a robot arm to plug in a charge cable to an Electric Vehicle. The port on the car has a distinct shape, and so I just want to move the arm (with camera attached) until that shape lines up exactly in the correct place in the camera.

The arm will start close to the vehicle and see something like this. It needs to identify this approx shape (cover highlighted), and then move in x and y axes so that it is in a known location relative to the cover.

ChargePortShape

Any tips on how to proceed would be appreciated!

A line follow technic using an optical detector for each x and y could work.

Usually, image processing is processor and memory intensive. The low end Arduinos won't have enough RAM to load the image from your camera. Since you're looking for a single shape, you may be able to reduce the processing requirement somewhat but you may still want to look at using a Pi.

ML, machine learning. A form of regression can be ran on 32 bit MCU's.

I agree with reply #3: you will most likely need a computer capable of image processing. The Raspberry Pi is good for the finished project as it is tiny but has a dedicated camera. The algorithm could be developed on any computer running Linux, using OpenCV.

OK thanks for the advice so far. I'm now thinking it might be easier to mechanically index off points on the car with limit switches and keep it Arduino. I realise I only need to check 2 axes - as the height will always be the same (unless the tyre is flat!)

Just to further clarify the project, in case there are any more tips for me or interest....

The vehicle is positioned close to the power point and robot arm attached to a garage wall. I then need to locate the exact coordinates of the door cover. Height will always be the same relative to the flat floor, but forward/back location and distance from the wall need to be checked.

Once known, pre-configured sequence can run - a servo driven tool to pop the cover open, and then a robot arm attached to the power plug to push it into a known coordinate.

Maybe have something that finds the front tyre, it'll be more able to stand up to being poked at than the paintwork. Given that as a reference, your robot will have a pretty good idea where the plug cover is.

WIldbill thanks, and yes I think the front of the tyre will be a good reference. Its the only thing around there that is flat - everything else on the car is curves!

I've started to sketch it up in 3d. Might use the robot arm with a "finger" attached to open and close the flap too, rather than the separate servos shown.