Advice needed on platform to run robot remote control


Hello Keith,

prenote: hope you are fine when I'm crossposting this to the mailing lists .. which is the best place to have discussions like these. Since other can profit and help as well!

Another note for other readers: the "connected car demo" Keith is referring to can be found here:

Now, regarding you project: sounds cool! Wish I had more time to play with robotics too=(

I can only speak for the software aspects: all the parts are there. Here is a quick outline of how I'd approach it:

On the Yun's, you will need WAMP application components that talk on the one leg via serial to your Arduino motor/sensor board (for this serial talking, I'd invent a simple, adhoc "protocol" .. e.g. ASCII based). On the second leg, these Yun WAMP app components talk .. yes, WAMP .. to an uplink WAMP router.

You can create these Yun app components in a language of your choice, e.g. Python (using AutobahnPython) or JavaScript (using AutobahnJS) or even C++ (using AutobahnCpp) or .. pls see The same (freedom of choice for app component language) goes for any other component in your system. And you can use different languages as well. Anyway. Choice might depend on your background / preferences. For Python, here is a tutorial to get you started: => Note that this tutorial is not using, but runs a router directly on the Yun .. which isn't sufficient in your case. But the basics of the tutorial (how to get started with AutobahnPython on the Yun) still apply. Working with the Yun/Linux can be a little tinkering .. it is a very small, non-mainstream device (MIPS processor etc).

The router runs somewhere in your network or in your cloud, and all Yun component connect to that router. Then you can have a "robot backend" component that centralizes control/sensing logic. Then you can have browser components (AutobahnJS) which also connect to that router, and talk to the "robot backend", which in turn talks to the Yun "robot buddy" components.

So in total, there are 3 (types of) components:

a) browser (frontend)
b) robot backend (data center)
c) robot buddy (on the Yuns)

The "robot backend" component not only centralizes and coordinates the control/sense of your robot herde, but you can also implement any kind of security/user scheme there. Since the browser components would not be allowed to talk directly to the robot buddy components.

Cost for above software? Zero. All open-source. Expect a learning curve though;)

Speaking about frontends: I'd start with a browser based frontend: works everywhere. And comes with an embedded Web server to serve static Web content as well. So you don't need any other server.

However, you can also add "native mobile" app frontends. MDWamp (iOS), AutobahnAndroid (Android -- but currently still at WAMP1) and WampSharp (Windows Phone) should have you covered.

Platform? You mean OS? For, I'd recommend either Linux or FreeBSD for serious use. Using some Ubuntu box will probably give you the easiest trip.

Hope above already helps you getting started .. pls come again and ask more;)



Am 12.10.2014 05:59, schrieb keith altavilla:

Hello Tobias,

I just saw your 'connected car demo' and i am very excited to see such an elegant control GUI.
I would greatly appreciate your advice. It seems like the suite of products you offer are exactly what I need.
This is my project.

I have 6 robots, Three are simple x/y tables driven by nema 23 stepper motors with encoders. Another two are 3 servo positioners that must know where they are at all times and be capable of returning to a 'home position. The last positioner is a simple rotary table with a 360 degree range of motion. There is a stationary camera on each of the 3 positioners, and they will only need to transmit images while their respective positioner is in motion, after which they can just display a still frame. All 5 robots and both cameras will need to be controlled from the same GUI.

I am planning on using arudino yun's to manage the motor control responsibilities, and I anticipate having to use one Yun per robot. These would all be networked together via wifi.

I would like to create an 'app' that can be run from an authorized wifi device, and can be run from within a website by an authorized client, that allows, much like your 'connected car demo', remote positioning, and feedback that a change in positioning has been completed.

My questions are as follows: How do I get started? What platform should this be built on? Can it be made to be compatible with Windows, Android, and Apple products, so that a client can drive the robots around from their phone, tablet or laptop? Exactly which of your products do I need? How much will this cost? Are there other products I need to use in concert with yours to successfully complete my project? Am I mistaken in my choice of hardware and are there more suitable boards, recommended shields, or motor types I should use? Given that only authorized users, on a temporary basis, should have control over the robots, is there a particular way you would suggest to implement security and permissions and does this influence your choice of platform? How would you suggest I best deal with the security concerns?

My apologies for so many questions. Please excuse my ignorance and inexperience. I am merely looking for a guide to the right path so that the time spent points me towards the fruition of this project. I anticipate that your products may help me get there. Thank you for your time.


Keith Altavilla