Giter Site home page Giter Site logo

2381c-vrc's Introduction

2381C Change Up Codebase

This repository was created as part of the VEX VRC Change Up Competition for the 2020-2021 competition season, using PROS V5 as our coding platform. Mainly, the programming aspect of the competition consists of coding:

  • driver control (including macros for driving); and
  • a reliable drive pathway for the autonomous sequence and programming skills.

The purpose of this project is to achieve the above criteria for the code successfully, which means to ensure reliability, simplicity and ensure that everything works well during the competition. This is the code that will be used by team 2381C for the competition season.

This repository belongs to team 2381C from Colonel By Secondary School (Ottawa, Canada). If you have any questions or concerns regarding 2381C, please feel free to contact our team captain, Allen Tao, at [email protected]. For information regarding the codebase itself, reach out to our lead developer, Ayan Hafeez at [email protected]

Table of Contents

  1. About
  2. Theory
  3. Odometry
  4. Motion
  5. Structure
  6. Contributing

2381C Change Up Robot Reveal

About

Team 2381C is a small team from Colonel By Secondary School, in Ottawa, Ontario. To learn more about us, you can contact our team captain [email protected] or go through these links that you may find useful:

Theory

All the mathematics behind our custom motion algorithm state function, as well as odometry, is documented in extensive detail in our paper, located in the documentation folder, docs.

Odometry

Our main goal with programming this year was to implement robot position tracking to ameliorate our performance in the autonomous and programming skills periods. We’d like to thank team 5225A for open-sourcing their odometry code from In The Zone, which was tremendously helpful for the creation of this codebase. Here’s a 115 points programming skills run we were able to achieve with odometry (Note: we have been improving our programming skills since then, and in our submission videos it is a 120 points run):

2381C Change Up Robot Reveal

Our odometry loop relies on the modelling of robot motion as 2 distinct arcs, and mapping motions through vector motion on a 2d coordinate plane. For more insight into the function, please check the posTracking.cpp file in our /src folder.

Motion

Our autonomous routines rely on a combination of odometry and motion profiling, the latter of which is reliant on PID (Proportional Integral Derivative) loops to control our regular/strafe motion.

Structure

The top level repository structure is as follows:

.
├── docs				# Documentation files
├── firmware				# Generated by PROS V5
├── include				# Combination of custom and generated headers
├── src					# Source files
├── .gitattributes
├── .gitignore
├── Makefile
├── README.md				# (you're here)
├── common.mk
└── project.pros

Source code files we have added ourselves to this projected are distributed among the /include and /src folders. Our documentation is contained within the /docs folder. The remaining files and folders are generated entirely by the PROS software. The directory structure for this repository is as follows:

.
├── ...
├── include
│   ├── ...
│   ├── api.h				# PROS API generated file
│   ├── globals.hpp			# Global variables
│   ├── main.h				# PROS generated file
│   └── pid.hpp				# PID class header
└── ...
.
├── ...
├── src
│   ├── autonomous.cpp			# Macros, movement functions, autonomous path and *programming skills*
│   ├── global.cpp			# Definition of global variables
│   ├── opcontrol.cpp			# Driver control
│   ├── pid.cpp				# Definition of the PID class
│   └── posTracking.cpp			# Odometry
└── ...

Contributing

We are not accepting any community contributions. If you run through our code and see there are things we can improve, feel free to contact us or to open an issue. For new 2381C members, or for reference, here’s a link to the contribution guide: docs/CONTRIBUTING.md.

2381c-vrc's People

Contributors

allenapplehead avatar ayan-dot avatar csubmission avatar edwarddsongg avatar

Stargazers

guolin avatar  avatar Edwin avatar  avatar

Watchers

Malav Mehta avatar

2381c-vrc's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.