Close
0%
0%

MobBob - Smart-phone powered robotic companion

Just add smart-phone. MobBob is a walking, talking, seeing, listening robot companion that you can 3D print and build for around USD$30.

Similar projects worth following
MobBob is a smart phone controlled, 3D printed, companion robot. By harnessing the power of a smart phone, MobBob is a walking, talking robot with voice recognition and computer vision that you can build for around $30.

He can currently: walk, talk, understand voice commands, play peekaboo, and follow a coloured ball.

I will be continuing to extend his features over time. I want MobBob to be a companion robot that everyone can afford and have fun with.

See him in action here:
https://www.youtube.com/watch?v=ENuJVaBbQxE
https://www.youtube.com/watch?v=W0JxfdxcIck
https://www.youtube.com/watch?v=DTL9t5Gu310
https://www.youtube.com/watch?v=nQX_RPu3yLU

The Electronics

MobBob's servos are controlled by DFRobot's Bluno Beetle board. It is an Arduino-compatible board with built-in bluetooth LE

The Android phone then communicates with the Bluno Beetle using bluetooth LE. (So no explicit pairing is needed.)

The Arduino Software (Firmware)

The Arduino code accepts both high-level commands (like "walk 3 steps forward", "turn left", "do the wobble animation 3 times"), and low-level commands to directly set the positions of the servos.

The Android App (Main software)

The app code was written in C# using the Unity 3D engine. Using a game engine for robotics actually makes a lot of sense! For a start, games are real-time, always-running applications that respond to a frequent input... very similar to what's needed for a robot app. It also makes it easy to create dynamic visuals like MobBob's face, and easy to create nice user interfaces for interacting with MobBob.

And while I'm not using this in MobBob's app at the moment, game engines also provide support for representing 3D spaces (and obstacles in 3D spaces), and provides algorithms for things like path finding. Also, it would be possible to use a game engine's animation system to drive servo positions!

The voice recognition uses Google's speech-to-text functionality which is accessible on Android.

The computer vision is using OpenCV.

I wanted to make MobBob act alive, so his face is always animating, and stays on the screen even when the menu panel is displayed.

I will be continuing to add functionality to MobBob's app over time! He's going to do a lot more!

And, if other hackers want to build their own MobBobs and create their own apps... I would love to play with what other makers create. :D

The 3D Printed Parts

When I built the original MobBob, I was still figuring how to make him work so, there was some trial and error and hot glue!

However, I have refined the design with MobBob V2. V2 is easier to print and assemble, and it's possible to tweak the position of the parts during assembly to ensure that he is evenly balanced. (You need to make sure the mobile battery booster, and the phone balance each other out to keep him stable.)

Also, V2's new mounting holes can also be used to add MobBob accessories!! I have some fun ideas for these and will be putting them on Thingiverse soon. Stay tuned! :D

  • 1 × DFRobot Bluno Beetle Arduino compatible microcontroller with built-in Bluetooth LE
  • 4 × 9g Micro Servos Any servo will work, but I like the metal gear micro servos made by Arcbotics.
  • 1 × Eneloop Battery Booster Other 5V mobile battery boosters will work too.
  • 1 × Android Smart Phone The STLs are designed for a Nexus 5, but a Samsung S3 will fit too.
  • 1 × Set of 3D printed parts! Details here: http://www.thingiverse.com/thing:990950

  • 1
    Step 1

    Get the non-3D-printed parts.

    Acquire the 9g servos, Bluno Beetle, Mobile Battery Booster, and find a phone you want to use. The phone needs to support Bluetooth LE (Bluetooth V4, I believe).

  • 2
    Step 2

    Make sure the app will work with your phone.

    Download the app from Google Play and test it on your phone to make sure your phone supports the voice recognition and computer vision features.

    You can use the "Skip Connection" option in the app if you don't have your Bluno setup yet.

    If the voice features from the voice search in Google Now works, you should be good. And, if you have a working front facing camera, you should also be good!

  • 3
    Step 3

    Prepare the STL files to print.

    Download the MobBob V2 STL files from Thingiverse and prepare to print them.

    If you are using a different phone to the Nexus 5, or are using a different Mobile Battery Booster, you may need to adjust the STL files for the phone holder and for the battery rack.

    If you are adjusting them, keep the mounting holes the same so that the adjusted parts will still fit on MobBob V2.

View all 9 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates