Showing posts with label inverse kinematics. Show all posts
Showing posts with label inverse kinematics. Show all posts

Monday, 8 September 2014

Introducing Elvis


Elvis is a 6-axis robotic arm the size of a human arm, built from off the shelf electronics and laser-cut acrylic pieces, and is directly driven from Rhino + Grasshopper. This is the official introduction of Elvis 1.0.



Elvis is open source and shared under a GNU GPL v3.0 licence so you can download everything required to build and use it from its GitHub page. It is very much a work-in-progress, and a lot can be improved. Included in there is a basic template for an end-effector, you can build on top of that to suit whatever it is you want to do with it. You can also modify the basic design of the robot itself to suit your requirement.

Elvis Mission Control in Grasshopper

Why Elvis?


Robotics is an interesting area of design/fabrication research, and recent developments by the likes of ETH ZurichICD Stuttgart, Bot & Dolly, TU Delft and numerous others have created excitement and spurred curiosity around the interesting potential robotics has in design and architecture. But anyone who has ever setup a Kuka/ABB/etc. knows that programming one is no easy task. They're extremely capable, precise and sophisticated in what they can do, but they can take a while to setup making it difficult to test draft ideas and prototype in quick iteration. And that is assuming you are lucky enough to have ready access to a robotic arm -- which most designers don't.

Elvis was conceived to fit this need. It's small, light and portable, and is meant for quick prototyping & iteration -- hence the direct control from within Grasshopper. It is not meant to replace an industrial-grade arm: it is not as precise or as fast, it costs roughly 5% of the cheapest desktop industrial arm available, and it takes a person about 2-3 days to put one together.
 
Elvis's version of "Hello world" 

Technical Details


DOF/Axis: 6
Motors: 8 x Servos, Dynamixel AX-12A
Range: ~525mm for wrist Centre (diagram below explains in detail)
Cost: £480 (UK). Presumably cheaper in the US/Asia. Detailed breakdown here.
IK Solver: Trigonometric
Wrist Type: Spherical



Future Development


Broadly speaking, the precision of the arm needs to be significantly improved. As of now, there is backlash in the system caused by the servos, and there is also flex in the materials used to built the arm itself. Geometric changes can substantially reduce the material flex leading to improved accuracy. Eventually backlash could be reduced through more appropriate hardware.

Elvis uses servos that are capable of reading their positions, so within a tolerance, the arm already "knows" where it is. This could easily be used as a forward kinematic system to digitally read positions in space and generate gcode for larger arms, similar to the system proposed by Andrew Payne, with the added benefit of a 6th axis. A camera/leap/kinect/other sensory mechanism can be used to setup an enhanced feedback system giving it a more precise idea of where it is, where it should be or what it should do next.

There are some very good robot simulation tools available on Grasshopper such as Daniel Piker's LobsterRobots.IO's Godzilla, etc. Last I checked I was unable to use Lobster as the IK solver for Elvis because of Elvis's asymmetrical axis configuration. I haven't been able to test it with Godzilla as yet, but the intention is to make Elvis easier to use with all these fantastic tools already available.

Acknowledgements


The directors, tutors and students of AAVS Dubai and AAVS Lyon for being wonderful platforms to further the development of Elvis, and the ZHA_code bunch for the insights and stimulating conversations.

The AA Visiting School Dubai showreel about the process of building and using Elvis


Man vs. Robot: Haider and Elvis in an 'axis-fight' at the AA Visiting School Dubai

The Grasshopper control file can compute IK for given toolpaths and directly move Elvis on those paths.

Sunday, 26 April 2009

The Lightbox - Art Fund Pavilion Competition


This is our (Saif Almasri, Suryansh Chandra) entry for the recent Art Fund Pavilion competition. It was quite a thing to shift to a 35 square metre pavilion after doing a 12 square kilometer city, but then the difference was also 3 days of rapidfire design over 16 months of intensive exploration and research. The brief was to cater to the following requirements:
  1. The pavilion was to be assemblable within 72 hours,
  2. The only material to use was 18mm or 25mm thick plywood. With cables/nuts/bolts/etc. for joinery,
  3. The pavilion needed to be collapsed, transported in its compact form, and reassembled in another location (for exhibitions, etc.),
  4. It needed to accommodate 30 sitting people in a presentation scenario with wall mounting space for A0 panels; accommodate 6 shelf display units and 4 floor standing display units for an exhibition scenario; and covert to an informal gathering space for a party scenario.
Having experienced the design and construction of the DRL 10 pavilion which took over a month to construct, we knew that having several different sectional profiles that needed to assembled together in a particular sequence was not going to work with the 72 hour deadline – it was way too complex and confusing for people on site just to figure out the sequencing right, let alone the assembly.

So we set up one of our primary objective to having the least possible variety of sections: something like standardized lego blocks of the same size so there is no confusion of which piece goes where – all pieces are 4 standard sizes, anyone can go anywhere as long as they are the same size. This, in my opinion is a very useful application of parametric design techniques where top-down form generation meets bottom-up component assembly logic – parametrics working towards minimizing costs and assembly times.





This system was setup in Rhino+Grasshopper in which we controlled the entire form with just 5 splines, and the computational system always maintained lengths and assembly constraints and provided the closest matching form. The final form consisted of 50 sectional profiles, each made up of 4 different sizes of members connected in the same sequence.

The final design was made up of 4 different sizes of members, linked up in series with hinged joints, which makes them collapsible into a very small size. The planned assembly was as follows:
  1. All 50 sets of sectional profiles will be assembled off-site as they are being CNC milled.
  2. All these profiles will easily fit in a mini-truck in their collapsed state, and transported to site.
  3. The profiles will be placed next to each other and the joints secured by running cables through them.
  4. The profiles will be opened up from their collapsed state, tuning the hinged joints until the final shape is achieved.
The seating was designed in the same manner with 2 different sizes of components. Due to the flexibility of a hinged joint, the seating was designed to be easily adjustable to become a bar counter in a party scenario or a display unit in the exhibition scenario.