Become a fan of Slashdot on Facebook


Forgot your password?

Video Learning Simple Robot Programming With a 'Non-Threatening' Robot Ball (Video) 29

Gobot, it says here, "is a framework for robotics, physical computing, and the Internet of Things, written in the Go programming language." And in today's video, interviewee Adrian Zankich (AKA "Serious Programming Guy at The Hybrid Group") says that an unadorned robot ball -- in this case the Sphero -- is about the least threatening robot you can possibly use to teach entry-level robot programming. Start with Go language? Cylon.js? Use whichever you prefer, Adrian says. Mix and match. It's all fun, and they're both great ways to get into programming for robotics and Internet of Things applications. Open source? You bet. Here's the Hybrid Group's gobot GitHub repository for your perusing pleasure. This (and more) is all in the video, which Tim Lord shot at the recent Solid Conference, where there was a rather high background noise level (but thankfully not high enough to make Adrian hard to understand). And besides the video, there's even more material in the transcript.

Tim Lord for Slashdot: Adrian, with the hybrid group, you are using the GO language through a couple of different means, couple of different paths to control robots, can you talk about that?

Adrian Zankich from The Hybrid Group: Yes so, GO is actually a very awesome language for writing connected applications. So, most people think of GO as a language for writing web applications and a lot of the things that make GO awesome for writing web applications make it really great for writing connected applications for talking to devices. Concurrency, statically linked binaries, it’s a very strongly tight compiled language so you find a huge class of bugs right at compile time and you can easily deploy to hardware devices and really take advantage of reading multiple sensor data concurrently. It's incredibly fast and also more importantly its garbage collected.

Now, a lot of people think that since you're running the software on devices, you need hard real time, all that sort of stuff, and actually most of the times you don't because what you're doing is reading sensor information, multiple sensors at the same time and then just sending that off somewhere, to Bluetooth, some M2m protocol like MQTT or CoAP and it's being recorded in your database somewhere. So for that having a couple of millisecond GC pause really has no bearing at all in your application. And if your application is so time sensitive that you need that I really want to know what you're working on and because that's a really good problem to have. So GO is a really great language for running on these small devices for a lot of different reasons.

Slashdot: JavaScript also has advantages.

Adrian: Oh yes.

Slashdot: Cylon.js, talk about that a little bit.

Adrian: So with Cylon.js we try to make it easy to develop a connected application, something like Ruby on Rails that would help you develop a web application. So there's a huge push for web developers turning into device developers and the bridge of that is JavaScript. Now with things like Node.js, it made web developers able to program on the server side, so that empowered a whole class of people to program in ways that they never could imagine before. And now with things like the Intel Edison, which is Intel's new developer board, it’s a 1x computer, it's got a dual-core Atom processor, Bluetooth, WiFi, radio, everything like that, it has really great Node.js support. So going from web development to device development is a seamless transition and empowers a lot of developers to actually get into this IoT space. So with Cylon.js we're trying to make it easy to actually develop these connected applications and JavaScript is a fantastic language. It's very fast. The I/O model is great for a lot of the devices. Some of the things I was talking about what makes GO awesome which is concurrency, all that sort of thing. JavaScript has a slightly different take on that, but the great things is a lot of these applications are I/O bound, which is Node is perfect for that sort of thing. So JavaScript is a great platform too.

Slashdot: Speaking of platforms, people suddenly developing let’s say, they are developing things that are going run remote from their desktops. You’re using over here Sphero, in Sphero what I can really think of is toys, but you're using this as somewhat more of a platform?

Adrian: Yeah, so a Sphero robotic ball is fantastic. So you know, a way to get started with hardware programming. There's no wires, there's no soldering, you open it up from the box, charge it up, shake it a few times to turn it on, connect the Bluetooth to your computer and you can start hacking right away. So it’s a very easy way to get started writing physical applications. And a lot of people think, okay, so what's the practical use of learning how to program a Sphero? Well the practical use is, it's really fun and it gets you engaged in learning how to program with hardware. So it's got a motor in it, an accelerometer, RGB LED, can roll around, detect collision, change colors, you can do a lot of fun things. Then we start getting more advanced, you can hook up cameras with open TV, track the balls, make them do formations, do a lot of things ,and it's a very great starting point to getting to hardware programming because you know... How much more non-threatening can you get than a Sphero robot? These things are so much fun. I've been programming these for years and I love them, they are so much fun, they are great.

Slashdot: Between the two different platforms that you just described as far as open source-centric ways to program robots, if you were to advise someone to start learning to control robots with one of these, which one would you pick and why?

Adrian: So I’d say if you're a web developer, obviously Cylon.js is a great starting point because the transition from, let's say, sort of jQuery frontend, Ember, React development through Node.js Express, you know, server side stuff to device programming is a very easy transition. Now if you're not a JavaScript developer but C, C++, that sort of thing, Python, Ruby, GO is a really great choice for that because, it sort of fits more into the paradigm of those languages a little more, where it's a great language, easy to learn. It's got just over 80 keywords, you can learn GO in a few hours and just start hacking right away and it's a really great fantastic language. So I think it really depends on your background. If you're more web-centric, then obviously Cylon JavaScript and if not then GO could be really good fit for that.

Slashdot: And either one, you could start moving your Spheros around?

Adrian: Oh yeah, and so we have full support for things like Spheros, Raspberry Pi, Beaglebone Black, Intel Edison, different types of drones, Arduinos, lead motions et cetera. So, between toys, drones, more hacker boards, you’ve got the whole spectrum covered and they all have integrated APIs so you can actually write part of your application in GOBOT, part of your application in Cylon.js and communicate through each other. So you don't have to choose just one language, it's a polyglot world, just do it all and program your whole world together.

Slashdot: One thing I'm always curious about is when you’re programming a hardware like this, people are going to come with their own moves, their own recipes. Is there sort of a community of things that are using these languages, so we could download and upload for that matter, would they come up, is there a good sharing mechanism?

Adrian: Yes, so a great one is GitHub obviously, that's where sort of the world's open source exists now, but also a great platform is called where a lot of hardware platforms have sort of front pages that you can write your hacker projects and upload it to this website and tag different types of hardware platforms and really tap into that whole community. And people post step by step instructions on how they build their projects or whatever, where it is schematics, code, everything that you need. So that's a really great place to be a part of, see what other people are doing and just get really involved. So you know between places like GitHub to host your source code, to places like, to actually post your complete project, there are some really great communities out there, people who just want to learn and have fun and connect with other people.

This discussion has been archived. No new comments can be posted.

Learning Simple Robot Programming With a 'Non-Threatening' Robot Ball (Video)

Comments Filter:

If computers take over (which seems to be their natural tendency), it will serve us right. -- Alistair Cooke