Wednesday, 12 October 2016

Meccanoid Behavior Builder Robot Coding


Meccanoid is a big humanoid robot from the Meccano brand. This year there's a new Meccanoid version 2.0 and large 2.0 XL and also an update to the app so that Meccanoid can be programmed. Don't worry if you've got an older Meccanoid, the G15 and G15KS are also supported by the app.

Last year we loved the Meccanoid but felt that we'd get more from the robot in the long term with a full-featured programming capability. Low-level apis for controlling the servos were released but these weren't really child-friendly.

Account Needed

The new version of the app requires you to be logged in to a SpinMaster account so you'll need to set this up first.

Offline Mode

You can work with the app in offline mode without a Meccanoid connected. This is really useful as you can spend time learning the features and experimenting without a Meccanoid connected.

This will definitely be appreciated by owners of smaller Meccanoids which get through batteries rather quickly. (The larger Meccanoids offer rechargeable batteries.)

You can even test your behaviour on a ragdoll animation of a Meccanoid.

Behavior Builder

Behavior Builder is part of the Meccanoid App rather than being a separate app. It replaces with motion capture based 'programming' that used to be available. We thought that was great fun as a neat trick to show friends, but programming is much more useful.


The Behavior Builder is a graphical editor that allows you to use flow-chart style diagrams to wait for inputs and sequence outputs. 

Inputs are round. The available inputs are:
  • Meccanoid's servos act as inputs, you can move them and get the position of a servo as input. 
  • Physical buttons on the Mecca Brain on Meccanoid's chest. There are four coloured buttons and you can trigger different paths depending on the one that is chosen. 
  • You can select from a choice of onscreen buttons that a user can press to select a particular path. 
  • You can also trigger paths based on alarms, timers and counters

Outputs have straight edges. The available outputs are:
  • Triggering a pre-prepared animation or sound recording which can be created in the app or using LIM on the robot itself. 
  • Moving Meccanoids floor movement motors either together or individually. You can control the speed and the amount time. 
  • You can move Meccanoid's servos. 
  • You can change the colour of Meccanoid's LEDs in the eyes, servos and Mecca Brain. 
  • Text. This is currently just displayed on the screen of your device. It would be good if it could be spoken via speech synthesis. 

Overview

The basic idea is that there's a starting element - a green star - and then Meccanoid will follow the arrows waiting for inputs and then running outputs.

It doesn't seem to be possible to be waiting for multiple alternative inputs concurrently unless you use the physical buttons or an if/else with onscreen buttons. This limits what you can do, but it's a good start.

Connecting elements

You sequence elements by dragging them onto the workspace and then connecting them by dragging arrows. 

To remove an arrow you can either redirect it to a new location by dragging it or you can touch the canvas for 1 second and then a pair of scissors will appear that you can use to cut the wire. 

Branches

You can introduce branches using the coloured buttons on the Mecca Brain or using the 'else' outputs that some of the inputs have. 

If / Else

You can create alternative choices by dragging an input over another input. For example you can can drag a button over another button and allow the user to make a choice between to paths. This approach seems to be limited to two options at the moment. 

There's also some AND/OR logic which we haven't looked into yet. 

Loops

Loops are created by simply connecting an arrow to an earlier point in a flow. You can use a loop with a counter to repeat an action a given number of times and then do something else. 

Device Interaction

The onscreen virtual buttons and text outputs work well for adding additional capability and make sense when using a phone placed in the phone holder on Meccanoid.

Testing and Running

You can test your programs in offline mode which is really useful. You get a ragdoll animation showing Meccanoid's programmed movements, voice playback and onscreen text is displayed; a red dot steps through the code showing what is running. It would be good to have ragdoll avatar input capability too. Note that the avatar only appears if there are output elements that use it. 

You can also run your code on Meccanoid from the editor and it will highlight the currently active element which is really useful for debugging. 

We couldn't seem to stop the execution of a program, Meccanoid even continued after being turned off and on again. You can just save and load the program again to reset it. 

Meccanoid the Mummy

My 8 year old used the Meccanoid Behavior Builder for a school project.

Meccanoid had to suffer being bandaged up! My son was careful to avoid moving parts. 

First he recorded LIM animations using Meccanoid itself and then he created a Behaviour Builder behavior to put them together so that they can be controlled using Meccanoid's buttons rather than voice (which isn't always reliable and is tricky when demonstrating in a noisy environment.)

He completely got the idea of the button input and connecting its coloured arrows up to the LIM animations he had created (these are visible on the tablet when connected via Bluetooth) but he needed help to get the arrows arranged to his satisfaction. 




He also understood the idea of using arrows to loop back so that users can choose another option. Again he needed help trying to arrange the arrows (not that I was much help!) 



He had also recorded a fifth bonus LIM so we worked out that we could use a counter to check when 4 animations have been played (it doesn't check that all four have been played, any four will do) and have an alternative path when the counter hits four. Moving the arrows was a real challenge and we weren't happy with the readability of the layout. There may be some tricks we haven't discovered yet. 



Here's a video my son made of his project:

Usability

We have managed to program Meccanoid to do some interesting things with the Behavior Builder but the interface is very awkward to use. The basics of dragging and connecting are okay, but it can be very tricky to move things around and create complex connections. Sometimes it's really hard to move an arrow and other times it's too easy to move them accidentally. Both my children, aged 8 and 9 struggled with the editor though they had no trouble with the concepts once I'd explained the icons. 

The basic concepts have been really well thought through, the countdown, timers, button-based branching and creating loops with arrows are intuitive. We haven't quite mastered the more complex concepts yet, there isn't any documentation. 

I've used lots of drag and drop editors including flow-based editors and this is one of the most difficult to use. It's really frustrating when my kids know exactly the logic they want to create but are having trouble with the physical task of connecting things up the way they want. This is discouraging them from creating more complex behaviors. I think they would find text-based coding easier. 

The layout algorithms also need improvement as the resulting diagrams can be very hard to read and you have very little control over where things are placed.

Hopefully the usability will improve in the future as the basic concept is fantastic and my kids found it easy to understand (though we haven't figured out all the feature yet.)

Verdict

The Behavior Builder adds much-needed programming ability to the Meccanoid family of robots. It's given our Meccanoid a new lease of life. We loved the process of building it and using it as an entertainment robot (it's been a fab kids party robot) but felt that the awesome hardware really needed programming capability to get the most from it. 

The Behavior Builder is already showing a lot of promise. The interface could do with some usability improvements and some of the advanced concepts are tricky to understand without more documentation and examples. But already it's a huge step up and we've been able to really start to customize our Meccanoid.

My kids are younger than the recommended starting age for Meccanoid (10) but picked up the basics of the drag and drop coding quickly, through both of them struggled with the editor when connecting things up, as did I. 

The Behavior Builder needs more documentation and examples, but it has only just been released and we expect there will be more before Christmas.

We'll definitely continue to use the Behavior Builder in its current form but we also hope it will improve over time.

The Behavior Builder supports the new Meccanoid 2.0 and 2.0 XL robots as well as the older Meccanoid G15 and G15KS. Note that the larger robots come with a rechargeable battery which is really useful. 










More from Tech Age Kids:

Comments:

Steve said...

Very useful guide, Tracy. BTW, there's a new firmware update just out that includes some new features, including a "trivial pursuit"-style quiz and a "hug me" function.

Tracy Gardner said...

Thanks Steve. Funnily enough we took Meccanoid to our after school Code Club yesterday and the children chose to get Meccanoid to hug them so I can that will popular.

Post a Comment