Skip to content
Snippets Groups Projects
README.md 5.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jake Read's avatar
    Jake Read committed
    # Machine Building at the CBA
    
    Hello! If you've landed here, it's likely that you're getting ready to design and build some equipment. This guide is part of the [MIT Center for Bits and Atoms'](http://cba.mit.edu/) ongoing machines-making-machines effort, wherein we seek to turn the universe into a deeply recursive heirarchy of robots building one another.
    
    Just kidding, it's our best practices for how we believe automation equipment should be done. 
    
    Most machines are monolithic and static: they live their lives for one process, and are hard to modify for anything else. They tend to miss a lot of learning opportunities (i.e. they feed forward what might be fed back). They each communicate to the outside world in different ways, they hide their secrets, etc, etc. 
    
    Machines described here are *parametric configurations of object-oriented hardware* that can be assembled into *instances* of equipment, whose constitutent parts are free for future addition and modification. Machine controllers are *networked collections of input and output devices* that contain bare minimum state - high level planning and interface takes place within *virtual machine controllers* that are similarly easy to assemble, configure, and tune.
    
    ### How To Play
    
    Any kind of design is nonlinear and contradictory. To that end, this guide takes the form of an ordered list. 
    
    ## 1) Design
    
    I leave 'design' up to you, to save myself following the rabbit hole where I end up writing about it for too long. Look at [examples](openassemblies.com), do back of envelope maths (stiffnesses, forces, speeds, weights) etc, draw things with your hands, with your friends, have ideas, etc. 
    
    ## 2) CAD Wrangling 
    
    ### Configure Parametric Axis in Fusion 360 
    
    ![](video/SEQ-fusion-parametric-enc.mp4)
    
    To start, head to [the RCT Gantries Repository](https://gitlab.cba.mit.edu/jakeread/rctgantries) and download from the CAD folder the parametric axis you'd like to configure. 
    
    In Fusion[^2], you can open this file up and use (from the top menu)
    
    ``` Modify >> Change Paremeters ```
    
    Each of these models should have some parameters *starred*, these are what you'll want to configure. Go ahead and set axis lengths, material thicknesses according to what you're doing. When you're satisfied, you can export the model as a .step file, using the file menu, to prep it for fabrication.
    
    ``` File >> Export ``` 
    
    Make sure to change 'type' to .step, and check the 'save to my computer' box. 
    
    ### Set Relations Between Axis in Rhino
    
    .step files open up beautifully in Rhino[^3], where you can go about setting up relationships between parametric elements. I.E. here is where you 'assemble' the components you've configured.
    
    ![](video/SEQ-rhino-relationships-enc.mp4)
    
    I've also made a set of static blocks that can be configured to connect degrees of freedom to one another, most usefully at 90 degrees. Those models are also available in [the RCT Gantries Repository](https://gitlab.cba.mit.edu/jakeread/rctgantries). 
    
    ![](video/SEQ-rct-add-blk-enc.mp4)
    
    ### Modifications / Connections in Rhino
    
    ![](video/SEQ-rhino-modifications-enc.mp4)
    
    Rhino is pretty free-form, and presents a good opportunity to add-in whatever details you'd like - i.e. here I'm modifying the X-Gantry of [this machine](https://gitlab.cba.mit.edu/jakeread/mothermother) to lighten it up, and to mate with the Y-connectors on the same machine. I also add a cable-routing tray. 
    
    Of course, you can get away without doing very much of this at all - just make sure you have the right holes / mounts set up to secure each axis to eachother. 
    
    ## 3) Fabrication
    
    ### Lay Out Cut Files in Rhino
    
    Once you're feeling O-K about your machine design, you should get ready to cut it out. 
    
    ![](SEQ-rhino-layout-fab-enc.mp4)
    
    First, pick out the 3D Printed Parts and slice them up. 
    
    This is a lot of manual model-moving-about and 'nesting'. I recommend drawing out some rectangles of the size you'll be cutting from to make sure you can fit everything into the stock you have available. Your favourite commands will be ``` Orient3Pt ``` , ``` Rotate3D ``` , and ``` Move ```.  
    
    Then, the command that you'll want to use is ``` DupFaceBorder ``` - this will take the faces of your parts (with the RCT Gantries, etc, everything should render well into 2D Cuts only [i.e. no pockets anywhere]), and render them as linework. Then you can export this linework (probably as a .dxf) to whatever machine tool you'd like.
    
    ![](SEQ-cutting-out-enc.mp4)
    
    While I cheat by using the CBA's Waterjet and Zund, there are a lot of ways you could go about cutting out the pieces of your machine. HDPE cuts beautifully on a shopbot using a 1/8" single-flute o-cutter, for instance. 
    
    ### Assembly 
    
     - fasteners, bearings, belts, oh my 
    
    ## 4) Electronics
    
     - circuit assembly
     - wiring 
    
    ## 5) Controllers
    
     - atkapi hello worlding 
    
    # REF
    
    - openassemblies 
    - rct gantries
    - automatakit
    
    # FNs
    
    [^1] Typically, CNC Machines - but ambitiously I would like to include most of robotics and automation here as well. 
    [^2] Parametric CAD Software [from Autodesk](https://www.autodesk.com/products/fusion-360/overview), available [free for students and educators](https://www.autodesk.com/products/fusion-360/students-teachers-educators). 
    [^3] Non-Parametric CAD software [available from McNeel](https://www.rhino3d.com/), loved by generalists and computational geometry-ists. Educational licenses available.