The University Wiki Service will undergo maintenance on Friday September 24th beginning at 5:30pm until Monday September 27th at 8:00am
During this planned maintenance window, may be unavailable for viewing or editing.
Users are advised to save content locally that may be needed during this time and to save all edits before maintenance begins, as unsaved work may be lost.
Skip to end of metadata
Go to start of metadata


Here is a list of important lessons that we learned this semester while building our different projects.

Mechanical Design

  • MATLAB is a great tool for finding link lengths. When you do the homework, write functions to do position analysis. Then use MATLAB's solve tool to help you when you work on your project. Adam Allevato
  • If you're using acrylic, bearings are unnecessary unless you have very high-weight components (in which case, why are you using acrylic)? We learned that machine screws and lock nuts worked 95% of the time. Adam Allevato and Kevin Holmes
  • Hex standoffs (see this link) are very useful for affixing two planes at at offset. Adam Allevato
  • Avoid cantilevering weight outside of the plane of the linkage you are using. Matthew Horn
  • Hollow aluminum tube is a great way to create custom spacers (especially when you have unique spacing dimensions).  You can use it to support your mechanisms to avoid cantilevering. Michelle Pang
  • Design ways to have your mechanism be adjustable. I.e. if there are several things that need to be connected by a belt or need to be a certain height, things don't always line up exactly how you model it too. Matthew Horn
  • When using belts, choose fairly wide (greater than .5 inches wide) as the smaller they are the less variance in positioning you can have. Matthew Horn
  • If your system needs gears, to design your own custom sized gears use GearDXF. Matthew Horn The SolidWorks Toolbox can also produce spur and miter gears. Adam Allevato
  • Avoid toggle positions at all costs. They are unpredictable and put a lot of strain on your mechanism and actuators. Adam Allevato
  • Choose a motor that is rated above and beyond your initial prototype requirements. Accounting for friction and efficiency is very difficult, but you can always decrease the speed or power output of a motor if necessary. Mark Holland
  • If using lock nuts and machine screws to create joints be mindful of your dimensional stack up and clearances; your project might grow from a cute desktop-appropriate robot in to something that needs a table of its own. Michelle Pang
  • Nylon bushings can be used to space apart linkages.  They are extremely cheap and come in numerous sizes.  Mike Orr
  • The gears should be fixed very well in their position so that you can make sure they will remain engaged during the motion of mechanism even when they are transmitting high torque. Mahsa Ghasemi
  • If you can model your robot with the simulink toolbox of MATLAB, then you can let it find and solve equations of motion of your robot. Although in this case, you wouldn't have the equations, you can get many outputs from your system. The precise modeling of robot is important for simulation. Mahsa Ghasemi
  • Matlab function fmincon is a nice tool for optimizing the design (could be used for other optimization problems). Try fmincon if you want to optimize your mechanism design. Sung Yul Shin
  • Make sure you know how your design will come together in three dimensions. You might design a very intricate linkage on paper that will be impossible to build in 3D. Siddharth Desai


  • When making a drawing in SolidWorks for the laser cutter, you can put the different objects extremely close together, and they will still come out great. The laser cutter is very accurate and we were able to save a lot of material by doing this. Adam Allevato
  • A good idea when laser cutting, draw a bounding box around your parts to avoid the acrylic warping mid cut and ruining several pieces. Matthew Horn
  • When 3D printing, remember it will take several hours to print your parts and you are required to stay there while they are printing. Matthew Horn
  • Also when 3D printing, make your holes slightly larger than required as the PLA plastic tends to shrink. Matthew Horn
  • (Per the above comment) has great information on shrinking and dimensional constraints when designing parts for 3D printing. Michelle Pang
  • Using the 90W laser is much more effective in cutting even 3/8" acrylic.  The 45W lasers seem to have degraded over the course of the semester.  Mike Orr
  • If you decide to make your own gears, note that acrylic-on-acrylic gears can tend to bind more than pre-made plastic gears and also wobble more than bought gears. The wood they sell in the Maker Space is too soft to be used as gears and will break down fairly quickly. Matthew Horn
  • We found that 3D printing some gears was very effective (namely our large bevel gears). The gears meshed really well,, and using ABS over acryllic has some advantages to avoid gear teeth breaking. The tolerance on smaller gears may be too difficult for a 3D printer after warping/expansion. Mark Holland
  • Don't stack 1/8" acrylic together to form 1/4" acrylic gears especially if you have play in your bores Steven Jorgensen
  • Acyrlic solvent is great for joining clear acyrlic, but requires clamping to get the best finish. Mike Orr
  • Pin clips can be helpful in providing enough friction between links when using bolts for revolute joints. Mahsa Ghasemi
  • When designing the gears in the system, also think about building rigid supports for the gears so that the alignment is stable. Sung Yul Shin
  • If you ever need laser-cut parts that stack together, include a hole or slot that you can use to line them up for assembly. Siddharth Desai

Motor Control

  • Double (or even triple) check to make sure all your wires/leads are connected to the correct spot on the Arduino, motor shield, power supply, etc. Also, make sure all your connections are solid. This may be basic advice, but simple checks like this can save half an hour of head scratching. Riley Noble
  • Look up your individual motor's wiring diagram (usually in the spec sheets) to figure out the proper wiring of your DC motor. Riley Noble
  • When coding the Arduino, play around with the basic codes that come with the software; it'll help you learn if you haven't used it before. Riley Noble
  • Countless forums/websites provide code that would probably be a sufficient starting point for controlling your robot.  You can build on top of the borrowed code to make yours more robust. Riley Noble
  • Make sure your code runs as you expected before connecting with the actual motor to the system. You may break the system. Sung Yul Shin


  • Plan ahead for assembly time. Putting pieces together took longer than we thought. Adam Allevato and Kevin Holmes and the rest of the class
  • Inspect parts upon arrival to make sure that they are what you expected they would be. That way, if they aren't what you expected, you have plenty of time to re-evaluate and make a new part order. Adam Allevato
  • The Maker Space gets EXTREMELY crowded the last TWO weeks of school - have all of your parts made before this time. It will take you 5x longer if you wait. Matthew Horn
  • Getting access to the woodshop and machine shop is a must, highly useful. Matthew Horn
  • Don't be afraid to just start building. A frustrating thing with many teams is that they want everything to be perfect before they start. Sometimes you just need to start building it together and notice what needs to change and work it out. Matthew Horn
  • Don't copy the Theo Jansen stuff - it's been done too many times and it's hard to be unique or innovative. Matthew Horn
  • Try be as thorough as possible when designing parts in your CAD model. There were numerous times when I had to re-cut something with the laser cutter because a hole wasn't aligned or something small like that. Riley Noble
  • Building a highly detailed CAD model/assembly is extremely useful.  Don't skimp on details even if they seem minute or trivial–they will come back to haunt you.  A detailed CAD assembly will be your best friend, so make sure that you and your teammates put in the time to do this early on and update it as you make changes and iterations to your design so that you can avoid sizing/spacing/fit/clearance/etc. issues before you buy/cut/build/assemble your parts. Michelle Pang
  • Do not underestimate friction role especially when you do not have proper assembled joints. It can really make the movement hard and out of control or it can make your robot noisy. Mahsa Ghasemi
  • If you have a 2D mechanism, it is good if you can have enough well-distributed fix points for it to keep it in one plane unless you may have deflection or sway motion from that plane since the joints do not act perfectly. Mahsa Ghasemi

Helpful Links

  • No labels