Thursday, October 27, 2016

Root: A robot to teach coding from 4 to 99 years old

(Spanish version here.It's been nearly 2 years since I've posted anything on this blog, but today I want to show off what I have been working on during that time. Here it is...

At the beginning of 2015 I joined a research group at the Wyss Institute, at Harvard University, where we are working on new ways of doing educational robotics (which has been my main pursuit since 1993). The result of this work is Root, for which we have launched a Kickstarter campaign:

There are several features that make Root and it's companion software (called Root Square) unique. I want to mention some of them here.

His world is the whiteboard
In the classrooms of many countries, the whiteboards are metallic.  This makes it possible to attach magnetic accessories to them (like the ones we attach to our refrigerators). Root is a magnetic robot; although it can work perfectly over a table, the floor, or over a piece of paper or poster board, it can also work vertically on a magnetic whiteboard. This is not a minor detail: the whiteboard is a great tool/arena for building the world with which the robot interacts. This can even be done while the robot is running, in an interactive way, opening up a lot of unique activities. Additionally, whiteboards offer another big advantage: if you have ever seen a robot competition, you probably know that creating the physical environment for the robot to compete is often complex and expensive. But whiteboards allow us to build complex 2D worlds by just drawing, which is in itself an interesting activity.

A lot of sensors, and something else
Not any magnetic robot can live in a whiteboard. Root features some important elements that makes its life there easier and, let's say, much more productive. 

First, Root has an grip in its geometric centre to hold a standard marker. An internal motor lets the robot to lift and drop the maker, and to do the same with the included eraser (which is part of the robot too). Until now, it might not look very different from other drawing robots...

But, Root can draw with high precision, due to a big set of internal sensors (high resolution encoders, a 3D accelerometer and a 3D gyroscope) that work together with its precision motors. This feature is more complicated that it first appears because Root must compensate for gravity (which should not be underestimated).

Finally, and this is probably his most important feature: Root has 32 color sensors on its bottom. This is kind of equivalent to a 1D camera, or a small color scanner. This group of sensors enable the robot to interact with people's and other robot's drawings. For now, Root can differentiate up to 5 colors (black, white, red, blue and green). The number of activities that can be done using just this sensor is quite large – particularly on whiteboards. The most important aspect of this sensor is that it's very easy to use with young kids, and yet powerful enough for complex problems you might encounter in a college-level class. It's versatile, robust, and easy to program. But the activities you do with it can be as challenging as the user wants...

One should note that Root is not only meant for basic activities, it's one of the robots equipped with most sensors in its market segment. In addition to the previously mentioned 32 color sensors, hi-res encoders, 3D accelerometer and 3D gyro...Root features 2 ambient light sensors, 4 touch areas on its top, 2 bumpers, an internal battery sensor, and 4 magnetic surface sensors on its bottom (which allow it to improve the way it drives on metallic surfaces). 

Regarding expansion, third party boards and other accessories (like Raspberry PiArduinoBBC Micro:Bit, cameras, sensors, etc.) can be connected through an USB-C connector on the robot's back. Root has also 16 multicolor (RGB) LEDs, and a piezo speaker with which it can play musical notes. For connectivity, Root can talk to any Bluetooth Low Energy device, like most modern tablets, mobile phones, laptops and desktop computers.

New multi-level software for all ages
A big portion of the research effort was dedicated to the software. Currently, in the educational robot market, there is no single product that can be used to teach coding from very early ages, like 4 year-old, all the way to college level. Think about a 4 year-old kid: in general, she/he doesn't know to read/write, and is not able to count to numbers bigger than 20. A graphical programing environment that really addresses this group is also very useful for older people who were never exposed to coding before. In making an interface that young kids can understand, you must introduce some limitations. While we wanted an easy entry, we didn't want to limit what people could create, so we chose to make Root Square, Root's companion software, multi-level:

Square Level 1
Root Square's Level 1 interface has been designed to be accessible for kids as young as 4 or older kids who have never experienced coding before. I have personally seen adults happy they created their very first ever program with Square Level 1. So far, Level 1 as some unique features that make it uniquely easy to program with:
  • It's probably the most interactive programing environment for robots out there: Not only does it not need compilation, but also the user's program can be modified while it's running. This puts Level 1 in a very different category when compared with traditional interpreters. Adding, deleting or modifying instructions (blocks) even inside a running loop is absolutely possible; the user's program will just keep running with the new modifications. This capability makes it ideal for working with young kids, as they are really playing with the code while it runs. This also facilitates introducing programming in the classroom, where time is always at a premium. No more slow compile, upload and test cycles.
  • It's been optimized for touch screens. Many currently available robots can be program now with graphical programing languages. Most of them follow the same paradigm which, let's say it, it's based in developments mainly done between 1995 and 2005 (so let's put it clear: this was 21 to 11 years from now). Square was designed breaking some of the "accepted rules", which were no more than just legacy stuff designed for desktop computers.
  • There has been a lot of effort invested in optimizing the relationship between the number of elements (blocks) that build a program, and the powerfulness of that program. This means that in Root Square, the user programs are short when compared with other graphical languages currently in use. But being short does not mean at all that the algorithm is hidden or not designed by the user. The student must still create each rule or response for the robot. Level 1 is completely events-based and thus with very few blocks it's possible to solve complex situations that in other environments require far more syntactic complexity. Often, the programs can run exactly the same as in other environments, but the Root Square program is shorter and easier to follow. I would like to explain more about this, but let's leave that for a future post.
Level 2 and Level 3
For more advanced users or the beginners who reach Level 1's limits, Root Square provides another graphical programing language: Level 2. Both levels are accessed from the same app in a very simple way, and previous Level 1 code can be automatically translated to Level 2 to ease the transition. Although Level 2 is more similar to other existing environments, it still brings some newnesses that make it more agile, more powerful and more friendly. Finally, the programs created with Level 1 and Level 2 can be converted into PythonJavaScript, or Swift code (Level 3). Root offers a rich and open API and a development kit (SDK) that opens the door to all kinds of advanced applications and interactions with other devices:
I hope to publish more about Root's details during the upcoming weeks. For now, the most important thing is to make it happen. Everyone can help through the Kickstarter campaign. Thanks!


  1. Thanks for providing information.Find best electronics company in pune here.

    1. Great Article Cloud Computing Projects

      Networking Projects

      Final Year Projects for CSE

      JavaScript Training in Chennai

      JavaScript Training in Chennai

      The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

  2. I have bookmarked your website because this site contains valuable information in it. I am really happy with articles quality and presentation. Thanks a lot for keeping great stuff. I am very much thankful for this site.
    modular conveyor parts

  3. The best php application development, company in India. We contribute high quality custom php website development, services from our well-trained team. Get to know more about the php development company, in Chennai Reach us or just give a call to us for php development.

  4. ICD, or International Statistical Classification of Diseases and Related Health Problems, provides alphanumeric codes to classify diseases, and report symptoms, injuries, diseases, and conditions.ergonomic chair

  5. This is a great motivational article. In fact, I am happy with your good work. They publish very supportive data, really. Continue. Continue blogging. Hope you explore your next post

  6. I think this is an extraordinary article. You make this information interesting and secures. You give perusers a lot to consider and I esteem such a forming.
    iot courses in delhi

  7. I was looking at a portion of your posts on this site and I consider this site is really enlightening! Keep setting up..
    HRDF training


  8. I think this is an extraordinary article. You make this information interesting and secures. You give perusers a lot to consider and I esteem such a forming. AI Courses

  9. Here at this site actually the particular material assortment with the goal that everyone can appreciate a great deal.

  10. Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.
    Digital Marketing Courses in Hyderabad With Placements

  11. "
    I was just examining through the web looking for certain information and ran over your blog.It shows how well you understand this subject. Bookmarked this page, will return for extra."
    AI course in malaysia

  12. This is really a nice and informative, containing all information and also has a great impact on the new technology. Check it out here:اخبار التقنية اليوم

  13. I read that Post and got it fine and informative. creare sito ecommerce

  14. I think this is an informative post and it is very beneficial and knowledgeable. Therefore, I would like to thank you for the endeavors that you have made in writing this article. All the content is absolutely well-researched. Thanks... online outsourced bookkeeping services

  15. This is really a nice and informative, containing all information and also has a great impact on the new technology. Check it out here:bóng đá trực tuyến

  16. "
    I was just examining through the web looking for certain information and ran over your blog.It shows how well you understand this subject. Bookmarked this page, will return for extra."
    360DigiTMG Artificial Intelligence Course malaysia

  17. Thanks for sharing this amazing post. AnaxDesigns is amongst the top graphic design firms in the US that provides professional design services and will make you a premium logo design of your brand.

  18. I will truly value the essayist's decision for picking this magnificent article fitting to my matter.Here is profound depiction about the article matter which helped me more.
    AI Courses

  19. A more modest variant, the Omnibot 2000, was a toy robot created during the 1980's. aspirateur robot

  20. Pretty nice post. I just stumbled upon your weblog and wanted to say that I have really enjoyed browsing your blog posts. After all I’ll be subscribing to your feed and I hope you write again soon! custom d&d miniatures

  21. Thanks for the nice blog. It was very useful for me. I'm happy I found this blog. Thank you for sharing with us,I too always learn something new from your post. coding chair