Team 7323’s robotcode

Overview

CI

robotcode2022

What the project does:

This First Robotics project contains the code for Team 7323’s robot.

Why the project is useful:

This project, originally a FRC sample, can serve as a base for other projects revolving around FRC robots. It contains the code for the basic functions of intake motors, drivetrain motors, shooting motors, etc.

How to get started:

Follow this to get your computer setup with all of the FRC software. Once everything is setup, you can clone this repository, and open the folder in 2022 WPILib VS Code.

Where users can get help with your project:

FRC Java Documentation

This project's Documentation

How to Contribute

Typical git development involves the following steps:

  1. Clone the repository you want to change:
    • git clone repository
  2. Checkout new branch to make your changes on:
    • git checkout -b my-new-branch
    • usually the name of the branch should describe its purpose (i.e. add-readme would be a great branch name)
  3. Commit changes locally to your new branch:
    • git add .
    • `git commit -m "my really awesome feature"
  4. Push local changes to remote repositry (github):
    • git push
  5. Make pull request on github:
    • in the browser, go to github.com and go to the Pull Request tab

Who maintains and contributes to the project:

Andres Nedilskyj and Julian Tuazon

Comments
  • make first 0.1.0 release as a baseline

    make first 0.1.0 release as a baseline

    In software development releases are everything and help you keep track of existing features, new features and even bugs (e.g. if a bug has existed in previous releases too).

    The best way to do releases is with the basic git tag approach. Tagging code allows you to plant a flag in the ground and say "this is the features that exist at this point in time". Once you tag the code, you release the tag and let everyone (e.g. other teams, customers, etc.) use that release while you (the software team) continue working in the background on the next release.

    Basic tagging workflow goes like this:

    1. Confirm the code you have at the current git commit works as expected at that moment in time
      1. unit tests / integration tests can automate this step (and give you logs to prove it 😄)
      2. We already have sort of done this manually in #2
    2. Record what current features exist in a CHANGELOG file and commit it
      1. We will update this CHANGELOG just before each new release going forward to keep track of whats changed / whats been added
      2. Some people also call this file release-notes if you want, essentially its the same thing
    3. Once the CHANGELOG has been updated and committed, create the tag with git tag 0.0.1
      1. Semantic Versioning is generally the standard so it goes major.minor.patch
      2. Major: usually incrementing this means breaking changes were made to the code or lots of new features
      3. Minor: usually incrementing this means minor updates / fixes / enhancements were made since the last release
      4. Patch: usually incrementing this means just patches / fixes to existing code were made
      5. Example: 0.1.0 would be a good first release number, 0.1.1 would be a good patch number, 1.0.0 would be a good first stable / feature complete release
    4. After tag is created locally, push it to the remote repo with git push --tags
    5. After that, the tag should show up on the repo under releases / tags
    6. From there, you can use github in the browser to upgrade a tag to an official release
    opened by flynneva 3
  • How to contribute to `main` and push changes

    How to contribute to `main` and push changes

    How to Contribute

    Typical git development involves the following steps:

    1. Clone the repository you want to change:
      • git clone repository
    2. Checkout new branch to make your changes on:
      • git checkout -b my-new-branch
      • usually the name of the branch should describe its purpose (i.e. add-readme would be a great branch name)
    3. Commit changes locally to your new branch:
      • git add .
      • `git commit -m "my really awesome feature"
    4. Push local changes to remote repositry (github):
      • git push
    5. Make pull request on github:
      • in the browser, go to github.com and go to the Pull Request tab

    Why is this important?

    As the software team gets larger, more and more people will contribute to the code. If everyone is pushing to the same main branch at the same time...things can get ugly 🚫 and end up causing problems for all the developers on the project.

    Doing development this way, the main branch should always be functional code and also the main starting point for everyone to branch off of.

    How to fix this

    Let's add the above steps to the new How to contribute section in our README.md:

    • [x] add above steps to How to contribute section within README
    documentation 
    opened by flynneva 3
  • Add refined movement and rotation controls

    Add refined movement and rotation controls

    @chrisfd805 suggested that we should add a feature where holding down or pressing a button will reduce the motor speeds to make precisely turning and moving easier to control.

    I think a potentially better way of doing this would be to bind one button to each action. For example, pressing the left controller paddle(or also the West button) can make the robot slowly turn counter-clockwise and pressing the right controller paddle(or also the East Button) can make the robot slowly turn clockwise.

    @chrisfd805 and @Jtuazon25 let me know what you guys think of these ideas, and whether you want me to implement them.

    enhancement 
    opened by An3Dev 2
  • generate documentation from the code

    generate documentation from the code

    opened by flynneva 2
  • add a short README

    add a short README

    We should have at least some minimum documentation for new team members to get started.

    good first issue 
    opened by flynneva 1
  • Create paths for autonomous mode

    Create paths for autonomous mode

    In autonomous mode, we want to follow a certain path to pick up balls, and maybe even shoot. To create the paths, we can use the path weaver tool that comes with the frc game tools package.

    enhancement 
    opened by An3Dev 0
  • Do Robot Characterization

    Do Robot Characterization

    In order to accurately and precisely navigate around the field in autonomous mode, we have to calculate various things such as how much the motors spin when a certain amount of voltage is applied, robot acceleration, turning, and more. We can follow this link to learn how to calculate these values using frc tools.

    Once we characterize the robot, we can start making trajectories for the robot to follow in autonomous mode and it should move through them accurately.

    enhancement 
    opened by An3Dev 0
  • Change the theme of our documentation website

    Change the theme of our documentation website

    I don't really like the light theme of the website, I'd like to make it have a dark theme and maybe even have Pacifica colors. We can do this by changing the stylesheet.css file in the gh-pages branch.

    A problem I foresee is that every time we push changes to the main branch, the javadoc deploy action will run and will regenerate the documentation, which I think will overwrite the stylesheet.css. Maybe we can do something that'll lock the stylesheet.css file state so it doesn't get overwritten.

    enhancement non-urgent 
    opened by An3Dev 1
  • Idea to improve shooting precision

    Idea to improve shooting precision

    Add a mechanism that stops the ball at a specific point along the intake path. Then we could bind a button that will trigger the robot to shoot. It will spin the intake and shooter motors at a specific speed. The ball will be shot the exact same way every time, so this should theoretically make shooting much more precise and consistent.

    We will need to add a sensor(ultrasonic sensor, color sensor, or camera) that will tell the code when the ball is in the right spot. When this is true, the code will automatically stop the intake motors.

    enhancement 
    opened by An3Dev 2
  • determine what features are missing for 2022 FIRST competition

    determine what features are missing for 2022 FIRST competition

    This requires some understanding on what we currently have and what features need to be added for the competition this year.

    1. [x] list current features we have
    2. [x] create "wish list" of features that would help us accomplish tasks in the 2022 competition

    After these lists are created we can figure out a plan on how best to create the missing features.

    question 
    opened by flynneva 2
Owner
Pacifica High School Robotics Team
null
Repository for FIRST Tech Challenge team 3916 Apex Robotics for the 2021-2022 game year (Freight Frenzy)

FTC Team 3916 - Apex Robotics This is our repo for the 2020-2021 game year - Ultimate Goal Installation Clone this repo. You can do this through the w

Aman Anas 6 Nov 4, 2021
log4j-scanner is a project derived from other members of the open-source community by CISA's Rapid Action Force team to help organizations identify potentially vulnerable web services affected by the log4j vulnerabilities.

Log4j Scanner This repository provides a scanning solution for the log4j Remote Code Execution vulnerabilities (CVE-2021-44228 & CVE-2021-45046). The

Cybersecurity and Infrastructure Security Agency 1.3k Dec 22, 2022
Served as the team leader to collaborate with another intern for a project and drew up our working schedule

Served as the team leader to collaborate with another intern for a project and drew up our working schedule, risk management plan, quality control plan, configuration management plan, etc Compiled codes for the front end and back end, composed the development documentation and explored SSM structure and MyBatis structure.

bright spark 2 Jan 17, 2022
Detect any Team Shipping Element for the FTC 2021-2022 Freight Frenzy season

ShippingElementDetector Idea/algorithm created and implemented by Allen Wu, code provided by FTC 18225 High Definition NOTE: EXTRA CHANGES WILL NEED T

High Definition 12 Sep 25, 2022
Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based system

FRC 2022 Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based s

null 4 Oct 4, 2022
Team 2539's Java training, consisting of a series of projects that combine into a full robot code base.

Java Training Part 1 - Learning Java (Skip this part if you have taken AP Comp Sci) For learning Java, we currently recommend using codecademy, but mo

Krypton Cougars 5 Aug 24, 2022
Tasks Planner : A minimalist collaborative app for scheduling and managing your tasks with the team and getting notifications through discord.

Tasks Planner ✨ Overview Tasks planner is a minimalist collaborative app for planning and managing your tasks with the team and get notifications thro

MILIARI Adnane 7 Dec 1, 2022
Restaurant Advisor application created for Munich as part of team project at the university.

Restaurant Advisor Application It is important to mention that this application was created for educational purposes. Restaurants information is taken

Johnpier 1 Oct 16, 2022
contents based on article cross-team collaboration

camelk-team-collaboration This repository contains all the sources showcased in the following Red Hat Developers article: https://developers.redhat.co

null 7 Apr 27, 2022
Team project within the course of Software System Design and Analysis.

InnoBookCrossing - Application for sharing books at Innopolis Description The application is designed to help people share books with each other. All

Dariya 33 Oct 22, 2022
Repository for FIRST Tech Challenge team 3916 Apex Robotics for the 2021-2022 game year (Freight Frenzy)

FTC Team 3916 - Apex Robotics This is our repo for the 2020-2021 game year - Ultimate Goal Installation Clone this repo. You can do this through the w

Aman Anas 6 Nov 4, 2021
log4j-scanner is a project derived from other members of the open-source community by CISA's Rapid Action Force team to help organizations identify potentially vulnerable web services affected by the log4j vulnerabilities.

Log4j Scanner This repository provides a scanning solution for the log4j Remote Code Execution vulnerabilities (CVE-2021-44228 & CVE-2021-45046). The

Cybersecurity and Infrastructure Security Agency 1.3k Dec 22, 2022
Team Khonsari & Friends present the Novoline Opensource Project

Team Khonsari & Friends present the Novoline Opensource Project Credits Aidan - Providing the base jar for the initial remap skidunion - Providing the

liquid smokey balls 18 Jan 24, 2022
Served as the team leader to collaborate with another intern for a project and drew up our working schedule

Served as the team leader to collaborate with another intern for a project and drew up our working schedule, risk management plan, quality control plan, configuration management plan, etc Compiled codes for the front end and back end, composed the development documentation and explored SSM structure and MyBatis structure.

bright spark 2 Jan 17, 2022
Detect any Team Shipping Element for the FTC 2021-2022 Freight Frenzy season

ShippingElementDetector Idea/algorithm created and implemented by Allen Wu, code provided by FTC 18225 High Definition NOTE: EXTRA CHANGES WILL NEED T

High Definition 12 Sep 25, 2022
Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based system

FRC 2022 Team 5468's 2022 FRC robot code. This code is written in Java and is based off of WPILib's Java control system and utilizes a command based s

null 4 Oct 4, 2022
Team 2539's Java training, consisting of a series of projects that combine into a full robot code base.

Java Training Part 1 - Learning Java (Skip this part if you have taken AP Comp Sci) For learning Java, we currently recommend using codecademy, but mo

Krypton Cougars 5 Aug 24, 2022
Tasks Planner : A minimalist collaborative app for scheduling and managing your tasks with the team and getting notifications through discord.

Tasks Planner ✨ Overview Tasks planner is a minimalist collaborative app for planning and managing your tasks with the team and get notifications thro

MILIARI Adnane 7 Dec 1, 2022
Restaurant Advisor application created for Munich as part of team project at the university.

Restaurant Advisor Application It is important to mention that this application was created for educational purposes. Restaurants information is taken

Johnpier 1 Oct 16, 2022