Semi-autonomous Ball finding robot

So, before I start, I'm a mechanical guy, programming just typicallydon't work with my constant typo's so bear with me a bit.

My objective here, is to have a robot that can follow an object for something similar to radio controlled soccer with left/right tank steering to keep things simple, and also take input from me into consideration, I'll explain more fully below, but basically:

-I have forwards/backwards/turn radio control of the robot, this accounts for ~20% of throttle or so, the idea here being I can make decisions and trundle around when the ball cannot be found because of another robot in the way, or if I just think I have a better plan

-When needed, I can toggle a button on the remote, engaging the "ball finding" mode, the arduino In my mind I imagine this opening up about 50% or so of throttle to the arduino, it would adjust the left and right sides to keep the ball in front of it. Now it could track the ball visually (but this is probably a bad idea since I dont have control over the enviroment), or I was thinking an IR laser aimed at the target would also work, it really doesn't matter. The expected behavior here is I can control the forwards/backwards motion, but the robot keeps the ball centered in front of it.

--For example, I press forward, the ball is moving right, the left drive motor would stay at 20% throttle (what Im allowed to do manually) or maybe dip a little lower, the right drive motor would open up to up to 70% throttle in order to keep the ball in front of it as it drove forward.

It doesn't "seem" too complicated in my mind, if ball is sensed off center (and "track" button is pressed), add a little bit to the pwm signal going to that speed controller depending on how far off center, if it isn't detected, don't do anything just let the pilot drive

What are reasonable expectations for this sort of thing? I've seen line following robots that do alright, but the ball is a moving object that could be going 5 or even 10 miles an hour, so it seems /very/ rapid updates to the motors would be necessary to keep the ball in front of it.

The visual processing required to seperate the ball from background clutter is surprisingly difficult. The human brain is a massively parallel computer optimised over aeons to do this task.

Basically you must have some control over the environment to do this at all reliably. Robot soccer uses a plain backdrop and the competing robots are clearly distinguishable from the balls. Or you put a transmitter in the ball that your robot can find.

The Pixy camera looks like a good fit for this. It can find a coloured object and reduce it to simple data like angle and distance. It won't work in a completely uncontrolled environment (somebody with a shirt the same colour as your ball will draw it off) but it's pretty close to what you're looking for.

Thanks, thats why I was aiming for the IR laser or otherwise presenting a really obvious target for it rather than hoping on a visual camera picking it up. My primary concern was how quickly can the arduino update itself, if I'm closing on the ball at a couple miles an hour, and its moving, how it realistic to "keep it" in front of me?
Lets say I go crazy and put 30mph motors in the thing and its really/really fast I've seen some sumo robots that are faster than a human could ever hope to be, which was kind of what I was dreaming of to be honest :).

Yes, that's possible. It depends on your budget. You might be looking at several $300 sensors, with different sensors used for close tracking versus distance tracking.

Lasers are often used on full-size autonomous vehicles to create a "depth map" of how close objects are to the vehicle. I don't see a laser being useful on a small Sumo robot. If you are pointing the laser like a gun, how does the pointing mechanism track the ball? You have exactly the same problem except now the mechanism is travelling on a moving platform.

I see where you're coming from.

Realistically, it would be nice to be able to triangulate like that, but I'm happy with "keep this dot in front of you" Keeping track of the ball with a laser could be done with a roof mounted design, or if worse came to worse, a team mate could aim it manually by hand with "some" level of precision, maybe, I'm all for finding a dumb way around the complicated problem! :wink:

That would be a "laser designator". The robot would follow the spot like a cat does. Use a visible LED as well, so the teammate can see where he's pointing the laser. Are you allowed to use visible lasers? It would make it obvious that the robot is receiving outside assistance.

Yep, that is my exact plan.

The ruleset is extremely open, however there is a "no effects which may blind/distract/ect) which includes "high power lasers" I'm guessing a simple laser pointer might be fine, which is why I was leaning towards a (semi?) invisible IR laser (if it is also robotic i'm more apt to buy a more expensive sensor package in something that won't be bonked around by another robot)

It would be a tremendous boon, as "controlled" bot hockey/soccer is really limited right now because of the slick surface that quickly degrades to where no one really has enough control over their machines, letting the machine be able to tweak its drive path itself would really help overcome those issues, or at least help me not do a full speed rush to the ball, miss and pancake myself onto a wall because someone earlier left behind some tire dust in my path :wink: