I have a confession to make... I started writing this post in November 2011, but in the excitement of the events at the time, I left it unfinished... until today. This morning I stopped at a local supermarket to buy a book after a tip-off from my great friend Mike Dobson (more about him in a moment). I rarely buy physical, hard-backed, paper books these days, but I *had* to have a copy of this one as Mike and I are mentioned in it, along with our joint creation, CubeStormer II. The book in question is the book of Guinness World Records 2013! Please indulge me while I relate to you what led up to our inclusion in this well known book and what has happened since.
Two HeadsYou may be aware from my previous blogs and videos that I've had great fun with ARM technology over the last few years creating a series of robots using LEGO bricks and ARM Powered smartphones to solve the well known Rubik's Cube and similar puzzles. I agree with the old saying that "two heads are better than one". Teamwork is essential for me at work when designing and verifying ARM processor IP. However, as my personal hobby, I previously had fun creating my robots alone.
Two FriendsI met Mike Dobson through his video channel on YouTube when I was designing my first high-speed robot Rubik's Cube solver - the ARM Powered Nokia/LEGO Speedcuber. Mike also creates LEGO robots to solve the Rubik's Cube. In fact, it was one of his early three-handed, high-speed prototypes, showing the potential speed of a LEGO mechanism, which inspired the four-handed design that I developed for Speedcuber.
We began communicating in late 2009. We had a mutual interest in our robot creations and quickly became friends, chatting about the mechanical and software aspects of our designs. Mike is also a composer and I happen to love his music. At first I was reluctant to mention to him that I was working on my Speedcuber design that I hoped would be faster than his prototype. After a while, it occurred to me that Mike was also holding something back. Eventually I decided I had to be true to our growing friendship and let him know about my new creation. However, as I started to do this, he interrupted and said he wanted to tell me something first... he was developing a high-speed four-handed design!
Competitors or Partners?Despite the competition, we immediately wanted the other to succeed, and our friendship grew stronger. I helped a little with some of the software on Mike's first four-handed robot, and he kindly allowed me to use some of his musical compositions as tracks for videos on my personal YouTube channel and for the first video of Speedcuber. Despite the fact that both our robots were intended to be the world's fastest LEGO Rubik's Cube solver, we supported each other and had fun in "co-opetition". I vividly remember the weekend that Mike and I brainstormed and came up with the name "CubeStormer" for his design, which seemed very appropriate for a Cube solving robot made from LEGO MINDSTORMS bricks. I was thrilled for Mike when his first video of CubeStormer rapidly climbed to 1M views, and flattered that he included me in the credits for my small part in its creation. After this there was no stopping our friendship!
Only One Winner?Once the success of Mike's original CubeStormer and my later Android Speedcuber had subsided a little, he and I started work on new designs. Mike started developing an even faster robot, "CubeStormer II", and I began designing my own "Speedcuber II". We continued supporting each other even though the competition was more intense. Mike's talent lies mainly in the mechanical design and I am probably stronger on the software side. CubeStormer II uses four LEGO MINDSTORMS NXT "intelligent bricks". Each of these bricks has an ARM microprocessor running multi-threaded software to handle the motor control, sensors and inter-brick communication. This software became rather complex and Mike asked me for help. In the mean time I was struggling to achieve sufficient mechanical speed and strength with my own design. In late 2010 we came to the same conclusion that we couldn't do this alone... So we decided to team up and work together on a single design. It was obvious that visually it would be Mike's mechanical design so without hesitation we adopted the name "CubeStormer II".
Two HandsAndroid Speedcuber (which you can see me constructing in this time-lapse video) had achieved times of under 15 seconds and the original CubeStormer could already beat 10 seconds. So what were we aiming for? Mike observed that it would be cool to build a robot that could solve a Rubik's Cube faster than the current human world record. I recall that many years ago, the human record stood at about 20 seconds, but in 2010 it was held by Erik Akkersdijk with an incredible time of 7.08 seconds!
You may be aware, perhaps from my video interview with Tomas Rokicki, that in 2010, after about 30 years of research, it was demonstrated that any position of a Rubik's Cube can be solved in at most 20 turns. Both the algorithm developed by Herbert Kociemba, that Mike used on the original CubeStormer, and the algorithm that I developed for Android Speedcuber are capable of rapidly finding solutions close to the theoretical optimal 20 turns or less. Even the shortest methods used by humans, such as the Fridrich Method used by many of the fastest speedcubers, require around 55 turns, so our robots have a significant advantage. 55 turns in 7.08 seconds is close to 8 turns per second. Considering that our robots have four hands, I find it impressive that humans are able to achieve this speed with only two hands!
So we had our target: "sub7" –under 7 seconds.
Make it Faster – With Brakes!?!Mike continued to develop the mechanical design while I worked on the control software. I was fascinated to learn more about some of Mike's "tricks". For example, I was surprised when he told me is that the original CubeStormer had a passive mechanical braking system and that he had developed an active mechanical braking system on CubeStormer II (debugging the software remotely over the internet to control the synchronization of these brakes was one of the more interesting challenges we faced, but that is another story!). At first the use of brakes was counter-intuitive, but it soon made sense. It is rather like a racing car that can achieve a higher average speed by driving fast right up to a bend and then braking hard at the last moment to get around it.
At this stage, Mike and I were reasonably confident that CubeStormer II would be fast enough. Then a young Australian, Feliks Zemdegs, made headlines in the speedcubing world. In November 2010 he became the first human to achieve a sub7 time in a competition, setting a new world record with an incredible 6.77 seconds!
Our target had dropped a little, but we thought it was still achievable.
Every Millisecond CountsWe had to make every component of the design as fast as possible. Mike improved the active brakes and worked out efficient ways to overlap the hand movements. For example CubeStormer II can use two hands to turn opposite faces at the same time with the cube held by only one hand while the fourth hand is recovering from a previous movement. In order to minimise the software processing time, we selected the Samsung GALAXY S II smartphone. I ported my Android app from Speedcuber and then adapted the algorithm to be multi-threaded to take advantage of the greater processing performance of the ARM Cortex-A9 dual-core processor. I also enhanced the algorithm to search for a solution optimised to minimize the time by taking into account the specific capabilities and speed of CubeStormer II's mechanical design. Mike and I worked hard to save time wherever we could. Every 5 milliseconds we shaved off each turn would save about 0.1 seconds off the total time.
The race was on.
Moving TargetThen in May 2011, Feliks did it again. He smashed his previous record and set one of 6.24 seconds. Mike and I were shaken, but resigned ourselves to the new challenge. The following month, in June 2011, Feliks set an even faster time of 6.18 seconds. Mike and I could hardly believe it. And then only hours later, in the same competition, the unthinkable happened. We had been aiming for sub7 (albeit now closer to 6 seconds) when Feliks Zemdegs managed to solve the Rubik's Cube in a sub6 time of only 5.66 seconds! I believe that his solve was 52 moves so he managed almost an unbelievable 9 turns per second!
Go, Go, Go!By this stage Mike and I had support from ARM and were aiming to produce a video of CubeStormer II and then demonstrate it at ARM TechCon 2011. We worked flat out to reduce the time and bring it closer to our new target of 5.5 seconds but were concerned that Feliks might beat his own record yet again. At the beginning of October 2011, CubeStormer II was about as fast as Mike and I could manage. We worked with Scott Sartain and Stuart Waldron at ARM to produce two videos (thanks guys). The first was a "teaser" showing short sections of high speed action to try and generate an atmosphere of suspense, intrigue and expectation without giving away just how fast CubeStormer II could solve the cube. At short notice, Mike composed a new track for this video which, in my opinion, enhanced the effect. The second, main video was short with a simple message: this is CubeStormer II, the fastest robot in the world to solve a Rubik's Cube puzzle. Oh, and it is made from "a few LEGO bricks and an ARM Powered smartphone". You can probably guess from the exclamation of "Yaa beauty!" at the end of the solve in this video that there were several takes before CubeStormer II achieved a time of 5.352 seconds, faster than the current human world record.
Mike and I then flew to ARM TechCon in Santa Clara to demonstrate CubeStormer II. We were flattered by the reactions we received and thrilled that while there, we were interviewed by Sean O'Kane of ChipEstimate TV who also caught CubeStormer II on camera performing an even faster sub-5 solve of 4.762 seconds!
The Two Mad GeniusesAt this point, the order of events is a little hazy for me. There was the excitement of achieving what Mike and I had spent many long hours working towards (ok, I admit it, it was not really "work", it was great fun!). The main CubeStormer II video reached 1M views in about 10 days. CubeStormer II solved the cube around 200 times during the two days at ARM TechCon with at least three sub5 second times. There were multiple articles published on the internet including one of my personal favourites where Aaron Saenz, in an article for Singularity Hub, referred to Mike and I as "two mad geniuses" (Mike and I are not sure about the "geniuses", but we are almost certainly "mad"!).
Two Record BreakersThen Mike and I were invited to the Wired.co.uk office in London to attempt to set an official record in the presence of the editor-in-chief of Guinness World Records. Wow! I remember as a boy watching the "Record Breakers" television program. I was also given copies of the "Guinness Book of Records" several years running and I recall thinking that some of the achievements were amazing. And there I was, standing next to my great friend Mike Dobson, attempting to break a record ourselves!
On the morning of 11th November 2011, CubeStormer II performed well and set a new record for the Fastest Robot to Solve a Rubik's Cube with a time of 5.270 seconds. We were thrilled. Mike and I were "in the Guinness Book of Records"!
"Well actually", we were informed, "Sorry. The 2012 edition has already been printed (here is a copy for you)". "And there are a large number of records every year, so we cannot guarantee that CubeStormer II will appear in next year's edition either..." Oh well.
In reality we were only slightly disappointed. It was just amazing to be awarded the record. In fact, according to the Guinness World Records slogan it was "Officially Amazing"!
Which brings me back to this morning... It turns out that there was space for CubeStormer II in the next edition of the book after all!ThanksMike and I would like to thank everyone at ARM who supported us, Wired.co.uk for hosting the record breaking event and Guinness World Records for the award. Many people helped with inspiration, encouragement, challenging questions, equipment supply, graphical design, video editing and production, music, publicity and much more (many thanks guys – you know who you are!). We would both especially like to thank Michelle and Dawn for their love, support and understanding.The Fun Continues...Since November 2011, the fun has continued. Mike and I were invited to show CubeStormer II and some of my other robots at several events around the world. It has been an exciting year. For example, thanks to LEGO MINDSTORMS and The Centre for Computing History, Mike and I demonstrated our designs at the World Robot Olympiad 2011 in Abu Dhabi, at LEGO World 2012 in Copenhagen, and at the Gadget Show Live 2012 in Birmingham. I also found time to create one or two new designs, but I think I will save those for another post...The Power of TwoHowever, the most important thing for me to come from all this is not the record itself.More significantly, Mike and I have become great friends. While competing, we helped and supported each other, created some cool things and had fun. And when we started to work together we achieved far more and had even greater fun! He has reminded me that "two heads are better than one". Or rather, the way I prefer to think about it, "two very good, mad friends can achieve far more and have more fun together than they can alone".Thanks Mike!