![]() |
Autonomous mode help
`Ok so i require help with autonmous mode please!!!
void Autonomous(void) { GetWatchdog().SetEnabled(false); myRobot.Drive(0.0 , 0.0 ); Wait(0.0); myRobot.Drive(0.0, 0.0); } we have tank drive how would i edit this if i wanted to drive forward at half speed for 3 seconds then turn right for 1 second then drive foward full speed |
Re: Autonomous mode help
Have you read the "Getting started guide" in the WPILib documentation found here to try to understand what Drive() and Wait() do?
You should find the "Creating a Robot Program" starting on page 17 useful http://first.wpi.edu/Images/CMS/Firs...artedWithC.pdf |
Re: Autonomous mode help
Well i did i just want an example , of that, to see if what i want to do is correct cause i am kinda confused right now using the links you gave me
|
Re: Autonomous mode help
As I tell my students, if you're confused, ask a question that will get you unconfused. There are plenty of people here that are willing to help and answer questions. You won't learn anything if you're simply just given the answer.
The code that is in the getting started document starting at page 17 has an example autonomous program similar to what you're looking for. Look at the example on page 18 (example 5). The comments in the code spell out exactly what is going on. Try to see how the numbers in the comments map to the numbers in the code. Then go back to your original question and see how you can modify those numbers to do what you want them to do. Keep in mind, their RobotDrive object is called drivetrain while yours looks like it's called myRobot. If you're still confused about what Drive() and Wait() do, read the comment in the the WPILib source code. I'll include the comments and prototypes here for reference. From RobotDrive.cpp Code:
/**Code:
/** |
Re: Autonomous mode help
try this
RobotDemo() { GetWatchdog().SetEnabled(false); } Example 4: Disabling the watchdog timer Now the autonomous part of the program can be constructed that drives in a square pattern: void Autonomous() { for (int i = 0; i < 4; i++) { drivetrain.Drive(0.5, 0.0); // drive 50% of full forward with 0% turn Wait(2.0); // wait 2 seconds drivetrain.Drive(0.0, 0.75); // drive 0% forward and 75% turn } Drivetrain.Drive(0.0, 0.0); // drive 0% forward, 0% turn (stop) } Example 5: Autonomous program that drives in a square pattern Now look at the operator control part of the program: void OperatorControl() { while (1) // loop forever { drivetrain.TankDrive(leftStick, rightStick);// drive with the joysticks Wait(0.005); } } Example 6: Simple tank drive with two joysticks Putting it all together we get this very short program that accomplishes some autonomous task and provides operator control tank steering: #include “WPILib.h” class RobotDemo : public SimpleRobot { RobotDrive drivetrain(1, 2); Joystick leftStick(1); Joystick rightStick(2); public: RobotDemo() { GetWatchdog().SetEnabled(false); } void Autonomous() { for (int i = 0; i < 4; i++) { drivetrain.Drive(0.5, 0.0); // drive 50% forward, 0% turn Wait(2.0); // wait 2 seconds drivetrain.Drive(0.0, 0.75); // drive 0% forward and 75% turn Wait(0.75); // turn for almost a second } drivetrain.Drive(0.0, 0.0); // stop the robot } void OperatorControl() { while (1) // loop forever { drivetrain.Tank(leftStick, rightStick); // drive with the joystick Wait(0.005); } } }; Example 7: Completed example program Although this program will work perfectly with the robot as described, there were some details that were skipped: In the example drivetrain,leftStick and rightStick are member objects of the RobotDemo class. They were accessed using references, one of the ways of accessing object members. In the next section pointers will be introduced as an alternate technique. The drivetrain.Drive() method takes two parameters, a speed and a turn direction. See the documentation about the RobotDrive object for details on how that speed and direction really work. The Watchdog timer was disabled – in general a bad idea! You should enable the watchdog timer, set the feeding interval, and be sure to “Feed” it at least that often. |
| All times are GMT -5. The time now is 02:02. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi