Version 34 (modified by 9 years ago) (diff) | ,
---|
Control Systems/ Software Training Curriculum
Guiding Principles
- Students hate lecture style teaching. Better to be hands on. Avoid powerpoint lectures.
- Students have a wide variety of skill levels. Take care not to cater to any one particular level.
- Not all students go to all sessions (due to family conflicts, etc).
- Make sure to coordinate/ review with Software Lead and validate with Seniors.
The Plan
The basic plan is that there there are three technical skill levels that build on their predecessors. Not all students start at level one. Idea: If we come up with 3-5 activities at each level we can mix and match.
Immediate needs
- Get the development robots (peanut, notchbot, atlas) finished and driveable
- If we are going to use FRCSim - some laptops with Ubuntu and FRCSim installed
- Identify the challenges and activities for the first 4 weeks.
BoB/IROC competition preparation (experienced students)
- Climber integration
- Shooter improvements
- Autonomous navigation/operation
Skill Level 1: Students new or beginners at Java programming (Robocode)
- Software fundamentals.
- Java Programming Basics
- Computer focused.
- Individual Challenges/ Competition
- Learn to compile and run Java
- Eclipse Basics
- For while loops,if statements, functions.
- Emphasis on Individual Challenges/ Competition.
- Supplement with online training resources (on student's own time)
- Zhaozhou running point on this skill level.
- Action: Talk to dev lead, identify dependencies (machines?), create a few exercises on Robocode. See something working, change it, create something new.
- Set up robocode environment.
- Show idea/walk them through it.
- Have them make changes.
- Custom activity/challenge: Battle Royale?
Skill Level 2: Familiar with simple programming, no embedded/io/robot experience (Minibots)
- Pibots
- Bots are fully built up front with OS installed. A bit of risk given timeline.
- Basic bot / hardware familiarization (This is power, this is control, different parts)
- Basic IO manipulation with Java
- Drive manipulation/autonomous without sensors with Java
- Sensor manipulation with Java
- Integration Challenges
- Small Team
- Chris D running point on this skill level (Alan helping).
- Action: Build minibot. Come up with exercises like above.
Skill Level 3: Familiar with embedded java/simple robots (Midbots/ peanut/ roborio/ wpilib)
- Roborio
- Frcsim
- Wpilib
- Alan running point on this skill level.
- Action: Get simulator running, figure out what there is to teach from Student Software Lead.
- Challenges:
- Autonomous navigation (navigate an increasingly difficult course)
- PID control (balancing something e.g. on an arm, constant speed despite terrain, etc.)
- Vision/targeting
- Shooting/grabbing/lifting/driving
Safety
- All students take safety class.
Software Development
- Git
- Testing (Blackbox/ Clearbox)
- Phases of Software Development
- Basic Design
- Problem Solving/ Debugging
- Teambuilding
- All students take software dev class
- Student to teach git (Alex)
- Block diagrams flow charting
- OOA&D
- Problem Solving/ Broken Code (Fix some code?)
Sensor Deep-Dive
- Can we mesh in the Ardinuo stuff?
- Encoders
- Switches
- IR reflectors/interrupters
- Ultrasonic
- LIDAR
- Accelerometer/9DOF
- Cameras/vision