Skip to content

Public release of code for team 2496W (20-21 VRC season). Features include closed-loop PID control, sensor filtering, odometry position tracking, and light-sensor for "autoshoot" detection.

License

Notifications You must be signed in to change notification settings

Ashwin-Dara/2496W-BENJI-public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2496W-BENJI-public

This is the code for VRC team 2496W for the 20202-2021 season "Change Up", located in Irvine, California. We used the PROS CLI (3.14) developed by Purdue University to write the software of our robot, which we decided to name "BENJI." Here is the official PROS documentation to reference some of the syntax within this project: https://pros.cs.purdue.edu/v5/

Project Structure

Project Structure

The robot consists of various subsystem and the specific controllers we will be using in those subsystems are inherited. E.g., the Chassis uses a PID controller, so the PID class is inherited by the "Drive" class.

Subsystem Configurations

  • Chassis: 4 200RPM Motors with a speed gear ratio (5:3). 3.25 omni-wheels is the wheel size.

  • Indexer: 200RPM Motor running a customed printed sprocket with a 5.5 inch diameter.

  • Intakes: 2 600RPM Motors on the front of the chassis (flex wheels).

  • Fly-Wheel": 600RPM Motor running a roller on the top of our robot's tower (3.9" diameter VEX sprocket).

image

File Contents

  • main.cpp: main function as per the standard VEX project structure. Includes main operator control function.
  • Config.cpp: constructors for all of the electronics used on the robot.
  • Drive.cpp: hosts the autonomous move functions and chassis usercontrol.
  • Intake.cpp: holds the autonomous and usercontrol functions for intake/shooter subsystem.
  • MAFilter.cpp: moving average filter for the IMU.
  • Odometry.cpp: includes the drive to point function and the odometry class, which tracks the absolute position of the robot.
  • PID.cpp: PID controller class definition.
  • Point.cpp: contains X and Y make the Odometry class less cluttered. Inherited by the Odometry Class.
  • Scripts: holds the code for the different autonomous paths.

Contributors and Credits

Contributors

  • Ashwin D. (12th; 2496R, 2496J, 2496W, 2496W)

    • Odometry Functions, Point Class, Drive Functions, Moving Average Filter
  • Andres G. (10th; 2496R, 2496W)

    • Autoshoot Logic, Chassis Usercontrol, PID.cpp, Slew Movement
  • Aayush S. (9th; 8838D, 2496W)

    • Config.cpp, Tuned Autonomous Movements

Credits

https://www.cs.princeton.edu/courses/archive/fall11/cos495/COS495-Lecture5-Odometry.pdf * referenced the odometry equations

https://www.vexforum.com/t/a-pid-controller-in-robotc/20105/2 * referenced the PID controller (Jpearman's post)

https://www2.ece.ohio-state.edu/~passino/Lab3.pdf referenced for the Integral-Controller anti-windup and "slew"*

About

Public release of code for team 2496W (20-21 VRC season). Features include closed-loop PID control, sensor filtering, odometry position tracking, and light-sensor for "autoshoot" detection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published