3D printing

This commit is contained in:
David Eisinger
2026-02-02 00:25:07 -05:00
parent 413aba80b2
commit dff05d03c0
4 changed files with 687 additions and 26 deletions

View File

@@ -5,6 +5,18 @@ draft: false
tags:
- dispatch
references:
- title: "OpenSCAD Is Kinda Neat nuxx.net"
url: https://nuxx.net/blog/2025/12/20/openscad-is-kinda-neat/
date: 2026-01-07T14:53:56Z
file: nuxx-net-xnrgb7.txt
- title: "The Enduring Point of Pointless Corp | Viget"
url: https://www.viget.com/articles/the-enduring-point-of-pointless-corp/
date: 2023-04-05T14:58:49Z
file: www-viget-com-97ckk4.txt
- title: "AprilTag Introduction FIRST Tech Challenge Docs 0.3 documentation"
url: https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html
date: 2026-02-02T05:08:14Z
file: ftc-docs-firstinspires-org-thvpq0.txt
- title: "Dan McQuade, 19832026 | Defector"
url: https://defector.com/dan-mcquade-1983-2026
date: 2026-01-30T03:40:45Z
@@ -21,6 +33,8 @@ references:
Greetings from frigid Durham, North Carolina. We've had an uncharacteristic amount of winter precipitation this month (mostly ice last weekend but a few inches of snow this one). On the one hand, our work is pretty flexible and we've gotten plenty of extra time with the kids. On the other, my home office and all my hobbies are in the basement, where it's presently around 40°F, so I'm about ready for things to get back to normal.
<!--more-->
{{<dither IMG_3192.jpeg "782x600">}}Bundled up in a double stroller, both kids happily munching snacks on a chilly street.{{</dither>}}
{{<dither IMG_3258.jpeg "782x600">}}Snowy woods selfie: bundled mom and baby, rosy cheeks, winter headbands, big smiles.{{</dither>}}
@@ -34,32 +48,38 @@ I spent a few days in Miami for a company leadership retreat. Highlights include
While we were up there, our car finally gave up the ghost. It's been struggling to start for a while now, so it wasn't completely unexpected, but I'd hoped to replace it by choice rather than by necessity. We've got a Toyota Rav4 plug-in hybrid headed our way. I'm pretty psyched for this, getting around town on electric power but still being able to fill up with gas when we travel.
## Voice Note Shortcut
### Voice Note Shortcut
I'm constantly thinking of, and then promptly forgetting, things I need to do, groceries to buy, ideas for these blog posts, etc. I've been on the hunt for some way to quickly capture these fleeting thoughts. I like the idea of a ring that can record voice memos, but [this one][3] requires a $10/mo subscription, and [this one][4] just ... turns into trash after 12-15 hours of recording.
Instead, I played around in the iOS Shortcuts app and made a shortcut that captures text from speech, then looks for a note named for today's date (creating it if necessary), and appends the dictated text to it. Then I m/System/Library/CoreServices/Finder.app/Contents/Resources/MyLibraries/myDocuments.cannedSearch ade it so that double-tapping the back of the phone launches the shortcut (shout out Viget friend [Max Myers][5]).
[Here's the shortcut if you want to give it a shot.][6]
Instead, I played around in the iOS Shortcuts app and made a shortcut that captures text from speech, then looks for a note named for today's date (creating it if necessary), and appends the dictated text to it. Then I made it so that double-tapping the back of the phone launches the shortcut (shout out Viget friend [Max Myers][5]). I'm getting a ton of utility from this, using it throughout my day. [Here's the shortcut if you want to give it a shot.][6]
[3]: https://www.sandbar.com/stream
[4]: https://repebble.com/index
[5]: https://maxmyers.me/
[6]: /journal/dispatch-36-february-2026/voice-note.shortcut
- Nicos a full-on dude
- Opened the door to find him waking up and saying “hi dad”
- Voice note shortcut
- Dilbert / J.K. Rowling / Om Malik
- Online makes you dumber
- Stencil + Airbrush
- <https://www.amazon.com/dp/B0DTB2N2D9>
### 3D Printing
<!--more-->
Still having a blast with the 3D printer (though, again, too cold to operate it at present). Made a ton of toys for the kids, stuff for the house, and (of course) accessories for the printer itself.
Finally, [RIP Dan McQuade][7]. 43 years old. What the hell. I'm off to go hug my family.
Friend of the blog [Tim Hårek][7] linked to [this post about OpenSCAD][8], which lets you define 3D models with code. I downloaded the program and had Codex help me make a stencil for Nev to use for her Valentine's Day cards. Then I ordered this [Crayola airbrush kit][9], which works surprisingly well. She's been having a blast with it.
[7]: https://defector.com/dan-mcquade-1983-2026
[7]: https://timharek.no/
[8]: https://nuxx.net/blog/2025/12/20/openscad-is-kinda-neat/
[9]: https://www.amazon.com/dp/B0DTB2N2D9
{{<dither IMG_9773.jpeg "782x600">}}Blue 3D pen and a fresh printed “happy valentines day! ♥ nev” card on the worktable.{{</dither>}}
{{<dither IMG_9772.jpeg "782x600">}}“Happy Valentines day!” and “Nev” stamped on a pink slip with a heart.{{</dither>}}
We're doing our [company hackathon][10] in a few weeks, and I'm planning to use the printer to make something with both a physical and digital component (probably involving [AprilTags][11]).
[10]: https://www.viget.com/articles/the-enduring-point-of-pointless-corp/
[11]: https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html
Finally, [RIP Dan McQuade][12]. 43 years old. What the hell. I'm off to go hug my family.
[12]: https://defector.com/dan-mcquade-1983-2026
### This Month
@@ -69,21 +89,21 @@ Finally, [RIP Dan McQuade][7]. 43 years old. What the hell. I'm off to go hug my
### Reading & Listening
* Fiction: [_The Will of the Many_][8], James Islington ([via][9])
* Non-fiction: [_The Magic of Code_][10], Samuel Arbesman ([via][11])
* Fiction: [_The Will of the Many_][13], James Islington ([via][14])
* Non-fiction: [_The Magic of Code_][15], Samuel Arbesman ([via][16])
* Music: I've got a bit of a backlog here; gonna spend some time with the records I already have (assuming the basement warms up)
[8]: https://www.simonandschuster.com/books/The-Will-of-the-Many/James-Islington/Hierarchy/9781982141189
[9]: https://buttondown.com/nathanlong/archive/food-comas-and-some-bests/
[10]: https://www.hachettebookgroup.com/titles/samuel-arbesman/the-magic-of-code/9781541704480/
[11]: https://interconnected.org/home/2025/11/14/arbesman
[13]: https://www.simonandschuster.com/books/The-Will-of-the-Many/James-Islington/Hierarchy/9781982141189
[14]: https://buttondown.com/nathanlong/archive/food-comas-and-some-bests/
[15]: https://www.hachettebookgroup.com/titles/samuel-arbesman/the-magic-of-code/9781541704480/
[16]: https://interconnected.org/home/2025/11/14/arbesman
### Links
* [Title][12]
* [Title][13]
* [Title][14]
* [Title][17]
* [Title][18]
* [Title][19]
[12]: https://example.com/
[13]: https://example.com/
[14]: https://example.com/
[17]: https://example.com/
[18]: https://example.com/
[19]: https://example.com/

View File

@@ -0,0 +1,641 @@
• [1]FIRST Official Team Resources
• [2]Official Game Q&A
[3] FIRST Tech Challenge Docs Logo
0.3.0
[4][ ]
• [7]About the FIRST Tech Challenge
• [8]Gracious Professionalism®
Getting Started
• [9]New Teams
• [10]Returning Teams
• [11]Coach (Administrative) Resources
• [12]Technical Mentor Resources
Game and Season-Specific Resources
• [13]FIRST Tech Challenge Blog
• [14]FIRST Tech Challenge Tech Tips
• [15]AI Innovation Corner
• [16]Competition Manual
• [17]Game Q&A System
• [18]Playing Field Resources
• [19]Field Coordinate System
Software Development Kit (SDK)
• [20]Laptop Requirements
• [21]SDK Overview
• [22]Updating Components
Control System Resources
• [23]Control System Introduction
• [24]Hardware Component Overview
• [25]Hardware and Software Configuration
• [26]FIRST Tech Challenge Self-Inspect
• [27]Old Self-Inspect
• [28]Programming Resources
□ [29]Programming Tutorials
□ [30]Supporting Documentation
□ [31]AprilTag Programming
☆ [32]AprilTag Introduction
○ [33]Introduction
○ [34]What is AprilTag?
○ [35]AprilTag Pose
○ [36]Navigation
○ [37]Annotations
○ [38]AprilTag Axes
○ [39]Advanced Use
○ [40]Summary
☆ [41]VisionPortal Overview
☆ [42]Webcams for VisionPortal
☆ [43]Understanding AprilTag Values
☆ [44]AprilTag Localization
☆ [45]AprilTag Test Images
☆ [46]AprilTag Challenges in DECODE presented by RTX
□ [47]Vision Programming
□ [48]Camera Color Processing
□ [49]Advanced Topics
□ [50]Additional FIRST Website Resources
AprilTag Resources
• [51]AprilTag Introduction
□ [52]Introduction
□ [53]What is AprilTag?
□ [54]AprilTag Pose
□ [55]Navigation
□ [56]Annotations
□ [57]AprilTag Axes
□ [58]Advanced Use
□ [59]Summary
• [60]VisionPortal Overview
• [61]Webcams for VisionPortal
• [62]Understanding AprilTag Values
• [63]AprilTag Localization
• [64]AprilTag Test Images
CAD Resources
• [65]Computer Aided Design (CAD)
Electrostatic Discharge
• [66]Managing ESD Effects
Manufacturing
• [67]Manufacturing Methods
Team Resources
• [68]Common Team FAQs
• [69]Team Complimentary Software
• [70]Team Discounts
• [71]Team Resources
FTC Docs
• [72]Booklets
• [73]Archive
• [74]Site Feedback Form
• [75]Contributing to FTC Docs
[76]FIRST Tech Challenge Docs
• [77]
• [78]Programming Resources
• AprilTag Introduction
• [79] Edit on GitHub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AprilTag Introduction[80]
Introduction[81]
A popular camera-based technology is AprilTag, a scanned image similar to a QR
Code. Its effectiveness and quick set-up on custom Signal Sleeves led to wide
adoption in POWERPLAY (2022-2023) by FIRST Tech Challenge teams, especially
those programming in Java.
[82]Dual Detection
Photo Credit: Mike Silversides[83]
Those POWERPLAY teams, including those using FTC Blocks, learned how to use
several resources:
• AprilTag: an open-source technology for evaluating formatted images
• EasyOpenCV: a FIRST Tech Challenge-optimized interface with OpenCV, an
image processing library
• myBlocks: custom Blocks created in OnBot Java (OBJ)
Now these three areas are provided, or bundled, in the FIRST Tech Challenge
Software Development Kit (SDK), starting with version 8.2.
Namely, key capabilities of AprilTag and EasyOpenCV are available to the Robot
Controller (RC) and Driver Station (DS) apps, without special downloads. And
AprilTag features are included in FTC Blocks, without needing custom myBlocks.
The AprilTag features work on webcams and on Android RC phone cameras. A single
OpMode can use AprilTag and Color Processing.
In FIRST Tech Challenge, AprilTag is ready for the spotlight!
What is AprilTag?[84]
Developed at the [85]University of Michigan, AprilTag is like a 2D barcode or a
simplified QR Code. It contains a numeric ID code and can be used for location
and orientation.
[86]AprilTag Robots
AprilTags on Robots. Photo Credit: University of Michigan[87]
AprilTag is a type of visual fiducial, or fiducial marker, containing
information and designed for easy recognition.
[88]Tag Families
A sample of different AprilTag families[89]
The above samples represent different formats, or families. A project typically
uses a single AprilTag family.
FIRST Tech Challenge uses a common family called 36h11. A PDF showing the
numbers 0 through 20 from the 36h11 family can be downloaded here:
• [90]AprilTag PDF 0-20
Each number is the ID code of that tag.
Heres an AprilTag representing ID code 2. The SDK software recognizes and
overlays the ID code onto the image (small blue rectangle ID 02).
[91]Tag02 Preview
Stream output showing the detected tag ID 02[92]
The above image shows a camera preview image, called LiveView, from a Robot
Controller device (Control Hub or RC phone).
The AprilTag family 36h11 has a capacity of 587 ID codes. To see them all,
follow this link:
• [93]https://github.com/rgov/apriltag-pdfs/tree/main/tag36h11/us_letter/
100mm
The square AprilTag pattern contains smaller black and white squares, each
called a pixel. A 36h11 tag contains 10 x 10 pixels, including an outer border
of all white pixels and an inner border of all black pixels.
Tag size is measured across the outside edge of the inner border which
comprises the black pixels for 36h11.
[94]Tag Size
Figure demonstrating the tag size measurement[95]
The above image shows a complete AprilTag with outer white border. From the
36h11 family, its ID code is 42.
AprilTag Pose[96]
Beyond ID code, the new SDK also provides pose data, namely position and
orientation (rotation) from the cameras point of view. This requires a flat
AprilTag, which was not possible with curved POWERPLAY Signal Sleeves.
Lets look again at the camera preview image, called LiveView, from a Robot
Controller device (Control Hub or RC phone).
[97]LiveView Image
LiveView Image with additional markings for explanation purposes[98]
Imagine a laser beam pointing straight outward from the center of the camera
lens. Its 3-dimensional path appears (to the camera) as a single point,
indicated by the green star. You can see that the center of the AprilTag (
yellow star) is offset from that “laser beam”.
That translation offset can break down into three traditional components (X, Y
and Z distances), along axes at 90 degrees to each other:
• X distance (horizontal orange line) is from the center, to the right
• Y distance (not shown) is from the lens center, outwards
• Z distance (vertical orange line) is from the center, upwards
The SDK provides these distances in the real world, not just reporting how many
pixels on the screen. Very useful!
You can also see that the AprilTags flat face is not parallel to the plane of
the camera. That rotation offset can break down into three angles about the X,
Y and Z axes. This is discussed further in the section below, called AprilTag
Axes.
In summary, the SDK evaluates the AprilTag image and performs “pose estimation”
, providing an estimated X, Y and Z distance between the tag and the camera,
along with an estimated angle of rotation around those axes. A closer or larger
AprilTag can yield a more accurate estimate of pose.
To provide good pose estimates, each RC phone camera or webcam requires
calibration data, for a specific resolution. The SDK contains such data for a
limited number of webcams and resolutions. Teams can generate their own data,
called lens intrinsics, using a provided procedure.
Navigation[99]
OpModes use AprilTag pose to achieve navigation: evaluating inputs and driving
to a destination.
An OpMode can use pose data to drive towards the tag, or drive to a target
position and orientation relative to the tag. (The new SDK provides Java Sample
OpModes RobotAutoDriveToAprilTagOmni.java and RobotAutoDriveToAprilTagTank.java
.) Another navigation possibility is mentioned below under Advanced Use.
Navigation is best done with continuous pose estimates, if the AprilTag remains
within the cameras field of view. Namely, an OpMode “while() loop” should
regularly read the updated pose data, to guide the robots driving actions.
The SDK supports multiple cameras, switchable or simultaneous. This can help if
the robot changes direction, or you wish to navigate using another AprilTag (or
Color Processing).
Other sensors can also be used for navigation, such as drive motor encoders,
REV Hub IMU, deadwheel encoders, color/distance sensors, ultrasonic sensors,
and more.
Its also possible to evaluate non-AprilTag images from the same camera and/or
a second camera. For example, the SDK can estimate the horizontal angle (or
Bearing) of an object detected with Color Processing, another vision technology
employed in FIRST Tech Challenge. Advanced teams might consider active camera
pointing control, to keep an AprilTag or other object in view.
Annotations[100]
In the preview (RC phone screen or DS Camera Stream), an official recognized
AprilTag will display a colored border and its numeric ID code. These
annotations allow easy visual confirmation of recognition:
[101]Simple Annotations
Two AprilTags with different metadata being detected and annotations displayed
[102]
In the above [103]DS Camera Stream preview, the left-side AprilTag was
recognized from a tag Library (default or customized). A Library tag has
pre-loaded information (called Metadata) including its tag size, which allows
pose estimation. These are annotated by default with a colored border.
The right-side AprilTag was not in a tag Library. It has no Metadata, so the
SDK can provide only its numeric ID code, shown here as ID 03. Such tags are
not annotated by default with a colored border.
Note: Camera Stream displays a snapshot of the cameras view, on the Driver
Station device. Its available only during the INIT phase of an OpMode, and
also shows any AprilTag (or Color Processing) annotations. Instructions are
posted here:
• [104]Camera Stream Image Preview Documentation
Optional annotations include colored axes at the tag center, and a colored box
projecting from the tag image:
[105]Optional Annotations
LiveView with additional annotations enabled[106]
The above image shows a preview (called LiveView) on an Android Robot
Controller (RC) phone. The REV Control Hub does generate an RC preview, which
can be seen with an HDMI external monitor, or with scrcpy which can be found
here:
• [107]https://github.com/Genymobile/scrcpy
AprilTag Axes[108]
The SDK now provides the underlying pose data as follows:
• Position is based on X, Y and Z distance from the camera lens to the
AprilTag.
• Orientation is based on rotation about those axes, using the right-hand
rule.
Note: the optional red-green-blue annotated axes represent the tags frame of
reference, unrelated to SDK pose data. That annotation indicates only a
successful AprilTag recognition.
Here are the axis designations in the new SDK:
• Y axis points straight outward from the camera lens center
• X axis points to the right, perpendicular to the Y axis
• Z axis points upward, perpendicular to Y and X
If the camera is upright and pointing forward on the robot, these axes are
consistent with the Robot Coordinate System used for [109]IMU navigation.
Note: these axes are different than the official AprilTag [110]definitions,
even from the cameras frame of reference.
The SDK provides AprilTag rotation data as follows:
• Pitch is the measure of rotation about the X axis
• Roll is the measure of rotation about the Y axis
• Heading, or Yaw, is the measure of rotation about the Z axis
Rotation follows the traditional right-hand rule: with the thumb pointing along
the positive axis, the fingers curl in the direction of positive rotation.
Further discussion is provided here:
[111]Understanding AprilTag Detection Values
Note: This article does not discuss the FIRST Tech Challenge [112]Field
Coordinate System.
Your OpModes might relate robot orientation to the overall field or [113]
global coordinates for navigation, but thats beyond this AprilTag
introduction.
Advanced Use[114]
Option 1
If a tags position and orientation on the game field are specified in advance,
the tags pose data could be used by an advanced OpMode to calculate the
robots position on the field. This conversion math, an exercise for the
reader, can allow a robot to use the tags pose data in real-time to navigate
to the desired location on the field.
Option 2
Vision processing can consume significant CPU resources and USB communications
bandwidth. FIRST Tech Challenge teams may balance the benefits of higher
resolution and speed (frames-per-second) against the risk of overloading CPU
and bandwidth resources. The SDK 8.2 or later provides numerous tools to manage
this balance:
• select the camera resolution
• disable and enable the RC preview (called LiveView)
• disable and enable the AprilTag (or Color Processing) processor
• close the camera stream
• select a compressed video streaming format
• measure frames-per-second
• set decimation (down-sampling)
• select a pose solver algorithm
Option 3
Clearer camera images can improve AprilTag (and Color Processing) vision
processing. The SDK offers powerful webcam controls (Exposure, Gain, Focus, and
more), also available in FTC Blocks! These controls can be applied under
various lighting conditions.
Exposure and Gain are adjusted together. The SDK offers Java Sample OpMode
ConceptAprilTagOptimizeExposure.java.
Option 4
The frame of reference described above in AprilTag Axes is calculated and
provided by default in the 8.2 SDK or later. Advanced teams may prefer to
perform their own pose calculations, based on raw values from the AprilTag/
EasyOpenCV pipeline.
Those raw values are available to Java and Blocks programmers. The Java version
is shown here:
for (AprilTagDetection detection : aprilTag.getDetections()) {
Orientation rot = Orientation.getOrientation(detection.rawPose.R, AxesReference.INTRINSIC, AxesOrder.XYZ, AngleUnit.DEGREES);
// Original source data
double poseX = detection.rawPose.x;
double poseY = detection.rawPose.y;
double poseZ = detection.rawPose.z;
double poseAX = rot.firstAngle;
double poseAY = rot.secondAngle;
double poseAZ = rot.thirdAngle;
}
These raw values are converted by the SDK to the default interface, as follows:
if (detection.rawPose != null) {
detection.ftcPose = new AprilTagPoseFtc();
detection.ftcPose.x = detection.rawPose.x;
detection.ftcPose.y = detection.rawPose.z;
detection.ftcPose.z = -detection.rawPose.y;
Orientation rot = Orientation.getOrientation(detection.rawPose.R, AxesReference.INTRINSIC, AxesOrder.YXZ, outputUnitsAngle);
detection.ftcPose.yaw = -rot.firstAngle;
detection.ftcPose.roll = rot.thirdAngle;
detection.ftcPose.pitch = rot.secondAngle;
detection.ftcPose.range = Math.hypot(detection.ftcPose.x, detection.ftcPose.y);
detection.ftcPose.bearing = outputUnitsAngle.fromUnit(AngleUnit.RADIANS, Math.atan2(-detection.ftcPose.x, detection.ftcPose.y));
detection.ftcPose.elevation = outputUnitsAngle.fromUnit(AngleUnit.RADIANS, Math.atan2(detection.ftcPose.z, detection.ftcPose.y));
}
Again, further discussion is provided here:
[115]Understanding AprilTag Detection Values
Summary[116]
AprilTag is a popular camera-based technology, using a scanned image similar to
a QR Code.
The SDK version 8.2 or later includes key capabilities of AprilTag and
EasyOpenCV, a FIRST Tech Challenge-optimized interface with OpenCV for image
processing. These methods are packaged for convenient use by Java and Blocks
programmers.
By default, the SDK can detect the ID code for any AprilTag in the 36h11
family.
For AprilTags in a default or custom tag Library, the interface provides
calculated pose estimates (position and rotation) from the cameras frame of
reference. The source data is also available for advanced teams.
The AprilTag features work on Android RC phone cameras, and on webcams. Each
camera requires calibration data, for a specific resolution, to provide good
pose estimates.
Multiple cameras are supported, and a single OpMode can use AprilTag and Color
Processing. AprilTag detection is improved with webcam Camera Controls,
available also in FTC Blocks.
In FIRST Tech Challenge, AprilTag is ready to take CENTERSTAGE!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Much credit to:
• EasyOpenCV developer [117]@Windwoes
• FTC Blocks developer [118]@lizlooney
• FTC navigation expert [119]@gearsincorg
• and the smart people at [120]UMich/AprilTag.
Questions, comments and corrections to [121]westsiderobotics@verizon.net
[122] Previous [123]Next
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
© 2025 FIRST
[124]Terms of Service
[125]Privacy Policy
[126]Report an Incident
Season Presenting Sponsor RTX
References:
[1] https://ftc-resources.firstinspires.org/ftc/game
[2] https://ftc-qa.firstinspires.org/
[3] https://ftc-docs.firstinspires.org/en/latest/index.html
[7] https://ftc-docs.firstinspires.org/en/latest/overview/ftcoverview.html
[8] https://ftc-docs.firstinspires.org/en/latest/gracious_professionalism/gp.html
[9] https://ftc-docs.firstinspires.org/en/latest/persona_pages/rookie_teams/rookie_teams.html
[10] https://ftc-docs.firstinspires.org/en/latest/persona_pages/veteran_teams/veteran_teams.html
[11] https://ftc-docs.firstinspires.org/en/latest/persona_pages/coach_admin/coach_admin.html
[12] https://ftc-docs.firstinspires.org/en/latest/persona_pages/mentor_tech/mentor_tech.html
[13] https://ftc-docs.firstinspires.org/en/latest/game_specific_resources/blog/blog.html
[14] https://ftc-docs.firstinspires.org/en/latest/tech_tips/tech-tips.html
[15] https://ftc-docs.firstinspires.org/en/latest/ai/innovation_corner/innovation-corner.html
[16] https://ftc-docs.firstinspires.org/en/latest/manuals/game_manuals/game_manuals.html
[17] https://ftc-docs.firstinspires.org/en/latest/game_specific_resources/ftcqa/ftcqa.html
[18] https://ftc-docs.firstinspires.org/en/latest/game_specific_resources/playing_field_resources/playing_field_resources.html
[19] https://ftc-docs.firstinspires.org/en/latest/game_specific_resources/field_coordinate_system/field-coordinate-system.html
[20] https://ftc-docs.firstinspires.org/en/latest/programming_resources/laptops/laptops.html
[21] https://ftc-docs.firstinspires.org/en/latest/ftc_sdk/overview/index.html
[22] https://ftc-docs.firstinspires.org/en/latest/ftc_sdk/updating/index.html
[23] https://ftc-docs.firstinspires.org/en/latest/programming_resources/shared/control_system_intro/The-FTC-Control-System.html
[24] https://ftc-docs.firstinspires.org/en/latest/control_hard_compon/index.html
[25] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/index.html
[26] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/self_inspect/new-self-inspect.html
[27] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/self_inspect/self-inspect.html
[28] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html
[29] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#programming-tutorials
[30] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#supporting-documentation
[31] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#apriltag-programming
[32] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#
[33] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#introduction
[34] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#what-is-apriltag
[35] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-pose
[36] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#navigation
[37] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#annotations
[38] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-axes
[39] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#advanced-use
[40] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#summary
[41] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/visionportal_overview/visionportal-overview.html
[42] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/visionportal_webcams/visionportal-webcams.html
[43] https://ftc-docs.firstinspires.org/en/latest/apriltag/understanding_apriltag_detection_values/understanding-apriltag-detection-values.html
[44] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_localization/apriltag-localization.html
[45] https://ftc-docs.firstinspires.org/en/latest/apriltag/opmode_test_images/opmode-test-images.html
[46] https://ftc-docs.firstinspires.org/en/latest/apriltag/apriltag_tips/decode_apriltag/decode-apriltag.html
[47] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#vision-programming
[48] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#camera-color-processing
[49] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#advanced-topics
[50] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html#additional-first-website-resources
[51] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#
[52] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#introduction
[53] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#what-is-apriltag
[54] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-pose
[55] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#navigation
[56] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#annotations
[57] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-axes
[58] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#advanced-use
[59] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#summary
[60] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/visionportal_overview/visionportal-overview.html
[61] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/visionportal_webcams/visionportal-webcams.html
[62] https://ftc-docs.firstinspires.org/en/latest/apriltag/understanding_apriltag_detection_values/understanding-apriltag-detection-values.html
[63] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_localization/apriltag-localization.html
[64] https://ftc-docs.firstinspires.org/en/latest/apriltag/opmode_test_images/opmode-test-images.html
[65] https://ftc-docs.firstinspires.org/en/latest/cad_resources/index.html
[66] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/configuring/managing_esd/managing-esd.html
[67] https://ftc-docs.firstinspires.org/en/latest/manufacturing/index.html
[68] https://ftc-docs.firstinspires.org/en/latest/faq/faqs.html
[69] https://ftc-docs.firstinspires.org/en/latest/sponsors/software/software.html
[70] https://ftc-docs.firstinspires.org/en/latest/sponsors/discounts/discounts.html
[71] https://ftc-docs.firstinspires.org/en/latest/team_resources/team_resources.html
[72] https://ftc-docs.firstinspires.org/en/latest/booklets/index.html
[73] https://ftc-docs.firstinspires.org/projects/ftcdocs-archive/en/latest/index.html
[74] https://ftc-docs.firstinspires.org/en/latest/ftc_docs/form/form.html
[75] https://ftc-docs.firstinspires.org/en/latest/contrib/index.html
[76] https://ftc-docs.firstinspires.org/en/latest/index.html
[77] https://ftc-docs.firstinspires.org/en/latest/index.html
[78] https://ftc-docs.firstinspires.org/en/latest/programming_resources/index.html
[79] https://github.com/FIRST-Tech-Challenge/ftcdocs/blob/main/docs/source/apriltag/vision_portal/apriltag_intro/apriltag-intro.rst
[80] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-introduction
[81] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#introduction
[82] https://ftc-docs.firstinspires.org/en/latest/_images/005-AprilTag-Worlds.png
[83] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id1
[84] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#what-is-apriltag
[85] https://april.eecs.umich.edu/software/apriltag
[86] https://ftc-docs.firstinspires.org/en/latest/_images/010-apriltagrobots.png
[87] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id2
[88] https://ftc-docs.firstinspires.org/en/latest/_images/020-Sample-Tags.png
[89] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id3
[90] https://ftc-docs.firstinspires.org/en/latest/_downloads/ba0d87cc0d392ad0bad054d4b81e9077/AprilTag_0-20_family36h11.pdf
[91] https://ftc-docs.firstinspires.org/en/latest/_images/080-CH-LiveView-ID-code.png
[92] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id4
[93] https://github.com/rgov/apriltag-pdfs/tree/main/tag36h11/us_letter/100mm
[94] https://ftc-docs.firstinspires.org/en/latest/_images/100-Tag-size-42.png
[95] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id5
[96] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-pose
[97] https://ftc-docs.firstinspires.org/en/latest/_images/200-CH-LiveView-offsets-crop.png
[98] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id6
[99] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#navigation
[100] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#annotations
[101] https://ftc-docs.firstinspires.org/en/latest/_images/280-DS-preview.png
[102] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id7
[103] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.html#image-preview
[104] https://ftc-docs.firstinspires.org/en/latest/hardware_and_software_configuration/configuring/configuring_external_webcam/configuring-external-webcam.html#image-preview
[105] https://ftc-docs.firstinspires.org/en/latest/_images/300-RC-preview.png
[106] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#id8
[107] https://github.com/Genymobile/scrcpy
[108] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#apriltag-axes
[109] https://ftc-docs.firstinspires.org/en/latest/programming_resources/imu/imu.html#axes-definition
[110] https://github.com/AprilRobotics/apriltag/wiki/AprilTag-User-Guide#coordinate-system
[111] https://ftc-docs.firstinspires.org/en/latest/apriltag/understanding_apriltag_detection_values/understanding-apriltag-detection-values.html#understanding-apriltag-detection-values
[112] https://ftc-docs.firstinspires.org/en/latest/game_specific_resources/field_coordinate_system/field-coordinate-system.html#scope
[113] https://ftc-docs.firstinspires.org/en/latest/_downloads/7b8fbccb111a19eb3efa9eb3685a25fe/FTC-Global-Coordinates.png
[114] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#advanced-use
[115] https://ftc-docs.firstinspires.org/en/latest/apriltag/understanding_apriltag_detection_values/understanding-apriltag-detection-values.html#understanding-apriltag-detection-values
[116] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/apriltag_intro/apriltag-intro.html#summary
[117] https://github.com/Windwoes
[118] https://github.com/lizlooney
[119] https://github.com/gearsincorg
[120] https://april.eecs.umich.edu/software/apriltag
[121] mailto:westsiderobotics%40verizon.net
[122] https://ftc-docs.firstinspires.org/en/latest/programming_resources/shared/managing_smartphone_rc/Managing-a-Smartphone-Robot-Controller.html
[123] https://ftc-docs.firstinspires.org/en/latest/apriltag/vision_portal/visionportal_overview/visionportal-overview.html
[124] https://ftc-docs.firstinspires.org/en/latest/tos/tos.html
[125] https://www.firstinspires.org/privacy-policy
[126] https://www.firstinspires.org/programs/youth-protection-program