Skip to content

Latest commit

Β 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


⚑ Thunders Robotics

Team Logo License: MIT Build Status Python Java

Innovating the future, one robot at a time.

Thunders Robotics is a [Student-led/Professional] robotics team dedicated to designing, building, and programming high-performance robots for the [Competition Name or Purpose]. We strive to foster a passion for STEM, engineering excellence, and teamwork within our community.


πŸ“‘ Table of Contents


πŸš€ About Us

Founded in [Year], Thunders Robotics has grown from a small group of enthusiasts into a competitive force in [League/Region]. Our mission is to inspire the next generation of engineers and innovators through hands-on experience with cutting-edge technology.

Our Mission

To empower students/members with real-world engineering skills, promoting collaboration, critical thinking, and technical proficiency in a competitive environment.

Our Vision

To be a globally recognized leader in robotics innovation, setting the standard for performance, safety, and community outreach.


πŸ€– The Robot: [Insert Robot Name]

Codename: [Codename] Competition Year: [Year]

[Insert Robot Name] is our flagship machine designed for the [Game Name] challenge. It features a [e.g., swerve drive, tank drive, holonomic] drivetrain and a sophisticated [e.g., vision processing, arm manipulation] system.

Key Features

  • βœ… High-Speed Drivetrain: Capable of speeds up to [X] mph.
  • βœ… Autonomous Navigation: Uses [LiDAR/Camera/Encoders] for path following.
  • βœ… Precision Manipulation: [e.g., Intake system, Shooter mechanism] with [X]% accuracy.
  • βœ… Smart Vision: Powered by [OpenCV/Limelight/PhotonVision] for target tracking.

πŸ›  Technical Specifications

Component Specification
Microcontroller [e.g., RoboRIO, Raspberry Pi 4, STM32, VEX V5]
Motor Controllers [e.g., Talon FX, Spark MAX, V5 Smart Motor]
Motors [e.g., 4x NEO Brushless, 2x Falcon 500]
Sensors [e.g., NavX, Ultrasonic, Color Sensor, Gyro]
Vision Camera [e.g., Microsoft LifeCam, Raspberry Pi Cam, Limelight]
Power Source [e.g., 12V 18Ah SLA Battery, 11.1V LiPo]
Programming Language [Java / Python / C++]
Framework [WPILib / ROS / RobotPy / VEXcode]
Weight [e.g., 120 lbs / 5 kg]

πŸ’» Software Stack

Our software architecture focuses on modularity, reliability, and ease of debugging.

  • Languages: [Java, Python, C++]
  • Frameworks: [WPILib, ROS 2, Django (for scouting)]
  • Version Control: Git & GitHub
  • CI/CD: [GitHub Actions, Jenkins]
  • Simulation: [Gazebo, Unity, Pathfinder]
  • Libraries:
    • [PathPlanner] - For autonomous trajectory generation.
    • [PhotonVision] - For vision processing.
    • [NT4 (NetworkTables)] - For robot-to-dashboard communication.

πŸš€ Quick Start

Prerequisites to run and deploy the code on the robot or simulator.

Prerequisites

  • IDE: [VS Code / IntelliJ IDEA / Eclipse]
  • JDK/SDK Version: [JDK 17 / Python 3.9]
  • Compiler: [Gradle / Make]

Installation

  1. Clone the repository

    git clone https://github.com/ThundersRobotics/thunders-robotics-[year].git
    cd thunders-robotics-[year]
  2. Install Dependencies

    # If using Gradle
    ./gradlew build
    
    # If using Python/Pip
    pip install -r requirements.txt
  3. Deploy to Robot

    # Example command for WPILib
    ./gradlew deploy
  4. Run Simulation

    ./gradlew simulate

πŸ“ Repository Structure

A clear breakdown of how our project is organized.

thunders-robotics/
β”‚
β”œβ”€β”€ πŸ“‚ .github/
β”‚   β”œβ”€β”€ πŸ“‚ workflows/
β”‚   β”‚   β”œβ”€β”€ ci.yml
β”‚   β”‚   β”œβ”€β”€ build.yml
β”‚   β”‚   β”œβ”€β”€ test.yml
β”‚   β”‚   β”œβ”€β”€ lint.yml
β”‚   β”‚   └── security.yml
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ ISSUE_TEMPLATE/
β”‚   β”‚   β”œβ”€β”€ bug_report.md
β”‚   β”‚   β”œβ”€β”€ feature_request.md
β”‚   β”‚   β”œβ”€β”€ hardware_issue.md
β”‚   β”‚   └── robotics_task.md
β”‚   β”‚
β”‚   └── PULL_REQUEST_TEMPLATE.md
β”‚
β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ main/
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ java/
β”‚   β”‚   β”‚   └── πŸ“‚ frc/
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ robot/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Robot.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ RobotContainer.java
β”‚   β”‚   β”‚       β”‚   └── RobotState.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ commands/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ DriveCommand.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ AutonomousCommand.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ FollowPathCommand.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ IntakeCommand.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ ArmCommand.java
β”‚   β”‚   β”‚       β”‚   └── EmergencyStopCommand.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ subsystems/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Drivetrain.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Arm.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Elevator.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Intake.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Shooter.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Vision.java
β”‚   β”‚   β”‚       β”‚   └── Sensors.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ autonomous/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ AutoRoutine.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ PathPlanner.java
β”‚   β”‚   β”‚       β”‚   └── TrajectoryManager.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ control/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ PIDController.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ MotionController.java
β”‚   β”‚   β”‚       β”‚   └── BalanceController.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ sensors/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Gyroscope.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ Encoder.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ DistanceSensor.java
β”‚   β”‚   β”‚       β”‚   └── IMU.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       β”œβ”€β”€ πŸ“‚ constants/
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ RobotConstants.java
β”‚   β”‚   β”‚       β”‚   β”œβ”€β”€ MotorConstants.java
β”‚   β”‚   β”‚       β”‚   └── SensorConstants.java
β”‚   β”‚   β”‚       β”‚
β”‚   β”‚   β”‚       └── Main.java
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ cpp/
β”‚   β”‚   β”‚   └── πŸ“‚ thunders/
β”‚   β”‚   β”‚       β”œβ”€β”€ robot/
β”‚   β”‚   β”‚       β”œβ”€β”€ control/
β”‚   β”‚   β”‚       β”œβ”€β”€ navigation/
β”‚   β”‚   β”‚       └── sensors/
β”‚   β”‚   β”‚
β”‚   β”‚   └── πŸ“‚ resources/
β”‚   β”‚       β”œβ”€β”€ robot.yaml
β”‚   β”‚       β”œβ”€β”€ motors.yaml
β”‚   β”‚       β”œβ”€β”€ sensors.yaml
β”‚   β”‚       β”œβ”€β”€ autonomous.yaml
β”‚   β”‚       └── logging.yaml
β”‚   β”‚
β”‚   └── πŸ“‚ test/
β”‚       β”œβ”€β”€ πŸ“‚ java/
β”‚       β”‚   └── πŸ“‚ frc/
β”‚       β”‚       β”œβ”€β”€ RobotTest.java
β”‚       β”‚       β”œβ”€β”€ DrivetrainTest.java
β”‚       β”‚       β”œβ”€β”€ PIDControllerTest.java
β”‚       β”‚       └── SensorTest.java
β”‚       β”‚
β”‚       └── πŸ“‚ cpp/
β”‚           β”œβ”€β”€ control_test.cpp
β”‚           └── navigation_test.cpp
β”‚
β”œβ”€β”€ πŸ“‚ firmware/
β”‚   β”œβ”€β”€ πŸ“‚ esp32/
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ include/
β”‚   β”‚   β”œβ”€β”€ platformio.ini
β”‚   β”‚   └── README.md
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ stm32/
β”‚   β”‚   β”œβ”€β”€ Core/
β”‚   β”‚   β”œβ”€β”€ Drivers/
β”‚   β”‚   β”œβ”€β”€ Middlewares/
β”‚   β”‚   └── README.md
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ arduino/
β”‚   β”‚   β”œβ”€β”€ motor_controller/
β”‚   β”‚   β”œβ”€β”€ sensor_node/
β”‚   β”‚   └── communication/
β”‚   β”‚
β”‚   └── README.md
β”‚
β”œβ”€β”€ πŸ“‚ ros/
β”‚   β”œβ”€β”€ πŸ“‚ ros2_ws/
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_robot/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_description/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_bringup/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_navigation/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_control/
β”‚   β”‚   β”‚   β”œβ”€β”€ thunders_sensors/
β”‚   β”‚   β”‚   └── thunders_interfaces/
β”‚   β”‚   β”‚
β”‚   β”‚   └── README.md
β”‚   β”‚
β”‚   └── πŸ“‚ launch/
β”‚       β”œβ”€β”€ robot.launch.py
β”‚       β”œβ”€β”€ simulation.launch.py
β”‚       └── navigation.launch.py
β”‚
β”œβ”€β”€ πŸ“‚ robotics/
β”‚   β”œβ”€β”€ πŸ“‚ kinematics/
β”‚   β”‚   β”œβ”€β”€ forward_kinematics.py
β”‚   β”‚   β”œβ”€β”€ inverse_kinematics.py
β”‚   β”‚   └── README.md
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ dynamics/
β”‚   β”‚   β”œβ”€β”€ robot_dynamics.py
β”‚   β”‚   └── README.md
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ navigation/
β”‚   β”‚   β”œβ”€β”€ path_planning.py
β”‚   β”‚   β”œβ”€β”€ obstacle_avoidance.py
β”‚   β”‚   └── localization.py
β”‚   β”‚
β”‚   └── πŸ“‚ control/
β”‚       β”œβ”€β”€ pid.py
β”‚       β”œβ”€β”€ mpc.py
β”‚       └── trajectory_control.py
β”‚
β”œβ”€β”€ πŸ“‚ autonomous/
β”‚   β”œβ”€β”€ πŸ“‚ navigation/
β”‚   β”œβ”€β”€ πŸ“‚ path_planning/
β”‚   β”œβ”€β”€ πŸ“‚ localization/
β”‚   β”œβ”€β”€ πŸ“‚ mapping/
β”‚   └── πŸ“‚ obstacle_avoidance/
β”‚
β”œβ”€β”€ πŸ“‚ vision/
β”‚   β”œβ”€β”€ πŸ“‚ camera/
β”‚   β”‚   β”œβ”€β”€ camera_config.yaml
β”‚   β”‚   └── camera_calibration.py
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ detection/
β”‚   β”‚   β”œβ”€β”€ object_detection.py
β”‚   β”‚   β”œβ”€β”€ line_detection.py
β”‚   β”‚   └── marker_detection.py
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ tracking/
β”‚   β”‚   β”œβ”€β”€ object_tracking.py
β”‚   β”‚   └── robot_tracking.py
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ calibration/
β”‚   β”‚   β”œβ”€β”€ intrinsic.py
β”‚   β”‚   └── extrinsic.py
β”‚   β”‚
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ πŸ“‚ ai/
β”‚   β”œβ”€β”€ πŸ“‚ models/
β”‚   β”‚   β”œβ”€β”€ detection/
β”‚   β”‚   β”œβ”€β”€ classification/
β”‚   β”‚   └── segmentation/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ training/
β”‚   β”‚   β”œβ”€β”€ train.py
β”‚   β”‚   β”œβ”€β”€ config.yaml
β”‚   β”‚   └── checkpoints/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ datasets/
β”‚   β”‚   β”œβ”€β”€ raw/
β”‚   β”‚   β”œβ”€β”€ processed/
β”‚   β”‚   └── labels/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ inference/
β”‚   β”‚   β”œβ”€β”€ inference.py
β”‚   β”‚   └── realtime.py
β”‚   β”‚
β”‚   └── requirements.txt
β”‚
β”œβ”€β”€ πŸ“‚ electronics/
β”‚   β”œβ”€β”€ πŸ“‚ schematics/
β”‚   β”‚   β”œβ”€β”€ power_distribution.pdf
β”‚   β”‚   β”œβ”€β”€ motor_controller.pdf
β”‚   β”‚   └── sensor_system.pdf
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ pcb/
β”‚   β”‚   β”œβ”€β”€ kicad/
β”‚   β”‚   β”œβ”€β”€ gerber/
β”‚   β”‚   └── bom/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ wiring/
β”‚   β”‚   β”œβ”€β”€ wiring_diagram.pdf
β”‚   β”‚   └── pinout.yaml
β”‚   β”‚
β”‚   └── πŸ“‚ datasheets/
β”‚       β”œβ”€β”€ motors/
β”‚       β”œβ”€β”€ sensors/
β”‚       └── controllers/
β”‚
β”œβ”€β”€ πŸ“‚ CAD/
β”‚   β”œβ”€β”€ πŸ“‚ mechanical/
β”‚   β”‚   β”œβ”€β”€ chassis/
β”‚   β”‚   β”œβ”€β”€ drivetrain/
β”‚   β”‚   β”œβ”€β”€ arm/
β”‚   β”‚   β”œβ”€β”€ gripper/
β”‚   β”‚   └── brackets/
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ assemblies/
β”‚   β”‚   β”œβ”€β”€ robot_assembly.step
β”‚   β”‚   └── robot_assembly.stl
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ drawings/
β”‚   β”‚   β”œβ”€β”€ chassis.pdf
β”‚   β”‚   β”œβ”€β”€ arm.pdf
β”‚   β”‚   └── assembly.pdf
β”‚   β”‚
β”‚   └── README.md
β”‚
β”œβ”€β”€ πŸ“‚ simulation/
β”‚   β”œβ”€β”€ πŸ“‚ gazebo/
β”‚   β”œβ”€β”€ πŸ“‚ webots/
β”‚   β”œβ”€β”€ πŸ“‚ mujoco/
β”‚   β”œβ”€β”€ πŸ“‚ unity/
β”‚   β”œβ”€β”€ πŸ“‚ urdf/
β”‚   β”‚   └── thunders_robot.urdf
β”‚   └── README.md
β”‚
β”œβ”€β”€ πŸ“‚ config/
β”‚   β”œβ”€β”€ robot.yaml
β”‚   β”œβ”€β”€ motors.yaml
β”‚   β”œβ”€β”€ sensors.yaml
β”‚   β”œβ”€β”€ network.yaml
β”‚   β”œβ”€β”€ vision.yaml
β”‚   └── autonomous.yaml
β”‚
β”œβ”€β”€ πŸ“‚ scripts/
β”‚   β”œβ”€β”€ deploy.sh
β”‚   β”œβ”€β”€ build.sh
β”‚   β”œβ”€β”€ test.sh
β”‚   β”œβ”€β”€ flash_firmware.sh
β”‚   β”œβ”€β”€ calibrate_sensors.py
β”‚   β”œβ”€β”€ calibrate_camera.py
β”‚   β”œβ”€β”€ backup.sh
β”‚   └── setup_environment.sh
β”‚
β”œβ”€β”€ πŸ“‚ tests/
β”‚   β”œβ”€β”€ πŸ“‚ integration/
β”‚   β”œβ”€β”€ πŸ“‚ hardware/
β”‚   β”œβ”€β”€ πŸ“‚ software/
β”‚   β”œβ”€β”€ πŸ“‚ simulation/
β”‚   └── πŸ“‚ performance/
β”‚
β”œβ”€β”€ πŸ“‚ logs/
β”‚   └── .gitkeep
β”‚
β”œβ”€β”€ πŸ“‚ data/
β”‚   β”œβ”€β”€ πŸ“‚ telemetry/
β”‚   β”œβ”€β”€ πŸ“‚ sensor_data/
β”‚   β”œβ”€β”€ πŸ“‚ camera/
β”‚   └── README.md
β”‚
β”œβ”€β”€ πŸ“‚ docs/
β”‚   β”œβ”€β”€ architecture.md
β”‚   β”œβ”€β”€ robot-overview.md
β”‚   β”œβ”€β”€ software.md
β”‚   β”œβ”€β”€ hardware.md
β”‚   β”œβ”€β”€ electronics.md
β”‚   β”œβ”€β”€ firmware.md
β”‚   β”œβ”€β”€ ros2.md
β”‚   β”œβ”€β”€ autonomous.md
β”‚   β”œβ”€β”€ computer-vision.md
β”‚   β”œβ”€β”€ artificial-intelligence.md
β”‚   β”œβ”€β”€ simulation.md
β”‚   β”œβ”€β”€ calibration.md
β”‚   β”œβ”€β”€ testing.md
β”‚   β”œβ”€β”€ deployment.md
β”‚   β”œβ”€β”€ troubleshooting.md
β”‚   β”œβ”€β”€ safety.md
β”‚   β”œβ”€β”€ api.md
β”‚   └── πŸ“‚ meeting-notes/
β”‚       β”œβ”€β”€ 2026-01.md
β”‚       β”œβ”€β”€ 2026-02.md
β”‚       └── 2026-03.md
β”‚
β”œβ”€β”€ πŸ“‚ examples/
β”‚   β”œβ”€β”€ basic-drive/
β”‚   β”œβ”€β”€ autonomous-drive/
β”‚   β”œβ”€β”€ object-detection/
β”‚   β”œβ”€β”€ arm-control/
β”‚   └── sensor-reading/
β”‚
β”œβ”€β”€ πŸ“‚ research/
β”‚   β”œβ”€β”€ πŸ“‚ papers/
β”‚   β”œβ”€β”€ πŸ“‚ experiments/
β”‚   β”œβ”€β”€ πŸ“‚ datasets/
β”‚   β”œβ”€β”€ πŸ“‚ benchmarks/
β”‚   └── README.md
β”‚
β”œβ”€β”€ πŸ“‚ tools/
β”‚   β”œβ”€β”€ dashboard/
β”‚   β”œβ”€β”€ telemetry/
β”‚   β”œβ”€β”€ robot-monitor/
β”‚   └── diagnostics/
β”‚
β”œβ”€β”€ πŸ“„ .gitignore
β”œβ”€β”€ πŸ“„ .gitattributes
β”œβ”€β”€ πŸ“„ .editorconfig
β”œβ”€β”€ πŸ“„ LICENSE
β”œβ”€β”€ πŸ“„ README.md
β”œβ”€β”€ πŸ“„ CONTRIBUTING.md
β”œβ”€β”€ πŸ“„ CODE_OF_CONDUCT.md
β”œβ”€β”€ πŸ“„ SECURITY.md
β”œβ”€β”€ πŸ“„ CHANGELOG.md
β”œβ”€β”€ πŸ“„ CITATION.cff
β”œβ”€β”€ πŸ“„ build.gradle
β”œβ”€β”€ πŸ“„ settings.gradle
β”œβ”€β”€ πŸ“„ gradle.properties
β”œβ”€β”€ πŸ“„ requirements.txt
β”œβ”€β”€ πŸ“„ pyproject.toml
└── πŸ“„ docker-compose.yml

🀝 Contributing

We welcome contributions from students, mentors, and the community.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure:

  • Code follows the team's style guide.
  • All tests pass locally.
  • Comments explain complex logic.

πŸ“œ Code of Conduct

Thunders Robotics is committed to providing a welcoming and inclusive environment. Please read our CODE_OF_CONDUCT.md for details on our expectations for members and contributors.


πŸ† Sponsors

A huge thank you to our sponsors who make our journey possible.

[Platinum Sponsor] [Gold Sponsor] [Silver Sponsor]
[Logo] [Logo] [Logo]

Interested in sponsoring us? Contact us at sponsorships@thundersrobotics.com


πŸ“ž Contact


Built with ❀️ by Thunders Robotics

About

Thunders-Robotics is an innovative robotics team dedicated to designing, building, and programming high-performance autonomous and teleoperated robots. Driven by a passion for engineering excellence and cutting-edge technology, the team pushes the boundaries of automation to solve complex technical challenges and compete at the highest level.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors