The EngiNERDs' robot code for the 2013 FIRST Robotics Competition, and the game, Ultimate Ascent.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
FRC SimulatedRSC/ive
.gitattributes
2013 Dashboard Project.aliases
2013 Dashboard Project.lvlps
2013 Dashboard Project.lvproj
2013 Robot Project.aliases
2013 Robot Project.lvlps
2013 Robot Project.lvproj
App EXE.ico
ArmMovementPracticeData.xlsx
Autonomous Independent.vi
Begin.vi
Build Simple Skeleton Data.vi
DStoPCPacketTypeDef.ctl
Dashboard Main.vi
Decode Status Byte.vi
Disabled.vi
Draw Simple Skeleton Picture.vi
Elapsed Times.vi
FPS Calculator.vi
FRC Simulated.xml
Finish.vi
Get All Users Directory.vi
NonRobotDebugger.vi
PalardyGainSchedule.vi
PalardyPI.vi
Parse Digital Module.vi
Periodic Tasks.vi
PotRounding.vi
README.md
READMEauto.md
Receive DS Packet.vi
Robot Global Data.vi
Robot Main.vi
Robot Simulation Readme.html
Save DB Images.vi
SmartDashboardInsidePeriodicTasks.vi
Teleop.vi
Test.vi
Vision Processing.vi
VisionRobotWrapper.vi
WPI_CompressorControlLoopCRACKED.vi
armControl.vi
auto0Troy.txt
auto2.txt
auto3DiscDriveBack.txt
auto4.txt
auto5DiscOppositeSideDriveOnly.txt
auto5DiscSameSideDriveOnly.txt
auto5SameSide.txt
auto5disc.txt
auto7Disc.txt
auto7DiscDrivetrainOnly.txt
autoBackOfBackOfPyramidFinal.txt
autoDestroyFunction.vi
autoFrontOfBackOfPyramidFinal.txt
autoGetIOData.vi
autoGetSetLabels.vi
autoMain.vi
autoMaintainCurrentInstructions.vi
autoMotionProfileGenerate.vi
autoMotionProfileMain.vi
autoRelativeToAbsolute.vi
autoRemoveDeadFunctions.vi
autoSelectData.vi
autoStartFunction.vi
autoUnpackFile.vi
config.ini
configFileParser.vi
configPractice.ini
digitalIODump.vi
driveCheesy.vi
finalEndMSC.txt
internalVariables.lvlib
pidGrapher.vi
refShootingSequenceWithBumpers.txt
shooterBangBang.vi
shooterPID.vi
shooterReleaseControl.vi
visionBothScrpits.vascr
visionDisc.vi
visionTarget.vi
writeToLogFile.vi
xpr5discacross.txt

README.md

alt text

Here is Team 2337�s robot, Crossfire, for the FIRST Robotics Competition's 2013 Game: Ultimate Ascent.

Extensive robot photos taken by Daniel Ernst, and a couple of team members can be found on the team Google+ page. All of our match videos from inside Michigan are available via the First in Michigan YouTube channel.

Any comments and questions are welcome (see the Chief Delphi discussion).

Robot CAD will be uploaded to FRC-Designs (README will be edited to reflect link when it is uploaded).

Software highlights:

  • LabVIEW robot project managed with git and hosted by GitHub. During build season, different projects had different branches, and then we completely manually merged code by hand.
  • Cheesy Drive an RC-style drive system where throttle and steering are on separate joysticks on the same gamepad
  • For intake belt system control, a simple state machine with different states commanded by operator
  • Bang-bang shooter speed-control with a unique bottom gain, tuned for specific speeds
  • Straight autonomous driving tracking the gyro and gyro turns for the 7 and 5 disc autonomous modes
  • Data logging to text file that can be retrieved via the cRIO FTP server. Tracks shooter speed and arm position for checking shots.
  • Last year's autonomous scripting system with a trapezoidal motion profile algorithm implemented inside (not used in competition)
  • Dashboard-based vision processing (not used in competition)
  • Small usability improvements (from our perspective) NERDViewer.html (from FRC254's 2012 code release's PoofViewer.html) for driver/operator/coach viewing (not used in competition)

Robot features:

  • Four-CIM, SuperShifter-driven drivetrain in an octagonal shape using the 48/50/60 gearset (slimmed down), direct driven to the center four 4� VexPro VersaWheels, and chained out to the same, inline 4" VexPro VersaWheels. Speed should be around 7.5 and 14.5 fps. This is underpinned by our first sheetmetal chassis at 1/8" inch, with a bottom waterjetted piece and the rest milled.
  • From the ground disc intake, with two top rollers driven by a BAG motor through a 4:1 VexPlanetary through O-rings. The disc would be lifted off the ground slightly by a lexan lip, and then once the roller made contact, the lip would actuate upward with the disc to keep it moving.
  • A large arm driven by a linkage similar to FRC67 from 2007 and FRC148 from 2011. Powered by a MiniCIM, through a custom transmission at 335:1 inside the gearbox and through a wire EDM�d central gear (which had a ratio of 12:100 for a final ratio of 2790).
  • On the arm, a rubber-band disc management system with an upper tray to transfer discs to the two lower trays. The top part and bottom parts are driven separately, each by a AM 550 through a VexPlanetary at a 5:1 and then through timing belts.
  • A double-shooter that can shoot two discs out at once, or one at a time. Each shooter is a single AM 8� pneumatic wheel with about 90 degrees worth of wrap on the disc. The two wheels are direct-driven together by four BaneBot 550s paired together in CIMulators.
  • Two lexan hooks for hanging from level 1, each powered by a pneumatic cylinder and extra rubber banding.
  • Large lexan hood attached to arm for feeder station loading and blocking shots while the robot stays below 60".
  • Attachable blocker that folds down with the arm, and rises up to ~80" (first used at Worlds).

We didn't look too hard at automated LabVIEW tools for diff and merges - any recommendations would be appreciated. Manual merges were inefficient, not fun, and resulted in refnum naming problems later on. We gave up branching after build season, when a lot of development and tuning happened at competitions, where only one or two programmers were involved, and they would simply work off of the master branch.

2013 Competition Season Performance:

  • Kettering District Quarterfinalists, seventh alliance - second pick, ranked 26th, Engineering Excellence Award
  • Troy District Quarterfinalists, sixth alliance - first pick, ranked 12th, District Chairman�s Award
  • Bedford District Semifinalists, third alliance - second pick, ranked 35th, Gracious Professionalism Award
  • Michigan State Championship Finalists, first alliance - second pick, ranked 52nd, State Chairman�s Award
  • Championship - Galileo Division Semifinalists, third alliance - second pick, ranked 46th