frc-4931 / 2014-Design

The files, issues, wiki pages, etc. for the design of our 2014 FIRST Robotics Competition robot
MIT License
1 stars 0 forks source link

Create the real non-prototype program for our competition robot #25

Closed rhauch closed 10 years ago

rhauch commented 10 years ago

So far we have several prototype programs and one program used for testing. We need to create a program that we'll use for our competition robot, and it should use the command-style design.

Zabot commented 10 years ago

Master is getting a bit cluttered, can we branch it and keep the old stuff on the branch? Then we can have just the competition code on the master branch.

rhauch commented 10 years ago

It's not really a good idea to use branches for that purpose. It would be better to just create another project folder for the competition robot.

Part of the difficulty is that the WPILib library (and the Ant build scripts) make it really difficult to put reusable code into our own library. (This is really easy in Eclipse, but getting WPI's build scripts to recognize that is a much harder task.) If we could do this, then we could put some of our classes like our Joystick and FlightStick into this library so they could be reused on multiple robot programs.

Zabot commented 10 years ago

What benefits does the command-style produce? I haven't really looked at it, but from what I gleamed while trawling through PrototypeKicker, it seems like more of a hassle. It would make sense if we intended to do more in autonomous mode, but for teleop, I would think methods would suffice.

rhauch commented 10 years ago

The command-style is a lot more flexible. Yes, on the PrototypeKicker it was overkill, and added a lot of complexity than benefits.

See the PrototypeCommandDriveRobot's README for an overview of the command pattern and its benefits.

We absolutely want to use the command-style for our competitive robot.

rhauch commented 10 years ago

It might be easiest to copy the PrototypeCommandDriveRobot project, change the name, then configure the DriveTrain to use the correct motor controllers, use the proper joystick(s), buttons, etc. The commands will likely change, though I wouldn't remove any of them yet.

It might even be worth creating a separate robot project for the original robot, or perhaps renaming the PrototypeCommandDriveRobot for this purpose. It will have different controllers, inputs, commands, etc. than the competition robot.

rhauch commented 10 years ago

Rebased and merged @Zabot's PR (see above). Great work.