Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/CI.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
pip install -r source/requirements.txt
- name: Install LaTeX
run: |
sudo apt-get update
sudo apt install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra latexmk texlive-lang-greek texlive-luatex texlive-xetex texlive-fonts-extra dvipng librsvg2-bin
- name: Build HTML
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/link-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:

jobs:
check-links:
if: github.repository_owner == 'wpilibsuite'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Expand Down
75 changes: 75 additions & 0 deletions source/_static/css/frc-rtl.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
@import url('https://fonts.googleapis.com/css2?family=Heebo&display=swap');

body, .rst-content .toctree-wrapper > p.caption, h1, h2, h3, h4, h5, h6, legend {
font-family: 'Heebo', sans-serif;
}
body {
direction: rtl;
}
.fa:before {
transform: scale(-1, 1);
}
.rst-content div[class^=highlight] pre, .highlighttable {
direction: ltr;
}
.rst-content code, .rst-content tt {
direction: ltr;
unicode-bidi: bidi-override;
}

.link-bar-container {
margin-right: 320px;
margin-left: 0;
}
#link-bar li, .wy-nav-top i {
float: right;
}

.wy-nav-side, .rst-versions {
right: 0;
left: unset;
}
.wy-nav-content-wrap {
margin-right: 320px;
margin-left: 0;
}
@media screen and (max-width: 768px) {
.wy-nav-side, .rst-versions {
right: -300px;
}
.wy-nav-content-wrap {
margin-right: 0;
}
.wy-nav-side.shift, .rst-versions.shift {
right: 0;
left: unset;
}
.wy-nav-content-wrap.shift {
right: 85%;
left: unset;
}
}

.rst-content .admonition-title:before {
margin-right: 0;
margin-left: 4px;
}
.wy-breadcrumbs li.wy-breadcrumbs-aside {
float: left;
}
.float-right {
float: left;
}
.float-left {
float: right;
}

.rst-versions .rst-current-version {
text-align: left;
}
.rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book {
float: right;
}
.rst-other-versions {
text-align: right;
}
7 changes: 7 additions & 0 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,12 @@

def setup(app):
app.add_css_file('css/frc-rtd.css')

# Right-to-left support
is_rtl = app.config.language in rtl_locale
app.config.hoverxref_tooltip_side = 'left' if is_rtl else 'right'
if is_rtl:
app.add_css_file('css/frc-rtl.css')

# -- Options for latex generation --------------------------------------------

Expand Down Expand Up @@ -199,3 +205,4 @@ def setup(app):

gettext_compact = False
locale_dirs = ['locale/']
rtl_locale = ['he']
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ The Project Homepage
The project homepage contains some statistics and Project News. Throughout the beta, the Project News section may be updated with the latest information from the *FIRST* technical staff. The top ribbon contains tabs allowing you to navigate to the different sections of the project:

1. Trackers - The Trackers tab is where the bug tracker for the project is located.
2. File Releases - The File Releases tab will host any files you will need to download as part of the Beta test process such as NI FRC Game Tools files.
3. Documents - the Documents tab will contain any documents to be distributed to Beta teams. Much of the documentation for the Beta test will be located on the FRC\ |reg| Docs site but there may still be documents posted here as well.
2. File Releases - The File Releases tab will host any files you will need to download as part of the Beta test process such as NI FRC\ |reg| Game Tools files.
3. Documents - the Documents tab will contain any documents to be distributed to Beta teams. Much of the documentation for the Beta test will be located on the FRC Docs site but there may still be documents posted here as well.
4. Discussions - The Discussions tab contains a forum which will allow teams to post questions or discussions about the Beta test, software or documentation. Task reports will also be posted here.
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. include:: <isonum.txt>

Trackers - Reporting Bugs
=========================

Expand All @@ -8,7 +10,7 @@ Teamforge Bug Tracker

.. image:: images/trackers-reporting-bugs/report-bug.png

The bug tracker is used for reporting bugs you discover in WPILib or other FRC software. If you are not sure if particular behavior is a bug or not, err on the side of reporting the bug (or at least posting in the Discussion section).
The bug tracker is used for reporting bugs you discover in WPILib or other FRC\ |reg| software. If you are not sure if particular behavior is a bug or not, err on the side of reporting the bug (or at least posting in the Discussion section).

On the Trackers tab, click on Bugs to reach the Bug Tracker. To Submit a new bug, click Submit New Artifact. The fields of the artifact are:

Expand Down
4 changes: 3 additions & 1 deletion source/docs/beta/tasks/beta-task-overview.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.. include:: <isonum.txt>

Beta Task Overview
==================

This document provides an overview of the Tasks assigned for the Control System Beta Test. Further details on each Task can be found in the subsequent pages of this section.

.. note:: For the 2021 FRC Beta Test, some of you may not have access to physical robot hardware. We recognize this will inhibit your ability to complete some tasks. Teams without hardware should skip Task 2, merely ensure they can build their 2020 robot code for Task 3 and focus on Task 4, testing new features to the extent possible using simulation.
.. note:: For the 2021 FRC\ |reg| Beta Test, some of you may not have access to physical robot hardware. We recognize this will inhibit your ability to complete some tasks. Teams without hardware should skip Task 2, merely ensure they can build their 2020 robot code for Task 3 and focus on Task 4, testing new features to the extent possible using simulation.

Task 0 - Background and Preparation
-----------------------------------
Expand Down
4 changes: 3 additions & 1 deletion source/docs/beta/tasks/task-0-tools-and-docs.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

Task 0: Beta Test Tools and Documentation Familiarization
=========================================================

Task: Learn about the tools and documentation sources for the FRC Beta
Task: Learn about the tools and documentation sources for the FRC\ |reg| Beta

Beta Test Tools
---------------
Expand Down
4 changes: 3 additions & 1 deletion source/docs/beta/tasks/task-1-software-install.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

Task 1: Software Installation
=============================

Task: Choose, acquire, and install the software required for developing FRC software in the language you have been assigned (C++, Java or LabVIEW).
Task: Choose, acquire, and install the software required for developing FRC\ |reg| software in the language you have been assigned (C++, Java or LabVIEW).

Overview
--------
Expand Down
4 changes: 3 additions & 1 deletion source/docs/beta/tasks/task-2-configure-and-benchtop.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. include:: <isonum.txt>

Task 2: Configure roboRIO & Benchtop Test
=========================================

Expand All @@ -9,7 +11,7 @@ Task:
Overview
--------

Before using the roboRIO controller with the Beta software, it must be imaged with the new image and configured with your FRC team number. As part of the purpose of this Beta test is to test the documentation and its ease of use, no direct links to setup instructions will be provided. Instructions for configuring the roboRIO are available on the :ref:`docs/zero-to-robot/step-3/index:Step 3: Preparing Your Robot` page.
Before using the roboRIO controller with the Beta software, it must be imaged with the new image and configured with your FRC\ |reg| team number. As part of the purpose of this Beta test is to test the documentation and its ease of use, no direct links to setup instructions will be provided. Instructions for configuring the roboRIO are available on the :ref:`docs/zero-to-robot/step-3/index:Step 3: Preparing Your Robot` page.

.. note:: The image version in the documentation may not be updated yet. You should use the latest image available after installing the latest Beta Update.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Contribution Guidelines
=======================

Welcome to the contribution guidelines for the frc-docs project. If you are unfamiliar to writing in the reStructuredText format, please read up on it `here <https://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html>`__.
Welcome to the contribution guidelines for the frc\ |reg|-docs project. If you are unfamiliar to writing in the reStructuredText format, please read up on it `here <https://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html>`__.

.. important:: *FIRST*\ |reg| retains all rights to documentation and images provided. Credit for articles/updates will be in the `GitHub commit history. <https://github.com/wpilibsuite/frc-docs/graphs/commit-activity>`_

Expand Down
4 changes: 3 additions & 1 deletion source/docs/contributing/frc-docs/translations.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. include:: <isonum.txt>

Translations
============

Expand All @@ -22,7 +24,7 @@ An example of the original text may be

.. code-block:: text

For complete wiring instructions/diagrams, please see the :doc:`Wiring the FRC Control System Document <Wiring the FRC Control System document>`.
For complete wiring instructions/diagrams, please see the :doc:`Wiring the FRC\ |reg| Control System Document <Wiring the FRC Control System document>`.

where the ``Wiring the FRC Control System Document`` then gets translated.

Expand Down
4 changes: 3 additions & 1 deletion source/docs/contributing/wpilib/index.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

Developing with allwpilib
=========================

.. important:: This document contains information for developers *of* WPILib. This is not for programming FRC robots.
.. important:: This document contains information for developers *of* WPILib. This is not for programming FRC\ |reg| robots.

This is a list of links to the various documentation for the `allwpilib <https://github.com/wpilibsuite/allwpilib>`__ repository.

Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/hardware-basics/status-lights-ref.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

Status Light Quick Reference
============================

Many of the components of the FRC Control System have indicator lights that can be used to quickly diagnose problems with your robot. This guide shows each of the hardware components and describes the meaning of the indicators. Photos and information from Innovation FIRST and Cross the Road Electronics.
Many of the components of the FRC\ |reg| Control System have indicator lights that can be used to quickly diagnose problems with your robot. This guide shows each of the hardware components and describes the meaning of the indicators. Photos and information from Innovation FIRST and Cross the Road Electronics.

Robot Signal Light (RSL)
------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

Wiring Best Practices
========================

.. tip:: The article :ref:`Wiring the FRC Control System <docs/zero-to-robot/step-1/how-to-wire-a-robot:How to Wire an FRC Robot>` walks through the details of what connects where to wire up the FRC Control System and this article provides some additional "Best Practices" that may increase reliability and make maintenance easier. Take a look at :doc:`Preemptive Troubleshooting <preemptive-troubleshooting>` for more tips and tricks.
.. tip:: The article :ref:`Wiring the FRC\ |reg| Control System <docs/zero-to-robot/step-1/how-to-wire-a-robot:How to Wire an FRC Robot>` walks through the details of what connects where to wire up the FRC Control System and this article provides some additional "Best Practices" that may increase reliability and make maintenance easier. Take a look at :doc:`Preemptive Troubleshooting <preemptive-troubleshooting>` for more tips and tricks.

Vibration/Shock
------------------
Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/accelerometers-hardware.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.. include:: <isonum.txt>

Accelerometers - Hardware
==========================

Accelerometers are common sensors used to measure acceleration.

In principle, precise measurements of acceleration can be double-integrated and used to track position (similarly to how the measurement of turn rate from a gyroscope can be integrated to determine heading) - however, in practice, accelerometers that are available within the legal FRC price range are not nearly accurate for this use. However, accelerometers are still useful for a number of tasks in FRC.
In principle, precise measurements of acceleration can be double-integrated and used to track position (similarly to how the measurement of turn rate from a gyroscope can be integrated to determine heading) - however, in practice, accelerometers that are available within the legal FRC\ |reg| price range are not nearly accurate for this use. However, accelerometers are still useful for a number of tasks in FRC.

The roboRIO comes with a :ref:`built-in three-axis accelerometer <docs/software/sensors/accelerometers-software:BuiltInAccelerometer>` that all teams can use, however teams seeking more-precise measurements may purchase and use a peripheral accelerometer, as well.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.. include:: <isonum.txt>

Analog Potentiometers - Hardware
================================

.. note:: This section covers analog potentiometer hardware. For a software guide to analog potentiometers, see :ref:`docs/software/sensors/analog-potentiometers-software:Analog Potentiometers - Software`.

.. warning:: Potentiometers generally have a mechanically-limited travel range. Users should be careful that their mechanisms do not turn their potentiometers past their maximum travel, as this will damage or destroy the potentiometer.

Apart from :doc:`quadrature encoders <encoders-hardware>`, another common way of measuring rotation on FRC robots is with analog potentiometers. A potentiometer is simply a variable resistor - as the shaft of the potentiometer turns, the resistance changes (usually linearly). Placing this resistor in a `voltage divider <https://en.wikipedia.org/wiki/Voltage_divider>`__ allows the user to easily measure the resistance by measuring the voltage across the potentiometer, which can then be used to calculate the rotational position of the shaft.
Apart from :doc:`quadrature encoders <encoders-hardware>`, another common way of measuring rotation on FRC\ |reg| robots is with analog potentiometers. A potentiometer is simply a variable resistor - as the shaft of the potentiometer turns, the resistance changes (usually linearly). Placing this resistor in a `voltage divider <https://en.wikipedia.org/wiki/Voltage_divider>`__ allows the user to easily measure the resistance by measuring the voltage across the potentiometer, which can then be used to calculate the rotational position of the shaft.

Wiring an analog potentiometer
------------------------------
Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/encoders-hardware.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.. include:: <isonum.txt>

Encoders - Hardware
===================

.. note:: This section covers encoder hardware. For a software guide to encoders, see :ref:`docs/software/sensors/encoders-software:Encoders - Software`.

Quadrature encoders are by far the most common method for measuring rotational motion in FRC, and for good reason - they are cheap, easy-to-use, and reliable. As they produce digital signals, they are less-prone to noise and interference than analog devices (such as :doc:`potentiometers <analog-potentiometers-hardware>`).
Quadrature encoders are by far the most common method for measuring rotational motion in FRC\ |reg|, and for good reason - they are cheap, easy-to-use, and reliable. As they produce digital signals, they are less-prone to noise and interference than analog devices (such as :doc:`potentiometers <analog-potentiometers-hardware>`).

The term "quadrature" refers to the method by which the motion is measured/encoded. A quadrature encoder produces two square-wave pulses that are 90-degrees out-of-phase from each other, as seen in the picture below:

Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/gyros-hardware.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
.. include:: <isonum.txt>

Gyroscopes - Hardware
=====================

.. note:: This section covers gyro hardware. For a software guide to gyros, see :ref:`docs/software/sensors/gyros-software:Gyroscopes - Software`.

Gyroscopes (or "gyros", for short) are devices that measure rate-of-rotation. These are particularly useful for stabilizing robot driving, or for measuring heading or tilt by integrating (adding-up) the rate measurements to get a measurement of total angular displacement.

Several popular FRC devices known as :ref:`IMUs <docs/hardware/sensors/accelerometers-hardware:IMUs (Inertial Measurement Units)>` (Inertial Measurement Units) combine 3-axis gyros, accelerometers and other position sensors into one device. Some popular examples are:
Several popular FRC\ |reg| devices known as :ref:`IMUs <docs/hardware/sensors/accelerometers-hardware:IMUs (Inertial Measurement Units)>` (Inertial Measurement Units) combine 3-axis gyros, accelerometers and other position sensors into one device. Some popular examples are:

- `Analog Devices ADIS16448 and ADIS 16470 IMUs <https://www.analog.com/en/landing-pages/001/first.html>`__
- `CTRE Pigeon IMU <https://www.ctr-electronics.com/gadgeteer-imu-module-pigeon.html>`__
Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/lidar.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
.. include:: <isonum.txt>

LIDAR - Hardware
================

LIDAR (light detection and ranging) sensors are a variety of rangefinder seeing increasing use in FRC.
LIDAR (light detection and ranging) sensors are a variety of rangefinder seeing increasing use in FRC\ |reg|.

LIDAR sensors work quite similarly to :doc:`ultrasonics <ultrasonics-hardware>`, but use light instead of sound. A laser is pulsed, and the sensor measures the time until the pulse bounces back.

Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/proximity-switches.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. include:: <isonum.txt>

Proximity Switches - Hardware
=============================

Expand All @@ -15,7 +17,7 @@ Proximity switches can be either "normally-open," in which activating the switch
Types of proximity switches
---------------------------

There are several types of proximity switches that are commonly-used in FRC:
There are several types of proximity switches that are commonly-used in FRC\ |reg|:

- `Mechanical Proximity Switches ("limit switches")`_
- `Magnetic Proximity Switches`_
Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/sensor-overview-hardware.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
.. include:: <isonum.txt>

Sensor Overview - Hardware
==========================

.. note:: This section covers sensor hardware, not the use of sensors in code. For a software sensor guide, see :ref:`docs/software/sensors/sensor-overview-software:Sensor Overview - Software`.

In order to be effective, it is often vital for robots to be able to gather information about their surroundings. Devices that provide feedback to the robot on the state of its environment are called "sensors." There are a large variety of sensors available to FRC teams, for measuring everything from on-field positioning to robot orientation to motor/mechanism positioning. Making use of sensors is an absolutely crucial skill for on-field success; while most FRC games do have tasks that can be accomplished by a "blind" robot, the best robots rely heavily on sensors to accomplish game tasks as quickly and reliably as possible.
In order to be effective, it is often vital for robots to be able to gather information about their surroundings. Devices that provide feedback to the robot on the state of its environment are called "sensors." There are a large variety of sensors available to FRC\ |reg| teams, for measuring everything from on-field positioning to robot orientation to motor/mechanism positioning. Making use of sensors is an absolutely crucial skill for on-field success; while most FRC games do have tasks that can be accomplished by a "blind" robot, the best robots rely heavily on sensors to accomplish game tasks as quickly and reliably as possible.

Additionally, sensors can be extremely important for robot safety - many robot mechanisms are capable of breaking themselves if used incorrectly. Sensors provide a safeguard against this, allowing robots to, for example, disable a motor if a mechanism is against a hard-stop.

Expand Down
4 changes: 3 additions & 1 deletion source/docs/hardware/sensors/serial-buses.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. include:: <isonum.txt>

Serial Buses
============

Expand All @@ -16,7 +18,7 @@ The roboRIO supports many basic types of serial communications:
- `USB Host`_
- `CAN Bus`_

Additionally, the roboRIO supports communications with peripheral devices over the CAN bus. However, as the FRC CAN protocol is quite idiosyncratic, relatively few peripheral sensors support it (though it is heavily used for motor controllers).
Additionally, the roboRIO supports communications with peripheral devices over the CAN bus. However, as the FRC\ |reg| CAN protocol is quite idiosyncratic, relatively few peripheral sensors support it (though it is heavily used for motor controllers).

I2C
---
Expand Down
Loading