Loading ...
Sorry, an error occurred while loading the content.
 

Re: Soccer Robot ...

Expand Messages
  • COE
    ... To Peter : The robot is facing the ball because the cmucam is mounted in front of the robot, that serve as the vision of the robot....The ball is moving,
    Message 1 of 21 , Oct 5, 2009
      --- In intellibrain@yahoogroups.com, "Peter Chatterton" <peter@...> wrote:
      >
      > My problem was that I thought you were mapping a 3 dimensional path of the ball from the head-of-view.
      >
      > If you're only trying to put yourself in front of the ball, I don't see a problem.
      >
      > Peter
      >
      >
      > ----- Original Message -----
      > From: Paul King
      > To: intellibrain@yahoogroups.com
      > Sent: Sunday, October 04, 2009 5:12 AM
      > Subject: Re: [intellibrain] Soccer Robot ...
      >
      >
      >
      >
      > converting between coordinate systems is not very computation intensive. probably not more then 5 or 10 floating point multiplies, which would only need to be done a few times per second (every time a new destination is calculated). One would need to use sine and cosine functions, but those are supported in the Math library. There shouldn't need to be any actual computer vision involved, other than what the CMUCam does in hardware, which is to turn a colored object into an x,y coordinate.
      >
      > paul
      >
      >
      >
      > ----- Original Message -----
      > From: Peter Chatterton
      > To: intellibrain@yahoogroups.com
      > Sent: Friday, October 02, 2009 10:37 AM
      > Subject: Re: [intellibrain] Soccer Robot ...
      >
      >
      >
      >
      > I know nothing about computer graphics and the rest, but would be
      > really interested in knowing if you could convert the head-on view
      > of the socces ball into x,y coordinates using the IBrain and its floating
      > point emulation.
      >
      > Peter
      >
      > ----- Original Message -----
      > From: Paul King
      > To: intellibrain@yahoogroups.com
      > Sent: Friday, October 02, 2009 12:50 PM
      > Subject: Re: [intellibrain] Soccer Robot ...
      >
      >
      >
      >
      >
      > Note that the cmucam is not a full computer vision system. All it can tell you is the x,y location of the ball at any given moment (the ball being a brightly colored region to the cmucam, which allows it to return the x,y region center).
      >
      > To compute a trajectory you will need to plot the change in the x,y coordinate over time by collecting periodic samples of the ball position and noting the time on the system clock (System.currentTimeMillis()). With some math from basic physics, the ball's velocity can be calculated, from which predictions can be made about future ball location. These coordinates in front-facing x,y will need to be translated into playing-field x,y coordinates using 3D geometry relating to visual perspective.
      >
      > More math from basic physics will allow you to compute the intersection of the ball trajectory (based on its current position and velocity) and the line of action of the robot (the path along which it moves). The robot can then travel to that point over time, with its position as represented in a model updated as it moves.
      >
      > The robot may want to continue to track the ball as it moves. Future ball positions will need to be translated geometrically relative to the robot's estimated current position, as compensating for this visual parallax is necessary to translate the ball's visual position into accurate playing field x,y coordinates.
      >
      > The robot Java program would need to be a continuous loop that estimates its position, the ball's position, the likely point of intersection of the ball with its path, and makes an adjustment to the robot's current movement speed (or stops).
      >
      > This 2 page article I found online discusses an algorithm for lanning goalie position in robot soccer:
      > http://www.fujipress.jp/finder/preview_download.php?pdf_filename=PRE_JACII000800010009.pdf&frompage=abst_page&pid=199&lang=English
      >
      > Kalman filters are useful math for estimating the velocity of a moving target from several imperfect measurements taken over time. It was developed 50 years ago for target tracking in radar systems.
      > http://en.wikipedia.org/wiki/Kalman_filter
      >
      > Best,
      > Paul (another IntelliBrain user)
      >
      >
      >
      > ----- Original Message -----
      > From: COE
      > To: intellibrain@yahoogroups.com
      > Sent: Friday, October 02, 2009 6:43 AM
      > Subject: [intellibrain] Soccer Robot ...
      >
      >
      >
      > Good day Guys...
      > we bought intellebrain bot and sonar at ridgesoft and cmucmu cam at seattle robotics few weeks ago...
      >
      > I'm going to use that for my project entitled Soccer Robot Goalie Behavior..
      > The rule of the Gaolie is to depend the goal, if the robot in the goal area detect a ball coming to the goal, the robot must calculate a trajectory line of the ball, where the ball possibly pass...if the robot in the goal detect the intersection point of the trajectory line and the line of action in the goal are, the robot must come the to the intersection point ahead of time...
      > we use sensor fusion., the cmu cam 2 and sonar sensor
      >
      > my problem are
      > how does the robot determine the trajectory line of the ball using cmucam?
      > if the robot determine the trajectory line, how does the robot determine the intersection point between the trajectory line of the ball and the line of action?
      > if the robot determine the intersection point, how the does robot able to come to that point, to obstruct the ball???
      >
      > please help us....the intellebrain-bot,sonar and cmucam are expensive...we are in the philippines...
      >

      To Peter :
      The robot is facing the ball because the cmucam is mounted in front of the robot, that serve as the vision of the robot....The ball is moving, so the robot need to predict the trajectory line of the ball, so that the robot (goal keeper) can obstruct the ball in entering the goal...the sonar is also mounted in front of the goal to measure the distance of the moving ball...our instructor said, we need to get the coordinates(x,y) of the moving ball and the coordinates of the robot(x,y) using the global, coordinates....i read the kalman filter...i cannot understand,,its very difficult to make a code in robojde.....do you have any idea in computation, using the cmucam to predict the ball, and about the Global coordinates ????
    • COE
      To Peter: The CMUCAM is facing the ball because is is mounted in front of the intellebrain bot..it serve as the vision of the bot, and it is use to predict of
      Message 2 of 21 , Oct 5, 2009
        To Peter:

        The CMUCAM is facing the ball because is is mounted in front of the intellebrain bot..it serve as the vision of the bot, and it is use to predict of the coming ball....the sonar is also mounted in the front of the intellebrain bot, under the cmucam to measure the distance of the moving ball..our teacher said that we need to get the x and y coordinates of the moving ball, using the global cartesian plane...do you have any idea in computation to predict the trajectory line of the ball using the cmucam or using the global coordinates ??? tnx..

        To Paul:
        thanks for the link of the kalman and the pdf...but it sad to say that i did not understand the kalman,,....Its very difficult to make a code in RoboJDe for kalman...but anyway, tnx for your effort guys...
      • Peter Chatterton
        That two page paper looks very promising but stops just when it s getting interesting and maybe even useful. The Kalman filter article is a total waste of
        Message 3 of 21 , Oct 5, 2009
          That two page paper looks very promising but stops just when it's
          getting interesting and maybe even useful.
           
          The Kalman filter article is a total waste of time.
           
          You need to find what other people are doing.
           
          I still don't think you can generate a 3D track image from the 2D
          end-on images using the IBrain.  But you don't need to if you have a
          workable heuristic such as I thought the two page paper was going
          to give you; I wonder if it got left off by mistake.
           
          Good luck!
          Peter
           
          ----- Original Message -----
          From: COE
          Sent: Monday, October 05, 2009 8:31 AM
          Subject: [intellibrain] Re: Soccer Robot ...

           


          --- In intellibrain@ yahoogroups. com, "Peter Chatterton" <peter@...> wrote:
          >
          > My problem was that I thought you were mapping a 3 dimensional path of the ball from the head-of-view.
          >
          > If you're only trying to put yourself in front of the ball, I don't see a problem.
          >
          > Peter
          >
          >
          > ----- Original Message -----
          > From: Paul King
          > To: intellibrain@ yahoogroups. com
          > Sent: Sunday, October 04, 2009 5:12 AM
          > Subject: Re: [intellibrain] Soccer Robot ...
          >
          >
          >
          >
          > converting between coordinate systems is not very computation intensive. probably not more then 5 or 10 floating point multiplies, which would only need to be done a few times per second (every time a new destination is calculated). One would need to use sine and cosine functions, but those are supported in the Math library. There shouldn't need to be any actual computer vision involved, other than what the CMUCam does in hardware, which is to turn a colored object into an x,y coordinate.
          >
          > paul
          >
          >
          >
          > ----- Original Message -----
          > From: Peter Chatterton
          > To: intellibrain@ yahoogroups. com
          > Sent: Friday, October 02, 2009 10:37 AM
          > Subject: Re: [intellibrain] Soccer Robot ...
          >
          >
          >
          >
          > I know nothing about computer graphics and the rest, but would be
          > really interested in knowing if you could convert the head-on view
          > of the socces ball into x,y coordinates using the IBrain and its floating
          > point emulation.
          >
          > Peter
          >
          > ----- Original Message -----
          > From: Paul King
          > To: intellibrain@ yahoogroups. com
          > Sent: Friday, October 02, 2009 12:50 PM
          > Subject: Re: [intellibrain] Soccer Robot ...
          >
          >
          >
          >
          >
          > Note that the cmucam is not a full computer vision system. All it can tell you is the x,y location of the ball at any given moment (the ball being a brightly colored region to the cmucam, which allows it to return the x,y region center).
          >
          > To compute a trajectory you will need to plot the change in the x,y coordinate over time by collecting periodic samples of the ball position and noting the time on the system clock (System.currentTime Millis()) . With some math from basic physics, the ball's velocity can be calculated, from which predictions can be made about future ball location. These coordinates in front-facing x,y will need to be translated into playing-field x,y coordinates using 3D geometry relating to visual perspective.
          >
          > More math from basic physics will allow you to compute the intersection of the ball trajectory (based on its current position and velocity) and the line of action of the robot (the path along which it moves). The robot can then travel to that point over time, with its position as represented in a model updated as it moves.
          >
          > The robot may want to continue to track the ball as it moves. Future ball positions will need to be translated geometrically relative to the robot's estimated current position, as compensating for this visual parallax is necessary to translate the ball's visual position into accurate playing field x,y coordinates.
          >
          > The robot Java program would need to be a continuous loop that estimates its position, the ball's position, the likely point of intersection of the ball with its path, and makes an adjustment to the robot's current movement speed (or stops).
          >
          > This 2 page article I found online discusses an algorithm for lanning goalie position in robot soccer:
          > http://www.fujipres s.jp/finder/ preview_download .php?pdf_ filename= PRE_JACII0008000 10009.pdf& frompage= abst_page& pid=199&lang= English
          >
          > Kalman filters are useful math for estimating the velocity of a moving target from several imperfect measurements taken over time. It was developed 50 years ago for target tracking in radar systems.
          > http://en.wikipedia .org/wiki/ Kalman_filter
          >
          > Best,
          > Paul (another IntelliBrain user)
          >
          >
          >
          > ----- Original Message -----
          > From: COE
          > To: intellibrain@ yahoogroups. com
          > Sent: Friday, October 02, 2009 6:43 AM
          > Subject: [intellibrain] Soccer Robot ...
          >
          >
          >
          > Good day Guys...
          > we bought intellebrain bot and sonar at ridgesoft and cmucmu cam at seattle robotics few weeks ago...
          >
          > I'm going to use that for my project entitled Soccer Robot Goalie Behavior..
          > The rule of the Gaolie is to depend the goal, if the robot in the goal area detect a ball coming to the goal, the robot must calculate a trajectory line of the ball, where the ball possibly pass...if the robot in the goal detect the intersection point of the trajectory line and the line of action in the goal are, the robot must come the to the intersection point ahead of time...
          > we use sensor fusion., the cmu cam 2 and sonar sensor
          >
          > my problem are
          > how does the robot determine the trajectory line of the ball using cmucam?
          > if the robot determine the trajectory line, how does the robot determine the intersection point between the trajectory line of the ball and the line of action?
          > if the robot determine the intersection point, how the does robot able to come to that point, to obstruct the ball???
          >
          > please help us....the intellebrain- bot,sonar and cmucam are expensive... we are in the philippines. ..
          >

          To Peter :
          The robot is facing the ball because the cmucam is mounted in front of the robot, that serve as the vision of the robot....The ball is moving, so the robot need to predict the trajectory line of the ball, so that the robot (goal keeper) can obstruct the ball in entering the goal...the sonar is also mounted in front of the goal to measure the distance of the moving ball...our instructor said, we need to get the coordinates( x,y) of the moving ball and the coordinates of the robot(x,y) using the global, coordinates. ...i read the kalman filter...i cannot understand,, its very difficult to make a code in robojde..... do you have any idea in computation, using the cmucam to predict the ball, and about the Global coordinates ????

        • COE SECTIONB
          To Peter and Paul:                        Thank you guys for your effort and idea.....i appreciate it so much...But if you have any idea about
          Message 4 of 21 , Oct 6, 2009
            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....
          • blescohier
            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
            Message 5 of 21 , Oct 6, 2009
              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.purplemath.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.

              -Bill

              --- 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....
              >
            • Peter Chatterton
              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? Peter ... From:
              Message 6 of 21 , Oct 6, 2009
                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?
                 
                Peter
                 
                ----- Original Message -----
                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.

                -Bill

                --- 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....
                >

              • blescohier
                Take the center of the goal as (0,0). y (vertical axis) ^ ... 0 | ball | ... (horizontal)
                Message 7 of 21 , Oct 6, 2009
                  Take the center of the goal as (0,0).


                  y (vertical axis)
                  ^
                  |
                  0 |
                  ball |
                  |
                  <-------------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?
                  >
                  > Peter
                  >
                  > ----- 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.purplemath.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.
                  >
                  > -Bill
                  >
                  > --- 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....
                  > >
                  >
                • Peter Chatterton
                  ...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
                  Message 8 of 21 , Oct 6, 2009
                    "...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 -----
                    Sent: Tuesday, October 06, 2009 4:26 PM
                    Subject: [intellibrain] Re: Soccer Robot ...

                     

                    Take the center of the goal as (0,0).

                    y (vertical axis)
                    ^
                    |
                    0 |
                    ball |
                    |
                    <----------- --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?
                    >
                    > Peter
                    >
                    > ----- 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.
                    >
                    > -Bill
                    >
                    > --- 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....
                    > >
                    >

                  • COE
                    global coordinates....i am not sure with my idea...if the Ibrain bot know its current location (x,y) and orientation, i think it can predict the (x,y) location
                    Message 9 of 21 , Oct 8, 2009
                      global coordinates....i am not sure with my idea...if the Ibrain bot know its current location (x,y) and orientation, i think it can predict the (x,y) location of the ball also..but, i am not sure with this...

                      --- 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?
                      >
                      > Peter
                      >
                      > ----- 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.purplemath.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.
                      >
                      > -Bill
                      >
                      > --- 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....
                      > >
                      >
                    • COE SECTIONB
                      i keep on searching about soccer robot (goal keeper) on then net, but goal keeper is seldom...most of them did not used cmu cam and Ibrain, so there process is
                      Message 10 of 21 , Oct 8, 2009
                        i keep on searching about soccer robot (goal keeper) on then net, but goal keeper is seldom...most of them did not used cmu cam and Ibrain, so there process is different, thanks for reply.....

                        -Ike G.

                        --- On Tue, 10/6/09, Peter Chatterton <peter@...> wrote:

                        From: Peter Chatterton <peter@...>
                        Subject: Re: [intellibrain] Re: Soccer Robot ...
                        To: intellibrain@yahoogroups.com
                        Date: Tuesday, October 6, 2009, 2:03 AM

                         

                        That two page paper looks very promising but stops just when it's
                        getting interesting and maybe even useful.
                         
                        The Kalman filter article is a total waste of time.
                         
                        You need to find what other people are doing.
                         
                        I still don't think you can generate a 3D track image from the 2D
                        end-on images using the IBrain.  But you don't need to if you have a
                        workable heuristic such as I thought the two page paper was going
                        to give you; I wonder if it got left off by mistake.
                         
                        Good luck!
                        Peter
                         
                        ----- Original Message -----
                        From: COE
                        Sent: Monday, October 05, 2009 8:31 AM
                        Subject: [intellibrain] Re: Soccer Robot ...

                         


                        --- In intellibrain@ yahoogroups. com, "Peter Chatterton" <peter@...> wrote:
                        >
                        > My problem was that I thought you were mapping a 3 dimensional path of the ball from the head-of-view.
                        >
                        > If you're only trying to put yourself in front of the ball, I don't see a problem.
                        >
                        > Peter
                        >
                        >
                        > ----- Original Message -----
                        > From: Paul King
                        > To: intellibrain@ yahoogroups. com
                        > Sent: Sunday, October 04, 2009 5:12 AM
                        > Subject: Re: [intellibrain] Soccer Robot ...
                        >
                        >
                        >
                        >
                        > converting between coordinate systems is not very computation intensive. probably not more then 5 or 10 floating point multiplies, which would only need to be done a few times per second (every time a new destination is calculated). One would need to use sine and cosine functions, but those are supported in the Math library. There shouldn't need to be any actual computer vision involved, other than what the CMUCam does in hardware, which is to turn a colored object into an x,y coordinate.
                        >
                        > paul
                        >
                        >
                        >
                        > ----- Original Message -----
                        > From: Peter Chatterton
                        > To: intellibrain@ yahoogroups. com
                        > Sent: Friday, October 02, 2009 10:37 AM
                        > Subject: Re: [intellibrain] Soccer Robot ...
                        >
                        >
                        >
                        >
                        > I know nothing about computer graphics and the rest, but would be
                        > really interested in knowing if you could convert the head-on view
                        > of the socces ball into x,y coordinates using the IBrain and its floating
                        > point emulation.
                        >
                        > Peter
                        >
                        > ----- Original Message -----
                        > From: Paul King
                        > To: intellibrain@ yahoogroups. com
                        > Sent: Friday, October 02, 2009 12:50 PM
                        > Subject: Re: [intellibrain] Soccer Robot ...
                        >
                        >
                        >
                        >
                        >
                        > Note that the cmucam is not a full computer vision system. All it can tell you is the x,y location of the ball at any given moment (the ball being a brightly colored region to the cmucam, which allows it to return the x,y region center).
                        >
                        > To compute a trajectory you will need to plot the change in the x,y coordinate over time by collecting periodic samples of the ball position and noting the time on the system clock (System.currentTime Millis()) . With some math from basic physics, the ball's velocity can be calculated, from which predictions can be made about future ball location. These coordinates in front-facing x,y will need to be translated into playing-field x,y coordinates using 3D geometry relating to visual perspective.
                        >
                        > More math from basic physics will allow you to compute the intersection of the ball trajectory (based on its current position and velocity) and the line of action of the robot (the path along which it moves). The robot can then travel to that point over time, with its position as represented in a model updated as it moves.
                        >
                        > The robot may want to continue to track the ball as it moves. Future ball positions will need to be translated geometrically relative to the robot's estimated current position, as compensating for this visual parallax is necessary to translate the ball's visual position into accurate playing field x,y coordinates.
                        >
                        > The robot Java program would need to be a continuous loop that estimates its position, the ball's position, the likely point of intersection of the ball with its path, and makes an adjustment to the robot's current movement speed (or stops).
                        >
                        > This 2 page article I found online discusses an algorithm for lanning goalie position in robot soccer:
                        > http://www.fujipres s.jp/finder/ preview_download .php?pdf_ filename= PRE_JACII0008000 10009.pdf& frompage= abst_page& pid=199&lang= English
                        >
                        > Kalman filters are useful math for estimating the velocity of a moving target from several imperfect measurements taken over time. It was developed 50 years ago for target tracking in radar systems.
                        > http://en.wikipedia .org/wiki/ Kalman_filter
                        >
                        > Best,
                        > Paul (another IntelliBrain user)
                        >
                        >
                        >
                        > ----- Original Message -----
                        > From: COE
                        > To: intellibrain@ yahoogroups. com
                        > Sent: Friday, October 02, 2009 6:43 AM
                        > Subject: [intellibrain] Soccer Robot ...
                        >
                        >
                        >
                        > Good day Guys...
                        > we bought intellebrain bot and sonar at ridgesoft and cmucmu cam at seattle robotics few weeks ago...
                        >
                        > I'm going to use that for my project entitled Soccer Robot Goalie Behavior..
                        > The rule of the Gaolie is to depend the goal, if the robot in the goal area detect a ball coming to the goal, the robot must calculate a trajectory line of the ball, where the ball possibly pass...if the robot in the goal detect the intersection point of the trajectory line and the line of action in the goal are, the robot must come the to the intersection point ahead of time...
                        > we use sensor fusion., the cmu cam 2 and sonar sensor
                        >
                        > my problem are
                        > how does the robot determine the trajectory line of the ball using cmucam?
                        > if the robot determine the trajectory line, how does the robot determine the intersection point between the trajectory line of the ball and the line of action?
                        > if the robot determine the intersection point, how the does robot able to come to that point, to obstruct the ball???
                        >
                        > please help us....the intellebrain- bot,sonar and cmucam are expensive... we are in the philippines. ..
                        >

                        To Peter :
                        The robot is facing the ball because the cmucam is mounted in front of the robot, that serve as the vision of the robot....The ball is moving, so the robot need to predict the trajectory line of the ball, so that the robot (goal keeper) can obstruct the ball in entering the goal...the sonar is also mounted in front of the goal to measure the distance of the moving ball...our instructor said, we need to get the coordinates( x,y) of the moving ball and the coordinates of the robot(x,y) using the global, coordinates. ...i read the kalman filter...i cannot understand,, its very difficult to make a code in robojde..... do you have any idea in computation, using the cmucam to predict the ball, and about the Global coordinates ????


                      • COE
                        it s a good idea...i will try this to program in robojde...tnx....
                        Message 11 of 21 , Oct 8, 2009
                          it's a good idea...i will try this to program in robojde...tnx....

                          --- In intellibrain@yahoogroups.com, "blescohier" <bill.lescohier@...> wrote:
                          >
                          > 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.purplemath.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.
                          >
                          > -Bill
                          >
                          > --- 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....
                          > >
                          >
                        • COE
                          we use golf ball.....
                          Message 12 of 21 , Oct 8, 2009
                            we use golf ball.....

                            --- 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?
                            >
                            > Peter
                            >
                            > ----- 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.purplemath.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.
                            >
                            > -Bill
                            >
                            > --- 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....
                            > >
                            >
                          • COE SECTIONB
                            To All:    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
                            Message 13 of 21 , Oct 8, 2009
                              To All:
                               
                               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...

                              -Ike G.

                              --- On Wed, 10/7/09, Peter Chatterton <peter@...> wrote:

                              From: Peter Chatterton <peter@...>
                              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 -----
                              Sent: Tuesday, October 06, 2009 4:26 PM
                              Subject: [intellibrain] Re: Soccer Robot ...

                               

                              Take the center of the goal as (0,0).

                              y (vertical axis)
                              ^
                              |
                              0 |
                              ball |
                              |
                              <----------- --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?
                              >
                              > Peter
                              >
                              > ----- 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.
                              >
                              > -Bill
                              >
                              > --- 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....
                              > >
                              >


                            • COE SECTIONB
                              thanks to everyone....for posting your idea.....I m still accepting Idea :)...our Intellebrain can track the ball...but it can t able to move closer  to the
                              Message 14 of 21 , Oct 8, 2009
                                thanks to everyone....for posting your idea.....I'm still accepting Idea :)...our Intellebrain can track the ball...but it can't able to move closer  to the ball....it has an eye, but it has no feet....

                                -Ike G.

                                --- On Wed, 10/7/09, Peter Chatterton <peter@...> wrote:

                                From: Peter Chatterton <peter@...>
                                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 -----
                                Sent: Tuesday, October 06, 2009 4:26 PM
                                Subject: [intellibrain] Re: Soccer Robot ...

                                 

                                Take the center of the goal as (0,0).

                                y (vertical axis)
                                ^
                                |
                                0 |
                                ball |
                                |
                                <----------- --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?
                                >
                                > Peter
                                >
                                > ----- 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.
                                >
                                > -Bill
                                >
                                > --- 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....
                                > >
                                >


                              • Peter Chatterton
                                If you had unlimited resources you could make a neural network that could train itself to stop the ball. ... From: COE To: intellibrain@yahoogroups.com Sent:
                                Message 15 of 21 , Oct 8, 2009
                                  If you had unlimited resources you could make a neural network that could train itself to stop the ball.
                                  ----- Original Message -----
                                  From: COE
                                  Sent: Thursday, October 08, 2009 10:43 AM
                                  Subject: [intellibrain] Re: Soccer Robot ...

                                   

                                  we use golf ball.....

                                  --- 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?
                                  >
                                  > Peter
                                  >
                                  > ----- 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.
                                  >
                                  > -Bill
                                  >
                                  > --- 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....
                                  > >
                                  >

                                • Paul King
                                  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, the
                                  Message 16 of 21 , Oct 9, 2009
                                     
                                    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, 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 is
                                     
                                    Once 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 -----
                                    Sent: Thursday, October 08, 2009 7:49 AM
                                    Subject: Re: [intellibrain] Re: Soccer Robot ...

                                     

                                    To All:
                                     
                                     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...

                                    -Ike G.

                                    --- 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 -----
                                    Sent: Tuesday, October 06, 2009 4:26 PM
                                    Subject: [intellibrain] Re: Soccer Robot ...

                                     

                                    Take the center of the goal as (0,0).

                                    y (vertical axis)
                                    ^
                                    |
                                    0 |
                                    ball |
                                    |
                                    <----------- --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?
                                    >
                                    > Peter
                                    >
                                    > ----- 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.
                                    >
                                    > -Bill
                                    >
                                    > --- 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....
                                    > >
                                    >


                                  Your message has been successfully submitted and would be delivered to recipients shortly.