January 3, 2015

Controlling Multiple Spheros Simultaneously

HCI research, software design


The Mac SDK for Sphero only allows one Sphero to be controlled from an application. In order to overcome this limitation I built a system that would allow multiple Sphero balls to be controlled over UDP.

Developing the Client/Server Programs

As only one Sphero could be connected to an application with the Mac SDK, the best way to overcome this would be to provide every Sphero with their own client application which talks to a main server. The communication method that was used between the server  and clients was UDP. This protocol would provide little delay to get messages sent and received when compared with other options like TCP.

System Setup

All the code for “The Force” was written in Objective C and C++ in Xcode. The server and clients all ran on one Macbook Pro. One limitation with bluetooth was discovered. Only 7 Sphero balls can be connected to the laptop over bluetooth through a single bluetooth receiver. Therefore at any one time no more then 7 clients could successfully connect with the server. The server application dealt with the vision system, the haptic devices that provided users with feedback (to be discussed in future posts), and all the Sphero client applications. The below video shows the first successful attempt to command multiple spheros through the server-client configuration.

In this video we begin giving motion commands to multiple Spheros using a laser pointer. A switch is used for selection when the laser pointer is brought close to a Sphero.

return to top