Monday, 14 September 2015

sensor - Methods to accurately move an object across a 2-D plane


This is the opposite/complement of my previous question, which concerned measuring the precise position of an object as it is moved/drawn by someone over a short duration. Assuming I use one of @Rocketmagnet's suggested approaches (probably using linear encoders), next:


Suppose I have tracked/recorded the X-Y position data as an object is moved arbitrarily through some pattern across a 2-D plane by someone:


Goal: Now I would like the object to replicate that same recorded movement pattern, i.e., I would like the object to move through those same X-Y positions -- but automated this time.


In other words, I would like the system to carry/displace the object from the recorded (X1, Y1) to (X2, Y2) to (X3, Y3) and so on. Again, completely constrained to a 2D plane/surface, like so:


enter image description here


Constraints:



  • I would like fairly controlled/accurate movement of the object, with no greater than 0.5mm error.


  • The domain of points for the object to move will extends across a 30cm X 30cm square.

  • Exact duration/path between points is NOT critical -- since I will have a fairly well-populated point set (so it will already be pretty close to continuous movement).


The one potential solution I have considered for this (and I think one that is easy to implement) is to use motors placed on the edges but somehow connected to the object. But I am not sure how to connect them in a way that allows 2 degrees of freedom simultaneously, and moreover, I'm not sure how/if it's possible to attain the desired movement accuracy using motors.


So my question is: What are potential methods I can try for this kind of accurately controlled 2-dimensional movement? There are very few physical limitations on my setup as it currently stands, so I am open to toying with (reasonable) implementations of any level of complexity!


One piece of good news is: Since I will have a precise measurement/tracking system (from the previous question), it would be possible to integrate feedback / calibrate during the movement, which I suppose will be essential if I want to assure the 0.5 mm maximum error.


EDIT: In case the exact application is of interest: The system is my attempt at a simplified electronics-art demo of action-replication, i.e., a person's action is recorded and it is then duplicated either after a period, or on a duplicate system nearby. I initially tried working with shape memory alloys (nitinol specifically), but recording a 3-D movement of a multi-point shape was not easy (FAR from it!), hence my simplification to a "single-point" object across a 2-D plane.



Answer



You might as well combine the measurement and replication into one system. Let me start with my previous answer to your question: Idea 4


You already have linear bearings and encoders set up to measure the motion of the object. Now all you need to do is to actuate those bearings. Normally, if you were building something like a CNC milling machine, and you wanted to actuate linear motions, you'd use a ballscrew and a stepper motor.



Ballscrew


The problem with these is that they are not back-drivable, and therefore you won't be able to move the object yourself. Two options:



  1. Add force sensors (using strain gauges). Now the system can detect you pushing on the object, and it will drive the motor to create the illusion that there's no motor there at all. This can work extremely well if you do it carefully, and if the motor is fast enough. This is known as active compliance.

  2. Use linear motors. These are completely back-drivable when unpowered.


Linear motor




The good news is that, if you can afford it, you can buy complete linear motor motion systems from companies like Aerotech or Baldor Motion. Alternatively, you can ask a small robotic engineering company to build you the whole system. Again, these systems are very accurate. They're used where 0.01mm accuracy is a common requirement, and even 0.001mm accuracy (but then you really need a temperature controlled environment).


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...