diff --git a/search/search_index.json b/search/search_index.json
index bff96af0..b43938af 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Welcome to FRCDesign.org","text":"FRCDesign.org is a comprehensive learning guide and technical reference for FRC design using Onshape.
-
Learning Course
A guided curriculum through learning Onshape applied to robot design fundamentals. Looking to learn FRC robot design and CAD skills? Start here.
Learning Course
-
Design Handbook
Dives into the concepts necessary in order to design a competitive robot. Unlike the learning course, this is primarily a reference wiki.
Design Handbook
-
Mechanism Examples
Unlike other mechanism example collections, these are hand picked for specific concepts, with detailed breakdowns behind the design.
Mechanism Examples
-
Design Challenges
We run weekly design challenges! (Think of them as mini Cadathons.) Try them here.
Challenges
"},{"location":"#what-is-frcdesignorg","title":"What is FRCDesign.org?","text":" - FRCDesign.org is not just a resource collection. Though it includes many resources, almost all of the website's content has been written specifically for the website to align with our goals.
- Everything is taught from a competitive focus. Designing competitive robots helps inspire students and teach both engineering skills and life skills. It's also generally more fun when the robot performs well instead of breaking.
- We don't try to teach everything. The learning course is built around teaching a single CAD software (Onshape), and we encourage a specific design style which is optimized for the majority of mid-resource teams.
- We try to include the small details that most guides forget. The concept of an \"arm\" is almost ubiquitous, but the concepts behind designing a pivot that works every match and never breaks? That's not so much common knowledge and much more important.
- Design practices are important! We try to document and teach the best practices possible so you can design faster during the season.
"},{"location":"#discord","title":"Discord","text":"The most effective tool for learning design is getting feedback and learning from others. Join the Discord for design reviews, design challenges, and events.
"},{"location":"best-practices/","title":"CAD Best Practices: Why?","text":"In this guide, we document best practices for Onshape CAD and design standards for FRC.
Reasons for these best practices include:
- Keeping loading times low
- Staying organized, so that making changes down the line is easier and more accessible
- Encouraging top-down design through document structure
- Making CAD resistant to breaking
Why standardize design?
- Make it easier for new designers to succeed; reduce the number of things to learn
- Make it harder to make mistakes - encourage good practice through standardization
- Reduce part cost - only invest in parts that work and last
Essentially, standardizing practices on your FRC team helps to ease the requirement of institutional knowledge by making things \"just work\".
Note
This is a living document.
"},{"location":"best-practices/assembly-setup/","title":"Assembly Best Practices","text":"Assuming you have already named your parts and organized your work within the rest of the document, creating a well-organized assembly is very straightforward.
"},{"location":"best-practices/assembly-setup/#the-origin-cube","title":"The Origin Cube","text":"The Origin Cube Featurescript inserts a 2\" transparent cube at the origin of the part studio. The cube has a mate connector at the origin. Because this part will never change and always stays at the origin of the part studio, using it to group and fasten parts to the origin will always be more robust and parametric than fixing or using a mate connector attached to another part, in case that part changes or is deleted.
Inserting the Origin Cube feature Tip
The origin cube has the option of importing a number of useful constants and functions, including bolt hole sizes, gear outer diameter, and a center-to-center calculator.
"},{"location":"best-practices/assembly-setup/#process-for-inserting-parts","title":"Process for Inserting Parts","text":"As is described in Sub-Document Setup, subsystems with no degrees of freedom will only have one assembly, while subsystems with multiple moving parts are separated into rigid assemblies. The process for inserting parts and finishing assemblies is similar for both circumstances.
- Create the origin cube in your part studio
- Insert the related parts and origin cube for a rigid subassembly
- Use the \"group\" tool on all parts
- Fasten the origin mate connector to the origin
- Duplicate and fasten any duplicate parts
- Insert standard hardware and COTS components
- Sort the instances into folders (i.e. tubes, swerve modules, spacers)
Tip
As you add more parts in the part studio, you can insert them individually into the assembly with the green checkmark, double click on the initial group, and add the part to the group to avoid mating it. This means that new part will always stay in the same place relative to where it was designed in the part studio.
If the subsystem has multiple moving parts (like an over-the-bumper intake or elevator), create a mate connector on the master sketch for each degree of freedom. This may be a pivot point or the starting point of a slider mate (in the case of an elevator). Make each mate connector owned by the origin cube.
Repeat steps 4-7 of the process for all other rigid subassemblies, if applicable. This will result in each subassembly being rigid, with the origin cube fastened to the origin and all the parts in the same place as in the part studio. Each subassembly will also contain the mate connectors owned by the origin cube.
Now create a top-level subsystem assembly and insert each subassembly into it. Fasten the origin cube of the static subassembly to the origin, and use the other mate connectors to mate the other subassemblies together.
Stage 2D - Slapdown Intake Stage 2D - Slapdown Intake is a subsystem with a static portion and a pivoting portion. An extra mate connector is added for the pivot on the master sketch, owned by the origin cube
This mate connector exists in both subassemblies.
The static assembly is fastened to the origin and the arm assembly revolves using the pivot mate connector owned by both instances of the origin cube.
Stage 2E - Cascade Elevator Stage 2E - Cascade Elevator is a subsystem with a static portion and two subassemblies that slide linearly. This contains a part studio, a static frame/gearbox assembly, assemblies for the first stage and carriage, and a top-level assembly combining the 3 subassemblies with slider mates.
3647 Millennium Falcons 2024 Intake Top Level Assembly: 0200-A-Intake. Notice that there is only two mates. The revolute is between the two intake pivot mate connectors, which are attached to the repective origin cubes.
Stationary Components Assembly: 0210-A-Intake Base. The components are group mated and the origin cube is fastened to the origin.
Stationary Components PS: 0210-A-Intake Base. Notice the intake pivot mate connector, derived from the orange master sketch.
Moving Components Assembly: 0220-A-Intake Arm. The components are group mated and the origin cube is fastened to the origin.
Moving Components PS: 0220-Intake Arm. Notice the intake pivot mate connector, derived from the orange master sketch.
"},{"location":"best-practices/assembly-setup/#simplified-models","title":"Simplified Models","text":"Make sure to minimize primitives in your assembly. Primitives are a measure of how complex the object is and how hard it is for Onshape to render. The more primitives there are, the more laggy your assembly will be.
Use simplified models wherever possible to minimize primitives: electronics, swerve modules, motors, etc. Some of these are added to MKCAD as well.
Minimize Primitives
"},{"location":"best-practices/assembly-setup/#other-small-things","title":"Other Small Things","text":" - Import COTS parts from MKCAD
- Use the replicate tool for adding hardware!
- Minimize the number of mates you use; this lowers the solve time
- Stay organized with folders
See a well-organized assembly here:
"},{"location":"best-practices/document-setup/","title":"Document Setup","text":"In general, an FRC robot is too complicated and has too many parts to be created entirely within a single document. Doing so is possible, but will result in bad loading times, and likely poor organization.
To alleviate these challenges, we generally split FRC robots into several documents, each with an individual version number:
- \"Concept\" document: contains the mastersketch, which determines the overall architrcture and geometry for the robot, alongside the Crayon CAD (a simplistic model of your robot archetype)
- Several \"Subsystem\" documents, which contain the part studios, subassemblies and top-level assembly for each subsystem, such as an Intake
- \"Master Robot\" document, which contains the top-level full robot assembly. This assembly is comprised of the top-level assembly from each of the subsystem documents.
To connect these documents to each other, we make use of a few key Onshape features:
- Derive feature: brings your mastersketch from the concept document into the subsystem document, so you can design your parts on top of it.
- Import: Subassemblies are imported from each subsystem document so they can be assembled in the master robot document.
Here is a diagram showing the full file structure:
Blue: Derive, Red: Import
Note
Sometimes the \"master robot\" document is combined with the \"concept\" document. In this case nothing really changes, the file structure just becomes a sort of loop, and there is one less document.
You can see an example of this document structure here. Note the combination of the framework and master documents.
The document structure isn't set in stone; as long as it helps your team fulfill the goal of top-down design and uses separate documents to split up the versions of mechanisms, you can place your master sketches wherever you want (master document, concept document, or the drivetrain document).
"},{"location":"best-practices/feature-tree-setup/","title":"Part Studio Best Practices","text":""},{"location":"best-practices/feature-tree-setup/#what-to-include-in-the-part-studio","title":"What to Include in the Part Studio","text":"The part studio should contain all parts that need to be manufactured by your team. This could include fully custom plates, shafts cut to length, modified COTS parts, etc. Unmodified COTs parts should be imported directly into the corresponding assembly - no modification inside the part studio is required.
Also avoid duplicating identical parts and over-using intensive featurescripts, such as tube converter. These practices can make your part studio loading times high and navigation and changes very laggy. Creating only one of each part in the part studio means you can simply duplicate it when assembling while your part studio performance will be greatly improved.
Tip
Instead of deriving COTS parts for reference, usually you can add simple measurements in your sketches (like a pitch circle instead of a derived gear), which faster both in the moment and overall with load times. You can derive parts from your other subsystems (such as the frame and simplified modules from your drivetrain part studio into your intake part studio) and make them closed composites for easy reference, but keep it to a minimum.
"},{"location":"best-practices/feature-tree-setup/#feature-tree-organization","title":"Feature Tree Organization","text":"Every part studio feature tree should start with a derive command, pulling down the relevant master sketches. This is what you will build on.
Sort and name the features, parts, and tabs and use folders to make your CAD more understandable for other people working on the robot. One of the biggest benefits of Onshape is its collaborative capability, but unnamed and unsorted documents eliminate that point entirely. Sorting and naming in real time can also make it easier to go back and change things (which you will inevitably need to do). Some teams even use a part naming system to assist with organizing manufacturing and assembly.
Tip
You can rename parts manually or use one of many various featurescripts to do so automatically.
See an example of a well-organized part studio here:
"},{"location":"best-practices/feature-tree-setup/#the-importance-of-intelligent-origins","title":"The Importance of Intelligent Origins","text":"As with many good practices in CAD, smart origins are another good practice to make future you's life easier. Intelligent origins allow designers to leverage default geometry (Front/Right/Top Planes, Origin Point) for robust axes of symmetry and references in their models.
For FRC CAD, the purpose of using the same origin as the master sketch across all studios and assemblies is twofold:
- The origin will always be a consistent central point you can reference. This helps keep things parametric too.
- To unify the robot CAD and robot software origin point. By having the same origin in CAD and code, the robot can be seamlessly exported to AdvantageScope and camera transformations more easily measured.
Note
Although definitions may vary from team to team, the origin of an FRC robot is typically defined as the center of the drivebase, on floor level.
One way to help achieve this is to use the Origin Cube Featurescript, which is further explained in the assembly best practices page. If using the origin cube, make the origin cube the first feature in all part studios.
"},{"location":"best-practices/mastersketch-setup/","title":"Master Sketch Best Practices","text":"A master sketch is a series of sketches that capture the major dimensions of each mechanism, field element interactions, and robot size constraints. Then, the master sketch(es) are inserted into each mechanism's part studio and the individual components are then modeled around the imported layout sketch. This enables much easier integration with a top-down design approach.
Always Include Sometimes Include Never Include Drivebase dimensions Gears Specific details like the shape of plates End-effector wheel locations based off of prototyping Belts Gussets Field elements and extension limits Chain Mounting holes Mechanism motion paths Motor locations Gamepiece path
This isn't an extensive list, and things can vary from team to team and from architecture to architecture. Detail can easily be added or removed later if necessary.
All important measurements that drive the geometry of the robot exist in the master sketches part studio. They can all be easily viewed and changed together, as opposed to if you had to go through each subsystem to make changes to the geometry to try to make things fit in the top-level robot assembly.
1778 Chill Out's 2024 Robot Master Sketches Master sketches always start with your drivetrain, bumpers, initial configuration, and extension limits. Field elements are sketched next. You can use hard alignment against bumpers to ensure your geometry can score pieces without much software or mechanical complexity.
Tip
Directly after kickoff, you can create a part studio with layout sketches of the drivetrain, extension limits, and field elements. This can be copied and used to test out the geometries of several different robot architectures to then decide between.
Your robot should be designed specifically to interact with the field elements and gamepieces. For the master sketches, this means making every dimension of every subsystem intentional, whether it's based off of field elements, extension limits, or each other.
Example
The length of an elevator would be driven by the start and end positions of the manipulator being moved, since those positions are based on how it interacts with the field elements.
Tip
You can make construction circles representing the range of motion of a pivoting subsystem, and dimension a subsystem a distance away from that circle to make sure there's clearance between them.
Effective mastersketching requires you to stay organized. This means:
- Multiple sketches, usually one per subsystem, within the mastersketches part studio. Keep everything separate!
- Name your sketches accordingly
- You can also give your sketches different colors to differentiate between them
- Sketch all the possible states of each moving subsystem
Mastersketching is an art that can require some practice to get the hang of. While Stage 3 helps you learn and practice doing full master sketches, this tutorial can help you get started if you are unsure.
A presentation of an example: 8177 Vector 2023 Robot
"},{"location":"best-practices/sub-document-setup/","title":"Sub-Document Setup","text":"Each subsystem document should have at least one part studio and one assembly associated with it.
Stage 2B - Basic Shooter is a simple subsystem with no moving parts. This contains only a part studio and a rigid assembly.
"},{"location":"best-practices/sub-document-setup/#subsystems-with-multiple-degrees-of-freedom","title":"Subsystems with Multiple Degrees of Freedom","text":"You may want to split subsystems with multiple degrees of freedom into multiple rigid assemblies. Each separate moving part of the subsystem should have a 'rigid' assembly (no degrees of freedom allowed for any part), while the top-level subsystem assembly only defines the motion between them.
Note
A rigid assembly, when inserted, is treated as a solid body with no mates calculated. It decreases load time in top-level assemblies greatly. You will learn how to integrate the origin cube into this system for easy parametric mates in assembly best practices.
For example, you could split an elevator document into one part studio and corresponding rigid assembly for each stage. The top-level elevator assembly would thus include each of the stage subassemblies within it and the slider mates.
Stage 2D - Slapdown Intake is a subsystem with a static portion and a pivoting portion. Functionally, this contains a part studio, a static assembly for the gearboxes and pivot, a rigid assembly for the arms and rollers, and a top-level assembly combining the two subassemblies.
Stage 2E - Cascade Elevator is a subsystem with a static portion and two subassemblies that slide linearly. This contains a part studio, a static frame/gearbox assembly, assemblies for the first stage and carriage, and a top-level assembly combining the 3 subassemblies with slider mates.
"},{"location":"contribution/contributors/","title":"Contributors","text":"FRCDesign.org would not happen without the wonderful work of these people!
"},{"location":"contribution/contributors/#website-writers","title":"Website Writers","text":" - David
- Kelly
- Andrew Card
- Jonathan Mi
- Brendan
- Astro
- Neel
- Eeshwar
- Vaughn
"},{"location":"contribution/contributors/#external-contributors","title":"External Contributors","text":""},{"location":"contribution/contributors/#additional-input","title":"Additional Input","text":" - Kremer
- Nick Aarestad
- Trisha
- Chickenbonker
- Andrew Torrance
- Lati
- Jeremy
- Sarah
"},{"location":"contribution/contributors/#social-card-design","title":"Social Card Design","text":""},{"location":"contribution/mechanismContribution/","title":"Contributing to Mechanism Examples","text":"The mechanism examples pages are the ones that would benefit the most from outside contribution. You can add examples from other teams, of course, but adding your own mechanism and going behind the design and performance on it will be ideal. If adding an example from another team, try to interview them for their input and more accurate information.
Criteria for Mechanism Examples:
- It must have been actually built and used at a competition
- You must show both the good parts and the bad parts. What was it designed for? Why were certain decisions made? How easy was it to build and manufacture? How did it actually perform? What went well and what would be changed if it was redesigned?
- Go into detail about specific parts of the design, such as the materials and parts used and why, any specific mechanisms or processes, etc.
- Detailed pictures of the CAD and/or the actual robot. Preferably public CAD made in or uploaded to Onshape.
- Extra media and links if available and applicable.
"},{"location":"contribution/mechanismContribution/#adding-mechanism-examples","title":"Adding Mechanism Examples","text":"As was described in methods of contributing, there are two methods:
- Writing the contribution on a separate platform (such as Google Docs) and getting an internal contributor to add it to the website
- Forking and making a pull request on GitHub
The first method is pretty self explanatory, but if you choose to fork and make a pull request on GitHub, there is some formatting required. Make sure to follow the contribution guide on the methods of contributing page to get up and running with GitHub and VS Code.
"},{"location":"contribution/mechanismContribution/#adding-a-mechanism-category-optional","title":"Adding a Mechanism Category (OPTIONAL)","text":"If you need to add a mechanism category, you must add a landing page for the mechanism examples in that category and a grid card to the mechanism examples landing page.
"},{"location":"contribution/mechanismContribution/#adding-the-folders-and-files","title":"Adding the Folders and Files","text":" -
Create a new folder under mechanism-examples
with the name of the new mechanism category. All mechanism example pages and the landing page for the category will be in this folder.
Note
If there are multiple types of the mechanism (such as with elevators and intakes), you can create multiple folders in that with the landing pages in each separate folder. For example, the folder elevator
contains the folders cascade
and continuous
, both of which contain a landing page index.md
.
-
In the root folder of the new category, create a new file called .meta.yml
and copy the following code into it:
social:\n cards_layout_dir: layouts\n cards_layout: mechanism_fundamentals_wide\n
This sets the size of image you will use for the social card for embeds for the whole category. You can choose between mechanism_fundamentals_wide
or mechanism_fundamentals_tall
for the cards_layout
option. Images have to be 1:1.545 or 1.545:1, any size. More information provided here
-
Create the landing page(s) for the category, named index.md
. Only one of these can be made per folder.
Copy this template for the category landing page and fill it out with your information:
---\ntitle: page-title\nimage: link-to-social-card-image\n---\n\n\n# page-title\ndescription\n\n<div class=\"grid cards\" markdown>\n\n- <center>[![](link-to-mechanism-image)](link-to-page)</center>\n\n ---\n\n description-about-unique-aspects-of-example\n\n [:octicons-arrow-right-24: page title](link-to-page)\n\n</div>\n\n<br>\n
The following is the code for the drivebase examples landing page:
---\ntitle: Drivebase Examples\nimage: docs/img/mechanism-examples/drivebase/2910drivebase.webp\n---\n\n\n# Swerve Drivebases\nThe drivebase is the single most important part of your robot, providing a bed for every other subsystem to build off. Examples of different drivebases can provide inspiration for electronics layout, bellypan shapes, and structural cross members for mounting, all of which can be a hard but crucial part of designing a robot, as accessibility and maintainability need to be preserved even as subsystems get placed on top of the robot.\n\n<div class=\"grid cards\" markdown>\n\n- <center>[![](../../img/mechanism-examples/drivebase/2910drivebase.webp)](2910.md)</center>\n\n ---\n\n A custom plate to keep the radio and breaker accessible, holes with grommets to allow wires to pass through the cross members\n\n [:octicons-arrow-right-24: 2910 Charged Up Drivebase](2910.md)\n\n- <center>[![](../../img/mechanism-examples/drivebase/972dt.webp)](brainpan.md)</center>\n\n ---\n\n A central 2x2 cross member, a brainpan, and citrus bumper mounting plates.\n\n [:octicons-arrow-right-24: 972 Brainpan Drivebase](brainpan.md)\n\n</div>\n\n<br>\n
"},{"location":"contribution/mechanismContribution/#adding-a-grid-card-to-the-mechanism-examples-landing-page","title":"Adding a Grid Card to the Mechanism Examples Landing Page","text":"All grid cards are contained in the <div class=\"grid cards\" markdown>
div. See the mkdocs-material docs about grid cards for more information.
Copy and paste the following code into the div and replace all template information with your own.
- <center>[![](link-to-image)](link-to-category-page)</center>\n\n ---\n\n Example Description\n\n [:octicons-arrow-right-24: category-name](link-to-category-page)\n
Note
Leave a line break in the code between each card, otherwise the card content will merge.
The following is the code for the drivebase examples grid card:
- <center>[![](../img/mechanism-examples/drivebase/2910drivebase.webp)](drivebase/index.md)</center>\n\n ---\n\n Swerve drivebases with examples of electronics layout\n\n [:octicons-arrow-right-24: Swerve Drivebases](drivebase/index.md)\n
"},{"location":"contribution/mechanismContribution/#adding-a-mechanism-example-page","title":"Adding a Mechanism Example Page","text":"Adding a mechanism example page to an already existing category requires a few things to be done. The page has to be created, a grid card for it must be created in the category landing page, and an standard image for the example needs to be created.
"},{"location":"contribution/mechanismContribution/#creating-the-page","title":"Creating the Page","text":"Create a new .md
file in the category folder for your example.
Copy the following template into it and fill out the information using Markdown formatting:
---\nimage: link-to-social-card-image\n---\n\n# mechanism-example-name\n\n<figure markdown=\"span\">\n [![alt-text](link-to-image){height=80% width=80%}](link-to-cad){target = \"_blank\"}\n<figcaption>caption</figcaption>\n</figure>\n\n### Links\n[CAD Link](link){target = \"_blank\"}\n\n## Behind the Design\n\n<br>\n
The following is an example of the 2910 Charged Up Drivebase page without content written:
---\nimage: docs\\img\\mechanism-examples\\drivebase\\2910drivebase.webp\n---\n\n# 2910 Charged Up Drivebase\n\n<figure markdown=\"span\">\n[![2910 Charged up Drivebase](../../img/mechanism-examples/drivebase/2910drivebase.webp){height=80% width=80%}](https://cad.onshape.com/documents/28a885d3b8ad7de567efebbd/w/33b7dd39d54ec1ab15f2e2aa/e/d78c591638c349b708e238e6){target = \"_blank\"}\n<figcaption>Swerve drivetrain featuring MK4I swerve modules, a pocketed bellypan, and a billet brass frame-rail for weight distribution.</figcaption>\n</figure>\n\n### Links\n[CAD Link](https://cad.onshape.com/documents/28a885d3b8ad7de567efebbd/w/33b7dd39d54ec1ab15f2e2aa/e/d78c591638c349b708e238e6){target = \"_blank\"}\n\n## Behind the Design\n\n<br>\n
Add any images you use for your page in /docs/img/mechanism-examples/[category]/[example]/
.
"},{"location":"contribution/mechanismContribution/#adding-an-image-for-the-example","title":"Adding an Image for the Example","text":"Check the category's .meta.yml for the default card layout (tall or wide). This will be the orientation of the 1:1.545 image you will use for the mechanism example.
1:1.545 is the aspect ratio of a picture outputted from Onshape's \"print\" function using the \"tabloid\" paper size. You can select landscape or portrait from there for wide or tall.
Tip
For images you already have, you can use GIMP and a calculator to crop an image by adding pixels to get it to the desired aspect ratio.
"},{"location":"contribution/mechanismContribution/#adding-pages-to-site-navigation","title":"Adding Pages to Site Navigation","text":"Any new pages added have to be added to the site navigation.
Follow the standard formatting presented in the mkdocs.yml file
to add more pages, categories, and landing pages as necessary:
mkdocs.yml
- Mechanism Examples:\n - mechanism-examples/index.md\n - Drivebases:\n - mechanism-examples/drivebase/index.md\n - 2910's Charged Up Drivebase: mechanism-examples/drivebase/2910.md\n - 972's Brainpan Drivebase: mechanism-examples/drivebase/brainpan.md\n - Shooters:\n - mechanism-examples/shooter/index.md\n - Andrew's Hyperhive Shooter: mechanism-examples/shooter/small.md\n - 1678's Rapid React Shooter: mechanism-examples/shooter/citrus.md\n - Slapdown Intakes:\n - mechanism-examples/intake/slapdown/index.md\n - 4414-Style Intake: mechanism-examples/intake/slapdown/4414style.md\n - Washed Beavertail Intake: mechanism-examples/intake/slapdown/washed.md\n - Low Pivot Slapdown Intake: mechanism-examples/intake/slapdown/low.md\n - 6423's Crescendo Slapdown Intake: mechanism-examples/intake/slapdown/6423otb.md\n - 4 Bar Intakes:\n - mechanism-examples/intake/4bar/index.md\n - 1678's Rapid React Intake: mechanism-examples/intake/4bar/1678.md\n - Andrew's Four-Bar Intake: mechanism-examples/intake/4bar/clean.md\n - Vaughn's Four-Bar Intake: mechanism-examples/intake/4bar/vaughn4bar.md\n
As you can see, the formatting goes: - Mechanism Examples:\n - mechanism-examples/index.md\n - Category 1:\n - link-to-category-landing-page\n - Mechanism 1: link-to-mech-1-page\n - Mechanism 2: link-to-mech-2-page\n
Thanks for your contribution!
"},{"location":"contribution/methodsOfContributing/","title":"Methods of Contributing","text":""},{"location":"contribution/methodsOfContributing/#public-contribution","title":"Public Contribution","text":"Anyone can create content for the website without markdown knowledge or github, though it is preferred you learn how to use both to lessen the workload of other contributors.
In the discord server, go to the \"website-discussion\" channel and ask if you can contribute the thing you want to by filling out this template:
Issue/content:\nSolution or Notes about the execution of the content:\nWhen do you plan on finishing?:\nUsing an alternate platform or forking on Github?:\n
This is to make sure you don't waste your time if it's not something that won't get put on the website or something that someone has already started working on.
If you're given approval to start working on it, an internal contributor will make a new post in the \"public-website-contribution\" forum channel or direct you an existing post to work with and supplement another contributor if the content or issue has already started to be addressed.
When you start on your work, you may choose to either:
- Fork the repository on Github and submit pull requests for your work to be accepted (if you're more programming-savvy)
- Work on an alternate platform such as Google Docs or Notion and let an internal contributor port it over to the website when you're done
"},{"location":"contribution/methodsOfContributing/#setting-up-github-and-vs-code-for-contributing","title":"Setting up Github and VS Code For Contributing","text":""},{"location":"contribution/methodsOfContributing/#install-prerequisites","title":"Install Prerequisites","text":"Make sure to download the correct versions for the OS that you have (Windows, Mac, or Linux).
Windows installers will almost always need to be the 64-bit version if there is a distinction.
- The latest version of Git Bash
- Follow instructions for your OS
- Use all default options for installation
- Python 3.10.6
- When the installer opens, make sure to select \"Add Python 3.10 to PATH\" at the bottom and click \"Install Now\"
- For Windows users, you have the option of disabling the PATH length limit at the end; this can be helpful for other projects but is not required for contributing to the website
- VSCode
- Download the stable build for your OS
- Use all default options for installation, except creating a desktop icon if you want
- GitHub Desktop
- After installing, select \"Sign in to GitHub.com\"
- Sign in or sign up for a new GitHub account, then click \"Authorize Desktop\"
- If you choose to sign up, you must verify your account with a captcha at the end of the registration and an emailed code
- If the captcha fails, try disabling a privacy extension that might be interfering
- Set up the rest of your account (you may choose to sign up for GitHub education but that isn't required, the free version is fine)
- If it doesn't take you to the authorization page after signing up, go back to the GitHub Desktop application, press \"Cancel\", the select \"Sign in to GitHub.com\" again
- Allow your browser to open GitHub Desktop
- Click \"Finish\"
"},{"location":"contribution/methodsOfContributing/#steps-to-start-writing-contributions","title":"Steps to Start Writing Contributions","text":"For Public Contributors:
- Go to the repository website
- Click \"Fork\" near the top right, then click \"Create Fork\" on the next screen
- Open GitHub Desktop and select \"Clone a repository from the Internet...\" or go to
file -> Clone repository...
in the very top left - Under \"GitHub.com\", select your forked
[username]/FRCDesign.org
repository and click \"Clone\" - After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork. Select \"To contribute to the parent project\" and click \"Continue\"
For Internal Contributors (added to the main repository):
- Open GitHub Desktop and select \"Clone a repository from the Internet...\" or go to
file -> Clone repository...
in the very top left - Under \"GitHub.com\", select the
davidsdesignserver/FRCDesign.org
repository and click \"Clone\" - After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork. Select \"To contribute to the parent project\" and click \"Continue\"
How to Write and Pull Request Contributions
- Create a new branch by going to the \"Current branch\" dropdown at the top of GitHub Desktop, pressing \"New branch\", naming it and clicking \"Create branch\".
- Typically you want to make changes in branches (not main), then do what's called a \"pull request\" to get those changes \"pulled\" and merged over to the original main branch
- Name the branch something related to the overall changes you're making, e.g. \"contributors-guide\" or \"3A-cleanup\". You should expect to delete the branch after a pull request, so keep it specific enough to your changes
- Make sure to publish the branch by clicking the button for it that shows up after you create a new branch
- Click \"Open in Visual Studio Code\" to open VS Code.
- If you get a pop-up that says \"Do you trust the authors of the files in this folder?\", check the box next to \"Trust the authors of all files in the parent folder 'GitHub'\" (for no further popups when you clone repositories in the future) and click \"Yes, I trust the authors\".
- Set up VS Code how you like if this is your first time running it (themes, extensions).
- The \"Code Spell Checker\" extension is suggested
- Enable autosave in the
file
menu by toggling it on
-
Make a set of changes.
Tip
All the website files and folders are contained in the docs
folder, except the mkdocs.yml
file which contains the directory for the sidebar of the website
-
Whenever you reach a good point to stop where you want to save your changes to the cloud, you want to make what's called a \"commit\", which is where the changes are saved to the branch. You then have to \"push\" any commits to get them uploaded to the cloud, otherwise they will remain local. You can do this through VS Code or GitHub Desktop, but we'll go through GitHub Desktop to keep all version control actions centralized there.
- Open Github Desktop and make sure \"Changes\" on the sidebar is selected. All changes selected in the sidebar will be added to the commit (the changes are \"staged\" for the commit). Type a summary of the commit (description optional) and press \"Commit to [branch]\".
-
Click the button to push the commit(s) you've made to the cloud (either up above or in the middle of the screen).
Tip
Clicking the \"Fetch origin\" button will fetch any commits to the current branch that anyone else has made and pushed to the cloud
-
To keep your code up to date with the original repository's main branch, open the \"branch\" menu at the top of the screen and click \"Update from main\". If some commits get pulled to your branch from main, you can push to update your branch in the cloud again.
Tip
Make sure to update your branch from main frequently! If you don't, you may have to resolve big conflicts between your changes and changes someone else made to main. If you encounter conflicts, just follow the prompts in GitHub Desktop to open the conflicts in VS Code and solve them there. Once all conflicts are resolved, switch back to GitHub Desktop to complete the merge.
-
Once you're satisfied enough with your set of changes to request to add them to the main website, and have committed all changes, checked for updates, and pushed all commits, create a pull request through the menu in the middle of GitHub Desktop. This will bring you to the website where you can describe the changes you made and want to pull to the website and assign an issue that it will fix. One of the internal contributors will review your pull request after you submit it and will either approve it and merge it with the main branch or make comments about things that need fixed before it can get merged.
To recap the contribution steps, do the combination of creating and publishing a branch, making changes and commits, updating from main, pushing commits, and creating a pull request.
"},{"location":"contribution/methodsOfContributing/#how-to-get-the-local-preview-of-the-website-running","title":"How to Get The Local Preview of the Website Running","text":"You can get a local hosted version of the website to have a live preview of the site while editing.
- Open the repository in VS Code (doesn't matter which branch)
- Toggle the bottom panel on if there isn't one with the shortcut
Ctrl + J
- Click the dropdown next to the + on the top righthand side of the bottom panel and click \"Git Bash\"
- Run the command
py -m venv venv
to create a virtual environment (FIRST TIME) - Run the command
./installdependencies.sh
to install all needed python packages (FIRST TIME) - Run the command
./runlocal.sh
to start the server - If everything went smoothly it should say its \"Serving on\" something like
http://127.0.0.1:8000
Make sure to run ./runlocal.sh
in Git Bash every time you open VS Code to edit.
Tip
After clicking on the terminal in the bottom panel, you can use Ctrl + C to terminate the local website hosting.
Note
When you switch branches using GitHub Desktop, the local preview will follow without any problems
"},{"location":"contribution/styleguide/","title":"Contribution Style Guide","text":""},{"location":"contribution/styleguide/#futureproofing-and-usefulness","title":"Futureproofing and Usefulness","text":"To make the content you write useful for teams of all resource levels, while maintaining validity in the future, the goal isn\u2019t to go broad and shallow, but to go extra deep to equip students with the understanding of the underlying fundamentals behind concepts to apply to their own unique situations. Pros and cons are context dependent while fundamentals are universal.
At the same time, things that aren\u2019t easily accessible and/or commonly used by teams, like billet chassis and ball drive, shouldn\u2019t be included to prevent confusion.
On the other hand, including small details that you\u2019d only discover through actually making the thing tends to be a lifesaver for everyone (such as electrical taping cat-tongue tape to make it not peel).
"},{"location":"contribution/styleguide/#why-is-this-important","title":"Why is this important?","text":" -
We don\u2019t need to figure out the pros and cons of everything for students to make a decision. New products come out all the time, and equipping them with the skills lets students find creative solutions that no one would think of for their circumstances.
-
This enables students to understand WHY a team would make a certain decision and figure out tradeoffs without us explicitly telling them.
-
It makes it significantly less intensive to future proof and maintain. If the meta shifts, having to redo sections to stay competitive is time consuming. If the project dies and is no longer maintained, the information stays useful for way longer.
-
The small details are often the experience gap between the most reliable successful robots and not. It\u2019s a lifesaver for teams without experience, and reduces the review workload on design mentors with experience.
"},{"location":"contribution/styleguide/#to-make-this-easier-here-are-a-few-tips","title":"To make this easier, here are a few tips:","text":" -
You can usually find extremes for each concept to make it more obvious. (stealth wheels vs brass flywheels for inertia.)
-
It may be useful to find one or two meta team applications and figure out what fundamental trade offs are made for that decision. This helps learners understand how these concepts relate to each other. This also applies to mechanism examples.
-
\u201chow to cad xyz\u201d and IRL nuances are very useful for certain applications. Examples include sketching linkages or tensioner placement depending on load.
"},{"location":"contribution/styleguide/#inspired-by-gm0s-style-guide","title":"Inspired by gm0's Style Guide","text":"Don\u2019t deal in absolutes.
- Only a Sith deals in absolutes
- Use pros/cons lists to compare options
- Explain WHY something is good or bad
- For example, we all know deadaxle pivots are better than liveaxle. But don\u2019t just say they\u2019re better, say: \"Deadaxles have a higher second moment of area as the torque being directly transferred to the part. As a result your pivot is significantly more robust and less prone to breaking. \u201d
- Similarly, we know the Kraken motors are generally good. But explain why they are good, e.g. \u201cWe would recommend using Krakens on your drivetrain because they are extremely high torque motors and will improve your acceleration. In addition, they have integrated Talon FX motor controllers that make them easier to wire and feature a high resolution encoder which will help the precision of your swerve odometry. Keep in mind that Kraken motors are not yet compatible with stock REV Maxswerve modules and require an extra adaptor from WCP to mate with other existing modules.\u201d
- Still emphasize that teams are free to explore and innovate, but help set realistic expectations (see the following point)
FRCDesign.org is a guide from a competitive standpoint. - Try to leave out stuff that doesn\u2019t work well and is unpopular; if it is popular it is worth explaining the disadvantages (See tank drive vs mecanum drive; explaining tank drive, as a relatively popular and simple drivetrain makes sense, but mecanum drive, a drivetrain that no longer makes sense in the era of swerve and has little-to-no pushing power or traction.) - Try to leave opinions out as much as possible. Do not speak authoritatively on stuff you do not have first-hand experience with whenever possible
Keep in mind that FRC design trends are temporary and transient. - Just because something is popular one season doesn\u2019t mean it\u2019s the end all be all. There was a time when WCD and sheet metal superstructures was all the rage, but that doesn\u2019t mean that we should recommend them in this guide. Try your best to think about why something is popular, and what benefits in design, function, and execution they actually bring to the table.
"},{"location":"contribution/styleguide/#standards","title":"Standards","text":""},{"location":"contribution/styleguide/#file-formats","title":"File Formats:","text":" - Compress images to .webp format using squoosh
- Embed longer videos using a Youtube embed, and shorter videos with a webm file
- Add images by using
<center><img src=\"absolute link\" width=\"x%\"></center>
"},{"location":"contribution/styleguide/#brand-standards","title":"Brand Standards","text":"Adhere to brand standards when possible.
- Abide by FIRST\u00ae Trademark guidelines, available here
- The first instance of FIRST and FRC on a page should include \u00ae (i.e, FIRST\u00ae)
- Always capitalize and italize the name FIRST
- Do NOT use a possessive on the FIRST name (e.g, FIRST\u2019s)
- This also applies to team names: spell them how they are officially spelled
- Check The Blue Alliance if you don't know how to spell a team's name
You can use \u201cyou\u201d when writing, when it makes writing less awkward. However, try avoiding excessively using it.
"},{"location":"design-challenge/","title":"Design Challenges","text":"Design Challenges are at the core of what makes DDS Special. Design Challenges provide a variety of different practice scenarios to iron your design skills and compete against others in a mutually beneficial way.
"},{"location":"design-challenge/#scoring","title":"Scoring","text":"Each Design Challenge will net a total of 7 points maximum, with 4 for completion and 3 possible bonuses. Late submissions will allow participants to win up to 2 completion points and all 3 bonus points.
"},{"location":"design-challenge/#bonuses","title":"Bonuses","text":" - Simplicity bonus: Awarded to submissions that simplify design to increase the quality of life of their team.
- Quality bonus: Awarded to submissions that embody good CAD and design principles and reflect the time and effort put into making a design as clean as possible.
- Special bonus: Bonus point specific to each design challenge, usually involving the way the challenge is approached and the design is executed.
"},{"location":"design-challenge/#leaderboards","title":"Leaderboards","text":"Design challenges will feature two separate leaderboards: Beginner and Intermediate/Advanced. Each leaderboard will function independently, but points will be transferred when beginner members gain experience and self identify as intermediate. Please correctly self identify with your skill level! DDS is meant to be a community for learning, and trying to game the system by identifying as a beginner only discourages others. We operate on an honor system, but if someone is trying to game the system, we will punish them accordingly.
"},{"location":"design-challenge/challenges/week1/","title":"Design Challenge #1: Swerve Drivebase","text":"Welcome to the first design challenge! We are going to start with a swerve drivebase, the foundation of your robot. We have two different levels of challenges, beginner and advanced. It is recommended to complete the beginner challenge first before going on to the advanced version. The advanced version is the same as the beginner challenge, with a few additional things added on.
Beginner ChallengeAdvanced Challenge - You need to choose a COTS swerve module
- It needs to be assembled using 2\" x 1\" aluminum tubes
- You need to add a bellypan
- The drivebase needs to be legal to be used on the field.
- Lay out and add mounting holes for all of the electronics, making sure to leave space for wires
- Add in the electronics models and mate everything together
- Add in and secure the battery in some way
- Add bumpers
- Add bumper mounts
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Feel free to check out drivebase examples here if you need some brainstorming.
Good luck with your first challenge!
One example of a drivebase! There are many different ways to make one, so don't let this one example drive your design! Be creative and let your mind go wild."},{"location":"design-challenge/challenges/week2/","title":"Design Challenge #2: Gearboxes","text":"This week we will be designing a custom gearbox. Custom gearboxes can be used for many applications, from pivots for intakes or arms, to elevators, and much more. They are useful in certain applications due to their cheap cost and low backlash, as well as being highly customizable to different packaging situations. It is important for any well rounded designer to know their way around a custom gearbox.
Beginner ChallengeAdvanced Challenge Beginner Challenge: The year is 2019, and COTS swerve isn\u2019t a thing yet (unless you want to run andymark swerve and steer\u2026). Your team is designing a custom WCD, and needs gearboxes to drive it!
- Requirements:
- Create a 2 stage gearbox with a total reduction of ~6:1
- Gearbox must fit within the space requirements as outlined
- Gearbox may use any motors of your choice, minimum of 2 maximum of 3
Beginner Document Template
Advanced Challenge: Welcome back to Charged Up 2023! Some of you may be (too) familiar with this game, others may have never heard of it. It\u2019s the end of week 1 and your team has just finished deciding a robot archetype: double jointed arm. It\u2019s now your job to design that arm- without using COTS gearboxes. No planetaries, no wcp gearboxes, just your own skill to make a great double jointed arm.
- Requirements:
- Based on your team\u2019s end effector design, the end of the arm (where a wrist might be) must be able to reach the 3 setpoints in the outline document.
- The arm must stow within the frame perimeter, with at least 5 inches of clearance from the edge.
- No electronics will be required, other than motors.
- Drivetrain details will not be looked at.
- No COTS gearboxes
- Proper master sketch.
Advanced Document Template
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week3/","title":"Design Challenge #3: Ball Shooter","text":"This week we\u2019re moving onto a different challenge: ball shooters! These mechanisms have been useful across many games in modern FRC, including 2012, 2014, 2016, 2020, and 2022.
Beginner ChallengeAdvanced Challenge Welcome to 2020! Your team has decided to design a fixed angle hooded shooter to play the game, just like the highly successful team 973!
The year is 2026, and FRC is in shambles. 2025 will be known as the year epa died, as the majority of teams became uncompetitive due to the terrain game known as \u201cReefscape.\u201d Many teams had forgotten what a WCD is, and spent the build season fruitlessly trying to throw their COTS swerve drives at the sharp jagged field elements of the reef. Seeing the unfolding disaster, FIRST took emergency measures and turned the 2026 game into a generic ball shooter game, with hopes to let teams regain their competitiveness. Your job is to CAD a variable hood ball shooter for this year's game, fitting the following requirements.
-
- Assume the base of your shooter is mounted no higher than 3.5ft from the floor.
- The shooter must be able to shoot from between 3ft and 15ft from the base of the goal.
- Due to the goal's geometry, balls with too much backspin are likely to roll out. To counter this, your shooter must have some form of backroller(s).
- You should use a calculator to verify the shot angles and speeds that your shooter will operate at. We recommend reca.lc and/or klib.
Requirements:
Game characteristics: The goal geometry can be found in the CAD linked below. The game pieces are 6\u201d rubber kickballs weighing 0.29lbs. Optimal compression is up to your own interpretation. The goal geometry means the ideal way to score is to land the ball right on the lip of the goal while it\u2019s near the top of its arc.
Recalc Link
Klib Link (make a copy of the spreadsheet to use)
Field CAD
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week4/","title":"Design Challenge #4: Intake","text":"Now, you\u2019ve built a shooter, a gearbox for a pivot, and a drivetrain. For your next trick, you are going to be designing an intake. Some of you will remember last week where you designed a shooter for the 2026 game. Well, before you can shoot the balls you gotta get them into your robot.
Beginner ChallengeAdvanced Challenge While you may not have designed a shooter last week, don\u2019t fret. Your job this week will be to design a slapdown style intake for the game piece. Make sure to include fasteners and proper power transmission. We do recommend that you mastersketch up to a theoretical shooter just to think about integration a little.
Slapdown Examples
I can\u2019t believe you all designed a shooter without the intake \ud83e\udd26. Anyway, your job will be to design a 4-bar intake to intake these game pieces effectively. Preferably, you design this around your shooter that you made last week, so think about how to package with the space you left, along with the ideal ball path for your design. (Hint: Do a master sketch)
4-Bar Examples
For both challenges: You may pivot using motors or pneumatics.
The game pieces are 6\u201d rubber kickballs weighing 0.29lbs. Game Piece
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week5/","title":"Design Challenge #5: Tilt Shift","text":"The year is 2050. The internet was completely wiped 5 years ago, and all traces of past games have been completely destroyed. Your team has just built a time machine, and, following information about a legendary group of people collectively known as \u201cF4\u201d, have decided to go back in time to 2021 to see the wondrous games they\u2019ve created. You stumbled across the game \u201cTilt Shift\u201d, and decided to cad a subsystem for the game before deciding whether or not it is worth bringing back to the present.
BeginnerAdvanced You\u2019ve decided to create a manipulator for the game piece. Assume that you have some sort of way to move said manipulator from the scoring position to the loading position. A master sketch is recommended but not required.
Your goal is to create a master sketch for a full robot that can complete all aspects of the game. Additionally, pick one of those subsystems that directly interacts with the game piece and cad it.
Game Manual
Field CAD
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-handbook/","title":"Design Handbook","text":"These sections form an extensive and in depth reference manual that covers both fundamentals and advanced techniques in FRC robot design. While examples are given in Onshape, the content is largely CAD software agnostic.
Keep in mind that this category is a large work in progress, and will continue to be added to long after the design guide is finished. Feel free to write your own content for something we don't have yet and we'll try to incorporate it into the website (See contribution guide.)
"},{"location":"design-handbook/#strategic-design","title":"Strategic Design","text":"(WIP) Strategic Design is the holy grail of fundamentals. It can take any team's performance and raise it significantly (with a solid support structure of students and mentors). Strategic design is about all the factors that go into what robot your team decides to build, creating a successful build season schedule for getting it done, and executing it well for competitions. It's about priorities and tradeoffs. It's about designing a robot and playing the game within your capabilities.
"},{"location":"design-handbook/#hardware","title":"Hardware","text":"These pages are all about robustness and designing with fabrication in mind. This means materials, types of structure, hardware, tolerances, and tools and machines.
(WIP) Materials: Different types of common materials in FRC and how to use them best, how to design for manufacturing, and a guide on lightening.
(WIP) Structure: A guide on creating robust and versatile robot structures.
(WIP) Fasteners: A guide on fasteners and fastener standards common in FRC.
(WIP) Sheet Metal: A guide on designing for sheet metal.
(WIP) 3D Printing: A guide on designing for 3D printing.
(WIP) Tolerances: A guide on tolerances to account for when manufacturing real parts.
(WIP) Weight Savings: A guide on designing your parts to be lighter with and without pocketing.
"},{"location":"design-handbook/#power-transmission","title":"Power Transmission","text":"These pages discuss the transmission of power to enable robot functionality.
(WIP) Motion Components: A guide on bearings, bushings, axles, and the best use cases for them, including the mechanics behind transmission of torque through axles.
(WIP) Transfer of Rotational Motion: A guide on rotational power transmission components. Includes gears, belts, and chain.
(WIP) Linear Extension: A guide on linear extension systems such as worm gears and rack and pinion.
(WIP) Motors: A guide on motors. Discusses motor selection and motor calculations.
(WIP) Wheels and Rollers: A extensive guide on wheels found in FRC. Discusses their mechanical properties and use cases.
(WIP) Pneumatics: A guide on how and when to use pneumatics.
(WIP) Electronics and Sensors: A guide on how to design for electronics and incorporate sensors to improve the controllability.
"},{"location":"design-handbook/#mechanisms","title":"Mechanisms","text":"(WIP) Drivetrain: A guide on drivetrains.
(WIP) Elevators: A guide on elevators, including different types of rigging, COTS parts, gearboxes, and use cases.
(WIP) Arms: A guide on arms.
(WIP) Linkages: A guide on linkages.
(WIP) Intakes: A guide on intakes.
(WIP) Shooters: A guide on shooters.
(WIP) Turrets: A guide on turrets.
(WIP) Bumpers: A guide on bumper materials, construction, and mounting solutions, with several references.
"},{"location":"design-handbook/#design-write-ups","title":"Design Write-ups","text":"Write-ups on important topics to take your designs a step further.
(WIP) Designing for Controllability: Designing mechanisms and power transmissions for controllability.
(WIP) Chain Tensioning Solutions: Tensioning chain drive mechanisms.
(WIP) Bumper Mounting Solutions: Different solutions for bumper mounting.
(WIP) Springs and Shocks: Different forms of tension that can be used to lessen the load on structure or motors and how to use them.
"},{"location":"design-handbook/strategic-design/","title":"Strategic Design","text":"Strategic Design is the holy grail of fundamentals. It can take any team's performance and raise it significantly (with a solid support structure of students and mentors). Strategic design is about all the factors that go into what robot your team decides to build, creating a successful build season schedule for getting it done, and executing it well for competitions. It's about priorities and tradeoffs. It's about designing a robot and playing the game within your capabilities.
Coming Soon
"},{"location":"design-handbook/design-writeups/DFC/","title":"Designing for Controllability","text":"A guide on designing mechanisms and power transmissions for controllability. Make your programmer's life easier.
WIP
"},{"location":"design-handbook/design-writeups/bumperMounting/","title":"Bumper Mounting Solutions","text":"A guide on different bumper mounting solutions.
Coming Soon
"},{"location":"design-handbook/design-writeups/chainTensioning/","title":"Chain Tensioning Solutions","text":"A guide on tensioning chain drive mechanisms.
Coming Soon
"},{"location":"design-handbook/design-writeups/springs-shocks/","title":"Springs and Gas Shocks","text":"A guide on springs and gas shocks.
Coming Soon
"},{"location":"design-handbook/mechanisms/arms/","title":"Arms","text":"A guide on arm design.
Coming Soon
"},{"location":"design-handbook/mechanisms/bumpers/","title":"Bumpers","text":"A guide on how to design and build robust bumpers.
Coming Soon
"},{"location":"design-handbook/mechanisms/drivetrains/","title":"Drivebase Fundamentals","text":"A guide on drivebase design.
Coming Soon
"},{"location":"design-handbook/mechanisms/elevators/","title":"Elevators","text":"A guide on elevators design, including different types of rigging, COTS parts, gearboxes, and use cases.
Coming Soon
"},{"location":"design-handbook/mechanisms/intakes/","title":"Intakes","text":"A guide on intake design.
Coming Soon
"},{"location":"design-handbook/mechanisms/linkages/","title":"Linkages","text":"A guide on linkage design.
Coming Soon
"},{"location":"design-handbook/mechanisms/shooters/","title":"Shooters","text":"A guide on shooter design.
Coming Soon
"},{"location":"design-handbook/mechanisms/turrets/","title":"Turrets","text":"A guide on turret design.
Coming Soon
"},{"location":"design-handbook/power-transmission/electronics-sensors/","title":"Electronics, Motors, and Sensors","text":"A guide on how to design space for electronics, an overview of motors, and incorporating sensors to improve the controllability of a robot.
Coming Soon
"},{"location":"design-handbook/power-transmission/linear-extension/","title":"Linear Extension","text":"A guide on linear extension systems such as worm gears and rack and pinion.
Coming Soon
"},{"location":"design-handbook/power-transmission/motion-components/","title":"Motion Components","text":"A guide on bearings, bushings, axles, and the best use cases for them, including the mechanics behind transmission of torque through axles.
Coming Soon
"},{"location":"design-handbook/power-transmission/motors/","title":"Motors","text":"A guide on motors.
Coming Soon
"},{"location":"design-handbook/power-transmission/pneumatics/","title":"Pneumatics","text":"A guide on how and when to use pneumatics.
Coming Soon
"},{"location":"design-handbook/power-transmission/rotation/","title":"Transfer of Rotational Motion","text":"A guide on rotational power transmission components. Includes gears, belts, and chain.
Coming Soon
"},{"location":"design-handbook/power-transmission/wheels-rollers/","title":"Wheels and Rollers","text":"A extensive guide on wheels found in FRC. Discusses their mechanical properties and use cases.
Coming Soon
"},{"location":"design-handbook/structure/3d-printing/","title":"3D Printing","text":"A guide on designing for 3D printing.
Coming Soon
"},{"location":"design-handbook/structure/fasteners/","title":"Fastener Standards","text":"A guide on fasteners and fastener standards common in FRC.
"},{"location":"design-handbook/structure/fasteners/#bolts-and-nuts","title":"Bolts and Nuts","text":"Modern FRC generally uses two different types of imperial bolts, #10-32 and 1/4-20. FRC COTS components primarily utilize 10-32 fasteners, and with a bit of effort, we can make robots that use almost exclusively 10-32 hardware. In general:
- 10-32 is used for almost everything: retaining shafts, screwing into motors, superstructure, etc.
- 1/4-20 is used for structural applications where more strength is required than #10 can provide.
When designing around hardware, it is best to use the hole tool
- 10-32 hardware uses a hole diameter of 0.196 inches for a standard fit
- 1/4-20 hardware uses a hole diameter of 0.257 inches for a standard fit
"},{"location":"design-handbook/structure/fasteners/#tapped-components","title":"Tapped Components","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#bolt-retention","title":"Bolt Retention","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#rivets","title":"Rivets","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#welding","title":"Welding","text":"Coming Soon
"},{"location":"design-handbook/structure/materials/","title":"Materials","text":"An overview of raw materials commonly found on FRC robots.
"},{"location":"design-handbook/structure/materials/#aluminum","title":"Aluminum","text":"Coming Soon
"},{"location":"design-handbook/structure/materials/#polycarbonate","title":"Polycarbonate","text":"Polycarbonate plastic is used in high impact applications such as subsystems that are exposed beyond the robot frame perimeter. Typically 1/4\" thickness is used. 1/8 or 1/16\" polycarbonate can be used for dust covers, sponsor panels, etc - it will almost never shatter and looks great.
Tip
\"Smoked\" or \"tinted\" polycarbonate can provide a more aesthetic look than clear. While making smoked polycarbonate is difficult, making frosted is easy! 30 seconds of sanding with an orbital sander using 240 grit will give the material a nice, glassy finish.
1/8, 3/16, and 1/4 aluminum stock are generally used for gussets and plates that have to be stiffer than plastic could provide. Avoid using use these materials in applications where they will be exposed beyond the robot frame, as they are not as impact-resistant as plastics and can easily bend, or fail catastrophically. 6061-T6 is the most common alloy, but 7075 is sometimes used and has higher yield strength.
Note
Make sure to check your supplier's thickness and tolerance for each material. Sometimes something marketed as in imperial measurements is actually manufactured to fit metric tolerances. For instance: 1/4\" polycarb is actually sometimes manufactured as 6mm, which is 14 thousandths of an inch off of 1/4in. Account for these actual stock measurements when designing to make sure things end up fitting together!
"},{"location":"design-handbook/structure/sheet-metal/","title":"Sheet Metal","text":"A guide on designing for sheet metal.
Coming Soon
"},{"location":"design-handbook/structure/structure/","title":"Structure","text":"A guide on creating robust and versatile robot structures. Covers different materials, techniques, and COTS components.
"},{"location":"design-handbook/structure/structure/#box-tube","title":"Box Tube","text":"Coming Soon
"},{"location":"design-handbook/structure/structure/#tube-plugs","title":"Tube Plugs","text":"Tube plugs are metal inserts that go into the ends of box tube that allow you to fasten tubes together without the use of gussets. Combining tube plugs with crush blocks provides a simple and strong connection between tubes. Tube plugs find a major use in modern elevator designs due to how much they simplify the design process. By not having to worry about bearing blocks interfering with gussets, you massively cut down on design complexity while also cutting part count and robot cost. When bolting tube plugs to the tube you typically dont need to use all 8 available bolts, with 2-4 being acceptable for most use cases.
Note
Tube plugs are made to fit into tubes of 1/8\" wall thickness. For tube with thinner walls you can use a plastic sleeve (possibly 3D-printed) on the outside of the tube plug to fill the gap with no strength loss.
Important
When using tube plugs, well-toleranced holes relative to the end of the tube are required to make a strong connection between the tubes.
"},{"location":"design-handbook/structure/structure/#crush-blocks","title":"Crush Blocks","text":"Crush blocks are common in modern FRC due to how frequently used thin-walled box tubing is. The main purpose of crush blocks is to prevent forces from buckling the thin wall of the tube. This is very easy to do by simply overtightening a bolt on the tube. Thus, crush blocks enable you to tighten the bolts more than you would without having a crush block. This stiffens the connection and the tube as a whole.
Note
Crushblocks can be made of any material, but 3D printing them is by far the simplest method of manufacturing for crush blocks. Just make sure to account for printer tolerances. Crushblocks shouldnt be too loose, but you dont want to have to hammer them in.
Above is the simplest form of a crushblock: a piece of plastic that fills the empty space within the tube with some holes for bolts to go through. For a crush block at the end of a tube, you can include a flange to aide in alignment with the holes in the tube. Crush blocks may not be ideal for use in the middle of long tubes, since they would be hard to install and service; in these places, you can add an extra 1/16\" plate on the outside of the tube to help spread the load of tightened bolts, functionally a large washer. For additional strength, consider increasing the amount of walls to 4-6 when 3D-printing.
"},{"location":"design-handbook/structure/tolerances/","title":"Tolerances","text":"A guide on accounting for tolerances to make your parts fit together properly when they are manufactured in real life.
Coming Soon
"},{"location":"design-handbook/structure/weight-savings/","title":"Weight Savings","text":"A guide on methods to make your parts lighter both with and without pocketing.
Coming Soon
"},{"location":"learning-course/","title":"FRC Design Learning Course","text":""},{"location":"learning-course/#frc-design-learning-course","title":"FRC Design Learning Course","text":"Welcome to the design learning course, the main purpose and content of the website! Keep in mind that it's always a work in progress, so if you find any issues or have difficulty understanding something, please give us feedback!
The purpose of the guide is to take you from zero to being able to model a full robot. You can start at any point you like to if you already have experience with CAD in Onshape, but as the usage and workflow of Onshape for FRC is very different than most CAD softwares, we recommend you go through the full guide to learn the fundamentals so you don't struggle with more complex CAD.
The guide's content focuses on FRC-relevant features and tools, using engaging projects that not only introduce new CAD skills and practice old ones but also introduce engineering concepts. These projects slowly become more open-ended.
Tip
If you already have some experience with CAD in Onshape, you may skip to Stage 1B for your first project and continue from there. It will help you start learning the preferred workflow to design mechanisms in Onshape.
"},{"location":"learning-course/#stage-0","title":"Stage 0","text":" - For people that haven't used CAD or Onshape before
- Introduction to CAD to read or skim
- Walkthrough to set up Onshape account and add necessary tools
- Guide on navigating Onshape
- Basic theory that helps develop a good mindset
"},{"location":"learning-course/#-stage-1-stage1-1a-onshapefundamentals-md-","title":"Stage 1","text":" - Learn the fundamentals of sketching, part design, multi-part modeling, and assemblies through Onshape Learning Courses and FRC-relevant exercises
- Learn about power transmission and modeling gearboxes
- Model a swerve drivebase
- Start learning top-down design workflow for FRC
"},{"location":"learning-course/#stage-2","title":"Stage 2","text":" - Learn about common mechanisms in FRC and model them
- Practice CAD skills until you're significantly more comfortable with Onshape
- Learn engineering concepts and mechanism design
- Learn layout sketches for different mechanisms
"},{"location":"learning-course/#-stage-3-stage3-3a-multidoc-ms-md-","title":"Stage 3 (Under Construction)","text":" - Practice full robot master sketches
- Replicate simple robots
- Practicing top-down workflow and integration
"},{"location":"learning-course/#stage-4-under-construction","title":"Stage 4 (Under Construction)","text":" - Master mechanism design
- Practice integration and workflow
- Master practices that optimize load time and make collaboration easier
- Study game history
- Learn strategic design
- Make more robots and mechanisms and get review and feedback
"},{"location":"learning-course/stage4/","title":"Stage 4: Next Steps","text":"Welcome to stage 4, practically the last stage! In this stage, you'll focus on mastering design fundamentals to the point where they are natural. This means learning how to optimize your CAD to be more parametric, mastering best practices and workflow that makes your CAD faster and more easily collaborated on, and learning more about engineering design and strategic design. There aren't any specific steps or projects in this stage; it's a lot more open-ended, and can be seen more as a \"choose your own adventure\".
-
Work on your own projects and get feedback. This could be mechanisms you don't have practice with, robots for specific games, or just anything you're interested in. Practice your workflow, optimize your CAD to be more parametric, and learn new ways of doing things. Make sure to get design reviews and feedback from team members, mentors, or in the discord server. As you get better, your improvements will be more in speed gains, parametric CAD, and optimizing load times.
Tip
The \"design-review\" forum channel can be posted in to look for feedback with a more determined structure. Feel free to ask for more specific feedback.
-
Examine and learn from examples of robots. Often the most important tool for learning is to look at examples of other robots. \"Steal from the best, invent the rest.\" Most things you'll ever need to design in a typical season have already been done in some form or another, and you can take easy inspiration from other teams while trying to improve it for your application. Open Alliance on ChiefDelphi is a great resource on the design and build process for many teams, and has a lot of public CAD.
-
Learn more engineering design. Refer to the Design Handbook pages and the deep dives in the mechanism examples pages. This includes how to assess potential forces on parts of the robot, pick the right materials, design rigid structures, learn more about what parts are available to FRC teams and how to use them effectively, and at a top level, what goes into designing good mechanisms.
-
Learn strategic design. This means learning how to set priorities and requirements for your robot. This means basing your design off of your game analysis, those priorities, and your team's capabilities. This means learning how to design simply but effectively. This means learning how to structure a build season schedule and tradeoffs based off of your priorities. There are many resources for this, including Karthik's Effective FIRST Strategies presentation, Team 1678's training material, and Team 2910's Pop-Up Presentations. Combine this with good engineering design knowledge and CAD skills and most any team can design and build an effective robot and do very well in competitions.
"},{"location":"learning-course/stage0/0A-introductionToCAD/","title":"0A: Introduction to CAD","text":""},{"location":"learning-course/stage0/0A-introductionToCAD/#what-is-cad","title":"What is CAD?","text":"CAD is an acronym for \"computer-aided design.\" It's a software tool used by engineers, manufacturers, architects, and many more designers in industry to bring their ideas to life.
CAD is used to create a 3D model from various kinds of steps and tools to help prototype, manufacture, and market a product. Files can be sent to a machine to either print or cut material. Drawings can also be made and printed out to assist with manual machining and assembly. We use the CAD software Onshape for this guide and website.
Note
A quick intro to CAD and Onshape is provided in the Introduction to Parametric Feature-Based CAD official learning course, but it doesn't provide much relevant information for FRC.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#why-use-cad","title":"Why Use CAD?","text":"CAD is the intermediary between an idea and a built product. Teams can iterate ideas before prototyping and manufacturing, and it helps cut down on prototyping time. Good CAD efficiency can help a team design a good robot in a timely manner, leaving room for software testing and drive practice.
-
Designing your robot in CAD allows you to make sure everything fits together perfectly. It is frustrating to realize you cut a part too short and need to recut an entirely new piece or when you need to drill random holes throughout your beautifully machined plates.
-
While you may think your team is on the same page and has agreed upon a design, your whiteboard drawings may leave some room for interpretation. When you use CAD to model your design, everyone can see the end result and agree on a design and direction.
-
Team members that were more heavily involved in the design process or ideation may know how the robot should function and how to fabricate it. This can leave them doing the bulk of the work. Using CAD can help those team members explain to other team members what they can to do to help build the robot.
-
Newer team members that have not been involved in a robotics season before may have no idea what components and processes are needed to build a robot. CAD can be a great teaching tool to show those team members what is needed on the robot so they can help with the process too!
-
The worst feeling is when you go to weigh your carefully constructed robot for the first time only to realize that it is 10 pounds overweight! You can measure your robot's size and weight in Onshape so you can make sure that it meets requirements. This gives you the opportunity to make changes before fabrication, such as using a pocketing feature to cut out excess material.
-
CAD works like a digital blueprint and bill of materials of the robot. It allows you to figure out exactly what you need to order and make for the robot, and how it fits together.
-
CAD skills are used in the real world all the time, when designing and testing anything from simple product design to large feats of engineering like planes or cars. Learning CAD with any CAD software can equip you with useful skills you can put on your resume, and it will allow you to learn other CAD software a little easier.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#types-of-cad","title":"Types of CAD","text":"There are many different kinds of CAD, usually designed for specific industries in mind. The kind of CAD an architect might use would be different from the kind of CAD engineers use. The tools required may be different as well.
Engineers mostly use parametric feature-based CAD, which includes programs like Autodesk Inventor and Fusion, SolidWorks, and Onshape. These programs can be designed around different workflows, but usually have similar features. It's important to learn the workflow for a specific program; often, they aren't exactly transferrable.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#other-engineering-cad-software","title":"Other Engineering CAD Software","text":"Although this guide uses Onshape, and the majority of FRC teams use Onshape due to its resources, teams may choose not to use it because of prior student and mentor experience and resources with another software, or a workflow has already been established that works very well for a team with a different software. Onshape is by no means common in the engineering industry, so mentors are more likely to be able to guide a team well using other softwares. Do note that it is very easy to learn Onshape if you have already used a different CAD software before.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#onshape","title":"Onshape","text":"Depending on the circumstances, Onshape may not be the best fit for a team; however, this guide focuses on only Onshape. Much of the design process itself and many of the mechanism fundamentals and glossary still apply, no matter what CAD software you're using. If you choose to use a different software while going through the guide, be aware that the CAD workflow may be different and that you will have significantly less support.
"},{"location":"learning-course/stage0/0B-setup/","title":"B: Onshape Setup","text":""},{"location":"learning-course/stage0/0B-setup/#0b-onshape-setup","title":"0B: Onshape Setup","text":""},{"location":"learning-course/stage0/0B-setup/#registering-for-onshape","title":"Registering for Onshape","text":"Onshape offers a free education license for students to use their software. It is highly recommended to use the education plan, as it allows for the creation of private documents, as well as other useful features.
To start registering, go to the Onshape for Education page and select \"Create EDU ACCOUNT\" or click this link. Follow the slides below to finish registering.
Fill out the details in the sign up form. On the next screen, select that you are a student and that you are in grade school. Finally, fill the form with your school information. You may enter \"Robotics\" as the reason for using Onshape. \u276e \u276f Onshape will proceed to check your information (which may take some time), then send a verification email to activate your account. You'll be asked to set a password, then you'll enter your dashboard.
"},{"location":"learning-course/stage0/0B-setup/#account-setup","title":"Account Setup","text":"The first time you enter Onshape, it will prompt you to set up your account, including the default units and mouse controls used when doing CAD. You can also set a profile picture and a nickname (we recommend keeping this as your real name). Finally, Onshape will run a browser check, to ensure compatibility.
Note
If the browser check fails, you may want to try a different browser. Currently, chromium browsers like Chrome, Edge, Opera, and Arc are the best supported browsers for Onshape, but Firefox usually works with no issues as well. Safari is not well supported.
Chrome Browser Setup If you are using Chrome, an additional setup step may be required.
First, type chrome://settings/
in your searchbar to navigate to chrome settings. Make sure that \"Use graphics acceleration when available\" is enabled. Relaunch chrome if you have updated it to enable it.
Next, go to chrome://flags/
and enable these:
If your team uses Onshape, contact your mentor/design lead for access to the Onshape classroom/team.
"},{"location":"learning-course/stage0/0B-setup/#setting-up-mkcad","title":"Setting up MKCad","text":"MKCad is an Onshape plugin that contains a large library of parts that are often useful in FRC.
To install it, go to the MKCad App in the Onshape Appstore.
Press \"Subscribe\", then \"Get for Free\". This will automatically add MKCad to your Onshape account.
Note
After subscribing, the MKCAD inserter won't show up in already open documents until you reload. This is a first-time thing though.
Video Tutorial Your browser does not support the video tag.
"},{"location":"learning-course/stage0/0B-setup/#featurescripts","title":"Featurescripts","text":"Featurescripts are custom features coded by members of the community, and are often handy tools that assist with the FRC design process. For now, follow the instructions below to install just the featurescripts you'll use in stage 1A. More thorough instructions for installing featurescripts, a list of all recommended featurescripts, and some troubleshooting tips are found on the featurescripts page.
-
Open the document Julia's Featurescripts
-
Click \"Custom Features\"
-
Click \"Belts\", \"Chain Path\", \"Electronics Mounting\", \"Extrude Individual\", \"FilletXpert\", \"Gusset Generator\", \"Shaft\", \"Spacer\", and \"Tube Converter\" (this one is important)
Video Tutorial Your browser does not support the video tag.
Once you have that done, you are ready for the next stage!
"},{"location":"learning-course/stage0/0B-setup/#optional-onshape-educator-plan","title":"OPTIONAL: Onshape Educator Plan","text":"Besides individual setup, if your team uses Onshape or are switching to it, one of your mentors or design leads should get the Educator plan and add all members to a \"classroom\". The Educator plan is free for FIRST teams and will make document management easier. It also provides a suite of features for all students added to the \"classroom\", such as simulation, release management, and classes/assignments.
We recommend you read the ChiefDelphi post linked below for a better overview and walkthrough to set it up for your team.
Onshape Educator Plan: What it Means for FRC Teams
"},{"location":"learning-course/stage0/0C-navigation/","title":"0C: Navigating Onshape","text":""},{"location":"learning-course/stage0/0C-navigation/#documents-page","title":"Documents Page","text":"Documents can be viewed and managed from the documents page. You can sort them with folders and labels. On the sidebar, you can switch between stuff owned by you and stuff owned by a classroom/team/organization, and a public search page which can be used to look through public Onshape files. In the top right corner of the page, you can access the app store, learning center, and account settings.
You can create a document or folder or import CAD files from your computer using the \"Create\" dropdown button on the left.
You can use this page in the learning center to explore the documents page.
"},{"location":"learning-course/stage0/0C-navigation/#customizing-your-account","title":"Customizing Your Account","text":" - Change default units and precision
- Change email notifications
- Change default view manipulation if you're more familiar with a different CAD software
- Use the subscriptions section to renew your student/educator subscription each year
"},{"location":"learning-course/stage0/0C-navigation/#navigating-documents","title":"Navigating Documents","text":"An Onshape document is not a CAD file, but a container that holds data related to a project, including any number of part studios, assemblies, drawings, and other media/files. It can be versioned and linked to from other documents. There are two main types of environments in a document: part studios and assemblies.
General Document NavigationPart StudiosAssemblies A document has some defined regions that stay generally consistent in both main environments.
- Document Toolbar: You can manage the document, navigate back to documents page (click logo), and view versions and history.
- Toolbar: Changes depending on the environment, but contains all the features you use to perform actions in Onshape. Most of these have keyboard shortcuts (full list in the help menu).
- Tab bar: Organizes different tabs in the document. Can be sorted into folders. Add new folders and tabs to the document by clicking the plus on the bottom left.
- Left Side (Feature/Part/Instance/Mate List): Breaks down how parts/assembly was made.
The space in the middle is called the graphics area. You can interact with the model by selecting entities or rotating the view.
Mouse Controls
Selection
Onshape has persistent selection, which means each left click on a face or entity adds it to a selection group. Clicking an entity again will deselect it, while clicking in the blank space or pressing the spacebar will deselect all entities.
Measurement
To measure lines or distances, select the entities you want to take the measurement of and the numbers will display next to the tape measure in the bottom right of the graphics area. Click the tape measure for more detailed measurements.
One of the main differences between Onshape and other CAD systems is the part studio.
A part studio is an environment where you can design and model one or more parts at a time and add robust relationships between them. You do this using a series of sketches and features. This helps build design intent between multiple parts easily without having to switch between different files.
Part studios provide many different tools for designing, creating, and manipulating parts, most of which you'll learn through Stage 1.
- Dialogue Boxes: Each feature and sketch pops up a dialogue box with options to configure and confirm it
- Toolbars: The main toolbar contains all the tools you'll need to create parts, most of them with a keyboard shortcut for quick usage.
- When editing sketches, the feature tools are replaced with sketch tools to assist in creating 2D geometry.
- Both toolbars have basic geometry creation and geometry alteration tools.
Note
The part studio is for designing the parts, while an assembly is used for putting the parts together and defining motion (this means only model one of each part if there are duplicates and duplicate them in the assembly instead.)
Assemblies are for positioning and establishing movement between parts. The main function for this \"mates\", which establish the degrees of freedom between parts. Parts can move freely in an assembly before their position/movement is defined with mates. The purpose of assemblies in Onshape is the same as in other CAD programs, but the workflow is significantly different.
Info
The assembly workflow will be taught through the learning center and exercises throughout stages 1 and 2.
Using the assembly toolbar, you can:
- Insert parts and subassemblies
- Different kinds of mates (restrict different degrees of freedom)
- Special tools for movement and replication
When using a mate:
- Every part and face generates mate connectors at smart spots
- You can manually create mate connectors in part studios
- Select two separate mate connectors
- Flip or rotate axis to get the part/assembly in the right orientation
- You can offset in a specific axis by distance or angle
"},{"location":"learning-course/stage0/0C-navigation/#other-notes","title":"Other Notes","text":""},{"location":"learning-course/stage0/0C-navigation/#organization-practices","title":"Organization Practices","text":"One of the big reasons Onshape is desirable for FRC is its collaboration capabilities, but that means nothing when nobody can read or work with your CAD. Different subsystem leads will have to collaborate and view other separate subsystems. None of the easy communication and collaboration can be done without good organization and naming practices.
Make it annoyingly clear what sketches and features do what. Name sketches and features, and try to use folders. Sort by parts or groups of parts (e.g. tubes, gussets, bellypan). The instance list in assemblies can also get very messy and slow down your workflow, so keep similar instances in folders. And finally, just make sure to name tabs. This will all make a big difference for the readability of your CAD by other people and yourself.
"},{"location":"learning-course/stage0/0C-navigation/#versions-and-history","title":"Versions and History","text":"Every action by every user is saved in the history, and can be rolled back to or created a version at. When assemblies are linked between documents, documents have to be versioned. This reduces loading times as well, since it's only referencing a single static version and not constantly attempting to update. Versions cannot be deleted, and branches can be created and merged for changes, similar to git.
"},{"location":"learning-course/stage0/0D-theory/","title":"0D: Theory","text":"As you probably know, CAD is a tool used to design parts digitally before they are manufactured. Most of our documentation will focus on FRC-specific CAD practice. However, to get started with Onshape, it\u2019s important to understand some basic theory.
Consider a basic 3D object, such as this cylinder. Every object you design in Onshape starts with a 2D sketch within a window called a part studio. Sketches are used to define a 2D profile, that is then manipulated with features. These features transform the 2D sketch, one change at a time, into a 3D object - by \u201cextruding\u201d or pulling the profile into 3D, revolving it around an axis, or by other methods.
"},{"location":"learning-course/stage0/0D-theory/#starting-with-a-sketch","title":"Starting with a Sketch","text":" If you wanted to create this cylinder in Onshape, we would start by representing its profile in a 2D sketch. So what would this sketch look like for a cylinder? If we take the section from the plane on the top of the cylinder. In Onshape this is called the \u201cTop\u201d plane. We can see that this sketch forms a circle.
Note
We could represent the cylinder in other 2D ways, if we chose a different plane.
"},{"location":"learning-course/stage0/0D-theory/#making-the-leap-to-3d","title":"Making the leap to 3D","text":"While in the sketch, we define the nature of the circle - its position in space and its diameter. When we bring the sketch into 3D, these characteristics are maintained - determining the final diameter and position of the cylinder within the part studio. It is important to completely define the characteristics sketches so that the characteristics of the part being designed are not arbitrary.
But how do we transform this defined sketch into a 3D object? By using features. In this case, an \u201cextrude\u201d feature is used to extend the profile of the sketch into 3D space. Just like how we defined the sketch, we define the characteristics of this extrude. For example, we must specify a \u201cdepth\u201d or final \u201cheight\u201d for the cylinder. This is used to create the final geometry. There are many such settings we must specify when using features.
Additional sketches and features are used to add more complex geometry to parts or to create additional parts within the part studio.
Note
Features can also be used to modify existing geometry e.g. to round or chamfer corners; these don't require sketches.
"},{"location":"learning-course/stage0/0D-theory/#summary","title":"Summary","text":"Congratulations on completing Stage 0D!
Here is a quick summary of the theory behind creating a part in feature-based CAD:
- Create a new sketch within a new part studio
- Define the sketch with constraints
- Transform the sketch into a 3D object with specified features
- Manipulate the part with additional features
- Repeat these steps until the part is complete
Remember: One \u201cpart studio\u201d can have multiple, even many different parts. We won\u2019t focus on it for now, but keep it in mind!
Stage 0 has introduced the idea of CAD and why we use it in FRC, helped you set up an Onshape account, introduced the interface of Onshape, and introduced the fundamental theory of feature-based CAD. Now it's time to move on to Stage 1 where you'll start learning the software and doing exercises, practicing skills relevant to an FRC context. Good luck!
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/","title":"A: Onshape Fundamentals","text":""},{"location":"learning-course/stage1/1A-onshapeFundamentals/#1a-onshape-fundamentals","title":"1A: Onshape Fundamentals","text":"Welcome to Stage 1! Here, you'll engage in a series of Onshape exercises and projects designed to introduce and develop your CAD skills within an FRC context.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#getting-started","title":"Getting Started","text":"In 1A, there are 3 major sections: sketching and part design, multi-part part studios, and assemblies. Each section has a link to a learning course to learn the skills of each topic, then an exercise to help immediately apply those skills in an FRC context.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#learning-courses","title":"Learning Courses","text":"Onshape's Learning Center provides free learning courses and articles covering everything from document navigation and sketching to advanced surface and sheet metal modeling. It's a valuable resource for both novice and seasoned users alike. We use a few selected courses to assist learning the fundamentals of doing CAD in Onshape, but the rest of the curriculum is project based.
The structure of the courses includes some short videos and practice models, expected time is 2-4 hours.
Tip
Additionally, the Onshape Help site is a great resource to use if you are unsure how a specific feature of Onshape works.
Warning
The Onshape learning courses are important as they will teach you the Onshape interface and form a basic foundation for CAD skills. Unless you have prior experience using Onshape, you should not skip the learning courses as the exercises assume that you have an understanding of CAD basics.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#practice-exercises","title":"Practice Exercises","text":"Make a copy of the Stage 1A Exercises Document through the button below. A template for each exercise has been created for you in the exercises document (you do not need to create any new tabs). Each exercise also includes a preview of what the final model should look like in the Reference
file. Solutions are also provided to check your work afterwards.
1A Exercises Document 1A Exercises Solutions
Tip
You can navigate between the tabs by accessing the tab manager or from the bottom navigation bar. Your browser does not support the video tag. Accessing the Tab Manager."},{"location":"learning-course/stage1/1A-onshapeFundamentals/#sketching-and-part-design","title":"Sketching and Part Design","text":"
Sketches and features are the building blocks you will use to create every 3D model in Onshape, so it's good to have a good grasp on the fundamentals.
Complete the following courses:
-
The Introduction to Sketching course runs you through different sketch tools, constraints, and a good sketch workflow.
-
The Part Design Using Part Studios course runs you through creating different parts with a variety of features.
With a good understanding of both of these, you can create almost any part you want to. The following sections are all about integrating design intent into the process and learning how to design a whole project with multiple pieces.
Tip
For future reference without having to go through the learning center, sketch basics, sketch tools, feature basics, and feature tools are all covered in text form in the help center.
DO NOT MOVE PAST THIS POINT UNTIL YOU HAVE COMPLETED THE TWO COURSES ABOVE
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-1-simple-box-tube","title":"Exercise 1: Simple Box Tube","text":"In FRC, robot structures are typically constructed out of aluminum box tubing, similar to wood beams for a house. Aluminum box tubing is commonly found in 2\"x1\", 1\"x1\", and 2\"x2\" sizes with 1/8\" (thickwall) or 1/16\" (thinwall) wall thicknesses. Box tubing is typically referred to by its size, eg: 2x1, 1x1, and 2x2 (Spoken as \"two-by-one\", \"one-by-one\", and \"two-by-two\"). For the rest of the learning-course, we will use this notation when referring to box tube.
Example
Example of 2x1 box tube structure on a robot
For exercise 1, you will be modeling a simple 2x1 with some holes in it. For this exercise, do not use any Featurescripts.
Note
You will see in some slides that the sketch dialogue box has a different name, such as \"Tube Profile\". You can rename sketches and features by hovering over the name in the dialogue box and clicking the pencil icon, or right clicking a sketch or feature in the feature list and clicking \"rename\".
You should name your sketches and features and organize them into folders. This helps enable collaboration and makes working on previous features much faster.
Exercise 1 Instruction Slides
0. The final part. 1. Start by sketching a center rectangle on the top plane. 2. Extrude the rectangle symmetrically, 2\" tall. Your browser does not support the video tag. 3. Shell the block to turn it into a 1/16\" wall tube. Your browser does not support the video tag. 4. Add the top holes. Set the centerpoint of the hole to be vertical with the midpoint of the bottom line, then Mirror the hole across, using the front plane as the mirror line. Your browser does not support the video tag. 5. Add the side holes. Create the layout for the side holes by creating a center point rectangle and turning it into construction geometry. 6. Name the key sketches and part. Set the material to be 6061 Aluminum. \u276e \u276f Notice how we utilized construction geometry to define the location of the holes on the 2\" face of the tube. Using construction geometry to assist with sketching makes your parts more parametric and betters conveys design intent compared to manually specifying the location of each hole with dimensions.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#multi-part-modeling","title":"Multi-Part Modeling","text":"Complete the Multi-Part Part Studios course. It runs you through top-down design principles (EXTREMELY important in FRC), sketching for multiple parts (master sketches), and some more practical skills for working with multiple parts in a part studio.
As introduced in the learning course, Onshape is a software focused on multi-body modeling and top-down design. In FRC, this usually means one master sketch and one part studio per subsystem. Check out this page to learn more about best practices for sub-documents. The following practice exercises will help you reinforce these concepts.
Example
Notice how there's one instance of each unique part within this part studio. The part studio also resembles the completed product, as the parts are modeled relative to each other. Example of a part studio
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-2-box-tube-and-gusset-joint","title":"Exercise 2: Box Tube and Gusset Joint","text":"For this exercise, you will design two tubes and a part called a \"gusset\". A gusset is the flat part that connects the two tubes. This gusset will be created in the same part studio as the tubes that it is connecting!
Example
Example of a gusset
You will utilize the Extrude Individual
and Tube Converter
Featurescripts for this exercise. Do not use the Gusset
Featurescript for this exercise.
The Extrude individual
Featurescript enables you to extrude sketch regions without merging them. In this exercise, if you were to extrude the sketch of the tubes with the standard Extrude
tool, only a single part would generate.
The Tube Converter
Featurescript condenses the steps of shelling, sketching and dimensioning holes, and extruding holes into a single, customizable feature to easily model tubes.
Tip
When extruding a sketch in a part studio, you can decide whether to Add
to existing geometry, or to create New
geometry. New
creates a new body, whereas Add
will merge the feature with existing parts. Make sure that when you extrude your gusset, you tell Onshape to create a new part. The different options for extruding
Exercise 2 Instruction Slides
0. The finished parts. 1. Start by sketching the tubes on the right plane. 2. Use the Extrude Individual
Featurescript to extrude the blocks. 3. Use Tube Converter
Featurescript to turn the blocks into 1/16\" wall tubes with a 0.5\" spacing pattern of 0.196\" holes. 4. Draw a triangle with construction geometry for the gusset. 5. Dimension the triangle to be 0.5\" away from the edges of the tube. 6. Use the Offset Entities
tool to offset the construction geometry 0.25\". This will be the outline of the gusset. 7. Use the Sketch Fillet
tool to add a 0.25\" fillet to the three corners of the gusset. 8. Delete the three points left over from the fillet. 9. Use the Use (Project/Convert)
tool to project the tube holes onto the gusset sketch. 10. Extrude the gusset to be 1/8\" thick. Select New
as the extrude type to make the extrude a new part. 11. Name the key sketches and parts. Set the material to be 6061 Aluminum. \u276e \u276f In this exercise, you can begin to see the power of Featurescripts. What would have been a number of sketches, extrudes, and shells to create the tubes is packaged into a single, easy to use custom feature.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#assemblies","title":"Assemblies","text":"Assembling is the basic function of defining the position and motion of parts in an assembly.
The Onshape Assemblies course introduces assemblies, mating parts together, and other useful assembly concepts.
As was introduced in the Onshape learning tutorials, when parts are inserted into an assembly, they free float. We can utilize a number of different assembly tools to constrain the motion of all the parts:
Group
: Restricts the relative motion between a group of parts Fix
: Locks a part in place within the assembly (not recommended as it's not parametric) Mates
: Tools to constrain the degrees of freedom between parts using \"mate connectors.\" These connectors are automatically generated or manually created coordinate systems on parts. You can align the axes and apply offsets in any direction or rotation. Different mates constrain different degrees of freedom. Here are three commonly used mates: Fasten
: Prevents any movement between two mate connectors, such as a bolt in a hole Revolute
: Allows rotational movement about the z-axis between two mate connectors (e.g. an arm pivot) Slider
: Enables linear movement along the z-axis between two mate connectors (e.g. an elevator)
Example
Your browser does not support the video tag. Example of a fasten mate.
The best practices for constraining an assembly, along with other assembly tools like replicate, pattern, and standard content, will be learned through projects and described in more detail in later stages. They are also outlined in the assembly best practices page.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-3-box-tube-frame","title":"Exercise 3: Box Tube Frame","text":"For this exercise, you will create a simple frame and two gussets. Then, you will create an assembly and mate together all the components.
You will utilize the Extrude Individual
, Tube Converter
, and Gusset
Featurescripts for this exercise.
The Gusset
Featurescript is an easy way to create gussets by selecting the locations of the holes the gusset should attach to.
Exercise 3 Instruction Slides
0. Final assembly. 1. Start by sketching the tubes on the right plane. 2. Use the Extrude Individual
Featurescript to extrude the blocks. 3. Use Tube Converter
Featurescript to turn the blocks into 1/16\" wall tubes with a 0.5\" spacing pattern of 0.196\" holes. 4. Use the Gusset
tool to create the top gusset by selecting the holes on the tube. 5. Use the Gusset
tool to create the bottom gusset by selecting the holes on the tube. 6. Name the key sketches and parts. The materials will have already been set to 6061 Aluminum from the Featurescripts. Your browser does not support the video tag. 7. Insert the parts into the assembly by directly clicking on the green checkmark. Then, Group
all the parts together. Finally, fix
the bottom tube in place. Your browser does not support the video tag. 8. Copy and paste the gussets four times. Then, use the Fasten
mate to attach the gussets to the tube. Your browser does not support the video tag. 9. Some gussets may need to have their Fasten
mate reoriented in order to properly line up. 10. Finished assembly. \u276e \u276f In this exercise, you were introduced to yet another highly useful Featurescript for creating gussets. Additionally, notice that we only model 1 of each type of gusset in the part studio. For the tubes, we choose to model all of the tubes even though the two vertical tubes are the same - this is to make assembly more parametric since the tube would otherwise be difficult to mate.
It should be noted that while fixing the tube is not considered an assembly best practice for setting the origin of an assembly, it is sufficient for the purposes of these exercises.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-4-climber-hook","title":"Exercise 4: Climber Hook","text":"As you get more comfortable with modeling, we can begin to draw more complex parts. For this exercise, you will create a climber hook and tube. Then, you will create the assembly and mate together the components.
You will utilize the Spacer
Featurescript for this exercise.
Exercise 4 Instruction Slides
0. Final assembly. 1. Start by sketching the tube on the right plane. 2. Use the Tube
Featurescript to create a thin-wall 1\"x1\" tube with no holes. 3. Draw the climber hook sketch. The construction geometry circle represents the bar on which the hook will grab onto. The hole on the far right would be to attach a rope to pull the hook with. Pay attention to the sketch constraints used. Your browser does not support the video tag. 4. Use the Linear Pattern
sketch tool to pattern the mounting holes. 5. Make the hook 3/16\" thick. Select New
as the extrude type to make the extrude a new part. 6. Fillet the bottom two corners with a 0.25\" radius. Your browser does not support the video tag. 7. Use the Spacer
Featurescript to add a 0.5\" diameter spacer. Use the `Up to Face` end condition to make the spacer match the tube width. 8. Use the Use
sketch tool to add the mounting holes to the tube. 9. Name the key sketches and parts. Set the material of the hook and spacer to 6061 Aluminum. 10. Finished assembly. \u276e \u276f In this exercise, you practiced more advanced sketching and were introduced to the Spacer
Featurescript.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#summary","title":"Summary","text":"Congratulations on completing Stage 1A! Remember, practice is essential \u2013 the more CAD models you create, the more proficient and efficient you'll become. Using keyboard shortcuts can significantly accelerate your CAD workflow. Be attentive to best practices to avoid developing any bad habits. Keep up the good work!
Here is a quick summary of what you have achieved in 1A:
- Learned how to use the OnShape interface and basic sketching and modeling features with the OnShape Learning Center courses
- Learned how to model basic FRC structures
- Learned how to use the
Gusset
, Extrude Individual
, Tube Converter
, and Spacer
Featurescripts - Learned how to assemble basic models using
Group
and Fasten
In stage 1B, you will be introduced to power transmissions, which enable your robot to move and score.
"},{"location":"learning-course/stage1/1B-powerTransmissions/","title":"B: Power Transmissions","text":""},{"location":"learning-course/stage1/1B-powerTransmissions/#1b-power-transmissions","title":"1B: Power Transmissions","text":""},{"location":"learning-course/stage1/1B-powerTransmissions/#introduction","title":"Introduction","text":"So far the models you have created are all structural components, but this is only half of what makes up a robot. In order to make our robots move and score, motors that generate rotational motion are typically utilized. In Stage 1B, you'll be introduced to modeling basic power transmissions. Power transmissions include the motors, bearings, shafts, gears, belts, and chains that are used to transform rotational motion from a motor to do just about anything.
In this stage, you'll focus on the fundamentals of power transmissions, with an emphasis on how to model them in CAD. The process of selecting motors and calculating power transmission ratios will be explored later in Stage 2 of the guide with multiple different mechanisms.
Example
Below are some examples of power transmissions found in robots to achieve a range of different tasks.
Power Transmission Examples
Belt and gear power transmission to spin intake rollers.
Gear and chain power transmission to pivot the intake.
Belt and gear power transmission to spin shooter wheels.
Gear and chain power transmission to rotate a small arm.
Gear and chain power transmission to rotate a large arm.
\u276e \u276f
In this stage, there are exercises designed to practice modeling simple power transmissions in the form of stand alone gearboxes. In stage 2, you will begin to model power transmissions integrated within mechanisms.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#motors","title":"Motors","text":"Motors spin! They transform electrical energy supplied by the robot battery into rotational motion. From intaking to climbing to driving, just about anything on your robot can be moved with the right motor(s).
Some of the motors available for use in FRC.
In FRC, a number of different motor options are available, all with different advantages and use cases. The most common type of motor found in modern FRC is the \"CIM class\" motor. This includes the CIM, Mini-CIM, Vexpro Falcon 500, WCP Kraken x60, Rev NEO, and Rev Vortex. While each of the CIM class motors have different speeds and power, they have two traits in common for modeling:
- The motors' outer diameters can be represented with a 2.5\" diameter circle (some are slightly smaller at 60mm/2.362\").
- The motors have anywhere from 2 to 11 holes for mounting, but all are on a 2\" diameter bolt circle (See below image). The holes are #10-32 threaded, as #10-32 is the hardware standard for FRC COTS parts.
Mounting holes for CIM class motors are on a 2\" diameter bolt circle. All of the holes are 1\" away from the center of the motor. All of the exercises for this stage will use CIM class motors.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#shafts-and-bearings","title":"Shafts and Bearings","text":"Shafts transmit rotational power along an axis, with hex shafts being the most common in FRC. These hexagonal shafts, typically in 1/2\" and 3/8\" diameters (measured from flat to flat), may sometimes have rounded corners, known as \"rounded hex\" or \"Thunderhex.\"
Bearings allow shafts to spin independently of plates and/or things to spin independently of shafts. Standard hex shafts use 1/2\" hex bearings, while rounded hex shafts can use round bearings for easier assembly.
A spinning shaft in bearing
Tip
The easiest way to model shafts is to use the Shaft
Featurescript. For bearings, insert your desired bearing from the MKCad app.
A rounded 1/2\" hex bearing (Left) and 1/2\" rounded hex shaft (Right). (Image Source: WCP)
"},{"location":"learning-course/stage1/1B-powerTransmissions/#torque-and-speed","title":"Torque and Speed","text":"When designing power transmissions, there are two interlinked quantities that we are trying to modify: torque and speed. Torque refers to the rotational force applied to an object, while speed denotes how quickly that object rotates. In FRC, the unit used for speed is typically Rotations Per Minute (RPM). The units used for torque is typically Newton-Meters (Nm).
Note
Speed and torque are inversely related in mechanical systems. This means that as one increases, the other decreases, and vice versa. For example, if speed is decreased by 4x, torque is increased by 4x. This is because of the principle of conservation of energy: the output energy is the same as the input energy (ignoring losses like friction), so if speed is reduced through mechanical means, torque must increase.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#mechanical-advantage","title":"Mechanical Advantage","text":"Many mechanical systems use the principle of the conservation of energy to convert energy from one form to another to produce either larger forces or faster speeds. Mechanical advantage is the ratio of output force to input force in a system, whether it's a lever, screw, gears, or pulley, mechanical advantage is used to quantify how the force changes.
The ratio between the number of teeth of the input and output gear/sprocket/pulley system represents the mechanical advantage of that system. This is also called the gear ratio, and is the key to understanding how to achieve a needed torque or speed from the specified torque and speed of a given motor.
Gear ratio is typically written in the form n1:n2
. Since torque and speed are interlinked quantities, the ratio can be understood from the perspective of torque or speed. From the perspective of torque, n1
is the output torque for n2
input torque. From the perspective of speed, n1
is the speed of the input for n2
speed of the output.
Example
A system has a gear ratio of 4:1. This means the output torque is 4x the input torque and that the output speed is 1/4 the input speed.
For a single stage transmission (only two transmission components), n1
is the size of the driven component for n2
size of the driving component.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#ratio-applications","title":"Ratio Applications","text":"An arm mechanism needs very low RPM but a lot of torque to control efficiently, so a large reduction of speed might be used to increase torque. This depends on the weight and length of the arm, but can be 30:1 up to even 200:1.
Shooter wheels or intake rollers often have little to no reduction, and in some cases may even need to go faster than the motor's free speed. In this case, an upduction can be be used to increase the speed, but the output torque gets lower as a consequence. Upductions typically don't get much higher than 1:2 due to the available motors already having a high speed, low torque output. A 1:2 upduction would double the speed and halve the torque of the input.
Tip
For situations that require higher speed and higher torque than what a single motor can provide, add more motors.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#power-transmissions","title":"Power Transmissions","text":"In FRC, the three most common types of power transmissions are gears, chain and sprocket, and belt and pulley. Although they all achieve the same end result of changing speed and torque, they each excel in different situations. In the following sections you'll be introduced to each of them and how to model them.
Note
Gears, sprockets, and pulleys all follow profile standards that specify how big the teeth are. This means that the ratio between the number of teeth and diameter of the part is a constant. There are different profile standards, but only parts of the same profile can be meshed or used together.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#gear-basics","title":"Gear Basics","text":"Gears are mechanical devices with teeth that mesh with each other to transmit motion or power between rotating shafts. They're like wheels with teeth that fit together, allowing them to transfer torque, change speed, and change direction of rotation.
A simple animation of two gears meshing. Notice that meshed gears will spin in opposite directions.
In order to change the torque and speed from the input to output, different sized gears must be used. Remember that the ratio is related to the number of teeth of the gears. Teeth will always mesh together one by one, but the number of teeth per revolution is different for different sized gears, causing a difference in angular speed even if the surface speed of the gear is the same.
Changing Speed and Torque with Gears
1. A 12T gear drives an 84T gear. The gear ratio is 84:12, which can be simplified to 7:1. The torque is increased by 7x while the speed is reduced to 1/7 of the original speed. (Image source: WCP) 2. A 48T gear drives an 24T gear. The gear ratio is 24:48, which can be simplified to 1:2. The torque is reduced to 1/2 of the original torque while the speed is increased by 2x. (Image source: WCP) 3. If the same size gears are used, there is no change in speed and torque. However, the direction of the rotation is flipped if there is an even number of gears from input to output. If there is an odd number of gears, the direction remains the same. (Image source: WCP) \u276e \u276f Center to Center Calculation
To calculate how far apart to space the gears, you can use the following formula to calculate the center-to-center distance:
CC = 0.5*PD1 + 0.5*PD2
Where PD1
and PD2
are the Pitch Diameters of the two gears. The Pitch Diameter (PD) is the size of the imaginary circle that passes through the center of the gear teeth. The pitch diameters of two gears should be tangent in order for the gears to properly mesh. The equation for PD is as follows:
PD = (# of teeth) / DP
Where DP stands for diametral pitch. For now, you can assume it to always be 20. If you're curious, you can learn more about this in the Design Handbook pages.
Illustration of a gear's pitch diameter and outer diameter. (Image source: WCP).
Modeling Gear Transmissions
When modeling, an easy way to set the center-to-center distance between two gears is to draw two circles sized to the gears' pitch diameters and then set two circles to be tangent to each other. For example, if you need to mesh a 20T gear and a 60T gear, you can draw a 20/20 = 1\"
and a 60/20 = 3\"
circle and add a tangent constraint between the two circles. The reason we enter the full expression is so that we can easily see what the circle represents (a gear, sprocket, or pulley, and how many teeth it has).
Modeling gear C-C distance by constraining two pitch diameter construction circles tangent. The diameters of the circle are calculated by dividing the tooth count by DP, which is 20 in this case. It's recommended to input the pitch diameter fraction (Eg: (60/20)\"
) rather than the calculated pitch diameter (Eg: Only inputting 3\"
as the dimension) so that you can see the tooth count of the designed gear in the sketch.
Tip
You can show the expression that a dimension was evaluated from by checking the Show Expression
checkbox on the sketch menu. The result will look like the previous image, which allowed you to easily see that the two gears were a 20T and 60T gear, both 20 DP.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#practice-exercises","title":"Practice Exercises","text":"Make a copy of the Stage 1B Exercises Document through the button below. A template for each exercise has been created for you in the exercises document (you do not need to create any new tabs).
1B Exercises Document 1B Exercises Solution
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-1-simple-gearbox","title":"Exercise 1: Simple Gearbox","text":"In this exercise, you will be CADing and assembling a simple single stage gearbox. Practice exercise solutions can be found here.
The goal of this exercise is to introduce how to model a very simple gear transmission. Additionally, you will learn how to use the the Shaft
Featurescript, Replicate
tool, MKCad parts library, and part configurations.
Note
Exercise 1 adds hardware (bolts and nuts) to the CAD models. You can read more about hardware standards on the Design Handbook page.
Tip
To lock mate inferences when you see the one you want to select, hold the Shift
key when mousing. This is particularly useful for mating the motor pinion gear. Your browser does not support the video tag. Using Shift key to lock mate inferences while mating.
Exercise 1 Instruction Slides
0. Final assembly. 1. Begin by creating the layout sketch for the gearbox. Draw the pitch circles for the 60T and 12T gears. Set the pitch circles tangent to constrain the center-to-center distance between the gears. Constrain the centers of the two gears to be vertical. 2. Add the outline of the motor, a 2.5\" diameter circle, around the 12T gear that the motor is attached to. The layout sketch is now finished. 3. Create a new sketch for the motor plate. Using the layout as the reference, draw a 1.125\" hole for the bearing and a 0.8\" hole for the motor boss (the nub that sticks out from the motor). Note that depending on your manufacturing processes and tolerances, you may need to draw your bearing holes slightly larger or smaller than nominal (1.125\"). 4. Add two mounting holes for the motor. A good practice to constrain the holes is to draw and dimension a bolt circle, then draw the holes for the bolts on the bolt circle. This constrains the distance of the holes from the center of the motor with a single dimension. The bolt circle for the motor we are using is 2\". 5. Add the four bolt holes for connecting the two plates. Use a center rectangle to create the construction geometry so that only two dimensions are required to constrain the holes. 6. Using centerpoint arcs, lines, and the sketch mirror tool, draw the outline for the plate around the holes and motor outline. 7. Extrude the motor plate to be 1/4\" thick. 8. Use the Spacer
Featurescript to add a round 3/8\" diameter, 5/8\" long spacer. 9. Create the outer plate sketch on the face of the spacer. Use the Use
sketch tool to copy the geometry and holes of the motor plate, but add a round cutout at the top. 10. Extrude the outer plate to be 1/4\" thick. Your browser does not support the video tag. 11. Use the Shaft
Featurescript to model the output shaft. Follow the settings used. You can learn more about the shaft retention property on the Design Handbook page. 12. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. The shaft has its material automatically determined from the Shaft
Featurescript. Your browser does not support the video tag. 13. Insert the part studio into the assembly and fix the gearbox plate. Group mate the two plates together and then mate the spacer to the motor plate. Then, use the Replicate
tool to replicate the spacer and its associated mate onto the other spacer locations. Your browser does not support the video tag. 14. Assemble the bearings and shaft using parts from the MKCad App. Your browser does not support the video tag. 15. Assemble the motor and motor pinion gear using parts from the MKCad App. Your browser does not support the video tag. 16. Assemble the shaft spacer and gear using parts from the MKCad App. Configurable parts will have a blue grid icon in the instance list. Notice how you were able to change the tooth count of the gear from 40T to 60T after mating it. Using configurable components like this makes your models more parametric since you can change the component without needing to re-insert and mate. Your browser does not support the video tag. 17. Assemble the shaft retention bolts using the MKCad app parts. Your browser does not support the video tag. 18. Assemble the motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts. When inserting Onshape Standard Content, you can use the snap mode to automatically add the mates when inserting or insert the component and then manually mate it. 19. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise you made your first gearbox. In doing so, you also used part configurations - a powerful tool that allows for variations of the same part. The gears that you inserted from MKCad were configurable - you were able to easily change the tooth count of the gear without needing to inserting a new component.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-2-two-stage-gearbox","title":"Exercise 2: Two Stage Gearbox","text":"In this exercise, you will be CADing and assembling a two stage gearbox. Practice exercise solutions can be found here.
The goal of this exercise is to practice modeling more advanced gearboxes. You will also learn how to use the Vent
Featurescript used for pocketing.
Exercise 2 Instruction Slides
0. Final assembly. 1a. Create the layout sketch for the gearbox. Start by drawing the 2nd stage, which is a 20T gear to a 50T gear. 1b. Draw the first stage, which is a 12T motor pinion gear to a 50T gear. 1c. Draw the outline of the motors as a 2.5\" diameter circle. This is the finished layout sketch for the gearbox. 2. Create a new sketch to draw the profile of the plate. Add the bearing holes, which are 1.125\" diameter holes, as well as the motor boss holes, which are 0.8\". Also add the motor mounting holes. You can utilize the Mirror
sketch tool to mirror the geometry from the left side to the right side. 3. Extrude the plate to be 1/4\" thick. 4. Use the Spacer
Featurescript to create the gearbox spacer. Your browser does not support the video tag. 5. Use the Shaft
Featurescript to create the first stage shaft. 6. Use the Shaft
Featurescript to create the output shaft. 7. Create a sketch on the face of the plate and draw the lines for the pocketing ribs. Your browser does not support the video tag. 8. Use the Vent
Featurescript to pocket the plate by selecting the sketch regions created by the previous sketch. 9. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. Your browser does not support the video tag. 10. Insert the part studio into the assembly and fix only the gearbox plate. Mate the spacer to the plate. Then, use the Replicate
tool to replicate the spacer and its associated mate onto the other spacer locations. 11. Copy the gearbox plate and mate it into place. Your browser does not support the video tag. 12. Assemble the bearings and shafts using parts from the MKCad App. Your browser does not support the video tag. 13. Assemble the motor and motor pinion gear using parts from the MKCad App. Your browser does not support the video tag. 14. Assemble the shaft spacers and gears using parts from the MKCad App. Your browser does not support the video tag. 15. Assemble the shaft retention bolts, motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts. 15. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise, you practiced more complex gearbox modeling and mating together larger assemblies.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#belts-and-pulley-basics","title":"Belts and Pulley Basics","text":"Timing belt and pulley drives are mechanical systems used to transmit motion and power between rotating shafts using flexible belts and pulleys. The system consists of two main components: the belt, which is a flexible loop made of a material like rubber, and the pulleys, which are wheels with grooves that the belt wraps around. As one pulley rotates, it drives the belt, which in turn drives the other pulley, transferring motion and power from one shaft to another
A belt and pulley transmission. (Image Source: ReCalc)
In order to change the torque and speed from the input to the output, different sized pulleys must be used. The mechanical advantage for belt transmissions, similar to gears, is based on the ratio between the number of teeth of the output pulley to the number of teeth of the input pulley. Note that unlike gears, pulleys will spin in the same direction.
Types of Belt
Like gears, belts also have a pitch. The pitch is defined as the distance between each tooth on the belt. In FRC, this is typically 5 mm. To calculate the pitch diameter of a pulley, the following equation can be used:
PD = Pitch * (# of Teeth) / 3.14
Belts also come in various widths. In FRC, you will typically use either 9 mm or 15 mm wide belts.
Center to Center Calculation
To calculate the center-to-center distance of the pulleys, it is recommended to use an online calculator, such as ReCalc. In the calculator, you can set the belt pitch, desired center distance, and the number of teeth on each pulley to get the closest integer belt size (belt tooth counts must be whole numbers) and corresponding center to center distance.
Note
In order to capture design intent, it should be clear where dimensions are derived from. Simply copy pasting the calculated center to center distance from ReCalc into the sketch does not convey any information about the belt.
Thus, to capture the design intent, you wil use the FRC functions functionality of the Origin Cube
Featurescript, which will allow you to calculate belt and chain center to center distances directly inside sketches. The Origin Cube also has additional functionality for robot and mechanism assemblies that will be discussed in Stage 1C. The Origin Cube feature will be the first feature in all part studios from here on out.
Modeling Belt Transmissions
When modeling, you should draw the pitch diameter of the two pulleys and the centerline then connect the pulley circles with tangent lines to represent the belt. A 3D model of the belt can be generated using the Belt Gen
Featurescript.
You will utilize use the following functions from the Origin Cube
Featurescript FRC functions:
-
#PulleyPD_5mm(n)
: Calculates the pitch diameter of a 5 mm pitch pulley with n
teeth.
- Ex:
#PulleyPD_5mm(18)
returns the pitch diameter of an 18T 5mm pitch pulley.
-
#BeltCTC_5mm(n1, n2, n3)
: Calculates the c-c distance of a n1
tooth 5 mm pitch belt connecting pulleys with tooth count n2
and pulley with tooth count n3
.
- Ex:
#BeltCTC_5mm(80,18,36)
returns the center distance for an 80T 5 mm pitch belt connecting an 18T pulley to a 36T pulley.
1. Use ReCalc to find the closest belt size to the desired C-C distance. Set the pitch diameter and select the closest smaller or larger belt, whichever fits your design better. In this example, we choose 80T. 2. Insert the Origin Cube
feature using the Origin Cube
Featurescript. For the exercises in 1B we do not require the cube generated by the feature so we will uncheck it. Your browser does not support the video tag. 3. Draw two circles to represent pulley pitch diameters. Set the diameters using the #PulleyPD_5mm(# of teeth)
function. Draw the center line to connect the pulleys and set the c-c distance using the belt size calculated from ReCalc and the #BeltCTC_5mm(# belt teeth, # pulley 1 teeth, # pulley 2 teeth)
function. Finally, connect the circles with tangent lines. 4. Finished layout sketch. Checking the Show Expressions
box enables you to see the designed belt pitch, pulley tooth counts, and belt tooth count. Your browser does not support the video tag. 5. Use the Belt Gen
Featurescript to generate a 3D model of the belt. \u276e \u276f
"},{"location":"learning-course/stage1/1B-powerTransmissions/#chain-and-sprocket-basics","title":"Chain and Sprocket Basics","text":"Roller chain and sprocket drives are very similar to belt and pulley transmissions. They consist of two main components: a chain, which is a series of interconnected links, and sprockets, which are toothed wheels that mesh with the chain. As the sprockets rotate, they engage with the chain, causing it to move and transmit power from one shaft to another. Bikes are an everyday object that use chain to transmit power. Chains excel at transmitting high force over long distances.
A simple animation of chain and sprocket. Notice that the sprockets will spin in the same direction.
In order to change the torque and speed from the input to the output, different sized sprockets must be used. The mechanical advantage for chain transmissions, similar to gears and pulleys, is based on the ratio between the number of teeth of the output sprocket to the number of teeth of the input sprocket. Similar to pulleys, the sprockets will spin in the same direction.
Types of Chain
The two commonly used sizes of roller chain in FRC is #25 and #35 chain, with 0.25\" and 0.375\" pitch respectively. For chain, the pitch is the length of each link. To calculate the pitch diameter, the following equation can be used:
PD = Pitch / sin [180\u00b0/# of teeth]
Additionally, the chain clearance diameter describes the diameter of the sprocket with the chain wrapped around it. The following equation can be used:
Clearance Diameter = PD + Pitch
Below is an illustration of the pitch, pitch diameter, outside diameter, and chain clearance diameter of a sprocket.
Illustration of chain sprocket diameter measures. (Image source: WCP)
In FRC, #25 chain is most commonly used as it is strong yet relatively lightweight. #35 is sometimes used on very high torque transmissions, but it is heavy and bulky.
Center to Center Calculation
Calculating sprocket center-to-center is very similar to pulley center-to-centers. To calculate the center-to-center distance of the sprockets, it is recommended to use an online calculator, such as ReCalc. In the calculator, you can set the chain size, desired center distance, and the number of teeth on each sprocket to get the required center distance.
When modeling, you should draw the pitch diameter of the two sprockets and the centerline then connect the sprocket circles with tangent lines to represent the chain links. A 3D model of the chain can be generated using the Chain Gen
Featurescript. The modeling workflow is exactly the same as belt and pulley.
You will utilize use the following functions from the Origin Cube
Featurescript FRC functions:
-
#SprocketPD_25(n)
: Calculates the pitch diameter of a #25 pitch sprocket with n
teeth.
- Ex:
#SprocketPD_25(16)
returns the pitch diameter of an 16T #25 pitch sprocket.
-
#ChainCTC_25(n1, n2, n3)
: Calculates the c-c distance of a n1
link #25 pitch chain connecting sprocket with tooth count n2
and sprocket with tooth count n3
.
- Ex:
#ChainCTC_25(80,16,48)
returns the center distance for an 80 link #25 pitch chain connecting a 16T sprocket to a 48T sprocket.
Modeling Chain Transmissions
1. Use ReCalc to find the closest C-C size to the desired C-C distance. Set the pitch diameter and select the closest smaller or larger chain link count, whichever fits your design better. 2. Draw two circles to represent sprocket pitch diameters and connect them with tangent lines. Set the pitch diameters and center distance with FRC Functions from the Origin Cube
. Your browser does not support the video tag. 3. Use the Chain Gen
Featurescript to generate a simplified 3D model of the chain. While you can also generate a full detail model of the chain, it is very laggy. \u276e \u276f Chain Tensioners
One difficulty when designing with chain is that it will physically stretch as it is used. This means the distance between each link will slightly increase, making the overall chain longer in a non-insignificant way. Loose chain can be difficult to fix if the chain transmission is not designed with chain tensioning in mind. Although you will not be learning about chain tensioning methods quite yet, you should keep this idea in the back of your mind. In Stage 2, different chain tensioning methods are introduced in the context of different types of robot mechanisms. The Design Handbook page also dives deeper into this topic.
Example
A \"turnbuckle\" chain tensioner. The turnbuckle acts as a variable-length link in the chain that can be adjusted to keep the chain tight. (Photo Credit: FRC 1538)
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-3-belt-and-gear-transmission","title":"Exercise 3: Belt and Gear Transmission","text":"In this exercise, you will be modeling a two stage gearbox that uses gears and belts. This gearbox will also include elements like frame and gussets, which you previously learned in Stage 1A. Practice exercise solutions can be found here.
The goal of this exercise is to continue to ramp up your modeling skills. Always make sure to fully define your sketches and keep your feature and instance trees organized.
Exercise 3 Part Studio Instruction Slides
0. Final part studio. 1. Draw the tube profiles for the frame. There is a an 1/8\" gap between the slanted tube and the vertical tube to allow for assembly tolerances. 2. Use the Extrude Individual
Featurescript to extrude the tube profiles. 3. Use the Tube Converter
Featurescript to convert the rectangles into hole patterned 1x1 thin-wall tube (1/16\" thick wall). 4. Use the Gusset
Featurescript to add a corner gusset between the lower two tubes. 5. Create the gearbox layout sketch on the outer face of the bottom tube. Begin by drawing the two gears, a 60T and 20T gear. The 60T gear is the output, and we would like to constrain it to a specific location given by the 2\" and 4.5\" dimensions. 6. Next, draw the 5mm pitch 12T and 36T pulleys. Use a line to connect the two pulleys. Use the #PulleyPD_5mm()
function to calculate the pitch diameters of the pulleys. Also space the 36T pulley to be 0.25\" from the vertical tube. This step fully constrains the location of the gears. 7. Use a belt c-c calculator (eg: reca.lc) to calculate the pulley c-c. In this example, we know we have a 60T belt on hand, so we would like to use that specific belt in the design. The belt we are using is 5mm pitch. 8. Add the belt c-c to the layout sketch using the #BeltCTC_5mm()
function. 9. Optionally draw two tangent lines to connect the two pulley circles. This represents the belt. 10. Finally, sketch a 2.5\" circle for the motor. Space the motor to be 1/8\" away from the slanted tube. The layout sketch is now fully defined. 11. Create the plate sketch on the outer face of the bottom tube. Begin by drawing the two 1.125\" diameter bearing holes. Add a 0.95\" for the bearing boss instead of the standard 0.8\" so that the 12T pulley on the motor can fit through the hole to assist with real life assembly. This will become more clear when you create the gearbox assembly. 12. Add a 2\" bolt circle for the motor with a circular pattern. Constrain the center of the top left hole to be coincident with the center line between the pulleys (coincident uses an infinite extension of the line) 13. Add the tube mounting holes for the plate. Note that the holes reference the edges of the tube and not the holes on the tube. This is to make the model more parametric, as changes in the tube can change the locations of the holes and break the gearbox plate sketch. 14. Draw the outline for the plate. Space the bottom of the plate 0.25\" from the edge of the pitch circle for the 60T gear. 15. Add two holes for spacers. The construction circles represent the 3/8\" diameter spacer. The top hole is tangent with the left edge of the plate and tangent with the 2.5\" motor circle. 16. Extrude the plate to be 1/4\" thick. 17. On the opposite side, create a sketch for the inner plate. Utilize the Use
sketch feature to copy over common geometry (holes, outline). Do not copy the motor holes, as there will be a cutout on the inner plate for the body of the motor. 18. Finish the outline of the plate by adding an arc for the motor cutout. 19. Extrude the inner plate to be 1/4\" thick. 20. Add a 3/16\" radius fillet on the two edges for the motor cutout. The radius is selected to match the 3/8\" diameter spacer. 21. Model the 3/8\" diameter spacer. The Up to Face
end condition can be utilized to keep the spacer length parametric. 22. Use the Belt Gen
Featurescript to create a model of the belt. The pitch of the belt is 5mm and the width is 9mm. Notice that the Belt Gen
Feature script also calculates the pitch length of the belt which allows us to verify that we calculated the correct C-C in step 7 and 8. 23. Use the Shaft Generator
Featurescript to create the 1st stage shaft. Note that this length is simply an estimate. While you could calculate the length of the shaft based on the components that will go on it, it is often easier to create the assembly then measure what the shaft length should be and update accordingly. 24. Use the Shaft Generator
Featurescript to create the output shaft. 25. Optionally pocket the plates. To begin, create a sketch on the outer face of the motor plate and draw lines to create the struts. 26. Use the Vent
Featurescript to add the pocketing. Use 0.15\" wide ribs and 0.15\" tool radius. 27. Create a sketch on the inner plate and draw the strut lines. You can utilize the Use
sketch feature to copy over strut lines from the motor plate pocketing sketch. 28. Use the Vent
Featurescript to add the pocketing. Again, use 0.15\" wide ribs and 0.15\" tool radius. 29. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. The tube, gusset, and shafts should have their material automatically set already. \u276e \u276f Exercise 3 Assembly Instruction Slides
0. Final assembly. Your browser does not support the video tag. 1. Insert the part studio into the assembly and fix only the bottom tube. Use the group mate on the tubes, plates, and gusset. Copy the gusset and mate it to the other side of the tube. Next, mate the spacer to the plate and use the Replicate
tool to replicate the spacer. Your browser does not support the video tag. 2. Assemble the bearings and shafts using parts from the MKCad App. Use the Replicate
tool to replicate the bearing. Your browser does not support the video tag. 3. Assemble the 36T pulley, belt, motor, and motor pinion pulley using parts from the MKCad App. Notice that the motor pinion is offset 1/16\" from the bottom of the shaft to better align with the belt. Additionally, notice that the belt requires only a single fasten mate since its orientation was determined by how it was modeled in the part studio. Your browser does not support the video tag. 4. Assemble the shaft spacers and gears using parts from the MKCad App. Notice that this time we used a pocketed gear for the 60T gear. Pocketed gears are the same as normal gears except they have some material removed to save weight. Your browser does not support the video tag. 5. At this point, you have all of the core components assembled and can update the length of the first stage shaft. Copy the measured shaft length and update the part studio accordingly. It is recommended to round up to the nearest 0.01\" for manufacturability. Your browser does not support the video tag. 6. Assemble the shaft retention bolts using MKCad app parts. Your browser does not support the video tag. 7. Assemble the motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts Your browser does not support the video tag. 8. Assemble the gusset rivets using the MKCad app parts. 9. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise, you modeled a fairly complex gearbox that was integrated with some frame elements. At this point, you should be begin to feel comfortable with the sketching and extrude tools. You should also familiarize yourself with all the options present in the Featurescripts that you have used up until this point by playing around with different settings.
To get a feel for how parametric your model is, you can try and change certain key dimensions in the layout sketches, such as the length of the tubes, angle of the tubes, length of the belt, and the size of the gears. Play around with which modifications will update smoothly and which require additional fixes in the CAD.
You may also be curious as to how things like the hole sizes, materials, etc were selected in each of these designs. You are encouraged to learn more by browsing the Design Handbook pages which contain in-depth information on a wide range of topics, or by discussing with your team and or other students and mentors on the DDS Discord.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#summary","title":"Summary","text":"Congratulations on completing Stage 1B! Keep up the good work! Remember that practice is key - the only way to get better is to model more.
Here is a quick summary of what you have achieved in stage 1B:
- Learned about speed, torque, and mechanical advantage
- Learned the basics of motors, bearings, shafts, gears, chain and sprockets, and belt and pulleys
- Learned how to model basic power transmissions
- Learned how to use the
Belt Gen
, Chain Gen
, Shaft
, and Vent
Featurescripts - Learned how to use the
Origin Cube
FRC functions Featurescript for chain and belt c-c's - Learned how to insert Standard Library components and mate bolts and nuts
- Learned how to use the
Replicate
tool - Learned how to insert models into assemblies using the MKCad parts library
Again, it should be noted that Stage 1B is a very basic introduction to modeling power transmissions and some details were glossed over. Stage 2 will introduce how to design power transmissions - selecting motors and calculating optimal ratios.
In stage 1C, you will begin to learn the basic workflow for robot modeling. This is the final step before being able to design a full mechanism!
"},{"location":"learning-course/stage1/1C-designMethodology/","title":"C: Design Methodology","text":""},{"location":"learning-course/stage1/1C-designMethodology/#1c-design-methodology","title":"1C: Design Methodology","text":""},{"location":"learning-course/stage1/1C-designMethodology/#introduction","title":"Introduction","text":"So far, you've worked on CAD fundamentals through courses and FRC-relevant exercises, but haven't done anything within a larger context. In Stage 1C, you'll dive right into designing for a real robot. In this project, you will be designing a swerve drivebase while being introduced to a design workflow that will be applied to all future projects.
- Learn the basics of top-down design and mastersketching
- Model a swerve drivebase using COTS swerve modules
- Create a top-level assembly and insert a pre-modeled mechanism (1678's 2023 elevator and manipulator)
Even if you've already CADed a drivetrain the past, this guide serves as an excellent introduction to the top-down master sketch design methodology.
Swerve drivebase with pre-modeled mechanism
As with previous exercises, the finished project is available for reference. If you need help, please feel free to ask on the Discord!
1C Drivebase Reference
"},{"location":"learning-course/stage1/1C-designMethodology/#master-sketch-methodology","title":"Master Sketch Methodology","text":"When designing a model in CAD, there are two high level strategies that can be employed: top-down and bottom-up. Top-down design employs high level, low detail sketches to dictate the design, and then refining details and components within that framework. Conversely, bottom-up design involves creating individual components or parts separately and then assembling them to form the final product.
Top-down design offers a holistic approach, allowing for better system integration, consistency, and is more parametric. Bottom-up design offers flexibility and independence in designing individual parts. In FRC robot design, top-down approach is favored as system integration is often the most challenging aspect. Top-down ensures that the robot architecture dictates part design.
To achieve this, a master sketch is utilized. A master sketch is a series of sketches that capture the major dimensions of each mechanism, field element interactions, and robot size constraints. Then, the master sketch(es) are inserted into each mechanism's part studio and the individual components are then modeled around the imported layout sketch. More information on master sketches can be found on the Master Sketch Best Practices page.
Example
Example of robot master sketches. Each mechanism has a number of layout sketches that capture the important details.
"},{"location":"learning-course/stage1/1C-designMethodology/#swerve-drivebase","title":"Swerve Drivebase","text":"A drivebase is the mobile platform on which all our other mechanisms are designed around and attached to. With the advent of reliable COTS swerve, designing a swerve drivebase has been made significantly easier and has become the most commonly used competitive drivetrain in FRC.
A swerve drivebase is composed of four swerve modules. Each module has two motors: one for spinning the wheel and one for steering it. This enables the robot to translate in any direction independent of the rotation of the robot. In this project, we'll be using SDS MK4i modules. There are many other COTS options available, each with their own advantages and tradeoffs.
Stage 1C swerve drivebase project.
As was introduced in Stage 1A, robot structures are typically constructed out of aluminum box tubing. The drivebase is no exception to this. Most teams will opt to design their box tubing with a standard 0.5\" spacing pattern of 0.196\" diameter holes. This enables modularity and allows for easy integration of many COTS components like gussets.
Box tubing extrusions can be purchased at most metal suppliers, but many FRC vendors including WCP, TTB, and REV sell box tubing with pre-cut hole patterns which can significantly reduce manufacturing time and equipment requirements.
"},{"location":"learning-course/stage1/1C-designMethodology/#drivetrain-master-sketches","title":"Drivetrain Master Sketches","text":"To begin, you will be creating a layout sketch of the drivetrain. This will dictate the size and position of the drive tubes. The layout will be drawn from the side and top view of the drivetrain. For your swerve drivebase, you will make it 26\"x26\".
Start by creating a part studio called Master Sketch
. Then, use the Origin Cube
Featurescript to create an origin cube. You should start every part studio with an origin cube to set a reference for the origin of the robot. The origin of the robot is typically defined as the center of the drivebase on ground level. You can learn more about origins and the origin cube in Assembly Best Practices.
Drivetrain Layout Sketch Slides
0. The final layout sketch. 1. Start by inserting the origin cube. 2. Draw the side profile of the drivetrain on the Right Plane. We place the tube 1.75\" from the ground, which is the offset from the ground to the bottom of the tube for the MK4i modules. 3. Draw the wheel clearance box, which represents the area that the wheel takes up. For the MK4i modules, the box is 4.625\" wide. The side layout of the drivebase is now finished. Your browser does not support the video tag. 4. Create the top layout sketch by using the bottom mate connector on the vertical line of the side layout. Utilizing auto-generated mate connectors for sketch planes is a very useful tool to have. Press the \u201cTop\u201d button on the view cube to get a top view. Your browser does not support the video tag. 5. Sketch the top outline of the drive base. Make the rectangle a square and set the side length equal to the length of the side layout tube. This ensures that the size of the top layout always matches the side layout, which makes the design parametric. Notice that the sketch is fully defined despite having no sketch dimensions. 6. To sketch the tubes, draw a square 1\" smaller than the previous square. This will represent the four 2\"x1\" tubes that make up the outer frame. Then, draw the top profile of the 2\"x2\" tube. 7. Next, we need to make the cutouts on the drivetube for the swerve modules. Start by drawing two lines, each offset by 4.25\" from the edge. This is the required offset for MK4i modules. Other modules will differ. Your browser does not support the video tag. 8. To apply the cutout for all four tubes, we use the Circular Pattern
sketch tool to copy the lines to all four corners. For a Circular Pattern
we first define the number of instances and then the axis of rotation. 9. Finally, name your sketches and organize them into folders in the feature tree. Your sketches should all be fully defined. \u276e \u276f As previously explained, this method of top-down modeling is extremely powerful as it enables you to capture the most important dimensions all in one place. However, you should be careful to not over-detail master sketches. Besides the page on master sketches, you will be practicing master sketches all throughout Stage 2, and use them in Stage 3 alongside multi-document practices to design a whole robot.
"},{"location":"learning-course/stage1/1C-designMethodology/#deriving-layout-sketches-and-part-modeling","title":"Deriving Layout Sketches and Part Modeling","text":"Now that you have created the layout sketch, you can begin modeling the individual parts. The critical dimensions of the parts, such as the length of the tubes, will be driven by the layout sketch. This way, the tubes will automatically update with any changes in the size of the drivebase in the layout sketch.
Start by creating a new folder tab called Drivetrain
. Then, create a new part studio called Drivetrain
within the folder.
Drivetrain Part Modeling
0. The part studio. 1. Start by inserting the origin cube. Then, use the Derived
tool to insert the layout sketches you previously drew from the Master Sketch part studio. This feature will automatically update if changes are made to the layout sketch. 2. Use the Extrude Individual
and Tube Converter
Featurescripts to model the tubes. The 2\"x1\" tubes should be 1/8\" wall for strength, while the 2\"x2\" tube can be 1/16\" wall. 3. Start with one corner of the bellypan. The corner is cut out to create room for the swerve module. Your browser does not support the video tag. 4. Use the Fillet
sketch tool to add a 1\" radius sketch fillet on the two internal corners of the cutout. Your browser does not support the video tag. 5. Next, use the Circular Pattern
sketch tool to pattern the other three corners. Extrude the bellypan to be 1/8\" thick. 6. Use the Fillet All Edges
Featurescript to add a 0.25\" radius fillet to the remaining edges on the bellypan by selecting the bottom face of the bellypan. 7. Add the seed instances of the holes for the bellypan. Your browser does not support the video tag. 8. Next, use the Linear Pattern
sketch tool to pattern the holes along the edge. Your browser does not support the video tag. 9. Use the Circular Pattern
sketch tool to pattern the holes about the origin onto all four edges. Your browser does not support the video tag. 10. Use the Linear Pattern
sketch tool to pattern the holes for the 2\"x2\" tube. 11. Clean up the sketch by moving the dimensions so that they are all visible. A clean sketch is important for readability of the CAD so that it is easily editable in the future. 12. Finally, name your sketches and organize them into a folder in the feature tree. Additionally, set the material of the bellypan to Aluminum 6061 and name your parts. \u276e \u276f In this section, you were introduced to the Derived
feature. This feature is extremely powerful and can be used to import parts from one part studio into another to enable references for modeling. However, you must be careful to not overuse this function as it can significantly slow down your part studios.
At this point, you should be feeling more and more comfortable with Onshape modeling and using Featurescripts. Always make sure to clean up your feature tree while working to keep it organized and easy to use. You can learn about feature tree organization on the Feature Tree Best Practices page.
"},{"location":"learning-course/stage1/1C-designMethodology/#assembly","title":"Assembly","text":"Now that the part studio is finished, you can create the drivetrain assembly. Create a new assembly tab called Drivetrain Assembly
in the Drivetrain
folder you made previously.
Previously, in Stage 1A when you created assemblies one of the parts in the group mate was fixed in place. However, this is not considered a good practice as it is not parametric. This is where the origin cube comes in: the origin cube has a mate connector placed at the origin of the part studio. After inserting and grouping all of the parts, you can fasten the origin cube to the origin of the assembly. This aligns the part studio origin and assembly origin.
Drivetrain Assembly
0. The assembly. Your browser does not support the video tag. 1. Insert the parts into the assembly, Group
them, then fasten the origin cube to the origin of the assembly. Your browser does not support the video tag. 2. Insert the MK4i module from the MKCad app into the assembly and mate it into place. Your browser does not support the video tag. 3. Use the Circular Pattern
assembly tool to finish assembling the modules. Your browser does not support the video tag. 4. Insert a 3/16\" rivet from the MKCad app into the assembly and mate it. Your browser does not support the video tag. 5. Use the Replicate
assembly tool to replicate the rivet and rivet mate onto all matching geometry on the bottom face of the bellypan 6. The assembly. \u276e \u276f The Replicate
tool, which was introduced in Stage 1A exercise 5, is a very powerful tool for duplicating parts in assemblies. Replicate
works by creating a copy of the selected parts, and duplicates the selected mate onto the selected geometry. Note that the selected geometry must exactly match the origin mate geometry, eg: the hole diameter must be the same for replicate to copy a rivet. In your assembly, you use the select the face for replicate to apply to. What this does is identify all geometry that matches the original mate and then copy the selected components and mate to those matching locations on the selected face. If you want to replicate onto only specific holes, you can change the drop-down menu to \"Match Individual Edges\".
Match Individual Edges for Replicate
Adding More Components
When you model more parts in the part studio, you can insert them into the assembly in a similar to fashion to before. Hit insert and immediately click on the green checkmark. Then, edit the initial Group
you made and add the part to the group. By doing this, you ensure that added parts will always stay in the same place it was modeled in the part studio.
Let's add a gusset to connect the 2\"x2\" tube to the 2\"x1\" tube.
Adding a Gusset
0. Finished drivetrain assembly. 1. Add the gusset for the crosstube with the Gusset
Featurescript. Your browser does not support the video tag. 2. Insert the gusset into the assembly and add it to the Group
. 3. Copy the gusset and mate it to the other side. Your browser does not support the video tag. 4. Edit the replicate feature to add rivets to the gusset. 4. Finished drivetrain assembly. \u276e \u276f Make sure you sort the instances in your assembly into folders (i.e. frame, swerve modules) and name any patterns and replicates used. This will help you locate components in the assembly later down the line.
More details about best practices for Onshape assemblies are included on the Assembly Best Practices Page.
It should be noted that while modeling every detail of the robot hardware (bolts, rivets, nuts) is beneficial for purchasing and real life assembly purposes, it isn't strictly necessary. Time is a precious resource, especially during build season, so you should spend it on what will give you the biggest return.
"},{"location":"learning-course/stage1/1C-designMethodology/#top-level-robot-assembly","title":"Top Level Robot Assembly","text":"Now that you have a drivebase, you can create a top level robot assembly. The top level robot assembly is the highest in the assembly hierarchy. Organizing the assemblies in this way keeps thing organized from both a CAD assembly and real life assembly standpoint.
Create an assembly tab above the Master Sketch
part studio and name it Top Level Robot Assembly
. Here, you will bring in the drivebase and the scoring mechanism from 1678's 2023 robot.
Copy this link to access the scoring mechanism.
Top Level Robot Assembly
0. Finished top level robot assembly. Your browser does not support the video tag. 1. Insert the drivetrain assembly and fasten the origin cube to the assembly origin. You may need to unhide the origin cube to mate it. Your browser does not support the video tag. 2. Insert the 1678 2023 scoring assembly by pasting the scoring mechanism link into the `Insert` menu textbox. Then, fasten its origin cube to the assembly origin. You may need to hide the drivetrain's origin cube to access the origin of the assembly for mating. 3. Finished top level assembly. \u276e \u276f And that's all there is to the top level robot assembly! The use of the origin cube makes it very easy to mate together assemblies. In later stages you will explore how to create flexible assemblies (arms, elevators, etc) with the origin cube. If you are interested, you can get a sneak peek here.
"},{"location":"learning-course/stage1/1C-designMethodology/#summary","title":"Summary","text":"Congratulations on completing Stage 1C! Keep up the good work!
Here is a quick summary of what you have achieved in 1C:
- Learned about top-down robot design methodology and master sketches
- Learned how to use the derive feature to drive part studios using master sketches
- Learned how to use the origin cube to mate together top level assemblies
- Learned how to model a simple swerve drivetrain
Remember, practice is essential \u2013 the more CAD models you create, the more proficient and efficient you'll become. Using keyboard shortcuts can significantly accelerate your CAD workflow. Be attentive to best practices to avoid developing any bad habits.
In Stage 2, you will begin to model robot mechanisms using all the skills you have learned in Stage 0 and Stage 1! Note that in stage 2, the learning course will become less step-by-step and more open ended, which will enable you to add your own input on designs based on your team's way of doing things. As always though, reference CAD models will be available.
Optionally, please fill out this feedback form about stages 0 and 1.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/","title":"A: Full Detail Drivebase","text":""},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#2a-full-detail-drivebase","title":"2A: Full Detail Drivebase","text":"Welcome to Stage 2! This section covers FRC mechanism design, emphasizing CAD skills, best practices, and key engineering concepts. Each project guide explains design decisions and criteria, promoting independent CAD work with less step-by-step instruction.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#introduction","title":"Introduction","text":"The first project in Stage 2 will be detailing the drivetrain you began modeling in Stage 1B. So far, you\u2019ve only modeled the frame and bare bellypan. To finish the drivetrain, you should add the following details.
-
Battery Mounting: Every robot needs a battery, and while the location may vary based on the other mechanisms present in your robot, it should always be placed as low as possible to make the robot more stable.
-
Electronics Mounting: Adequate space must be allocated on the robot for ease of wiring. Typically, the robot\u2019s electronics are mounted on the bellypan.
-
Bellypan Pocketing: This step is optional. Some teams will prefer to add cutouts in their bellypan to remove weight and make wiring easier. However, pocketing the bellypan may significantly increase machining time.
-
Bumpers: While bumper rules can vary from year to year, they are almost always required to protect your robot and other robots from collisions. Making your bumpers easy to attach and remove is also a very nice quality of life improvement for when you\u2019re at competition.
While the exact implementation for each of these details will vary based on the rest of your robot and from team to team, an example reference for Stage 2A is provided.
2A Drivetrain Reference
Example of a fully detailed Stage 2A drivetrain.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-mounting","title":"Battery Mounting","text":"Ensuring that your robot\u2019s battery does not fall out of your robot is critical for successful robot operation. While it may seem obvious, even veteran teams sometimes get this wrong. Successful battery mounting can be broken down into two components: good battery placement and a robust battery holder.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-placement","title":"Battery Placement","text":"Batteries are heavy: the FRC robot battery weighs a whopping 13 lbs. Since the battery is so heavy, you need to place it as low as possible to keep your robot\u2019s center of gravity low to prevent tipping over. Most teams will typically use the bellypan to support their battery as this is the lowest location on the robot.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-holder","title":"Battery Holder","text":"A strong strap is needed to secure the battery to its mount, preventing it from dislodging during hard collisions. A good option is to use a 1\u201d or 2\u201d wide buckle strap, which can be purchased and cut to size from most stores. FRC vendors like WCP also sell battery mounting accessories including battery holders and straps.
Example
Securely strapped battery in a robot. (Photo Credit: FRC 1538)
Below, we've provided one option for mounting the battery. In this design, the battery is placed horizontally on the bellypan. It is secured with a 2\" wide strap that wraps around the battery and bellypan to secure it.
Sample Battery Holder Modeling Slides
0. Finished battery holder w/ mounting holes, strap cutout in bellypan, and strap. 1. Layout of battery and battery mount plate. To fit the battery with 1/16\u201d radius fillets on the inner corners, the cutout should be around 6.705\u201d x 7.225\u201d. 2. 1/8\" thick aluminum is a good option for this plate. Also add a 3/8\" diameter spacers to connect to the bellypan. 3. Add the mounting holes and cut out for the battery strap on the bellypan. 4. Optionally model the battery strap. 5. Optionally pocket the battery holder. 0.2\" wide ribs are recommended. 6. Insert the battery holder, spacer, and battery into the assembly. Don't forget to organize your feature tree, name your parts, assign part materials, and organize your assembly file tree. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#electronics-mounting","title":"Electronics Mounting","text":"To make wiring the robot and later inspecting the wiring easier, enough space should be left around each electrical component. You should work with your electrical teammates to determine the best location for the various control system parts. Teams typically try to mount their electronics on the bellypan, permitted there is space.
Example
Example layout of various different electronic components on a bellypan.
A list of typical electrical components found on FRC robots is provided below, as well as a recommended mounting location. Again, mounting locations are highly dependent on the rest of your robot, make sure to always coordinate with your electrical team to decide what is best.
Component Function Suggested Location Image REV Power Distribution Hub (PDH) or CTRE Power Distribution Panel (PDP) Distributes power to all other components Bellypan Main Breaker Is used to turn on/off the robot and protect electronics from events with extremely high current drawn Somewhere easily accessible and close to the PDH and Battery RoboRIO Central controller for all robot operations Bellypan Integrated motor controller (eg: Falcon 500, Kraken X60) Powers and controls the integrated motor No electrical mounting required Discrete motor controller (eg: Spark Max, Talon SRX) Required to power and control some motors (eg: NEO, CIM) Near the controlled motor or on the bellypan Robot Radio Allows the robot to establish wireless connections to the field or driver station Follow Vivid Hosting's radio mounting guidelines. Robot Signal Light (RSL) Indicates whether the robot is on and enabled/disabled Somewhere easily visible Inertial Measurement Unit (IMU) Used to determine robot heading and acceleration Close to the center is best practice (on Bellypan or VHB tape to attach to RoboRIO) Voltage Regulator Module Can be used for custom circuits Bellypan Pneumatics Hub Controls pneumatic components Bellypan One option for mounting the Power Distribution Hub (PDH), main breaker, and RoboRIO onto the bellypan is provided in the below example. The Electronic Mounting
Featurescript can be very useful for generating the mounting holes for electronics. If you cannot accurately manufacture mounting holes for electronics, VHB tape (which comes in the Kit of Parts) can be a good option for robustly securing your electronics.
Sample Electronics Mounting Slides
0. Finished mounted electronics. 1. Draw box outline for PDH and RoboRIO. Also add the outline and holes for the main breaker. 2. Use the Electronic Mounting
Featurescript to add the PDH and RoboRIO mounting holes. Optionally override the hole size for the PDH to be 5/32\u201d diameter, which will allow the mounting bolt to screw directly into the bellypan. 3. Insert the electronics from the MKCad parts library and fasten them. The Pigeon IMU can be fastened to the RoboRIO. \u276e \u276f It is recommended to use the Simplified electronics models to improve assembly performance. You can read more about simplified models on the Assembly Best Practices Page. Simplified swerve module models can also be used to reduce lag.
Every robot is also required to have a Robot Signal Light (RSL). An easy location to mount the RSL is on the side of the drive frame. Typically, only one RSL is required and needs to be \u201ceasily visible while standing 3 ft. (~ 100 cm) away from at least one side of the ROBOT\u201d. Be sure to check the latest game manual rules for the most up to date RSL mounting rules.
RSL mount constructed out of 1/8\" thick polycarbonate plate. The mounting hole for the RSL is 1\u201d in diameter. The RSL model can be found in the MKCad App.
Each robot is also required to have a radio. The radio should be mounted on the robot following Vivid Hosting's radio mounting guidelines.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bellypan-pocketing","title":"Bellypan Pocketing","text":"Some teams may choose to pocket their bellypan to reduce weight and make wiring easier. A pocketed bellypan can save around 3-4 lbs. However, this will add significant machining time if you are manufacturing the bellypan yourself or increase cost if you are purchasing the bellypan from a fabrication service (eg: Fabworks). You should carefully consider the tradeoffs with your team.
If you choose to pocket your bellypan, you can utilize the Vent
, Lighten
, or Part Lighten
Featurescripts to pocket the bellypan. While the workflow may slightly vary between each Featurescript, the general idea is the same. A diamond pattern is recommended for strength and ease of modeling.
Sample Bellypan Pocketing Slides
0. Pocketed bellypan. 1. Draw two perpendicular lines that are offset 45 degrees from vertical. 2. Linear pattern the lines until they completely cover the bellypan. These will be the ribs for the bellypan. 3. Offset the outline of the bellypan 0.5\u201d. 4. Connect any islands that might result from mounting holes being too far from a rib. One way to fix this is to add a slot connecting the island to a rib. 5. Use a pocketing Featurescript to pocket the bellypan. Recommended settings are 0.15\u201d wide ribs and 3/16\u201d tool radius. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumpers","title":"Bumpers","text":"Bumper construction is described in each year\u2019s FRC game manual. Typically, it is required to be two 2.5\u201d diameter pool noodles backed by a 5\u201d tall 3/4\" thick plywood sheet. Refer to the latest game manual for the most up to date bumper rules. Bumper cutout and ground clearance rules will vary from year to year.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumper-model","title":"Bumper Model","text":"To begin, you'll need to model the bumpers. It is recommended to place the bumpers in a new part studio and assembly to keep your feature and assembly trees organized. The minimum level of detail should be a block model of the bumper. Some teams may opt to model the bumper wood, bumper wood holes, angle brackets for the bumper wood, and other details to assist with manufacturing. You should communicate with the rest of your team members to determine the level of detail that is required.
Sample Bumper Modeling Slides
0. Finished bumpers assembly inserted into drivetrain assembly. 1. Create a new sketch in the Master Sketch part studio with the bumper profile. A 3/4\" ground clearance and 1/4\" gap between the bumper and frame is recommended. 2. Create a new part studio in the drivetrain folder for the bumpers. Insert the Origin Cube and derive the drivetrain and bumper sketches from the Master Sketch. 3. Sweep the bumper profile along the edges of the drivetrain top layout sketch to create the block model of the bumpers. 4. Optionally add a fillet on the corners. Size it according to how your team wraps the bumper pool noodles. 5. Optionally model the wood for the bumpers. This can be useful for manufacturing purposes. 6. Create a bumper assembly in the drivetrain folder and insert all the components. Don\u2019t forget to group all the components and mate the origin cube mate connector to the origin. 7. Insert the bumper assembly into the drivetrain assembly. \u276e \u276f Keeping the bumper part studio and assembly separate from the drivetrain keeps the drivetrain feature tree cleaner and allows for easier hiding/showing of the bumpers in the top level assembly since you can show and hide the entire bumper assembly at once.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumper-mounting","title":"Bumper Mounting","text":"Next, you'll need to model your desired bumper mounts in the drivetrain part studio.
Similar to battery mounting, good bumper mounting is often overlooked. While a robust bumper mounting system won\u2019t win you any matches, a poor bumper mounting system can certainly lose you a match. Poor bumper mounting can lead to bumper damage, long bumper swap time, or even lead to your bumpers falling off.
In the provided example, the threaded stud bumper mounting system is implemented.
Section view of the threaded stud bumper mount system. The threaded stud is attached to the bumper wood and the nut holds the stud tight.
Sample Bumper Mount Modeling Slides
0. Finished bumper mounts. 1. Model the bumper mount. This part should be 3/16\u201d thick aluminum. The threaded stud falls into the slot. 2. Add the pocket for the nut that screws onto the threaded stud. This nut keeps the bumpers tight with the frame. The pocket secures the nut and prevents the bumper from lifting up. 3. Optionally pocket the mount. 0.15\" wide ribs and 1/8\" tool radius are recommended. 4. Insert the mount and add it to the Group
. Copy three more mounts and mate them onto the drivetrain assembly. If your team runs multi piece bumpers (eg: two C shaped bumpers) you may need to add more mounts to secure the bumpers. 5. Finished bumper mounts in drivetrain assembly. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#summary","title":"Summary","text":"Congratulations on completing Stage 2A! With the Stage 2A tasks completed, your drivetrain model is well on its way to being fully functional.
Here is a quick summary of what you have achieved in 2A:
- Learned about battery mounting and the importance of a secure battery holder
- Learned about core FRC electronics and how and where to mount them
- Learned how to use the
Electronic Mounting
Featurescript - Optionally learned how to pocket a bellypan
- Learned about bumpers, how to model them, and the importance of having a secure mounting system
- Practiced more complex sketching and layout
As you progress, the projects will become more and more open ended and less step-by-step tutorial style as they have been up until now. Be sure to use the Discord to solicit feedback on your designs to learn and improve!
"},{"location":"learning-course/stage2/2B-basicShooter/","title":"B: Basic Shooter","text":""},{"location":"learning-course/stage2/2B-basicShooter/#2b-basic-shooter","title":"2B: Basic Shooter","text":""},{"location":"learning-course/stage2/2B-basicShooter/#shooter-mechanisms","title":"Shooter Mechanisms","text":"Shooters are used in FRC games when you need to score in high places, and are not allowed to physically reach to the scoring position. A flywheel is the most common method of scoring as seen below.
Most shooting games involve launching a ball, but the fundamentals between ball shooters and shooters for non-spherical objects (discs or rings) remain roughly the same.
FRC Team 2910 and's 1690's 2021 Robot Launching Game Pieces
The most common way to launch game pieces is with flywheel shooters. Other methods, such as catapults or punchers, tend be more challenging to execute with the required accuracy/fire rate and rely on different concepts than flywheel shooters.
1678's 2022 and 2024 Flywheel Shooters. The 2022 shooter launched 9.5\" diameter inflated balls and the 2024 shooter launched 14\" diameter foam rings.
This video is a good slow-motion look at how a ball gets propelled out of a shooter.
Other mechanism examples and deep dives for shooters can be found on the ball shooters page. The design handbook page will have a deep dive, but has not been started yet.
"},{"location":"learning-course/stage2/2B-basicShooter/#project","title":"Project","text":"You will be designing a flywheel shooter to launch a Power Cell, a 7 inch diameter foam ball, from the 2020/2021 Infinite Recharge game. Watch the 2020 Game Animation, Team 1690 2020 Robot Reveal and 2021 Chezy Champs Finals 2 for an understanding of the game tasks. Refer to the game manual and field layout drawings for field elements and the AndyMark website for power cell specifications.
The shooter will be designed to shoot the Power Cells into the high goal from just behind the white \"Initiation Line.\"
Finished shooter assembly.
The reference shooter is provided below. Note that the reference shooter is not designed for the 2020 game.
Shooter Example
"},{"location":"learning-course/stage2/2B-basicShooter/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the basic shooter concepts, as well as the reasons for specific implementations in the example. We cover these concepts lightly so you can design your shooter and understand the basic ideas behind shooters, but the design handbook covers the \"why\" and in depth concepts if you are interested.
Trajectory Rigidity"},{"location":"learning-course/stage2/2B-basicShooter/#trajectory","title":"Trajectory","text":"For a ball shooter, the trajectory is determined by the exit angle and exit velocity of the game piece. (How hard you launch and where you point)
Rigidity impacts the consistency of the trajectory which makes your shooter less accurate. (Think about if your shooter wobbled how your shot would behave)
For 2020, you can use the initiation line (big white line) on the field to estimate where to shoot from and the angle, and the scoring size allows for enough forgiveness if you aren't in the exact spot when scoring. You can use a calculator to estimate your shot distance.
Play with this 2020 trajectory calculator and observe how changes in your angle and speed impact your shot. Can you try to find one angle and speed that lets you score the easiest without being in the exact spot?
Calculator
"},{"location":"learning-course/stage2/2B-basicShooter/#rigidity","title":"Rigidity","text":"Rigidity is important for every mechanism you design. For shooters it is vital to shoot at the same place every time. Think about what would happen if the shooter wobbled as you drove and shot.
This shooter uses two plates of 1/4\" polycarbonate for the sides. 1/4 inch thick Polycarbonate is used as it is easy to machine, cheap, and rigid enough for shooters once you add supports.
In the example, the plates are mounted to the bottom drive rails and support beams. The plates are kept apart from each other on both sides by standoffs, which double up a camera mount and ball guide. In this way, the shooter is rigid.
1x1 structure with the gussets helping support the polycaronbate plates. Exit Velocity"},{"location":"learning-course/stage2/2B-basicShooter/#surface-speed","title":"Surface Speed","text":"
The exit velocity is primarily impacted/controlled by the surface speed.
The rotations per minute and the diameter of wheel impacts the surface speed. Increasing the diameter is often more efficient due to requiring a lower rotations per minute for the same surface speed. A common \"go to\" choice is 4 inches in diameter. That being said, out of all the variables, your RPM and optionally shot angle are the only controllable variables in software.
Common motor choices for flywheel shooters are two CIM class brushless motors. The example uses two Kraken X60 motors, but any brushless cim class motor will work fine. A third motor can be used to power the flywheel and make the rest of the design more forgiving if wanted.
Two Krakens driving the shooter wheels, flywheels, and a belt transferring power to the hood wheels."},{"location":"learning-course/stage2/2B-basicShooter/#inertia","title":"Inertia","text":"
If shooting a single game piece at a time, common choices include stealth wheels, colsons, and solid roller wheels. These wheels store enough energy for your shot while being hard enough to be consistent. Do not use compliant wheels or treaded wheels as they will explode/be inconsistent.
Every time you launch a game piece, the flywheel loses energy and slows down as the game piece accelerates to the speed of the wheel. When shooting multiple game pieces, this can lead to waiting between shots. Adding mass to the flywheel increases the moment of inertia (wikipedia), which lowers the time between shots by reducing the percentage of energy lost per shot. The primary tradeoff is that it will take longer to initially accelerate to your target speed.
Team 2056 and 118 shooting quickly through a high moment of inertia.
Acceleration time and recovery time can also be reduced by gearing down your motors properly, or adding additional motors.
A fantastic tool to help you decide your gear ratio is https://www.reca.lc/flywheel. Given a set of information, it calculates spin-up time, recovery time, and estimated projectile speed. You can mess with the target shooter rpm, ratio, and mass of your flywheel shooter to try to optimize the spin-up time and recovery time, while keeping the projectile speed above around 12 m/s (for this game). For this shooter, these calculations were done and a 4:3 reduction was decided upon for the 4 inch shooter wheels and two 4 inch brass flywheels.
Note
Reductions or upductions should be done with belts for their high efficiency and low maintenance. It's important to try to use pulleys larger than 24 teeth and keep the tooth engagement of the pulleys high to maximize energy transfer without skipping.
Wrap and Compression (Energy Transfer) Spin Control and Additional Energy (Back Rollers) For spherical gamepieces, back rollers may be used for two different applications. Reducing spin and adding extra energy.
"},{"location":"learning-course/stage2/2B-basicShooter/#compression","title":"Compression","text":"The purpose of compression is to transfer energy into the game piece from the flywheel. The squishier the game piece, the more compression is required in order to get efficient energy transfer. Too little compression and the game piece slips, meaning energy isn't put into the ball. At the same time, too much compression leads to dragging on the rollers, which adds additional friction and inefficiency. It is important to find a balance through prototyping. For games with extremely hard game pieces such as 2017, compression is done through a foam backing instead.
"},{"location":"learning-course/stage2/2B-basicShooter/#wrap","title":"Wrap","text":"Wrap impacts the duration that the game piece stays in contact with the flywheel. The longer time the game piece remains in contact with the shooter, the more energy can be transferred consistently. For the associated physics concept see Impulse (Wikipedia).
Not Enough Compression/Contact Time This is what it may look like if you do not have enough compression. See how loud the shooter is compared to how far the shot actually goes (Warning: Loud Audio / Swearing)
Good Contact Time and Compression This is what it looks like if you have good contact time and compression with the exact same robot. (Warning: Loud Audio)
Stealth wheels, Solid roller wheels, (WCP Solid Roller Wheels), and Colson wheels are chosen commonly because of their lack of compression and soft grippy silicone surface. These are all good options for shooter wheels to prototype in a build season.
The example design uses 4 inch diameter roller wheels. The diameter allows for enough contact time while being small enough to reasonably package.
"},{"location":"learning-course/stage2/2B-basicShooter/#feeder","title":"Feeder","text":"A wheel or set of belts is frequently used to feed game pieces into the flywheel. The setup depends on the game and how you approach it feeding, but in 2020 you want to have both sides of your feeder powered due to the power cell being sticky. In the example, a single compliant wheel is used to feed the game pieces into the shooter. (Note: A feeder/Indexing section may be added to stage 2 in the future. The design handbook will have the concepts earlier) Observe how the game pieces are fed into 2910's and 1690's robot.
"},{"location":"learning-course/stage2/2B-basicShooter/#spin","title":"Spin","text":"Due to one side of the shooter being static, spherical game pieces have spin when shot with a single flywheel. In 2022, too much spin was detrimental since it led to bounce out of the game piece. Backrollers help reduce the amount of spin by spinning opposite of the spin direction while not being a source of friction. Spin also allows for a more stable shot, so in 2022 you didn't want to remove all of it, while in 2017 it was useful to have due to the steep arc trajectory.
Your browser does not support the video tag. Bounceout caused by too much spin. Credit: FRC Team 7492"},{"location":"learning-course/stage2/2B-basicShooter/#additional-energy-transfer-through-back-rollers","title":"Additional Energy Transfer Through Back Rollers","text":"
Friction causes some of the energy spent on accelerating the ball into spinning the ball. As a result, this reduces the translational energy (how fast it shoots). Lowering the friction on the backing helped, but back rollers were a better solution.
This high speed shooter video uses PTFE tape to lower the friction on the hood backing to reduce some of the spin. This led to a higher exit velocity by 2 miles per hour.
Back rollers allow for three different ways to increase the energy transfer:
- It reduces the amount of spin which turns into translational energy (shoots faster)
- It reduces the amount of drag as both sides are powered, which means you can have more compression (which leads to more energy transfer)
- There are more rollers that are transferring energy to the game piece in general.
Contact time rules still apply to back rollers. Since you can't have the game piece naturally wrap around the back rollers, you will need multiple back rollers to have the best effect.
Another small note is that the direction of the back rollers are opposite of the shooter, so you will need to swap the direction with gears when belting them together. It is better to belt them together since you only need to control 1 variable in code instead of two.
See how the ball spins as it travels along the shooter path. Although there are back rollers, there is still some spin
Friction & Efficiency Friction reduces efficiency by converting energy into heat and adding unnecessary load to the motor. Excessive friction can prevent the flywheel from reaching speed, causing shot inconsistencies, and may overheat or damage the motors.
To minimize friction:
Belt Tension: Slightly reduce belt tension by shortening the center-to-center distance (0.01-0.02\") to improve efficiency.
Spacers: Use spacers between components on shafts and bearings. Components should not contact the outer race of the bearing to avoid friction. A COTS 1/2 hex delrin spacer which is used to reduce friction and constrain the object.
Shaft Constrain: Don't over-constrain shafts by using more than 2 fixed bearing points to hold a shaft; small misalignments can cause massive friction with the bearings.
Example
Example of a shaft being overconstrained by having a fixed bearing in the middle of the shaft. Example of a shaft being properly constrained with two fixed bearings.
Bent Shafts: Bent shafts reduce efficiency. Prevent bending by avoiding excessive cantilevering and ensuring proper alignment of bearings. Keep pulleys close to bearings
Tolerance Stackup: Minimize tolerance stackup, which occurs when multiple parts connect and introduce friction. Improve precision in fabrication or reduce the number of connections. Generally its best to keep belt runs on the same plate. In this design, a single manufactured plate for bearing holes and center-to-center distances helps reduce tolerance stackup.
Large Wheels: Larger shooter wheels mean lower RPMs are necessary for the same surface speed, which reduces the amount of friction throughout the system. Additionally, gearing your motors down and running them at at not max speeds is better for the motor.
Emergencies: If necessary, throw another motor at your shooter. This is the easiest way to deal with your problems in case you have slightly too much friction and needs something that works without too much work.
Note
These tips for reducing friction can be applied to all power transmissions
"},{"location":"learning-course/stage2/2B-basicShooter/#master-sketch","title":"Master Sketch","text":" - Use the origin cube featurescript
-
Sketch any field elements you intend to interact with. There's no hard alignment, but you intend to shoot into the back goal of the \"Power Port,\" so you must sketch that from a side view using the game manual and field layout drawings for reference. Place it 135 inches away from the origin, as that places the center of your robot 15 inches away from the white \"initiation line\"
-
Sketch a side view of your drivetrain + bumpers.
- Sketch a rectangle with your frame perimeter and height limit. This becomes your bounding box on where to design.
- Sketch your flywheel location, with the flywheels being 4in diameter.
- Sketch another circle concentric with the flywheels, 0.5\" smaller in radius. This is to compensate for the compression of the ball.
- Sketch another circle, concentric with the other two circles, and make the outside of that circle 7 inches away from the outside of the 3\" compression circle. This large circle is to denote the path of the ball and eventually the bent polycarb the ball slides against.
- Sketch your hood wheels by adding two 2 inch circles tangent to the outside of the large circle. Dimension them from each other using a belt calculator.
-
To constrain your shot angle to the field element placement, since the hood is not adjustable, create a line between the 3\" compression circle and the last hood wheel, create an arc from the center of that line to the center of the back goal of the Power Port, and make it normal to the first line you made in this step. Adjust the radius of the arc until you are happy with the arc. The arc itself can be adjustable in real life depending on how far away from the goal you are by adjusting the speed of the flywheels.
-
Decide where you want the motors for the flywheels to go and dimension them away from the flywheel center using a belt calculator.
- Now decide how the shooter is being fed. This depends on the amount of space in the rest of the indexing system, but here we're using an S-shape feeder because the balls are being fed from the front and shot from the back. Sketch two concentric circles for the feeder wheels (green compliant wheels), 3\" and 2\" to account for the compression of the wheels, making the 2\" circle concentric to the large ball path circle. Add a final large ball path circle concentric with your feeder wheels and make it tangent to the original 3\" compression circle of the flywheels.
- Sketch 7\" circles representing the power cells to further demonstrate the ball path.
Now make sure all the geometry in the master sketch is fully constrained (black). Constrain any unconstrained geometry arbitrarily if you need to.
"},{"location":"learning-course/stage2/2B-basicShooter/#part-studio","title":"Part Studio","text":"Tip
If you make a copy of the document, you can use the rollback bar to view the part studio at each step of the process.
- Model your reference drivetrain cross tubes that the shooter plates will mount onto and make them a closed composite part. These will be 8 inches apart to leave room for the ball to travel between the plates.
- Model your main plate on the inside of the cross rails, sketching mounting hardware holes first, including standoffs to hold the bent polycarb following the edge of the large ball path circle concentric to the feeder wheels, then power transmission (motors, belt center-to-center lines, gear pitch circles), then finally the plate outline. Similar to sketching a large gearbox, isn't it? Make sure to extrude it and mirror it for parametric reference for other parts.
- Model the additional 1x1 tube used to mount the front of the shooter to the drivetrain. This helps keep it rigid despite potential flywheel vibrations at high speeds.
- Model the power transmission components using the contextless belts and shaft generator featurescripts.
- Most pulleys will be inserted in the assembly using MKCAD's configurable HTD pulley part (they can all be 3D-printed), but the Kraken x60 pinion pulley for the feeder wheels will use a SplineXS 3D-printed part adapter. Use MKCAD to derive the base pulley into the part studio, and derive the SplineXS 3dp adapter from this document. Perform a boolean subtract operation on the pulley with the adapter to create the cutout, checking keep tools to keep the adapter part. Make sure they're transformed into the correct place on the main plate.
- Model the polycarb backing with holes in it to attach it to the standoffs with zip ties.
- Model the 3D-printed camera mount and camera mount spacers for the Limelight 3
"},{"location":"learning-course/stage2/2B-basicShooter/#assembly","title":"Assembly","text":"Create an assembly, insert the parts and origin cube from the part studio (excluding the reference tubes) with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can. Try to use simplified motors.
"},{"location":"learning-course/stage2/2B-basicShooter/#summary","title":"Summary","text":"You've completed Stage 2B, and your first full mechanism! To summarize what you've learned in this stage:
- One way to make 2 parallel plates rigid
- All the factors that go into designing a flywheel shooter
- Tips to reduce friction and inefficiences in power transmissions
- Using a reference drivetrain to build a mechanism off of to reduce integration complexity
- How to create a master sketch for a flywheel shooter for balls
- Direction-changes in power transmissions
- Customizing a 3D-printed pulley
- Designing a custom limelight mount for a shooter
- How to model a whole mechanism!
While you've now modeled your first full mechanism, it is fully static in the context of the robot, with no moving parts. In the next stage, you'll learn the different concepts that go into designing a robust pivot and how to model one in Onshape, making sure to optimize load times.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/","title":"C: Dead Axle Pivot","text":""},{"location":"learning-course/stage2/2C-deadaxlePivot/#2c-dead-axle-pivot","title":"2C: Dead Axle Pivot","text":""},{"location":"learning-course/stage2/2C-deadaxlePivot/#rotary-mechanisms-dead-axles","title":"Rotary Mechanisms & Dead Axles","text":"Rotary mechanisms enable the pivoting of mechanisms through rotational movement. These mechanisms come in many shapes and sizes but there are a couple good practices that should be followed when designing powered pivots.
6036's 2023 Arm and 2910's 2023 Arm
Take a look at this video to see team 2910's 2023 robot pivoting arm in action.
Two types of pivot drive systems exist: Dead Axles and Live Axles. The following table compares the pros and cons of the two types.
Axle Type Description Pros Cons Picture Dead Axle The axle remains stationary, and the mechanism pivots around it. Stronger, larger axle, no risk of axle twisting. Requires a separate method to transfer power. May run into packaging issues Live Axle The axle rotates with the mechanism. Commonly used with hex axles and hubs. Simple setup. Direct power transfer. Risk of twisting the axle. Commonly done with 1/2 hex which may be too weak for the application Out of these, dead axles (and coaxial designs as a result) are the best choice for pivots, especially ones that need to handle a significant amount of load.
Some key points when designing pivoting mechanisms are:
- Keep the center of mass of the pivoting \"arm\" as close to the pivot as possible.
- Ensure the axle is fully supported, using either box tube or nested plates.
- Maintain a rigid support structure.
- If the structure is wide, power both sides for additional rigidity.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#applicationsexamples","title":"Applications/Examples","text":"Mechanism Type Description Axle Type Friction Management Images Wrist Short, light rotary mechanisms. These are commonly seen to allow for ground pickup or pitch adjustments. You'll find coaxial, live, and dead axles for wrists. Both bearings and bushings are common. Large Pivots Include pink arms, pivoting elevators, and large arms. Dead axle is preferred; consider using 35 chain for heavy loads. Bushings are more common, though thin x contact bearings are used occasionally. High Load Short Pivot Pivots full mechanisms such as a shooter to adjust shot angle. Same as for large pivots. Both bearings and bushings are used. Other mechanism examples and deep dives for pivots can be found on the pivots page. The mechanism fundamentals page is yet to be made but will also be a helpful resource.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#project","title":"Project","text":"This stage's project is a simple dead axle pivot, not for any specific game or in a specific context, but one that teaches concepts that would allow one to apply it to any rotary mechanism.
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Dead Axle Reference Document
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#requirements","title":"Requirements","text":" - Reduction: Use Max planetaries.
- Chain: Utilize 25 chain with a large sprocket reduction.
- Axle: Use 7/8 inch tube for the dead axle and ensure proper support.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the design rationale for the pivot you will be copying. This integrates practical design principles with CAD skills for a more complete understanding of mechanism design.
Strength The primary considerations for the strength of a pivot are the rigidity (resistance to bending) and resistance to twisting. Dead axles provide superior strength to live axles due to the way they don't transmit any load and can be fastened to the rest of the structure. Larger round tube (such as 3/4\" and 7/8\" diameter) is preferred to 1/2\" hex for its strength-to-weight ratio and resistance to twisting. Live axles do have a purpose for low load applications, though.
Tip
Click through the tabs to see how much each axle bends, assuming the same load.
1/2 in Hex3/4 in Tube7/8 in TubeSplineXL2 in Tube Friction Friction must be minimized since the mechanism pivots around the axle. This can be done using either bushings or bearings. Bushings can handle higher loads at lower speeds, while bearings are more suited for higher speeds and lower loads, but larger bearings can be used for large dead axles. Bushings are used for this dead axle example because they package well, are suitable for the low speeds and potential higher loads of an arm, and it is easy to source ones made specifically for sprockets and tube from FRC vendors.
A stepped bushing and a large x contact bearing sometimes used for large dead axles.
Power Transmission Sprocket and chain is used for transmitting power due to the load rating for chain and extremely low chance of it slipping. Using large sprockets bolted to the mechanism helps reduce backlash and increase load capacity, while ensuring that the axle remains a dead axle. Torque is transmitted directly to the rotating mechanism from the sprocket, while the entire thing only uses the axle as a structural member to rotate on. A chain and sprocket turning a pivot A chain and Sprocket
Tensioning To accommodate chain stretch over the course of a season and reduce backlash, an active tensioning system is required. If enough chain length is available, inline tensioners such as turnbuckles and Spartan tensioners are the simplest way to tension the chain. If there isn't enough space for an inline tensioner (if the chain moves too much, the tensioner might run into either of the sprockets), other methods, such as moving the position of one of the sprockets with a sliding or rotating gearbox or stage, may be used. A chain and sprocket moving with a turnbuckle tensioner Two types of inline tensioners, a turnbuckle and a Spartan tensioner
For this design, enough chain length was provided for a simple inline spartan tensioner to work well.
Other Sources of Backlash Especially for pivots, which you want to make as rigid as possible for better control, you want to take steps to reduce the backlash as much as possible.
Source Details Solution Image Hex Interfaces Gaps in hex to hex hole interfaces create backlash. Use shim tape to reduce gaps. Sprocket Clocking Ensure correct alignment of sprockets to prevent uneven movement. Align notches on both sides. Note the notch on the sprocket Mounting Slop Loose bolt-to-hole interfaces can introduce slop. Use proper bolting and strong spacers. Reduction Stages More reduction stages increase backlash. Keep stages to 3 or fewer for optimal performance. One of the \"stages\" being the sprocket reduction Details on these solutions are gone over in the design handbook page about designing for controllability.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#master-sketch","title":"Master Sketch","text":"The master sketch is very simple as it uses maxplanetaries for most of the reduction.
- Use the origin cube featurescript to insert the origin cube
- Dimension the cross bar
- Lay out the pivot location and driving sprocket position above the cross bar. Dimension a construction line between them a distance that will give enough chain length to use an inline tensioner.
- Create construction circles to represent the pitch circles of both sprockets and the diameter of the motor.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#part-studio","title":"Part Studio","text":" - Create a mate connector on the pivot point of the master sketch, owned by the origin cube. This will be used in the top level assembly to define motion between the subassemblies.
- Create the cross bar tubes
- Create the pivot support plates
- Create the chain and hex axle using featurescripts
- Create the dead axle tube, spacer, and washer.
- Create the tubes for the arm, including access holes for bolts.
- Create the plate to space the sprocket off from the arm.
- Name and give materials and appearances to all your parts
Note
Keep in mind you should be creating folders for related features while modeling the mechanism! It's easier doing it throughout the process than saving all the clean-up for the end.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#assembly","title":"Assembly","text":"Because this subsystem contains a static part and a moving part, we want to separate them into rigid (no movement) assemblies, then combine them at the top level. This makes load times significantly less.
Create an assembly for the static parts, insert the parts and origin cube from the part studio with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can.
Create an assembly for the arm portion of the mechanism and do the same thing as above to complete the assembly and make it rigid.
Tip
Below is an example of the instance list of a rigid assembly. Notice the icon in the top left indicating it's rigid. You can tell what can still move in the assembly by a \"degree of freedom\" icon (3 arrows to indicate the 3 axis.)
Now create a top level assembly and insert the static assembly (fasten to the origin) and intake arm assembly. Create a revolute mate between the mate connectors from the origin cubes in both assemblies and add a limit to it. This completes the deadaxle pivot assembly.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#summary","title":"Summary","text":"You've completed Stage 2C! To summarize what you've learned in this stage:
- Different types of axle usage
- Principles of designing a good pivot
- Applications of pivots (wrists, arms)
- One way of tensioning chain
- Different sources of backlash in a power transmission
- How to model a subsystem with multiple moving parts using the origin cube
This mechanism being completed leads to many more mechanisms that have multiple moving parts. Most robots have at least one pivot, though each one can be designed differently depending on the use case and packaging. Each pivot has some things in common though: try to minimize backlash, use a dead axle (usually with chain), and it will obviously need a power transmission included. In the next stage, you'll apply very similar concepts to an intake with a pivot and several rollers.
"},{"location":"learning-course/stage2/2D-slapdownIntake/","title":"D: Slapdown Intake","text":""},{"location":"learning-course/stage2/2D-slapdownIntake/#2d-slapdown-intake","title":"2D: Slapdown Intake","text":""},{"location":"learning-course/stage2/2D-slapdownIntake/#over-the-bumper-intakes","title":"Over-the-Bumper Intakes","text":"A common style of intake for gamepieces in FRC (depending on extension rules) is an \"over-the-bumper\" intake (OTB for short). These bring the gamepiece from the floor against and then over the bumper into another subsystem. They were used commonly in 2019, 2020, 2022, 2023, and 2024, and other past games.
The two types of OTB intakes are \"slapdown\" which consists of a single set of arms with rollers which slap down and back up again, and four-bar linkages, which allow the intake to stow more horizontally instead of vertically. The intake designed in this stage will be a slapdown intake for 2022 (inspired by 4414 HighTide\u2019s slapdown intake from 2023).
1323's 2022 Slapdown Intake and 1678's 2022 Four-bar Intake in action
This video is a great example of a slapdown intake in 2022, on Madtown 1323's robot.
Other mechanism examples and deep dives for OTB intakes can be found on the slapdown intakes page and 4-bar intakes page. The mechanism fundamentals page is yet to be made but will also be a helpful resource.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#project","title":"Project","text":"This stage's project is a slapdown intake for 2022 or 2023 (both with the same gamepiece size of 9.5\" diameter).
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Slap Down Intake Reference Document
"},{"location":"learning-course/stage2/2D-slapdownIntake/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the design rationale for the slapdown intake you will be copying. This integrates practical design principles with CAD skills for a more complete understanding of mechanism design.
Intake Golden Rules There are many good resources out there for how to design good intakes. Torrance from Team 254 has provided a list of golden rules for roller intakes. This will also be slightly paraphrased/added to in the intake fundamentals page.
Summary:
- The surface speed of intake rollers/wheels should be at least double the robot's max speed.
- Maximize grippiness with game piece through all methods to maximize energy transfer, and thus intake speed and reliability
- If object is squishy, make your rollers rigid, if the object is hard, make your rollers compliant/squishy.
- Maximize intake area to make it easier to intake during auto and teleop.
- Intakes need to be robust as they are frequently out of frame perimeter.
- Use sensors to detect game pieces.
General Design and Robustness The main structure uses 1/4\" polycarbonate, 2x1 tubes, and nut strips to attach the plates directly to the frame. In this way, the structure would do an especially good job resisting impacts from the front. Because of the rigid nature in how the main plate is mounted, it can be polycarbonate, making it lighter and stronger than pocketed aluminum. The two secondary plates used to make sure all axles are supported on two points aren't connected with a very rigid structure and so work better as aluminum.
The intake is as wide as possible to decrease the precision and time needed by the driveteam or autonomous code to intake the game piece. The only aim is to get the game piece into the robot, then it can be centered or serialized inside frame perimeter, also minimizing the time that the intake is down.
Pivot The pivot is powered by a single Kraken motor on a 2-stage MAXplanetary gearbox. The 4:1 stages in the MAXplanetary (16:1) and the 12:48 sprocket reduction make a total of 42:1 overall reduction for the pivot. You can assess whether you want this much reduction on your own mechanism by using an arm calculator, but around 30:1 to 42:1 should be good for most intakes.
The MAXplanetary uses a 1:1 belt/pulley to transfer rotation to a long cross-axle. All custom pulleys have pockets for COTS metal inserts to prevent them from stripping. There are sprockets on either end of this cross axle, with chain going up to sprockets attached to the arm. This setup is to ensure both sides of the intake are moved up and down equally so there's no weird twisting forces on the intake.
For reducing backlash in the system, the 1:1 belt/pulley is exact center-center distance, and the chains are tensioned with inline tensioners. Large sprockets on the output of the arms are good as well for more teeth engagement with the chain.
For controlling the intake position, no absolute encoder is needed. You can zero the position when it is stowed and against the hardstop or have it rest on the ground when the robot is turned on, and use the relative encoder to take it to a specific position down. An Intake Pivot
Rollers and Roller Position The rollers are powered with a single Kraken motor with small reduction of 1.6:1; often, you want rollers to be spinning very fast, but still have enough torque to bring in game pieces without stalling the motor. Compression also matters a lot with this. You want to balance compression of a game piece so the intake can move it easily enough without needing too much extra torque from the motors. This is often why adding grippy material to the rollers instead of increasing compression is optimal.
There are 3 total rollers. Rollers often provide more consistent compression than wheels and are a great option for transporting game pieces. They are typically cheaper, lighter, and easier to put on a dead axle than wheels. Dead axles allow the intake arms to be connected by effectively long standoffs, making the assembly more rigid, while still allowing the rollers to spin on bearings. The dead axle rollers used in this project use polycarbonate tube and 3D-printed endcaps for the bearings and power transfer. The document can be found here.
Only 2 of the rollers are on the pivoting arm portion. The final one inside the frame perimeter is on a separate plate. This can keep the pivot for the intake arms lower, lowering the vertical height of the intake when stowed. See how the roller positions impact the ball path
Zombie Axles For transferring power to the rollers, because of the plates in the way and how small the pulleys are, it's necessary to transfer power through the axles (live axle). However, one of these axles is repurposed as a deadaxle by the sprockets attached to the intake arms. The sprockets are on bearings, and driven by chain, so they rotate independently from the axles used by the belts and pulleys. A setup like this, where power is transferred both through the axle and just on top of it for packaging purposes, is called a 'zombie axle'. A good way to explain a dead axle is that it is a dead axle, but the dead axle can also separately rotate. If you are having trouble visualizing this and have a 3d printer, try to print and assemble this 3d printed model.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#master-sketch","title":"Master Sketch","text":" - Sketch the side of your drivetrain and bumper profile
- Sketch the path of the ball over the bumper
- Sketch roller or wheel positions needed to get the game piece to move that way. The distance between rollers should be adjusted using the WCP Belt Calculator. \"Extra center\" should be set as -0.02 for ease of assembly and efficiency.
- Use a sketch circular pattern to represent the stowed position of your intake rollers and define where you want the pivot to be
"},{"location":"learning-course/stage2/2D-slapdownIntake/#part-studio","title":"Part Studio","text":" - Insert the origin cube (use the featurescript)
- CAD the front of your reference drivetrain or derive the tubes and modules from the another swerve drivebase you designed (e.g. from 2A). Make these a composite part. This is only for referencing.
- CAD the superstructure tube (mirror and add the mirror to the drivetrain composite for referencing). Use the assembly mirror featurescript to add mate connectors to the tube for easy assembly.
- Derive and transform the nut strips for referencing
- Design the plates based off of your master sketch
- Create the shafts using the shaft featurescript
- Create the intake arm and spacer to attach a sprocket to it
- Create a mate connector on the pivot point in the master sketch, owned by the origin cube. This is for creating motion in the top level assembly.
- Use your chosen belt/chain generator featurescripts to create the belts and chain
- Name and give materials and appearances to all your parts
"},{"location":"learning-course/stage2/2D-slapdownIntake/#assembly","title":"Assembly","text":"Just like the dead axle pivot, this subsystem contains a static part and a moving part. Again, we want to separate them into rigid (no movement) assemblies, then combine them at the top level.
Create an assembly for the static parts, insert the parts and origin cube from the part studio with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can. Here's the link to the deadaxle rollers again.
Create an assembly for the intake arms and do the same thing as above to complete the assembly and make it rigid.
Now create a top level assembly and insert the static assembly (fasten to the origin) and intake arm assembly. Create a revolute mate between the mate connectors from the origin cubes in both assemblies and add a limit to it. This completes the slapdown intake assembly.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#summary","title":"Summary","text":"You've completed Stage 2D! To summarize what you've learned in this stage:
- Concepts behind designing an effective and robust intake
- Real application of a pivot
- Driving dead axle rollers
- \"Zombie\" Axles
- Intake master sketches and ball paths
- More practice with a mechanism with moving parts and the origin cube
Intakes like this one can be applied during a lot of years, but even if the mechanism type itself isn't used, many concepts, such as the pivot, zombie axle, and dead axle rollers can be reused for basically any mechanism moving or manipulating game pieces. In the next stage, you'll learn about a completely new mechanism with linear motion instead of rotation that can be used to extend part of your robot in a specific direction.
"},{"location":"learning-course/stage2/2E-cascadeElevator/","title":"E: Cascade Elevator","text":""},{"location":"learning-course/stage2/2E-cascadeElevator/#2h-cascade-elevator","title":"2H: Cascade Elevator","text":""},{"location":"learning-course/stage2/2E-cascadeElevator/#cascade-elevator","title":"Cascade Elevator","text":"Elevators pop up commonly in FRC and are used to move mechanisms in a compact linear fashion. This is usually to reach higher places with a mechanism, reach far out from your frame perimeter, or even climb on a field element. Elevators are typically classified by the way they are \"Rigged\". Elevator \"Rigging\" is what allows the motor to transmit motion to each stage. FRC elevators are usually rigged to be either \"Cascade\" or \"Continuous.\"
2468's Cascade Elevator and 4414's Continuous Elevator
Some match videos with examples of elevators include one showcasing 2468's 2023 Robot with a cascade-rigged elevator and one showcasing 4414's 2023 Robot with a continuous-rigged elevator.
Elevators as designed most typically may be out of the scope of a lower-capability team because of the amount of custom metal parts that need to be bought or manufactured, but once you know how one works and have designed one, you may be able to make one with minimal manufacturing capabalities and time required. This page will be covering the design of a cascade-rigged elevator due to the availability of COTS parts for it and the minimal manufacturing that would need to be done.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#cascade-motion","title":"\"Cascade\" Motion","text":"Cascade elevators are characterized by the way the stages move. In a cascade rigged system, each elevator stage moves the same distance from its parent stage.
Cascade Motion"},{"location":"learning-course/stage2/2E-cascadeElevator/#comparison","title":"Comparison","text":"Pros Cons Cascade elevators are great when you just need to move a mechanism up and down and you don't need more than 3 Elevator stages to reach the desired height. While it is possible to make cascade elevators with more than 3 stages, designing the rigging gets harder, especially if you are width constrained. Usually things cannot be passed through a cascade elevator because of the rigging, while you can pass things through a continuous elevator. Cascade motion is faster than continuous due to the stages being linked together and continuous effectively being one long stage. The center of gravity is not optimal in the middle range of extension compared to continuous. All of the major Cascade Elevator components are available as COTS components, which means you can simply stock cascade elevator components and throw it together without worrying about custom manufacturing. The motors powering a cascade elevator need geared down more to counteract the natural upduction the cascade rigging adds."},{"location":"learning-course/stage2/2E-cascadeElevator/#project","title":"Project","text":"Because elevators are just mechanisms to move other mechanisms around, this project is similar to the dead axle pivot and will be designed without much context to learn the design process and components. You will get practice with designing elevators in the context of a robot in Stage 3.
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Cascade Elevator Reference Document
"},{"location":"learning-course/stage2/2E-cascadeElevator/#key-components","title":"Key Components","text":"Elevators have some key components that differ from most other mechanisms, and it's important to understand all of them.
Elevator Blocks Every modern elevator will use some form of \"elevator block\" to allow the stages to slide past each other smoothly using bearings. Most teams will purchase elevator blocks from WCP or TTB instead of manufacturing them in-house (because of the time investment and machining capabilities of a typical team) but ones can be made with plates instead of billet (see 2471 2018).
The elevator featured in this guide uses the WCP Inline Clamping and Inline blocks, but different blocks from WCP or TTB could be substituted with little to no design changes besides the distance between the stages on the sides.
Chain Attachment Point Most cascade elevators use chain to power their initial stage; this chain can run either parallel or perpendicular to the face of the elevator, but the core concept is the same. The chain is bolted to the first stage of the elevator, and the rigging moves the other stages off it. The elevator design featured in this guide uses the TTB chain comb to bolt the chain to the first stage.
Rigging Elevator rigging typically takes up the bulk of the design process, as its the most important part of the elevator. Rigging style, and organization drives the motor mounting, and position of the crossmember the clamp plate is mounted to, so its important to properly plan out the cable paths.
Cable Clamp & Pulleys Cascade elevators function by moving a fixed length of cable from one side of a clamp to the other side of the clamp, to force the elevator up. This cable clamp is usually bolted to some form of crossmember. The elevator from this guide uses the TTB cable clamp to maintain consistency in rigging components (they come in a kit). The clamp consists of two plates; the first one is fastened to the tube and the second one is ONLY fastened to the first plate. You can choose to make access holes for the bolts or bolt all the way through the cross member with a crushblock.
Note
The WCP cable clamp uses a similar design but the fasteners go through both plates into the crossmember tube, sharing the clamping force with the crossmember.
Cable Ends The ends of the cable are arguably the most important part of elevator rigging to do right. If they are handled improperly it can cause issues with rigging falling apart during impacts; this usually takes the elevator (and anything requiring it to move) completely out of commission for the match. Cascade rigging consists of at least one loop of cable per stage, which drives the motion for the next stage.
To ensure smooth motion, these cables need tensioned. One of the best ways to tension these cables is through a ratcheting cable spool. The COTS solution is to use the WCP Ratchet Plate (though an easy homemade solution can be done by cutting the end off of a ratcheting wrench and fastening it to your mechanism), with a hex shaft acting as the spool. The hex shaft gets a hole drilled in it so the cable is forced to wrap around it.
It is important to tie a self-tightening knot in the cable to prevent this from coming undone under high load. This ratcheting spool only needs to be done on one side, with a simple fixed loop on the other side. To tension properly, you will need to loosen the clamping plate before adding tension. This is for two reasons: in order to maintain sync between the stages and so that the tension gets added to each side instead of just the side with the ratchet.
Power Gearbox Elevators need motors to power them. Once you have the rigging planned out you can figure out where you can fit the motors to drive the base elevator stage. There are many methods to power the base stage, but this guide will be using a vertical chain, and the TTB chain comb.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#master-sketches","title":"Master Sketches","text":"Elevator master sketches usually start with an extended side view so you can drive the length of it based off of the extension limits and your required beginning and end position for whatever mechanism you're moving. Though this elevator doesn't have that context, it's still useful to follow the same workflow of starting with a side sketch, which will contain most important dimensions but can be hard to conceptualize at first.
A clean view of the front sketch of the elevator tubes. As practice for stage 3, we'll start with defining the position of the elevator in relation to drivetrain side sketch. Use rectangles to represent the 2x2 tube and the length of the stages. Add rectangles to represent the bottom tubes of each stage and carriage as well. Feel free to create a retracted side sketch (constraining it to the geometry of the first side sketch) to help double check geometry and integration. This especially helpful when designing a full robot. Now add the front sketch to define all the elevator tubes, the width of the elevator, and the distance between stages on the side. \u276e \u276f Tip
Instead of creating \"extended\" and \"retracted\" views, you can separate the stages into their own individual side sketches to let you \"animate\" how it moves in the sketch. You can use configurations to do this.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#part-studio","title":"Part Studio","text":" - Use the origin cube featurescript and derive the master sketches if you made them in a separate part studio.
- Use extrude individual to create the tubes (without creating only duplicates; this means only the bottoms of stages on one side).
-
Convert the extrusions into tubes.
Converting Extrusions into Tubes Tube converter is the easiest way to do this, as demonstrated before, but the hole pattern can break things and be misaligned pretty easily if the dimensions of the elevator end up changing. The most parametric way is to shell the tubes manually, then use a mix of sketches and linear patterns to create the hole pattern. This way you can build design intent into the hole pattern so it won't be misaligned with anything when dimensions change.
To create parametric hole patterns, you first use the Measure Value featurescript from CADSHARP to measure the length of the tube. You create your first hole at the top of the tube, then create a feature pattern or sketch pattern down the length of the tube with the distance of 0.5\" and the instance count set to ((#frame_side_tube/inch)*2)-1
. This method keeps the hole count parametric to the length of the tube.
-
Transform and copy the tubes to complete the structure.
Tip
At this point, as design lead, you could create mate connectors, subassemblies, and top level assembly, and hand off the elevator to other people to parallelize the process if that's how your team works.
-
Model any unique crushblocks
Info
Crushblocks and tube plugs are commonly used for most superstructures and elevators nowadays. Find out what they are and why they're useful on the design handbook page about structure.
-
Decide where you want your rigging (rope) and model it with a path, profile, and sweep.
- Derive the TTB chain comb into place on a first stage tube. This is for knowing how much to space the chain off from the tubes.
- Sketch the chain transmission and crossmember, including the bearing holes for the sprockets.
- Create the plates and tube for the crossmember. The clamp for the rigging will be mounted to the crossmember, but it's also for the rigidity of the base stage.
- Derive the TTB cable clamp into place on the crossmember and create mounting holes for it, and a crushblock if bolting all the way through the tube.
- Add holes for the tube plugs on the crossmember.
- Create the chain transmission, including the chain, any custom spacers, and axles
- Derive some maxplanetary parts to build the gearbox around. Create spacers and mounting for both maxplanetaries. Make sure to leave them easily accessible and replaceable
- Add plates at the bottom of the elevator to support the MAXplanetary shafts.
- Optionally, derive nut strips and a ratchet plate for the carriage and create the shaft for the rigging to be tied to.
- Create a reference mate in the middle of the base tube, owned by the origin cube, to later mate the subassemblies together with.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#assembly","title":"Assembly","text":"Because this subsystem has multiple moving parts, just like the dead axle pivot and slapdown intake, separate rigid subassemblies should be created for each stage.
Create an assembly for the static parts and follow the typical process for inserting them and creating a rigid body (origin cube, group, fasten to origin). Add the rest of the parts by duplicating existing parts, MKCAD, and standard content, using replicate and patterns when you can.
Do the same thing for the first stage subassembly.
And finally the carriage subassembly.
Now create the top level assembly, insert the subassemblies (fasten the origin cube of the static assembly to the origin), and use the reference mates on the origin cubes from the separate subassemblies to create slider mates with limits to define the motion of the elevator.
Because it's a cascade elevator, you can create \"linear relation\" between the two slider mates with a ratio of 1. This will link the motion together in the same way it would be in real life.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#summary","title":"Summary","text":"You've completed Stage 2E! To summarize what you've learned in this stage:
- The concepts and key components of a cascade-rigged elevator
- The master sketch concepts and geometry for elevators
- Linear relations in assemblies
- The uses of tube plugs and crush blocks for tube assemblies
- More practice with a mechanism with moving parts and the origin cube
There's a lot of freedom for attaching mechanisms to this kind of elevator. If you mount it 90 degrees offset from the front of your robot, you can even create a passthrough mechanism that can move up and down. Once you practice more master sketch integration in the next stage, you will be able to replicate a robot with an angled elevator in the later part of Stage 3.
"},{"location":"learning-course/stage2/foamBallConveyer/","title":"2x: Foam Ball Conveyer","text":"Work In Progress
"},{"location":"learning-course/stage2/fourbarLinkage/","title":"2x: Four-bar Linkage","text":"Work In Progress
"},{"location":"learning-course/stage2/fourbarLinkage/#design-theory","title":"Design Theory","text":""},{"location":"learning-course/stage2/fourbarLinkage/#what-are-linkages-why-would-you-use-them","title":"What are linkages / why would you use them","text":"Four bar linkages are an alterative to the slapdown deployment method introduced in 2E {#TODO link}. Carefully designed linkages allow more design flexibility for space constrained designs or designs with difficult required positions for the intake rollers. By adjusting the layout sketch the end positions of the main intake plate can be translated and rotated as desired. A slapdown intake only rotates the intake, so will always end up with the intake being stowed vertically above its pivot point. A four bar intake could package the intake more tightly by translating a large intake closer to the bottom of the robot when stowed.
"},{"location":"learning-course/stage2/fourbarLinkage/#pneumatic-vs-motor-actuation","title":"Pneumatic vs Motor Actuation","text":"Motors are the most approachable actuation method for any mechanism. Four bar intakes are one of the most common places to use pneumatic cylinders however, and can present some situational benifits. Pneumatic cylinders can move complexity from the mechanical design of the mechanism being designed to the electronics area of the robot. Before deciding on using pneumatics in a design, keep in mind that it imposes the weight and volume of the pneumatic system components onto another area of your robot.
"},{"location":"learning-course/stage2/fourbarLinkage/#linkage-mechanical-advantage","title":"Linkage mechanical advantage","text":"TODO: graphics for mechanical advantage (avoiding over center)
"},{"location":"learning-course/stage2/fourbarLinkage/#creating-a-four-bar-linkage","title":"Creating a Four Bar Linkage","text":"This step by step guide walks through creating a four bar linkage to intake a 9\" foam ball. It is actuated by a pneumatic cylinder.
Alterate Video Tutorial By Nick Aarestad Four Bar Guide:
Step 1. First you need to understand the desired flow of the game piece through the intake (green arrow). Draw the bumper geometry, starting position of the game piece (touching the front bumper), and ending position of the game piece. Also draw several intermediate positions of the game piece along its path. Step 2a (left). Next define the extended position and retracted position of your intake rollers (left picture). The rollers should maintain contact and the desired compression of the game piece. In this case the rollers are dimensioned to be 7\" away from the bumpers and the leading roller is 7\" off of the ground. The retracted state of the intake must be within the frame perimeter of the robot, and should take up as little space as possible. The main intake plate holds the intake rollers, as well as the mounting points where the four bar linkage links will attach to the intake plate. In the picture on the left the linkage attachment points are defined using triangles. These attachment points must be at a consistent location relative to the rollers. Equals constraints are used on each one of those construction lines between the extended and retracted states to make sure they are the same. Step 2b (right). The positions of the intake rollers are typically full defined, but other points will need to be moved around as required to design a functional linkage. The linkage attachment points in the intake plate, and the linkage attachment points to the chassis should be moved around by hand until a reasonable geometry is accomplished. Then, as in the right picture, use dimensions to fully define the linkage. The attachment points to the chassis should be dimensioned, and some points will end up fully defined as a result of the geometric constraints. Fully Defined Layout Sketch: Step 4. (only if pneumatic) In this example a pneumatic cylinder will be used to actuate the linkage in and out. The longer solid line is the extended length of the cylinder and the shorter construction line is the retracted length of the cylinder. There are many other ways to arrange this linkage, including ones that act on the top arm instead of the bottom arm, or that result in the cylinder being retracted when the intake is extended. Define the point onto the link where the cylinder will attach (5.5\" dimension) at both the extended and retracted states of the linkage. The rear mounting point of the linkage will then be fully defined, and the linkage layout is complete. Step 5. Using proper parametric cad practice, you are now ready to sketch and extrude the plates for the intake and linkage. These should be where they will actually be in the assembly not on the center line of the part studio. Advanced sketching techniques can be used to ensure zero collisions or perfect fit between the links. Do not attempt this for your first design. Instead, make simple shapes, then check for interferences in the assembly and adjust the plates as needed until there are no collisions at both ends of travel. These plates will take serious intakes with other robots and the field, 1/4\" polycarbonate with significant margins around each hole (>0.5\") is recommended. Step 6. Four bar linkages can be quite complicated to assemble, and will not be as clean as a simpler assembly with fewer moving subassemblies. That said, be sure to use proper origin cube assembly practices when assembling your intake. This picture shows the fully assembled intake plates, as well as the pneumatic cylinder. It includes some other hardware for clarity such as the intake rollers but should not be taken as an example of a good design. Insert the four bar layout sketches into the assembly and make sure that the intake moves exactly as you expect it to. The image shows the retracted state of the intake where the pneumatic cylinder is fully retracted, and the plates match the layout sketch perfectly. If this is not the case you must track down the problem and fix it. [onshape link](https://cad.onshape.com/documents/9aeba443b3990c61c52d9613/w/fe0631a64edb24356a3dbe20/e/673191a338fd6c4480e9d624?renderMode=0&uiState=663e8f226d078f47b184758e) *[WCP]: West Coast Products *[REV]: REV Robotics *[TTB]: The Thrifty Bot *[OTB]: \"Over the Bumper\" typically used to refer to a style of intake where you lift the piece over the bumper *[UTB]: \"Under the Bumper\" typically used to refer to a style of intake where you move the piece under the bumper *[COTS]: Commercial Off the Shelf parts are anything you can buy from a vendor. *[V4B]: \"Virtual 4 Bar\" is where a second degree of freedom is directly geared of a previous degree of freedom instead of being moved independently or by a linkage. *[MCM]: Mcmaster Carr *[C-C]: \"Center to Center\" distance *[turnbuckle]: A threaded part that goes in between chain links to tension the chain *[COG]: Center of Gravity, also referred to as COM(Center of Mass) *[4Bar]: A type of linkage characterized by its 4 pivot points *[Deadaxle]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[Deadaxles]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[deadaxle]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[Liveaxle]: A type of axle setup where the main torque transfer is through the axle. *[liveaxle]: A type of axle setup where the main torque transfer is through the axle. *[Zombie-Axle]: Typically used on pivots a zombie axle spins with the mechanism, but is transferring little to no torque through it. This is commonly used to put an encoder on the pivot point. *[Tube-Nut]: Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. *[tube-Nut]: Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. *[Cantilever]: Horizontal Element that's supported by one side only. *[cantilever]: Horizontal Element that's supported by one side only. *[Shear]: When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. *[shear]: When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. *[Torque]: Force that produces rotational movement. *[torque]: Force that produces rotational movement. *[PDH]: Power Distribution Hub. *[SparkMAX]: Motor controller for REV motors. *[PWM]: Pulse Width Modulation cable. *[RIO]: RoboRIO, brain of the robot. *[Blinkn]: LED controller for REV. *[Radio]: Device that helps the robot communicate with the driver station. *[radio]: Device that helps the robot communicate with the driver station. *[3DP]: Abbreviation for 3D printed or 3D printing. *[Gusset]: Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. *[gusset]: Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. *[poly]: Abbreviation for polycarbonate. *[Poly]: Abbreviation for polycarbonate. *[pc]: Abbreviation for polycarbonate. *[PC]: Abbreviation for polycarbonate. *[Stripping]: Process of removing threads or bolt heads, often due to excessive force or wear. *[stripping]: Process of removing threads or bolt heads, often due to excessive force or wear. *[Tapping]: The process of creating threads in a hole using a tap tool. *[tapping]: The process of creating threads in a hole using a tap tool. *[Billet]: Component machined down from a solid block of material. *[billet]: Component machined down from a solid block of material. *[Brainpan]: Flipped electronics bellypan. *[brainpan]: Flipped electronics bellypan. *[bellypan]: Plate for mounting electronics on the underside of your drivebase. *[Bellypan]: Plate for mounting electronics on the underside of your drivebase. *[hardstop]: A physical limit designed to prevent a mechanism or component from moving beyond a certain point. *[softstop]: A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. *[Hardstop]: A physical limit designed to prevent a mechanism or component from moving beyond a certain point. *[Softstop]: A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. *[DP]: Diametral pitch is the number of teeth per inch of the pitch circle. *[packaging]: The way in which you fit parts of your robot together in a space *[Packaging]: The way in which you fit parts of your robot together in a space *[backlash]: 'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system *[Backlash]: 'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system *[parametric]: Designed in a way that uses relationships between steps to maintain design intent *[Parametric]: Designed in a way that uses relationships between steps to maintain design intent"},{"location":"learning-course/stage2/pastaRollerIntake/","title":"2x: 2023 Pasta Roller Intake","text":"
Work In Progress
"},{"location":"learning-course/stage3/","title":"Stage 3","text":"In this stage you will practice full robot master sketches, replicate simple robots, and practice top-down workflow and integration
Under Construction
"},{"location":"learning-course/stage3/3A-MSpractice/","title":"3A: Master Sketch Practice","text":"Welcome to stage 3! In this stage we focus on practicing top down design and master sketching. Best practices for robot document organization, part studios, and assemblies, are included in the best practices category. Please go through this before continuing with the section.
Coming Soon
"},{"location":"learning-course/stage3/3B-973-2020/","title":"3B: Replicating 973's 2020 Robot","text":"In this stage, we focus on integration and putting everything together into one cohesive project. We'll be designing two robots, a 973 2020 style shooter robot, and a 973 2023 pick and place robot. These hit many of the fundamentals necessary in order design a robot, and by the end you should be prepared for designing robots in the season with some practice in the intermediate stages.
WIP
"},{"location":"learning-course/stage3/3C-973-2023/","title":"3C: Replicating 973's 2023 Robot","text":"WIP
"},{"location":"mechanism-examples/","title":"Mechanism Examples","text":"\"Steal from the best, invent the rest\" - Mike Corsetto, Head Coach of Team 1678. There's nothing that hasn't already been done; don't ever be afraid of taking inspiration from designs of other robots, especially when designing in a build season. Both for design reference and for learning about different executions of different mechanisms, a library of a wide variety of mechanisms is being compiled here.
Note
A CAD link has been provided when available, but examples without CAD can still be useful to look at with Behind The Bumpers videos and ChiefDelphi threads.
Contribution
This library of mechanism examples could always be expanded. By following the instructions on the methods of contributing page, you can add your own examples or help write \"Behind the Design\"s for existing examples.
-
Swerve drivebases with examples of electronics layout
Swerve Drivebases
-
Mechanisms designed to shoot gamepieces
Shooters
-
Over-the-bumper intakes deployed with a four-bar linkage
Four-bar Intakes
-
Over-the-bumper intakes deployed with a single pivot
Slapdown Intakes
-
Elevators rigged continuously with belt or string
Continuous Elevators
-
Elevators rigged in a cascading fashion, with each stage linked to the last
Cascade Elevators
-
Different pivot designs, usually for arms
Pivots
"},{"location":"mechanism-examples/drivebase/","title":"Swerve Drivebases","text":"The drivebase is the single most important part of your robot, providing a bed for every other subsystem to build off. Examples of different drivebases can provide inspiration for electronics layout, bellypan shapes, and structural cross members for mounting, all of which can be a hard but crucial part of designing a robot, as accessibility and maintainability need to be preserved even as subsystems get placed on top of the robot.
-
A custom plate to keep the radio and breaker accessible, holes with grommets to allow wires to pass through the cross members
2910 Charged Up Drivebase
-
A central 2x2 cross member, a brainpan, and citrus bumper mounting plates.
972 Brainpan Drivebase
"},{"location":"mechanism-examples/drivebase/2910/","title":"2910's Charged Up Drivebase","text":""},{"location":"mechanism-examples/drivebase/2910/#2910-charged-up-drivebase","title":"2910 Charged Up Drivebase","text":"Swerve drivetrain featuring MK4I swerve modules, a pocketed bellypan, and a billet brass frame-rail for weight distribution."},{"location":"mechanism-examples/drivebase/2910/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/drivebase/2910/#behind-the-design","title":"Behind the Design","text":"This drivebase embodies all fundamentals of good drivebase design, including the following features:
"},{"location":"mechanism-examples/drivebase/2910/#rigidity","title":"Rigidity
","text":"This drivebase is constructed primarily from 1/8 inch box tube, with important cross-members providing rigidity to the structure. Drivebases must be built extremely tough, as they will experience the brunt of each collision while robots travel across the field at high speed. The bellypan offers extra rigidity by holding the frame members parallel with each other."},{"location":"mechanism-examples/drivebase/2910/#electrical","title":"Electrical
","text":"Holes in the drive-rails allow electrical teams to easily route wires to where they need to go. Holes cut into aluminum may have sharp edges, so it's important to cover them with rubber grommets! The robot's bellypan should have mounting holes for most of the major electronics designed into it. This allows for easy and secure fastening of components like the PDH, and reduces the chances of electronics coming lose in competition. The drivebase usually serves a double purpose as a robot's electrical hub, so it's important to take electronics into consideration. While looking through the CAD, you may notice several key aspects of this drivebase that intentionally accommodate electronics including...
- Pocketed bellypan serves a double purpose of both weight reduction, and providing many points to secure wires with zip-ties.
- All electronics have pre-designed mounting holes
- Holes in the frame-rails around the PDH allow for easy wire routing while keeping wires low in the bellypan and out of the way.
"},{"location":"mechanism-examples/drivebase/brainpan/","title":"972 Brainpan Drivebase","text":"Swerve drivetrain featuring the \"brainpan\" style of electroncis mounting."},{"location":"mechanism-examples/drivebase/brainpan/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/drivebase/brainpan/#behind-the-design","title":"Behind the Design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/cascade/","title":"Cascade Elevators","text":"Cascade elevators help move other mechanisms vertically. The first stage is driven directly and the subsequent stages are linked with loops of line, causing all the stages to extend up an equal amount. This is the \"cascading\" motion. They are generally faster than continuous elevators but the typical design doesn't allow anything to pass through the stages.
"},{"location":"mechanism-examples/elevator/cascade/2stage/","title":"2 Stage Cascade Elevator","text":"Chain driven 2 stage elevator featuring a plate based carriage. Uses TTB COTS Rigging and WCP Elevator Blocks."},{"location":"mechanism-examples/elevator/cascade/2stage/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/elevator/cascade/2stage/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/cascade/3stage/","title":"3 Stage Cascade Elevator","text":"Chain driven 3 stage elevator featuring a plate based carriage. Uses TTB COTS Rigging and WCP Elevator Blocks."},{"location":"mechanism-examples/elevator/cascade/3stage/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/elevator/cascade/3stage/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/continuous/","title":"Continuous Elevators","text":"Continuous elevators are great when you need a lot of extension distance, high stage overlap, or elevator passthrough.
-
Similar to 1678's 2023 Elevator, 3-stage, driven by a spool and line, with unique power transmission
External Cable Driven Elevator
-
A 3-stage belt-driven continuous elevator with a tube carriage, belts tensioned by cams, and WCP bearing blocks
Internal Belt Driven Elevator
"},{"location":"mechanism-examples/elevator/continuous/belt/","title":"Internal Belt Elevator","text":"Internally rigged with two massive HTD5 timing belts, makes for an extremely small footprint"},{"location":"mechanism-examples/elevator/continuous/belt/#link","title":"Link","text":"CAD Link
"},{"location":"mechanism-examples/elevator/continuous/belt/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/continuous/cable/","title":"External Cable Driven Elevator","text":"Externally rigged cable driven elevator, utilizing the throughbore capabilities of the NEO vortex to simplify the power delivery."},{"location":"mechanism-examples/elevator/continuous/cable/#link","title":"Link","text":"CAD Link
"},{"location":"mechanism-examples/elevator/continuous/cable/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/4bar/","title":"Four-Bar Intakes","text":"The four-bar style of over-the-bumper intakes is very common in situations where your packaging is constrained vertically but not horizontally.
-
Extremely simple four-bar intake with compliance wheels, motor driven with chain
1678's Rapid React Intake
-
Simple four-bar intake with deadaxle rollers for a more rigid design
Andrew's Clean Four-Bar Intake
-
Another example of a four-bar intake with deadaxle rollers but with a different power transmission setup
Vaughn's Four-bar Intake
"},{"location":"mechanism-examples/intake/4bar/1678/","title":"1678's Rapid React Intake","text":""},{"location":"mechanism-examples/intake/4bar/1678/#1678s-2022-intake","title":"1678's 2022 Intake","text":"Motor driven 4 bar intake designed to take up minimal horizontal space"},{"location":"mechanism-examples/intake/4bar/1678/#link","title":"Link","text":"CAD Link
"},{"location":"mechanism-examples/intake/4bar/1678/#behind-the-design","title":"Behind the design","text":"4 bar OTB intakes are built to pull gamepieces off the floor and into the robot, but to do so they put themselves in a precarious situation. Sitting outside the robots frame perimeter, they are susceptible to damage from collisions with the field and other robots. All OTB intake designs are heavily influenced by the design requirements to be robust against impacts and damage, fast, and light.
Always include a way to tension your chains! OTB intakes must actuate quickly and accurately, so a motor is a good choice to power them. 1678 used a single Falcon 500 with a 30:1 ratio. This intake featured a torque transfer shaft (highlighted yellow in the image) to transfer power to both sides of the intake. Driving both sides of the intake pivot prevents the entire intake from bending under the loads of extension and retraction. The pivot itself is driven by chain on a 32t plate sprocket. Using a chain for the final reduction and power transmission is optimal due to its ability to absorb shock loads. These screws and washers prevent bearings from popping out during impacts. The intake rollers are powered by a Falcon 500, and power is transferred using HTD 5mm timing belts. The intake is designed with the \"touch it own it\" design philosophy, and it spans the full width of the robot to make intaking as easy as possible for the driver. The intake is \"geared\" (using belt and pulley reductions) so that the surface speed of the rollers are approximately 2.5x the speed of the robot. This allows the robot to intake balls even while driving into them at full speed. Each level of wheels is also belted together such that they have equal surface speeds, despite their different diameters. It is important to take the diameter of your intake wheels/rollers into account because it may effect their surface speeds. This intake takes many special considerations to increase its survivability and robustness
The first stage of rollers has two belts powering it for redundancy, just in case one belt is damaged. Pulleys feature extra-large flanges to prevent belts from slipping off. Intake plates are manufactured from 1/4\" polycarbonate, which is the most common intake material due to its strength to weight ratio and ability to return to its original shape after deforming. This intake has extra aluminum reinforcement on the areas most susceptible to breaking. Intake hardstopped in its down position. Intake hardstopped in its up position 1678 designed their intake polycarbonate plates to hardstop on each other in both the fully extended and retracted positions. This makes programming the intake easier, and helps the robot pass inspection by proving that the intake cannot extend past the frame perimeter extension limit. In a pneumatically actuated intake, having the pivot plates hardstop allows for some error margin on the pneumatic piston's stroke.
"},{"location":"mechanism-examples/intake/4bar/1678/#see-this-intake-in-action-here","title":" See this Intake in Action Here
","text":"1678 Behind the Bumpers 1678 Match Video"},{"location":"mechanism-examples/intake/4bar/clean/","title":"Andrew's Clean 4 Bar","text":"Motor driven 4 bar intake designed to be as simple as possible, utilizing deadaxle rollers"},{"location":"mechanism-examples/intake/4bar/clean/#link","title":"Link","text":"CAD Link
"},{"location":"mechanism-examples/intake/4bar/clean/#behind-the-design","title":"Behind the Design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/","title":"Vaughn's 4bar Intake","text":"Motor driven 4 bar intake designed to be as simple as possible, utilizing deadaxle rollers"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/#link","title":"Link","text":"CAD Link
"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/","title":"Slapdown Intakes","text":"The slapdown style of \"Over the Bumper\" intakes is very common in situations where your packaging is constrained horizontally, but not vertically.
-
Pivot driven by chain and a torque transfer bar, separate stationary wheel axles, bent polycarb funnel, mounted with nutstrips
4414-Style Intake
-
Very different from most modern intakes, it helps center heavy gamepieces through a gap in the bumpers, driven by chain with a deadaxle pivot
Washed's Beavertail Intake
-
Some rollers are decoupled so the pivot for the intake can be lowered below the ball path
Low Pivot Slapdown Intake
-
Uses rollers to center a piece against bent polycarb, then flips it back for a passthrough. Examples of how to mount cameras and sensors to allow more automation
6423's 2024 Flip Intake
"},{"location":"mechanism-examples/intake/slapdown/4414style/","title":"4414 Style Slapdown Intake","text":"A coaxial slapdown design popularized by Team 4414 | HighTide"},{"location":"mechanism-examples/intake/slapdown/4414style/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/intake/slapdown/4414style/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/6423otb/","title":"6423 Crescendo Flip Intake","text":"This common 2024 design was inspired by the ri3d team Cranberry Alarm. It is distinct from the traditional \"passthrough\" intake design, not letting the note travel fully through the intake."},{"location":"mechanism-examples/intake/slapdown/6423otb/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/intake/slapdown/6423otb/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/low/","title":"Low Pivot Slapdown Intake","text":"A special coaxial slapdown design popularized by Team 4414 | HighTide, that incorporates fixed rollers to aide in indexing, that overlap with the moving intake arms for compact packaging"},{"location":"mechanism-examples/intake/slapdown/low/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/intake/slapdown/low/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/washed/","title":"Washed's Beavertail Intake","text":"A slapdown from a different era of FRC commonly known as a \"Beaver Tail\" intake. It incorporates sideways belts to center a gamepiece through a gap in the bumpers"},{"location":"mechanism-examples/intake/slapdown/washed/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/intake/slapdown/washed/#behind-the-design","title":"Behind the design","text":""},{"location":"mechanism-examples/intake/slapdown/washed/#simplicity","title":"Simplicity","text":"This intake features a classic \"Beavertail\" design that was popularized in 2012, and has stuck around as a niche way to intake small-medium sized balls through a bumper cutout without sacrificing on acquisition zone.
This intake utilizes the spinning section of a NEO Vortex, and MAX90 Gearbox to achieve really simple packaging"},{"location":"mechanism-examples/intake/slapdown/washed/#serviceability","title":"Serviceability","text":"Even though this intake is built like a tank, anything extending outside of your robots's frame perimeter needs to be designed for serviceability. The Washed Beavertail Intake achieves this by using an intermediary plate between the 1x1 tubing arms and the pivot sprocket. If you build a second identical intake you can quickly swap them even with the tightest match schedule.
By having a middleplate the entire intake can be taken off with 6 easy to access bolts."},{"location":"mechanism-examples/intake/slapdown/washed/#robustness","title":"Robustness","text":"This intake uses a 7/8\" Aluminum Tube with a bushing to achieve smooth strong movement on the pivot. 7/8\" Bushings are great because the common offerings have a 1.125\" OD making them compatible with most COTS sprockets. The 7/8\" tube extends into the frame tube to take load off the Tube-Nut at the end of the tube.
"},{"location":"mechanism-examples/pivots/","title":"Pivots","text":"Rotating arms are a key mechanism in FRC\u00ae robotics. They are often essential in the deployment and manipulation of mechanisms.
-
Double jointed arm, high pivot, A-frame structure, stub axles
6328 A-Frame Pivot
-
Chain-driven custom dead axle pivot, electronics and camera mounts, rotating final stage tensioning
2910 Dead Axle Pivot
"},{"location":"mechanism-examples/pivots/2910pivot/","title":"2910 Dead Axle Pivot","text":""},{"location":"mechanism-examples/pivots/2910pivot/#2910s-2023-dead-axle-pivot","title":"2910's 2023 Dead Axle Pivot","text":"This dead axle pivot was created by 2910 just recently in the 2023 season and has already been utilized by a number of different teams, including Hall of Fame Team 359 Hawaiian Kids that next year in 2024, who ranked #20 in the world using this pivot as the base for their robot."},{"location":"mechanism-examples/pivots/2910pivot/#links","title":"Links","text":"CAD Link
CAD and Tech Binder Release ChiefDelphi Thread
Match Video
"},{"location":"mechanism-examples/pivots/2910pivot/#behind-the-design","title":"Behind the Design","text":"The pivot is driven by 2 mirrored dual falcon 500 gearboxes. These gearboxes are incredibly compact and are designed immaculately to reduce part count. The first stage gear shaft is a piece of \u00bd\u201d Hex shaft turned down to 13.75mm (thunderhex) on each end, which fully constrains each flange bearing as long as the two plates are compressed.
All of these plates are heavily lightened to make the robot light, increase the acceleration capabilities (F=ma), and keep the center of gravity low. The gearboxes and even motor placement on the gearboxes are as low and central as possible to improve the robots center of mass. Lower center of mass helps to reduce tipping and gives the robot an advantage in pushing battles.
The second stage shaft runs across the robot to link the two gearboxes. These second stage gears are cantilever to reduce gearbox size, and are properly supported with two bearings on each end.
Wheel Support Reference from REV ION Robot Basics Guide The third stage ingeniously doubles as a tensioner arm for the final chain run reduction to the main pivot. Using a chain for the final reduction and power transmission is optimal due to its ability to absorb shock loads. Tightening the bolt here pulls the lever, applying tension to the chain. The entire tensioner pivots around the 2nd stage shaft, using the existing bearing. The planet (larger) gear rotates around the sun (smaller) gear. The planet gear & sprocket shaft uses the same \u00bd\u201d to 13.75mm diameter hex shaft technique to reduce part count.
The main pivot itself is a massive dead axle fixed into the triangular superstructure. Triangles are strong! This (almost) right angle superstructure is incompressible, as when a force is applied to compress any side there is always an opposite side in tension to counteract that force.
"},{"location":"mechanism-examples/pivots/6328pivot/","title":"6328 A-Frame Pivot","text":""},{"location":"mechanism-examples/pivots/6328pivot/#6328-a-frame-pivot-2023","title":"6328 A-Frame Pivot 2023","text":"This triple pivoted design folded in on itself to start inside frame perimeter, and allowed for a near universal manipulation of the robot\u2019s end effector."},{"location":"mechanism-examples/pivots/6328pivot/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/pivots/6328pivot/#behind-the-design","title":"Behind the Design","text":"In many cases, pivoting arms are a fundamental mechanism in the architecture of a robot. Thus, rigid, robust, and fast pivoting mechanisms can make or break a good design. A failure in the pivot of a design like this would put completely put a robot out of commission.
Robots with lower COG's are less likely to tip and have the advantage in pushing battles! The main pivot is powered by a custom 2 NEO high-reduction gearbox that is integrated into the A-Frame of the pivot. This is the most important pivot on the robot, since it moves the most mass. For those reasons want as much power as possible here, so two-four motors is ideal. MAXPlanetaries are not rated for the forces expected to be applied in this gearbox, so a custom gearbox is a necessity. The gearbox is placed as low as possible to lower the COG of the robot. The gearbox drives a Super Max Spline shaft, which is a Max Spline shaft reinforced with an interal aluminum tube. Using this liveaxle takes the load of the pivot off of the gearbox and onto an incredibly heavy duty shaft. All of the Max Spline on this robot is reinforced Super Max Spline, except for the main pivot joint. Internal aluminum tube reinforces the main drive shaft. The main pivot joint is supported vertically on each side by 2 angled 1x1 shafts and a 2x1 shaft. Triangles are strong! The A frame is a triangle, and the vertical 2x1 splits each side into two more mirrored triangles. With the plates clamping on both sides this thing is bulletproof. Plates are not lightweighted at the bottom in order to lower COG and because these parts are fixed to the superstructure, so their weight doesn\u2019t limit the rotational speed of the pivot.
A-Frame superstructure side view. Static triangle load distribution breakdown. Triangles are the only shape which are not collapsable when a force is applied to any side. The main pivot is driven on both sides by long runs of chain to prevent torsion (twisting of the arm). These long runs of chain allow for inline tensioners to eliminate backlash in the pivot. The maxspline here is a live axle. There are bearings in the blue plates that are constrained from the outside with button head cap flanges and on the inside with 3d printed spacers. The large axle collar in between the two plates prevents the spline from sliding. The second arm section is rigidly bolted to both the sprocket and the maxspline shaft. There is tiny Zombie-Axle shaft with a gear on it rigged 1:1 with the main shaft to measure the rotation of the shaft directly for more accurate positioning. It doesn\u2019t need a bearing, the shaft just spins with the inside of the encoder!
Main pivot side view. Bearing retention using button head machine screw flange."},{"location":"mechanism-examples/pivots/6328pivot/#see-this-pivot-in-action-here","title":" See this Pivot in Action Here
","text":"6328 Behind the Bumpers 6328 Rhode Island 2023 Recap"},{"location":"mechanism-examples/shooter/","title":"Shooters","text":"For all your piece launching needs. Shooter designs vary slightly with different size and shaped pieces, but the general concepts of what makes a \"good\" shooter tend to stay the same.
-
For very small balls, clever packaging and design for a hooded shooter
Andrew's Hyperhive Shooter
-
For 9.5\" balls, with a rack hood and a limelight mount
1678's Rapid React Shooter
"},{"location":"mechanism-examples/shooter/citrus/","title":"1678's Rapid React Shooter","text":""},{"location":"mechanism-examples/shooter/citrus/#1678s-2022-shooter","title":"1678's 2022 Shooter","text":"Integrated hooded shooter and indexer for simplicity. This design is optimized to shoot large balls as accurately and consistently as possible."},{"location":"mechanism-examples/shooter/citrus/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/shooter/citrus/#behind-the-design","title":"Behind the Design","text":"Hooded ball shooters all follow the same fundamental design principles, in an effort to produce the most consistent and accurate shots possible. These can be broken down to the following ideas:
- Maximize contact time with the game piece you are shooting. This benefits shot consistency as it gives the gamepiece more time to match the speed of the flywheels.
- Ensure your shooter can aim with adequate precision.
- Ensure your flywheels have enough mass to hold a consistent speed throughout the shot.
- In some cases, spin can be beneficial.
Learn more about the 2022 game: Rapid React
Hooded shooters in 2022 featured backrollers for one main purpose: Controlling backspin. A unique aspect of the 2022 game was the high goal that robots were required to shoot into. The geometry of the goal led many teams to find that their shots bounced out with high backspin. As a remedy, teams added backrollers to their shooters that were geared to spin in the opposite direction as the main flywheel. This reduced backspin on the balls to a manageable amount, but in some cases left just a little bit. This is due to the aerodynamics of spinning balls; thanks to the Magnus effect, backspin on rapid react balls helped them arc better into the high goal, and increased their stability in flight for long distance shots. Hooded shooter flywheels typically use TTB Urethane Wheels or Stealth Wheels. It is important that your flywheels maintain enough mass to hold a constant speed throughout the shot, to ensure consistent shots. Increasing the mass of your flywheel will increase it's moment of inertia, which in turn will increase its consistency. Games in which you can hold and shoot multiple pieces at a time such as Rapid React and Infinite Recharge especially necessitate massed flywheels. The 1678 shooter in 2022 utilized two SDS flywheels for its mass. The most common method of pivoting a hooded shooter is a rack and pinion. 1678 utilized a 3DP rack integrated with their shooter's \"hood,\" and a smaller gear that \"climbed\" the hood gear. This simple design allows for precise actuation of the hood to a wide range of angles."},{"location":"mechanism-examples/shooter/citrus/#see-this-shooter-in-action-here","title":" See this Shooter in Action Here
","text":"Tip
Click the images to watch the videos.
"},{"location":"mechanism-examples/shooter/small/","title":"Andrew's Hyperhive Shooter","text":"Small form factor shooter designed to shoot a high volume of tennis balls at a fast rate. Large overdriven flywheel increases shot consistency when firing large quantities of tennis balls"},{"location":"mechanism-examples/shooter/small/#links","title":"Links","text":"CAD Link
"},{"location":"mechanism-examples/shooter/small/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"resources/","title":"Resources","text":"This section includes resources that you may find useful to help improve your knowledge of mechanisms, help you understand the rest of the site better, and assist your CAD workflow.
"},{"location":"resources/#sections","title":"Sections","text":""},{"location":"resources/#glossary","title":"Glossary","text":"The glossary is a compiled list of words (including acronyms and abbreviations) and definitions to help people understand the lingo used in various parts of the website and on the discord server. When you find one of these words across the site, it will be underlined, and you can hover over it to see the definition.
"},{"location":"resources/#cad-resources","title":"CAD Resources","text":"A collection of resources to support your workflow in Onshape, relevant to FRC.
Featurescripts: A list of FRC-relevant featurescripts and how to add them (includes some short tutorial videos).
Simplified Models: A collection of simplified models of COTS parts to reduce load time (see the importance of this in assembly best practices). These are also already mostly added to MKCAD.
Configurables: A collection of configurable parts or assemblies that aren't in MKCAD that could assist your design.
KrayonCAD: A resource now integrated with MKCAD that allows people to quickly model out robot architectures.
"},{"location":"resources/configurables/","title":"Configurables","text":"Parts in FRC such as printed pulleys can be standardized. Here is a list of common ones:
- Configurable HTD5 pulley with insert
More coming soon.
"},{"location":"resources/featurescripts/","title":"Featurescripts","text":"Onshape has its own scripting language to create custom features to automate aspects of design called Featurescript. There are a lot of featurescripts (what we call the custom features) that make designing for FRC much easier.
"},{"location":"resources/featurescripts/#how-to-install-featurescripts","title":"How To Install Featurescripts","text":" - Open any Onshape document and go inside of a part studio
- Click the rightmost button on the toolbar
- Note: If you have previously added any Featurescripts one of those may show up as the right most icon. In that case click the dropdown to show the add button.
-
Paste the link of the document with the featurescript(s) in it into the search bar
- Note: Some of the below featurescripts exist in the same document, so you can add multiple from the same link.
-
Select the featurescript(s) you want to add to your profile, then exit the box. They will be accessible in all documents from then on in the same drop-down in the toolbar where you added the feature.
Video Tutorial
Alternate
When viewing a tab in a document that uses custom features, you can click a button near the top left that says 'custom features'. From here you can add custom features used in the document to your profile. This method is used in stage 0 to add Julia's Featurescripts when setting up Onshape.
"},{"location":"resources/featurescripts/#list-of-featurescripts","title":"List of Featurescripts","text":"Tip
The title of each featurescript or group of featurescripts links to its respective document. Right click the title and click \"copy link address\" for installing it to your profile using the above process.
"},{"location":"resources/featurescripts/#bundles","title":"Bundles","text":"The below links contain several featurescripts each that you can add all at once. Each useful one will be included separately in the below sections.
Julia's Featurescripts
Alex's Featurescripts
Abhi's Features & Configs
2471 Featurescripts
TLamp's Featurescripts
CADSHARP's Featurescripts
"},{"location":"resources/featurescripts/#structure","title":"Structure","text":"Extrude Individual (Julia's Featurescripts)
- Can extrude multiple regions as different parts with one feature, even if regions are adjacent
- Commonly used with tube converter to make punched aluminum tubes from a top view sketch
Video Tutorial
Tube Converter (Julia's Featurescripts)
- Converts extrusions into punched tube, with customization and presets for hole pattern, wall thickness, and profile.
Video Tutorial
Gusset Generator (Julia's Featurescripts)
- One of Julia's featurescripts
- Not recommended due to load time
FilletXpert (Fillet All Edges) (Julia's Featurescripts)
- After selecting a face, it adds a fillet to the corners of that face (all edges normal to the selected face)
Video Tutorial
Shaft Generator (Julia's Featurescripts)
- Generates a shaft, with options for hex, rounded hex (13.75mm OD), MAXSpline, etc.
- Options for retention type on both ends
- Can be generated in-place and with offsets
Video Tutorial
Spacer Generator (Julia's Featurescripts)
- Generates a spacer, with options for round, 3/8\" hex, and 1/2\" hex
Video Tutorial
Robot Spacer (Alex's Featurescripts)
- A more complex alternative to Julia's spacer generator, if you need more config options
In-Place Bearings (2471 Featurescripts)
- Place different types of bearings in place in a part studio
Electronics Mounting (Julia's Featurescripts)
- Generates hole patterns for different electronic components using center points and mate connectors on sketches
MechSketch (TLamp's Featurescripts)
- Incredibly useful, generates sketch profiles for a variety of things
- Profiles for COTS parts like Maxspline, TTB inserts, maxtube, motors, and the versa patern
- Profiles and holes for all electronics
- Profile generator for pulleys and a spur gears
"},{"location":"resources/featurescripts/#belt-pulleys-chain-sprockets-gears","title":"Belt, Pulleys, Chain, Sprockets, Gears","text":"Contextless Belts (Julia's Featurescripts)
- Similar to chain generator, generates a simplified belt given the tooth counts of both sprockets and pitch
- Either in-place and generates the closest belt, or takes a c-c distance without context and does the same
Video Tutorial
Robot Belt (Alex's Featurescripts)
- An alternative to contextless belts with an included belt calculator, but can get angry if the c-c distance isn't correct.
Belt & Pulley Generation (2471 Featurescripts)
- Incredibly configurable belt and pulley generation
- Belt width, pulley tooth count, offset and fit adjustment, belt type, etc.
- Options for bore and flanges for both pulleys
Complex Belt Generator
- Generates a complex belt run based off of a sketch with pulley and idler circles
Timing Belt Pulley Generator
Thrifty Insert
- Cuts a profile in a part at a given location and depth to fit a thriftybot insert into, for 3D-printed parts to stop them from stripping while being driven on an axle.
Polybelt Generator (2471 Featurescripts)
- Generates polycord and pulleys based off of selected points
Chain Generator (Julia's Featurescripts)
- Generates a simple chain path and sprockets with given tooth count of both sprockets and pitch
- Either in-place with points and generates the closest chain length or takes a c-c distance
- Options for simplified or realistic
Video Tutorial
Sprocket (Abhi's Features & Configs)
- Generate a sprocket for common types of chain
Spur Gear (Alex's Featurescripts)
- Generates a spur gear with a ton of different options
- Can be useful for 3D-printed parts.
"},{"location":"resources/featurescripts/#pocketing","title":"Pocketing","text":"Part Lighten (2471 Featurescripts)
- Better than \"Lighten\" and more complex than \"Vent\"
- Better control over ribs, cut depth, fillets, etc.
- Gives a nice estimate of how much weight is being saved
Vent Featurescript
- Used for pocketing and lightening plates
- Uses sketch regions to determine pocket and rib placement
Video Tutorial
Lighten
- Less optimized and breaks more then vent.
CheeseIt! (TLamp's Featurescripts)
- Advanced lightening pattern generation
- Isogrid, hexagon, or circle pattern
PatchIt! (TLamp's Featurescripts)
- Patches specified pockets in a part
"},{"location":"resources/featurescripts/#manufacturing","title":"Manufacturing","text":"Auto Layout
- Given some derived plates, either transformed from an in-context assembly (to maintain part count) or derived from a part studio, it will automatically lay them out into sheets of a given size, sorted by thickness. This is used to prepare a file to route or waterjet parts out of material with a machine.
Measure Cut List
- Creates a table of measurements
- Great for creating cut lists for parts
Laser Joint
- Highly configurable featurescript that generates tab joints between overlapping parts
- Options to make it easier for cnc routers to cut parts
- Can use for bumper wood corners
Dogbone and Corner Overcut
- Features to make it easier for cnc routers to cut cavities in parts
"},{"location":"resources/featurescripts/#onshape","title":"Onshape","text":"Origin Cube Featurescript
- Used to create an origin reference for assembly mating
- Optionally import design constants like bolt hole sizes, heat set insert hole sizes, etc
- See Assembly Best Practices for more information on usage
Measure Value
- An extremely useful featurescript
- Creates variables from measured values
- Useful for creating parametric patterns, including hole patterns
Assembly Mirror
- Adds reflected mate connectors to a part so you can easily mate it reflected across a plane in an assembly (does not mirror geometry).
Part Color
- Give color to faces on a part retroactively
- Can use a variety of different color inputs
- Can be used for part color configurations
Set Materials (Abhi's Features & Configs)
- Parametrically set materials and appearances of parts in batches
Set Properties (Abhi's Features & Configs)
- Sets properties of parts in batches
2471's Part Numbering (2471 Featurescripts)
- Numbers parts based off of a given standard
Abhi's Part Numbering
- Used for quickly applying a system to number parts
3D Printed Mass (Julia's Featurescripts)
- Modifies 3D-printed parts to have accurate mass with given material, infill, and wall thickness
Video Tutorial
Advanced Variables (2471 Featurescripts)
- Can create a compound variable with path length, angle between edges, distance between planes, angle between planes, distance between points, pulley center distance, and chain center distance
- Very useful for complex belt and chain runs
- Include measurements that Onshape can't normally do
"},{"location":"resources/featurescripts/#troubleshooting","title":"Troubleshooting","text":"If a featurescript is not working as expected, the current version might be broken. You might have to update the featurescript. If it needs updating, the feature will show a blue icon to the right of it that, when hovered over, will say \"change version of linked document.\"
- The first way to update it is by individually by right clicking the feature you want updated in the feature list and clicking \"Update linked document...\"
- The second, and slightly more permanent way (until the maintainer of the custom feature creates a new version), is by right clicking any of the featurescript icons in your toolbar or in the custom features dropdown and clicking \"Update...\" or \"Update all...\" From there, you can see the current versions of the custom features you have added to your profile and update selected ones to use the current latest version when you use a featurescript.
Video Tutorial
"},{"location":"resources/gameHistory/","title":"Game History","text":"WIP
"},{"location":"resources/glossary/","title":"Welcome to the Glossary","text":""},{"location":"resources/glossary/#why-this-exists","title":"Why this exists.","text":"We know it can be hard learning each and every term thrown around in FRC design, so we have compiled a list of words and definitions to aide you throughout your learning.
"},{"location":"resources/glossary/#terms","title":"Terms","text":"c-c
\"Center to Center\" distance WCP
\"West Coast Products\" TTB
\"The Thrifty Bot\" SDS
\"Swerve Drive Specialties\" Turnbuckle
A threaded part that goes in between chain links to tension the chain COG
Center of Gravity, also referred to as COM(Center of Mass) OTB
\"Over the Bumper\" typically used to refer to a style of intake where you lift the piece over the bumper UTB
\"Under the Bumper\" typically used to refer to a style of intake where you move the piece under the bumper V4B
\"Virtual 4 Bar\" is where a second degree of freedom is directly geared of a previous degree of freedom instead of being moved independently or by a linkage. 4Bar
A type of linkage characterized by its 4 pivot points COTS
\"Commercial Off the Shelf\" parts are anything you can buy from a vendor. Dead Axle
A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. Live Axle
A type of axle setup where the main torque transfer is through the axle Zombie Axle
Typically used on pivots a zombie axle spins with the mechanism, but is transferring little to no torque through it. This is commonly used to put an encoder on the pivot point. Tube Nut
Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. Cantilever
Horizontal Element that's supported by one side only. Shear
When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. Torque
Force that produces rotational movement. Moment of Inertia
Amount of resistance against angular acceleration. End Effector
Mechanism attached to the end of an arm. Linear Actuator
Device that converts rotational movement to linear motion, usually with a lead screw. PDH
Power Distribution Hub. SparkMAX
Motor controller for REV motors. Main Breaker
Switch for the robot. PWM
Pulse Width Modulation cable. RIO
RoboRIO, brain of the robot. Blinkn
LED controller for REV. Radio
Device that helps the robot communicate with the driver station. Limit Switch
Type of sensor that acts as a soft limit when physically or magnetically hit. Throughbore Encoder
An encoder that allows shafts to pass through its center to record position. Magnetic Encoder
An encoder that uses magnetic fields to measure position or motion. 3DP
Abbreviation for 3D printed or 3D printing. Billet
Component machined down from a solid block of material. Bevel Gear
Special gears that change the axis of rotation, typically by 90 degrees. Gusset
Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. Box Tube
Hollow, square or rectangular metal tubing. Tie Rod
Rigid bar used for structural support and stability, often in the frame of a robot. Poly/PC
Abbreviation for polycarbonate. Stripping
Process of removing threads or bolt heads, often due to excessive force or wear. Cross Threading
Damage caused when a fastener is forced at an incorrect angle during assembly. Tapping
The process of creating threads in a hole using a tap tool. Brainpan
Flipped electronics bellypan. Bellypan
Plate for mounting electronics on the underside of your drivebase. Hardstop
A physical limit designed to prevent a mechanism or component from moving beyond a certain point. Softstop
A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. DP
Diametral pitch is the number of teeth per inch of the pitch circle. packaging
The way in which you fit parts of your robot together in a space backlash
'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system parametric
Designed in a way that uses relationships between steps to maintain design intent"},{"location":"resources/krayonCAD/","title":"KrayonCAD","text":""},{"location":"resources/krayonCAD/#what-is-krayoncad","title":"What is KrayonCAD?","text":"KrayonCAD is a collection of simplified, configurable Onshape assemblies for the most common FRC subsystems. These subsystems can be modified by changing just a few variables, allowing you to piece together a robot concept extremely quickly and efficiently. KrayonCAD Assemblies only contain the necessary parts to communicate design intent, while minimizing detail and part count to ensure quick load times.
"},{"location":"resources/krayonCAD/#why-should-i-use-krayoncad","title":"Why should I use KrayonCAD?","text":"After brainstorming ideas for a new game, the first CAD iteration is sometimes a heavily simplified design, commonly referred to as \u201cCrayola CAD.\u201d This workflow is used by many teams, including team 254. This is where KrayonCAD comes in; using a library of configurable subsystems, KrayonCAD allows you to:
- Investigate robot architectures
- Budget space
- Verify geometries for robot designs
- Further flesh out robot designs to scale and in 3D
KrayonCAD is fast! You can go from an idea in your head or a sketch to a 3D model in minutes!
"},{"location":"resources/krayonCAD/#how-do-i-use-krayoncad","title":"How do I use KrayonCAD?","text":"KrayonCAD is a simple as 1, 2, 3:
-
Insert: From any Onshape assembly, use the MKCAD app to insert a KrayonCAD Assembly. You can configure the Assembly before inserting.
-
Configure: Right click a KrayonCAD Assembly in the parts list > Configure > change dimensions, check or uncheck boxes, and choose options from drop down lists to configure the assembly to your liking.
-
Mate: KrayonCAD Assemblies have mate connectors placed in strategic places to allow for easy mating using the Fasten and Revolute mate types.
"},{"location":"resources/krayonCAD/#credit","title":"Credit","text":"Link to original ChiefDelphi release and contributors
"},{"location":"resources/simplified/","title":"Simplified Models","text":"To reduce load time and simplify geometry, simplified models are used in FRC. Electrical simplified models are included in the MKCad library, so they will not be included here.
"},{"location":"resources/simplified/#swerve","title":"Swerve","text":"SDS MK4
SDS MK4i
SDS MK4N
MAXSwerve
SwerveX (Credit Astro from 6423)
"},{"location":"resources/simplified/#gearboxes","title":"Gearboxes","text":"MAXPlanetary
VersaPlanetary
UltraPlanetary
"},{"location":"resources/simplified/#motors","title":"Motors","text":"Motors
"},{"location":"resources/simplified/#electrical","title":"Electrical","text":"PDH
"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Welcome to FRCDesign.org","text":"FRCDesign.org is a comprehensive learning guide and technical reference for FRC design using Onshape.
-
Learning Course
A guided curriculum through learning Onshape applied to robot design fundamentals. Looking to learn FRC robot design and CAD skills? Start here.
Learning Course
-
Design Handbook
Dives into the concepts necessary in order to design a competitive robot. Unlike the learning course, this is primarily a reference wiki.
Design Handbook
-
Mechanism Examples
Unlike other mechanism example collections, these are hand picked for specific concepts, with detailed breakdowns behind the design.
Mechanism Examples
-
Design Challenges
We run weekly design challenges! (Think of them as mini Cadathons.) Try them here.
Challenges
"},{"location":"#what-is-frcdesignorg","title":"What is FRCDesign.org?","text":" - FRCDesign.org is not just a resource collection. Though it includes many resources, almost all of the website's content has been written specifically for the website to align with our goals.
- Everything is taught from a competitive focus. Designing competitive robots helps inspire students and teach both engineering skills and life skills. It's also generally more fun when the robot performs well instead of breaking.
- We don't try to teach everything. The learning course is built around teaching a single CAD software (Onshape), and we encourage a specific design style which is optimized for the majority of mid-resource teams.
- We try to include the small details that most guides forget. The concept of an \"arm\" is almost ubiquitous, but the concepts behind designing a pivot that works every match and never breaks? That's not so much common knowledge and much more important.
- Design practices are important! We try to document and teach the best practices possible so you can design faster during the season.
"},{"location":"#discord","title":"Discord","text":"The most effective tool for learning design is getting feedback and learning from others. Join the Discord for design reviews, design challenges, and events.
"},{"location":"best-practices/","title":"CAD Best Practices: Why?","text":"In this guide, we document best practices for Onshape CAD and design standards for FRC.
Reasons for these best practices include:
- Keeping loading times low
- Staying organized, so that making changes down the line is easier and more accessible
- Encouraging top-down design through document structure
- Making CAD resistant to breaking
Why standardize design?
- Make it easier for new designers to succeed; reduce the number of things to learn
- Make it harder to make mistakes - encourage good practice through standardization
- Reduce part cost - only invest in parts that work and last
Essentially, standardizing practices on your FRC team helps to ease the requirement of institutional knowledge by making things \"just work\".
Note
This is a living document.
"},{"location":"best-practices/assembly-setup/","title":"Assembly Best Practices","text":"Assuming you have already named your parts and organized your work within the rest of the document, creating a well-organized assembly is very straightforward.
"},{"location":"best-practices/assembly-setup/#the-origin-cube","title":"The Origin Cube","text":"The Origin Cube
Featurescript inserts a 2\" transparent cube at the origin of the part studio. The cube has a mate connector at the origin. Because this part will never change and always stays at the origin of the part studio, using it to group and fasten parts to the origin will always be more robust and parametric than fixing or using a mate connector attached to another part, in case that part changes or is deleted.
Origin Cube Featurescript
Inserting the Origin Cube feature Tip
The origin cube has the option of importing a number of useful constants and functions, including bolt hole sizes, gear outer diameter, and a center-to-center calculator.
"},{"location":"best-practices/assembly-setup/#process-for-inserting-parts","title":"Process for Inserting Parts","text":"As is described in Sub-Document Setup, subsystems with no degrees of freedom will only have one assembly, while subsystems with multiple moving parts are separated into rigid assemblies. The process for inserting parts and finishing assemblies is similar for both circumstances.
- Create the origin cube in your part studio
- Insert the related parts and origin cube for a rigid subassembly
- Use the \"group\" tool on all parts
- Fasten the origin mate connector to the origin
- Duplicate and fasten any duplicate parts
- Insert standard hardware and COTS components
- Sort the instances into folders (i.e. tubes, swerve modules, spacers)
Tip
As you add more parts in the part studio, you can insert them individually into the assembly with the green checkmark, double click on the initial group, and add the part to the group to avoid mating it. This means that new part will always stay in the same place relative to where it was designed in the part studio.
If the subsystem has multiple moving parts (like an over-the-bumper intake or elevator), create a mate connector on the master sketch for each degree of freedom. This may be a pivot point or the starting point of a slider mate (in the case of an elevator). Make each mate connector owned by the origin cube.
Repeat steps 4-7 of the process for all other rigid subassemblies, if applicable. This will result in each subassembly being rigid, with the origin cube fastened to the origin and all the parts in the same place as in the part studio. Each subassembly will also contain the mate connectors owned by the origin cube.
Now create a top-level subsystem assembly and insert each subassembly into it. Fasten the origin cube of the static subassembly to the origin, and use the other mate connectors to mate the other subassemblies together.
Stage 2D - Slapdown Intake The Stage 2D Slapdown Intake is a subsystem with a static portion and a pivoting portion. An extra mate connector is added for the pivot on the master sketch, owned by the origin cube
Stage 2D - Slapdown Intake
This mate connector exists in both subassemblies.
The static assembly is fastened to the origin and the arm assembly revolves using the pivot mate connector owned by both instances of the origin cube.
Stage 2E - Cascade Elevator The Stage 2E Cascade Elevator is a subsystem with a static portion and two subassemblies that slide linearly. This contains a part studio, a static frame/gearbox assembly, assemblies for the first stage and carriage, and a top-level assembly combining the 3 subassemblies with slider mates.
Stage 2E - Cascade Elevator
3647 Millennium Falcons 2024 Intake Top Level Assembly: 0200-A-Intake. Notice that there is only two mates. The revolute is between the two intake pivot mate connectors, which are attached to the repective origin cubes.
Stationary Components Assembly: 0210-A-Intake Base. The components are group mated and the origin cube is fastened to the origin.
Stationary Components PS: 0210-A-Intake Base. Notice the intake pivot mate connector, derived from the orange master sketch.
Moving Components Assembly: 0220-A-Intake Arm. The components are group mated and the origin cube is fastened to the origin.
Moving Components PS: 0220-Intake Arm. Notice the intake pivot mate connector, derived from the orange master sketch.
"},{"location":"best-practices/assembly-setup/#simplified-models","title":"Simplified Models","text":"Make sure to minimize primitives in your assembly. Primitives are a measure of how complex the object is and how hard it is for Onshape to render. The more primitives there are, the more laggy your assembly will be.
Use simplified models wherever possible to minimize primitives: electronics, swerve modules, motors, etc. Some of these are added to MKCAD as well.
Minimize Primitives
"},{"location":"best-practices/assembly-setup/#other-small-things","title":"Other Small Things","text":" - Import COTS parts from MKCAD
- Use the replicate tool for adding hardware!
- Minimize the number of mates you use; this lowers the solve time
- Stay organized with folders
See a well-organized assembly here:
"},{"location":"best-practices/document-setup/","title":"Document Setup","text":"In general, an FRC robot is too complicated and has too many parts to be created entirely within a single document. Doing so is possible, but will result in bad loading times, and likely poor organization.
To alleviate these challenges, we generally split FRC robots into several documents, each with an individual version number:
- \"Concept\" document: contains the mastersketch, which determines the overall architrcture and geometry for the robot, alongside the Crayon CAD (a simplistic model of your robot archetype)
- Several \"Subsystem\" documents, which contain the part studios, subassemblies and top-level assembly for each subsystem, such as an Intake
- \"Master Robot\" document, which contains the top-level full robot assembly. This assembly is comprised of the top-level assembly from each of the subsystem documents.
To connect these documents to each other, we make use of a few key Onshape features:
- Derive feature: brings your mastersketch from the concept document into the subsystem document, so you can design your parts on top of it.
- Import: Subassemblies are imported from each subsystem document so they can be assembled in the master robot document.
Here is a diagram showing the full file structure:
Blue: Derive, Red: Import
Note
Sometimes the \"master robot\" document is combined with the \"concept\" document. In this case nothing really changes, the file structure just becomes a sort of loop, and there is one less document.
You can see an example of this document structure here. Note the combination of the framework and master documents.
The document structure isn't set in stone; as long as it helps your team fulfill the goal of top-down design and uses separate documents to split up the versions of mechanisms, you can place your master sketches wherever you want (master document, concept document, or the drivetrain document).
"},{"location":"best-practices/feature-tree-setup/","title":"Part Studio Best Practices","text":""},{"location":"best-practices/feature-tree-setup/#what-to-include-in-the-part-studio","title":"What to Include in the Part Studio","text":"The part studio should contain all parts that need to be manufactured by your team. This could include fully custom plates, shafts cut to length, modified COTS parts, etc. Unmodified COTs parts should be imported directly into the corresponding assembly - no modification inside the part studio is required.
Also avoid duplicating identical parts and over-using intensive featurescripts, such as tube converter. These practices can make your part studio loading times high and navigation and changes very laggy. Creating only one of each part in the part studio means you can simply duplicate it when assembling while your part studio performance will be greatly improved.
Tip
Instead of deriving COTS parts for reference, usually you can add simple measurements in your sketches (like a pitch circle instead of a derived gear), which faster both in the moment and overall with load times. You can derive parts from your other subsystems (such as the frame and simplified modules from your drivetrain part studio into your intake part studio) and make them closed composites for easy reference, but keep it to a minimum.
"},{"location":"best-practices/feature-tree-setup/#feature-tree-organization","title":"Feature Tree Organization","text":"Every part studio feature tree should start with a derive command, pulling down the relevant master sketches. This is what you will build on.
Sort and name the features, parts, and tabs and use folders to make your CAD more understandable for other people working on the robot. One of the biggest benefits of Onshape is its collaborative capability, but unnamed and unsorted documents eliminate that point entirely. Sorting and naming in real time can also make it easier to go back and change things (which you will inevitably need to do). Some teams even use a part naming system to assist with organizing manufacturing and assembly.
See an example of a well-organized part studio here:
"},{"location":"best-practices/feature-tree-setup/#the-importance-of-intelligent-origins","title":"The Importance of Intelligent Origins","text":"As with many good practices in CAD, smart origins are another good practice to make future you's life easier. Intelligent origins allow designers to leverage default geometry (Front/Right/Top Planes, Origin Point) for robust axes of symmetry and references in their models.
For FRC CAD, the purpose of using the same origin as the master sketch across all studios and assemblies is twofold:
- The origin will always be a consistent central point you can reference. This helps keep things parametric too.
- To unify the robot CAD and robot software origin point. By having the same origin in CAD and code, the robot can be seamlessly exported to AdvantageScope and camera transformations more easily measured.
Note
Although definitions may vary from team to team, the origin of an FRC robot is typically defined as the center of the drivebase, on floor level.
One way to help achieve this is to use the Origin Cube Featurescript, which is further explained in the assembly best practices page. If using the origin cube, make the origin cube the first feature in all part studios.
"},{"location":"best-practices/mastersketch-setup/","title":"Master Sketch Best Practices","text":"A master sketch is a series of sketches that capture the major dimensions of each mechanism, field element interactions, and robot size constraints. Then, the master sketch(es) are inserted into each mechanism's part studio and the individual components are then modeled around the imported layout sketch. This enables much easier integration with a top-down design approach.
Always Include Sometimes Include Never Include Drivebase dimensions Gears Specific details like the shape of plates End-effector wheel locations based off of prototyping Belts Gussets Field elements and extension limits Chain Mounting holes Mechanism motion paths Motor locations Gamepiece path
This isn't an extensive list, and things can vary from team to team and from architecture to architecture. Detail can easily be added or removed later if necessary.
All important measurements that drive the geometry of the robot exist in the master sketches part studio. They can all be easily viewed and changed together, as opposed to if you had to go through each subsystem to make changes to the geometry to try to make things fit in the top-level robot assembly.
1778 Chill Out's 2024 Robot Master Sketches Master sketches always start with your drivetrain, bumpers, initial configuration, and extension limits. Field elements are sketched next. You can use hard alignment against bumpers to ensure your geometry can score pieces without much software or mechanical complexity.
Tip
Directly after kickoff, you can create a part studio with layout sketches of the drivetrain, extension limits, and field elements. This can be copied and used to test out the geometries of several different robot architectures to then decide between.
Your robot should be designed specifically to interact with the field elements and gamepieces. For the master sketches, this means making every dimension of every subsystem intentional, whether it's based off of field elements, extension limits, or each other.
Example
The length of an elevator would be driven by the start and end positions of the manipulator being moved, since those positions are based on how it interacts with the field elements.
Tip
You can make construction circles representing the range of motion of a pivoting subsystem, and dimension a subsystem a distance away from that circle to make sure there's clearance between them.
Effective mastersketching requires you to stay organized. This means:
- Multiple sketches, usually one per subsystem, within the mastersketches part studio. Keep everything separate!
- Name your sketches accordingly
- You can also give your sketches different colors to differentiate between them
- Sketch all the possible states of each moving subsystem
Mastersketching is an art that can require some practice to get the hang of. While Stage 3 helps you learn and practice doing full master sketches, this tutorial can help you get started if you are unsure.
A presentation of an example: 8177 Vector 2023 Robot
"},{"location":"best-practices/sub-document-setup/","title":"Sub-Document Setup","text":"Each subsystem document should have at least one part studio and one assembly associated with it.
The Stage 2B Basic Shooter is a simple subsystem with no moving parts. This contains only a part studio and a rigid assembly.
Stage 2B - Basic Shooter
"},{"location":"best-practices/sub-document-setup/#subsystems-with-multiple-degrees-of-freedom","title":"Subsystems with Multiple Degrees of Freedom","text":"You may want to split subsystems with multiple degrees of freedom into multiple rigid assemblies. Each separate moving part of the subsystem should have a 'rigid' assembly (no degrees of freedom allowed for any part), while the top-level subsystem assembly only defines the motion between them.
Note
A rigid assembly, when inserted, is treated as a solid body with no mates calculated. It decreases load time in top-level assemblies greatly. You will learn how to integrate the origin cube into this system for easy parametric mates in assembly best practices.
For example, you could split an elevator document into one part studio and corresponding rigid assembly for each stage. The top-level elevator assembly would thus include each of the stage subassemblies within it and the slider mates.
The Stage 2D Slapdown Intake is a subsystem with a static portion and a pivoting portion. Functionally, this contains a part studio, a static assembly for the gearboxes and pivot, a rigid assembly for the arms and rollers, and a top-level assembly combining the two subassemblies.
Stage 2D - Slapdown Intake
The Stage 2E Cascade Elevator is a subsystem with a static portion and two subassemblies that slide linearly. This contains a part studio, a static frame/gearbox assembly, assemblies for the first stage and carriage, and a top-level assembly combining the 3 subassemblies with slider mates.
Stage 2E Cascade Elevator
"},{"location":"contribution/contributors/","title":"Contributors","text":"FRCDesign.org would not happen without the wonderful work of these people!
"},{"location":"contribution/contributors/#website-writers","title":"Website Writers","text":" - David
- Kelly
- Andrew Card
- Jonathan Mi
- Brendan
- Astro
- Neel
- Eeshwar
- Vaughn
"},{"location":"contribution/contributors/#external-contributors","title":"External Contributors","text":""},{"location":"contribution/contributors/#additional-input","title":"Additional Input","text":" - Kremer
- Nick Aarestad
- Trisha
- Chickenbonker
- Andrew Torrance
- Lati
- Jeremy
- Sarah
"},{"location":"contribution/contributors/#social-card-design","title":"Social Card Design","text":""},{"location":"contribution/mechanismContribution/","title":"Contributing to Mechanism Examples","text":"The mechanism examples pages are the ones that would benefit the most from outside contribution. You can add examples from other teams, of course, but adding your own mechanism and going behind the design and performance on it will be ideal. If adding an example from another team, try to interview them for their input and more accurate information.
Criteria for Mechanism Examples:
- It must have been actually built and used at a competition
- You must show both the good parts and the bad parts. What was it designed for? Why were certain decisions made? How easy was it to build and manufacture? How did it actually perform? What went well and what would be changed if it was redesigned?
- Go into detail about specific parts of the design, such as the materials and parts used and why, any specific mechanisms or processes, etc.
- Detailed pictures of the CAD and/or the actual robot. Preferably public CAD made in or uploaded to Onshape.
- Extra media and links if available and applicable.
"},{"location":"contribution/mechanismContribution/#adding-mechanism-examples","title":"Adding Mechanism Examples","text":"As was described in methods of contributing, there are two methods:
- Writing the contribution on a separate platform (such as Google Docs) and getting an internal contributor to add it to the website
- Forking and making a pull request on GitHub
The first method is pretty self explanatory, but if you choose to fork and make a pull request on GitHub, there is some formatting required. Make sure to follow the contribution guide on the methods of contributing page to get up and running with GitHub and VS Code.
"},{"location":"contribution/mechanismContribution/#adding-a-mechanism-category-optional","title":"Adding a Mechanism Category (OPTIONAL)","text":"If you need to add a mechanism category, you must add a landing page for the mechanism examples in that category and a grid card to the mechanism examples landing page.
"},{"location":"contribution/mechanismContribution/#adding-the-folders-and-files","title":"Adding the Folders and Files","text":" -
Create a new folder under mechanism-examples
with the name of the new mechanism category. All mechanism example pages and the landing page for the category will be in this folder.
Note
If there are multiple types of the mechanism (such as with elevators and intakes), you can create multiple folders in that with the landing pages in each separate folder. For example, the folder elevator
contains the folders cascade
and continuous
, both of which contain a landing page index.md
.
-
In the root folder of the new category, create a new file called .meta.yml
and copy the following code into it:
social:\n cards_layout_dir: layouts\n cards_layout: mechanism_fundamentals_wide\n
This sets the size of image you will use for the social card for embeds for the whole category. You can choose between mechanism_fundamentals_wide
or mechanism_fundamentals_tall
for the cards_layout
option. Images have to be 1:1.545 or 1.545:1, any size. More information provided here
-
Create the landing page(s) for the category, named index.md
. Only one of these can be made per folder.
Copy this template for the category landing page and fill it out with your information:
---\ntitle: page-title\nimage: link-to-social-card-image\n---\n\n\n# page-title\ndescription\n\n<div class=\"grid cards\" markdown>\n\n- <center>[![](link-to-mechanism-image)](link-to-page)</center>\n\n ---\n\n description-about-unique-aspects-of-example\n\n [:octicons-arrow-right-24: page title](link-to-page)\n\n</div>\n\n<br>\n
The following is the code for the drivebase examples landing page:
---\ntitle: Drivebase Examples\nimage: docs/img/mechanism-examples/drivebase/2910drivebase.webp\n---\n\n\n# Swerve Drivebases\nThe drivebase is the single most important part of your robot, providing a bed for every other subsystem to build off. Examples of different drivebases can provide inspiration for electronics layout, bellypan shapes, and structural cross members for mounting, all of which can be a hard but crucial part of designing a robot, as accessibility and maintainability need to be preserved even as subsystems get placed on top of the robot.\n\n<div class=\"grid cards\" markdown>\n\n- <center>[![](../../img/mechanism-examples/drivebase/2910drivebase.webp)](2910.md)</center>\n\n ---\n\n A custom plate to keep the radio and breaker accessible, holes with grommets to allow wires to pass through the cross members\n\n [:octicons-arrow-right-24: 2910 Charged Up Drivebase](2910.md)\n\n- <center>[![](../../img/mechanism-examples/drivebase/972dt.webp)](brainpan.md)</center>\n\n ---\n\n A central 2x2 cross member, a brainpan, and citrus bumper mounting plates.\n\n [:octicons-arrow-right-24: 972 Brainpan Drivebase](brainpan.md)\n\n</div>\n\n<br>\n
"},{"location":"contribution/mechanismContribution/#adding-a-grid-card-to-the-mechanism-examples-landing-page","title":"Adding a Grid Card to the Mechanism Examples Landing Page","text":"All grid cards are contained in the <div class=\"grid cards\" markdown>
div. See the mkdocs-material docs about grid cards for more information.
Copy and paste the following code into the div and replace all template information with your own.
- <center>[![](link-to-image)](link-to-category-page)</center>\n\n ---\n\n Example Description\n\n [:octicons-arrow-right-24: category-name](link-to-category-page)\n
Note
Leave a line break in the code between each card, otherwise the card content will merge.
The following is the code for the drivebase examples grid card:
- <center>[![](../img/mechanism-examples/drivebase/2910drivebase.webp)](drivebase/index.md)</center>\n\n ---\n\n Swerve drivebases with examples of electronics layout\n\n [:octicons-arrow-right-24: Swerve Drivebases](drivebase/index.md)\n
"},{"location":"contribution/mechanismContribution/#adding-a-mechanism-example-page","title":"Adding a Mechanism Example Page","text":"Adding a mechanism example page to an already existing category requires a few things to be done. The page has to be created, a grid card for it must be created in the category landing page, and an standard image for the example needs to be created.
"},{"location":"contribution/mechanismContribution/#creating-the-page","title":"Creating the Page","text":"Create a new .md
file in the category folder for your example.
Copy the following template into it and fill out the information using Markdown formatting:
---\nimage: link-to-social-card-image\n---\n\n# mechanism-example-name\n\n<figure markdown=\"span\">\n [![alt-text](link-to-image){height=80% width=80%}](link-to-cad){target = \"_blank\"}\n<figcaption>caption</figcaption>\n</figure>\n\n### Links\n[CAD Link](link){target = \"_blank\"}\n\n## Behind the Design\n\n<br>\n
The following is an example of the 2910 Charged Up Drivebase page without content written:
---\nimage: docs\\img\\mechanism-examples\\drivebase\\2910drivebase.webp\n---\n\n# 2910 Charged Up Drivebase\n\n<figure markdown=\"span\">\n[![2910 Charged up Drivebase](../../img/mechanism-examples/drivebase/2910drivebase.webp){height=80% width=80%}](https://cad.onshape.com/documents/28a885d3b8ad7de567efebbd/w/33b7dd39d54ec1ab15f2e2aa/e/d78c591638c349b708e238e6){target = \"_blank\"}\n<figcaption>Swerve drivetrain featuring MK4I swerve modules, a pocketed bellypan, and a billet brass frame-rail for weight distribution.</figcaption>\n</figure>\n\n### Links\n[CAD Link](https://cad.onshape.com/documents/28a885d3b8ad7de567efebbd/w/33b7dd39d54ec1ab15f2e2aa/e/d78c591638c349b708e238e6){target = \"_blank\"}\n\n## Behind the Design\n\n<br>\n
Add any images you use for your page in /docs/img/mechanism-examples/[category]/[example]/
.
"},{"location":"contribution/mechanismContribution/#adding-an-image-for-the-example","title":"Adding an Image for the Example","text":"Check the category's .meta.yml for the default card layout (tall or wide). This will be the orientation of the 1:1.545 image you will use for the mechanism example.
1:1.545 is the aspect ratio of a picture outputted from Onshape's \"print\" function using the \"tabloid\" paper size. You can select landscape or portrait from there for wide or tall.
Tip
For images you already have, you can use GIMP and a calculator to crop an image by adding pixels to get it to the desired aspect ratio.
"},{"location":"contribution/mechanismContribution/#adding-pages-to-site-navigation","title":"Adding Pages to Site Navigation","text":"Any new pages added have to be added to the site navigation.
Follow the standard formatting presented in the mkdocs.yml file
to add more pages, categories, and landing pages as necessary:
mkdocs.yml
- Mechanism Examples:\n - mechanism-examples/index.md\n - Drivebases:\n - mechanism-examples/drivebase/index.md\n - 2910's Charged Up Drivebase: mechanism-examples/drivebase/2910.md\n - 972's Brainpan Drivebase: mechanism-examples/drivebase/brainpan.md\n - Shooters:\n - mechanism-examples/shooter/index.md\n - Andrew's Hyperhive Shooter: mechanism-examples/shooter/small.md\n - 1678's Rapid React Shooter: mechanism-examples/shooter/citrus.md\n - Slapdown Intakes:\n - mechanism-examples/intake/slapdown/index.md\n - 4414-Style Intake: mechanism-examples/intake/slapdown/4414style.md\n - Washed Beavertail Intake: mechanism-examples/intake/slapdown/washed.md\n - Low Pivot Slapdown Intake: mechanism-examples/intake/slapdown/low.md\n - 6423's Crescendo Slapdown Intake: mechanism-examples/intake/slapdown/6423otb.md\n - 4 Bar Intakes:\n - mechanism-examples/intake/4bar/index.md\n - 1678's Rapid React Intake: mechanism-examples/intake/4bar/1678.md\n - Andrew's Four-Bar Intake: mechanism-examples/intake/4bar/clean.md\n - Vaughn's Four-Bar Intake: mechanism-examples/intake/4bar/vaughn4bar.md\n
As you can see, the formatting goes: - Mechanism Examples:\n - mechanism-examples/index.md\n - Category 1:\n - link-to-category-landing-page\n - Mechanism 1: link-to-mech-1-page\n - Mechanism 2: link-to-mech-2-page\n
Thanks for your contribution!
"},{"location":"contribution/methodsOfContributing/","title":"Methods of Contributing","text":""},{"location":"contribution/methodsOfContributing/#public-contribution","title":"Public Contribution","text":"Anyone can create content for the website without markdown knowledge or github, though it is preferred you learn how to use both to lessen the workload of other contributors.
In the discord server, go to the \"website-discussion\" channel and ask if you can contribute the thing you want to by filling out this template:
Issue/content:\nSolution or Notes about the execution of the content:\nWhen do you plan on finishing?:\nUsing an alternate platform or forking on Github?:\n
This is to make sure you don't waste your time if it's not something that won't get put on the website or something that someone has already started working on.
If you're given approval to start working on it, an internal contributor will make a new post in the \"public-website-contribution\" forum channel or direct you an existing post to work with and supplement another contributor if the content or issue has already started to be addressed.
When you start on your work, you may choose to either:
- Fork the repository on Github and submit pull requests for your work to be accepted (if you're more programming-savvy)
- Work on an alternate platform such as Google Docs or Notion and let an internal contributor port it over to the website when you're done
"},{"location":"contribution/methodsOfContributing/#setting-up-github-and-vs-code-for-contributing","title":"Setting up Github and VS Code For Contributing","text":""},{"location":"contribution/methodsOfContributing/#install-prerequisites","title":"Install Prerequisites","text":"Make sure to download the correct versions for the OS that you have (Windows, Mac, or Linux).
Windows installers will almost always need to be the 64-bit version if there is a distinction.
- The latest version of Git Bash
- Follow instructions for your OS
- Use all default options for installation
- Python 3.10.6
- When the installer opens, make sure to select \"Add Python 3.10 to PATH\" at the bottom and click \"Install Now\"
- For Windows users, you have the option of disabling the PATH length limit at the end; this can be helpful for other projects but is not required for contributing to the website
- VSCode
- Download the stable build for your OS
- Use all default options for installation, except creating a desktop icon if you want
- GitHub Desktop (Optional - you can also use git interface in VSCode)
- After installing, select \"Sign in to GitHub.com\"
- Sign in or sign up for a new GitHub account, then click \"Authorize Desktop\"
- If you choose to sign up, you must verify your account with a captcha at the end of the registration and an emailed code
- If the captcha fails, try disabling a privacy extension that might be interfering
- Set up the rest of your account (you may choose to sign up for GitHub education but that isn't required, the free version is fine)
- If it doesn't take you to the authorization page after signing up, go back to the GitHub Desktop application, press \"Cancel\", the select \"Sign in to GitHub.com\" again
- Allow your browser to open GitHub Desktop
- Click \"Finish\"
"},{"location":"contribution/methodsOfContributing/#steps-to-start-writing-contributions","title":"Steps to Start Writing Contributions","text":"For Public Contributors:
- Go to the repository website
- Click \"Fork\" near the top right, then click \"Create Fork\" on the next screen
- Open GitHub Desktop and select \"Clone a repository from the Internet...\" or go to
file -> Clone repository...
in the very top left - Under \"GitHub.com\", select your forked
[username]/FRCDesign.org
repository and click \"Clone\" - After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork. Select \"To contribute to the parent project\" and click \"Continue\"
For Internal Contributors (added to the main repository):
- Open GitHub Desktop and select \"Clone a repository from the Internet...\" or go to
file -> Clone repository...
in the very top left - Under \"GitHub.com\", select the
davidsdesignserver/FRCDesign.org
repository and click \"Clone\" - After it clones the repository (downloads a copy of it to your computer), it will ask how you plan to use the fork. Select \"To contribute to the parent project\" and click \"Continue\"
How to Write and Pull Request Contributions
- Create a new branch by going to the \"Current branch\" dropdown at the top of GitHub Desktop, pressing \"New branch\", naming it and clicking \"Create branch\".
- Typically you want to make changes in branches (not main), then do what's called a \"pull request\" to get those changes \"pulled\" and merged over to the original main branch
- Name the branch something related to the overall changes you're making, e.g. \"contributors-guide\" or \"3A-cleanup\". You should expect to delete the branch after a pull request, so keep it specific enough to your changes
- Make sure to publish the branch by clicking the button for it that shows up after you create a new branch
- Click \"Open in Visual Studio Code\" to open VS Code.
- If you get a pop-up that says \"Do you trust the authors of the files in this folder?\", check the box next to \"Trust the authors of all files in the parent folder 'GitHub'\" (for no further popups when you clone repositories in the future) and click \"Yes, I trust the authors\".
- Set up VS Code how you like if this is your first time running it (themes, extensions).
- The \"Code Spell Checker\" extension is suggested
- Enable autosave in the
file
menu by toggling it on
-
Make a set of changes.
Tip
All the website files and folders are contained in the docs
folder, except the mkdocs.yml
file which contains the directory for the sidebar of the website
-
Whenever you reach a good point to stop where you want to save your changes to the cloud, you want to make what's called a \"commit\", which is where the changes are saved to the branch. You then have to \"push\" any commits to get them uploaded to the cloud, otherwise they will remain local. You can do this through VS Code or GitHub Desktop, but we'll go through GitHub Desktop to keep all version control actions centralized there.
- Open Github Desktop and make sure \"Changes\" on the sidebar is selected. All changes selected in the sidebar will be added to the commit (the changes are \"staged\" for the commit). Type a summary of the commit (description optional) and press \"Commit to [branch]\".
-
Click the button to push the commit(s) you've made to the cloud (either up above or in the middle of the screen).
Tip
Clicking the \"Fetch origin\" button will fetch any commits to the current branch that anyone else has made and pushed to the cloud
-
To keep your code up to date with the original repository's main branch, open the \"branch\" menu at the top of the screen and click \"Update from main\". If some commits get pulled to your branch from main, you can push to update your branch in the cloud again.
Tip
Make sure to update your branch from main frequently! If you don't, you may have to resolve big conflicts between your changes and changes someone else made to main. If you encounter conflicts, just follow the prompts in GitHub Desktop to open the conflicts in VS Code and solve them there. Once all conflicts are resolved, switch back to GitHub Desktop to complete the merge.
-
Once you're satisfied enough with your set of changes to request to add them to the main website, and have committed all changes, checked for updates, and pushed all commits, create a pull request through the menu in the middle of GitHub Desktop. This will bring you to the website where you can describe the changes you made and want to pull to the website and assign an issue that it will fix. One of the internal contributors will review your pull request after you submit it and will either approve it and merge it with the main branch or make comments about things that need fixed before it can get merged.
To recap the contribution steps, do the combination of creating and publishing a branch, making changes and commits, updating from main, pushing commits, and creating a pull request.
"},{"location":"contribution/methodsOfContributing/#how-to-get-the-local-preview-of-the-website-running","title":"How to Get The Local Preview of the Website Running","text":"You can get a local hosted version of the website to have a live preview of the site while editing.
- Open the repository in VS Code (doesn't matter which branch)
- Toggle the bottom panel on if there isn't one with the shortcut
Ctrl + J
- Click the dropdown next to the + on the top righthand side of the bottom panel and click \"Git Bash\"
- Run the command
py -m venv venv
to create a virtual environment (FIRST TIME) - Run the command
./installdependencies.sh
to install all needed python packages (FIRST TIME) - Run the command
./runlocal.sh
to start the server - If everything went smoothly it should say its \"Serving on\" something like
http://127.0.0.1:8000
Make sure to run ./runlocal.sh
in Git Bash every time you open VS Code to edit.
Tip
After clicking on the terminal in the bottom panel, you can use Ctrl + C to terminate the local website hosting.
Note
When you switch branches using GitHub Desktop, the local preview will follow without any problems
"},{"location":"contribution/styleguide/","title":"Contribution Style Guide","text":""},{"location":"contribution/styleguide/#futureproofing-and-usefulness","title":"Futureproofing and Usefulness","text":"To make the content you write useful for teams of all resource levels, while maintaining validity in the future, the goal isn\u2019t to go broad and shallow, but to go extra deep to equip students with the understanding of the underlying fundamentals behind concepts to apply to their own unique situations. Pros and cons are context dependent while fundamentals are universal.
At the same time, things that aren\u2019t easily accessible and/or commonly used by teams, like billet chassis and ball drive, shouldn\u2019t be included to prevent confusion.
On the other hand, including small details that you\u2019d only discover through actually making the thing tends to be a lifesaver for everyone (such as electrical taping cat-tongue tape to make it not peel).
"},{"location":"contribution/styleguide/#why-is-this-important","title":"Why is this important?","text":" -
We don\u2019t need to figure out the pros and cons of everything for students to make a decision. New products come out all the time, and equipping them with the skills lets students find creative solutions that no one would think of for their circumstances.
-
This enables students to understand WHY a team would make a certain decision and figure out tradeoffs without us explicitly telling them.
-
It makes it significantly less intensive to future proof and maintain. If the meta shifts, having to redo sections to stay competitive is time consuming. If the project dies and is no longer maintained, the information stays useful for way longer.
-
The small details are often the experience gap between the most reliable successful robots and not. It\u2019s a lifesaver for teams without experience, and reduces the review workload on design mentors with experience.
"},{"location":"contribution/styleguide/#to-make-this-easier-here-are-a-few-tips","title":"To make this easier, here are a few tips:","text":" -
You can usually find extremes for each concept to make it more obvious. (stealth wheels vs brass flywheels for inertia.)
-
It may be useful to find one or two meta team applications and figure out what fundamental trade offs are made for that decision. This helps learners understand how these concepts relate to each other. This also applies to mechanism examples.
-
\u201chow to cad xyz\u201d and IRL nuances are very useful for certain applications. Examples include sketching linkages or tensioner placement depending on load.
"},{"location":"contribution/styleguide/#inspired-by-gm0s-style-guide","title":"Inspired by gm0's Style Guide","text":"Don\u2019t deal in absolutes.
- Only a Sith deals in absolutes
- Use pros/cons lists to compare options
- Explain WHY something is good or bad
- For example, we all know deadaxle pivots are better than liveaxle. But don\u2019t just say they\u2019re better, say: \"Deadaxles have a higher second moment of area as the torque being directly transferred to the part. As a result your pivot is significantly more robust and less prone to breaking. \u201d
- Similarly, we know the Kraken motors are generally good. But explain why they are good, e.g. \u201cWe would recommend using Krakens on your drivetrain because they are extremely high torque motors and will improve your acceleration. In addition, they have integrated Talon FX motor controllers that make them easier to wire and feature a high resolution encoder which will help the precision of your swerve odometry. Keep in mind that Kraken motors are not yet compatible with stock REV Maxswerve modules and require an extra adaptor from WCP to mate with other existing modules.\u201d
- Still emphasize that teams are free to explore and innovate, but help set realistic expectations (see the following point)
FRCDesign.org is a guide from a competitive standpoint. - Try to leave out stuff that doesn\u2019t work well and is unpopular; if it is popular it is worth explaining the disadvantages (See tank drive vs mecanum drive; explaining tank drive, as a relatively popular and simple drivetrain makes sense, but mecanum drive, a drivetrain that no longer makes sense in the era of swerve and has little-to-no pushing power or traction.) - Try to leave opinions out as much as possible. Do not speak authoritatively on stuff you do not have first-hand experience with whenever possible
Keep in mind that FRC design trends are temporary and transient. - Just because something is popular one season doesn\u2019t mean it\u2019s the end all be all. There was a time when WCD and sheet metal superstructures was all the rage, but that doesn\u2019t mean that we should recommend them in this guide. Try your best to think about why something is popular, and what benefits in design, function, and execution they actually bring to the table.
"},{"location":"contribution/styleguide/#standards","title":"Standards","text":""},{"location":"contribution/styleguide/#file-formats","title":"File Formats:","text":" - Compress images to .webp format using squoosh
- Embed longer videos using a Youtube embed, and shorter videos with a webm file
- Add images by using
<center><img src=\"absolute link\" width=\"x%\"></center>
"},{"location":"contribution/styleguide/#brand-standards","title":"Brand Standards","text":"Adhere to brand standards when possible.
- Abide by FIRST\u00ae Trademark guidelines, available here
- The first instance of FIRST and FRC on a page should include \u00ae (i.e, FIRST\u00ae)
- Always capitalize and italize the name FIRST
- Do NOT use a possessive on the FIRST name (e.g, FIRST\u2019s)
- This also applies to team names: spell them how they are officially spelled
- Check The Blue Alliance if you don't know how to spell a team's name
You can use \u201cyou\u201d when writing, when it makes writing less awkward. However, try avoiding excessively using it.
"},{"location":"contribution/styleguide/#links","title":"Links:","text":" - External links should open in a new tab:
[Link Text](link_url \"Link Title\"){:target=\"_blank\"}
- Links to CAD documents should use a large centered button:
<center>[Link Text](link_url \"Link Title\"){:target=\"_blank\" .md-button .md-button--primary}</center>
- Link titles for Onshape documents should be
[Document name] Onshape Document
- Internal links should open in the current tab and use a relative link:
[Link Text](relative_link \"Link Title\")
- Link titles for internal links should be in the format:
\"[Page Name] Page\"
"},{"location":"design-challenge/","title":"Design Challenges","text":"Design Challenges are at the core of what makes DDS Special. Design Challenges provide a variety of different practice scenarios to iron your design skills and compete against others in a mutually beneficial way.
"},{"location":"design-challenge/#scoring","title":"Scoring","text":"Each Design Challenge will net a total of 7 points maximum, with 4 for completion and 3 possible bonuses. Late submissions will allow participants to win up to 2 completion points and all 3 bonus points.
"},{"location":"design-challenge/#bonuses","title":"Bonuses","text":" - Simplicity bonus: Awarded to submissions that simplify design to increase the quality of life of their team.
- Quality bonus: Awarded to submissions that embody good CAD and design principles and reflect the time and effort put into making a design as clean as possible.
- Special bonus: Bonus point specific to each design challenge, usually involving the way the challenge is approached and the design is executed.
"},{"location":"design-challenge/#leaderboards","title":"Leaderboards","text":"Design challenges will feature two separate leaderboards: Beginner and Intermediate/Advanced. Each leaderboard will function independently, but points will be transferred when beginner members gain experience and self identify as intermediate. Please correctly self identify with your skill level! DDS is meant to be a community for learning, and trying to game the system by identifying as a beginner only discourages others. We operate on an honor system, but if someone is trying to game the system, we will punish them accordingly.
"},{"location":"design-challenge/challenges/week1/","title":"Design Challenge #1: Swerve Drivebase","text":"Welcome to the first design challenge! We are going to start with a swerve drivebase, the foundation of your robot. We have two different levels of challenges, beginner and advanced. It is recommended to complete the beginner challenge first before going on to the advanced version. The advanced version is the same as the beginner challenge, with a few additional things added on.
Beginner ChallengeAdvanced Challenge - You need to choose a COTS swerve module
- It needs to be assembled using 2\" x 1\" aluminum tubes
- You need to add a bellypan
- The drivebase needs to be legal to be used on the field.
- Lay out and add mounting holes for all of the electronics, making sure to leave space for wires
- Add in the electronics models and mate everything together
- Add in and secure the battery in some way
- Add bumpers
- Add bumper mounts
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Feel free to check out drivebase examples here if you need some brainstorming.
Good luck with your first challenge!
One example of a drivebase! There are many different ways to make one, so don't let this one example drive your design! Be creative and let your mind go wild."},{"location":"design-challenge/challenges/week2/","title":"Design Challenge #2: Gearboxes","text":"This week we will be designing a custom gearbox. Custom gearboxes can be used for many applications, from pivots for intakes or arms, to elevators, and much more. They are useful in certain applications due to their cheap cost and low backlash, as well as being highly customizable to different packaging situations. It is important for any well rounded designer to know their way around a custom gearbox.
Beginner ChallengeAdvanced Challenge Beginner Challenge: The year is 2019, and COTS swerve isn\u2019t a thing yet (unless you want to run andymark swerve and steer\u2026). Your team is designing a custom WCD, and needs gearboxes to drive it!
- Requirements:
- Create a 2 stage gearbox with a total reduction of ~6:1
- Gearbox must fit within the space requirements as outlined
- Gearbox may use any motors of your choice, minimum of 2 maximum of 3
Beginner Template Document
Advanced Challenge: Welcome back to Charged Up 2023! Some of you may be (too) familiar with this game, others may have never heard of it. It\u2019s the end of week 1 and your team has just finished deciding a robot archetype: double jointed arm. It\u2019s now your job to design that arm- without using COTS gearboxes. No planetaries, no wcp gearboxes, just your own skill to make a great double jointed arm.
- Requirements:
- Based on your team\u2019s end effector design, the end of the arm (where a wrist might be) must be able to reach the 3 setpoints in the outline document.
- The arm must stow within the frame perimeter, with at least 5 inches of clearance from the edge.
- No electronics will be required, other than motors.
- Drivetrain details will not be looked at.
- No COTS gearboxes
- Proper master sketch.
Advanced Template Document
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week3/","title":"Design Challenge #3: Ball Shooter","text":"This week we\u2019re moving onto a different challenge: ball shooters! These mechanisms have been useful across many games in modern FRC, including 2012, 2014, 2016, 2020, and 2022.
Beginner ChallengeAdvanced Challenge Welcome to 2020! Your team has decided to design a fixed angle hooded shooter to play the game, just like the highly successful team 973!
The year is 2026, and FRC is in shambles. 2025 will be known as the year epa died, as the majority of teams became uncompetitive due to the terrain game known as \u201cReefscape.\u201d Many teams had forgotten what a WCD is, and spent the build season fruitlessly trying to throw their COTS swerve drives at the sharp jagged field elements of the reef. Seeing the unfolding disaster, FIRST took emergency measures and turned the 2026 game into a generic ball shooter game, with hopes to let teams regain their competitiveness. Your job is to CAD a variable hood ball shooter for this year's game, fitting the following requirements.
-
- Assume the base of your shooter is mounted no higher than 3.5ft from the floor.
- The shooter must be able to shoot from between 3ft and 15ft from the base of the goal.
- Due to the goal's geometry, balls with too much backspin are likely to roll out. To counter this, your shooter must have some form of backroller(s).
- You should use a calculator to verify the shot angles and speeds that your shooter will operate at. We recommend reca.lc and/or klib.
Requirements:
Game characteristics: The goal geometry can be found in the CAD linked below. The game pieces are 6\u201d rubber kickballs weighing 0.29lbs. Optimal compression is up to your own interpretation. The goal geometry means the ideal way to score is to land the ball right on the lip of the goal while it\u2019s near the top of its arc.
ReCalc Link
Klib Link (make a copy of the spreadsheet to use)
Field CAD
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week4/","title":"Design Challenge #4: Intake","text":"Now, you\u2019ve built a shooter, a gearbox for a pivot, and a drivetrain. For your next trick, you are going to be designing an intake. Some of you will remember last week where you designed a shooter for the 2026 game. Well, before you can shoot the balls you gotta get them into your robot.
Beginner ChallengeAdvanced Challenge While you may not have designed a shooter last week, don\u2019t fret. Your job this week will be to design a slapdown style intake for the game piece. Make sure to include fasteners and proper power transmission. We do recommend that you mastersketch up to a theoretical shooter just to think about integration a little.
Slapdown Example Mechanisms
I can\u2019t believe you all designed a shooter without the intake \ud83e\udd26. Anyway, your job will be to design a 4-bar intake to intake these game pieces effectively. Preferably, you design this around your shooter that you made last week, so think about how to package with the space you left, along with the ideal ball path for your design. (Hint: Do a master sketch)
4-Bar Example Mechanisms
For both challenges: You may pivot using motors or pneumatics.
The game pieces are 6\u201d rubber kickballs weighing 0.29lbs. Game Piece Product Page
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-challenge/challenges/week5/","title":"Design Challenge #5: Tilt Shift","text":"The year is 2050. The internet was completely wiped 5 years ago, and all traces of past games have been completely destroyed. Your team has just built a time machine, and, following information about a legendary group of people collectively known as \u201cF4\u201d, have decided to go back in time to 2021 to see the wondrous games they\u2019ve created. You stumbled across the game \u201cTilt Shift\u201d, and decided to cad a subsystem for the game before deciding whether or not it is worth bringing back to the present.
BeginnerAdvanced You\u2019ve decided to create a manipulator for the game piece. Assume that you have some sort of way to move said manipulator from the scoring position to the loading position. A master sketch is recommended but not required.
Your goal is to create a master sketch for a full robot that can complete all aspects of the game. Additionally, pick one of those subsystems that directly interacts with the game piece and cad it.
Game Manual
Field CAD
Need Help?
If you are stuck, or have any questions, feel free to ask in the discord server! Same goes with getting your design looked over!
Good luck!
"},{"location":"design-handbook/","title":"Design Handbook","text":"These sections form an extensive and in depth reference manual that covers both fundamentals and advanced techniques in FRC robot design. While examples are given in Onshape, the content is largely CAD software agnostic.
Keep in mind that this category is a large work in progress, and will continue to be added to long after the design guide is finished. Feel free to write your own content for something we don't have yet and we'll try to incorporate it into the website (See contribution guide).
"},{"location":"design-handbook/#strategic-design","title":"Strategic Design","text":"(WIP) Strategic Design is the holy grail of fundamentals. It can take any team's performance and raise it significantly (with a solid support structure of students and mentors). Strategic design is about all the factors that go into what robot your team decides to build, creating a successful build season schedule for getting it done, and executing it well for competitions. It's about priorities and tradeoffs. It's about designing a robot and playing the game within your capabilities.
"},{"location":"design-handbook/#hardware","title":"Hardware","text":"These pages are all about robustness and designing with fabrication in mind. This means materials, types of structure, hardware, tolerances, and tools and machines.
(WIP) Materials: Different types of common materials in FRC and how to use them best, how to design for manufacturing, and a guide on lightening.
(WIP) Structure: A guide on creating robust and versatile robot structures.
(WIP) Fasteners: A guide on fasteners and fastener standards common in FRC.
(WIP) Sheet Metal: A guide on designing for sheet metal.
(WIP) 3D Printing: A guide on designing for 3D printing.
(WIP) Tolerances: A guide on tolerances to account for when manufacturing real parts.
(WIP) Weight Savings: A guide on designing your parts to be lighter with and without pocketing.
"},{"location":"design-handbook/#power-transmission","title":"Power Transmission","text":"These pages discuss the transmission of power to enable robot functionality.
(WIP) Motion Components: A guide on bearings, bushings, axles, and the best use cases for them, including the mechanics behind transmission of torque through axles.
(WIP) Transfer of Rotational Motion: A guide on rotational power transmission components. Includes gears, belts, and chain.
(WIP) Linear Extension: A guide on linear extension systems such as worm gears and rack and pinion.
(WIP) Motors: A guide on motors. Discusses motor selection and motor calculations.
(WIP) Wheels and Rollers: A extensive guide on wheels found in FRC. Discusses their mechanical properties and use cases.
(WIP) Pneumatics: A guide on how and when to use pneumatics.
(WIP) Electronics and Sensors: A guide on how to design for electronics and incorporate sensors to improve the controllability.
"},{"location":"design-handbook/#mechanisms","title":"Mechanisms","text":"(WIP) Drivetrains: A guide on drivetrains.
(WIP) Elevators: A guide on elevators, including different types of rigging, COTS parts, gearboxes, and use cases.
(WIP) Arms: A guide on arms.
(WIP) Linkages: A guide on linkages.
(WIP) Intakes: A guide on intakes.
(WIP) Shooters: A guide on shooters.
(WIP) Turrets: A guide on turrets.
(WIP) Bumpers: A guide on bumper materials, construction, and mounting solutions, with several references.
"},{"location":"design-handbook/#design-write-ups","title":"Design Write-ups","text":"Write-ups on important topics to take your designs a step further.
(WIP) Designing for Controllability: Designing mechanisms and power transmissions for controllability.
(WIP) Chain Tensioning Solutions: Tensioning chain drive mechanisms.
(WIP) Bumper Mounting Solutions: Different solutions for bumper mounting.
(WIP) Springs and Shocks: Different forms of tension that can be used to lessen the load on structure or motors and how to use them.
"},{"location":"design-handbook/strategic-design/","title":"Strategic Design","text":"Strategic Design is the holy grail of fundamentals. It can take any team's performance and raise it significantly (with a solid support structure of students and mentors). Strategic design is about all the factors that go into what robot your team decides to build, creating a successful build season schedule for getting it done, and executing it well for competitions. It's about priorities and tradeoffs. It's about designing a robot and playing the game within your capabilities.
Coming Soon
"},{"location":"design-handbook/design-writeups/DFC/","title":"Designing for Controllability","text":"A guide on designing mechanisms and power transmissions for controllability. Make your programmer's life easier.
WIP
"},{"location":"design-handbook/design-writeups/bumperMounting/","title":"Bumper Mounting Solutions","text":"A guide on different bumper mounting solutions.
Coming Soon
"},{"location":"design-handbook/design-writeups/chainTensioning/","title":"Chain Tensioning Solutions","text":"A guide on tensioning chain drive mechanisms.
Coming Soon
"},{"location":"design-handbook/design-writeups/springs-shocks/","title":"Springs and Gas Shocks","text":"A guide on springs and gas shocks.
Coming Soon
"},{"location":"design-handbook/mechanisms/arms/","title":"Arms","text":"A guide on arm design.
Coming Soon
"},{"location":"design-handbook/mechanisms/bumpers/","title":"Bumpers","text":"A guide on how to design and build robust bumpers.
Coming Soon
"},{"location":"design-handbook/mechanisms/drivetrains/","title":"Drivebase Fundamentals","text":"A guide on drivebase design.
Coming Soon
"},{"location":"design-handbook/mechanisms/elevators/","title":"Elevators","text":"A guide on elevators design, including different types of rigging, COTS parts, gearboxes, and use cases.
Coming Soon
"},{"location":"design-handbook/mechanisms/intakes/","title":"Intakes","text":"A guide on intake design.
Coming Soon
"},{"location":"design-handbook/mechanisms/linkages/","title":"Linkages","text":"A guide on linkage design.
Coming Soon
"},{"location":"design-handbook/mechanisms/shooters/","title":"Shooters","text":"A guide on shooter design.
Coming Soon
"},{"location":"design-handbook/mechanisms/turrets/","title":"Turrets","text":"A guide on turret design.
Coming Soon
"},{"location":"design-handbook/power-transmission/electronics-sensors/","title":"Electronics, Motors, and Sensors","text":"A guide on how to design space for electronics, an overview of motors, and incorporating sensors to improve the controllability of a robot.
Coming Soon
"},{"location":"design-handbook/power-transmission/linear-extension/","title":"Linear Extension","text":"A guide on linear extension systems such as worm gears and rack and pinion.
Coming Soon
"},{"location":"design-handbook/power-transmission/motion-components/","title":"Motion Components","text":"A guide on bearings, bushings, axles, and the best use cases for them, including the mechanics behind transmission of torque through axles.
Coming Soon
"},{"location":"design-handbook/power-transmission/motors/","title":"Motors","text":"A guide on motors.
Coming Soon
"},{"location":"design-handbook/power-transmission/pneumatics/","title":"Pneumatics","text":"A guide on how and when to use pneumatics.
Coming Soon
"},{"location":"design-handbook/power-transmission/rotation/","title":"Transfer of Rotational Motion","text":"A guide on rotational power transmission components. Includes gears, belts, and chain.
Coming Soon
"},{"location":"design-handbook/power-transmission/wheels-rollers/","title":"Wheels and Rollers","text":"A extensive guide on wheels found in FRC. Discusses their mechanical properties and use cases.
Coming Soon
"},{"location":"design-handbook/structure/3d-printing/","title":"3D Printing","text":"A guide on designing for 3D printing.
Coming Soon
"},{"location":"design-handbook/structure/fasteners/","title":"Fastener Standards","text":"A guide on fasteners and fastener standards common in FRC.
"},{"location":"design-handbook/structure/fasteners/#bolts-and-nuts","title":"Bolts and Nuts","text":"Modern FRC generally uses two different types of imperial bolts, #10-32 and 1/4-20. FRC COTS components primarily utilize 10-32 fasteners, and with a bit of effort, we can make robots that use almost exclusively 10-32 hardware. In general:
- 10-32 is used for almost everything: retaining shafts, screwing into motors, superstructure, etc.
- 1/4-20 is used for structural applications where more strength is required than #10 can provide.
When designing around hardware, it is best to use the hole tool
- 10-32 hardware uses a hole diameter of 0.196 inches for a standard fit
- 1/4-20 hardware uses a hole diameter of 0.257 inches for a standard fit
"},{"location":"design-handbook/structure/fasteners/#tapped-components","title":"Tapped Components","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#bolt-retention","title":"Bolt Retention","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#rivets","title":"Rivets","text":"Coming Soon
"},{"location":"design-handbook/structure/fasteners/#welding","title":"Welding","text":"Coming Soon
"},{"location":"design-handbook/structure/materials/","title":"Materials","text":"An overview of raw materials commonly found on FRC robots.
"},{"location":"design-handbook/structure/materials/#aluminum","title":"Aluminum","text":"Coming Soon
"},{"location":"design-handbook/structure/materials/#polycarbonate","title":"Polycarbonate","text":"Polycarbonate plastic is used in high impact applications such as subsystems that are exposed beyond the robot frame perimeter. Typically 1/4\" thickness is used. 1/8 or 1/16\" polycarbonate can be used for dust covers, sponsor panels, etc - it will almost never shatter and looks great.
Tip
\"Smoked\" or \"tinted\" polycarbonate can provide a more aesthetic look than clear. While making smoked polycarbonate is difficult, making frosted is easy! 30 seconds of sanding with an orbital sander using 240 grit will give the material a nice, glassy finish.
1/8, 3/16, and 1/4 aluminum stock are generally used for gussets and plates that have to be stiffer than plastic could provide. Avoid using use these materials in applications where they will be exposed beyond the robot frame, as they are not as impact-resistant as plastics and can easily bend, or fail catastrophically. 6061-T6 is the most common alloy, but 7075 is sometimes used and has higher yield strength.
Note
Make sure to check your supplier's thickness and tolerance for each material. Sometimes something marketed as in imperial measurements is actually manufactured to fit metric tolerances. For instance: 1/4\" polycarb is actually sometimes manufactured as 6mm, which is 14 thousandths of an inch off of 1/4in. Account for these actual stock measurements when designing to make sure things end up fitting together!
"},{"location":"design-handbook/structure/sheet-metal/","title":"Sheet Metal","text":"A guide on designing for sheet metal.
Coming Soon
"},{"location":"design-handbook/structure/structure/","title":"Structure","text":"A guide on creating robust and versatile robot structures. Covers different materials, techniques, and COTS components.
"},{"location":"design-handbook/structure/structure/#box-tube","title":"Box Tube","text":"Coming Soon
"},{"location":"design-handbook/structure/structure/#tube-plugs","title":"Tube Plugs","text":"Tube plugs are metal inserts that go into the ends of box tube that allow you to fasten tubes together without the use of gussets. Combining tube plugs with crush blocks provides a simple and strong connection between tubes. Tube plugs find a major use in modern elevator designs due to how much they simplify the design process. By not having to worry about bearing blocks interfering with gussets, you massively cut down on design complexity while also cutting part count and robot cost. When bolting tube plugs to the tube you typically dont need to use all 8 available bolts, with 2-4 being acceptable for most use cases.
Note
Tube plugs are made to fit into tubes of 1/8\" wall thickness. For tube with thinner walls you can use a plastic sleeve (possibly 3D-printed) on the outside of the tube plug to fill the gap with no strength loss.
Important
When using tube plugs, well-toleranced holes relative to the end of the tube are required to make a strong connection between the tubes.
"},{"location":"design-handbook/structure/structure/#crush-blocks","title":"Crush Blocks","text":"Crush blocks are common in modern FRC due to how frequently used thin-walled box tubing is. The main purpose of crush blocks is to prevent forces from buckling the thin wall of the tube. This is very easy to do by simply overtightening a bolt on the tube. Thus, crush blocks enable you to tighten the bolts more than you would without having a crush block. This stiffens the connection and the tube as a whole.
Note
Crushblocks can be made of any material, but 3D printing them is by far the simplest method of manufacturing for crush blocks. Just make sure to account for printer tolerances. Crushblocks shouldnt be too loose, but you dont want to have to hammer them in.
Above is the simplest form of a crushblock: a piece of plastic that fills the empty space within the tube with some holes for bolts to go through. For a crush block at the end of a tube, you can include a flange to aide in alignment with the holes in the tube. Crush blocks may not be ideal for use in the middle of long tubes, since they would be hard to install and service; in these places, you can add an extra 1/16\" plate on the outside of the tube to help spread the load of tightened bolts, functionally a large washer. For additional strength, consider increasing the amount of walls to 4-6 when 3D-printing.
"},{"location":"design-handbook/structure/tolerances/","title":"Tolerances","text":"A guide on accounting for tolerances to make your parts fit together properly when they are manufactured in real life.
Coming Soon
"},{"location":"design-handbook/structure/weight-savings/","title":"Weight Savings","text":"A guide on methods to make your parts lighter both with and without pocketing.
Coming Soon
"},{"location":"learning-course/","title":"FRC Design Learning Course","text":""},{"location":"learning-course/#frc-design-learning-course","title":"FRC Design Learning Course","text":"Welcome to the design learning course, the main purpose and content of the website! Keep in mind that it's always a work in progress, so if you find any issues or have difficulty understanding something, please give us feedback!
The purpose of the guide is to take you from zero to being able to model a full robot. You can start at any point you like to if you already have experience with CAD in Onshape, but as the usage and workflow of Onshape for FRC is very different than most CAD softwares, we recommend you go through the full guide to learn the fundamentals so you don't struggle with more complex CAD.
The guide's content focuses on FRC-relevant features and tools, using engaging projects that not only introduce new CAD skills and practice old ones but also introduce engineering concepts. These projects slowly become more open-ended.
Tip
If you already have some experience with CAD in Onshape, you may skip to Stage 1B for your first project and continue from there. It will help you start learning the preferred workflow to design mechanisms in Onshape.
"},{"location":"learning-course/#stage-0","title":"Stage 0","text":" - For people that haven't used CAD or Onshape before
- Introduction to CAD to read or skim
- Walkthrough to set up Onshape account and add necessary tools
- Guide on navigating Onshape
- Basic theory that helps develop a good mindset
"},{"location":"learning-course/#-stage-1-stage1-1a-onshapefundamentals-md-","title":"Stage 1","text":" - Learn the fundamentals of sketching, part design, multi-part modeling, and assemblies through Onshape Learning Courses and FRC-relevant exercises
- Learn about power transmission and modeling gearboxes
- Model a swerve drivebase
- Start learning top-down design workflow for FRC
"},{"location":"learning-course/#stage-2","title":"Stage 2","text":" - Learn about common mechanisms in FRC and model them
- Practice CAD skills until you're significantly more comfortable with Onshape
- Learn engineering concepts and mechanism design
- Learn layout sketches for different mechanisms
"},{"location":"learning-course/#-stage-3-stage3-3a-multidoc-ms-md-","title":"Stage 3 (Under Construction)","text":" - Practice full robot master sketches
- Replicate simple robots
- Practicing top-down workflow and integration
"},{"location":"learning-course/#stage-4-under-construction","title":"Stage 4 (Under Construction)","text":" - Master mechanism design
- Practice integration and workflow
- Master practices that optimize load time and make collaboration easier
- Study game history
- Learn strategic design
- Make more robots and mechanisms and get review and feedback
"},{"location":"learning-course/stage4/","title":"Stage 4: Next Steps","text":"Welcome to stage 4, practically the last stage! In this stage, you'll focus on mastering design fundamentals to the point where they are natural. This means learning how to optimize your CAD to be more parametric, mastering best practices and workflow that makes your CAD faster and more easily collaborated on, and learning more about engineering design and strategic design. There aren't any specific steps or projects in this stage; it's a lot more open-ended, and can be seen more as a \"choose your own adventure\".
-
Work on your own projects and get feedback. This could be mechanisms you don't have practice with, robots for specific games, or just anything you're interested in. Practice your workflow, optimize your CAD to be more parametric, and learn new ways of doing things. Make sure to get design reviews and feedback from team members, mentors, or in the discord server. As you get better, your improvements will be more in speed gains, parametric CAD, and optimizing load times.
Tip
The \"design-review\" forum channel can be posted in to look for feedback with a more determined structure. Feel free to ask for more specific feedback.
-
Examine and learn from examples of robots. Often the most important tool for learning is to look at examples of other robots. \"Steal from the best, invent the rest.\" Most things you'll ever need to design in a typical season have already been done in some form or another, and you can take easy inspiration from other teams while trying to improve it for your application. Open Alliance on ChiefDelphi is a great resource on the design and build process for many teams, and has a lot of public CAD.
-
Learn more engineering design. Refer to the Design Handbook pages and the deep dives in the mechanism examples pages. This includes how to assess potential forces on parts of the robot, pick the right materials, design rigid structures, learn more about what parts are available to FRC teams and how to use them effectively, and at a top level, what goes into designing good mechanisms.
-
Learn strategic design. This means learning how to set priorities and requirements for your robot. This means basing your design off of your game analysis, those priorities, and your team's capabilities. This means learning how to design simply but effectively. This means learning how to structure a build season schedule and tradeoffs based off of your priorities. There are many resources for this, including Karthik's Effective FIRST Strategies presentation, Team 1678's training material, and Team 2910's Pop-Up Presentations. Combine this with good engineering design knowledge and CAD skills and most any team can design and build an effective robot and do very well in competitions.
"},{"location":"learning-course/stage0/0A-introductionToCAD/","title":"0A: Introduction to CAD","text":""},{"location":"learning-course/stage0/0A-introductionToCAD/#what-is-cad","title":"What is CAD?","text":"CAD is an acronym for \"computer-aided design.\" It's a software tool used by engineers, manufacturers, architects, and many more designers in industry to bring their ideas to life.
CAD is used to create a 3D model from various kinds of steps and tools to help prototype, manufacture, and market a product. Files can be sent to a machine to either print or cut material. Drawings can also be made and printed out to assist with manual machining and assembly. We use the CAD software Onshape for this guide and website.
Note
A quick intro to CAD and Onshape is provided in the Introduction to Parametric Feature-Based CAD official learning course, but it doesn't provide much relevant information for FRC.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#why-use-cad","title":"Why Use CAD?","text":"CAD is the intermediary between an idea and a built product. Teams can iterate ideas before prototyping and manufacturing, and it helps cut down on prototyping time. Good CAD efficiency can help a team design a good robot in a timely manner, leaving room for software testing and drive practice.
-
Designing your robot in CAD allows you to make sure everything fits together perfectly. It is frustrating to realize you cut a part too short and need to recut an entirely new piece or when you need to drill random holes throughout your beautifully machined plates.
-
While you may think your team is on the same page and has agreed upon a design, your whiteboard drawings may leave some room for interpretation. When you use CAD to model your design, everyone can see the end result and agree on a design and direction.
-
Team members that were more heavily involved in the design process or ideation may know how the robot should function and how to fabricate it. This can leave them doing the bulk of the work. Using CAD can help those team members explain to other team members what they can to do to help build the robot.
-
Newer team members that have not been involved in a robotics season before may have no idea what components and processes are needed to build a robot. CAD can be a great teaching tool to show those team members what is needed on the robot so they can help with the process too!
-
The worst feeling is when you go to weigh your carefully constructed robot for the first time only to realize that it is 10 pounds overweight! You can measure your robot's size and weight in Onshape so you can make sure that it meets requirements. This gives you the opportunity to make changes before fabrication, such as using a pocketing feature to cut out excess material.
-
CAD works like a digital blueprint and bill of materials of the robot. It allows you to figure out exactly what you need to order and make for the robot, and how it fits together.
-
CAD skills are used in the real world all the time, when designing and testing anything from simple product design to large feats of engineering like planes or cars. Learning CAD with any CAD software can equip you with useful skills you can put on your resume, and it will allow you to learn other CAD software a little easier.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#types-of-cad","title":"Types of CAD","text":"There are many different kinds of CAD, usually designed for specific industries in mind. The kind of CAD an architect might use would be different from the kind of CAD engineers use. The tools required may be different as well.
Engineers mostly use parametric feature-based CAD, which includes programs like Autodesk Inventor and Fusion, SolidWorks, and Onshape. These programs can be designed around different workflows, but usually have similar features. It's important to learn the workflow for a specific program; often, they aren't exactly transferrable.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#other-engineering-cad-software","title":"Other Engineering CAD Software","text":"Although this guide uses Onshape, and the majority of FRC teams use Onshape due to its resources, teams may choose not to use it because of prior student and mentor experience and resources with another software, or a workflow has already been established that works very well for a team with a different software. Onshape is by no means common in the engineering industry, so mentors are more likely to be able to guide a team well using other softwares. Do note that it is very easy to learn Onshape if you have already used a different CAD software before.
"},{"location":"learning-course/stage0/0A-introductionToCAD/#onshape","title":"Onshape","text":"Depending on the circumstances, Onshape may not be the best fit for a team; however, this guide focuses on only Onshape. Much of the design process itself and many of the mechanism fundamentals and glossary still apply, no matter what CAD software you're using. If you choose to use a different software while going through the guide, be aware that the CAD workflow may be different and that you will have significantly less support.
"},{"location":"learning-course/stage0/0B-setup/","title":"B: Onshape Setup","text":""},{"location":"learning-course/stage0/0B-setup/#0b-onshape-setup","title":"0B: Onshape Setup","text":""},{"location":"learning-course/stage0/0B-setup/#registering-for-onshape","title":"Registering for Onshape","text":"Onshape offers a free education license for students to use their software. It is highly recommended to use the education plan, as it allows for the creation of private documents, as well as other useful features.
To start registering, go to the Onshape for Education page and select \"Create EDU ACCOUNT\" or click this link. Follow the slides below to finish registering.
Fill out the details in the sign up form. On the next screen, select that you are a student and that you are in grade school. Finally, fill the form with your school information. You may enter \"Robotics\" as the reason for using Onshape. \u276e \u276f Onshape will proceed to check your information (which may take some time), then send a verification email to activate your account. You'll be asked to set a password, then you'll enter your dashboard.
"},{"location":"learning-course/stage0/0B-setup/#account-setup","title":"Account Setup","text":"The first time you enter Onshape, it will prompt you to set up your account, including the default units and mouse controls used when doing CAD. You can also set a profile picture and a nickname (we recommend keeping this as your real name). Finally, Onshape will run a browser check, to ensure compatibility.
Note
If the browser check fails, you may want to try a different browser. Currently, chromium browsers like Chrome, Edge, Opera, and Arc are the best supported browsers for Onshape, but Firefox usually works with no issues as well. Safari is not well supported.
Chrome Browser Setup If you are using Chrome, an additional setup step may be required.
First, type chrome://settings/
in your searchbar to navigate to chrome settings. Make sure that \"Use graphics acceleration when available\" is enabled. Relaunch chrome if you have updated it to enable it.
Next, go to chrome://flags/
and enable these:
If your team uses Onshape, contact your mentor/design lead for access to the Onshape classroom/team.
"},{"location":"learning-course/stage0/0B-setup/#setting-up-mkcad","title":"Setting up MKCad","text":"MKCad is an Onshape plugin that contains a large library of parts that are often useful in FRC.
To install it, go to the MKCad App in the Onshape Appstore.
Press \"Subscribe\", then \"Get for Free\". This will automatically add MKCad to your Onshape account.
Note
After subscribing, the MKCAD inserter won't show up in already open documents until you reload. This is a first-time thing though.
Video Tutorial Your browser does not support the video tag.
"},{"location":"learning-course/stage0/0B-setup/#featurescripts","title":"Featurescripts","text":"Featurescripts are custom features coded by members of the community, and are often handy tools that assist with the FRC design process. For now, follow the instructions below to install just the featurescripts you'll use in stage 1A. More thorough instructions for installing featurescripts, a list of all recommended featurescripts, and some troubleshooting tips are found on the featurescripts page.
-
Open the document Julia's Featurescripts
-
Click \"Custom Features\"
-
Click \"Belts\", \"Chain Path\", \"Electronics Mounting\", \"Extrude Individual\", \"FilletXpert\", \"Gusset Generator\", \"Shaft\", \"Spacer\", and \"Tube Converter\" (this one is important)
Video Tutorial Your browser does not support the video tag.
Once you have that done, you are ready for the next stage!
"},{"location":"learning-course/stage0/0B-setup/#optional-onshape-educator-plan","title":"OPTIONAL: Onshape Educator Plan","text":"Besides individual setup, if your team uses Onshape or are switching to it, one of your mentors or design leads should get the Educator plan and add all members to a \"classroom\". The Educator plan is free for FIRST teams and will make document management easier. It also provides a suite of features for all students added to the \"classroom\", such as simulation, release management, and classes/assignments.
We recommend you read the ChiefDelphi post linked below for a better overview and walkthrough to set it up for your team.
Onshape Educator Plan: What it Means for FRC Teams
"},{"location":"learning-course/stage0/0C-navigation/","title":"0C: Navigating Onshape","text":""},{"location":"learning-course/stage0/0C-navigation/#documents-page","title":"Documents Page","text":"Documents can be viewed and managed from the documents page. You can sort them with folders and labels. On the sidebar, you can switch between stuff owned by you and stuff owned by a classroom/team/organization, and a public search page which can be used to look through public Onshape files. In the top right corner of the page, you can access the app store, learning center, and account settings.
You can create a document or folder or import CAD files from your computer using the \"Create\" dropdown button on the left.
You can complete the Navigating Onshape Course in the Onshape learning center to learn more about the documents page.
"},{"location":"learning-course/stage0/0C-navigation/#customizing-your-account","title":"Customizing Your Account","text":" - Change default units and precision
- Change email notifications
- Change default view manipulation if you're more familiar with a different CAD software
- Use the subscriptions section to renew your student/educator subscription each year
"},{"location":"learning-course/stage0/0C-navigation/#navigating-documents","title":"Navigating Documents","text":"An Onshape document is not a CAD file, but a container that holds data related to a project, including any number of part studios, assemblies, drawings, and other media/files. It can be versioned and linked to from other documents. There are two main types of environments in a document: part studios and assemblies.
General Document NavigationPart StudiosAssemblies A document has some defined regions that stay generally consistent in both main environments.
- Document Toolbar: You can manage the document, navigate back to documents page (click logo), and view versions and history.
- Toolbar: Changes depending on the environment, but contains all the features you use to perform actions in Onshape. Most of these have keyboard shortcuts (full list in the help menu).
- Tab bar: Organizes different tabs in the document. Can be sorted into folders. Add new folders and tabs to the document by clicking the plus on the bottom left.
- Left Side (Feature/Part/Instance/Mate List): Breaks down how parts/assembly was made.
The space in the middle is called the graphics area. You can interact with the model by selecting entities or rotating the view.
Mouse Controls
Selection
Onshape has persistent selection, which means each left click on a face or entity adds it to a selection group. Clicking an entity again will deselect it, while clicking in the blank space or pressing the spacebar will deselect all entities.
Measurement
To measure lines or distances, select the entities you want to take the measurement of and the numbers will display next to the tape measure in the bottom right of the graphics area. Click the tape measure for more detailed measurements.
One of the main differences between Onshape and other CAD systems is the part studio.
A part studio is an environment where you can design and model one or more parts at a time and add robust relationships between them. You do this using a series of sketches and features. This helps build design intent between multiple parts easily without having to switch between different files.
Part studios provide many different tools for designing, creating, and manipulating parts, most of which you'll learn through Stage 1.
- Dialogue Boxes: Each feature and sketch pops up a dialogue box with options to configure and confirm it
- Toolbars: The main toolbar contains all the tools you'll need to create parts, most of them with a keyboard shortcut for quick usage.
- When editing sketches, the feature tools are replaced with sketch tools to assist in creating 2D geometry.
- Both toolbars have basic geometry creation and geometry alteration tools.
Note
The part studio is for designing the parts, while an assembly is used for putting the parts together and defining motion (this means only model one of each part if there are duplicates and duplicate them in the assembly instead.)
Assemblies are for positioning and establishing movement between parts. The main function for this \"mates\", which establish the degrees of freedom between parts. Parts can move freely in an assembly before their position/movement is defined with mates. The purpose of assemblies in Onshape is the same as in other CAD programs, but the workflow is significantly different.
Info
The assembly workflow will be taught through the learning center and exercises throughout stages 1 and 2.
Using the assembly toolbar, you can:
- Insert parts and subassemblies
- Different kinds of mates (restrict different degrees of freedom)
- Special tools for movement and replication
When using a mate:
- Every part and face generates mate connectors at smart spots
- You can manually create mate connectors in part studios
- Select two separate mate connectors
- Flip or rotate axis to get the part/assembly in the right orientation
- You can offset in a specific axis by distance or angle
"},{"location":"learning-course/stage0/0C-navigation/#other-notes","title":"Other Notes","text":""},{"location":"learning-course/stage0/0C-navigation/#organization-practices","title":"Organization Practices","text":"One of the big reasons Onshape is desirable for FRC is its collaboration capabilities, but that means nothing when nobody can read or work with your CAD. Different subsystem leads will have to collaborate and view other separate subsystems. None of the easy communication and collaboration can be done without good organization and naming practices.
Make it annoyingly clear what sketches and features do what. Name sketches and features, and try to use folders. Sort by parts or groups of parts (e.g. tubes, gussets, bellypan). The instance list in assemblies can also get very messy and slow down your workflow, so keep similar instances in folders. And finally, just make sure to name tabs. This will all make a big difference for the readability of your CAD by other people and yourself.
"},{"location":"learning-course/stage0/0C-navigation/#versions-and-history","title":"Versions and History","text":"Every action by every user is saved in the history, and can be rolled back to or created a version at. When assemblies are linked between documents, documents have to be versioned. This reduces loading times as well, since it's only referencing a single static version and not constantly attempting to update. Versions cannot be deleted, and branches can be created and merged for changes, similar to git.
"},{"location":"learning-course/stage0/0D-theory/","title":"0D: Theory","text":"As you probably know, CAD is a tool used to design parts digitally before they are manufactured. Most of our documentation will focus on FRC-specific CAD practice. However, to get started with Onshape, it\u2019s important to understand some basic theory.
Consider a basic 3D object, such as this cylinder. Every object you design in Onshape starts with a 2D sketch within a window called a part studio. Sketches are used to define a 2D profile, that is then manipulated with features. These features transform the 2D sketch, one change at a time, into a 3D object - by \u201cextruding\u201d or pulling the profile into 3D, revolving it around an axis, or by other methods.
"},{"location":"learning-course/stage0/0D-theory/#starting-with-a-sketch","title":"Starting with a Sketch","text":" If you wanted to create this cylinder in Onshape, we would start by representing its profile in a 2D sketch. So what would this sketch look like for a cylinder? If we take the section from the plane on the top of the cylinder. In Onshape this is called the \u201cTop\u201d plane. We can see that this sketch forms a circle.
Note
We could represent the cylinder in other 2D ways, if we chose a different plane.
"},{"location":"learning-course/stage0/0D-theory/#making-the-leap-to-3d","title":"Making the leap to 3D","text":"While in the sketch, we define the nature of the circle - its position in space and its diameter. When we bring the sketch into 3D, these characteristics are maintained - determining the final diameter and position of the cylinder within the part studio. It is important to completely define the characteristics sketches so that the characteristics of the part being designed are not arbitrary.
But how do we transform this defined sketch into a 3D object? By using features. In this case, an \u201cextrude\u201d feature is used to extend the profile of the sketch into 3D space. Just like how we defined the sketch, we define the characteristics of this extrude. For example, we must specify a \u201cdepth\u201d or final \u201cheight\u201d for the cylinder. This is used to create the final geometry. There are many such settings we must specify when using features.
Additional sketches and features are used to add more complex geometry to parts or to create additional parts within the part studio.
Note
Features can also be used to modify existing geometry e.g. to round or chamfer corners; these don't require sketches.
"},{"location":"learning-course/stage0/0D-theory/#summary","title":"Summary","text":"Congratulations on completing Stage 0D!
Here is a quick summary of the theory behind creating a part in feature-based CAD:
- Create a new sketch within a new part studio
- Define the sketch with constraints
- Transform the sketch into a 3D object with specified features
- Manipulate the part with additional features
- Repeat these steps until the part is complete
Remember: One \u201cpart studio\u201d can have multiple, even many different parts. We won\u2019t focus on it for now, but keep it in mind!
Stage 0 has introduced the idea of CAD and why we use it in FRC, helped you set up an Onshape account, introduced the interface of Onshape, and introduced the fundamental theory of feature-based CAD. Now it's time to move on to Stage 1 where you'll start learning the software and doing exercises, practicing skills relevant to an FRC context. Good luck!
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/","title":"A: Onshape Fundamentals","text":""},{"location":"learning-course/stage1/1A-onshapeFundamentals/#1a-onshape-fundamentals","title":"1A: Onshape Fundamentals","text":"Welcome to Stage 1! Here, you'll engage in a series of Onshape exercises and projects designed to introduce and develop your CAD skills within an FRC context.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#getting-started","title":"Getting Started","text":"In 1A, there are 3 major sections: sketching and part design, multi-part part studios, and assemblies. Each section has a link to a learning course to learn the skills of each topic, then an exercise to help immediately apply those skills in an FRC context.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#learning-courses","title":"Learning Courses","text":"Onshape's Learning Center provides free learning courses and articles covering everything from document navigation and sketching to advanced surface and sheet metal modeling. It's a valuable resource for both novice and seasoned users alike. We use a few selected courses to assist learning the fundamentals of doing CAD in Onshape, but the rest of the curriculum is project based.
The structure of the courses includes some short videos and practice models, expected time is 2-4 hours.
Tip
Additionally, the Onshape Help site is a great resource to use if you are unsure how a specific feature of Onshape works.
Warning
The Onshape learning courses are important as they will teach you the Onshape interface and form a basic foundation for CAD skills. Unless you have prior experience using Onshape, you should not skip the learning courses as the exercises assume that you have an understanding of CAD basics.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#practice-exercises","title":"Practice Exercises","text":"Make a copy of the Stage 1A Exercises Document through the button below. A template for each exercise has been created for you in the exercises document (you do not need to create any new tabs). Each exercise also includes a preview of what the final model should look like in the Reference
file. Solutions are also provided to check your work afterwards.
1A Exercises Document 1A Exercises Solutions
Tip
You can navigate between the tabs by accessing the tab manager or from the bottom navigation bar. Your browser does not support the video tag. Accessing the Tab Manager."},{"location":"learning-course/stage1/1A-onshapeFundamentals/#sketching-and-part-design","title":"Sketching and Part Design","text":"
Sketches and features are the building blocks you will use to create every 3D model in Onshape, so it's good to have a good grasp on the fundamentals.
Complete the following courses:
-
The Introduction to Sketching course runs you through different sketch tools, constraints, and a good sketch workflow.
-
The Part Design Using Part Studios course runs you through creating different parts with a variety of features.
With a good understanding of both of these, you can create almost any part you want to. The following sections are all about integrating design intent into the process and learning how to design a whole project with multiple pieces.
Tip
For future reference without having to go through the learning center, sketch basics, sketch tools, feature basics, and feature tools are all covered in text form in the help center.
DO NOT MOVE PAST THIS POINT UNTIL YOU HAVE COMPLETED THE TWO COURSES ABOVE
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-1-simple-box-tube","title":"Exercise 1: Simple Box Tube","text":"In FRC, robot structures are typically constructed out of aluminum box tubing, similar to wood beams for a house. Aluminum box tubing is commonly found in 2\"x1\", 1\"x1\", and 2\"x2\" sizes with 1/8\" (thickwall) or 1/16\" (thinwall) wall thicknesses. Box tubing is typically referred to by its size, eg: 2x1, 1x1, and 2x2 (Spoken as \"two-by-one\", \"one-by-one\", and \"two-by-two\"). For the rest of the learning-course, we will use this notation when referring to box tube.
Example
Example of 2x1 box tube structure on a robot
For exercise 1, you will be modeling a simple 2x1 with some holes in it. For this exercise, do not use any Featurescripts.
Note
You will see in some slides that the sketch dialogue box has a different name, such as \"Tube Profile\". You can rename sketches and features by hovering over the name in the dialogue box and clicking the pencil icon, or right clicking a sketch or feature in the feature list and clicking \"rename\".
You should name your sketches and features and organize them into folders. This helps enable collaboration and makes working on previous features much faster.
Exercise 1 Instruction Slides
0. The final part. 1. Start by sketching a center rectangle on the top plane. 2. Extrude the rectangle symmetrically, 2\" tall. Your browser does not support the video tag. 3. Shell the block to turn it into a 1/16\" wall tube. Your browser does not support the video tag. 4. Add the top holes. Set the centerpoint of the hole to be vertical with the midpoint of the bottom line, then Mirror the hole across, using the front plane as the mirror line. Your browser does not support the video tag. 5. Add the side holes. Create the layout for the side holes by creating a center point rectangle and turning it into construction geometry. 6. Name the key sketches and part. Set the material to be 6061 Aluminum. \u276e \u276f Notice how we utilized construction geometry to define the location of the holes on the 2\" face of the tube. Using construction geometry to assist with sketching makes your parts more parametric and betters conveys design intent compared to manually specifying the location of each hole with dimensions.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#multi-part-modeling","title":"Multi-Part Modeling","text":"Complete the Multi-Part Part Studios course. It runs you through top-down design principles (EXTREMELY important in FRC), sketching for multiple parts (master sketches), and some more practical skills for working with multiple parts in a part studio.
As introduced in the learning course, Onshape is a software focused on multi-body modeling and top-down design. In FRC, this usually means one master sketch and one part studio per subsystem. Check out this page to learn more about best practices for sub-documents. The following practice exercises will help you reinforce these concepts.
Example
Notice how there's one instance of each unique part within this part studio. The part studio also resembles the completed product, as the parts are modeled relative to each other. Example of a part studio
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-2-box-tube-and-gusset-joint","title":"Exercise 2: Box Tube and Gusset Joint","text":"For this exercise, you will design two tubes and a part called a \"gusset\". A gusset is the flat part that connects the two tubes. This gusset will be created in the same part studio as the tubes that it is connecting!
Example
Example of a gusset
You will utilize the Extrude Individual
and Tube Converter
Featurescripts for this exercise. Do not use the Gusset
Featurescript for this exercise.
The Extrude individual
Featurescript enables you to extrude sketch regions without merging them. In this exercise, if you were to extrude the sketch of the tubes with the standard Extrude
tool, only a single part would generate.
The Tube Converter
Featurescript condenses the steps of shelling, sketching and dimensioning holes, and extruding holes into a single, customizable feature to easily model tubes.
Tip
When extruding a sketch in a part studio, you can decide whether to Add
to existing geometry, or to create New
geometry. New
creates a new body, whereas Add
will merge the feature with existing parts. Make sure that when you extrude your gusset, you tell Onshape to create a new part. The different options for extruding
Exercise 2 Instruction Slides
0. The finished parts. 1. Start by sketching the tubes on the right plane. 2. Use the Extrude Individual
Featurescript to extrude the blocks. 3. Use Tube Converter
Featurescript to turn the blocks into 1/16\" wall tubes with a 0.5\" spacing pattern of 0.196\" holes. 4. Draw a triangle with construction geometry for the gusset. 5. Dimension the triangle to be 0.5\" away from the edges of the tube. 6. Use the Offset Entities
tool to offset the construction geometry 0.25\". This will be the outline of the gusset. 7. Use the Sketch Fillet
tool to add a 0.25\" fillet to the three corners of the gusset. 8. Delete the three points left over from the fillet. 9. Use the Use (Project/Convert)
tool to project the tube holes onto the gusset sketch. 10. Extrude the gusset to be 1/8\" thick. Select New
as the extrude type to make the extrude a new part. 11. Name the key sketches and parts. Set the material to be 6061 Aluminum. \u276e \u276f In this exercise, you can begin to see the power of Featurescripts. What would have been a number of sketches, extrudes, and shells to create the tubes is packaged into a single, easy to use custom feature.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#assemblies","title":"Assemblies","text":"Assembling is the basic function of defining the position and motion of parts in an assembly.
The Onshape Assemblies course introduces assemblies, mating parts together, and other useful assembly concepts.
As was introduced in the Onshape learning tutorials, when parts are inserted into an assembly, they free float. We can utilize a number of different assembly tools to constrain the motion of all the parts:
Group
: Restricts the relative motion between a group of parts Fix
: Locks a part in place within the assembly (not recommended as it's not parametric) Mates
: Tools to constrain the degrees of freedom between parts using \"mate connectors.\" These connectors are automatically generated or manually created coordinate systems on parts. You can align the axes and apply offsets in any direction or rotation. Different mates constrain different degrees of freedom. Here are three commonly used mates: Fasten
: Prevents any movement between two mate connectors, such as a bolt in a hole Revolute
: Allows rotational movement about the z-axis between two mate connectors (e.g. an arm pivot) Slider
: Enables linear movement along the z-axis between two mate connectors (e.g. an elevator)
Example
Your browser does not support the video tag. Example of a fasten mate.
The best practices for constraining an assembly, along with other assembly tools like replicate, pattern, and standard content, will be learned through projects and described in more detail in later stages. They are also outlined in the assembly best practices page.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-3-box-tube-frame","title":"Exercise 3: Box Tube Frame","text":"For this exercise, you will create a simple frame and two gussets. Then, you will create an assembly and mate together all the components.
You will utilize the Extrude Individual
, Tube Converter
, and Gusset
Featurescripts for this exercise.
The Gusset
Featurescript is an easy way to create gussets by selecting the locations of the holes the gusset should attach to.
Exercise 3 Instruction Slides
0. Final assembly. 1. Start by sketching the tubes on the right plane. 2. Use the Extrude Individual
Featurescript to extrude the blocks. 3. Use Tube Converter
Featurescript to turn the blocks into 1/16\" wall tubes with a 0.5\" spacing pattern of 0.196\" holes. 4. Use the Gusset
tool to create the top gusset by selecting the holes on the tube. 5. Use the Gusset
tool to create the bottom gusset by selecting the holes on the tube. 6. Name the key sketches and parts. The materials will have already been set to 6061 Aluminum from the Featurescripts. Your browser does not support the video tag. 7. Insert the parts into the assembly by directly clicking on the green checkmark. Then, Group
all the parts together. Finally, fix
the bottom tube in place. Your browser does not support the video tag. 8. Copy and paste the gussets four times. Then, use the Fasten
mate to attach the gussets to the tube. Your browser does not support the video tag. 9. Some gussets may need to have their Fasten
mate reoriented in order to properly line up. 10. Finished assembly. \u276e \u276f In this exercise, you were introduced to yet another highly useful Featurescript for creating gussets. Additionally, notice that we only model 1 of each type of gusset in the part studio. For the tubes, we choose to model all of the tubes even though the two vertical tubes are the same - this is to make assembly more parametric since the tube would otherwise be difficult to mate.
It should be noted that while fixing the tube is not considered an assembly best practice for setting the origin of an assembly, it is sufficient for the purposes of these exercises.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#exercise-4-climber-hook","title":"Exercise 4: Climber Hook","text":"As you get more comfortable with modeling, we can begin to draw more complex parts. For this exercise, you will create a climber hook and tube. Then, you will create the assembly and mate together the components.
You will utilize the Spacer
Featurescript for this exercise.
Exercise 4 Instruction Slides
0. Final assembly. 1. Start by sketching the tube on the right plane. 2. Use the Tube
Featurescript to create a thin-wall 1\"x1\" tube with no holes. 3. Draw the climber hook sketch. The construction geometry circle represents the bar on which the hook will grab onto. The hole on the far right would be to attach a rope to pull the hook with. Pay attention to the sketch constraints used. Your browser does not support the video tag. 4. Use the Linear Pattern
sketch tool to pattern the mounting holes. 5. Make the hook 3/16\" thick. Select New
as the extrude type to make the extrude a new part. 6. Fillet the bottom two corners with a 0.25\" radius. Your browser does not support the video tag. 7. Use the Spacer
Featurescript to add a 0.5\" diameter spacer. Use the `Up to Face` end condition to make the spacer match the tube width. 8. Use the Use
sketch tool to add the mounting holes to the tube. 9. Name the key sketches and parts. Set the material of the hook and spacer to 6061 Aluminum. 10. Finished assembly. \u276e \u276f In this exercise, you practiced more advanced sketching and were introduced to the Spacer
Featurescript.
"},{"location":"learning-course/stage1/1A-onshapeFundamentals/#summary","title":"Summary","text":"Congratulations on completing Stage 1A! Remember, practice is essential \u2013 the more CAD models you create, the more proficient and efficient you'll become. Using keyboard shortcuts can significantly accelerate your CAD workflow. Be attentive to best practices to avoid developing any bad habits. Keep up the good work!
Here is a quick summary of what you have achieved in 1A:
- Learned how to use the OnShape interface and basic sketching and modeling features with the OnShape Learning Center courses
- Learned how to model basic FRC structures
- Learned how to use the
Gusset
, Extrude Individual
, Tube Converter
, and Spacer
Featurescripts - Learned how to assemble basic models using
Group
and Fasten
In stage 1B, you will be introduced to power transmissions, which enable your robot to move and score.
"},{"location":"learning-course/stage1/1B-powerTransmissions/","title":"B: Power Transmissions","text":""},{"location":"learning-course/stage1/1B-powerTransmissions/#1b-power-transmissions","title":"1B: Power Transmissions","text":""},{"location":"learning-course/stage1/1B-powerTransmissions/#introduction","title":"Introduction","text":"So far the models you have created are all structural components, but this is only half of what makes up a robot. In order to make our robots move and score, motors that generate rotational motion are typically utilized. In Stage 1B, you'll be introduced to modeling basic power transmissions. Power transmissions include the motors, bearings, shafts, gears, belts, and chains that are used to transform rotational motion from a motor to do just about anything.
In this stage, you'll focus on the fundamentals of power transmissions, with an emphasis on how to model them in CAD. The process of selecting motors and calculating power transmission ratios will be explored later in Stage 2 of the guide with multiple different mechanisms.
Example
Below are some examples of power transmissions found in robots to achieve a range of different tasks.
Power Transmission Examples
Belt and gear power transmission to spin intake rollers.
Gear and chain power transmission to pivot the intake.
Belt and gear power transmission to spin shooter wheels.
Gear and chain power transmission to rotate a small arm.
Gear and chain power transmission to rotate a large arm.
\u276e \u276f
In this stage, there are exercises designed to practice modeling simple power transmissions in the form of stand alone gearboxes. In stage 2, you will begin to model power transmissions integrated within mechanisms.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#motors","title":"Motors","text":"Motors spin! They transform electrical energy supplied by the robot battery into rotational motion. From intaking to climbing to driving, just about anything on your robot can be moved with the right motor(s).
Some of the motors available for use in FRC.
In FRC, a number of different motor options are available, all with different advantages and use cases. The most common type of motor found in modern FRC is the \"CIM class\" motor. This includes the CIM, Mini-CIM, Vexpro Falcon 500, WCP Kraken x60, Rev NEO, and Rev Vortex. While each of the CIM class motors have different speeds and power, they have two traits in common for modeling:
- The motors' outer diameters can be represented with a 2.5\" diameter circle (some are slightly smaller at 60mm/2.362\").
- The motors have anywhere from 2 to 11 holes for mounting, but all are on a 2\" diameter bolt circle (See below image). The holes are #10-32 threaded, as #10-32 is the hardware standard for FRC COTS parts.
Mounting holes for CIM class motors are on a 2\" diameter bolt circle. All of the holes are 1\" away from the center of the motor. All of the exercises for this stage will use CIM class motors.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#shafts-and-bearings","title":"Shafts and Bearings","text":"Shafts transmit rotational power along an axis, with hex shafts being the most common in FRC. These hexagonal shafts, typically in 1/2\" and 3/8\" diameters (measured from flat to flat), may sometimes have rounded corners, known as \"rounded hex\" or \"Thunderhex.\"
Bearings allow shafts to spin independently of plates and/or things to spin independently of shafts. Standard hex shafts use 1/2\" hex bearings, while rounded hex shafts can use round bearings for easier assembly.
A spinning shaft in bearing
Tip
The easiest way to model shafts is to use the Shaft
Featurescript. For bearings, insert your desired bearing from the MKCad app.
A rounded 1/2\" hex bearing (Left) and 1/2\" rounded hex shaft (Right). (Image Source: WCP)
"},{"location":"learning-course/stage1/1B-powerTransmissions/#torque-and-speed","title":"Torque and Speed","text":"When designing power transmissions, there are two interlinked quantities that we are trying to modify: torque and speed. Torque refers to the rotational force applied to an object, while speed denotes how quickly that object rotates. In FRC, the unit used for speed is typically Rotations Per Minute (RPM). The units used for torque is typically Newton-Meters (Nm).
Note
Speed and torque are inversely related in mechanical systems. This means that as one increases, the other decreases, and vice versa. For example, if speed is decreased by 4x, torque is increased by 4x. This is because of the principle of conservation of energy: the output energy is the same as the input energy (ignoring losses like friction), so if speed is reduced through mechanical means, torque must increase.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#mechanical-advantage","title":"Mechanical Advantage","text":"Many mechanical systems use the principle of the conservation of energy to convert energy from one form to another to produce either larger forces or faster speeds. Mechanical advantage is the ratio of output force to input force in a system, whether it's a lever, screw, gears, or pulley, mechanical advantage is used to quantify how the force changes.
The ratio between the number of teeth of the input and output gear/sprocket/pulley system represents the mechanical advantage of that system. This is also called the gear ratio, and is the key to understanding how to achieve a needed torque or speed from the specified torque and speed of a given motor.
Gear ratio is typically written in the form n1:n2
. Since torque and speed are interlinked quantities, the ratio can be understood from the perspective of torque or speed. From the perspective of torque, n1
is the output torque for n2
input torque. From the perspective of speed, n1
is the speed of the input for n2
speed of the output.
Example
A system has a gear ratio of 4:1. This means the output torque is 4x the input torque and that the output speed is 1/4 the input speed.
For a single stage transmission (only two transmission components), n1
is the size of the driven component for n2
size of the driving component.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#ratio-applications","title":"Ratio Applications","text":"An arm mechanism needs very low RPM but a lot of torque to control efficiently, so a large reduction of speed might be used to increase torque. This depends on the weight and length of the arm, but can be 30:1 up to even 200:1.
Shooter wheels or intake rollers often have little to no reduction, and in some cases may even need to go faster than the motor's free speed. In this case, an upduction can be be used to increase the speed, but the output torque gets lower as a consequence. Upductions typically don't get much higher than 1:2 due to the available motors already having a high speed, low torque output. A 1:2 upduction would double the speed and halve the torque of the input.
Tip
For situations that require higher speed and higher torque than what a single motor can provide, add more motors.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#power-transmissions","title":"Power Transmissions","text":"In FRC, the three most common types of power transmissions are gears, chain and sprocket, and belt and pulley. Although they all achieve the same end result of changing speed and torque, they each excel in different situations. In the following sections you'll be introduced to each of them and how to model them.
Note
Gears, sprockets, and pulleys all follow profile standards that specify how big the teeth are. This means that the ratio between the number of teeth and diameter of the part is a constant. There are different profile standards, but only parts of the same profile can be meshed or used together.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#gear-basics","title":"Gear Basics","text":"Gears are mechanical devices with teeth that mesh with each other to transmit motion or power between rotating shafts. They're like wheels with teeth that fit together, allowing them to transfer torque, change speed, and change direction of rotation.
A simple animation of two gears meshing. Notice that meshed gears will spin in opposite directions.
In order to change the torque and speed from the input to output, different sized gears must be used. Remember that the ratio is related to the number of teeth of the gears. Teeth will always mesh together one by one, but the number of teeth per revolution is different for different sized gears, causing a difference in angular speed even if the surface speed of the gear is the same.
Changing Speed and Torque with Gears
1. A 12T gear drives an 84T gear. The gear ratio is 84:12, which can be simplified to 7:1. The torque is increased by 7x while the speed is reduced to 1/7 of the original speed. (Image source: WCP) 2. A 48T gear drives an 24T gear. The gear ratio is 24:48, which can be simplified to 1:2. The torque is reduced to 1/2 of the original torque while the speed is increased by 2x. (Image source: WCP) 3. If the same size gears are used, there is no change in speed and torque. However, the direction of the rotation is flipped if there is an even number of gears from input to output. If there is an odd number of gears, the direction remains the same. (Image source: WCP) \u276e \u276f Center to Center Calculation
To calculate how far apart to space the gears, you can use the following formula to calculate the center-to-center distance:
CC = 0.5*PD1 + 0.5*PD2
Where PD1
and PD2
are the Pitch Diameters of the two gears. The Pitch Diameter (PD) is the size of the imaginary circle that passes through the center of the gear teeth. The pitch diameters of two gears should be tangent in order for the gears to properly mesh. The equation for PD is as follows:
PD = (# of teeth) / DP
Where DP stands for diametral pitch. For now, you can assume it to always be 20. If you're curious, you can learn more about this in the Design Handbook pages.
Illustration of a gear's pitch diameter and outer diameter. (Image source: WCP).
Modeling Gear Transmissions
When modeling, an easy way to set the center-to-center distance between two gears is to draw two circles sized to the gears' pitch diameters and then set two circles to be tangent to each other. For example, if you need to mesh a 20T gear and a 60T gear, you can draw a 20/20 = 1\"
and a 60/20 = 3\"
circle and add a tangent constraint between the two circles. The reason we enter the full expression is so that we can easily see what the circle represents (a gear, sprocket, or pulley, and how many teeth it has).
Modeling gear C-C distance by constraining two pitch diameter construction circles tangent. The diameters of the circle are calculated by dividing the tooth count by DP, which is 20 in this case. It's recommended to input the pitch diameter fraction (Eg: (60/20)\"
) rather than the calculated pitch diameter (Eg: Only inputting 3\"
as the dimension) so that you can see the tooth count of the designed gear in the sketch.
Tip
You can show the expression that a dimension was evaluated from by checking the Show Expression
checkbox on the sketch menu. The result will look like the previous image, which allowed you to easily see that the two gears were a 20T and 60T gear, both 20 DP.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#practice-exercises","title":"Practice Exercises","text":"Make a copy of the Stage 1B Exercises Document through the button below. A template for each exercise has been created for you in the exercises document (you do not need to create any new tabs).
1B Exercises Document 1B Exercise Solutions
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-1-simple-gearbox","title":"Exercise 1: Simple Gearbox","text":"In this exercise, you will be CADing and assembling a simple single stage gearbox.
The goal of this exercise is to introduce how to model a very simple gear transmission. Additionally, you will learn how to use the the Shaft
Featurescript, Replicate
tool, MKCad parts library, and part configurations.
Note
Exercise 1 adds hardware (bolts and nuts) to the CAD models. You can read more about hardware standards on the Design Handbook page.
Tip
To lock mate inferences when you see the one you want to select, hold the Shift
key when mousing. This is particularly useful for mating the motor pinion gear. Your browser does not support the video tag. Using Shift key to lock mate inferences while mating.
Exercise 1 Instruction Slides
0. Final assembly. 1. Begin by creating the layout sketch for the gearbox. Draw the pitch circles for the 60T and 12T gears. Set the pitch circles tangent to constrain the center-to-center distance between the gears. Constrain the centers of the two gears to be vertical. 2. Add the outline of the motor, a 2.5\" diameter circle, around the 12T gear that the motor is attached to. The layout sketch is now finished. 3. Create a new sketch for the motor plate. Using the layout as the reference, draw a 1.125\" hole for the bearing and a 0.8\" hole for the motor boss (the nub that sticks out from the motor). Note that depending on your manufacturing processes and tolerances, you may need to draw your bearing holes slightly larger or smaller than nominal (1.125\"). 4. Add two mounting holes for the motor. A good practice to constrain the holes is to draw and dimension a bolt circle, then draw the holes for the bolts on the bolt circle. This constrains the distance of the holes from the center of the motor with a single dimension. The bolt circle for the motor we are using is 2\". 5. Add the four bolt holes for connecting the two plates. Use a center rectangle to create the construction geometry so that only two dimensions are required to constrain the holes. 6. Using centerpoint arcs, lines, and the sketch mirror tool, draw the outline for the plate around the holes and motor outline. 7. Extrude the motor plate to be 1/4\" thick. 8. Use the Spacer
Featurescript to add a round 3/8\" diameter, 5/8\" long spacer. 9. Create the outer plate sketch on the face of the spacer. Use the Use
sketch tool to copy the geometry and holes of the motor plate, but add a round cutout at the top. 10. Extrude the outer plate to be 1/4\" thick. Your browser does not support the video tag. 11. Use the Shaft
Featurescript to model the output shaft. Follow the settings used. You can learn more about the shaft retention property on the Design Handbook page. 12. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. The shaft has its material automatically determined from the Shaft
Featurescript. Your browser does not support the video tag. 13. Insert the part studio into the assembly and fix the gearbox plate. Group mate the two plates together and then mate the spacer to the motor plate. Then, use the Replicate
tool to replicate the spacer and its associated mate onto the other spacer locations. Your browser does not support the video tag. 14. Assemble the bearings and shaft using parts from the MKCad App. Your browser does not support the video tag. 15. Assemble the motor and motor pinion gear using parts from the MKCad App. Your browser does not support the video tag. 16. Assemble the shaft spacer and gear using parts from the MKCad App. Configurable parts will have a blue grid icon in the instance list. Notice how you were able to change the tooth count of the gear from 40T to 60T after mating it. Using configurable components like this makes your models more parametric since you can change the component without needing to re-insert and mate. Your browser does not support the video tag. 17. Assemble the shaft retention bolts using the MKCad app parts. Your browser does not support the video tag. 18. Assemble the motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts. When inserting Onshape Standard Content, you can use the snap mode to automatically add the mates when inserting or insert the component and then manually mate it. 19. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise you made your first gearbox. In doing so, you also used part configurations - a powerful tool that allows for variations of the same part. The gears that you inserted from MKCad were configurable - you were able to easily change the tooth count of the gear without needing to inserting a new component.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-2-two-stage-gearbox","title":"Exercise 2: Two Stage Gearbox","text":"In this exercise, you will be CADing and assembling a two stage gearbox. Practice exercise solutions can be found here.
The goal of this exercise is to practice modeling more advanced gearboxes. You will also learn how to use the Vent
Featurescript used for pocketing.
Exercise 2 Instruction Slides
0. Final assembly. 1a. Create the layout sketch for the gearbox. Start by drawing the 2nd stage, which is a 20T gear to a 50T gear. 1b. Draw the first stage, which is a 12T motor pinion gear to a 50T gear. 1c. Draw the outline of the motors as a 2.5\" diameter circle. This is the finished layout sketch for the gearbox. 2. Create a new sketch to draw the profile of the plate. Add the bearing holes, which are 1.125\" diameter holes, as well as the motor boss holes, which are 0.8\". Also add the motor mounting holes. You can utilize the Mirror
sketch tool to mirror the geometry from the left side to the right side. 3. Extrude the plate to be 1/4\" thick. 4. Use the Spacer
Featurescript to create the gearbox spacer. Your browser does not support the video tag. 5. Use the Shaft
Featurescript to create the first stage shaft. 6. Use the Shaft
Featurescript to create the output shaft. 7. Create a sketch on the face of the plate and draw the lines for the pocketing ribs. Your browser does not support the video tag. 8. Use the Vent
Featurescript to pocket the plate by selecting the sketch regions created by the previous sketch. 9. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. Your browser does not support the video tag. 10. Insert the part studio into the assembly and fix only the gearbox plate. Mate the spacer to the plate. Then, use the Replicate
tool to replicate the spacer and its associated mate onto the other spacer locations. 11. Copy the gearbox plate and mate it into place. Your browser does not support the video tag. 12. Assemble the bearings and shafts using parts from the MKCad App. Your browser does not support the video tag. 13. Assemble the motor and motor pinion gear using parts from the MKCad App. Your browser does not support the video tag. 14. Assemble the shaft spacers and gears using parts from the MKCad App. Your browser does not support the video tag. 15. Assemble the shaft retention bolts, motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts. 15. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise, you practiced more complex gearbox modeling and mating together larger assemblies.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#belts-and-pulley-basics","title":"Belts and Pulley Basics","text":"Timing belt and pulley drives are mechanical systems used to transmit motion and power between rotating shafts using flexible belts and pulleys. The system consists of two main components: the belt, which is a flexible loop made of a material like rubber, and the pulleys, which are wheels with grooves that the belt wraps around. As one pulley rotates, it drives the belt, which in turn drives the other pulley, transferring motion and power from one shaft to another
A belt and pulley transmission. (Image Source: ReCalc)
In order to change the torque and speed from the input to the output, different sized pulleys must be used. The mechanical advantage for belt transmissions, similar to gears, is based on the ratio between the number of teeth of the output pulley to the number of teeth of the input pulley. Note that unlike gears, pulleys will spin in the same direction.
Types of Belt
Like gears, belts also have a pitch. The pitch is defined as the distance between each tooth on the belt. In FRC, this is typically 5 mm. To calculate the pitch diameter of a pulley, the following equation can be used:
PD = Pitch * (# of Teeth) / 3.14
Belts also come in various widths. In FRC, you will typically use either 9 mm or 15 mm wide belts.
Center to Center Calculation
To calculate the center-to-center distance of the pulleys, it is recommended to use an online calculator, such as ReCalc. In the calculator, you can set the belt pitch, desired center distance, and the number of teeth on each pulley to get the closest integer belt size (belt tooth counts must be whole numbers) and corresponding center to center distance.
Note
In order to capture design intent, it should be clear where dimensions are derived from. Simply copy pasting the calculated center to center distance from ReCalc into the sketch does not convey any information about the belt.
Thus, to capture the design intent, you wil use the FRC functions functionality of the Origin Cube
Featurescript, which will allow you to calculate belt and chain center to center distances directly inside sketches. The Origin Cube also has additional functionality for robot and mechanism assemblies that will be discussed in Stage 1C. The Origin Cube feature will be the first feature in all part studios from here on out.
Modeling Belt Transmissions
When modeling, you should draw the pitch diameter of the two pulleys and the centerline then connect the pulley circles with tangent lines to represent the belt. A 3D model of the belt can be generated using the Belt Gen
Featurescript.
You will utilize use the following functions from the Origin Cube
Featurescript FRC functions:
-
#PulleyPD_5mm(n)
: Calculates the pitch diameter of a 5 mm pitch pulley with n
teeth.
- Ex:
#PulleyPD_5mm(18)
returns the pitch diameter of an 18T 5mm pitch pulley.
-
#BeltCTC_5mm(n1, n2, n3)
: Calculates the c-c distance of a n1
tooth 5 mm pitch belt connecting pulleys with tooth count n2
and pulley with tooth count n3
.
- Ex:
#BeltCTC_5mm(80,18,36)
returns the center distance for an 80T 5 mm pitch belt connecting an 18T pulley to a 36T pulley.
1. Use ReCalc to find the closest belt size to the desired C-C distance. Set the pitch diameter and select the closest smaller or larger belt, whichever fits your design better. In this example, we choose 80T. 2. Insert the Origin Cube
feature using the Origin Cube
Featurescript. For the exercises in 1B we do not require the cube generated by the feature so we will uncheck it. Your browser does not support the video tag. 3. Draw two circles to represent pulley pitch diameters. Set the diameters using the #PulleyPD_5mm(# of teeth)
function. Draw the center line to connect the pulleys and set the c-c distance using the belt size calculated from ReCalc and the #BeltCTC_5mm(# belt teeth, # pulley 1 teeth, # pulley 2 teeth)
function. Finally, connect the circles with tangent lines. 4. Finished layout sketch. Checking the Show Expressions
box enables you to see the designed belt pitch, pulley tooth counts, and belt tooth count. Your browser does not support the video tag. 5. Use the Belt Gen
Featurescript to generate a 3D model of the belt. \u276e \u276f "},{"location":"learning-course/stage1/1B-powerTransmissions/#chain-and-sprocket-basics","title":"Chain and Sprocket Basics","text":"Roller chain and sprocket drives are very similar to belt and pulley transmissions. They consist of two main components: a chain, which is a series of interconnected links, and sprockets, which are toothed wheels that mesh with the chain. As the sprockets rotate, they engage with the chain, causing it to move and transmit power from one shaft to another. Bikes are an everyday object that use chain to transmit power. Chains excel at transmitting high force over long distances.
A simple animation of chain and sprocket. Notice that the sprockets will spin in the same direction.
In order to change the torque and speed from the input to the output, different sized sprockets must be used. The mechanical advantage for chain transmissions, similar to gears and pulleys, is based on the ratio between the number of teeth of the output sprocket to the number of teeth of the input sprocket. Similar to pulleys, the sprockets will spin in the same direction.
Types of Chain
The two commonly used sizes of roller chain in FRC is #25 and #35 chain, with 0.25\" and 0.375\" pitch respectively. For chain, the pitch is the length of each link. To calculate the pitch diameter, the following equation can be used:
PD = Pitch / sin [180\u00b0/# of teeth]
Additionally, the chain clearance diameter describes the diameter of the sprocket with the chain wrapped around it. The following equation can be used:
Clearance Diameter = PD + Pitch
Below is an illustration of the pitch, pitch diameter, outside diameter, and chain clearance diameter of a sprocket.
Illustration of chain sprocket diameter measures. (Image source: WCP)
In FRC, #25 chain is most commonly used as it is strong yet relatively lightweight. #35 is sometimes used on very high torque transmissions, but it is heavy and bulky.
Center to Center Calculation
Calculating sprocket center-to-center is very similar to pulley center-to-centers. To calculate the center-to-center distance of the sprockets, it is recommended to use an online calculator, such as ReCalc. In the calculator, you can set the chain size, desired center distance, and the number of teeth on each sprocket to get the required center distance.
When modeling, you should draw the pitch diameter of the two sprockets and the centerline then connect the sprocket circles with tangent lines to represent the chain links. A 3D model of the chain can be generated using the Chain Gen
Featurescript. The modeling workflow is exactly the same as belt and pulley.
You will utilize use the following functions from the Origin Cube
Featurescript FRC functions:
-
#SprocketPD_25(n)
: Calculates the pitch diameter of a #25 pitch sprocket with n
teeth.
- Ex:
#SprocketPD_25(16)
returns the pitch diameter of an 16T #25 pitch sprocket.
-
#ChainCTC_25(n1, n2, n3)
: Calculates the c-c distance of a n1
link #25 pitch chain connecting sprocket with tooth count n2
and sprocket with tooth count n3
.
- Ex:
#ChainCTC_25(80,16,48)
returns the center distance for an 80 link #25 pitch chain connecting a 16T sprocket to a 48T sprocket.
Modeling Chain Transmissions
1. Use ReCalc to find the closest C-C size to the desired C-C distance. Set the pitch diameter and select the closest smaller or larger chain link count, whichever fits your design better. 2. Draw two circles to represent sprocket pitch diameters and connect them with tangent lines. Set the pitch diameters and center distance with FRC Functions from the Origin Cube
. Your browser does not support the video tag. 3. Use the Chain Gen
Featurescript to generate a simplified 3D model of the chain. While you can also generate a full detail model of the chain, it is very laggy. \u276e \u276f Chain Tensioners
One difficulty when designing with chain is that it will physically stretch as it is used. This means the distance between each link will slightly increase, making the overall chain longer in a non-insignificant way. Loose chain can be difficult to fix if the chain transmission is not designed with chain tensioning in mind. Although you will not be learning about chain tensioning methods quite yet, you should keep this idea in the back of your mind. In Stage 2, different chain tensioning methods are introduced in the context of different types of robot mechanisms. The Design Handbook page also dives deeper into this topic.
Example
A \"turnbuckle\" chain tensioner. The turnbuckle acts as a variable-length link in the chain that can be adjusted to keep the chain tight. (Photo Credit: FRC 1538)
"},{"location":"learning-course/stage1/1B-powerTransmissions/#exercise-3-belt-and-gear-transmission","title":"Exercise 3: Belt and Gear Transmission","text":"In this exercise, you will be modeling a two stage gearbox that uses gears and belts. This gearbox will also include elements like frame and gussets, which you previously learned in Stage 1A.
The goal of this exercise is to continue to ramp up your modeling skills. Always make sure to fully define your sketches and keep your feature and instance trees organized.
Exercise 3 Part Studio Instruction Slides
0. Final part studio. 1. Draw the tube profiles for the frame. There is a an 1/8\" gap between the slanted tube and the vertical tube to allow for assembly tolerances. 2. Use the Extrude Individual
Featurescript to extrude the tube profiles. 3. Use the Tube Converter
Featurescript to convert the rectangles into hole patterned 1x1 thin-wall tube (1/16\" thick wall). 4. Use the Gusset
Featurescript to add a corner gusset between the lower two tubes. 5. Create the gearbox layout sketch on the outer face of the bottom tube. Begin by drawing the two gears, a 60T and 20T gear. The 60T gear is the output, and we would like to constrain it to a specific location given by the 2\" and 4.5\" dimensions. 6. Next, draw the 5mm pitch 12T and 36T pulleys. Use a line to connect the two pulleys. Use the #PulleyPD_5mm()
function to calculate the pitch diameters of the pulleys. Also space the 36T pulley to be 0.25\" from the vertical tube. This step fully constrains the location of the gears. 7. Use a belt c-c calculator (eg: reca.lc) to calculate the pulley c-c. In this example, we know we have a 60T belt on hand, so we would like to use that specific belt in the design. The belt we are using is 5mm pitch. 8. Add the belt c-c to the layout sketch using the #BeltCTC_5mm()
function. 9. Optionally draw two tangent lines to connect the two pulley circles. This represents the belt. 10. Finally, sketch a 2.5\" circle for the motor. Space the motor to be 1/8\" away from the slanted tube. The layout sketch is now fully defined. 11. Create the plate sketch on the outer face of the bottom tube. Begin by drawing the two 1.125\" diameter bearing holes. Add a 0.95\" for the bearing boss instead of the standard 0.8\" so that the 12T pulley on the motor can fit through the hole to assist with real life assembly. This will become more clear when you create the gearbox assembly. 12. Add a 2\" bolt circle for the motor with a circular pattern. Constrain the center of the top left hole to be coincident with the center line between the pulleys (coincident uses an infinite extension of the line) 13. Add the tube mounting holes for the plate. Note that the holes reference the edges of the tube and not the holes on the tube. This is to make the model more parametric, as changes in the tube can change the locations of the holes and break the gearbox plate sketch. 14. Draw the outline for the plate. Space the bottom of the plate 0.25\" from the edge of the pitch circle for the 60T gear. 15. Add two holes for spacers. The construction circles represent the 3/8\" diameter spacer. The top hole is tangent with the left edge of the plate and tangent with the 2.5\" motor circle. 16. Extrude the plate to be 1/4\" thick. 17. On the opposite side, create a sketch for the inner plate. Utilize the Use
sketch feature to copy over common geometry (holes, outline). Do not copy the motor holes, as there will be a cutout on the inner plate for the body of the motor. 18. Finish the outline of the plate by adding an arc for the motor cutout. 19. Extrude the inner plate to be 1/4\" thick. 20. Add a 3/16\" radius fillet on the two edges for the motor cutout. The radius is selected to match the 3/8\" diameter spacer. 21. Model the 3/8\" diameter spacer. The Up to Face
end condition can be utilized to keep the spacer length parametric. 22. Use the Belt Gen
Featurescript to create a model of the belt. The pitch of the belt is 5mm and the width is 9mm. Notice that the Belt Gen
Feature script also calculates the pitch length of the belt which allows us to verify that we calculated the correct C-C in step 7 and 8. 23. Use the Shaft Generator
Featurescript to create the 1st stage shaft. Note that this length is simply an estimate. While you could calculate the length of the shaft based on the components that will go on it, it is often easier to create the assembly then measure what the shaft length should be and update accordingly. 24. Use the Shaft Generator
Featurescript to create the output shaft. 25. Optionally pocket the plates. To begin, create a sketch on the outer face of the motor plate and draw lines to create the struts. 26. Use the Vent
Featurescript to add the pocketing. Use 0.15\" wide ribs and 0.15\" tool radius. 27. Create a sketch on the inner plate and draw the strut lines. You can utilize the Use
sketch feature to copy over strut lines from the motor plate pocketing sketch. 28. Use the Vent
Featurescript to add the pocketing. Again, use 0.15\" wide ribs and 0.15\" tool radius. 29. Finished part studio. Name the key sketches and parts. Set the material of the plate and spacers to 6061 Aluminum. The tube, gusset, and shafts should have their material automatically set already. \u276e \u276f Exercise 3 Assembly Instruction Slides
0. Final assembly. Your browser does not support the video tag. 1. Insert the part studio into the assembly and fix only the bottom tube. Use the group mate on the tubes, plates, and gusset. Copy the gusset and mate it to the other side of the tube. Next, mate the spacer to the plate and use the Replicate
tool to replicate the spacer. Your browser does not support the video tag. 2. Assemble the bearings and shafts using parts from the MKCad App. Use the Replicate
tool to replicate the bearing. Your browser does not support the video tag. 3. Assemble the 36T pulley, belt, motor, and motor pinion pulley using parts from the MKCad App. Notice that the motor pinion is offset 1/16\" from the bottom of the shaft to better align with the belt. Additionally, notice that the belt requires only a single fasten mate since its orientation was determined by how it was modeled in the part studio. Your browser does not support the video tag. 4. Assemble the shaft spacers and gears using parts from the MKCad App. Notice that this time we used a pocketed gear for the 60T gear. Pocketed gears are the same as normal gears except they have some material removed to save weight. Your browser does not support the video tag. 5. At this point, you have all of the core components assembled and can update the length of the first stage shaft. Copy the measured shaft length and update the part studio accordingly. It is recommended to round up to the nearest 0.01\" for manufacturability. Your browser does not support the video tag. 6. Assemble the shaft retention bolts using MKCad app parts. Your browser does not support the video tag. 7. Assemble the motor bolts, gearbox bolts, and nuts using the Onshape Standard Content and MKCad app parts Your browser does not support the video tag. 8. Assemble the gusset rivets using the MKCad app parts. 9. Finished assembly. Make sure to sort your parts into folders and name your replicate features. \u276e \u276f In this exercise, you modeled a fairly complex gearbox that was integrated with some frame elements. At this point, you should be begin to feel comfortable with the sketching and extrude tools. You should also familiarize yourself with all the options present in the Featurescripts that you have used up until this point by playing around with different settings.
To get a feel for how parametric your model is, you can try and change certain key dimensions in the layout sketches, such as the length of the tubes, angle of the tubes, length of the belt, and the size of the gears. Play around with which modifications will update smoothly and which require additional fixes in the CAD.
You may also be curious as to how things like the hole sizes, materials, etc were selected in each of these designs. You are encouraged to learn more by browsing the Design Handbook pages which contain in-depth information on a wide range of topics, or by discussing with your team and or other students and mentors on the DDS Discord.
"},{"location":"learning-course/stage1/1B-powerTransmissions/#summary","title":"Summary","text":"Congratulations on completing Stage 1B! Keep up the good work! Remember that practice is key - the only way to get better is to model more.
Here is a quick summary of what you have achieved in stage 1B:
- Learned about speed, torque, and mechanical advantage
- Learned the basics of motors, bearings, shafts, gears, chain and sprockets, and belt and pulleys
- Learned how to model basic power transmissions
- Learned how to use the
Belt Gen
, Chain Gen
, Shaft
, and Vent
Featurescripts - Learned how to use the
Origin Cube
FRC functions Featurescript for chain and belt c-c's - Learned how to insert Standard Library components and mate bolts and nuts
- Learned how to use the
Replicate
tool - Learned how to insert models into assemblies using the MKCad parts library
Again, it should be noted that Stage 1B is a very basic introduction to modeling power transmissions and some details were glossed over. Stage 2 will introduce how to design power transmissions - selecting motors and calculating optimal ratios.
In stage 1C, you will begin to learn the basic workflow for robot modeling. This is the final step before being able to design a full mechanism!
"},{"location":"learning-course/stage1/1C-designMethodology/","title":"C: Design Methodology","text":""},{"location":"learning-course/stage1/1C-designMethodology/#1c-design-methodology","title":"1C: Design Methodology","text":""},{"location":"learning-course/stage1/1C-designMethodology/#introduction","title":"Introduction","text":"So far, you've worked on CAD fundamentals through courses and FRC-relevant exercises, but haven't done anything within a larger context. In Stage 1C, you'll dive right into designing for a real robot. In this project, you will be designing a swerve drivebase while being introduced to a design workflow that will be applied to all future projects.
- Learn the basics of top-down design and mastersketching
- Model a swerve drivebase using COTS swerve modules
- Create a top-level assembly and insert a pre-modeled mechanism (1678's 2023 elevator and manipulator)
Even if you've already CADed a drivetrain the past, this guide serves as an excellent introduction to the top-down master sketch design methodology.
Swerve drivebase with pre-modeled mechanism
As with previous exercises, the finished project is available for reference. If you need help, please feel free to ask on the Discord!
1C Drivebase Reference
"},{"location":"learning-course/stage1/1C-designMethodology/#master-sketch-methodology","title":"Master Sketch Methodology","text":"When designing a model in CAD, there are two high level strategies that can be employed: top-down and bottom-up. Top-down design employs high level, low detail sketches to dictate the design, and then refining details and components within that framework. Conversely, bottom-up design involves creating individual components or parts separately and then assembling them to form the final product.
Top-down design offers a holistic approach, allowing for better system integration, consistency, and is more parametric. Bottom-up design offers flexibility and independence in designing individual parts. In FRC robot design, top-down approach is favored as system integration is often the most challenging aspect. Top-down ensures that the robot architecture dictates part design.
To achieve this, a master sketch is utilized. A master sketch is a series of sketches that capture the major dimensions of each mechanism, field element interactions, and robot size constraints. Then, the master sketch(es) are inserted into each mechanism's part studio and the individual components are then modeled around the imported layout sketch. More information on master sketches can be found on the Master Sketch Best Practices page.
Example
Example of robot master sketches. Each mechanism has a number of layout sketches that capture the important details.
"},{"location":"learning-course/stage1/1C-designMethodology/#swerve-drivebase","title":"Swerve Drivebase","text":"A drivebase is the mobile platform on which all our other mechanisms are designed around and attached to. With the advent of reliable COTS swerve, designing a swerve drivebase has been made significantly easier and has become the most commonly used competitive drivetrain in FRC.
A swerve drivebase is composed of four swerve modules. Each module has two motors: one for spinning the wheel and one for steering it. This enables the robot to translate in any direction independent of the rotation of the robot. In this project, we'll be using SDS MK4i modules. There are many other COTS options available, each with their own advantages and tradeoffs.
Stage 1C swerve drivebase project.
As was introduced in Stage 1A, robot structures are typically constructed out of aluminum box tubing. The drivebase is no exception to this. Most teams will opt to design their box tubing with a standard 0.5\" spacing pattern of 0.196\" diameter holes. This enables modularity and allows for easy integration of many COTS components like gussets.
Box tubing extrusions can be purchased at most metal suppliers, but many FRC vendors including WCP, TTB, and REV sell box tubing with pre-cut hole patterns which can significantly reduce manufacturing time and equipment requirements.
"},{"location":"learning-course/stage1/1C-designMethodology/#drivetrain-master-sketches","title":"Drivetrain Master Sketches","text":"To begin, you will be creating a layout sketch of the drivetrain. This will dictate the size and position of the drive tubes. The layout will be drawn from the side and top view of the drivetrain. For your swerve drivebase, you will make it 26\"x26\".
Start by creating a part studio called Master Sketch
. Then, use the Origin Cube
Featurescript to create an origin cube. You should start every part studio with an origin cube to set a reference for the origin of the robot. The origin of the robot is typically defined as the center of the drivebase on ground level. You can learn more about origins and the origin cube in Assembly Best Practices.
Drivetrain Layout Sketch Slides
0. The final layout sketch. 1. Start by inserting the origin cube. 2. Draw the side profile of the drivetrain on the Right Plane. We place the tube 1.75\" from the ground, which is the offset from the ground to the bottom of the tube for the MK4i modules. 3. Draw the wheel clearance box, which represents the area that the wheel takes up. For the MK4i modules, the box is 4.625\" wide. The side layout of the drivebase is now finished. Your browser does not support the video tag. 4. Create the top layout sketch by using the bottom mate connector on the vertical line of the side layout. Utilizing auto-generated mate connectors for sketch planes is a very useful tool to have. Press the \u201cTop\u201d button on the view cube to get a top view. Your browser does not support the video tag. 5. Sketch the top outline of the drive base. Make the rectangle a square and set the side length equal to the length of the side layout tube. This ensures that the size of the top layout always matches the side layout, which makes the design parametric. Notice that the sketch is fully defined despite having no sketch dimensions. 6. To sketch the tubes, draw a square 1\" smaller than the previous square. This will represent the four 2\"x1\" tubes that make up the outer frame. Then, draw the top profile of the 2\"x2\" tube. 7. Next, we need to make the cutouts on the drivetube for the swerve modules. Start by drawing two lines, each offset by 4.25\" from the edge. This is the required offset for MK4i modules. Other modules will differ. Your browser does not support the video tag. 8. To apply the cutout for all four tubes, we use the Circular Pattern
sketch tool to copy the lines to all four corners. For a Circular Pattern
we first define the number of instances and then the axis of rotation. 9. Finally, name your sketches and organize them into folders in the feature tree. Your sketches should all be fully defined. \u276e \u276f As previously explained, this method of top-down modeling is extremely powerful as it enables you to capture the most important dimensions all in one place. However, you should be careful to not over-detail master sketches. You will be practicing master sketches all throughout Stage 2, and use them in Stage 3 alongside multi-document practices to design a whole robot.
"},{"location":"learning-course/stage1/1C-designMethodology/#deriving-layout-sketches-and-part-modeling","title":"Deriving Layout Sketches and Part Modeling","text":"Now that you have created the layout sketch, you can begin modeling the individual parts. The critical dimensions of the parts, such as the length of the tubes, will be driven by the layout sketch. This way, the tubes will automatically update with any changes in the size of the drivebase in the layout sketch.
Start by creating a new folder tab called Drivetrain
. Then, create a new part studio called Drivetrain
within the folder.
Drivetrain Part Modeling
0. The part studio. 1. Start by inserting the origin cube. Then, use the Derived
tool to insert the layout sketches you previously drew from the Master Sketch part studio. This feature will automatically update if changes are made to the layout sketch. 2. Use the Extrude Individual
and Tube Converter
Featurescripts to model the tubes. The 2\"x1\" tubes should be 1/8\" wall for strength, while the 2\"x2\" tube can be 1/16\" wall. 3. Start with one corner of the bellypan. The corner is cut out to create room for the swerve module. Your browser does not support the video tag. 4. Use the Fillet
sketch tool to add a 1\" radius sketch fillet on the two internal corners of the cutout. Your browser does not support the video tag. 5. Next, use the Circular Pattern
sketch tool to pattern the other three corners. Extrude the bellypan to be 1/8\" thick. 6. Use the Fillet All Edges
Featurescript to add a 0.25\" radius fillet to the remaining edges on the bellypan by selecting the bottom face of the bellypan. 7. Add the seed instances of the holes for the bellypan. Your browser does not support the video tag. 8. Next, use the Linear Pattern
sketch tool to pattern the holes along the edge. Your browser does not support the video tag. 9. Use the Circular Pattern
sketch tool to pattern the holes about the origin onto all four edges. Your browser does not support the video tag. 10. Use the Linear Pattern
sketch tool to pattern the holes for the 2\"x2\" tube. 11. Clean up the sketch by moving the dimensions so that they are all visible. A clean sketch is important for readability of the CAD so that it is easily editable in the future. 12. Finally, name your sketches and organize them into a folder in the feature tree. Additionally, set the material of the bellypan to Aluminum 6061 and name your parts. \u276e \u276f In this section, you were introduced to the Derived
feature. This feature is extremely powerful and can be used to import parts from one part studio into another to enable references for modeling. However, you must be careful to not overuse this function as it can significantly slow down your part studios.
At this point, you should be feeling more and more comfortable with Onshape modeling and using Featurescripts. Always make sure to clean up your feature tree while working to keep it organized and easy to use. You can more learn about feature tree organization on the Feature Tree Best Practices page.
"},{"location":"learning-course/stage1/1C-designMethodology/#assembly","title":"Assembly","text":"Now that the part studio is finished, you can create the drivetrain assembly. Create a new assembly tab called Drivetrain Assembly
in the Drivetrain
folder you made previously.
Previously, in Stage 1A when you created assemblies one of the parts in the group mate was fixed in place. However, this is not considered a good practice as it is not parametric. This is where the origin cube comes in: the origin cube has a mate connector placed at the origin of the part studio. After inserting and grouping all of the parts, you can fasten the origin cube to the origin of the assembly. This aligns the part studio origin and assembly origin.
Drivetrain Assembly
0. The assembly. Your browser does not support the video tag. 1. Insert the parts into the assembly, Group
them, then fasten the origin cube to the origin of the assembly. Your browser does not support the video tag. 2. Insert the MK4i module from the MKCad app into the assembly and mate it into place. Your browser does not support the video tag. 3. Use the Circular Pattern
assembly tool to finish assembling the modules. Your browser does not support the video tag. 4. Insert a 3/16\" rivet from the MKCad app into the assembly and mate it. Your browser does not support the video tag. 5. Use the Replicate
assembly tool to replicate the rivet and rivet mate onto all matching geometry on the bottom face of the bellypan 6. The assembly. \u276e \u276f The Replicate
tool, which was introduced in Stage 1A exercise 5, is a very powerful tool for duplicating parts in assemblies. Replicate
works by creating a copy of the selected parts, and duplicates the selected mate onto the selected geometry. Note that the selected geometry must exactly match the origin mate geometry, eg: the hole diameter must be the same for replicate to copy a rivet. In your assembly, you use the select the face for replicate to apply to. What this does is identify all geometry that matches the original mate and then copy the selected components and mate to those matching locations on the selected face. If you want to replicate onto only specific holes, you can change the drop-down menu to \"Match Individual Edges\".
Match Individual Edges for Replicate
Adding More Components
When you model more parts in the part studio, you can insert them into the assembly in a similar to fashion to before. Hit insert and immediately click on the green checkmark. Then, edit the initial Group
you made and add the part to the group. By doing this, you ensure that added parts will always stay in the same place it was modeled in the part studio.
Let's add a gusset to connect the 2\"x2\" tube to the 2\"x1\" tube.
Adding a Gusset
0. Finished drivetrain assembly. 1. Add the gusset for the crosstube with the Gusset
Featurescript. Your browser does not support the video tag. 2. Insert the gusset into the assembly and add it to the Group
. 3. Copy the gusset and mate it to the other side. Your browser does not support the video tag. 4. Edit the replicate feature to add rivets to the gusset. 4. Finished drivetrain assembly. \u276e \u276f Make sure you sort the instances in your assembly into folders (i.e. frame, swerve modules) and name any patterns and replicates used. This will help you locate components in the assembly later down the line.
More details about best practices for Onshape assemblies are included on the Assembly Best Practices Page.
It should be noted that while modeling every detail of the robot hardware (bolts, rivets, nuts) is beneficial for purchasing and real life assembly purposes, it isn't strictly necessary. Time is a precious resource, especially during build season, so you should spend it on what will give you the biggest return.
"},{"location":"learning-course/stage1/1C-designMethodology/#top-level-robot-assembly","title":"Top Level Robot Assembly","text":"Now that you have a drivebase, you can create a top level robot assembly. The top level robot assembly is the highest in the assembly hierarchy. Organizing the assemblies in this way keeps thing organized from both a CAD assembly and real life assembly standpoint.
Create an assembly tab above the Master Sketch
part studio and name it Top Level Robot Assembly
. Here, you will bring in the drivebase and the scoring mechanism from 1678's 2023 robot.
The scoring mechanism CAD can be accessed from here:
1678 2023 Scoring Mechanism Document
Top Level Robot Assembly
0. Finished top level robot assembly. Your browser does not support the video tag. 1. Insert the drivetrain assembly and fasten the origin cube to the assembly origin. You may need to unhide the origin cube to mate it. Your browser does not support the video tag. 2. Insert the 1678 2023 scoring assembly by pasting the scoring mechanism link into the `Insert` menu textbox. Then, fasten its origin cube to the assembly origin. You may need to hide the drivetrain's origin cube to access the origin of the assembly for mating. 3. Finished top level assembly. \u276e \u276f And that's all there is to the top level robot assembly! The use of the origin cube makes it very easy to mate together assemblies. In later stages you will explore how to create flexible assemblies (arms, elevators, etc) with the origin cube. If you are interested, you can get a sneak peek here.
"},{"location":"learning-course/stage1/1C-designMethodology/#summary","title":"Summary","text":"Congratulations on completing Stage 1C! Keep up the good work!
Here is a quick summary of what you have achieved in 1C:
- Learned about top-down robot design methodology and master sketches
- Learned how to use the derive feature to drive part studios using master sketches
- Learned how to use the origin cube to mate together top level assemblies
- Learned how to model a simple swerve drivetrain
Remember, practice is essential \u2013 the more CAD models you create, the more proficient and efficient you'll become. Using keyboard shortcuts can significantly accelerate your CAD workflow. Be attentive to best practices to avoid developing any bad habits.
In Stage 2, you will begin to model robot mechanisms using all the skills you have learned in Stage 0 and Stage 1! Note that in stage 2, the learning course will become less step-by-step and more open ended, which will enable you to add your own input on designs based on your team's way of doing things. As always though, reference CAD models will be available.
Optionally, please fill out this feedback form about stages 0 and 1.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/","title":"A: Full Detail Drivebase","text":""},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#2a-full-detail-drivebase","title":"2A: Full Detail Drivebase","text":"Welcome to Stage 2! This section covers FRC mechanism design, emphasizing CAD skills, best practices, and key engineering concepts. Each project guide explains design decisions and criteria, promoting independent CAD work with less step-by-step instruction.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#introduction","title":"Introduction","text":"The first project in Stage 2 will be detailing the drivetrain you began modeling in Stage 1B. So far, you\u2019ve only modeled the frame and bare bellypan. To finish the drivetrain, you should add the following details.
-
Battery Mounting: Every robot needs a battery, and while the location may vary based on the other mechanisms present in your robot, it should always be placed as low as possible to make the robot more stable.
-
Electronics Mounting: Adequate space must be allocated on the robot for ease of wiring. Typically, the robot\u2019s electronics are mounted on the bellypan.
-
Bellypan Pocketing: This step is optional. Some teams will prefer to add cutouts in their bellypan to remove weight and make wiring easier. However, pocketing the bellypan may significantly increase machining time.
-
Bumpers: While bumper rules can vary from year to year, they are almost always required to protect your robot and other robots from collisions. Making your bumpers easy to attach and remove is also a very nice quality of life improvement for when you\u2019re at competition.
While the exact implementation for each of these details will vary based on the rest of your robot and from team to team, an example reference for Stage 2A is provided.
2A Drivetrain Reference
Example of a fully detailed Stage 2A drivetrain.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-mounting","title":"Battery Mounting","text":"Ensuring that your robot\u2019s battery does not fall out of your robot is critical for successful robot operation. While it may seem obvious, even veteran teams sometimes get this wrong. Successful battery mounting can be broken down into two components: good battery placement and a robust battery holder.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-placement","title":"Battery Placement","text":"Batteries are heavy: the FRC robot battery weighs a whopping 13 lbs. Since the battery is so heavy, you need to place it as low as possible to keep your robot\u2019s center of gravity low to prevent tipping over. Most teams will typically use the bellypan to support their battery as this is the lowest location on the robot.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#battery-holder","title":"Battery Holder","text":"A strong strap is needed to secure the battery to its mount, preventing it from dislodging during hard collisions. A good option is to use a 1\u201d or 2\u201d wide buckle strap, which can be purchased and cut to size from most stores. FRC vendors like WCP also sell battery mounting accessories including battery holders and straps.
Example
Securely strapped battery in a robot. (Photo Credit: FRC 1538)
Below, we've provided one option for mounting the battery. In this design, the battery is placed horizontally on the bellypan. It is secured with a 2\" wide strap that wraps around the battery and bellypan to secure it.
Sample Battery Holder Modeling Slides
0. Finished battery holder w/ mounting holes, strap cutout in bellypan, and strap. 1. Layout of battery and battery mount plate. To fit the battery with 1/16\u201d radius fillets on the inner corners, the cutout should be around 6.705\u201d x 7.225\u201d. 2. 1/8\" thick aluminum is a good option for this plate. Also add a 3/8\" diameter spacers to connect to the bellypan. 3. Add the mounting holes and cut out for the battery strap on the bellypan. 4. Optionally model the battery strap. 5. Optionally pocket the battery holder. 0.2\" wide ribs are recommended. 6. Insert the battery holder, spacer, and battery into the assembly. Don't forget to organize your feature tree, name your parts, assign part materials, and organize your assembly file tree. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#electronics-mounting","title":"Electronics Mounting","text":"To make wiring the robot and later inspecting the wiring easier, enough space should be left around each electrical component. You should work with your electrical teammates to determine the best location for the various control system parts. Teams typically try to mount their electronics on the bellypan, permitted there is space.
Example
Example layout of various different electronic components on a bellypan.
A list of typical electrical components found on FRC robots is provided below, as well as a recommended mounting location. Again, mounting locations are highly dependent on the rest of your robot, make sure to always coordinate with your electrical team to decide what is best.
Component Function Suggested Location Image REV Power Distribution Hub (PDH) or CTRE Power Distribution Panel (PDP) Distributes power to all other components Bellypan Main Breaker Is used to turn on/off the robot and protect electronics from events with extremely high current drawn Somewhere easily accessible and close to the PDH and Battery RoboRIO Central controller for all robot operations Bellypan Integrated motor controller (eg: Falcon 500, Kraken X60) Powers and controls the integrated motor No electrical mounting required Discrete motor controller (eg: Spark Max, Talon SRX) Required to power and control some motors (eg: NEO, CIM) Near the controlled motor or on the bellypan Robot Radio Allows the robot to establish wireless connections to the field or driver station Follow Vivid Hosting's radio mounting guidelines. Robot Signal Light (RSL) Indicates whether the robot is on and enabled/disabled Somewhere easily visible Inertial Measurement Unit (IMU) Used to determine robot heading and acceleration Close to the center is best practice (on Bellypan or VHB tape to attach to RoboRIO) Voltage Regulator Module Can be used for custom circuits Bellypan Pneumatics Hub Controls pneumatic components Bellypan One option for mounting the Power Distribution Hub (PDH), main breaker, and RoboRIO onto the bellypan is provided in the below example. The Electronic Mounting
Featurescript can be very useful for generating the mounting holes for electronics. If you cannot accurately manufacture mounting holes for electronics, VHB tape (which comes in the Kit of Parts) can be a good option for robustly securing your electronics.
Sample Electronics Mounting Slides
0. Finished mounted electronics. 1. Draw box outline for PDH and RoboRIO. Also add the outline and holes for the main breaker. 2. Use the Electronic Mounting
Featurescript to add the PDH and RoboRIO mounting holes. Optionally override the hole size for the PDH to be 5/32\u201d diameter, which will allow the mounting bolt to screw directly into the bellypan. 3. Insert the electronics from the MKCad parts library and fasten them. The Pigeon IMU can be fastened to the RoboRIO. \u276e \u276f It is recommended to use the Simplified electronics models to improve assembly performance. You can read more about simplified models on the Assembly Best Practices Page. Simplified swerve module models can also be used to reduce lag.
Every robot is also required to have a Robot Signal Light (RSL). An easy location to mount the RSL is on the side of the drive frame. Typically, only one RSL is required and needs to be \u201ceasily visible while standing 3 ft. (~ 100 cm) away from at least one side of the ROBOT\u201d. Be sure to check the latest game manual rules for the most up to date RSL mounting rules.
RSL mount constructed out of 1/8\" thick polycarbonate plate. The mounting hole for the RSL is 1\u201d in diameter. The RSL model can be found in the MKCad App.
Each robot is also required to have a radio. The radio should be mounted on the robot following Vivid Hosting's radio mounting guidelines.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bellypan-pocketing","title":"Bellypan Pocketing","text":"Some teams may choose to pocket their bellypan to reduce weight and make wiring easier. A pocketed bellypan can save around 3-4 lbs. However, this will add significant machining time if you are manufacturing the bellypan yourself or increase cost if you are purchasing the bellypan from a fabrication service (eg: Fabworks). You should carefully consider the tradeoffs with your team.
If you choose to pocket your bellypan, you can utilize the Vent
, Lighten
, or Part Lighten
Featurescripts to pocket the bellypan. While the workflow may slightly vary between each Featurescript, the general idea is the same. A diamond pattern is recommended for strength and ease of modeling.
Sample Bellypan Pocketing Slides
0. Pocketed bellypan. 1. Draw two perpendicular lines that are offset 45 degrees from vertical. 2. Linear pattern the lines until they completely cover the bellypan. These will be the ribs for the bellypan. 3. Offset the outline of the bellypan 0.5\u201d. 4. Connect any islands that might result from mounting holes being too far from a rib. One way to fix this is to add a slot connecting the island to a rib. 5. Use a pocketing Featurescript to pocket the bellypan. Recommended settings are 0.15\u201d wide ribs and 3/16\u201d tool radius. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumpers","title":"Bumpers","text":"Bumper construction is described in each year\u2019s FRC game manual. Typically, it is required to be two 2.5\u201d diameter pool noodles backed by a 5\u201d tall 3/4\" thick plywood sheet. Refer to the latest game manual for the most up to date bumper rules. Bumper cutout and ground clearance rules will vary from year to year.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumper-model","title":"Bumper Model","text":"To begin, you'll need to model the bumpers. It is recommended to place the bumpers in a new part studio and assembly to keep your feature and assembly trees organized. The minimum level of detail should be a block model of the bumper. Some teams may opt to model the bumper wood, bumper wood holes, angle brackets for the bumper wood, and other details to assist with manufacturing. You should communicate with the rest of your team members to determine the level of detail that is required.
Sample Bumper Modeling Slides
0. Finished bumpers assembly inserted into drivetrain assembly. 1. Create a new sketch in the Master Sketch part studio with the bumper profile. A 3/4\" ground clearance and 1/4\" gap between the bumper and frame is recommended. 2. Create a new part studio in the drivetrain folder for the bumpers. Insert the Origin Cube and derive the drivetrain and bumper sketches from the Master Sketch. 3. Sweep the bumper profile along the edges of the drivetrain top layout sketch to create the block model of the bumpers. 4. Optionally add a fillet on the corners. Size it according to how your team wraps the bumper pool noodles. 5. Optionally model the wood for the bumpers. This can be useful for manufacturing purposes. 6. Create a bumper assembly in the drivetrain folder and insert all the components. Don\u2019t forget to group all the components and mate the origin cube mate connector to the origin. 7. Insert the bumper assembly into the drivetrain assembly. \u276e \u276f Keeping the bumper part studio and assembly separate from the drivetrain keeps the drivetrain feature tree cleaner and allows for easier hiding/showing of the bumpers in the top level assembly since you can show and hide the entire bumper assembly at once.
"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#bumper-mounting","title":"Bumper Mounting","text":"Next, you'll need to model your desired bumper mounts in the drivetrain part studio.
Similar to battery mounting, good bumper mounting is often overlooked. While a robust bumper mounting system won\u2019t win you any matches, a poor bumper mounting system can certainly lose you a match. Poor bumper mounting can lead to bumper damage, long bumper swap time, or even lead to your bumpers falling off.
In the provided example, the threaded stud bumper mounting system is implemented.
Section view of the threaded stud bumper mount system. The threaded stud is attached to the bumper wood and the nut holds the stud tight.
Sample Bumper Mount Modeling Slides
0. Finished bumper mounts. 1. Model the bumper mount. This part should be 3/16\u201d thick aluminum. The threaded stud falls into the slot. 2. Add the pocket for the nut that screws onto the threaded stud. This nut keeps the bumpers tight with the frame. The pocket secures the nut and prevents the bumper from lifting up. 3. Optionally pocket the mount. 0.15\" wide ribs and 1/8\" tool radius are recommended. 4. Insert the mount and add it to the Group
. Copy three more mounts and mate them onto the drivetrain assembly. If your team runs multi piece bumpers (eg: two C shaped bumpers) you may need to add more mounts to secure the bumpers. 5. Finished bumper mounts in drivetrain assembly. \u276e \u276f"},{"location":"learning-course/stage2/2A-drivebaseFullDetail/#summary","title":"Summary","text":"Congratulations on completing Stage 2A! With the Stage 2A tasks completed, your drivetrain model is well on its way to being fully functional.
Here is a quick summary of what you have achieved in 2A:
- Learned about battery mounting and the importance of a secure battery holder
- Learned about core FRC electronics and how and where to mount them
- Learned how to use the
Electronic Mounting
Featurescript - Optionally learned how to pocket a bellypan
- Learned about bumpers, how to model them, and the importance of having a secure mounting system
- Practiced more complex sketching and layout
As you progress, the projects will become more and more open ended and less step-by-step tutorial style as they have been up until now. Be sure to use the Discord to solicit feedback on your designs to learn and improve!
"},{"location":"learning-course/stage2/2B-basicShooter/","title":"B: Basic Shooter","text":""},{"location":"learning-course/stage2/2B-basicShooter/#2b-basic-shooter","title":"2B: Basic Shooter","text":""},{"location":"learning-course/stage2/2B-basicShooter/#shooter-mechanisms","title":"Shooter Mechanisms","text":"Shooters are used in FRC games when you need to score in high places, and are not allowed to physically reach to the scoring position. A flywheel is the most common method of scoring as seen below.
Most shooting games involve launching a ball, but the fundamentals between ball shooters and shooters for non-spherical objects (discs or rings) remain roughly the same.
FRC Team 2910 and's 1690's 2021 Robot Launching Game Pieces
The most common way to launch game pieces is with flywheel shooters. Other methods, such as catapults or punchers, tend be more challenging to execute with the required accuracy/fire rate and rely on different concepts than flywheel shooters.
1678's 2022 and 2024 Flywheel Shooters. The 2022 shooter launched 9.5\" diameter inflated balls and the 2024 shooter launched 14\" diameter foam rings.
This video is a good slow-motion look at how a ball gets propelled out of a shooter.
Other mechanism examples and deep dives for shooters can be found on the ball shooters page. The design handbook page will have a deep dive, but has not been started yet.
"},{"location":"learning-course/stage2/2B-basicShooter/#project","title":"Project","text":"You will be designing a flywheel shooter to launch a Power Cell, a 7 inch diameter foam ball, from the 2020/2021 Infinite Recharge game. Watch the 2020 Game Animation, Team 1690 2020 Robot Reveal and 2021 Chezy Champs Finals 2 for an understanding of the game tasks. Refer to the game manual and field layout drawings for field elements and the AndyMark website for power cell specifications.
The shooter will be designed to shoot the Power Cells into the high goal from just behind the white \"Initiation Line.\"
Finished shooter assembly.
The reference shooter is provided below. Note that the reference shooter is not designed for the 2020 game.
Shooter Example
"},{"location":"learning-course/stage2/2B-basicShooter/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the basic shooter concepts, as well as the reasons for specific implementations in the example. We cover these concepts lightly so you can design your shooter and understand the basic ideas behind shooters, but the design handbook covers the \"why\" and in depth concepts if you are interested.
Trajectory Rigidity"},{"location":"learning-course/stage2/2B-basicShooter/#trajectory","title":"Trajectory","text":"For a ball shooter, the trajectory is determined by the exit angle and exit velocity of the game piece. (How hard you launch and where you point)
Rigidity impacts the consistency of the trajectory which makes your shooter less accurate. (Think about if your shooter wobbled how your shot would behave)
For 2020, you can use the initiation line (big white line) on the field to estimate where to shoot from and the angle, and the scoring size allows for enough forgiveness if you aren't in the exact spot when scoring. You can use a calculator to estimate your shot distance.
Play with this 2020 trajectory calculator and observe how changes in your angle and speed impact your shot. Can you try to find one angle and speed that lets you score the easiest without being in the exact spot?
Calculator
"},{"location":"learning-course/stage2/2B-basicShooter/#rigidity","title":"Rigidity","text":"Rigidity is important for every mechanism you design. For shooters it is vital to shoot at the same place every time. Think about what would happen if the shooter wobbled as you drove and shot.
This shooter uses two plates of 1/4\" polycarbonate for the sides. 1/4 inch thick Polycarbonate is used as it is easy to machine, cheap, and rigid enough for shooters once you add supports.
In the example, the plates are mounted to the bottom drive rails and support beams. The plates are kept apart from each other on both sides by standoffs, which double up a camera mount and ball guide. In this way, the shooter is rigid.
1x1 structure with the gussets helping support the polycaronbate plates. Exit Velocity"},{"location":"learning-course/stage2/2B-basicShooter/#surface-speed","title":"Surface Speed","text":"
The exit velocity is primarily impacted/controlled by the surface speed.
The rotations per minute and the diameter of wheel impacts the surface speed. Increasing the diameter is often more efficient due to requiring a lower rotations per minute for the same surface speed. A common \"go to\" choice is 4 inches in diameter. That being said, out of all the variables, your RPM and optionally shot angle are the only controllable variables in software.
Common motor choices for flywheel shooters are two CIM class brushless motors. The example uses two Kraken X60 motors, but any brushless cim class motor will work fine. A third motor can be used to power the flywheel and make the rest of the design more forgiving if wanted.
Two Krakens driving the shooter wheels, flywheels, and a belt transferring power to the hood wheels."},{"location":"learning-course/stage2/2B-basicShooter/#inertia","title":"Inertia","text":"
If shooting a single game piece at a time, common choices include stealth wheels, colsons, and solid roller wheels. These wheels store enough energy for your shot while being hard enough to be consistent. Do not use compliant wheels or treaded wheels as they will explode/be inconsistent.
Every time you launch a game piece, the flywheel loses energy and slows down as the game piece accelerates to the speed of the wheel. When shooting multiple game pieces, this can lead to waiting between shots. Adding mass to the flywheel increases the moment of inertia (wikipedia), which lowers the time between shots by reducing the percentage of energy lost per shot. The primary tradeoff is that it will take longer to initially accelerate to your target speed.
Team 2056 and 118 shooting quickly through a high moment of inertia.
Acceleration time and recovery time can also be reduced by gearing down your motors properly, or adding additional motors.
A fantastic tool to help you decide your gear ratio is https://www.reca.lc/flywheel. Given a set of information, it calculates spin-up time, recovery time, and estimated projectile speed. You can mess with the target shooter rpm, ratio, and mass of your flywheel shooter to try to optimize the spin-up time and recovery time, while keeping the projectile speed above around 12 m/s (for this game). For this shooter, these calculations were done and a 4:3 reduction was decided upon for the 4 inch shooter wheels and two 4 inch brass flywheels.
Note
Reductions or upductions should be done with belts for their high efficiency and low maintenance. It's important to try to use pulleys larger than 24 teeth and keep the tooth engagement of the pulleys high to maximize energy transfer without skipping.
Wrap and Compression (Energy Transfer) Spin Control and Additional Energy (Back Rollers) For spherical gamepieces, back rollers may be used for two different applications. Reducing spin and adding extra energy.
"},{"location":"learning-course/stage2/2B-basicShooter/#compression","title":"Compression","text":"The purpose of compression is to transfer energy into the game piece from the flywheel. The squishier the game piece, the more compression is required in order to get efficient energy transfer. Too little compression and the game piece slips, meaning energy isn't put into the ball. At the same time, too much compression leads to dragging on the rollers, which adds additional friction and inefficiency. It is important to find a balance through prototyping. For games with extremely hard game pieces such as 2017, compression is done through a foam backing instead.
"},{"location":"learning-course/stage2/2B-basicShooter/#wrap","title":"Wrap","text":"Wrap impacts the duration that the game piece stays in contact with the flywheel. The longer time the game piece remains in contact with the shooter, the more energy can be transferred consistently. For the associated physics concept see Impulse (Wikipedia).
Not Enough Compression/Contact Time This is what it may look like if you do not have enough compression. See how loud the shooter is compared to how far the shot actually goes (Warning: Loud Audio / Swearing)
Good Contact Time and Compression This is what it looks like if you have good contact time and compression with the exact same robot. (Warning: Loud Audio)
Stealth wheels, Solid roller wheels, (WCP Solid Roller Wheels), and Colson wheels are chosen commonly because of their lack of compression and soft grippy silicone surface. These are all good options for shooter wheels to prototype in a build season.
The example design uses 4 inch diameter roller wheels. The diameter allows for enough contact time while being small enough to reasonably package.
"},{"location":"learning-course/stage2/2B-basicShooter/#feeder","title":"Feeder","text":"A wheel or set of belts is frequently used to feed game pieces into the flywheel. The setup depends on the game and how you approach it feeding, but in 2020 you want to have both sides of your feeder powered due to the power cell being sticky. In the example, a single compliant wheel is used to feed the game pieces into the shooter. (Note: A feeder/Indexing section may be added to stage 2 in the future. The design handbook will have the concepts earlier) Observe how the game pieces are fed into 2910's and 1690's robot.
"},{"location":"learning-course/stage2/2B-basicShooter/#spin","title":"Spin","text":"Due to one side of the shooter being static, spherical game pieces have spin when shot with a single flywheel. In 2022, too much spin was detrimental since it led to bounce out of the game piece. Backrollers help reduce the amount of spin by spinning opposite of the spin direction while not being a source of friction. Spin also allows for a more stable shot, so in 2022 you didn't want to remove all of it, while in 2017 it was useful to have due to the steep arc trajectory.
Your browser does not support the video tag. Bounceout caused by too much spin. Credit: FRC Team 7492"},{"location":"learning-course/stage2/2B-basicShooter/#additional-energy-transfer-through-back-rollers","title":"Additional Energy Transfer Through Back Rollers","text":"
Friction causes some of the energy spent on accelerating the ball into spinning the ball. As a result, this reduces the translational energy (how fast it shoots). Lowering the friction on the backing helped, but back rollers were a better solution.
This high speed shooter video uses PTFE tape to lower the friction on the hood backing to reduce some of the spin. This led to a higher exit velocity by 2 miles per hour.
Back rollers allow for three different ways to increase the energy transfer:
- It reduces the amount of spin which turns into translational energy (shoots faster)
- It reduces the amount of drag as both sides are powered, which means you can have more compression (which leads to more energy transfer)
- There are more rollers that are transferring energy to the game piece in general.
Contact time rules still apply to back rollers. Since you can't have the game piece naturally wrap around the back rollers, you will need multiple back rollers to have the best effect.
Another small note is that the direction of the back rollers are opposite of the shooter, so you will need to swap the direction with gears when belting them together. It is better to belt them together since you only need to control 1 variable in code instead of two.
See how the ball spins as it travels along the shooter path. Although there are back rollers, there is still some spin
Friction & Efficiency Friction reduces efficiency by converting energy into heat and adding unnecessary load to the motor. Excessive friction can prevent the flywheel from reaching speed, causing shot inconsistencies, and may overheat or damage the motors.
To minimize friction:
Belt Tension: Slightly reduce belt tension by shortening the center-to-center distance (0.01-0.02\") to improve efficiency.
Spacers: Use spacers between components on shafts and bearings. Components should not contact the outer race of the bearing to avoid friction. A COTS 1/2 hex delrin spacer which is used to reduce friction and constrain the object.
Shaft Constrain: Don't over-constrain shafts by using more than 2 fixed bearing points to hold a shaft; small misalignments can cause massive friction with the bearings.
Example
Example of a shaft being overconstrained by having a fixed bearing in the middle of the shaft. Example of a shaft being properly constrained with two fixed bearings.
Bent Shafts: Bent shafts reduce efficiency. Prevent bending by avoiding excessive cantilevering and ensuring proper alignment of bearings. Keep pulleys close to bearings
Tolerance Stackup: Minimize tolerance stackup, which occurs when multiple parts connect and introduce friction. Improve precision in fabrication or reduce the number of connections. Generally its best to keep belt runs on the same plate. In this design, a single manufactured plate for bearing holes and center-to-center distances helps reduce tolerance stackup.
Large Wheels: Larger shooter wheels mean lower RPMs are necessary for the same surface speed, which reduces the amount of friction throughout the system. Additionally, gearing your motors down and running them at at not max speeds is better for the motor.
Emergencies: If necessary, throw another motor at your shooter. This is the easiest way to deal with your problems in case you have slightly too much friction and needs something that works without too much work.
Note
These tips for reducing friction can be applied to all power transmissions
"},{"location":"learning-course/stage2/2B-basicShooter/#master-sketch","title":"Master Sketch","text":" - Use the origin cube featurescript
-
Sketch any field elements you intend to interact with. There's no hard alignment, but you intend to shoot into the back goal of the \"Power Port,\" so you must sketch that from a side view using the game manual and field layout drawings for reference. Place it 135 inches away from the origin, as that places the center of your robot 15 inches away from the white \"initiation line\"
-
Sketch a side view of your drivetrain + bumpers.
- Sketch a rectangle with your frame perimeter and height limit. This becomes your bounding box on where to design.
- Sketch your flywheel location, with the flywheels being 4in diameter.
- Sketch another circle concentric with the flywheels, 0.5\" smaller in radius. This is to compensate for the compression of the ball.
- Sketch another circle, concentric with the other two circles, and make the outside of that circle 7 inches away from the outside of the 3\" compression circle. This large circle is to denote the path of the ball and eventually the bent polycarb the ball slides against.
- Sketch your hood wheels by adding two 2 inch circles tangent to the outside of the large circle. Dimension them from each other using a belt calculator.
-
To constrain your shot angle to the field element placement, since the hood is not adjustable, create a line between the 3\" compression circle and the last hood wheel, create an arc from the center of that line to the center of the back goal of the Power Port, and make it normal to the first line you made in this step. Adjust the radius of the arc until you are happy with the arc. The arc itself can be adjustable in real life depending on how far away from the goal you are by adjusting the speed of the flywheels.
-
Decide where you want the motors for the flywheels to go and dimension them away from the flywheel center using a belt calculator.
- Now decide how the shooter is being fed. This depends on the amount of space in the rest of the indexing system, but here we're using an S-shape feeder because the balls are being fed from the front and shot from the back. Sketch two concentric circles for the feeder wheels (green compliant wheels), 3\" and 2\" to account for the compression of the wheels, making the 2\" circle concentric to the large ball path circle. Add a final large ball path circle concentric with your feeder wheels and make it tangent to the original 3\" compression circle of the flywheels.
- Sketch 7\" circles representing the power cells to further demonstrate the ball path.
Now make sure all the geometry in the master sketch is fully constrained (black). Constrain any unconstrained geometry arbitrarily if you need to.
"},{"location":"learning-course/stage2/2B-basicShooter/#part-studio","title":"Part Studio","text":"Tip
If you make a copy of the document, you can use the rollback bar to view the part studio at each step of the process.
- Model your reference drivetrain cross tubes that the shooter plates will mount onto and make them a closed composite part. These will be 8 inches apart to leave room for the ball to travel between the plates.
- Model your main plate on the inside of the cross rails, sketching mounting hardware holes first, including standoffs to hold the bent polycarb following the edge of the large ball path circle concentric to the feeder wheels, then power transmission (motors, belt center-to-center lines, gear pitch circles), then finally the plate outline. Similar to sketching a large gearbox, isn't it? Make sure to extrude it and mirror it for parametric reference for other parts.
- Model the additional 1x1 tube used to mount the front of the shooter to the drivetrain. This helps keep it rigid despite potential flywheel vibrations at high speeds.
- Model the power transmission components using the contextless belts and shaft generator featurescripts.
- Most pulleys will be inserted in the assembly using MKCAD's configurable HTD pulley part (they can all be 3D-printed), but the Kraken x60 pinion pulley for the feeder wheels will use a SplineXS 3D-printed part adapter. Use MKCAD to derive the base pulley into the part studio, and derive the SplineXS 3dp adapter from this document. Perform a boolean subtract operation on the pulley with the adapter to create the cutout, checking keep tools to keep the adapter part. Make sure they're transformed into the correct place on the main plate.
- Model the polycarb backing with holes in it to attach it to the standoffs with zip ties.
- Model the 3D-printed camera mount and camera mount spacers for the Limelight 3
"},{"location":"learning-course/stage2/2B-basicShooter/#assembly","title":"Assembly","text":"Create an assembly, insert the parts and origin cube from the part studio (excluding the reference tubes) with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can. Try to use simplified motors.
"},{"location":"learning-course/stage2/2B-basicShooter/#summary","title":"Summary","text":"You've completed Stage 2B, and your first full mechanism! To summarize what you've learned in this stage:
- One way to make 2 parallel plates rigid
- All the factors that go into designing a flywheel shooter
- Tips to reduce friction and inefficiences in power transmissions
- Using a reference drivetrain to build a mechanism off of to reduce integration complexity
- How to create a master sketch for a flywheel shooter for balls
- Direction-changes in power transmissions
- Customizing a 3D-printed pulley
- Designing a custom limelight mount for a shooter
- How to model a whole mechanism!
While you've now modeled your first full mechanism, it is fully static in the context of the robot, with no moving parts. In the next stage, you'll learn the different concepts that go into designing a robust pivot and how to model one in Onshape, making sure to optimize load times.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/","title":"C: Dead Axle Pivot","text":""},{"location":"learning-course/stage2/2C-deadaxlePivot/#2c-dead-axle-pivot","title":"2C: Dead Axle Pivot","text":""},{"location":"learning-course/stage2/2C-deadaxlePivot/#rotary-mechanisms-dead-axles","title":"Rotary Mechanisms & Dead Axles","text":"Rotary mechanisms enable the pivoting of mechanisms through rotational movement. These mechanisms come in many shapes and sizes but there are a couple good practices that should be followed when designing powered pivots.
6036's 2023 Arm and 2910's 2023 Arm
Take a look at Team 2910's 2023 robot reveal video to see their pivoting arm in action.
Two types of pivot drive systems exist: Dead Axles and Live Axles. The following table compares the pros and cons of the two types.
Axle Type Description Pros Cons Picture Dead Axle The axle remains stationary, and the mechanism pivots around it. Stronger, larger axle, no risk of axle twisting. Requires a separate method to transfer power. May run into packaging issues Live Axle The axle rotates with the mechanism. Commonly used with hex axles and hubs. Simple setup. Direct power transfer. Risk of twisting the axle. Commonly done with 1/2 hex which may be too weak for the application Out of these, dead axles (and coaxial designs as a result) are the best choice for pivots, especially ones that need to handle a significant amount of load.
Some key points when designing pivoting mechanisms are:
- Keep the center of mass of the pivoting \"arm\" as close to the pivot as possible.
- Ensure the axle is fully supported, using either box tube or nested plates.
- Maintain a rigid support structure.
- If the structure is wide, power both sides for additional rigidity.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#applicationsexamples","title":"Applications/Examples","text":"Mechanism Type Description Axle Type Friction Management Images Wrist Short, light rotary mechanisms. These are commonly seen to allow for ground pickup or pitch adjustments. You'll find coaxial, live, and dead axles for wrists. Both bearings and bushings are common. Large Pivots Include pink arms, pivoting elevators, and large arms. Dead axle is preferred; consider using 35 chain for heavy loads. Bushings are more common, though thin x contact bearings are used occasionally. High Load Short Pivot Pivots full mechanisms such as a shooter to adjust shot angle. Same as for large pivots. Both bearings and bushings are used. Other mechanism examples and deep dives for pivots can be found on the pivots page. The mechanism fundamentals page is yet to be made but will also be a helpful resource.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#project","title":"Project","text":"This stage's project is a simple dead axle pivot, not for any specific game or in a specific context, but one that teaches concepts that would allow one to apply it to any rotary mechanism.
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Dead Axle Reference Document
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#requirements","title":"Requirements","text":" - Reduction: Use Max planetaries.
- Chain: Utilize 25 chain with a large sprocket reduction.
- Axle: Use 7/8 inch tube for the dead axle and ensure proper support.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the design rationale for the pivot you will be copying. This integrates practical design principles with CAD skills for a more complete understanding of mechanism design.
Strength The primary considerations for the strength of a pivot are the rigidity (resistance to bending) and resistance to twisting. Dead axles provide superior strength to live axles due to the way they don't transmit any load and can be fastened to the rest of the structure. Larger round tube (such as 3/4\" and 7/8\" diameter) is preferred to 1/2\" hex for its strength-to-weight ratio and resistance to twisting. Live axles do have a purpose for low load applications, though.
Tip
Click through the tabs to see how much each axle bends, assuming the same load.
1/2 in Hex3/4 in Tube7/8 in TubeSplineXL2 in Tube Friction Friction must be minimized since the mechanism pivots around the axle. This can be done using either bushings or bearings. Bushings can handle higher loads at lower speeds, while bearings are more suited for higher speeds and lower loads, but larger bearings can be used for large dead axles. Bushings are used for this dead axle example because they package well, are suitable for the low speeds and potential higher loads of an arm, and it is easy to source ones made specifically for sprockets and tube from FRC vendors.
A stepped bushing and a large x contact bearing sometimes used for large dead axles.
Power Transmission Sprocket and chain is used for transmitting power due to the load rating for chain and extremely low chance of it slipping. Using large sprockets bolted to the mechanism helps reduce backlash and increase load capacity, while ensuring that the axle remains a dead axle. Torque is transmitted directly to the rotating mechanism from the sprocket, while the entire thing only uses the axle as a structural member to rotate on. A chain and sprocket turning a pivot A chain and Sprocket
Tensioning To accommodate chain stretch over the course of a season and reduce backlash, an active tensioning system is required. If enough chain length is available, inline tensioners such as turnbuckles and Spartan tensioners are the simplest way to tension the chain. If there isn't enough space for an inline tensioner (if the chain moves too much, the tensioner might run into either of the sprockets), other methods, such as moving the position of one of the sprockets with a sliding or rotating gearbox or stage, may be used. A chain and sprocket moving with a turnbuckle tensioner Two types of inline tensioners, a turnbuckle and a Spartan tensioner
For this design, enough chain length was provided for a simple inline spartan tensioner to work well.
Other Sources of Backlash Especially for pivots, which you want to make as rigid as possible for better control, you want to take steps to reduce the backlash as much as possible.
Source Details Solution Image Hex Interfaces Gaps in hex to hex hole interfaces create backlash. Use shim tape to reduce gaps. Sprocket Clocking Ensure correct alignment of sprockets to prevent uneven movement. Align notches on both sides. Note the notch on the sprocket Mounting Slop Loose bolt-to-hole interfaces can introduce slop. Use proper bolting and strong spacers. Reduction Stages More reduction stages increase backlash. Keep stages to 3 or fewer for optimal performance. One of the \"stages\" being the sprocket reduction Details on these solutions are covered in the design handbook page discussing designing for controllability.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#master-sketch","title":"Master Sketch","text":"The master sketch is very simple as it uses maxplanetaries for most of the reduction.
- Use the origin cube featurescript to insert the origin cube
- Dimension the cross bar
- Lay out the pivot location and driving sprocket position above the cross bar. Dimension a construction line between them a distance that will give enough chain length to use an inline tensioner.
- Create construction circles to represent the pitch circles of both sprockets and the diameter of the motor.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#part-studio","title":"Part Studio","text":" - Create a mate connector on the pivot point of the master sketch, owned by the origin cube. This will be used in the top level assembly to define motion between the subassemblies.
- Create the cross bar tubes
- Create the pivot support plates
- Create the chain and hex axle using featurescripts
- Create the dead axle tube, spacer, and washer.
- Create the tubes for the arm, including access holes for bolts.
- Create the plate to space the sprocket off from the arm.
- Name and give materials and appearances to all your parts
Note
Keep in mind you should be creating folders for related features while modeling the mechanism! It's easier doing it throughout the process than saving all the clean-up for the end.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#assembly","title":"Assembly","text":"Because this subsystem contains a static part and a moving part, we want to separate them into rigid (no movement) assemblies, then combine them at the top level. This makes load times significantly less.
Create an assembly for the static parts, insert the parts and origin cube from the part studio with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can.
Create an assembly for the arm portion of the mechanism and do the same thing as above to complete the assembly and make it rigid.
Tip
Below is an example of the instance list of a rigid assembly. Notice the icon in the top left indicating it's rigid. You can tell what can still move in the assembly by a \"degree of freedom\" icon (3 arrows to indicate the 3 axis.)
Now create a top level assembly and insert the static assembly (fasten to the origin) and intake arm assembly. Create a revolute mate between the mate connectors from the origin cubes in both assemblies and add a limit to it. This completes the deadaxle pivot assembly.
"},{"location":"learning-course/stage2/2C-deadaxlePivot/#summary","title":"Summary","text":"You've completed Stage 2C! To summarize what you've learned in this stage:
- Different types of axle usage
- Principles of designing a good pivot
- Applications of pivots (wrists, arms)
- One way of tensioning chain
- Different sources of backlash in a power transmission
- How to model a subsystem with multiple moving parts using the origin cube
This mechanism being completed leads to many more mechanisms that have multiple moving parts. Most robots have at least one pivot, though each one can be designed differently depending on the use case and packaging. Each pivot has some things in common though: try to minimize backlash, use a dead axle (usually with chain), and it will obviously need a power transmission included. In the next stage, you'll apply very similar concepts to an intake with a pivot and several rollers.
"},{"location":"learning-course/stage2/2D-slapdownIntake/","title":"D: Slapdown Intake","text":""},{"location":"learning-course/stage2/2D-slapdownIntake/#2d-slapdown-intake","title":"2D: Slapdown Intake","text":""},{"location":"learning-course/stage2/2D-slapdownIntake/#over-the-bumper-intakes","title":"Over-the-Bumper Intakes","text":"A common style of intake for gamepieces in FRC (depending on extension rules) is an \"over-the-bumper\" intake (OTB for short). These bring the gamepiece from the floor against and then over the bumper into another subsystem. They were used commonly in 2019, 2020, 2022, 2023, and 2024, and other past games.
The two types of OTB intakes are \"slapdown\" which consists of a single set of arms with rollers which slap down and back up again, and four-bar linkages, which allow the intake to stow more horizontally instead of vertically. The intake designed in this stage will be a slapdown intake for 2022 (inspired by 4414 HighTide\u2019s slapdown intake from 2023).
1323's 2022 Slapdown Intake and 1678's 2022 Four-bar Intake in action
Match footage of Team 1323's 2022 intake is an example of a well executed slapdown intake.
Other mechanism examples and deep dives for OTB intakes can be found on the slapdown intakes page and 4-bar intakes page. The mechanism fundamentals page is yet to be made but will also be a helpful resource.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#project","title":"Project","text":"This stage's project is a slapdown intake for 2022 or 2023 (both with the same gamepiece size of 9.5\" diameter).
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Slap Down Intake Reference Document
"},{"location":"learning-course/stage2/2D-slapdownIntake/#engineering-concepts-decisions","title":"Engineering Concepts & Decisions","text":"The following sections cover the design rationale for the slapdown intake you will be copying. This integrates practical design principles with CAD skills for a more complete understanding of mechanism design.
Intake Golden Rules There are many good resources out there for how to design good intakes. Andrew Torrance from Team 254 has provided a list of golden rules for roller intakes.
Summary:
- The surface speed of intake rollers/wheels should be at least double the robot's max speed.
- Maximize grippiness with game piece through all methods to maximize energy transfer, and thus intake speed and reliability
- If object is squishy, make your rollers rigid, if the object is hard, make your rollers compliant/squishy.
- Maximize intake area to make it easier to intake during auto and teleop.
- Intakes need to be robust as they are frequently out of frame perimeter.
- Use sensors to detect game pieces.
General Design and Robustness The main structure uses 1/4\" polycarbonate, 2x1 tubes, and nut strips to attach the plates directly to the frame. In this way, the structure would do an especially good job resisting impacts from the front. Because of the rigid nature in how the main plate is mounted, it can be polycarbonate, making it lighter and stronger than pocketed aluminum. The two secondary plates used to make sure all axles are supported on two points aren't connected with a very rigid structure and so work better as aluminum.
The intake is as wide as possible to decrease the precision and time needed by the driveteam or autonomous code to intake the game piece. The only aim is to get the game piece into the robot, then it can be centered or serialized inside frame perimeter, also minimizing the time that the intake is down.
Pivot The pivot is powered by a single Kraken motor on a 2-stage MAXplanetary gearbox. The 4:1 stages in the MAXplanetary (16:1) and the 12:48 sprocket reduction make a total of 42:1 overall reduction for the pivot. You can assess whether you want this much reduction on your own mechanism by using an arm calculator, but around 30:1 to 42:1 should be good for most intakes.
The MAXplanetary uses a 1:1 belt/pulley to transfer rotation to a long cross-axle. All custom pulleys have pockets for COTS metal inserts to prevent them from stripping. There are sprockets on either end of this cross axle, with chain going up to sprockets attached to the arm. This setup is to ensure both sides of the intake are moved up and down equally so there's no weird twisting forces on the intake.
For reducing backlash in the system, the 1:1 belt/pulley is exact center-center distance, and the chains are tensioned with inline tensioners. Large sprockets on the output of the arms are good as well for more teeth engagement with the chain.
For controlling the intake position, no absolute encoder is needed. You can zero the position when it is stowed and against the hardstop or have it rest on the ground when the robot is turned on, and use the relative encoder to take it to a specific position down. An Intake Pivot
Rollers and Roller Position The rollers are powered with a single Kraken motor with small reduction of 1.6:1; often, you want rollers to be spinning very fast, but still have enough torque to bring in game pieces without stalling the motor. Compression also matters a lot with this. You want to balance compression of a game piece so the intake can move it easily enough without needing too much extra torque from the motors. This is often why adding grippy material to the rollers instead of increasing compression is optimal.
There are 3 total rollers. Rollers often provide more consistent compression than wheels and are a great option for transporting game pieces. They are typically cheaper, lighter, and easier to put on a dead axle than wheels. Dead axles allow the intake arms to be connected by effectively long standoffs, making the assembly more rigid, while still allowing the rollers to spin on bearings. The dead axle rollers used in this project use polycarbonate tube and 3D-printed endcaps for the bearings and power transfer. We use Andrew Card's Configurable Rollers for the example intake, but you are also welcome to model your own rollers.
Configurable Rollers Document
Only 2 of the rollers are on the pivoting arm portion. The final one inside the frame perimeter is on a separate plate. This can keep the pivot for the intake arms lower, decreasing the vertical height of the intake when stowed. Roller positions influence the ball path.
Zombie Axles For transferring power to the rollers, because of the plates in the way and how small the pulleys are, it's necessary to transfer power through the axles (live axle). However, one of these axles is repurposed as a deadaxle by the sprockets attached to the intake arms. The sprockets are on bearings, and driven by chain, so they rotate independently from the axles used by the belts and pulleys. A setup like this, where power is transferred both through the axle and just on top of it for packaging purposes, is called a 'zombie axle'. A good way to explain a dead axle is that it is a dead axle, but the dead axle can also separately rotate. If you are having trouble visualizing this and have a 3d printer, try to print and assemble this 3d printed model.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#master-sketch","title":"Master Sketch","text":" - Sketch the side of your drivetrain and bumper profile
- Sketch the path of the ball over the bumper
- Sketch roller or wheel positions needed to get the game piece to move that way. Use the belt transmission tools you learned in 1B to dimension the location of the rollers. Decreasing the c-c distance by 0.02\" can help with ease of assembly and roller efficiency.
- Use a sketch circular pattern to represent the stowed position of your intake rollers and define where you want the pivot to be
"},{"location":"learning-course/stage2/2D-slapdownIntake/#part-studio","title":"Part Studio","text":" - Insert the origin cube (use the featurescript)
- CAD the front of your reference drivetrain or derive the tubes and modules from the another swerve drivebase you designed (e.g. from 2A). Make these a composite part. This is only for referencing.
- CAD the superstructure tube (mirror and add the mirror to the drivetrain composite for referencing). Use the assembly mirror featurescript to add mate connectors to the tube for easy assembly.
- Derive and transform the nut strips for referencing
- Design the plates based off of your master sketch
- Create the shafts using the shaft featurescript
- Create the intake arm and spacer to attach a sprocket to it
- Create a mate connector on the pivot point in the master sketch, owned by the origin cube. This is for creating motion in the top level assembly.
- Use your chosen belt/chain generator featurescripts to create the belts and chain
- Name and give materials and appearances to all your parts
"},{"location":"learning-course/stage2/2D-slapdownIntake/#assembly","title":"Assembly","text":"Just like the dead axle pivot, this subsystem contains a static part and a moving part. Again, we want to separate them into rigid (no movement) assemblies, then combine them at the top level.
Create an assembly for the static parts, insert the parts and origin cube from the part studio with the green checkmark, and group them together. Fasten the origin cube to the origin. Add the rest of the parts from the part studio, MKCAD, and standard content, using replicate and patterns when you can. For the rollers, insert them from the configurable rollers document.
Configurable Rollers Document
Create an assembly for the intake arms and do the same thing as above to complete the assembly and make it rigid.
Now create a top level assembly and insert the static assembly (fasten to the origin) and intake arm assembly. Create a revolute mate between the mate connectors from the origin cubes in both assemblies and add a limit to it. This completes the slapdown intake assembly.
"},{"location":"learning-course/stage2/2D-slapdownIntake/#summary","title":"Summary","text":"You've completed Stage 2D! To summarize what you've learned in this stage:
- Concepts behind designing an effective and robust intake
- Real application of a pivot
- Driving dead axle rollers
- \"Zombie\" Axles
- Intake master sketches and ball paths
- More practice with a mechanism with moving parts and the origin cube
Intakes like this one can be applied during a lot of years, but even if the mechanism type itself isn't used, many concepts, such as the pivot, zombie axle, and dead axle rollers can be reused for basically any mechanism moving or manipulating game pieces. In the next stage, you'll learn about a completely new mechanism with linear motion instead of rotation that can be used to extend part of your robot in a specific direction.
"},{"location":"learning-course/stage2/2E-cascadeElevator/","title":"E: Cascade Elevator","text":""},{"location":"learning-course/stage2/2E-cascadeElevator/#2h-cascade-elevator","title":"2H: Cascade Elevator","text":""},{"location":"learning-course/stage2/2E-cascadeElevator/#cascade-elevator","title":"Cascade Elevator","text":"Elevators pop up commonly in FRC and are used to move mechanisms in a compact linear fashion. This is usually to reach higher places with a mechanism, reach far out from your frame perimeter, or even climb on a field element. Elevators are typically classified by the way they are \"Rigged\". Elevator \"Rigging\" is what allows the motor to transmit motion to each stage. FRC elevators are usually rigged to be either \"Cascade\" or \"Continuous.\"
2468's Cascade Elevator and 4414's Continuous Elevator
Watch the following match videos to see 2468's 2023 Robot with a cascade-rigged elevator and 4414's 2023 Robot with a continuous-rigged elevator in action.
Elevators as designed most typically may be out of the scope of a lower-capability team because of the amount of custom metal parts that need to be bought or manufactured, but once you know how one works and have designed one, you may be able to make one with minimal manufacturing capabalities and time required. This page will be covering the design of a cascade-rigged elevator due to the availability of COTS parts for it and the minimal manufacturing that would need to be done.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#cascade-motion","title":"\"Cascade\" Motion","text":"Cascade elevators are characterized by the way the stages move. In a cascade rigged system, each elevator stage moves the same distance from its parent stage.
Cascade Motion"},{"location":"learning-course/stage2/2E-cascadeElevator/#comparison","title":"Comparison","text":"Pros Cons Cascade elevators are great when you just need to move a mechanism up and down and you don't need more than 3 Elevator stages to reach the desired height. While it is possible to make cascade elevators with more than 3 stages, designing the rigging gets harder, especially if you are width constrained. Usually things cannot be passed through a cascade elevator because of the rigging, while you can pass things through a continuous elevator. Cascade motion is faster than continuous due to the stages being linked together and continuous effectively being one long stage. The center of gravity is not optimal in the middle range of extension compared to continuous. All of the major Cascade Elevator components are available as COTS components, which means you can simply stock cascade elevator components and throw it together without worrying about custom manufacturing. The motors powering a cascade elevator need geared down more to counteract the natural upduction the cascade rigging adds."},{"location":"learning-course/stage2/2E-cascadeElevator/#project","title":"Project","text":"Because elevators are just mechanisms to move other mechanisms around, this project is similar to the dead axle pivot and will be designed without much context to learn the design process and components. You will get practice with designing elevators in the context of a robot in Stage 3.
The reference CAD model is provided. Model a copy of it in your own document. The mechanism design concepts, decisions made for this design, and a basic guide are all provided below.
Cascade Elevator Reference Document
"},{"location":"learning-course/stage2/2E-cascadeElevator/#key-components","title":"Key Components","text":"Elevators have some key components that differ from most other mechanisms, and it's important to understand all of them.
Elevator Blocks Every modern elevator will use some form of \"elevator block\" to allow the stages to slide past each other smoothly using bearings. Most teams will purchase elevator blocks from WCP or TTB instead of manufacturing them in-house (because of the time investment and machining capabilities of a typical team) but elevator blocks can also be made with plates instead of billet (see 2471 2018 Robot CAD).
The elevator featured in this guide uses the WCP Inline Clamping and Inline blocks, but different blocks from WCP or TTB could be substituted with little to no design changes besides the distance between the stages on the sides.
Chain Attachment Point Most cascade elevators use chain to power their initial stage; this chain can run either parallel or perpendicular to the face of the elevator, but the core concept is the same. The chain is bolted to the first stage of the elevator, and the rigging moves the other stages off it. The elevator design featured in this guide uses the TTB chain comb to bolt the chain to the first stage.
Rigging Elevator rigging typically takes up the bulk of the design process, as its the most important part of the elevator. Rigging style, and organization drives the motor mounting, and position of the crossmember the clamp plate is mounted to, so its important to properly plan out the cable paths.
Cable Clamp & Pulleys Cascade elevators function by moving a fixed length of cable from one side of a clamp to the other side of the clamp, to force the elevator up. This cable clamp is usually bolted to some form of crossmember. The elevator from this guide uses the TTB cable clamp to maintain consistency in rigging components (they come in a kit). The clamp consists of two plates; the first one is fastened to the tube and the second one is ONLY fastened to the first plate. You can choose to make access holes for the bolts or bolt all the way through the cross member with a crushblock.
Note
The WCP cable clamp uses a similar design but the fasteners go through both plates into the crossmember tube, sharing the clamping force with the crossmember.
Cable Ends The ends of the cable are arguably the most important part of elevator rigging to do right. If they are handled improperly it can cause issues with rigging falling apart during impacts; this usually takes the elevator (and anything requiring it to move) completely out of commission for the match. Cascade rigging consists of at least one loop of cable per stage, which drives the motion for the next stage.
To ensure smooth motion, these cables need tensioned. One of the best ways to tension these cables is through a ratcheting cable spool. The COTS solution is to use the WCP Ratchet Plate (though an easy homemade solution can be done by cutting the end off of a ratcheting wrench and fastening it to your mechanism), with a hex shaft acting as the spool. The hex shaft gets a hole drilled in it so the cable is forced to wrap around it.
It is important to tie a self-tightening knot in the cable to prevent this from coming undone under high load. This ratcheting spool only needs to be done on one side, with a simple fixed loop on the other side. To tension properly, you will need to loosen the clamping plate before adding tension. This is for two reasons: in order to maintain sync between the stages and so that the tension gets added to each side instead of just the side with the ratchet.
Power Gearbox Elevators need motors to power them. Once you have the rigging planned out you can figure out where you can fit the motors to drive the base elevator stage. There are many methods to power the base stage, but this guide will be using a vertical chain, and the TTB chain comb.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#master-sketches","title":"Master Sketches","text":"Elevator master sketches usually start with an extended side view so you can drive the length of it based off of the extension limits and your required beginning and end position for whatever mechanism you're moving. Though this elevator doesn't have that context, it's still useful to follow the same workflow of starting with a side sketch, which will contain most important dimensions but can be hard to conceptualize at first.
A clean view of the front sketch of the elevator tubes. As practice for stage 3, we'll start with defining the position of the elevator in relation to drivetrain side sketch. Use rectangles to represent the 2x2 tube and the length of the stages. Add rectangles to represent the bottom tubes of each stage and carriage as well. Feel free to create a retracted side sketch (constraining it to the geometry of the first side sketch) to help double check geometry and integration. This especially helpful when designing a full robot. Now add the front sketch to define all the elevator tubes, the width of the elevator, and the distance between stages on the side. \u276e \u276f Tip
Instead of creating \"extended\" and \"retracted\" views, you can separate the stages into their own individual side sketches to let you \"animate\" how it moves in the sketch. You can use configurations to do this.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#part-studio","title":"Part Studio","text":" - Add the
Origin Cube
feature and derive the master sketches if you made them in a separate part studio. - Use extrude individual to create the tubes (without creating only duplicates; this means only the bottoms of stages on one side).
-
Convert the extrusions into tubes.
Converting Extrusions into Tubes Tube converter is the easiest way to do this, as demonstrated before, but the hole pattern can break things and be misaligned pretty easily if the dimensions of the elevator end up changing. The most parametric way is to shell the tubes manually, then use a mix of sketches and linear patterns to create the hole pattern. This way you can build design intent into the hole pattern so it won't be misaligned with anything when dimensions change.
To create parametric hole patterns, you first use the Measure Value featurescript from CADSHARP to measure the length of the tube. You create your first hole at the top of the tube, then create a feature pattern or sketch pattern down the length of the tube with the distance of 0.5\" and the instance count set to ((#frame_side_tube/inch)*2)-1
. This method keeps the hole count parametric to the length of the tube.
-
Transform and copy the tubes to complete the structure.
Tip
At this point, as design lead, you could create mate connectors, subassemblies, and top level assembly, and hand off the elevator to other people to parallelize the process if that's how your team works.
-
Model any unique crushblocks
Info
Crushblocks and tube plugs are commonly used for most superstructures and elevators nowadays. Find out what they are and why they're useful on the design handbook page about structure.
-
Decide where you want your rigging (rope) and model it with a path, profile, and sweep.
- Derive the TTB chain comb into place on a first stage tube. This is for knowing how much to space the chain off from the tubes.
- Sketch the chain transmission and crossmember, including the bearing holes for the sprockets.
- Create the plates and tube for the crossmember. The clamp for the rigging will be mounted to the crossmember, but it's also for the rigidity of the base stage.
- Derive the TTB cable clamp into place on the crossmember and create mounting holes for it, and a crushblock if bolting all the way through the tube.
- Add holes for the tube plugs on the crossmember.
- Create the chain transmission, including the chain, any custom spacers, and axles
- Derive some maxplanetary parts to build the gearbox around. Create spacers and mounting for both maxplanetaries. Make sure to leave them easily accessible and replaceable
- Add plates at the bottom of the elevator to support the MAXplanetary shafts.
- Optionally, derive nut strips and a ratchet plate for the carriage and create the shaft for the rigging to be tied to.
- Create a reference mate in the middle of the base tube, owned by the origin cube, to later mate the subassemblies together with.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#assembly","title":"Assembly","text":"Because this subsystem has multiple moving parts, just like the dead axle pivot and slapdown intake, separate rigid subassemblies should be created for each stage.
Create an assembly for the static parts and follow the typical process for inserting them and creating a rigid body (origin cube, group, fasten to origin). Add the rest of the parts by duplicating existing parts, MKCAD, and standard content, using replicate and patterns when you can.
Do the same thing for the first stage subassembly.
And finally the carriage subassembly.
Now create the top level assembly, insert the subassemblies (fasten the origin cube of the static assembly to the origin), and use the reference mates on the origin cubes from the separate subassemblies to create slider mates with limits to define the motion of the elevator.
Because it's a cascade elevator, you can create \"linear relation\" between the two slider mates with a ratio of 1. This will link the motion together in the same way it would be in real life.
"},{"location":"learning-course/stage2/2E-cascadeElevator/#summary","title":"Summary","text":"You've completed Stage 2E! To summarize what you've learned in this stage:
- The concepts and key components of a cascade-rigged elevator
- The master sketch concepts and geometry for elevators
- Linear relations in assemblies
- The uses of tube plugs and crush blocks for tube assemblies
- More practice with a mechanism with moving parts and the origin cube
There's a lot of freedom for attaching mechanisms to this kind of elevator. If you mount it 90 degrees offset from the front of your robot, you can even create a passthrough mechanism that can move up and down. Once you practice more master sketch integration in the next stage, you will be able to replicate a robot with an angled elevator in the later part of Stage 3.
"},{"location":"learning-course/stage2/foamBallConveyer/","title":"2x: Foam Ball Conveyer","text":"Work In Progress
"},{"location":"learning-course/stage2/fourbarLinkage/","title":"2x: Four-bar Linkage","text":"Work In Progress
"},{"location":"learning-course/stage2/fourbarLinkage/#design-theory","title":"Design Theory","text":""},{"location":"learning-course/stage2/fourbarLinkage/#what-are-linkages-why-would-you-use-them","title":"What are linkages / why would you use them","text":"Four bar linkages are an alterative to the slapdown deployment method introduced in 2E {#TODO link}. Carefully designed linkages allow more design flexibility for space constrained designs or designs with difficult required positions for the intake rollers. By adjusting the layout sketch the end positions of the main intake plate can be translated and rotated as desired. A slapdown intake only rotates the intake, so will always end up with the intake being stowed vertically above its pivot point. A four bar intake could package the intake more tightly by translating a large intake closer to the bottom of the robot when stowed.
"},{"location":"learning-course/stage2/fourbarLinkage/#pneumatic-vs-motor-actuation","title":"Pneumatic vs Motor Actuation","text":"Motors are the most approachable actuation method for any mechanism. Four bar intakes are one of the most common places to use pneumatic cylinders however, and can present some situational benifits. Pneumatic cylinders can move complexity from the mechanical design of the mechanism being designed to the electronics area of the robot. Before deciding on using pneumatics in a design, keep in mind that it imposes the weight and volume of the pneumatic system components onto another area of your robot.
"},{"location":"learning-course/stage2/fourbarLinkage/#linkage-mechanical-advantage","title":"Linkage mechanical advantage","text":"TODO: graphics for mechanical advantage (avoiding over center)
"},{"location":"learning-course/stage2/fourbarLinkage/#creating-a-four-bar-linkage","title":"Creating a Four Bar Linkage","text":"This step by step guide walks through creating a four bar linkage to intake a 9\" foam ball. It is actuated by a pneumatic cylinder.
Alterate Video Tutorial By Nick Aarestad Four Bar Guide:
Step 1. First you need to understand the desired flow of the game piece through the intake (green arrow). Draw the bumper geometry, starting position of the game piece (touching the front bumper), and ending position of the game piece. Also draw several intermediate positions of the game piece along its path. Step 2a (left). Next define the extended position and retracted position of your intake rollers (left picture). The rollers should maintain contact and the desired compression of the game piece. In this case the rollers are dimensioned to be 7\" away from the bumpers and the leading roller is 7\" off of the ground. The retracted state of the intake must be within the frame perimeter of the robot, and should take up as little space as possible. The main intake plate holds the intake rollers, as well as the mounting points where the four bar linkage links will attach to the intake plate. In the picture on the left the linkage attachment points are defined using triangles. These attachment points must be at a consistent location relative to the rollers. Equals constraints are used on each one of those construction lines between the extended and retracted states to make sure they are the same. Step 2b (right). The positions of the intake rollers are typically full defined, but other points will need to be moved around as required to design a functional linkage. The linkage attachment points in the intake plate, and the linkage attachment points to the chassis should be moved around by hand until a reasonable geometry is accomplished. Then, as in the right picture, use dimensions to fully define the linkage. The attachment points to the chassis should be dimensioned, and some points will end up fully defined as a result of the geometric constraints. Fully Defined Layout Sketch: Step 4. (only if pneumatic) In this example a pneumatic cylinder will be used to actuate the linkage in and out. The longer solid line is the extended length of the cylinder and the shorter construction line is the retracted length of the cylinder. There are many other ways to arrange this linkage, including ones that act on the top arm instead of the bottom arm, or that result in the cylinder being retracted when the intake is extended. Define the point onto the link where the cylinder will attach (5.5\" dimension) at both the extended and retracted states of the linkage. The rear mounting point of the linkage will then be fully defined, and the linkage layout is complete. Step 5. Using proper parametric cad practice, you are now ready to sketch and extrude the plates for the intake and linkage. These should be where they will actually be in the assembly not on the center line of the part studio. Advanced sketching techniques can be used to ensure zero collisions or perfect fit between the links. Do not attempt this for your first design. Instead, make simple shapes, then check for interferences in the assembly and adjust the plates as needed until there are no collisions at both ends of travel. These plates will take serious intakes with other robots and the field, 1/4\" polycarbonate with significant margins around each hole (>0.5\") is recommended. Step 6. Four bar linkages can be quite complicated to assemble, and will not be as clean as a simpler assembly with fewer moving subassemblies. That said, be sure to use proper origin cube assembly practices when assembling your intake. This picture shows the fully assembled intake plates, as well as the pneumatic cylinder. It includes some other hardware for clarity such as the intake rollers but should not be taken as an example of a good design. Insert the four bar layout sketches into the assembly and make sure that the intake moves exactly as you expect it to. The image shows the retracted state of the intake where the pneumatic cylinder is fully retracted, and the plates match the layout sketch perfectly. If this is not the case you must track down the problem and fix it. [onshape link](https://cad.onshape.com/documents/9aeba443b3990c61c52d9613/w/fe0631a64edb24356a3dbe20/e/673191a338fd6c4480e9d624?renderMode=0&uiState=663e8f226d078f47b184758e) *[WCP]: West Coast Products *[REV]: REV Robotics *[TTB]: The Thrifty Bot *[OTB]: \"Over the Bumper\" typically used to refer to a style of intake where you lift the piece over the bumper *[UTB]: \"Under the Bumper\" typically used to refer to a style of intake where you move the piece under the bumper *[COTS]: Commercial Off the Shelf parts are anything you can buy from a vendor. *[V4B]: \"Virtual 4 Bar\" is where a second degree of freedom is directly geared of a previous degree of freedom instead of being moved independently or by a linkage. *[MCM]: Mcmaster Carr *[C-C]: \"Center to Center\" distance *[turnbuckle]: A threaded part that goes in between chain links to tension the chain *[COG]: Center of Gravity, also referred to as COM(Center of Mass) *[4Bar]: A type of linkage characterized by its 4 pivot points *[Deadaxle]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[Deadaxles]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[deadaxle]: A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. *[Liveaxle]: A type of axle setup where the main torque transfer is through the axle. *[liveaxle]: A type of axle setup where the main torque transfer is through the axle. *[Zombie-Axle]: Typically used on pivots a zombie axle spins with the mechanism, but is transferring little to no torque through it. This is commonly used to put an encoder on the pivot point. *[Tube-Nut]: Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. *[tube-Nut]: Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. *[Cantilever]: Horizontal Element that's supported by one side only. *[cantilever]: Horizontal Element that's supported by one side only. *[Shear]: When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. *[shear]: When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. *[Torque]: Force that produces rotational movement. *[torque]: Force that produces rotational movement. *[PDH]: Power Distribution Hub. *[SparkMAX]: Motor controller for REV motors. *[PWM]: Pulse Width Modulation cable. *[RIO]: RoboRIO, brain of the robot. *[Blinkn]: LED controller for REV. *[Radio]: Device that helps the robot communicate with the driver station. *[radio]: Device that helps the robot communicate with the driver station. *[3DP]: Abbreviation for 3D printed or 3D printing. *[Gusset]: Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. *[gusset]: Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. *[poly]: Abbreviation for polycarbonate. *[Poly]: Abbreviation for polycarbonate. *[pc]: Abbreviation for polycarbonate. *[PC]: Abbreviation for polycarbonate. *[Stripping]: Process of removing threads or bolt heads, often due to excessive force or wear. *[stripping]: Process of removing threads or bolt heads, often due to excessive force or wear. *[Tapping]: The process of creating threads in a hole using a tap tool. *[tapping]: The process of creating threads in a hole using a tap tool. *[Billet]: Component machined down from a solid block of material. *[billet]: Component machined down from a solid block of material. *[Brainpan]: Flipped electronics bellypan. *[brainpan]: Flipped electronics bellypan. *[bellypan]: Plate for mounting electronics on the underside of your drivebase. *[Bellypan]: Plate for mounting electronics on the underside of your drivebase. *[hardstop]: A physical limit designed to prevent a mechanism or component from moving beyond a certain point. *[softstop]: A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. *[Hardstop]: A physical limit designed to prevent a mechanism or component from moving beyond a certain point. *[Softstop]: A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. *[DP]: Diametral pitch is the number of teeth per inch of the pitch circle. *[packaging]: The way in which you fit parts of your robot together in a space *[Packaging]: The way in which you fit parts of your robot together in a space *[backlash]: 'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system *[Backlash]: 'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system *[parametric]: Designed in a way that uses relationships between steps to maintain design intent *[Parametric]: Designed in a way that uses relationships between steps to maintain design intent"},{"location":"learning-course/stage2/pastaRollerIntake/","title":"2x: 2023 Pasta Roller Intake","text":"
Work In Progress
"},{"location":"learning-course/stage3/","title":"Stage 3","text":"In this stage you will practice full robot master sketches, replicate simple robots, and practice top-down workflow and integration
Under Construction
"},{"location":"learning-course/stage3/3A-MSpractice/","title":"3A: Master Sketch Practice","text":"Welcome to stage 3! In this stage we focus on practicing top down design and master sketching. Best practices for robot document organization, part studios, and assemblies, are included in the best practices category. Please go through this before continuing with the section.
Coming Soon
"},{"location":"learning-course/stage3/3B-973-2020/","title":"3B: Replicating 973's 2020 Robot","text":"In this stage, we focus on integration and putting everything together into one cohesive project. We'll be designing two robots, a 973 2020 style shooter robot, and a 973 2023 pick and place robot. These hit many of the fundamentals necessary in order design a robot, and by the end you should be prepared for designing robots in the season with some practice in the intermediate stages.
WIP
"},{"location":"learning-course/stage3/3C-973-2023/","title":"3C: Replicating 973's 2023 Robot","text":"WIP
"},{"location":"mechanism-examples/","title":"Mechanism Examples","text":"\"Steal from the best, invent the rest\" - Mike Corsetto, Head Coach of Team 1678. There's nothing that hasn't already been done; don't ever be afraid of taking inspiration from designs of other robots, especially when designing in a build season. Both for design reference and for learning about different executions of different mechanisms, a library of a wide variety of mechanisms is being compiled here.
Note
A CAD link has been provided when available, but examples without CAD can still be useful to look at with Behind The Bumpers videos and ChiefDelphi threads.
Contribution
This library of mechanism examples could always be expanded. Follow the methods of contributing page to add your own examples or help write \"Behind the Design\"s for existing examples.
-
Swerve drivebases with examples of electronics layout
Swerve Drivebases
-
Mechanisms designed to shoot gamepieces
Shooters
-
Over-the-bumper intakes deployed with a four-bar linkage
Four-bar Intakes
-
Over-the-bumper intakes deployed with a single pivot
Slapdown Intakes
-
Elevators rigged continuously with belt or string
Continuous Elevators
-
Elevators rigged in a cascading fashion, with each stage linked to the last
Cascade Elevators
-
Different pivot designs, usually for arms
Pivots
"},{"location":"mechanism-examples/drivebase/","title":"Swerve Drivebases","text":"The drivebase is the single most important part of your robot, providing a bed for every other subsystem to build off. Examples of different drivebases can provide inspiration for electronics layout, bellypan shapes, and structural cross members for mounting, all of which can be a hard but crucial part of designing a robot, as accessibility and maintainability need to be preserved even as subsystems get placed on top of the robot.
-
A custom plate to keep the radio and breaker accessible, holes with grommets to allow wires to pass through the cross members
2910 Charged Up Drivebase
-
A central 2x2 cross member, a brainpan, and citrus bumper mounting plates.
972 Brainpan Drivebase
"},{"location":"mechanism-examples/drivebase/2910/","title":"2910's Charged Up Drivebase","text":""},{"location":"mechanism-examples/drivebase/2910/#2910-charged-up-drivebase","title":"2910 Charged Up Drivebase","text":"Swerve drivetrain featuring MK4I swerve modules, a pocketed bellypan, and a billet brass frame-rail for weight distribution."},{"location":"mechanism-examples/drivebase/2910/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/drivebase/2910/#behind-the-design","title":"Behind the Design","text":"This drivebase embodies all fundamentals of good drivebase design, including the following features:
"},{"location":"mechanism-examples/drivebase/2910/#rigidity","title":"Rigidity
","text":"This drivebase is constructed primarily from 1/8 inch box tube, with important cross-members providing rigidity to the structure. Drivebases must be built extremely tough, as they will experience the brunt of each collision while robots travel across the field at high speed. The bellypan offers extra rigidity by holding the frame members parallel with each other."},{"location":"mechanism-examples/drivebase/2910/#electrical","title":"Electrical
","text":"Holes in the drive-rails allow electrical teams to easily route wires to where they need to go. Holes cut into aluminum may have sharp edges, so it's important to cover them with rubber grommets! The robot's bellypan should have mounting holes for most of the major electronics designed into it. This allows for easy and secure fastening of components like the PDH, and reduces the chances of electronics coming lose in competition. The drivebase usually serves a double purpose as a robot's electrical hub, so it's important to take electronics into consideration. While looking through the CAD, you may notice several key aspects of this drivebase that intentionally accommodate electronics including...
- Pocketed bellypan serves a double purpose of both weight reduction, and providing many points to secure wires with zip-ties.
- All electronics have pre-designed mounting holes
- Holes in the frame-rails around the PDH allow for easy wire routing while keeping wires low in the bellypan and out of the way.
"},{"location":"mechanism-examples/drivebase/brainpan/","title":"972 Brainpan Drivebase","text":"Swerve drivetrain featuring the \"brainpan\" style of electroncis mounting."},{"location":"mechanism-examples/drivebase/brainpan/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/drivebase/brainpan/#behind-the-design","title":"Behind the Design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/cascade/","title":"Cascade Elevators","text":"Cascade elevators help move other mechanisms vertically. The first stage is driven directly and the subsequent stages are linked with loops of line, causing all the stages to extend up an equal amount. This is the \"cascading\" motion. They are generally faster than continuous elevators but the typical design doesn't allow anything to pass through the stages.
"},{"location":"mechanism-examples/elevator/cascade/2stage/","title":"2 Stage Cascade Elevator","text":"Chain driven 2 stage elevator featuring a plate based carriage. Uses TTB COTS Rigging and WCP Elevator Blocks."},{"location":"mechanism-examples/elevator/cascade/2stage/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/elevator/cascade/2stage/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/cascade/3stage/","title":"3 Stage Cascade Elevator","text":"Chain driven 3 stage elevator featuring a plate based carriage. Uses TTB COTS Rigging and WCP Elevator Blocks."},{"location":"mechanism-examples/elevator/cascade/3stage/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/elevator/cascade/3stage/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/continuous/","title":"Continuous Elevators","text":"Continuous elevators are great when you need a lot of extension distance, high stage overlap, or elevator passthrough.
-
Similar to 1678's 2023 Elevator, 3-stage, driven by a spool and line, with unique power transmission
External Cable Driven Elevator
-
A 3-stage belt-driven continuous elevator with a tube carriage, belts tensioned by cams, and WCP bearing blocks
Internal Belt Driven Elevator
"},{"location":"mechanism-examples/elevator/continuous/belt/","title":"Internal Belt Elevator","text":"Internally rigged with two massive HTD5 timing belts, makes for an extremely small footprint"},{"location":"mechanism-examples/elevator/continuous/belt/#link","title":"Link","text":"CAD Document
"},{"location":"mechanism-examples/elevator/continuous/belt/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/elevator/continuous/cable/","title":"External Cable Driven Elevator","text":"Externally rigged cable driven elevator, utilizing the throughbore capabilities of the NEO vortex to simplify the power delivery."},{"location":"mechanism-examples/elevator/continuous/cable/#link","title":"Link","text":"CAD Document
"},{"location":"mechanism-examples/elevator/continuous/cable/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/4bar/","title":"Four-Bar Intakes","text":"The four-bar style of over-the-bumper intakes is very common in situations where your packaging is constrained vertically but not horizontally.
-
Extremely simple four-bar intake with compliance wheels, motor driven with chain
1678's Rapid React Intake
-
Simple four-bar intake with deadaxle rollers for a more rigid design
Andrew's Clean Four-Bar Intake
-
Another example of a four-bar intake with deadaxle rollers but with a different power transmission setup
Vaughn's Four-bar Intake
"},{"location":"mechanism-examples/intake/4bar/1678/","title":"1678's Rapid React Intake","text":""},{"location":"mechanism-examples/intake/4bar/1678/#1678s-2022-intake","title":"1678's 2022 Intake","text":"Motor driven 4 bar intake designed to take up minimal horizontal space"},{"location":"mechanism-examples/intake/4bar/1678/#link","title":"Link","text":"CAD Document
"},{"location":"mechanism-examples/intake/4bar/1678/#behind-the-design","title":"Behind the design","text":"4 bar OTB intakes are built to pull gamepieces off the floor and into the robot, but to do so they put themselves in a precarious situation. Sitting outside the robots frame perimeter, they are susceptible to damage from collisions with the field and other robots. All OTB intake designs are heavily influenced by the design requirements to be robust against impacts and damage, fast, and light.
Always include a way to tension your chains! OTB intakes must actuate quickly and accurately, so a motor is a good choice to power them. 1678 used a single Falcon 500 with a 30:1 ratio. This intake featured a torque transfer shaft (highlighted yellow in the image) to transfer power to both sides of the intake. Driving both sides of the intake pivot prevents the entire intake from bending under the loads of extension and retraction. The pivot itself is driven by chain on a 32t plate sprocket. Using a chain for the final reduction and power transmission is optimal due to its ability to absorb shock loads. These screws and washers prevent bearings from popping out during impacts. The intake rollers are powered by a Falcon 500, and power is transferred using HTD 5mm timing belts. The intake is designed with the \"touch it own it\" design philosophy, and it spans the full width of the robot to make intaking as easy as possible for the driver. The intake is \"geared\" (using belt and pulley reductions) so that the surface speed of the rollers are approximately 2.5x the speed of the robot. This allows the robot to intake balls even while driving into them at full speed. Each level of wheels is also belted together such that they have equal surface speeds, despite their different diameters. It is important to take the diameter of your intake wheels/rollers into account because it may effect their surface speeds. This intake takes many special considerations to increase its survivability and robustness
The first stage of rollers has two belts powering it for redundancy, just in case one belt is damaged. Pulleys feature extra-large flanges to prevent belts from slipping off. Intake plates are manufactured from 1/4\" polycarbonate, which is the most common intake material due to its strength to weight ratio and ability to return to its original shape after deforming. This intake has extra aluminum reinforcement on the areas most susceptible to breaking. Intake hardstopped in its down position. Intake hardstopped in its up position 1678 designed their intake polycarbonate plates to hardstop on each other in both the fully extended and retracted positions. This makes programming the intake easier, and helps the robot pass inspection by proving that the intake cannot extend past the frame perimeter extension limit. In a pneumatically actuated intake, having the pivot plates hardstop allows for some error margin on the pneumatic piston's stroke.
"},{"location":"mechanism-examples/intake/4bar/1678/#see-this-intake-in-action-here","title":" See this Intake in Action Here
","text":"Tip
Click the images to watch the videos.
"},{"location":"mechanism-examples/intake/4bar/clean/","title":"Andrew's Clean 4 Bar","text":"Motor driven 4 bar intake designed to be as simple as possible, utilizing deadaxle rollers"},{"location":"mechanism-examples/intake/4bar/clean/#link","title":"Link","text":"CAD Document
"},{"location":"mechanism-examples/intake/4bar/clean/#behind-the-design","title":"Behind the Design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/","title":"Vaughn's 4bar Intake","text":"Motor driven 4 bar intake designed to be as simple as possible, utilizing deadaxle rollers"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/#link","title":"Link","text":"CAD Document
"},{"location":"mechanism-examples/intake/4bar/vaughn4bar/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/","title":"Slapdown Intakes","text":"The slapdown style of \"Over the Bumper\" intakes is very common in situations where your packaging is constrained horizontally, but not vertically.
-
Pivot driven by chain and a torque transfer bar, separate stationary wheel axles, bent polycarb funnel, mounted with nutstrips
4414-Style Intake
-
Very different from most modern intakes, it helps center heavy gamepieces through a gap in the bumpers, driven by chain with a deadaxle pivot
Washed's Beavertail Intake
-
Some rollers are decoupled so the pivot for the intake can be lowered below the ball path
Low Pivot Slapdown Intake
-
Uses rollers to center a piece against bent polycarb, then flips it back for a passthrough. Examples of how to mount cameras and sensors to allow more automation
6423's 2024 Flip Intake
"},{"location":"mechanism-examples/intake/slapdown/4414style/","title":"4414 Style Slapdown Intake","text":"A coaxial slapdown design popularized by Team 4414 | HighTide"},{"location":"mechanism-examples/intake/slapdown/4414style/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/intake/slapdown/4414style/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/6423otb/","title":"6423 Crescendo Flip Intake","text":"This common 2024 design was inspired by the ri3d team Cranberry Alarm. It is distinct from the traditional \"passthrough\" intake design, not letting the note travel fully through the intake."},{"location":"mechanism-examples/intake/slapdown/6423otb/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/intake/slapdown/6423otb/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/low/","title":"Low Pivot Slapdown Intake","text":"A special coaxial slapdown design popularized by Team 4414 | HighTide, that incorporates fixed rollers to aide in indexing, that overlap with the moving intake arms for compact packaging"},{"location":"mechanism-examples/intake/slapdown/low/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/intake/slapdown/low/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"mechanism-examples/intake/slapdown/washed/","title":"Washed's Beavertail Intake","text":"A slapdown from a different era of FRC commonly known as a \"Beaver Tail\" intake. It incorporates sideways belts to center a gamepiece through a gap in the bumpers"},{"location":"mechanism-examples/intake/slapdown/washed/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/intake/slapdown/washed/#behind-the-design","title":"Behind the design","text":""},{"location":"mechanism-examples/intake/slapdown/washed/#simplicity","title":"Simplicity","text":"This intake features a classic \"Beavertail\" design that was popularized in 2012, and has stuck around as a niche way to intake small-medium sized balls through a bumper cutout without sacrificing on acquisition zone.
This intake utilizes the spinning section of a NEO Vortex, and MAX90 Gearbox to achieve really simple packaging"},{"location":"mechanism-examples/intake/slapdown/washed/#serviceability","title":"Serviceability","text":"Even though this intake is built like a tank, anything extending outside of your robots's frame perimeter needs to be designed for serviceability. The Washed Beavertail Intake achieves this by using an intermediary plate between the 1x1 tubing arms and the pivot sprocket. If you build a second identical intake you can quickly swap them even with the tightest match schedule.
By having a middleplate the entire intake can be taken off with 6 easy to access bolts."},{"location":"mechanism-examples/intake/slapdown/washed/#robustness","title":"Robustness","text":"This intake uses a 7/8\" Aluminum Tube with a bushing to achieve smooth strong movement on the pivot. 7/8\" Bushings are great because the common offerings have a 1.125\" OD making them compatible with most COTS sprockets. The 7/8\" tube extends into the frame tube to take load off the Tube-Nut at the end of the tube.
"},{"location":"mechanism-examples/pivots/","title":"Pivots","text":"Rotating arms are a key mechanism in FRC\u00ae robotics. They are often essential in the deployment and manipulation of mechanisms.
-
Double jointed arm, high pivot, A-frame structure, stub axles
6328 A-Frame Pivot
-
Chain-driven custom dead axle pivot, electronics and camera mounts, rotating final stage tensioning
2910 Dead Axle Pivot
"},{"location":"mechanism-examples/pivots/2910pivot/","title":"2910 Dead Axle Pivot","text":""},{"location":"mechanism-examples/pivots/2910pivot/#2910s-2023-dead-axle-pivot","title":"2910's 2023 Dead Axle Pivot","text":"This dead axle pivot was created by 2910 just recently in the 2023 season and has already been utilized by a number of different teams, including Hall of Fame Team 359 Hawaiian Kids that next year in 2024, who ranked #20 in the world using this pivot as the base for their robot."},{"location":"mechanism-examples/pivots/2910pivot/#links","title":"Links","text":"CAD Document
CAD and Tech Binder Release ChiefDelphi Thread
Match Video
"},{"location":"mechanism-examples/pivots/2910pivot/#behind-the-design","title":"Behind the Design","text":"The pivot is driven by 2 mirrored dual falcon 500 gearboxes. These gearboxes are incredibly compact and are designed immaculately to reduce part count. The first stage gear shaft is a piece of \u00bd\u201d Hex shaft turned down to 13.75mm (thunderhex) on each end, which fully constrains each flange bearing as long as the two plates are compressed.
All of these plates are heavily lightened to make the robot light, increase the acceleration capabilities (F=ma), and keep the center of gravity low. The gearboxes and even motor placement on the gearboxes are as low and central as possible to improve the robots center of mass. Lower center of mass helps to reduce tipping and gives the robot an advantage in pushing battles.
The second stage shaft runs across the robot to link the two gearboxes. These second stage gears are cantilever to reduce gearbox size, and are properly supported with two bearings on each end.
Wheel Support Reference from REV ION Robot Basics Guide The third stage ingeniously doubles as a tensioner arm for the final chain run reduction to the main pivot. Using a chain for the final reduction and power transmission is optimal due to its ability to absorb shock loads. Tightening the bolt here pulls the lever, applying tension to the chain. The entire tensioner pivots around the 2nd stage shaft, using the existing bearing. The planet (larger) gear rotates around the sun (smaller) gear. The planet gear & sprocket shaft uses the same \u00bd\u201d to 13.75mm diameter hex shaft technique to reduce part count.
The main pivot itself is a massive dead axle fixed into the triangular superstructure. Triangles are strong! This (almost) right angle superstructure is incompressible, as when a force is applied to compress any side there is always an opposite side in tension to counteract that force.
"},{"location":"mechanism-examples/pivots/6328pivot/","title":"6328 A-Frame Pivot","text":""},{"location":"mechanism-examples/pivots/6328pivot/#6328-a-frame-pivot-2023","title":"6328 A-Frame Pivot 2023","text":"This triple pivoted design folded in on itself to start inside frame perimeter, and allowed for a near universal manipulation of the robot\u2019s end effector."},{"location":"mechanism-examples/pivots/6328pivot/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/pivots/6328pivot/#behind-the-design","title":"Behind the Design","text":"In many cases, pivoting arms are a fundamental mechanism in the architecture of a robot. Thus, rigid, robust, and fast pivoting mechanisms can make or break a good design. A failure in the pivot of a design like this would put completely put a robot out of commission.
Robots with lower COG's are less likely to tip and have the advantage in pushing battles! The main pivot is powered by a custom 2 NEO high-reduction gearbox that is integrated into the A-Frame of the pivot. This is the most important pivot on the robot, since it moves the most mass. For those reasons want as much power as possible here, so two-four motors is ideal. MAXPlanetaries are not rated for the forces expected to be applied in this gearbox, so a custom gearbox is a necessity. The gearbox is placed as low as possible to lower the COG of the robot. The gearbox drives a Super Max Spline shaft, which is a Max Spline shaft reinforced with an interal aluminum tube. Using this liveaxle takes the load of the pivot off of the gearbox and onto an incredibly heavy duty shaft. All of the Max Spline on this robot is reinforced Super Max Spline, except for the main pivot joint. Internal aluminum tube reinforces the main drive shaft. The main pivot joint is supported vertically on each side by 2 angled 1x1 shafts and a 2x1 shaft. Triangles are strong! The A frame is a triangle, and the vertical 2x1 splits each side into two more mirrored triangles. With the plates clamping on both sides this thing is bulletproof. Plates are not lightweighted at the bottom in order to lower COG and because these parts are fixed to the superstructure, so their weight doesn\u2019t limit the rotational speed of the pivot.
A-Frame superstructure side view. Static triangle load distribution breakdown. Triangles are the only shape which are not collapsable when a force is applied to any side. The main pivot is driven on both sides by long runs of chain to prevent torsion (twisting of the arm). These long runs of chain allow for inline tensioners to eliminate backlash in the pivot. The maxspline here is a live axle. There are bearings in the blue plates that are constrained from the outside with button head cap flanges and on the inside with 3d printed spacers. The large axle collar in between the two plates prevents the spline from sliding. The second arm section is rigidly bolted to both the sprocket and the maxspline shaft. There is tiny Zombie-Axle shaft with a gear on it rigged 1:1 with the main shaft to measure the rotation of the shaft directly for more accurate positioning. It doesn\u2019t need a bearing, the shaft just spins with the inside of the encoder!
Main pivot side view. Bearing retention using button head machine screw flange."},{"location":"mechanism-examples/pivots/6328pivot/#see-this-pivot-in-action-here","title":" See this Pivot in Action Here
","text":"Tip
Click the images to watch the videos.
"},{"location":"mechanism-examples/shooter/","title":"Shooters","text":"For all your piece launching needs. Shooter designs vary slightly with different size and shaped pieces, but the general concepts of what makes a \"good\" shooter tend to stay the same.
-
For very small balls, clever packaging and design for a hooded shooter
Andrew's Hyperhive Shooter
-
For 9.5\" balls, with a rack hood and a limelight mount
1678's Rapid React Shooter
"},{"location":"mechanism-examples/shooter/citrus/","title":"1678's Rapid React Shooter","text":""},{"location":"mechanism-examples/shooter/citrus/#1678s-2022-shooter","title":"1678's 2022 Shooter","text":"Integrated hooded shooter and indexer for simplicity. This design is optimized to shoot large balls as accurately and consistently as possible."},{"location":"mechanism-examples/shooter/citrus/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/shooter/citrus/#behind-the-design","title":"Behind the Design","text":"Hooded ball shooters all follow the same fundamental design principles, in an effort to produce the most consistent and accurate shots possible. These can be broken down to the following ideas:
- Maximize contact time with the game piece you are shooting. This benefits shot consistency as it gives the gamepiece more time to match the speed of the flywheels.
- Ensure your shooter can aim with adequate precision.
- Ensure your flywheels have enough mass to hold a consistent speed throughout the shot.
- In some cases, spin can be beneficial.
Learn more about the 2022 game: Rapid React Game Reveal
Hooded shooters in 2022 featured backrollers for one main purpose: Controlling backspin. A unique aspect of the 2022 game was the high goal that robots were required to shoot into. The geometry of the goal led many teams to find that their shots bounced out with high backspin. As a remedy, teams added backrollers to their shooters that were geared to spin in the opposite direction as the main flywheel. This reduced backspin on the balls to a manageable amount, but in some cases left just a little bit. This is due to the aerodynamics of spinning balls; thanks to the Magnus effect, backspin on rapid react balls helped them arc better into the high goal, and increased their stability in flight for long distance shots. Hooded shooter flywheels typically use TTB Urethane Wheels or Stealth Wheels. It is important that your flywheels maintain enough mass to hold a constant speed throughout the shot, to ensure consistent shots. Increasing the mass of your flywheel will increase it's moment of inertia, which in turn will increase its consistency. Games in which you can hold and shoot multiple pieces at a time such as Rapid React and Infinite Recharge especially necessitate massed flywheels. The 1678 shooter in 2022 utilized two SDS flywheels for its mass. The most common method of pivoting a hooded shooter is a rack and pinion. 1678 utilized a 3DP rack integrated with their shooter's \"hood,\" and a smaller gear that \"climbed\" the hood gear. This simple design allows for precise actuation of the hood to a wide range of angles."},{"location":"mechanism-examples/shooter/citrus/#see-this-shooter-in-action-here","title":" See this Shooter in Action Here
","text":"Tip
Click the images to watch the videos.
"},{"location":"mechanism-examples/shooter/small/","title":"Andrew's Hyperhive Shooter","text":"Small form factor shooter designed to shoot a high volume of tennis balls at a fast rate. Large overdriven flywheel increases shot consistency when firing large quantities of tennis balls"},{"location":"mechanism-examples/shooter/small/#links","title":"Links","text":"CAD Document
"},{"location":"mechanism-examples/shooter/small/#behind-the-design","title":"Behind the design","text":"Coming Soon
"},{"location":"resources/","title":"Resources","text":"This section includes resources that you may find useful to help improve your knowledge of mechanisms, help you understand the rest of the site better, and assist your CAD workflow.
"},{"location":"resources/#sections","title":"Sections","text":""},{"location":"resources/#glossary","title":"Glossary","text":"The glossary is a compiled list of words (including acronyms and abbreviations) and definitions to help people understand the lingo used in various parts of the website and on the discord server. When you find one of these words across the site, it will be underlined, and you can hover over it to see the definition.
"},{"location":"resources/#cad-resources","title":"CAD Resources","text":"A collection of resources to support your workflow in Onshape, relevant to FRC.
Featurescripts: A list of FRC-relevant featurescripts and how to add them (includes some short tutorial videos).
Simplified Models: A collection of simplified models of COTS parts to reduce load time (see the importance of this in assembly best practices). These have been already mostly added to the MKCAD App.
Configurables: A collection of configurable parts or assemblies that aren't in MKCAD that could assist your design.
KrayonCAD: A resource now integrated with MKCAD that allows people to quickly model out robot architectures.
"},{"location":"resources/configurables/","title":"Configurables","text":"Parts in FRC such as printed pulleys can be standardized. Here is a list of common ones:
- Configurable HTD5 pulley with insert
Coming Soon
"},{"location":"resources/featurescripts/","title":"Featurescripts","text":"Onshape has its own scripting language to create custom features to automate aspects of design called Featurescript. There are a lot of featurescripts (what we call the custom features) that make designing for FRC much easier.
"},{"location":"resources/featurescripts/#how-to-install-featurescripts","title":"How To Install Featurescripts","text":" - Open any Onshape document and go inside of a part studio
- Click the rightmost button on the toolbar
- Note: If you have previously added any Featurescripts one of those may show up as the right most icon. In that case click the dropdown to show the add button.
-
Paste the link of the document with the featurescript(s) in it into the search bar
- Note: Some of the below featurescripts exist in the same document, so you can add multiple from the same link.
-
Select the featurescript(s) you want to add to your profile, then exit the box. They will be accessible in all documents from then on in the same drop-down in the toolbar where you added the feature.
Video Tutorial
Adding Featurescripts while in a Featurescript Document
When viewing a tab in a document that uses custom features, you can click a button near the top left that says 'custom features'. From here you can add custom features used in the document to your profile.
"},{"location":"resources/featurescripts/#troubleshooting-and-updating-featurescripts","title":"Troubleshooting and Updating Featurescripts","text":"If a featurescript is not working as expected, the current version might be broken. You might have to update the featurescript. If it needs updating, the feature will show a blue icon to the right of it that, when hovered over, will say \"change version of linked document.\"
- The first way to update it is by individually by right clicking the feature you want updated in the feature list and clicking \"Update linked document...\"
- The second, and slightly more permanent way (until the maintainer of the custom feature creates a new version), is by right clicking any of the featurescript icons in your toolbar or in the custom features dropdown and clicking \"Update...\" or \"Update all...\" From there, you can see the current versions of the custom features you have added to your profile and update selected ones to use the current latest version when you use a featurescript.
Video Tutorial
"},{"location":"resources/featurescripts/#list-of-featurescripts","title":"List of Featurescripts","text":""},{"location":"resources/featurescripts/#bundles","title":"Bundles","text":"The below links contain several featurescripts each that you can add all at once. The more useful featurescripts from each bundle are demonstrated further below.
Julia's Featurescripts
Alex's Featurescripts
Abhi's Features & Configs
2471 Featurescripts
TLamp's Featurescripts
CADSHARP's Featurescripts
"},{"location":"resources/featurescripts/#structure","title":"Structure","text":"Extrude Individual (Julia's Featurescripts)
- Can extrude multiple regions as different parts with one feature, even if regions are adjacent
- Commonly used with tube converter to make punched aluminum tubes from a top view sketch
Video Tutorial
Tube Converter (Julia's Featurescripts)
- Converts extrusions into punched tube, with customization and presets for hole pattern, wall thickness, and profile.
Video Tutorial
Gusset Generator (Julia's Featurescripts)
- Generate a gusset from hole selections
- Warning: Not a very parametric featurescript and causes lag, but can be useful in a pinch
FilletXpert (Fillet All Edges) (Julia's Featurescripts)
- After selecting a face, it adds a fillet to the corners of that face (all edges normal to the selected face)
Video Tutorial
Shaft Generator (Julia's Featurescripts)
- Generates a shaft, with options for hex, rounded hex (13.75mm OD), MAXSpline, etc.
- Options for retention type on both ends
- Can be generated in-place and with offsets
Video Tutorial
Spacer Generator (Julia's Featurescripts)
- Generates a spacer, with options for round, 3/8\" hex, and 1/2\" hex
Video Tutorial
Robot Spacer (Alex's Featurescripts)
- A more complex alternative to Julia's spacer generator, if you need more config options
Electronics Mounting (Julia's Featurescri pts)
- Generates hole patterns for different electronic components using center points and mate connectors on sketches
MechSketch (TLamp's Featurescripts)
- Incredibly useful, generates sketch profiles for a variety of things
- Profiles for COTS parts like Maxspline, TTB inserts, maxtube, motors, and the versa patern
- Profiles and holes for all electronics
- Profile generator for pulleys and a spur gears
"},{"location":"resources/featurescripts/#power-transmissions","title":"Power Transmissions","text":"Belt Gen
- Generates a belt path from belt pitch diameter circles
- Allows for multiple pulleys, tensioners, and double sided belts
- Options for simplified or realistic models
- Calculates resulting belt length
Video Tutorial -->
Chain Gen
- Generates a chain path from sprocket pitch diameter circles
- Allows for multiple sprockets and tensioners
- Options for simplified or realistic models
- Calculates resulting chain length
Video Tutorial -->
Belt & Pulley Generation (2471 Featurescripts)
- Configurable belt and pulley generation
- Belt width, pulley tooth count, offset and fit adjustment, belt type, etc.
- Options for bore and flanges for both pulleys
Timing Belt Pulley Generator
Sprocket (Abhi's Features & Configs)
- Generate a sprocket for common types of chain
Spur Gear (Alex's Featurescripts)
- Generates a spur gear with with many different options
- Can be useful for 3D-printed parts.
Thrifty Insert
- Cuts a profile in a part at a given location and depth to fit a thriftybot insert into, for 3D-printed parts to stop them from stripping while being driven on an axle.
Polybelt Generator (2471 Featurescripts)
- Generates polycord and pulleys based off of selected points
"},{"location":"resources/featurescripts/#pocketing","title":"Pocketing","text":"Part Lighten (2471 Featurescripts)
- Better than \"Lighten\" and more complex than \"Vent\"
- Better control over ribs, cut depth, fillets, etc.
- Gives a nice estimate of how much weight is being saved
Vent
- Used for pocketing and lightening plates
- Uses sketch regions to determine pocket and rib placement
Video Tutorial
Lighten
- Less optimized and breaks more then vent.
CheeseIt! (TLamp's Featurescripts)
- Advanced lightening pattern generation
- Isogrid, hexagon, or circle pattern
PatchIt! (TLamp's Featurescripts)
- Patches specified pockets in a part
"},{"location":"resources/featurescripts/#manufacturing","title":"Manufacturing","text":"Auto Layout
- Given some derived plates, either transformed from an in-context assembly (to maintain part count) or derived from a part studio, it will automatically lay them out into sheets of a given size, sorted by thickness. This is used to prepare a file to route or waterjet parts out of material with a machine.
Measure Cut List
- Creates a table of measurements
- Great for creating cut lists for parts
Laser Joint
- Highly configurable featurescript that generates tab joints between overlapping parts
- Options to make it easier for cnc routers to cut parts
- Can use for bumper wood corners
Dogbone and Corner Overcut
- Features to make it easier for cnc routers to cut cavities in parts
"},{"location":"resources/featurescripts/#onshape-functionality-extensions","title":"Onshape Functionality Extensions","text":"Origin Cube Featurescript
- Used to create an origin reference for assembly mating
- Optionally import design constants like bolt hole sizes, heat set insert hole sizes, etc
- Optionally import functions for calculating gear OD, pulley/sprocket pitch & outer diameters, and calculate belt/chain c-c distances
- See Assembly Best Practices for more information on usage
Video Example
Measure Value
- An extremely useful featurescript
- Creates variables from measured values
- Useful for creating parametric patterns, including hole patterns
Assembly Mirror
- Adds reflected mate connectors to a part so you can easily mate it reflected across a plane in an assembly (does not mirror geometry).
Set Materials (Abhi's Features & Configs)
- Parametrically set materials and appearances of parts in batches
Set Properties (Abhi's Features & Configs)
- Sets properties of parts in batches
2471's Part Numbering (2471 Featurescripts)
- Numbers parts based off of a given standard
Abhi's Part Numbering
- Used for quickly applying a system to number parts
3D Printed Mass (Julia's Featurescripts)
- Modifies 3D-printed parts to have accurate mass with given material, infill, and wall thickness
Video Tutorial
Advanced Variables (2471 Featurescripts)
- Can create a compound variable with path length, angle between edges, distance between planes, angle between planes, distance between points, pulley center distance, and chain center distance
- Very useful for complex belt and chain runs
- Include measurements that Onshape can't normally do
"},{"location":"resources/gameHistory/","title":"Game History","text":"WIP
"},{"location":"resources/glossary/","title":"Welcome to the Glossary","text":""},{"location":"resources/glossary/#why-this-exists","title":"Why this exists.","text":"We know it can be hard learning each and every term thrown around in FRC design, so we have compiled a list of words and definitions to aide you throughout your learning.
"},{"location":"resources/glossary/#terms","title":"Terms","text":"c-c
\"Center to Center\" distance WCP
\"West Coast Products\" TTB
\"The Thrifty Bot\" SDS
\"Swerve Drive Specialties\" Turnbuckle
A threaded part that goes in between chain links to tension the chain COG
Center of Gravity, also referred to as COM(Center of Mass) OTB
\"Over the Bumper\" typically used to refer to a style of intake where you lift the piece over the bumper UTB
\"Under the Bumper\" typically used to refer to a style of intake where you move the piece under the bumper V4B
\"Virtual 4 Bar\" is where a second degree of freedom is directly geared of a previous degree of freedom instead of being moved independently or by a linkage. 4Bar
A type of linkage characterized by its 4 pivot points COTS
\"Commercial Off the Shelf\" parts are anything you can buy from a vendor. Dead Axle
A type of axle setup where the axle is fixed in place and or is not transferring the torque of the system through it. Live Axle
A type of axle setup where the main torque transfer is through the axle Zombie Axle
Typically used on pivots a zombie axle spins with the mechanism, but is transferring little to no torque through it. This is commonly used to put an encoder on the pivot point. Tube Nut
Also known as a \"Star Nut\", these provide an easy way to put a thread in end of a hollow tube allowing you to bolt the tube to another part. Cantilever
Horizontal Element that's supported by one side only. Shear
When forces are applied parallel to the plane of a material, causing breaking of fasteners due to excessive force and stress. Torque
Force that produces rotational movement. Moment of Inertia
Amount of resistance against angular acceleration. End Effector
Mechanism attached to the end of an arm. Linear Actuator
Device that converts rotational movement to linear motion, usually with a lead screw. PDH
Power Distribution Hub. SparkMAX
Motor controller for REV motors. Main Breaker
Switch for the robot. PWM
Pulse Width Modulation cable. RIO
RoboRIO, brain of the robot. Blinkn
LED controller for REV. Radio
Device that helps the robot communicate with the driver station. Limit Switch
Type of sensor that acts as a soft limit when physically or magnetically hit. Throughbore Encoder
An encoder that allows shafts to pass through its center to record position. Magnetic Encoder
An encoder that uses magnetic fields to measure position or motion. 3DP
Abbreviation for 3D printed or 3D printing. Billet
Component machined down from a solid block of material. Bevel Gear
Special gears that change the axis of rotation, typically by 90 degrees. Gusset
Reinforcement plate, usually made of aluminum, used to strengthen connections between two tubes. Box Tube
Hollow, square or rectangular metal tubing. Tie Rod
Rigid bar used for structural support and stability, often in the frame of a robot. Poly/PC
Abbreviation for polycarbonate. Stripping
Process of removing threads or bolt heads, often due to excessive force or wear. Cross Threading
Damage caused when a fastener is forced at an incorrect angle during assembly. Tapping
The process of creating threads in a hole using a tap tool. Brainpan
Flipped electronics bellypan. Bellypan
Plate for mounting electronics on the underside of your drivebase. Hardstop
A physical limit designed to prevent a mechanism or component from moving beyond a certain point. Softstop
A software-based limit or control mechanism that restricts the movement of a mechanism or component to prevent it from exceeding certain parameters. DP
Diametral pitch is the number of teeth per inch of the pitch circle. packaging
The way in which you fit parts of your robot together in a space backlash
'Slop' in a power transmission system; can wiggle back and forth without engaging the whole system parametric
Designed in a way that uses relationships between steps to maintain design intent"},{"location":"resources/krayonCAD/","title":"KrayonCAD","text":""},{"location":"resources/krayonCAD/#what-is-krayoncad","title":"What is KrayonCAD?","text":"KrayonCAD is a collection of simplified, configurable Onshape assemblies for the most common FRC subsystems. These subsystems can be modified by changing just a few variables, allowing you to piece together a robot concept extremely quickly and efficiently. KrayonCAD Assemblies only contain the necessary parts to communicate design intent, while minimizing detail and part count to ensure quick load times.
"},{"location":"resources/krayonCAD/#why-should-i-use-krayoncad","title":"Why should I use KrayonCAD?","text":"After brainstorming ideas for a new game, the first CAD iteration is sometimes a heavily simplified design, commonly referred to as \u201cCrayola CAD.\u201d This workflow is used by many teams, including team 254. This is where KrayonCAD comes in; using a library of configurable subsystems, KrayonCAD allows you to:
- Investigate robot architectures
- Budget space
- Verify geometries for robot designs
- Further flesh out robot designs to scale and in 3D
KrayonCAD is fast! You can go from an idea in your head or a sketch to a 3D model in minutes!
"},{"location":"resources/krayonCAD/#how-do-i-use-krayoncad","title":"How do I use KrayonCAD?","text":"KrayonCAD is a simple as 1, 2, 3:
-
Insert: From any Onshape assembly, use the MKCAD app to insert a KrayonCAD Assembly. You can configure the Assembly before inserting.
-
Configure: Right click a KrayonCAD Assembly in the parts list > Configure > change dimensions, check or uncheck boxes, and choose options from drop down lists to configure the assembly to your liking.
-
Mate: KrayonCAD Assemblies have mate connectors placed in strategic places to allow for easy mating using the Fasten and Revolute mate types.
"},{"location":"resources/krayonCAD/#credit","title":"Credit","text":"ChiefDelphi release post and contributors
"},{"location":"resources/simplified/","title":"Simplified Models","text":"To reduce load time and simplify geometry, simplified models are used in FRC. Electrical simplified models are included in the MKCad library, so they will not be included here.
"},{"location":"resources/simplified/#swerve","title":"Swerve","text":"SDS MK4
SDS MK4i
SDS MK4N
MAXSwerve
SwerveX (Credit Astro from 6423)
"},{"location":"resources/simplified/#gearboxes","title":"Gearboxes","text":"MAXPlanetary
VersaPlanetary
UltraPlanetary
"},{"location":"resources/simplified/#motors","title":"Motors","text":"Motors
"},{"location":"resources/simplified/#electrical","title":"Electrical","text":""}]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 2c89bd15..e56c983d 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,394 +2,394 @@
https://www.FRCDesign.org/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/assembly-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/document-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/feature-tree-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/mastersketch-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/best-practices/sub-document-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/contribution/contributors/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/contribution/mechanismContribution/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/contribution/methodsOfContributing/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/contribution/styleguide/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/challenges/week1/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/challenges/week2/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/challenges/week3/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/challenges/week4/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-challenge/challenges/week5/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/strategic-design/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/design-writeups/DFC/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/design-writeups/bumperMounting/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/design-writeups/chainTensioning/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/design-writeups/springs-shocks/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/arms/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/bumpers/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/drivetrains/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/elevators/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/intakes/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/linkages/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/shooters/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/mechanisms/turrets/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/electronics-sensors/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/linear-extension/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/motion-components/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/motors/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/pneumatics/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/rotation/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/power-transmission/wheels-rollers/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/3d-printing/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/fasteners/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/materials/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/sheet-metal/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/structure/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/tolerances/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/design-handbook/structure/weight-savings/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage4/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage0/0A-introductionToCAD/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage0/0B-setup/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage0/0C-navigation/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage0/0D-theory/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage1/1A-onshapeFundamentals/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage1/1B-powerTransmissions/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage1/1C-designMethodology/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/2A-drivebaseFullDetail/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/2B-basicShooter/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/2C-deadaxlePivot/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/2D-slapdownIntake/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/2E-cascadeElevator/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/foamBallConveyer/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/fourbarLinkage/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage2/pastaRollerIntake/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage3/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage3/3A-MSpractice/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage3/3B-973-2020/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/learning-course/stage3/3C-973-2023/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/drivebase/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/drivebase/2910/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/drivebase/brainpan/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/cascade/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/cascade/2stage/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/cascade/3stage/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/continuous/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/continuous/belt/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/elevator/continuous/cable/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/4bar/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/4bar/1678/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/4bar/clean/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/4bar/vaughn4bar/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/slapdown/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/slapdown/4414style/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/slapdown/6423otb/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/slapdown/low/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/intake/slapdown/washed/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/pivots/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/pivots/2910pivot/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/pivots/6328pivot/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/shooter/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/shooter/citrus/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/mechanism-examples/shooter/small/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/configurables/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/featurescripts/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/gameHistory/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/glossary/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/krayonCAD/
- 2024-08-30
+ 2024-08-31
https://www.FRCDesign.org/resources/simplified/
- 2024-08-30
+ 2024-08-31
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index e031b921..50939ec0 100644
Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ