MOving toward a circle with camera code

Hello all,

I am trying to make a robot move toward a circle, then when it’s close enough, it kicks, shooting a ball into the goal.

How do I do this?


(I’m the new guy)

I’m interested in this as well. Our team is thinking about switching over to JAVA and I was wondering how that would look like.

-Dustin Shadbolt

I don’t have the FRC Java tools installed to confirm this, but I believe there is a sample you can find in the new project dialog which shows this using the gyro and camera.

it doesn’t go autonomously

I’m looking at the sample, and it appears it should track the target left to right, but not produce any forward movment.

The first thing to do is make it drive forward. The simplest way to do this is to change line 48 of CircleTrackerDemo to, where forward_speed is a constant representing the forward speed.

drive.arcadeDrive(**forward_speed**, output);

Once that works you need to make it stop. There are a few ways to do that, one way is to do something like this at line 127 of the same file:

if (targets[0].m_yPos > someValueToIndicateHeightOfTheTarget)

if (targets[0].m_majorRadius > someValueToIndicateTheSizeOfTheTarget)

when ... is 
    //do stuff other than drive.
else {
    turnController.setSetpoint(gyroAngle + targets[0].getHorizontalAngle());

You could expand this to use PID to slow down as approaching the target distance, back away if too close, etc, but that is more advanced.

Once you have this working you could make it run in autonomous mode by moving the contents of the else, starting at line 99 in the sample, into the autonomousPeriodic function at line 73.