Changes between Version 3 and Version 4 of ControlSystemsMentoring


Ignore:
Timestamp:
May 1, 2016, 1:08:30 PM (9 years ago)
Author:
David Albert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ControlSystemsMentoring

    v3 v4  
    1212
    1313'''Training'''- Control Systems students have widely varying levels of software development experience ranging from never having written a line of code to remarkably sophisticated (like a strong undergraduate CS student).  During the pre-season, mentors should work with the student leads to divide the team into groups based on their experience levels and map out the pre-season training activities that will best help each group.  For example, new students need to learn Java, learn about sensing/sensors, and learn about the basic robot development environment (RoboRio, WPILib).  Students focusing on sensors should learn to read datasheets, the basics of digital interfacing.  More advanced students should learn PID control and build skills with machine vision, autonomous navigation, targeting, etc.  Training should be '''overwhelmingly''' hands-on with as little power-point/chalkboard as possible; the students have spent all day in classrooms and respond much better to activities (and they are more fun).  Activities:
    14      * Arduino/mini-bots - there is a lot of existing training material on this wiki that uses inexpensive Arduino single-board computers to teach basic programming (in C), electronics and sensor interfacing.  There are also several mini-robots that use Arduino controllers and can be programmed  used to explore autonomous robotics.  These exercises were well received by students, but because the competition environment is very different (Java, !RoboRio, WPILib), these exercises have limited transferability to competition robot skills, but they are better than nothing if more suitable hands-on training platforms are not available.  The mini-bots are small and safe and the students can use them without supervision.
    15      * Competition-bot trainers - there are (or should be) several cut-down robot platforms from prior years that are great environments for training.  These robots include a RoboRio (the standard linux single board computer required as the robot controller for competition) and the same electronic subsystems and mechanical drive bases used for competition.  Competition bot trainers allow students to train in the same environment used for competition which is ideal, but the competition bots are large and can be dangerous; they should only be used by experienced students and generally require mentor supervision.
     14     * Arduino/mini-bots - there is a good deal of [wiki:ArduinoDevelopment existing training material] that uses inexpensive Arduino single-board computers to teach basic programming (in C) and basic electronics/sensor interfacing.  The team owns many Arduinos and training kits as well as several mini-robots that use Arduino controllers and can be programmed to explore autonomous robotics.  The mini-bots are small and safe and the students can use them without supervision.  These exercises were well received by students, but because the competition environment is very different (Java, !RoboRio, WPILib), have limited applicability to competition robot skills.  They are good for learning about sensors and having fun, but there are better training platforms.
     15     * Competition-bot trainers - there are (or should be) several cut-down robot platforms from prior competitions that are great for training.  These robots include a !RoboRio (the standard linux single board computer required as the robot controller for competition) and the same electronic subsystems and mechanical drive bases used for competition.  Competition bot trainers allow students to train in the same environment used for competition which is ideal, but the competition bots are also large, powerful, and can be dangerous; they should only be used by experienced students and generally require mentor supervision.
    1616     * FRCSim: a sophisticated simulator is available [https://wpilib.screenstepslive.com/s/4485/m/23353 here] that allows students to write software using the standard development environment and run their software on a robot in an advanced 3D simulation.  Students can drive the robot, manipulate objects, and test software algorithms.  This is a great tool for students to learn the WPILib environment, but requires a fairly powerful computer running Ubuntu linux (attempts at getting it to run well in a VM have so-far been unsuccessful).  Students can control the simulated robot using X-box or similar controllers and Joysticks much the same way as a competition robot.
    1717     * Modular control platforms (aka !BrainBox) have been proposed and would consist of a !RoboRio and electronics package suitable for control of a generic robot.  These platforms could be used for training, mechanism development, and eventually placed on robots as modular control packages.  These would allow students to develop software for and test individual mechanisms without as many safety concerns as are introduced by large mobile robots.
    1818
    19 
    20 
     19Topics students should learn include:
     20* Java
     21* Basic sensors
     22   * encoders
     23   * limit/proximity switches (mechanical, magnetic, optical)
     24   * ultrasonic and LIDAR distance sensors
     25* Robot Hardware Environment
     26   * !RoboRio
     27   * Drive Station
     28   * Power Distribution Panel
     29   * Talon SRX motor controllers
     30   * Safety features (fuses, lights, switches)
     31   * Optional: [https://www.arduino.cc/ Arduino] and [https://www.raspberrypi.org/ Raspberry Pi] auxiliary processors
     32* Robot Software Development Environment
     33   * Eclipse
     34   * WPILib
     35       * Command-based robot
     36       * Operator Interface
     37       * Robot Main
     38       * Robot Subsystems
     39       * DIO inputs ([https://wpilib.screenstepslive.com/s/4485/m/13809/l/241875-encoders-measuring-rotation-of-a-wheel-or-other-shaft Encoders], [https://wpilib.screenstepslive.com/s/3120/m/7912/l/85635-using-counters Counters and PWM input], etc.)
     40       * PWM outputs e.g. [https://wpilib.screenstepslive.com/s/4485/m/13809/l/241860-repeatable-low-power-movement-controlling-servos-with-wpilib servo control]
     41       * Intelligent motor control via [http://www.ctr-electronics.com/talon-srx.html#product_tabs_technical_resources CANTalon] [https://www.ctr-electronics.com/Talon%20SRX%20Software%20Reference%20Manual.pdf# manual] [http://first.wpi.edu/FRC/roborio/release/docs/java/edu/wpi/first/wpilibj/CANTalon.html# javadoc]
     42* Software techniques
     43   * PID closed loop control
     44   * Autonomous navigation (using encoders, 9DOF, etc.)
     45   * Targeting systems (using LIDAR, color sensing, etc.)
     46   * I2C, SPI, Asynch communications
     47   * Machine vision (using [http://opencv.org/ OpenCV]
     48