BLOOD SAMPLE HANDLER
This random sample handler is a small portion of a complex instrument based on my
robotic mesh operating system and languages.
I designed two languages, a procedural one for operations and an
object-oriented declarative one for defining a system. My script compiler redefines
the script language based on a system’s definition and automatically creates
local code when a robot directly controls a resource or a message to be sent to
the one who does when the script executes.
The sample handler requires unusually high precision motor control, which would typically be implemented as a custom machine or in a dedicated motion controller, both expensive solutions not only in material cost but also in the effort required to interface and coordinate with the rest of the instrument. For much lower cost my robotic operating system affords this level of precision in everything under control-- valves, solenoids, servo motors, data acquisition, etc. The current hardware can control as many as 20 steppers with no loss of precision.
SYNCHRONIZED X AND THETA PRODUCE Y-AXIS MOVEMENT
Especially difficult is coordinating the X translation and theta rotation to
effect Y-axis translation. Both motors are ramping up at this time and not only
don’t have constant step lengths but, additionally, the ramp functions are not
related to each other. Because theta sits on the robot, theta acceleration
imposes a nonlinear load on X and vice versa. X and theta not only have
multiple self-resonant points, the combination of the two axes and their
bearings create additional unpredictable resonances. The ramps must avoid these
points without accelerating so fast that they risk step loss, all while
coordinating to produce linear Y-axis movement. The ramps were incalculable and
deriving them by experiment could easily take weeks in most systems. However,
because my system allows ramps to be varied even while running and can
automatically coordinate the ramps of multiple motors, I was able to achieve
reliable operation in just a few hours.