For a few years now I’ve been developing an interactive army of delta robots. This ongoing project is fueled by my desire to control many mechanical extremities like an extension of my body (I’m assuming I’m not the only one who fantasizes about robots here).
Since my army doesn’t have a practical application… other than producing pretty light patterns and making the user feel extremely cool for a minute, I guess you’d call it art. In the past I’ve held a Kickstarter to fund the production of my art which I can now happily show at cool events with interesting people; Maker Faire being one of them.
Interactivity and Sprawling Crowds
Last year, for our debut at the big Bay Area Maker Faire, my collaborator, [Mark], and I displayed a smaller sampling of 30 robots for our installation. We also decided to create an interactive aspect for others to experience. After the end of our crowdfunding period last March, we had a little over a month to do any development before the big event, so our options were slim. The easy solution was to jam our delta code into the hand tracking demo which comes with the Xbox Kinect’s Open NI within Processing. This was cool enough to exhibit, but we hadn’t really anticipated how it would go over in an environment as densely packed as the dark room at Maker Faire.
We should have known better. Both of us were aware that there would be many, many children… all with micro hands to confuse and bewilder the Kinect, but we did it anyway. Our only resolve was to implement the feature that would force the Kinect to track one hand at a time, only after being waved at in a very particular fashion. After needing to explain this stipulation to every person who stopped by our booth over the course of the weekend, we decided never to use the Kinect for crowds ever again; lesson learned.
Delta Robots and DMX
Over the past year since that experience, we’ve tripled the size of the installation and brainstormed some better demo ideas. As of now, the robots are all individually addressable over an RS485 bus, and we use the DMX protocol over a CAT5 cable to send commands. If you aren’t familiar with it, DMX is used in show production to control stage lighting… to which there is a super neat and free application called QLC+ that allows you to effectively orchestrate the motion and color of many individual light units; perfect for our cause.
Functionally, each of the 84 delta robots in the installation believes that it is a stage light (robots with identity issues). We mapped the X and Y axis of the end effector to the existing pan and tilt values, and the z axis to the beam focus value. The RGB of the LED mounted in the end effector of each delta maps directly to the RGB value of the stage light.
By using the sliders in the QLC+ GUI, I could select groups of robots and create presets for position and color. This was great, someone like me who doesn’t really write a lot of code could whip up impressive choreography with little sweat. Additionally, the program comes with a nice visualizer, where you can layout virtual nodes and view your effects as you develop them.
This is the layout of our installation mapped in QLC+. The teal and purple sliders around each light represent pan and tilt (or in our case X and Y):
Lighting control was an interesting solution. Having autonomous robots this year changed how people responded to them, as they were less like an army you’d command and more of a hypnotic field of glowing grass.
[Mark] and I are considering picking up some flex sensors and maybe playing with the Leap or an EEG headset as a means to reintroduce the interactive aspect. Bottom line, I have this cool new toy that I can’t wait to play with over the summer!
What’s the practical limit of individually controlled robots (or robot axes) that DMX imposes?
Each “Universe” (their word, not mine) can send a maximum of 512 channels (or robot axes). The total depends on what you are using. Cheap DMX controllers may only have 1 universe, where expensive ones can support 12 or more (usually with some kind of expansion, they tend to limit the number of cable connections that come on the controllers), which brings the total up to 6144 axes, although their you’re talking about spending a lot of money just on the controller.
TL;DR It’s limited by your budget more then anything. Free software and ~$200 gets you 1024 axes to divide up however you like. (cost based on first USB/DMX converter I found).
If you’re buying commercial hardware, then what you said is, without looking up which DMX controller you’re talking about in the TL;DR, absolutely true. However, there’s a couple technical details to note:
1) I’m fairly certain that each DMX universe using either standard DMX cable (5-pin shielded cable with an XLR plug; 3-pin is commonly used as only three of the five lines were ever assigned to anything standard, though, for whatever reason, explicitly not allowed by the DMX standard) or DMX over CAT5 requires its own cable/port. In this case, you’d have to run multiple cables for multiple universes, so the only advantage in using a multi-universe USB->DMX box is the price. I’ve used QLC+ in the past, and I’m fairly certain that you can output different universes to different devices. At least you can when you match it up with the Open Lighting Architecture (https://www.openlighting.org/).
2) I’ve made single-universe USB->DMX boxes out of an FTDI cable and a MAX485 (TTL to RS485 transciever). It’s cheap, it’s easy, and it’s functional, but it’s not the safest thing in the world, so I wouldn’t recommend plugging it into your school’s/work’s/local theater’s dimmer rack.
With both of these in mind, your limit is more based on what QLC+ and OLA will support. Fortunately, they’re both open source, so you can modify them however you need (I’ve not tried, but it seems do-able). And at that point, you’re really limited more on your budget for robots and your patience in plugging in giant strings of USB cables than anything else.
This was an awesome installation. I see so much potential now that DMX has been implemented to for everything. I’d also like to see a giant delta-bot which has one of these 7-bot nodes at the top of it as the centerpieces of the grouping.
Great stuff Sarah and Mark!
Fractal robots, with a delta configuration made out of tiny versions of these bots, turning into larger versions.
DMX is a wonderful thing, especially when you get away from traditional DMX runs and go to Ethernet (not just DMX over CAT5, like in the article, where you’re still sending the DMX signals but you’ve replaced the 5-pin cable with CAT5). You can run QLC+ on a desktop or laptop (or RasPi, if you’re so inclined, though I haven’t tried it personally) with the Open Lighting Architecture and send DMX over your home network by using any number of protocols, all of which are more or less functionally equivalent unless you start buying hardware from the big theater lighting manufacturers. And when you consider that QLC+ (or any other lighting control software worth anything) will let you write and save cues with timers for run time, delay, and transition, you’ve got a very handy means of home automaton without the need to write much (if any) code.
This past year I built a large installation of WS2812 strips with individual pixel control. Every 8 strips has a Teensy 3.1 controlling it (Running ADALight firmware), and every 2 Teensys is plugged into a PogoPlug 4 running OLA on ArchLinux. I actually had to switch to PathPort from ArtNet to get the number of channels easily routed where it needed to be. Really speaks to how well built OLA is that I only had to change a few defines to resize a DMX universe to 4096 channels and can still use a stock OLA build for ArtNet to PathPort conversion.
@Waterjet
One DMX universe can control 512 channels, each channel with 8 bit resolution.
But, the RS485 spec says, that a maximum of 32 receivers should be connected to a bus. So you have to use eventually multiple DMX splitters.
Alternatively you can use ArtNet. This is super simple to implement on an Arduino due the fact of the simple UDP broadcast protocol. ArtNet is able to stransport up to 255 universes…
Most Stagelighting Softwares or better Hardware Desks are able to send ArtNet.
very nice!
Turn that thing upside-down and let it walk around.
Were you at the last DEFCON?
Yup! We had thirty of them running with a Kinect in a dark room someplace. =]
Aha – I thought it looked familiar. Getting the kinect to see you was a bit tricky, but super cool when it was working. Hoping to see more awesomeness in the future :)