Code Monkey home page Code Monkey logo

softroboticsproject's Introduction

Air-Powered Robotics

Overview

We are designing and constructing a soft snake robot using components such as McKibben muscles and other pneumatic components made from dragonskin and reinforced muscles. The goal is to explore small and inaccessible spaces with a deformable robot that can more easily navigate them.

To support and enable the acuation of this robot, we designed and built a parallelized pneumatic actuation manifold consisting of 5 units each capable of alternating between closed state, open state, vacuum state, and air pressure state with and without power to an air pump. The supporting code is located at https://github.com/ThePenultimatum/softRoboticsProject where I have written a programming interface to the microcontroller so that the states can be changed by referencing sets of valves and states instead of changing special function registers or pins on the microcontroller.

The microcontroller we used is the PIC32. It is on an NU32 board designed and built by faculty and staff at Northwestern University.

View the project on github here.

Software

This software is contained in the src directory structure. Examples for usage are available for demonstration, testing, and validation purposes in the examples.c file. The code is built to be high-level and not require the user to interface directly with registers and embedded components on the microcontroller in use. Instead, functions are built to transfer between states for each set of four valves and one pump (of which there are five sets on the manifold). This allows the user to operate in tested parts of a usable state-machine for each four-valve-one-pump system. The function that should be used for transitions between states is the

void switchState(int newState, int valveSet);

function located in the pneumatics.c and associated header files. Macros are available and should be used for the two input values. The macros are defined at the top of the pneumatics files with names such as VALVESET0 and VALVESVACUUMOPEN.

Testing

Unit tests are written using the Unity testing framework for C. They are located in the test/ directory, and the supporting framework (as is standard usage for Unity) is located in the unity/ directory. Tests are run by navigating to the main directory and using make to run the makefile.

make test

The software is broken into logical components and data retrieval components to isolate logic for testing using Unity and leave data retrieval for testing on the hardware itself.

Hardware

Components

  • 1 NU32 board with PIC32 microcontrollers (1 per node including central node)
  • 4+ ft2 Acrylic sheets for chassis
  • 5 Air pumps
  • 20 Pneumatic solenoid valves
  • 2 Long breadboards (the default common size is okay)
  • 20 feet of solid core wire (ideally in separate colors for organization)
  • Electrical Tape
  • Wire cutters and wire strippers
  • Assorted screws, nuts, bolts, washers
  • Hot Glue, caulk, or epoxy

Implementation

Design

Manifold
Air-Vacuum Module
Chassis
MMVS-McKibben Robot
MMVS
McKibben
Interface Connector

Resources:

  • "Embedded Computing and Mechatronics with the PIC32 Microcontroller" Textbook
  • Soft Robotics Toolkit

Contributing

If contributing to the modifications in our project here, please follow the following steps:

  • Fork the repository
  • Add your modifications to either the dev branch or a branch off of the dev branch
  • Make a pull request with informative descriptions

Ongoing Development

Current work:

  • Streamlining electrical components and connections on pneumatic manifold
  • Gait development for MMVS-McKibben combination robot

Team

License

Acknowledgments

  • Dr. Mitra Hartmann (Northwestern U.)
  • Bill Hunt (Northwestern U.)

softroboticsproject's People

Contributors

thepenultimatum avatar mossti avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.