Month of Robots

Enter Your Project for a chance to win robot prizes for your robot builds and a $200 shopping cart!  The Birthday Special: Robot Prizes for Robot Projects!

Back to The Project14 homepage

Project14 Home
Monthly Themes
Monthly Theme Poll

 

Our software developer, hermitter, will happily tell you about his love-hate relationship with our infamous robot arm Lil Luxo. Just looking at the list of names he came up with for it will give you a glimpse of this: Hand Raptor, Clawosaurus Rex, King Claw, and Death Metal.

 

Carlos has spent hours with Lil Luxo, tuning its joints to precisely pick up a Zigbee light bulb controlled by the MATRIX Creator. Lil Luxo may take after Luxo Jr., the Pixar lamp, but I think it's safe to say it has its own flair.

 

 

Once upon a time, Lil Luxo responded to words like "Hey Google" or "Okay, Google". Recent sightings from Miami Maker Faire, however, prove that it now moves to a different set of sound waves- "Hey Snips!". Such is the life of a robot arm, once it is made, its growth never stops.

 

So, how did Lil Luxo come to be?

 

One day in 2018, the MATRIX Team was prepping a demo for an Arm booth at the Google Next Conference. It was clear they had to have at least two elements- Arm and Google. So, why not a robotic arm, activated by Google Assistant? Among ideas of what the arm could do, Alfred thought, "Maybe our robot arm could be like 'The Claw' from Toy Story, the savior of the little green aliens in the skill crane arcade machine." Since there was a lack of little green aliens in the office, they had to make do with the Zigbee light bulb lying around. It's a great feeling when we have all the components we need to control 6 servos for a robot arm, respond to our voice commands, and control a Zigbee light bulb all in one device- the MATRIX Creator!

 

As Lil Luxo came into existence, the team found that it looked just like the Pixar lamp, and its name was chosen.

 

To know the ins and outs of Lil Luxo's build and mind, read on!

 

Lil Luxo's frame and screws may be generic ones from Amazon, but a lot of thought went into its servo choices- we have the beefy servos for its base, shoulder and elbow, and weaker servos for it's wrist hinge, rotation, and claw. We ensured the right voltage range, torque, and angles for our application, while trying our best to minimize costs. Lil Luxo's servo wiring is neatly organized with zip ties and ends in a custom proto-board with soldered male header pins for the servo cables to fit onto. The connections to the MATRIX Creator's pins are also soldered and attached to its GPIO pins via a compact ribbon cable. All of this wiring is stowed away inside the 3D printed case Alfred designed and printed that we attach to Lil Luxo with good old double sided tape.

 

Lil Luxo has been updated to use MATRIX Lite JavaScript code with Snips.ai. We thought this might be a good change since that enables Lil Luxo to run offline as well!

 

For times when the environment is too noisy, we also made a website dashboard to control Lil Luxo's servo joints through a local website on its Raspberry Pi, served using socket.io. You can see the control code for it here, and the website styling/structural components here.

First, Lil Luxo has to register our Zigbee light bulb which it does when we run registerZigbee.js. Once the Zigbee light is registered, Lil Luxo can toggle it on our command, even on reboot. The Zigbee library we have uses MATRIX Core. There are more improvements to come for Zigbee with functions and reliability, but for now it gets the job done and Lil Luxo illuminates the room, sometimes blinding its observers!

Lil Luxo head on shining light

 

It takes a special skill called trial-and-error to train Lil Luxo to pick up the the Zigbee light bulb at exactly the right location on our MATRIX Labs board. In the next stage of its development, we might try to integrate a kinematics library. Currently, all of the servo angles for each motion sequence are found and coded into servo_lite.js.

Finally, it's all wrapped up with Snips. We made a simple snips assistant with the following intents and training examples, and put all the code together in app.js. This way we could ask Lil Luxo to pick up the Zigbee light and shine it, put it down, and also control the Zigbee light on its own.

 

For a more detailed outline of how to create a Snips assistant, check out our Arm DevDay workshop from January 2019 here.

 

The Snips Assistant and App.

 

The robotState intent inside the RobotControl app.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The zigbeeToggle intent inside RobotControl app.

 

The custom toggle slot.

 

The custom light slot.

Lil Luxo is one of our most loved demos, and we're excited to see it evolve as we come up with more ideas, integrations, and optimizations. Let us know if you have suggestions for Lil Luxo's development or new robots that you can dream up with the MATRIX platform!