Version 40 (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/Jill? 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?
- (Setting_Up_Robocode)
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
- Alan running point on this skill level (Chris D 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
- Jason 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
- "Bob taking point on this"
- Git
- Peer reviews
- Testing (Blackbox/ Clearbox)
- Phases of Software Development
- Basic Design
- Problem Solving/ Debugging
- Teambuilding
- All students should take this?
- Student to teach git?
- 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
Student Training/Activity? Ideas
Level 1: Robocode
- Battle Royale: Design own bot to win!
Level 2: Minibots
- Wheres my dinner? Have the minibot transport me a bag lunch in the next room.
- King of the Hill! Stop a robot on a landing on a top of a ramp at specific point.
Level 3: Midbots
- Develop wpilib like interface for midbots
- Go through code of current bot, discuss design
- Figure out FRCSim
- Mobile app to control minibot via Bluetooth
Software Engineering
- Classic OOA&D decomposition
- Find the error. Take turns breaking the code, using git toolset to figure out what happened
- Mock peer review
Sensor Crosstraining
- Study/ Try out common sensors
- Apply minibot ultasonic sensor
- Apply install minibot 9DOF sensor
Electrical Crosstraining
Mechanical Crosstraing
- design and 3D print a carry / table assembly for the minibot
- design and make a simple gripper/manipulator for the minibot