From c87a1a192134fc004b8a030f9c039b37b267acc7 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 14 Dec 2023 21:49:25 -0500 Subject: [PATCH 1/5] Replace degree symbols with substitutions --- .../drivetrains/holonomic.rst | 2 +- .../power-transmission/belt.rst | 2 +- .../power-transmission/chain.rst | 2 +- .../docs/custom-manufacturing/3d-printing.rst | 26 +++++++++---------- source/docs/design-skills/cad-tutorials.rst | 2 +- .../servo-guide/choosing-servo.rst | 4 +-- .../servo-guide/index.rst | 2 +- .../docs/software/tutorials/mecanum-drive.rst | 2 +- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/source/docs/common-mechanisms/drivetrains/holonomic.rst b/source/docs/common-mechanisms/drivetrains/holonomic.rst index d3a98afd..33605497 100644 --- a/source/docs/common-mechanisms/drivetrains/holonomic.rst +++ b/source/docs/common-mechanisms/drivetrains/holonomic.rst @@ -142,7 +142,7 @@ X-Drive X-Drive is a holonomic omni-wheel based drivetrain. This type of drive involves mounting 4 omni wheels at the corner of the robot at a 45 degree angle. -One notable difference between X-Drive and mecanum is strafe speed. While, as mentioned in the mecanum section, the ratio of strafe speed to forward speed is noticeably less than 1, the ratio on an X-Drive is exactly 1 due to the rotational symmetry of the wheel placement. This means that an X-Drive bot's strafe speed and forward speed are equivalent. The drivetrains are slower, however, when strafing at 45° (approximately :math:`\frac{\sqrt{2}}{2}` of its forward speed). +One notable difference between X-Drive and mecanum is strafe speed. While, as mentioned in the mecanum section, the ratio of strafe speed to forward speed is noticeably less than 1, the ratio on an X-Drive is exactly 1 due to the rotational symmetry of the wheel placement. This means that an X-Drive bot's strafe speed and forward speed are equivalent. The drivetrains are slower, however, when strafing at 45\ |deg| (approximately :math:`\frac{\sqrt{2}}{2}` of its forward speed). Even though X-drive has good turning and acceleration, the main downside to the drive is packaging/form factor. Packaging refers to how easy/convenient the drivetrain fits into the overall design of the robot. diff --git a/source/docs/common-mechanisms/power-transmission/belt.rst b/source/docs/common-mechanisms/power-transmission/belt.rst index 0f66797b..8dc6edfd 100644 --- a/source/docs/common-mechanisms/power-transmission/belt.rst +++ b/source/docs/common-mechanisms/power-transmission/belt.rst @@ -48,7 +48,7 @@ SDP-SI has a `more advanced calculator ` for chain is quite comp Chain Wrap ---------- -**Chain should, at the very least, have 90° of contact with the sprocket. The best practice is to have 180° or more of contact**, as it is very unlikely to fall off with proper tensioning. Chain skipping, especially on drivetrains or arms, is very possible without proper chain wrap or tensioning. +**Chain should, at the very least, have 90 degrees of contact with the sprocket. The best practice is to have 180 degrees or more of contact**, as it is very unlikely to fall off with proper tensioning. Chain skipping, especially on drivetrains or arms, is very possible without proper chain wrap or tensioning. When tensioning chain, be sure to not undertension or overtension chain. Undertensioning chain can result in the chain falling off the sprocket or chain skipping, where the chain can skip along the sprocket. Overtensioning the chain often results in the motor burning out, or less seriously, a loss of efficiency. Push along the chain run, and if the chain moves slightly without significant resistance, chances are you've done it correctly. If it's too tight, then the chain will barely move under a gentle press. diff --git a/source/docs/custom-manufacturing/3d-printing.rst b/source/docs/custom-manufacturing/3d-printing.rst index c9158e3c..a0a946d9 100644 --- a/source/docs/custom-manufacturing/3d-printing.rst +++ b/source/docs/custom-manufacturing/3d-printing.rst @@ -35,15 +35,15 @@ Common Filaments For almost every part that needs to be 3D printed for FTC, **PLA (or PLA+, Pro, etc) and/or PETG will meet all the needs for strength, durability, and aesthetics.** These two filament types are by far the easiest to print, and are sold by many manufacturers for reasonable prices. Most of the other filaments here offer very specific advantages (like TPU) that come at the cost of effort, time, and money. -.. danger:: If your printer's hotend (the part that melts the filament) has a PTFE (Teflon) lining where the PTFE tube goes all the way down to the heat block (common in lower price printers like the Ender 3 and its variants), then you **should not be printing at or above 250° C**. Doing so will cause the PTFE tube to degrade and melt, releasing toxic fumes. If you need to print at these temperatures and you have a PTFE lined hotend, you can look at upgrading to an all-metal hotend. +.. danger:: If your printer's hotend (the part that melts the filament) has a PTFE (Teflon) lining where the PTFE tube goes all the way down to the heat block (common in lower price printers like the Ender 3 and its variants), then you **should not be printing at or above 250 degrees Celsius**. Doing so will cause the PTFE tube to degrade and melt, releasing toxic fumes. If you need to print at these temperatures and you have a PTFE lined hotend, you can look at upgrading to an all-metal hotend. PLA (Polylactic Acid) ^^^^^^^^^^^^^^^^^^^^^ The most common 3D Printing filament is polylactic acid, or PLA. It is a plastic made from biological sources like corn starch and sugar cane. PLA is stiff but more brittle than other filament options and tends to have little to no warp when printing. PLA is well suited to the majority of robot parts, but it may not hold up well to shock loads (impacts to parts), and as such parts should be designed accordingly. -- PLA hotend temperatures range from 190°-230° C -- PLA bed temperatures range from 20°-60° C, but a heated bed isn't strictly required for PLA +- PLA hotend temperatures range from 190\ |deg|-230\ |deg| C +- PLA bed temperatures range from 20\ |deg|-60\ |deg| C, but a heated bed isn't strictly required for PLA .. tip:: Due to the relatively low melting point of PLA, it is not advisable to leave PLA parts in locations such as a hot car, as this can produce severe warping in those parts. @@ -56,8 +56,8 @@ PETG can be described as a strength upgrade to PLA. It is not difficult to print .. warning:: PETG is known for bonding very well to print beds, **especially glass and PEI**, and is known to rip chunks out of the bed. It is a good idea to add some glue stick or hairspray before printing it. -- PETG hotend temperatures range from 230°-260° C -- PETG bed temperatures range from 60°-80° C +- PETG hotend temperatures range from 230\ |deg|-260\ |deg| C +- PETG bed temperatures range from 60\ |deg|-80\ |deg| C Less Common Filaments --------------------- @@ -69,8 +69,8 @@ ABS (Acrylonitrile Butadiene Styrene) ABS used to be the standard filament for printing before PLA became commercially available. You've probably used ABS before in LEGO\ |reg| pieces. It can withstand high loads and is quite ductile. This comes at the cost of printing difficulty, where an enclosure is often necessary to raise the ambient temperature and prevent severe part warping. The strength improvements over PLA can be more easily found in PETG, so ABS parts are not as common in FTC. ABS is quite affordable though, sold at the same prices as PLA. -- ABS hotend temperatures range from 230°-250° C -- ABS bed temperatures range from 100°-120° C +- ABS hotend temperatures range from 230\ |deg|-250\ |deg| C +- ABS bed temperatures range from 100\ |deg|-120\ |deg| C - Enclosure highly recommended to prevent warping Due to the difficulty of printing ABS and its limitations, one might look at alternatives such as ASA which offer similar properties with much better printability. @@ -82,8 +82,8 @@ TPU and TPE are both common printing filaments that are widely used for their fl .. tip:: Due to its flexible nature, printers that use a Bowden tube extrusion system, where the extruder motor is not placed on the hotend, will find it extremely difficult to print TPU/TPE. -- TPU/TPE hotend temperatures range from 210°-250° C -- TPU/TPE does not usually need a heated bed, but if one is used it should not go over 60° C as this will fuse TPU with print bed. +- TPU/TPE hotend temperatures range from 210\ |deg|-250\ |deg| C +- TPU/TPE does not usually need a heated bed, but if one is used it should not go over 60 |deg|\ C as this will fuse TPU with print bed. - TPU/TPE has the tendency to absorb a lot of moisture from the air, and thus will likely need to be dried before and perhaps during a print. - Direct drive extruder is highly recommended @@ -98,8 +98,8 @@ Nylon Nylon filaments can be glass-filled, carbon fiber-filled, or pure. Nylon is the king of impact resistance in many situations where the part can flex out of the way, instead of completely breaking. Occasionally nylon is used for parts like wheel covers on drivetrains and in places where it will be repeatedly hit and battered. Nylon requires very high temperatures, generally requires an enclosure, and absolutely must be dried before (and while) printing. -- Nylon hotend temperatures range from 240°-260° C -- Nylon bed temperatures range from 55°-80° C +- Nylon hotend temperatures range from 240\ |deg|-260\ |deg| C +- Nylon bed temperatures range from 55\ |deg|-80\ |deg| C - Nylon is infamous for absorbing moisture from the air and should be thoroughly dried before and during printing. Failure to do this will probably result in a nearly unusable part. - Enclosure recommended @@ -116,8 +116,8 @@ Polycarbonate and its variants are very very strong, technical materials. PC shi There are several PC blends that can be much easier to print, a standout example is PolyMaker PolyMax PC. It is an easier-to-print, lower temp PC that retains many of the advantages of pure PC. PolyLite is not quite as impact-resistant, but a lot cheaper. Both are much easier to print than pure PC. -- PC hotend temperatures range from 250°-320° C -- PC bed temperatures range from 80°-140° C +- PC hotend temperatures range from 250\ |deg|-320\ |deg| C +- PC bed temperatures range from 80\ |deg|-140\ |deg| C - Enclosure required - Filament must be kept dry diff --git a/source/docs/design-skills/cad-tutorials.rst b/source/docs/design-skills/cad-tutorials.rst index ac80c64a..228296b5 100644 --- a/source/docs/design-skills/cad-tutorials.rst +++ b/source/docs/design-skills/cad-tutorials.rst @@ -201,7 +201,7 @@ Copy the sketch below. .. image:: images/cad-tutorial/custom-pulley-template/sketch-to-copy.png :alt: The sketch to copy -- The 15° equation is done by typing =360/"n" into the text box. +- The 15\ |deg| equation is done by typing =360/"n" into the text box. - Note that 5mm dimension at the top describes arc length, which is done in Solidworks by first selecting the two points and the connecting arc. - The two big circles are tangent to the two smaller circles, but the two smaller circles are not tangent to each other. diff --git a/source/docs/power-and-electronics/servo-guide/choosing-servo.rst b/source/docs/power-and-electronics/servo-guide/choosing-servo.rst index 71db258a..111ede7d 100644 --- a/source/docs/power-and-electronics/servo-guide/choosing-servo.rst +++ b/source/docs/power-and-electronics/servo-guide/choosing-servo.rst @@ -21,7 +21,7 @@ Many servos from FTC\ |reg| vendors are Dual Mode, meaning they can switch betwe Servo Torque And Speed ---------------------- -:term:`Servo` output power is measured in both **speed** and **torque**. Speed (normally in seconds per 60°) refers to how fast the :term:`servo ` turns 60 degrees in Standard Rotation mode. +:term:`Servo` output power is measured in both **speed** and **torque**. Speed (normally in seconds per 60\ |deg|) refers to how fast the :term:`servo ` turns 60 degrees in Standard Rotation mode. .. admonition:: Why seconds per 60 degrees? @@ -29,7 +29,7 @@ Servo Torque And Speed Torque (usually measured in oz-in or in kg-cm) refers to the amount of force the :term:`servo ` can apply to a lever. For reference, if you put a 1" bar on a servo, then put a force gauge on the end, the torque rating of the servo (in oz-in) will be measured. -As you may know, speed and torque will generally have an inverse relationship. You can find some insanely powerful servos that are pretty slow (slower than 0.20 s/60°) or some less powerful ones with faster ratios (anything faster than 0.12 s/60° is considered very fast). +As you may know, speed and torque will generally have an inverse relationship. You can find some insanely powerful servos that are pretty slow (slower than 0.20 s/60\ |deg|) or some less powerful ones with faster ratios (anything faster than 0.12 s/60\ |deg| is considered very fast). Finding the right :term:`servo ` for your application can be tough, but a good way is trying to decide if you need more speed or torque, and if your :term:`servo ` will experience shock loads or not. diff --git a/source/docs/power-and-electronics/servo-guide/index.rst b/source/docs/power-and-electronics/servo-guide/index.rst index 1ff184bb..2b25a751 100644 --- a/source/docs/power-and-electronics/servo-guide/index.rst +++ b/source/docs/power-and-electronics/servo-guide/index.rst @@ -8,7 +8,7 @@ Servo Guide .. glossary:: Servo - a small DC motor attached to servo gears that is very finely controllable and interfaces via a 3 wire PWM connector. Servos are used in FTC\ |reg| for high-precision applications that are low-load - for example, opening a trapdoor for balls to fall through. Typically servos have limited range of rotation (180° is common). The output has splines, which are the rigid teeth that are on top of the servo. + a small DC motor attached to servo gears that is very finely controllable and interfaces via a 3 wire PWM connector. Servos are used in FTC\ |reg| for high-precision applications that are low-load - for example, opening a trapdoor for balls to fall through. Typically servos have limited range of rotation (180\ |deg| is common). The output has splines, which are the rigid teeth that are on top of the servo. Servos are commonly used in RC cars (steering) and RC planes (moving ailerons). In FTC, servos are typically used for claws, grabbers, and arms. diff --git a/source/docs/software/tutorials/mecanum-drive.rst b/source/docs/software/tutorials/mecanum-drive.rst index 73985e5e..e2e82aae 100644 --- a/source/docs/software/tutorials/mecanum-drive.rst +++ b/source/docs/software/tutorials/mecanum-drive.rst @@ -10,7 +10,7 @@ Mecanum Physics .. note:: Some common COTS mecanum drivetrain kits are the `goBILDA Strafer Chassis Kit `_ and the `REV Mecanum Drivetrain Kit `_. -:term:`Mecanum wheels ` have rollers at a 45° angle to the rest of the wheel. Since these are in contact with the ground instead of something solid like in a :term:`traction wheel `, instead of the wheel creating a force parallel to the orientation of the wheel, it creates one 45° from parallel. Depending on how the wheels are driven, X or Y components of the force vectors can cancel which allows movement in any direction. +:term:`Mecanum wheels ` have rollers at a 45\ |deg| angle to the rest of the wheel. Since these are in contact with the ground instead of something solid like in a :term:`traction wheel `, instead of the wheel creating a force parallel to the orientation of the wheel, it creates one 45\ |deg| from parallel. Depending on how the wheels are driven, X or Y components of the force vectors can cancel which allows movement in any direction. .. image:: images/mecanum-drive/mecanum-worms-eye-view.png :alt: Force diagram of a single mecanum wheel From 58c03c604c44ef87d313ffeb7417c6c62910c8c5 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 14 Dec 2023 21:18:51 -0500 Subject: [PATCH 2/5] Replace right arrows with substitutions --- .../common-mechanisms/design-tradeoffs.rst | 20 ++++++------ source/docs/design-skills/design-strategy.rst | 32 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/source/docs/common-mechanisms/design-tradeoffs.rst b/source/docs/common-mechanisms/design-tradeoffs.rst index 800be37f..154789a1 100644 --- a/source/docs/common-mechanisms/design-tradeoffs.rst +++ b/source/docs/common-mechanisms/design-tradeoffs.rst @@ -33,15 +33,15 @@ Design Tradeoffs | extension | | +--------------------------------+----------------------------------------+ -2 Motor Drivetrain → 4 Motor Drivetrain ---------------------------------------- +2 Motor Drivetrain |rarr| 4 Motor Drivetrain +-------------------------------------------- .. important:: In general, it is not recommended for teams to use 2 motors on the drivetrain, but instead use 4. This is mainly due to the added power and increased acceleration 4 motors provide. Typically, top speed is determined by the gear ratio and the motor specifications, not the number of motors. **However**, acceleration is affected by the number of motors, and as FTC\ |reg| robots need to change direction and accelerate numerous times per match, slow acceleration has a significant adverse effect on the competitiveness of the robot. In addition, 2 motor robots may struggle to get over obstacles or climb up ramps, due to less power. One question that often comes up is "don't I need more motors for other things on the robot?" This is a valid question, but the answer is generally no. It is possible to build a competitive robot with 4 motors allocated to drivetrain, and 4 motors for other mechanisms, so there should be no reason to skimp. Do remember that the drivetrain is the foundation of the robot. Your mechanisms will not be anywhere near optimized if the drivetrain can't get your robot from A to B quickly and efficiently. There has not been a game in FTC history where the top robots needed >4 motors for the drivetrain, so this is a pretty safe rule to follow. -Pushbot → Mecanum, 6WD, Other Recommended Drivetrains ------------------------------------------------------ +Pushbot |rarr| Mecanum, 6WD, Other Recommended Drivetrains +---------------------------------------------------------- .. important:: The pushbot drivetrain, commonly built by first-year teams using the *FIRST*\ |reg|-provided guides, is not recommended as a competitive drivetrain. @@ -53,8 +53,8 @@ We do recommend teams who have purchased the Tetrix kit to build it for educatio However, most if not all of these problems will be solved by using a four-motor drivetrain such as the ones recommended in the drivetrain guide (mecanum, 6WD, etc.). Therefore, it is recommended for teams to refer to the :doc:`drivetrain ` section and see which drivetrain would fit best for their overall game strategy. -Passive Intake/Claw → Active Intake ------------------------------------ +Passive Intake/Claw |rarr| Active Intake +---------------------------------------- .. important:: Active intakes (ones with continuous rotational motion) should always be prioritized over passive intakes and grippers. @@ -67,8 +67,8 @@ Intakes have two major advantages over claws. Claws can only pick up one object at a time, and the driver needs to aim the claw at that specific object to grab it. With an intake, the driver does not need to focus on one game element - instead; intakes will just pick up anything in its path, if designed properly. Claws are also prone to breakage, and thus suffer to defensive robots. They are also generally more fragile than intakes. Therefore, active intakes are as a result much more efficient than claws. Nearly every competitive robot from past years has used active intakes to great effect, so there is plenty of precedent to follow. -Spur Gear Gearboxes → Planetary Gearboxes ------------------------------------------ +Spur Gear Gearboxes |rarr| Planetary Gearboxes +---------------------------------------------- .. note:: Spur gear gearboxes are fine for most applications for a rookie team. We are not advocating necessarily having to upgrade to planetary motors, but there are some advantages which may become useful in more advanced use cases such as high-load systems. @@ -76,8 +76,8 @@ Spur Gear Gearboxes → Planetary Gearboxes An example would be a drivetrain that has to change directions repeatedly and quickly. Planetary gearboxes are much better suited for drivetrain and arms, due to the configuration of the sun and planet gears. In addition, spur gear gearboxes are prone to shock loads; therefore, direct drive is not advisable on drivetrains. Refer to the :doc:`gearbox anatomy ` section for more complete information on gearboxes. **This refers to using spur gear gearboxes which are attached directly to the pinion gear of the motor. It does not mean external ratios outside of the motor gearbox, which will always be in a spur gear configuration.** -Single/multi axis arm → Linear extension ----------------------------------------- +Single/multi axis arm |rarr| Linear extension +--------------------------------------------- .. important:: Teams are generally advised to stay away from arms and move in the direction of linear slides, primarily due to the issue of complexity. This is because arms typically are less effective than linear extensions and are harder to implement properly. diff --git a/source/docs/design-skills/design-strategy.rst b/source/docs/design-skills/design-strategy.rst index 653d618a..11959eae 100644 --- a/source/docs/design-skills/design-strategy.rst +++ b/source/docs/design-skills/design-strategy.rst @@ -39,8 +39,8 @@ Here are some good tips for teams to make decisions in the high-level design and | - Design alone is not enough | - Execution often beats design | +--------------------------------+-----------------------------------------+ -Doing Everything At Once to → Perfecting One Objective First -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Doing Everything At Once |rarr| Perfecting One Objective First +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Consistency is king.** @@ -54,8 +54,8 @@ Teams should always remember the principle that a robot that can complete one th .. tip:: Typically, teams which have a solid autonomous and consistent endgame can be competitive at the Qualifier level. This is a recommended goal for new teams. -Overcomplex → Simple -^^^^^^^^^^^^^^^^^^^^ +Overcomplex |rarr| Simple +^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: Another common trap that teams fall into is to overcomplicate needlessly. Simplifying your robot simplifies possible headaches later. @@ -69,8 +69,8 @@ Keeping things simple can be practically achieved through a couple of ways. #. Another way to simplify is to build for the shortest travel distance. Obviously, the shortest distance from A to B is in a straight line, so teams should strive to keep the game elements approximately within a reasonably straight line. This can help in solving possible problems if the game elements need to change direction too many times. -Score-first Designing → Designing for Consistency -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Score-first Designing |rarr| Designing for Consistency +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: Teams should prioritize consistency over scoring ability. @@ -84,8 +84,8 @@ Too many teams fall into the pit of prioritizing scoring ability more than anyth Focus on being able to do that one thing every single time throughout your matches, and you will begin to see how important consistency is. **This tip is equally as important during alliance selections. Top teams will prioritize teams that are consistent far more than scoring ability.** They are not afraid to look at teams who can't score much, but can contribute every time to the alliance score, rather than selecting a boom-or-bust pick. -Building haphazardly → Building for reliability -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Building haphazardly |rarr| Building for reliability +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: Build for the worst case scenario, not the best case scenario. When building, teams often overlook a key principle: build for reliability. All too often, teams skimp on the quality of construction as well as materials, which leads to one of the most common reasons for unsuccessful tournaments: part failure. @@ -101,8 +101,8 @@ Furthermore, a common cause of robot disconnect is wiring issues. Refer to the : All these tips combined will help your robot become more reliable, a key characteristic of all world-level robots. -Fretting about Design → Focusing on Execution -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Fretting about Design |rarr| Focusing on Execution +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. tip:: A good execution of a bad design will beat a bad execution of good design. @@ -138,8 +138,8 @@ Here are some good tips for teams to make decisions in the execution stage. | - Requires more practice | - Removes human error | +---------------------------------+-------------------------------------+ -Neglecting driver practice → Constant driver training -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Neglecting driver practice |rarr| Constant driver training +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: A persistent problem with new teams is neglecting driver practice. Drive practice is to be done throughout the season, **not the week before competition.** @@ -156,8 +156,8 @@ Driver practice not only familiarizes the driver(s) with the robot and serves as While this may seem extreme, it is really just a form of preparedness. If your driver doesn't know how to react, then you need more drive practice. -No game strategy → Strategic driving -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +No game strategy |rarr| Strategic driving +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to drive practice, this is something that many inexperienced teams ignore. A sports example is handy - even with the most talented players, a team won't go far without good game strategy. @@ -178,8 +178,8 @@ For example, drivers should know exactly where the robot needs to be positioned This strategy can backfire if drivers illegally play defense and incur penalties and/or cards for their alliance. Defense is usually played by obstructing the opposing alliance, either by strategically positioning the robot to obstruct access or pushing another team's robot into a disadvantageous position. -Fully driver-controlled driving → Partially automated tasks -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Fully driver-controlled driving |rarr| Partially automated tasks +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: Autonomous should not be limited to only the autonomous mode. Automating simple tasks can be a real time-saver and efficiency boost to teams. From 77feb9edba02d6d67f8e3970331fc2e0ee6a4cb5 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 14 Dec 2023 21:21:13 -0500 Subject: [PATCH 3/5] Replace micro symbol with substitutions --- source/docs/power-and-electronics/servo-guide/usage-tips.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/power-and-electronics/servo-guide/usage-tips.rst b/source/docs/power-and-electronics/servo-guide/usage-tips.rst index f30eeff7..4dcf00d2 100644 --- a/source/docs/power-and-electronics/servo-guide/usage-tips.rst +++ b/source/docs/power-and-electronics/servo-guide/usage-tips.rst @@ -6,7 +6,7 @@ Servo Usage Tips Below are some tips on using servos in FTC\ |reg|. - Do not backdrive :term:`servos `. Forcibly rotating a powered :term:`servo ` away from its position risks damaging the internal :term:`gears `. -- Pay attention to a servo's travel range! The FTC API, by default, outputs 600-2400 µs. ``ServoImplEx`` can be used to increase the range to a maximum of 500-2500 µs +- Pay attention to a servo's travel range! The FTC API, by default, outputs 600-2400 |micro|\ s. ``ServoImplEx`` can be used to increase the range to a maximum of 500-2500 |micro|\ s. .. code:: java From 79d6a7c551f16a4c733b97b41d1fd205c392bb9b Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 14 Dec 2023 21:21:26 -0500 Subject: [PATCH 4/5] Remove integral sign from ReCalc --- source/docs/useful-resources.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/useful-resources.rst b/source/docs/useful-resources.rst index 08a67c3a..651adaa8 100644 --- a/source/docs/useful-resources.rst +++ b/source/docs/useful-resources.rst @@ -135,7 +135,7 @@ Calculators `Pulley Center-to-Center Calculator `_ --- A fully featured belt pulley center-to-center distance calculator. -`⎰ReCalc `_ --- A collaboration focused mechanical design calculator, currently in alpha, which provides sharable links. +`ReCalc `_ --- A collaboration focused mechanical design calculator, currently in alpha, which provides sharable links. `Thad's EveryCalc `_ --- A mechanical design calculator which covers a wide variety of mechanisms, while also providing some utilities like belt sizing, a trajectory calculator, and more. From 36f52252e98b4aaa79db2a9348796944bbc65b11 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 14 Dec 2023 21:41:53 -0500 Subject: [PATCH 5/5] Add CI check for unicode characters in source --- .github/workflows/CI.yml | 10 ++++++++++ scripts/check-for-unicode-characters.sh | 21 +++++++++++++++++++++ scripts/check-unicode-characters.sh | 19 +++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 scripts/check-for-unicode-characters.sh create mode 100755 scripts/check-unicode-characters.sh diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3a2e6087..3c2e2116 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -109,3 +109,13 @@ jobs: - name: Check redirects run: | make rediraffecheckdiff + check-unicode-characters: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Checkout main + run: | + git fetch origin main --depth=1 + - name: Check Unicode characters + run: | + ./scripts/check-unicode-characters.sh diff --git a/scripts/check-for-unicode-characters.sh b/scripts/check-for-unicode-characters.sh new file mode 100644 index 00000000..2d519563 --- /dev/null +++ b/scripts/check-for-unicode-characters.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env sh + +if [ "$(find source/docs -name "*.rst" -print0 | xargs -0 grep -P '[^\x00-\x7F]')" ]; then + echo "Unicode character(s) found in rst file! This may be due to copy and pasting from" + echo "a word processor with smart quotes (e.g. Google Docs, Microsoft Word)." + echo "" + echo "If the special character is intentional (e.g. a degree sign, micro symbol)," + echo "use the appropriate substititution from isonum.txt." + echo "See https://docutils.sourceforge.io/docutils/parsers/rst/include/isonum.txt" + echo "for a list of substitutions." + echo "'.. include:: ' may need to be included at the top of the file" + echo "if it is not already." + echo "" + echo "Location of Unicode character(s):" + # print the locations of the unicode characters + find source/docs -name "*.rst" -print0 | xargs -0 grep -nP '[^\x00-\x7F]' + # exit throwing an error + exit 1 +else + echo "No Unicode characters in rst files found." +fi diff --git a/scripts/check-unicode-characters.sh b/scripts/check-unicode-characters.sh new file mode 100755 index 00000000..5c9e470f --- /dev/null +++ b/scripts/check-unicode-characters.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env sh + +if [ "$(find source/docs -name "*.rst" -print0 | xargs -0 grep -P '[^\x00-\x7F]')" ]; then + echo "Unicode character(s) found in rst file! This may be due to copy and pasting from" + echo "a word processor with smart quotes (e.g. Google Docs, Microsoft Word)." + echo "" + echo "If the special character is intentional (e.g. a degree sign, micro symbol)," + echo "use the appropriate substititution from isonum.txt." + echo "See https://docutils.sourceforge.io/docutils/parsers/rst/include/isonum.txt" + echo "for a list of substitutions." + echo "'.. include:: ' may need to be included at the top of the file" + echo "if it is not already." + echo "" + echo "Location of Unicode character(s):" + find source/docs -name "*.rst" -print0 | xargs -0 grep -nP '[^\x00-\x7F]' + exit 1 +else + echo "No Unicode characters in rst files found." +fi