Jibo is (or should I say “was”?) an adorable companion robot that had everything to revolutionize the way we look and deal with personal robots. It turned out that the Jibo’s creators are closing their doors… and servers.
In the last year, we were challenged to transform an industrial robot in an entertaining robot, that draws images created by its fans on a KitKat.
But that’s a completely different story. Today I just want to focus on Jibo, and to make a long story short, Jibo was the perfect candidate to humanise this project.
After purchasing two Jibo units, we were looking for the SDK downloads. For our disappointment, we found that the SDK had been removed from the developer’s site. After a couple of emails with Jibo Inc, they finally told us that they weren’t able to give us access to the SDK.
This left us with no options, Jibo had to be controlled one way or the other... we went for the other way.
Better for you to take a break; this is going to be a long story.
Open it, don’t break it.
This thing is so well designed and assembled, that seems like all the parts are made to fight against you. After a lot of tinkering, we tried disassembling it from the bottom, but besides the battery, we didn’t move any further.
It happens that the access must be made from the top. Remove the glass frame, and you will be able to access the brain room.
After clearing the brain room and removing all the electronics, we had to figure out how to access the middle level.
This screw needs to be removed, and the belt afterwards
And this is how the first endless rotation joint looks.
Here we entered free mode and there aren’t any more photos until it was totally disassembled, apologies for that!
This robot is being powered from the bottom and has three distinct levels. Each level has a DC motor, an encoder, an IR sensor to detect a reference position and an endless rotating joint. A slip-ring is being used to pass all the cables through this joint, like the one below from adafruit.com.
To interface with all these devices, we decided to use Phidgets modules.
The DC Motor controller besides handling two amps has an Encoder port and Phidgets provides software with Encoder and PID built-in which is excellent. To detect the IR switch we used the 4x Digital Input Module and to connect all these modules to the computer there is the VINT Hub.
This video shows first tests running Phidgets controllers and software:
In this video we are running two levels, both being powered from the bottom. On the right side of the screen, you can see the IR switches being triggered on every spin. The windows on the left are the two DC motors with PID control. If you notice, there is a grinding noise on every spin, at this time we started to solve all the crackles and noises. Such a complex object with so many tight fittings does not leave any space for errors, and it was all about space.
For the brain, we are using a LattePanda. We’ve been using this small computer for years and every time we need something small running Windows this is our choice. The available space is very tight but fortunately, luck was on our side because everything fit inside nice and tight.
This is a schematic showing our data, power cables and all the connections.
There are some tricky power demands here:
- The Lattepanda and screen run on 5V but they need a lot of juice. So we are powering the unit with 12V, being regulated to 5V, in order to have less current passing through the wires.
- DC motors are running at 12V.
- The IR switches and encoders are running at 5V.
Slip rings have very thin wires, so we split GND for three wires, 12V for two wires and 5V on a single wire.
On each level, we are using these small protoboards to connect everything between levels.
Regarding software, just let me give you a little bit of context because Jibo was part of an integrated solution.
There was the “Maestro” application that managed all the events:
- client tablet drawings;
- host tablet that submits drawings to the “Mastro” app;
- “Maestro” app detects a new drawing and initializes robotic arm drawing sequences;
- “Maestro” app commands Jibo movements and behaviours.
On the Jibo side, we are using a program developed in Unity3D to play all the eyes animations, and a C# program to interface with Phidgets. Unity has been the most used framework inside Artica and we have a lot of behaviours already developed inside Unity, so it was the chosen tool for the task.
The following video shows some Jibo behaviours, purring, salutation and goodbye. You can see that the movements aren’t as smooth as the original Jibo, it was the best compromise we could achieve. With the modification, the head became quite heavy. When it spins its hard to control the momentum, and the PID is already doing a great job.
You can find more about Jibo going out of work in this video by MrMobile: