Changes between Version 37 and Version 38 of ControlSystems/SoftwareTeam/Training


Ignore:
Timestamp:
Oct 31, 2019, 8:10:50 PM (6 years ago)
Author:
David Albert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ControlSystems/SoftwareTeam/Training

    v37 v38  
    1 = Self Study =
     1== Overview =
    22For new students, mentors, and students on other sub-teams, these links provide an overview of what the Control Systems team does and how it does it.  The goal is to provide a clear understanding of the terminology you will encounter in FRC, what goes into controlling a robot, and an appreciation for how software works (without actually learning to program).
    33
    44 1. [wiki:SoftwareOverviewControl Overview]
    55 1. [wiki:SoftwareOverviewComponents Intro to Control System Components]
    6  1. [wiki:ControlSystems/SoftwareTeam/Training/GettingStarted Getting Started] (rookies start to learn programming here)
    76
    8 == Java ==
    9 All robot programming is done in the Java programming language.  See [wiki:Software/WhyJava here] for why we program in Java. If you don't know Java yet, these training links will help:
     7== Getting Started ==
     8New software students and mentors should start [wiki:ControlSystems/SoftwareTeam/Training/GettingStarted here]
    109
    11  * [wiki:BeginnerSoftwareVideos Java Tutorial Videos]
    12  * [http://www.sololearn.com/Play/Java/# Sololearn]  Computer Based Java Training
    13  * [wiki:JavaWPI_Training Java Training]: links to several other tutorials which help teach Java
    14  * [wiki:SoftwareTrainingBeginner Beginning Exercises]
    15  * [wiki:ProgrammingPrompts Training Prompts]: more Java programming exercises
    16  * [wiki:Exercises Object Oriented Programming]
    17  * [https://tutorial.cytron.io/2012/06/22/pid-for-embedded-design/ PID Tutorial]
     10== Intermediate Training ==
     11After you've completed Software 101, deepen your knowledge of Java and WPILib [wiki:ControlSystems/SoftwareTeam/Training/Intermediate here]
    1812
    19 == Robocode ==
    20 Once you have a solid foundation in Java, you can use the Robocode to hone your skills in a fun way.  Robocode creates a virtual robot arena on your computer where you can program virtual robots and battle them against pre-programmed robots supplied with the simulator or robots programmed by your friends.
    21 
    22  * [wiki:Setting_Up_Robocode Robocode Resources]
    23  * [http://robowiki.net/ Robowiki]
    24 
    25 Interested in a fancier challenge courtesy of MIT?  Try [https://www.battlecode.org/#/ BattleCode]
    26 
    27 == Python Programming ==
    28  * [wiki:ControlSystems/SoftwareTeam/IntroToPython Intro To Programming] (in python)
    29 
    30 
    31 == Java Interfacing ==
    32 Robots operate real world and must be able to sense their environment and manipulate it.  The !ZebraZero platform and exercises help you learn to use Java to interface with sensors and control motors [[BR]]
    33 
    34  * [wiki:ZebraZeroTraining Zebra Zero Training]
    35 
    36 == WPILib ==
    37 When you've mastered Robocode and are ready to start programming FRC robots, you'll need to set up a suitable development environment, learn how to access the robot software, understand the WPILib environment, and learn how to load and run code on a robot.
    38 
    39  * Basic
    40    * [http://wpilib.screenstepslive.com/s/currentCS/m/java ScreenStepsLive] describes the process; you can also follow some video tutorials: [https://www.youtube.com/watch?v=OyOcsmkp-uk here] or [https://www.youtube.com/watch?v=dNXu97q08uI here] or [https://www.youtube.com/watch?v=tlZexc02TTc here]
    41    * STEMRobotics has a nice tutorial [http://stemrobotics.cs.pdx.edu/node/4196 here]
    42    * Building your first robot with [https://www.youtube.com/watch?v=hbPVbdkpkls RobotBuilder] or see [https://www.youtube.com/watch?v=ef-jqacGUFU here]
    43    * Video tutorial: your first (iterative) robot program [https://www.youtube.com/watch?v=pZkDhVKDG-g here]
    44    * For the brave: a 1-hour '''comprehensive''' [https://www.youtube.com/watch?v=tR8wtXd2Ack Crash Course] in FRC programming in Java.
    45    * [https://wpilib.screenstepslive.com/s/currentCS/m/java/l/1027801-creating-your-benchtop-test-program FRC World] - the simplest robot example
    46 
    47  * Intermediate
    48    * [http://wiki.team2537.com/wiki/Setting%20Up%20Git Setting up git] Setting up the Git DVCS (how to access the robot code)
    49    * [wiki:SoftwareTrainingIntermediate Intermediate Training]
    50  * Advanced
    51    * [wiki:AdvancedTraining Advanced Training]
    52 
    53 = Lessons =
    54  * Schedule for Rookies
    55    * Week 1 - Programming Intro - Online Tutorial with help from mentors and members
    56    * Week 2 - Hello Robot - Based on Demo Program - Tank control on Peanut Bot
    57    * Week 3 - Turbo Robot - Use Button to stop or speed up the Peanut Bot
    58    * Week 4 - Arcade Control - Modify program for control the Peanut Bot with single joystick
    59    * Week 5 - Encoders - Use Encoder to drive forward 1m in Autonomous Mode.
    60    * Week 6 - Drive Straight - Use Encoders in both wheels to normalize speed between the motors to drive straight
    61    * Final 4 Weeks - [wiki:SoftwareTrainingObstacleCourse Obstacle Course] - Use Encoders, Ultrasonics, and Limit Switches to navigate a simple obstacle course
     13== Advanced Topics ==
    6214
    6315=== Future Planning ===