Thursday 21 January 2016

DIY 3D Digitizing Arm



*This text is a work in progress and will be updated regularly*

3D Digitizing Arm Project

For many years I dreamt of creating a 3D digitizing arm similar to the great Microscribe3D or FaroArm products. I've dabbled in various data gathering projects before e.g. building a 3D laser scanner, 2D computer vision for extracting data measurements and 2D motion capture for animation purposes but to this date the unique mechanism of these digitizers has always intruiged me.

As usual my inquisitive nature got the better of me and I was pretty sure I had the skills to build my own 3D arm based digitizer. I gathered as much technical detail and knowledge as I could find relating to how this device functioned and set about the project with eager interest. This article follows and details the project to completion with photos of the prototype arm, the serial connection utility and the Blitz3D virtual interface.



Approach

Without access to a real Microscribe I had to research it's characteristics by watching product videos, reading patents documents, manuals and product reviews. I gained invaluable knowledge into its mechanical inner workings, its precision digital encoders, and how it applied complex trigonometry in hardware to work out the location and orientation of its digitizing tip. These findings were crucial to help formulate a solid idea in my mind of how to simplify the whole project, keep costs to a minimum, yet still create a fun 3D arm digitizer that was reasonably accurate and robust.

Project Kit Requirements

  • Arduino Uno
  • Four potentiometers
  • Micro switch 
  • Wooden doweling 
  • Jump wires
  • Screws
  • Tie wraps
  • Blitz3D
  • VB6

Building The Prototype


Prototyping the initial idea using potentiometers and cardboard lengths.

Testing realtime data capture using my custom Arduino serial driver and Blitz3D.


Testing complete! Building a sturdier arm using wooden dowel.

Arm complete and used to digitize a small statue.

  Digitizing complete. Point cloud viewed on Points2Polys.

Digitizing a 2D illustration

Digitizing an object (slipper)

Real time point cloud visualisation in Blitz3D

3D object point cloud

9 comments:

  1. Any updates with this project? Very interested in your progress.

    ReplyDelete
    Replies
    1. Unfortunately there are no further updates regarding the 3D digitizing arm as yet. I decided to spent a bit of time creating a simple 3d viewer program for my digitized point clouds. More soon!

      Delete
  2. Hello my friend! I would like to tell you that this write-up is awesome, great written and include almost all important info.

    I would like to see a lot more articles like this.
    3d digitizing

    ReplyDelete
  3. hi,

    currently researching on diy 3d dizitizers based on arduino for 3D printing.
    in my project the data will be gathered and displayed as well as converted into a 3D file possibly in PLY format. the project will be developed in VB6 too. :)

    how accurate is the potentiometer data in your project ?

    regards,
    mahesh..

    ReplyDelete
    Replies
    1. The cheap potentiometers I used created a lot of noise in the output data file and are very hit and miss returning to previously digitised positions. I would recommend buying good digital encoders e.g. Encoder 600P/R Incremental Rotary Encoder. I've seen other projects using these with good noise reduction and return positioning.

      Delete
    2. Also I've been working on a display program too.
      It is programmed in FreeBasic, uses opengl and can view full colour ASC, XYZ data files and OBJ files (vertex only).

      Delete
    3. thank you for the reply.
      although expensive than potentiometers, Incremental Rotary Encoder seems to be the viable option.
      best wishes for your projects..

      Delete
  4. Hello my friend! I would like to tell you that this write-up is awesome, great written and include almost all important info. I would like to see a lot more articles like this.
    3d digitizing

    ReplyDelete