The following might work... * the y coordinate (vertical) of the cmucam should be a direct, linear measure of how far down the field the ball is. That is, theMessage 1 of 21 , Oct 9, 2009View SourceThe following might work...* the y coordinate (vertical) of the cmucam should be a direct, linear measure of how far down the field the ball is. That is, the y coordinate is an estimate for the distance the ball is from the goalie.* The size of the ball in the cmu cam is also an approximate estimate for the distance (it gets larger as its gets closer)* the sonar sensor may be able to measure ball distance, but may often be confused by other things* these three measures could be combined into an estimated distance down the field the ball isOnce you have a measure of where the ball is down the field, you can estimate its x (horizontal) coordinate. The playing field should appear on the cmucam as a trapezoid. That is, horizontal distances compress toward the vanashing point the farther away they are. So it should be possible to take the x coordinate from the cmu cam, normalize it relative to center (so that at center, x = 0), and then multiply the x coordinate by the distance (also multiply by a calibrated coefficient that translates distance into perspective compression). This should give an estimate for the x coordinate on the field.With two measurements of the ball's x,y coordinate spaced by known time intervals, it's velocity can be estimated. The only part of the velicoty that matters is how fast the x coordinate is changing. The bot will want to "chase" the changing x coordinate to get slightly ahead of it, and just wait there.In fact, the x coordinate may be the only thing that matters. It may be possible to ignore distance altogether. If the robot changes its position so that the trajectory of the ball will take it to center bottom of the cmucam screen, that may put it in the right place to block the ball. It that case, all coordinate systems can be ignored, and the robot only needs to deal with "hand-eye" coordination: moving itself so that the ball's trajectory on the screen forms a line that ends at the robot.Just some thoughts...Paul----- Original Message -----From: COE SECTIONBSent: Thursday, October 08, 2009 7:49 AMSubject: Re: [intellibrain] Re: Soccer Robot ...
Have try to use the dead reckoning? It let the Ibrain bot to know it's position(x,y) and its orientation. ..i will try to experiment this one...maybe it will help me to get the coordinates of the moving ball...
--- On Wed, 10/7/09, Peter Chatterton <peter@peterChattert on.com> wrote:
From: Peter Chatterton <peter@peterChattert on.com>
Subject: Re: [intellibrain] Re: Soccer Robot ...
To: intellibrain@ yahoogroups. com
Date: Wednesday, October 7, 2009, 11:27 AM
"...the time it takes the ball to get from one point to the other is your ball.x and ball.y velocities."Isn't it the speed of the end-on image? I don't see how that would be the speed of the ball,except by chance.Though I'm not saying your algorithm won't work.Peter----- Original Message -----From: blescohierSent: Tuesday, October 06, 2009 4:26 PMSubject: [intellibrain] Re: Soccer Robot ...
Take the center of the goal as (0,0).
y (vertical axis)
<----------- --x------ -----> (horizontal)
--- In intellibrain@ yahoogroups. com, "Peter Chatterton" <peter@...> wrote:
> How can you 'capture the x and y' positions when you just have
> an end-on view?
> Are you sure that the height of the ball isn't variable as well?
> ----- Original Message -----
> From: blescohier
> To: intellibrain@ yahoogroups. com
> Sent: Tuesday, October 06, 2009 11:17 AM
> Subject: [intellibrain] Re: Soccer Robot ...
> What are you considering as the x and y axes? I assume that x is 'right and left' as the goalie looks at the playing field, and that y is up and down.
> In that case, 2 points define a line and the time it takes the ball to get from one point to the other is your ball.x and ball.y velocities. Capture the x and y position of the ball every t milliseconds, use the distance formula (http://www.purplema th.com/modules/ distform. htm) to determine the distance traveled, and then use the velocity of the ball (v = d/t) to predict the position where the ball will cross the goal line. If that position is inside the goal, move the robot to that position... if that position is outside your goal, let it go... it will miss the goal and be a goalie kick.
> --- In intellibrain@ yahoogroups. com, COE SECTIONB <coesectionb@ > wrote:
> > To Peter and Paul:
> > Thank you guys for your effort and idea.....i appreciate it so much...But if you have any idea about soccer robot (goal keeper) using cmucam, please post it here..especially it discuss about getting the trajectory line of the ball and getting the global coordinates of it....