[ weird things ] | how to make random machines do your bidding

how to make random machines do your bidding

How do you connect multiple robots into a single hive mind? Yours truly has been trying to come up with a way to do exactly that.
portal bots

Long time readers probably noticed that the last month was a little off. Posts weren’t coming as per the blog’s natural rhythm and the annual April Fools gag was also absent. But there was a good reason for this, one I’d be happy to share with you if it wasn’t for the fact that you cannot use your own blog to shamelessly plug your stuff or the blogging police will come to your house. Wait, what? You totally can? And there’s no definitive body of blogging standards looking after you? Well, in that case, here’s one project I’ve been trying to eke out a few minutes here and there to finish, a software kit to managing random robots and artificial neural networks they would use to detect and respond to stimuli called Hivemind.

Instead of being custom tailored to any particular robotics platform and meant to make a specific machine or two more autonomous, Hivemind was built on the idea of having a small swarm of bots ready to do your bidding and organized by what you’ve taught them to do so the right ones can be selected for a task you have in mind. Of course this is still a work in progress, but the basics of maintaining all the necessary information and the libraries for a complete API are almost there.

While looking for a topic for my thesis project in grad school, I came across many different ideas for how one could work with robots, ranging from various applications of graph theory to individual machines which would then figure out who’s coming and who’s going, to using robots as web services, something touted by PopSci as a groundbreaking project but in reality, abandoned in the ROS open source repository as an experimental library, not guaranteed to work. Hivemind is designed to take a step back, answer the question of what you’re trying to get the robot or robots to accomplish, and then select the right bots for the job.

I’m hoping that with an adequate amount of time and feedback, it could even be used to recommend robot configurations but now it’s still all about refining the basics and making sure the underlying structure works smoothly and can provide an honest to goodness framework for training, experimenting with, and managing robot swarms. It doesn’t train bots on its own because there are a lot of ANN packages out there used by a lot of researchers and I doubt I’d make them switch over to something completely new. Instead, they could simply export their ANN’s data into a string-based format for Hivemind, outlined in the paper, and plug it into the framework as a new asset.

Ultimately, this is something I’d like to finish polishing and post on GitHub for beta testing to collect feedback from anyone who’d like to use it to have their trained robots tool around showing off what they do, or to find out how well their neural networks perform in the real world. Sad part is that because there’s no standardized set of libraries for communicating with all robotic platforms, the users would have to either write their own, or use utilities provided with their machines. For its part, Hivemind would let them correctly format their commands to be sent, and hook up the neural network outputs to the right commands via a utility library.

Meanwhile, in case you’re wondering, this will be submitted to a peer-reviewed journal as soon as its pared down to the template required by the journal I’m targeting. Even in computer sciences it can still take months between submissions and being told whether the paper was accepted or not, so while that’s going on in the background, I figure that there’s nothing to lose from posting a preprint and refining the project. If anything, comments, questions, and critiques from those interested in the research would only make it a better tool. Oh and for those of you who’d like to try it out when it’s posted but are horrified at the idea of running it on Windows 7, look into Mono

See: Fish, G. (2012). Managing artificial neural networks with a service-based mediator arXiv: 1204.0262v1

# tech // artificial intelligence / cognitive computing


  Show Comments