Computer Vision module for FRC 3824
  • C 98.8%
  • Makefile 1.2%
Find a file
2026-02-15 00:26:20 +00:00
lib init of custom apriltag 2023-07-09 15:36:57 -05:00
src added support for coordinates, TODO: finish all settings, write better server code 2024-01-12 22:25:40 -05:00
.gitignore added debug utility && util/ 2023-07-12 14:39:52 -05:00
.gitmodules init of custom apriltag 2023-07-09 15:36:57 -05:00
IMG_1607.mov Video of turret + NACV wombo combo 2025-02-05 19:10:45 -05:00
LICENSE license 2023-06-25 18:43:52 -05:00
README.md Update README.md 2026-02-15 00:26:20 +00:00

NACV

Native AprilTag Computer Vision system written in C

Written by / for the 3824 FRC Team (RoHawktics), can be used elsewhere

NOTE: This project is no longer being worked on. Consider all code here legacy/deprecated. Use at your own discretion.

Info

NOTICE:

This project will be only officially supported on the Pi 3 B/B+ with the PiCamera 1. All development of drivers, code, and hardware will be to support this board and camera.

This project is no longer being worked on, being officially completed in 2024. This code was developed for FRC Team 3824 solely by Zane Maples.

Example Video

https://github.com/user-attachments/assets/647420c1-f9c9-494a-ab63-ab673f43890a

Custom AprilTag

Made to work with a custom AprilTag implementation
  • Included as a submodule
  • Link

Currently Supported Hardware

  • RaspberryPi 3 B/B+ - Officially Supported and tested on this platform
  • RaspberryPi 2 - mileage may vary, even at high decoding and 4 processes only 20-25 FPS was processable
  • RaspberryPi 4 - currently has not been tested. (note all Pi's must support V4L2 drivers or legacy camera stack)
  • Pi Camera 1 - Officially Supported, however sensor mode must be manually set to 640x480 (Image with patched drivers will be released)

Todo:

  • [Code] Write support for full options/configuration with cJSON [Misc]
  • [Code] Write Java/C++ library [RoboRIO]
  • [Hardware] Develop/Print a case for Raspberry Pi 3 B/B+ [Custom]
  • [Hardware] Develop an interface board for PDH to power 4 Pis. [Custom]
  • [NACV] Post .stl files for case and kicad pcb project for ledboard [Misc]
  • [Code] Write low-latency custom shared library to be loaded onto RoboRIO and into Java with native functions [Performance]

System Diagram

  • Code
    • Multi-processing
  • Rasberry PI
    • Computer Vision code, written in C.
  • Robo Rio
    • Takes data from PI
    • Interprets and acts on that data in the Java code