diff --git a/source/docs/controls-overviews/control-system-hardware.rst b/source/docs/controls-overviews/control-system-hardware.rst index 7dc16e0162..c5b7b0d99c 100644 --- a/source/docs/controls-overviews/control-system-hardware.rst +++ b/source/docs/controls-overviews/control-system-hardware.rst @@ -171,7 +171,7 @@ Talon SRX :alt: Talon SRX :width: 500 -The `Talon SRX Motor Controller `__ is a "smart motor controller" from Cross The Road Electronics/VEX Robotics. The Talon SRX can be controlled over the CAN bus or PWM interface. When using the CAN bus control, this device can take inputs from limit switches and potentiometers, encoders, or similar sensors in order to perform advanced control. For more information see the `Talon SRX User's Guide `__. +The `Talon SRX Motor Controller `__ is a "smart motor controller" from Cross The Road Electronics/VEX Robotics. The Talon SRX can be controlled over the CAN bus or :term:`PWM` interface. When using the CAN bus control, this device can take inputs from limit switches and potentiometers, encoders, or similar sensors in order to perform advanced control. For more information see the `Talon SRX User's Guide `__. Victor SPX ^^^^^^^^^^ @@ -274,7 +274,7 @@ Venom Motor Controller :alt: Venom Motor Controller :width: 500 -The `Venom Motor Controller `__ from Playing With Fusion is integrated into a motor based on the original CIM. Speed, current, temperature, and position are all measured onboard, enabling advanced control modes without complicated sensing and wiring schemes. +The `Venom Motor Controller `__ from Playing With Fusion is integrated into a motor based on the original :term:`CIM`. Speed, current, temperature, and position are all measured onboard, enabling advanced control modes without complicated sensing and wiring schemes. Nidec Dynamo BLDC Motor with Controller ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/docs/hardware/hardware-basics/can-wiring-basics.rst b/source/docs/hardware/hardware-basics/can-wiring-basics.rst index a178d6a2a1..a8340e3d0d 100644 --- a/source/docs/hardware/hardware-basics/can-wiring-basics.rst +++ b/source/docs/hardware/hardware-basics/can-wiring-basics.rst @@ -1,7 +1,7 @@ CAN Wiring Basics ================= -CAN is a two wire network that is designed to facilitate communication between multiple devices on your robot. It is recommended that CAN on your robot follow a "daisy-chain" topology. This means that the CAN wiring should usually start at your roboRIO and go into and out of each device successively until finally ending at the PDP. +:term:`CAN` is a two wire network that is designed to facilitate communication between multiple devices on your robot. It is recommended that CAN on your robot follow a "daisy-chain" topology. This means that the CAN wiring should usually start at your roboRIO and go into and out of each device successively until finally ending at the :term:`PDP`. .. image:: images/can-wiring-basics/daisychain.png diff --git a/source/docs/hardware/hardware-basics/preemptive-troubleshooting.rst b/source/docs/hardware/hardware-basics/preemptive-troubleshooting.rst index 22b3352a5b..227da2ec2a 100644 --- a/source/docs/hardware/hardware-basics/preemptive-troubleshooting.rst +++ b/source/docs/hardware/hardware-basics/preemptive-troubleshooting.rst @@ -109,7 +109,7 @@ Swarf is fine chips or filings of stone, metal, or other material produced by a Radio Barrel Jack ----------------- -Make sure the correct barrel jack is used, not one that is too small and falls out for no reason. This isn’t common, but ask an FTA and every once in awhile a team will use some random barrel jack that is not sized correctly, and it falls out in a match on first contact. +Make sure the correct barrel jack is used, not one that is too small and falls out for no reason. This isn’t common, but ask an :term:`FTA` and every once in awhile a team will use some random barrel jack that is not sized correctly, and it falls out in a match on first contact. Ethernet Cable -------------- diff --git a/source/docs/hardware/hardware-basics/status-lights-ref.rst b/source/docs/hardware/hardware-basics/status-lights-ref.rst index 6e608805c3..cde18f7aff 100644 --- a/source/docs/hardware/hardware-basics/status-lights-ref.rst +++ b/source/docs/hardware/hardware-basics/status-lights-ref.rst @@ -113,7 +113,7 @@ PDP Status/Comm LEDs .. tip:: If a PDP LED is showing more than one color, see the PDP LED special states table below. For more information on resolving PDP faults see the PDP User Manual. -.. note:: Note that the No CAN Comm fault will occur if the PDP cannot communicate with the roboRIO via CAN Bus. +.. note:: Note that the No :term:`CAN` Comm fault will occur if the PDP cannot communicate with the roboRIO via CAN Bus. PDP Special States ^^^^^^^^^^^^^^^^^^ @@ -610,7 +610,7 @@ REV Robotics Servo Power Module Status LEDs ^^^^^^^^^^^ -Each channel has a corresponding status LED that will indicate the sensed state of the connected PWM signal. The table below describes each state’s corresponding LED pattern. +Each channel has a corresponding status LED that will indicate the sensed state of the connected :term:`PWM` signal. The table below describes each state’s corresponding LED pattern. +-----------------------+----------------+ | State | Pattern | diff --git a/source/docs/hardware/hardware-basics/wiring-pneumatics-pcm.rst b/source/docs/hardware/hardware-basics/wiring-pneumatics-pcm.rst index daffcf67bc..5346012043 100644 --- a/source/docs/hardware/hardware-basics/wiring-pneumatics-pcm.rst +++ b/source/docs/hardware/hardware-basics/wiring-pneumatics-pcm.rst @@ -8,7 +8,7 @@ This page describes wiring pneumatics with the CTRE Pneumatic Control Module (PC Wiring Overview --------------- -A single PCM will support most pneumatics applications, providing an output for the compressor, input for the pressure switch, and outputs for up to 8 solenoid channels (12V or 24V selectable). The module is connected to the roboRIO over the CAN bus and powered via 12V from the PDP or PDH. +A single PCM will support most pneumatics applications, providing an output for the compressor, input for the pressure switch, and outputs for up to 8 solenoid channels (12V or 24V selectable). The module is connected to the roboRIO over the :term:`CAN` bus and powered via 12V from the PDP or PDH. For complicated robot designs requiring more channels or multiple solenoid voltages, additional PCMs or PHs can be added to the control system. diff --git a/source/docs/hardware/hardware-basics/wiring-pneumatics-ph.rst b/source/docs/hardware/hardware-basics/wiring-pneumatics-ph.rst index f6c5bc19c9..5e8c479d8d 100644 --- a/source/docs/hardware/hardware-basics/wiring-pneumatics-ph.rst +++ b/source/docs/hardware/hardware-basics/wiring-pneumatics-ph.rst @@ -1,7 +1,7 @@ Wiring Pneumatics - REV Pneumatic Hub ===================================== -This page describes wiring pneumatics with the REV Pneumatic Hub (PH). For instructions on wiring pneumatics with the CTRE Pneumatic Control Module (PCM) see :doc:`this page `. +This page describes wiring pneumatics with the REV Pneumatic Hub (:term:`PH`). For instructions on wiring pneumatics with the CTRE Pneumatic Control Module (:term:`PCM`) see :doc:`this page `. .. hint:: For pneumatics safety & mechanical requirements, consult this year's Robot Construction rules. For mechanical design guidelines, the FIRST Pneumatics Manual is located `here `__ @@ -16,7 +16,7 @@ This page describes wiring pneumatics with the REV Pneumatic Hub (PH). For instr Wiring Overview --------------- -A single PH will support most pneumatics applications, providing an output for the compressor, input for a pressure switch, and outputs for up to 16 solenoid channels (12V or 24V selectable). The module is connected to the roboRIO over the CAN bus and powered via 12V from the PDP/PDH. +A single PH will support most pneumatics applications, providing an output for the compressor, input for a pressure switch, and outputs for up to 16 solenoid channels (12V or 24V selectable). The module is connected to the roboRIO over the :term:`CAN` bus and powered via 12V from the PDP/PDH. For complicated robot designs requiring more channels or multiple solenoid voltages, additional PHs or PCMs can be added to the control system. diff --git a/source/docs/hardware/sensors/gyros-hardware.rst b/source/docs/hardware/sensors/gyros-hardware.rst index e01251151c..439ee85ef9 100644 --- a/source/docs/hardware/sensors/gyros-hardware.rst +++ b/source/docs/hardware/sensors/gyros-hardware.rst @@ -33,7 +33,7 @@ Three-axis Gyros ^^^^^^^^^^^^^^^^ .. image:: images/gyros-hardware/adis16470-gyro-to-roborio.jpeg - :alt: This is the ADIS16470 IMU plugged in to the SPI port. + :alt: This is the ADIS16470 :term:`IMU` plugged in to the SPI port. :width: 400 Three-axis gyros measure rotation rate around all three spacial axes (typically labeled x, y, and z). The motion around these axis is called pitch, yaw, and roll. diff --git a/source/docs/hardware/sensors/serial-buses.rst b/source/docs/hardware/sensors/serial-buses.rst index 488ea3e914..1dc0a41c4e 100644 --- a/source/docs/hardware/sensors/serial-buses.rst +++ b/source/docs/hardware/sensors/serial-buses.rst @@ -18,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\ |reg| 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 :term:`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 --- @@ -29,9 +29,9 @@ I2C .. image:: images/serial-buses/i2c-pinout.png :alt: I2C roboRIO port pin specifications. -To communicate to peripheral devices over I2C, each pin should be wired to its corresponding pin on the device. I2C allows users to wire a "chain" of slave devices to a single port, so long as those devices have separate IDs set. +To communicate to peripheral devices over :term:`I2C`, each pin should be wired to its corresponding pin on the device. I2C allows users to wire a "chain" of slave devices to a single port, so long as those devices have separate IDs set. -The I2C bus can also be used through the `MXP expansion port`_. The I2C bus on the MXP is independent. For example, a device on the main bus can have the same ID as a device on the MXP bus. +The I2C bus can also be used through the `MXP expansion port`_. The I2C bus on the :term:`MXP` is independent. For example, a device on the main bus can have the same ID as a device on the MXP bus. .. warning:: Be sure to familiarize yourself on the following known issue before using the onboard I2C port: :ref:`docs/yearly-overview/known-issues:Onboard I2C Causing System Lockups` @@ -44,7 +44,7 @@ SPI .. image:: images/serial-buses/spi-pinout.png :alt: SPI roboRIO port pin specifications. -To communicate to peripheral devices over SPI, each pin should be wired to its corresponding pin on the device. The SPI port supports communications to up to four devices (corresponding to the Chip Select (CS) 0-3 pins on the diagram above). +To communicate to peripheral devices over :term:`SPI`, each pin should be wired to its corresponding pin on the device. The SPI port supports communications to up to four devices (corresponding to the Chip Select (CS) 0-3 pins on the diagram above). The SPI bus can also be used through the `MXP expansion port`_. The MXP port provides independent clock, and input/output lines and an additional CS. @@ -88,7 +88,7 @@ MXP Expansion Port .. image:: images/serial-buses/mxp-pinout.png :alt: MXP pinout. -Several of the serial buses are also available for use through the roboRIO's MXP Expansion Port. This port allows users to make use of many additional :doc:`digital ` and :doc:`analog ` inputs, as well as the various serial buses. +Several of the serial buses are also available for use through the roboRIO's :term:`MXP` Expansion Port. This port allows users to make use of many additional :doc:`digital ` and :doc:`analog ` inputs, as well as the various serial buses. Many peripheral devices attach directly to the MXP port for convenience, requiring no wiring on the part of the user. diff --git a/source/docs/networking/networking-introduction/ip-configurations.rst b/source/docs/networking/networking-introduction/ip-configurations.rst index b0c04e3c2b..220c7179e7 100644 --- a/source/docs/networking/networking-introduction/ip-configurations.rst +++ b/source/docs/networking/networking-introduction/ip-configurations.rst @@ -30,7 +30,7 @@ This section describes networking when connected to the Field Network for match On the Field DHCP Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Field Network runs a DHCP server with pools for each team that will hand out addresses in the range of ``10.TE.AM.20`` to ``10.TE.AM.199`` with a subnet mask of ``255.255.255.0``, and a default gateway of ``10.TE.AM.4``. +The Field Network runs a :term:`DHCP` server with pools for each team that will hand out addresses in the range of ``10.TE.AM.20`` to ``10.TE.AM.199`` with a subnet mask of ``255.255.255.0``, and a default gateway of ``10.TE.AM.4``. When configured for an event, the Team Radio runs a DHCP server with a pool for devices onboard the robot that will hand out addresses in the range of 10.TE.AM.200 to 10.TE.AM.219 with a subnet mask of 255.255.255.0, and a gateway of 10.TE.AM.1. - OpenMesh OM5P-AN or OM5P-AC radio - Static ``10.TE.AM.1`` programmed by @@ -50,7 +50,7 @@ It is also possible to configure static IPs on your devices to accommodate devic - roboRIO - Static ``10.TE.AM.2`` would be a reasonable choice, subnet mask of ``255.255.255.0`` (default) - Driver Station - Static ``10.TE.AM.5`` would be a reasonable choice, - subnet mask **must** be ``255.0.0.0`` to enable the DS to reach both the robot and FMS Server, without additionally configuring the default gateway. + subnet mask **must** be ``255.0.0.0`` to enable the DS to reach both the robot and :term:`FMS` Server, without additionally configuring the default gateway. If a static address is assigned and the subnet mask is set to ``255.255.255.0``, then the default gateway must be configured to ``10.TE.AM.4``. - IP Camera (if used) - Static ``10.TE.AM.11`` would be a reasonable choice, subnet ``255.255.255.0`` should be fine diff --git a/source/docs/networking/networking-introduction/networking-basics.rst b/source/docs/networking/networking-introduction/networking-basics.rst index e2318c918f..c485a673c3 100644 --- a/source/docs/networking/networking-introduction/networking-basics.rst +++ b/source/docs/networking/networking-introduction/networking-basics.rst @@ -57,7 +57,7 @@ Dynamically assigning IP addresses means that we are letting a device on the net What is a DHCP server? ~~~~~~~~~~~~~~~~~~~~~~ -A DHCP server is a device that runs the DHCP service to monitor the network for new devices to configure. In larger businesses, this could be a dedicated computer running the DHCP service and that computer would be the DHCP server. For home networks, FRC networks, and other smaller networks, the DHCP service is usually running on the router; in this case, the router is the DHCP server. +A :term:`DHCP` server is a device that runs the DHCP service to monitor the network for new devices to configure. In larger businesses, this could be a dedicated computer running the DHCP service and that computer would be the DHCP server. For home networks, FRC networks, and other smaller networks, the DHCP service is usually running on the router; in this case, the router is the DHCP server. This means that if you ever run into a situation where you need to have a DHCP server assigning IP addresses to your network devices, it’s as simple as finding the closest home router, and plugging it in. @@ -175,7 +175,7 @@ If using the USB interface, no network setup is required (you do need the :ref:` Ethernet/Wireless ----------------- -The :ref:`docs/zero-to-robot/step-3/radio-programming:Programming your Radio` will enable the DHCP server on the OpenMesh radio in the home use case (AP mode), if you are putting the OpenMesh in bridge mode and using a router, you can enable DHCP addressing on the router. The bridge is set to the same team-based IP address as before (``10.TE.AM.1``) and will hand out DHCP address from ``10.TE.AM.20`` to ``10.TE.AM.199``. When connected to the field, FMS will also hand out addresses in the same IP range. +The :ref:`docs/zero-to-robot/step-3/radio-programming:Programming your Radio` will enable the DHCP server on the OpenMesh radio in the home use case (AP mode), if you are putting the OpenMesh in bridge mode and using a router, you can enable DHCP addressing on the router. The bridge is set to the same team-based IP address as before (``10.TE.AM.1``) and will hand out DHCP address from ``10.TE.AM.20`` to ``10.TE.AM.199``. When connected to the field, :term:`FMS` will also hand out addresses in the same IP range. Summary ------- diff --git a/source/docs/networking/networking-introduction/roborio-network-troubleshooting.rst b/source/docs/networking/networking-introduction/roborio-network-troubleshooting.rst index 821fa96384..d03afea86c 100644 --- a/source/docs/networking/networking-introduction/roborio-network-troubleshooting.rst +++ b/source/docs/networking/networking-introduction/roborio-network-troubleshooting.rst @@ -3,7 +3,7 @@ roboRIO Network Troubleshooting =============================== -The roboRIO and FRC\ |reg| tools use dynamic IP addresses (DHCP) for network connectivity. This article describes steps for troubleshooting networking connectivity between your PC and your roboRIO +The roboRIO and FRC\ |reg| tools use dynamic IP addresses (:term:`DHCP`) for network connectivity. This article describes steps for troubleshooting networking connectivity between your PC and your roboRIO Ping the roboRIO using mDNS --------------------------- diff --git a/source/docs/romi-robot/getting-to-know-romi.rst b/source/docs/romi-robot/getting-to-know-romi.rst index 2870571ff1..54bdacc9ba 100644 --- a/source/docs/romi-robot/getting-to-know-romi.rst +++ b/source/docs/romi-robot/getting-to-know-romi.rst @@ -37,7 +37,7 @@ The wheels have a diameter of 70mm (2.75"). They have a trackwidth of 141mm (5.5 The encoders are connected directly to the motor output shaft and have 12 Counts Per Revolution (CPR). With the provided gear ratio, this nets 1440 counts per wheel revolution. -The motor PWM channels are listed in the table below. +The motor :term:`PWM` channels are listed in the table below. +-------------+--------------------------+ | Channel | Romi Hardware Component | @@ -94,7 +94,7 @@ The Romi 32U4 control board has 3 push buttons and 3 LEDs onboard that are expos | DIO 3 | Yellow LED (output only) | +-------------+--------------------------------------+ -Writes to DIO 0, 4, 5, 6 and 7 will result in no-ops. +Writes to DIO 0, 4, 5, 6 and 7 will result in a :term:`no-op`. Configurable GPIO Pins ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/docs/romi-robot/hardware-support.rst b/source/docs/romi-robot/hardware-support.rst index ada9ffd115..86a75a098c 100644 --- a/source/docs/romi-robot/hardware-support.rst +++ b/source/docs/romi-robot/hardware-support.rst @@ -9,7 +9,7 @@ Compatible Hardware In general, the Romi is compatible with the following: - Simple Digital Input/Output devices (e.g. bumper switches, single LEDs) -- Standard RC-style PWM output devices (e.g. servos, PWM based motor controllers) +- Standard RC-style :term:`PWM` output devices (e.g. servos, PWM based motor controllers) - Analog Input sensors (e.g distance sensors that report distance as a voltage) Incompatible Hardware diff --git a/source/docs/romi-robot/index.rst b/source/docs/romi-robot/index.rst index 9c5d598c2d..097e6672e4 100644 --- a/source/docs/romi-robot/index.rst +++ b/source/docs/romi-robot/index.rst @@ -1,7 +1,7 @@ Getting Started with Romi ========================= -The Romi is a small and inexpensive robot designed for learning about programming FRC robots. All the same tools used for programming full-sized FRC robots can be used to program the Romi. The Romi comes with two drive motors with integrated wheel encoders. It also includes an IMU sensor that can be used for measuring headings and accelerations. Using it is as simple as writing a robot program, and running it on your computer. It will command the Romi to follow the steps in the program. +The Romi is a small and inexpensive robot designed for learning about programming FRC robots. All the same tools used for programming full-sized FRC robots can be used to program the Romi. The Romi comes with two drive motors with integrated wheel encoders. It also includes an :term:`IMU` sensor that can be used for measuring headings and accelerations. Using it is as simple as writing a robot program, and running it on your computer. It will command the Romi to follow the steps in the program. .. tip:: A course that teaches programming using the Romi Robot is available via Thinkscape. Information on this course is available `here `__ diff --git a/source/docs/romi-robot/programming-romi-in-labview.rst b/source/docs/romi-robot/programming-romi-in-labview.rst index 9e66f0cf42..8b2fac8eb6 100644 --- a/source/docs/romi-robot/programming-romi-in-labview.rst +++ b/source/docs/romi-robot/programming-romi-in-labview.rst @@ -10,7 +10,7 @@ Creating a Romi Project Creating a new program for a Romi is no different than creating a normal FRC \|reg| program, similar to the :doc:`Zero To Robot ` programming steps. Initially, you may wish to create a separate project for use on just the Romi as the Romi hardware may be connected to different ports than on your roboRIO robot. -The Romi Robot used PWM ports 0 and 1 for left and right side respectively. +The Romi Robot used :term:`PWM` ports 0 and 1 for left and right side respectively. .. todo:: add information on romi gyro and encoders diff --git a/source/docs/romi-robot/web-ui.rst b/source/docs/romi-robot/web-ui.rst index 8f8c168543..8fb08a632c 100644 --- a/source/docs/romi-robot/web-ui.rst +++ b/source/docs/romi-robot/web-ui.rst @@ -50,7 +50,7 @@ This section allows users to configure the 5 external GPIO channels on the Romi. .. note:: The Raspberry Pi must be in **Writable** mode for this section to work. -To change the configuration of a GPIO channel, select an appropriate option from the dropdown lists. All channels (with the exception of EXT 0) support Digital IO, Analog In and PWM as channel types. Once the appropriate selections are made, click on :guilabel:`Save External IO Configuration`. The web service will then restart and pick up the new IO configuration. +To change the configuration of a GPIO channel, select an appropriate option from the dropdown lists. All channels (with the exception of EXT 0) support Digital IO, Analog In and :term:`PWM` as channel types. Once the appropriate selections are made, click on :guilabel:`Save External IO Configuration`. The web service will then restart and pick up the new IO configuration. The "Robot Port" row provides the appropriate WPILib mapping for each configured GPIO channel. For example, EXT 0 is configured as a Digital IO channel, and will be accessible in WPILib as a DigitalInput (or DigitalOutput) channel 8. diff --git a/source/docs/software/advanced-controls/introduction/picking-control-strategy.rst b/source/docs/software/advanced-controls/introduction/picking-control-strategy.rst index edb0244760..49b7f22f45 100644 --- a/source/docs/software/advanced-controls/introduction/picking-control-strategy.rst +++ b/source/docs/software/advanced-controls/introduction/picking-control-strategy.rst @@ -81,7 +81,7 @@ Modeling: How do you expect your system to behave? It's easiest to control a system if we have some prior knowledge of how the system responds to inputs. Even the "pure feedback" strategy described above implicitly assumes things about the system response (e.g. that it is approximately linear), and consequently won't work in cases where the system does not respond in the expected way. To control our system *optimally*, we need some way to reliably predict how it will respond to inputs. -This can be done by combining several concepts you may be familiar with from physics: drawing free body diagrams of the forces that act on the mechanism, taking measurements of mass and moment of inertia from your CAD models, applying standard equations of how DC motors or pneumatic cylinders convert energy into mechanical force and motion, etc. +This can be done by combining several concepts you may be familiar with from physics: drawing free body diagrams of the forces that act on the mechanism, taking measurements of mass and moment of inertia from your :term:`CAD` models, applying standard equations of how DC motors or pneumatic cylinders convert energy into mechanical force and motion, etc. The act of creating a consistent mathematical description of your system is called *modeling* your system's behavior. The resulting set of equations are called a *model* of how you expect the system to behave. Not every system requires an explicit model to be controlled (we will see in the turret tutorial that a pure, manually-tuned feedback controller is satisfactory *in some cases*), but an explicit model is *always* helpful. diff --git a/source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst b/source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst index 8a71ab0a61..ae13d66cae 100644 --- a/source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst +++ b/source/docs/software/advanced-controls/state-space/state-space-flywheel-walkthrough.rst @@ -7,7 +7,7 @@ State-Space Controller Walkthrough The goal of this tutorial is to provide "end-to-end" instructions on implementing a state-space controller for a flywheel. By following this tutorial, readers will learn how to: -1. Create an accurate state-space model of a flywheel using :term:`system identification` or CAD software. +1. Create an accurate state-space model of a flywheel using :term:`system identification` or :term:`CAD` software. 2. Implement a Kalman Filter to filter encoder velocity measurements without lag. 3. Implement a :ref:`LQR ` feedback controller which, when combined with model-based feedforward, will generate voltage :term:`inputs ` to drive the flywheel to a :term:`reference`. @@ -97,7 +97,7 @@ Modeling Using Flywheel Moment of Inertia and Gearing A flywheel can also be modeled without access to a physical robot, using information about the motors, gearing and flywheel's :term:`moment of inertia`. A full derivation of this model is presented in Section 8.2.1 of `Controls Engineering in FRC `__. -The ``LinearSystem`` class contains methods to easily create a model of a flywheel from the flywheel's motors, gearing and :term:`moment of inertia`. The moment of inertia can be calculated using CAD software or using physics. The examples used here are detailed in the flywheel example project (`Java `__/`C++ `__). +The ``LinearSystem`` class contains methods to easily create a model of a flywheel from the flywheel's motors, gearing and :term:`moment of inertia`. The moment of inertia can be calculated using :term:`CAD` software or using physics. The examples used here are detailed in the flywheel example project (`Java `__/`C++ `__). .. note:: For WPILib's state-space classes, gearing is written as output over input -- that is, if the flywheel spins slower than the motors, this number should be greater than one. diff --git a/source/docs/software/basic-programming/reading-stacktraces.rst b/source/docs/software/basic-programming/reading-stacktraces.rst index 46991a814e..6693711b71 100644 --- a/source/docs/software/basic-programming/reading-stacktraces.rst +++ b/source/docs/software/basic-programming/reading-stacktraces.rst @@ -555,7 +555,7 @@ Fixing HAL Resource Already Allocated Issues ``HAL: Resource already allocated`` are some of the most straightforward errors to fix. Just spend a bit of time looking at the electrical wiring on the robot, and compare that to what's in code. -In the example, the left motor controllers are plugged into PWM ports ``0`` and ``1``. Therefore, corrected code would look like this: +In the example, the left motor controllers are plugged into :term:`PWM` ports ``0`` and ``1``. Therefore, corrected code would look like this: .. tab-set-code:: diff --git a/source/docs/software/can-devices/can-addressing.rst b/source/docs/software/can-devices/can-addressing.rst index e070f660ab..45e78ef58b 100644 --- a/source/docs/software/can-devices/can-addressing.rst +++ b/source/docs/software/can-devices/can-addressing.rst @@ -4,7 +4,7 @@ FRC CAN Device Specifications ============================= This document seeks to describe the basic functions of the current FRC\ |reg| -CAN system and the requirements for any new CAN devices seeking to work +:term:`CAN` system and the requirements for any new CAN devices seeking to work with the system. Addressing diff --git a/source/docs/software/can-devices/pneumatic-hub.rst b/source/docs/software/can-devices/pneumatic-hub.rst index ec3d02e0c6..55418a64ef 100644 --- a/source/docs/software/can-devices/pneumatic-hub.rst +++ b/source/docs/software/can-devices/pneumatic-hub.rst @@ -5,7 +5,7 @@ Pneumatic Hub :alt: The Pneumatic Hub (PH) :width: 400 -The Pneumatic Hub (PH) is a CAN-based device that provides complete control over the compressor and up to 16 solenoids per module. The PH is integrated into WPILib through a series of classes that make it simple to use. +The Pneumatic Hub (:term:`PH`) is a :term:`CAN`-based device that provides complete control over the compressor and up to 16 solenoids per module. The PH is integrated into WPILib through a series of classes that make it simple to use. The closed loop control of the Compressor and Pressure switch is handled by the :code:`Compressor` class (`Java `__, `C++ `__), and the Solenoids are handled by the :code:`Solenoid` (`Java `__, `C++ `__) and :code:`DoubleSolenoid` (`Java `__, `C++ `__) classes. diff --git a/source/docs/software/can-devices/pneumatics-control-module.rst b/source/docs/software/can-devices/pneumatics-control-module.rst index 3cfdd0ede3..3f649b0f58 100644 --- a/source/docs/software/can-devices/pneumatics-control-module.rst +++ b/source/docs/software/can-devices/pneumatics-control-module.rst @@ -5,7 +5,7 @@ Pneumatics Control Module :alt: The Pneumatics Control Module (PCM) :width: 400 -The Pneumatics Control Module (PCM) is a CAN-based device that provides complete control over the compressor and up to 8 solenoids per module. The PCM is integrated into WPILib through a series of classes that make it simple to use. +The Pneumatics Control Module (:term:`PCM`) is a :term:`CAN`-based device that provides complete control over the compressor and up to 8 solenoids per module. The PCM is integrated into WPILib through a series of classes that make it simple to use. The closed loop control of the Compressor and Pressure switch is handled by the :code:`Compressor` class (`Java `__, `C++ `__), and the Solenoids are handled by the :code:`Solenoid` (`Java `__, `C++ `__) and :code:`DoubleSolenoid` (`Java `__, `C++ `__) classes. diff --git a/source/docs/software/can-devices/power-distribution-module.rst b/source/docs/software/can-devices/power-distribution-module.rst index 56964a3a70..10af5df312 100644 --- a/source/docs/software/can-devices/power-distribution-module.rst +++ b/source/docs/software/can-devices/power-distribution-module.rst @@ -1,7 +1,7 @@ Power Distribution Module ========================= -The CTRE Power Distribution Panel (PDP) and Rev Power Distribution Hub (PDH) can use their CAN connectivity to communicate a wealth of status information regarding the robot's power use to the roboRIO, for use in user code. This has the capability to report current temperature, the bus voltage, the total robot current draw, the total robot energy use, and the individual current draw of each device power channel. This data can be used for a number of advanced control techniques, such as motor :term:`torque` limiting and brownout avoidance. +The CTRE Power Distribution Panel (:term:`PDP`) and Rev Power Distribution Hub (:term:`PDH`) can use their :term:`CAN` connectivity to communicate a wealth of status information regarding the robot's power use to the roboRIO, for use in user code. This has the capability to report current temperature, the bus voltage, the total robot current draw, the total robot energy use, and the individual current draw of each device power channel. This data can be used for a number of advanced control techniques, such as motor :term:`torque` limiting and brownout avoidance. Creating a Power Distribution Object ------------------------------------ diff --git a/source/docs/software/can-devices/third-party-devices.rst b/source/docs/software/can-devices/third-party-devices.rst index 6d3543c73a..ac87b5f9a0 100644 --- a/source/docs/software/can-devices/third-party-devices.rst +++ b/source/docs/software/can-devices/third-party-devices.rst @@ -3,7 +3,7 @@ Third-Party CAN Devices ======================= -A number of FRC\ |reg| vendors offer their own CAN peripherals. As CAN devices +A number of FRC\ |reg| vendors offer their own :term:`CAN` peripherals. As CAN devices offer expansive feature-sets, vendor CAN devices require similarly expansive code libraries to operate. As a result, these libraries are not maintained as an official part of WPILib, but are instead maintained @@ -113,7 +113,7 @@ PWF Sensors Redux Robotics -------------- -Redux Robotics currently offers the Canandcoder CAN + PWM magnetic encoder. +Redux Robotics currently offers the Canandcoder :term:`CAN` + :term:`PWM` magnetic encoder. Redux Sensors ^^^^^^^^^^^^^ diff --git a/source/docs/software/can-devices/using-can-devices.rst b/source/docs/software/can-devices/using-can-devices.rst index abb5ac9f19..ec12ca1e16 100644 --- a/source/docs/software/can-devices/using-can-devices.rst +++ b/source/docs/software/can-devices/using-can-devices.rst @@ -1,11 +1,11 @@ Using CAN Devices ================= -CAN has many advantages over other methods of connection between the robot controller and peripheral devices. +:term:`CAN` has many advantages over other methods of connection between the robot controller and peripheral devices. - CAN connections are daisy-chained from device to device, which often results in much shorter wire runs than having to wire each device to the RIO itself. -- Much more data can be sent over a CAN connection than over a PWM connection - thus, CAN motor controllers are capable of a much more expansive feature-set than are PWM motor controllers. +- Much more data can be sent over a CAN connection than over a :term:`PWM` connection - thus, CAN motor controllers are capable of a much more expansive feature-set than are PWM motor controllers. - CAN is bi-directional, so CAN motor controllers can send data back to the RIO, again facilitating a more expansive feature-set than can be offered by PWM Controllers. diff --git a/source/docs/software/commandbased/command-scheduler.rst b/source/docs/software/commandbased/command-scheduler.rst index ef3114a58e..3df8538230 100644 --- a/source/docs/software/commandbased/command-scheduler.rst +++ b/source/docs/software/commandbased/command-scheduler.rst @@ -22,7 +22,7 @@ To schedule a command, users call the ``schedule()`` method (`Java . +#. :term:`No-op` if scheduler is disabled, command is already scheduled, or robot is disabled and command doesn't . #. If requirements are in use: * If all conflicting commands are interruptible, cancel them. * If not, don't schedule the new command. diff --git a/source/docs/software/commandbased/commands.rst b/source/docs/software/commandbased/commands.rst index ffc843ddd6..e905ef3acb 100644 --- a/source/docs/software/commandbased/commands.rst +++ b/source/docs/software/commandbased/commands.rst @@ -57,7 +57,7 @@ runsWhenDisabled The ``runsWhenDisabled()`` method (`Java `__, `C++ `__) returns a ``boolean``/``bool`` specifying whether the command may run when the robot is disabled. With the default of returning ``false``, the command will be canceled when the robot is disabled and attempts to schedule it will do nothing. Returning ``true`` will allow the command to run and be scheduled when the robot is disabled. -.. important:: When the robot is disabled, PWM outputs are disabled and CAN motor controllers may not apply voltage, regardless of ``runsWhenDisabled``! +.. important:: When the robot is disabled, :term:`PWM` outputs are disabled and CAN motor controllers may not apply voltage, regardless of ``runsWhenDisabled``! This property can be set either by overriding the ``runsWhenDisabled()`` method in the relevant command class, or by using the ``ignoringDisable`` decorator (`Java `__, `C++ `__): diff --git a/source/docs/software/dashboards/glass/widgets.rst b/source/docs/software/dashboards/glass/widgets.rst index 1cb3a5fe10..003cbef2c3 100644 --- a/source/docs/software/dashboards/glass/widgets.rst +++ b/source/docs/software/dashboards/glass/widgets.rst @@ -68,6 +68,6 @@ This allows you to quickly tune P, I, and D values for various setpoints. FMSInfo Widget -------------- -The :guilabel:`FMSInfo` widget is created by default when Glass connects to a robot. This widget displays basic information about the robot's enabled state, whether a Driver Station is connected, whether an FMS is connected, the game-specific data, etc. It can be viewed by selecting the :guilabel:`NetworkTables` menu item and clicking on :guilabel:`FMSInfo`. +The :guilabel:`FMSInfo` widget is created by default when Glass connects to a robot. This widget displays basic information about the robot's enabled state, whether a Driver Station is connected, whether an :term:`FMS` is connected, the game-specific data, etc. It can be viewed by selecting the :guilabel:`NetworkTables` menu item and clicking on :guilabel:`FMSInfo`. .. image:: images/fms-info.png diff --git a/source/docs/software/driverstation/driver-station-errors-warnings.rst b/source/docs/software/driverstation/driver-station-errors-warnings.rst index 9f2c0936d4..0eab34f761 100644 --- a/source/docs/software/driverstation/driver-station-errors-warnings.rst +++ b/source/docs/software/driverstation/driver-station-errors-warnings.rst @@ -1,7 +1,7 @@ Driver Station Errors/Warnings ============================== -In an effort to provide both Teams and Volunteers (FTAs/CSAs/etc.) more information to use when diagnosing robot problems, a number of Warning and Error messages have been added to the Driver Station. These messages are displayed in the DS diagnostics tab when they occur and are also included in the DS Log Files that can be viewed with the Log File Viewer. This document discusses the messages produced by the DS (messages produced by WPILib can also appear in this box and the DS Logs). +In an effort to provide both Teams and Volunteers (:term:`FTA` / :term:`CSA` / etc.) more information to use when diagnosing robot problems, a number of Warning and Error messages have been added to the Driver Station. These messages are displayed in the DS diagnostics tab when they occur and are also included in the DS Log Files that can be viewed with the Log File Viewer. This document discusses the messages produced by the DS (messages produced by WPILib can also appear in this box and the DS Logs). Joystick Unplugged ------------------ @@ -36,7 +36,7 @@ Ping Status ` and configured the device(s) (update firmware, assign CAN IDs, etc) according to the manufacturer documentation (`CTRE `__ `REV `__). +.. important:: This guide includes code examples that involve vendor hardware for the convenience of the user. In this document, :term:`PWM` refers to the motor controller included in the KOP. The CTRE tab references the Talon FX motor controller (Falcon 500 motor), but usage is similar for TalonSRX and VictorSPX. The REV tab references the CAN SPARK MAX controlling a brushless motor, but it's similar for brushed motor. There is an assumption that the user has already installed the required :doc:`vendordeps ` and configured the device(s) (update firmware, assign CAN IDs, etc) according to the manufacturer documentation (`CTRE `__ `REV `__). Creating a New WPILib Project (Java/C++) ---------------------------------------- diff --git a/source/docs/zero-to-robot/step-4/running-test-program.rst b/source/docs/zero-to-robot/step-4/running-test-program.rst index bcd11c8be1..aad524329c 100644 --- a/source/docs/zero-to-robot/step-4/running-test-program.rst +++ b/source/docs/zero-to-robot/step-4/running-test-program.rst @@ -35,7 +35,7 @@ Setting Up the Driver Station The DS must be set to your team number in order to connect to your robot. In order to do this click the Setup tab then enter your team number in the team number box. Press return or click outside the box for the setting to take effect. -PCs will typically have the correct network settings for the DS to connect to the robot already, but if not, make sure your Network adapter is set to DHCP. +PCs will typically have the correct network settings for the DS to connect to the robot already, but if not, make sure your Network adapter is set to :term:`DHCP`. Confirm Connectivity