Coordinating multiple Line-Us devices

Hello there!

About two weeks ago I have received my 4 Line-Us devices and could readily connect to all of them using a slightly modified version of the basic Processing script) provided by Rob. Thanks to Rob already for suggesting this tweak.

I will be using my Line-Us robotic arms for a custom optics experimental rig (an extension of my previous water basin-based caustic research, see here). In this setup, an “L”-shaped extension arm will be mounted to each pen-holder, such that I had to digitally rebuilt and compute the inverse kinematics of the Line-Us devices. With a bit of Roberts help (thank you! The construction requires vector algebra and the idea that two circles intersect, the lengths of the joint-segments being 50mm and 32.5mm and forming a trapezoid) I could hence get all arm coordinates from the pen holder position (and a certain Line-Us position in a global coordinate system).

Going forward, I have written a subroutine that allows me also to position the extra arm coordinate, which is finally what I want for my experiments.

I have then written a code which is able to control all 4 devices in a single “drawing-area” (my water basin playground), including a bounding-box-based collision detection (OBB-vs.OBB (https://gamedev.stackexchange.com/questions/25397/obb-vs-obb-collision-detection)) which prevents accidental movements that would cause the arms to touch/force each other.

The result looks like this (next post) and is interactively controllable in a safe manner. The key-board interface allows movements, reading in tables of positions of the extension arms and safely moving towards them.

If you are interested in the Processing code to play around with, PM me.

Markus

I have made the processing code available on github.