|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
Autonomous Help
I wanted to know how to make a motor wait and then move in autonomous.
Autonomous Code So Far: Code:
public void autonomousPeriodic()
{
ShooterFront.set(50);
ShooterBack.set(50);
//Wanted to add 3 second wait
servo.setAngle(90);
//Wanted to add 3 second wait
servo.setAngle(180);
//Wanted to add 3 second wait
servo.setAngle(90);
//Wanted to add 3 second wait
servo.setAngle(180);
//Wanted to add 3 second wait
servo.setAngle(90);
//Wanted to add 3 second wait
servo.setAngle(180);
}
|
|
#2
|
||||
|
||||
|
Re: Autonomous Help
Are you using the Command-Based template? Create a command for each thing you want to do, then string them together with a Command Group.
In RobotMain Code:
private Command autonomousCommand;
public void autonomousInit() {
autonomousCommand = new Auton0();
autonomousCommand.start();
}
public void autonomousPeriodic() {
Scheduler.getInstance().run();
}
Code:
public class Auton0 extends CommandGroup {
public Auton0() {
addSequential(new SetFrontSpeed(50);
addParallel(new SetBackSpeed(50);
addSequential(new SetAngle(90));
addSequential(new WaitCommand(3));
addSequential(new SetAngle(45));
etc. etc.
}
Last edited by F22Rapture : 03-03-2013 at 23:24. |
|
#3
|
||||
|
||||
|
Re: Autonomous Help
I'm writing in Iterative Template
|
|
#4
|
||||
|
||||
|
Re: Autonomous Help
Hey maybe this can be some help.
public void autonomousPeriodic() { ShooterFront.set(50); ShooterBack.set(50); Timer.delay(3.0); servo.setAngle(90); Timer.delay(3.0); servo.setAngle(180); Timer.delay(3.0); servo.setAngle(90); Timer.delay(3.0); servo.setAngle(180); Timer.delay(3.0); servo.setAngle(90); Timer.delay(3.0); servo.setAngle(180); } The Timer.delay(); sets the amount of time to wait before the execution of the next string of code. |
|
#5
|
|||||
|
|||||
|
Re: Autonomous Help
Just as a warning, you currently have 18 seconds of waits for a 15 second autonomous period. Once you get it tested you'll probably want to trim down some of the wait times if you can.
|
|
#6
|
||||
|
||||
|
Re: Autonomous Help
Quote:
|
|
#7
|
||||
|
||||
|
Re: Autonomous Help
They are in this example, they're never set to stop.
|
|
#8
|
||||
|
||||
|
Re: Autonomous Help
They both will. The delay will leave both at the levels they were set at.
|
|
#9
|
||||
|
||||
|
Re: Autonomous Help
It won't stop. It would only stop if you threw ShooterBack.set(0.0); in there some where. Also are you using jaguars for the motor controllers?
|
|
#10
|
||||||
|
||||||
|
Re: Autonomous Help
Quote:
Code:
double startTime;
public void autonomousInit() {
startTime = Timer.getFPGATimestamp();
}
public void autonomousPeriodic() {
if ((Timer.getFPGATimestamp() - startTime) < 3000)
{
ShooterFront.set(50);
ShooterBack.set(50);
}
else if ((Timer.getFPGATimestamp() - startTime) < 6000)
{
servo.setAngle(90);
}
else if ((Timer.getFPGATimestamp() - startTime) < 9000)
{
servo.setAngle(180);
}
}
|
|
#11
|
||||
|
||||
|
Re: Autonomous Help
I will try that and let you know if it works.
|
|
#12
|
|||||
|
|||||
|
Re: Autonomous Help
I'll send you a copy of my code tomorrow but I use a state machine switch case in which I create a timer instance. Start it. and compare if the timer is greater than 100 microseconds. if it is move to the next case in the switch, reset the timer, start it again, chose the next amount of wait time needed, compare the value of the timer until it is greater than or equal to the new wait time. and repeat. It's easier to understand what I do once you see my code.
|
|
#13
|
||||
|
||||
|
Re: Autonomous Help
It worked for my team last year and this year and we use the Iterative framework. You just have to use up the full 15 seconds or tell it to do nothing when your done executing everything or it will start over.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|