Our aim is to bring Artificial Intelligence out of labs and into people’s everyday lives. This blog is where we’ll share the stories, challenges and achievements that make this ambition such an interesting ride.
Test Director (Software), Anki
Tuck and Roll, Cozmo: How Our Little Bot Changed Testing
Posted by Jane Fraser, Test Director (Software), Anki | July 11th, 2018
Like most tech startups, Anki tests its software. We also have to test our hardware, which adds a layer to complexity to our work, thanks to the physical component of robotics. While the methodologies are consistent with both, the thought process, and toolkit needed have expanded. Anki’s Cozmo and OVERDRIVE both posed unique challenges, and in turn new approaches, to our traditional testing.
OVERDRIVING Me Crazy
I remember arriving early to work my first few weeks at Anki to do a little extra testing with our first product, Anki DRIVE. During my early morning testing sessions, the cars kept sliding off the track. When I tried to replicate the sliding problem to my team later in the morning, though, the cars hung to the track like glue.
One morning another engineer happened to come into the office early. He came over to watch me with my track of sliding cars but was blinded by the sun. We discovered at certain times of the day (like when I was in the office at the crack of dawn), the sun would bounce off the track and hit the camera on the underside of the car. The camera is used to read the infrared codes printed on the track. If the engineer didn’t come over at that exact moment in time, it would have taken me longer to figure out the problem. The fix was a hardware change creating a sun shield that kept the bounced light out of the camera view.
This was the first time I realized I wasn’t just testing software. Hardware is an intricate piece of the puzzle, and testing it relies just as much on factors like the effects of dust, water, and network interference as it does the quality of our manufactured pieces.
Some of our drop testing is nice to Cozmo, this is a picture of the testing of Cozmo’s tuck and roll, when Cozmo senses he’s falling he pulls in his lifts and rolls his head down to prevent damage.
Anki DRIVE and its successor Anki OVERDRIVE both yielded unexpected learnings. At one point during our testing, two members of the team were somehow shutting down OVERDRIVE cars, simply by picking them up. The problem? Static emitted by those team members’ orthodontics. We tweaked the cars (and Cozmo) so they’re immune to the static humans can carry.
*Let’s get physical, physical*
Cozmo, our little robot with a big personality, is a rambunctious little fellow who would actively explore the world around him. That was part of who he is, and if he’s going to move and react as our animation team intended, all of his physical pieces needed to work properly.
To more easily eliminate bad hardware, we used the factory test fixture. A test fixture is what a factory uses to validate that the product is working correctly, making it easier to eliminate bad hardware. Cozmo has more than 300 individual parts: motors, camera, speakers, sensors, wheels, arms, belts, and more. Once his software -- the emotion engine, the programming he uses to navigate his space -- was set up, it was important to make sure his hardware would also perform well.
The pieces of a robotic puzzle strewn across one of the Anki office desks.
Cozmo’s treads are a great example. They’re his sole means of traversing through his environment, which means they need to handle the wear and tear of his excited explorings. After picking one of our many prototypes, we tested different tread consistencies to determine durability and mobility.
Cozmo’s gears were equally important during the testing phase. Gears that are too tight or loose can change how Cozmo’s animations work. As with other product aspects, we have test fixtures so we can avoid chasing a nonexistent software bug. On such tests, we partner with the hardware team to improve the manufacturing process. This part of our testing even includes visits to the factory during both test runs and final production verification runs.
Preparing a Cozmo-naut
Because Cozmo is a real-life robot in a real-world, physical space, he faces many of the same environmental stresses we do. We test how high and low temperatures, as well as humidity, will affect his components. That way, we ensure Cozmo is impervious to all sorts of play settings, from frigid Canadian winters to the scorching Texas heat. We also include a fair amount of shake tests, to simulate how his components will hold up during shipping to customers or stores.
A fridge full of Cozmos in preparation for testing the next day.
Maybe the most important tests are drop tests. Yes, we’ve dropped a lot of Cozmos, in the name of science. Think back to your fifth-grade egg drop science experiments, but with Cozmo’s inner wiring and delicate pieces acting as the delicate egg and his outer shell as the sturdy cardboard, aluminum and other protective materials to cushion the fall. After dropping the little guy, we take him apart to assess damage, working with the hardware team to further cut back on possible future damage for such falls.
These are just a few of the many ways we’ve adapted testing with OVERDRIVE and Cozmo. Testing robots is new territory that can be difficult to predict. We’re excited to be a part of this emerging frontier and ensuring that the robots we’re sending into homes are consistently performing as they should. Our robots perform under a wide variety of real world conditions in people's homes. We aim to represent the premium and most capable choice in these robotic categories. That means Anki desks sometimes look like robot operation tables with Cozmo parts strewn across them, but that sad image of our little guy dissected into his 300-plus pieces is all in the name of perfecting him for consumers.