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.
- Many students do not attend every meeting (due to conflicts with sports, band, family obligations, etc).
- Make sure to coordinate/ review with software leads
The Plan
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
- Identify the challenges and activities for the first 4 weeks.
BoB/IROC competition preparation (experienced students)
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 0: Basic Java
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 (can be done with a single servo motor)
Last modified 8 years ago
Last modified on Sep 2, 2017, 5:09:48 PM