Programming a robot is no easy task. While tools like the Robot Operating System (ROS) simplified a lot this process, learning ROS still takes about 3 weeks on average to a PhD student.

While for a professional roboticist ROS is a must, many people without coding background will in the future desire to interact/operate robots. To simplify the process of programming a robot and to open up robotics to a wider audience our team is happy to unveil robot_blockly, a ROS package for programming robots with Google’s blockly library.

Motivation

Mitch Resnick, one of the persons behind Scratch points out something interesting:

We shouldn’t think about young people as digital natives

He claims that young people has a lot experience at interacting with new technologies but lot less when creating and expressing themselves with new technologies. It’s not that hard to justify this claim and you can probably come up with a few examples, here’s the one that I happen to see the most:

Can we really consider this as being a digital native?. Mitch disagrees:

… it’s almost as if they could read but not write

And indeed it feels like that. Can these individuals create things based on knowing how to use a variety of modern devices (potentially, including robots?)?. They indeed bring up new ideas and approaches but creating technology that has a wide impact requires literacy. Specially in robotics.

The third language

Modern schools tend to teach kids two additional languages. Typically youngsters, get exposed to English, Spanish, French, German, etc. There’s a big debate regarding the benefits that learning foreign languages bring leaving (I actually learned quite a few while studying abroad) but leaving that aside isn’t it more useful to have them learn a programming language instead? How about C or Python are widely used no matter where you are?

Many countries are acknowledging this fact and are starting to teach how to code from an early stage.

A block-based approach for programming robots: robot_blockly

As pointed out before, in robotics, coding is like writing. in other words, literacy for a roboticists requires to know how to code. We could indeed focus on teaching the new generations programming but how about making it easier for the existing ones?. That’s exactly what our time has been up to with our work on robot_blockly.

Here’s how programming a robot looks like with robot_blockly:

Just drag and drop blocks to put together behaviors in your browser.

robot_blockly puts together the best of the two worlds: the flexibility and power of ROS together with the simplicity of the block programming trend that Mitch and his team started with Scratch.

Wonder what you can do with robot_blockly, have a look the following examples:

Examples

The robot_blockly ROS package is open source and released under a GPLv3 license. You can fork the code and modify it to your needs. In addition, if you happen to be a robot manufacturer that wants it done for you reach us out and request a customization.

robot_blockly will be presented and discussed by Erle Robotics next 8th and 9th of October at Seoul, South Korea during ROSCon 2016. If you happen to be around, come and talk to us!