public void robotInit() {
        driveTrain = new DriveTrain();
        shooter    = new Shooter();
        tilter     = new Tilter();
        tomahawk   = new Tomahawk();
        ledStrip   = new LEDStrip();
        vision     = new Vision();
        // Initialize OI last so it doesn't try to access null subsystems
        oi         = new OI();

        // The names, and corresponding Commands of our autonomous modes
        autonomiceNames = new String[]{"Rainbow Dance Party!", "Just shoot", "Shoot through Pyramid"};
        autonomice = new Command[]{new SetModeRainbowDanceParty(), new JustShoot(), new PyramidShoot()};

        // Configure and send the SendableChooser, which allows autonomous modes
        // to be chosen via radio button on the SmartDashboard
        System.out.println(autonomice.length);
        for (int i = 0; i < autonomice.length; ++i) {
            chooser.addObject(autonomiceNames[i], autonomice[i]);
        }
        SmartDashboard.putData("Which Autonomouse?", chooser);

        // Put the Shooter PID on the dashboard so it can be enabled and stuff
        SmartDashboard.putData("Shooter PID",shooter.getPIDController());
        SmartDashboard.putBoolean("Lower shooter speed",false);
        
        // To make sure the Accelerator is running
        shooter.enable();
        // To make sure it isn't accelerating
        new SpinDown().start();
        
        // Send sensor info to the SmartDashboard periodically
        new Command("Sensor feedback") {
            protected void initialize() {}
            protected void execute() {
                sendSensorData();
                SmartDashboard.putNumber("Wheel Speed (RPM)", shooter.getSpeedRpm());
            }
            protected boolean isFinished() {
                return false;
            }
            protected void end() {}
            protected void interrupted() {
                end();
            }
        }.start();
    }