Mouse Bot

A tiny robot to give an interesting perspective with interacting with cats.

Similar projects worth following
So my sister wants to see her cats playing, but they refuse to do anything with their toys when she is present. I have a Sumo Jumping robot from Parrot and one day when I was wheeling it around one of the cats "Hunted" it so I thought, that is the solution, a tiny robot to watch/play with the cats. But the plan is not to make any half-assed robot with a pre built chassis and a simple streaming camera. I've already built a wide angle stereo camera using Raspberry PI v2 cameras that give the perspective of being 1/6 scale (So everything looks giant). I tested it taking some pictures and videos of the cats and watching in my Vive and the effect is quite spectacular. Then I thought, what if I live streamed it to the vive and put it on a steward platform attached to the robot so the camera could mirror your head motions in free space! How immersive does that sound?

Now the current plan will precede in the following stages:

  1. Finish testing with stereo camera and make any improvements
  2. Prototype Stewart Platform using 6 micro servos and test response to Vive
  3. Use FPGA to analyze traffic between Raspberry Pi and Pi Camera V2.1 so I can emulate it and hopefully get 4k 30fps video feeding into FPGA, currently planning to use Artix based Zync
  4. Reverse engineer drivers for WiGig module for streaming low latency video from robot to Vive, rewrite drivers for Zync
  5. Come up with robots drive system, if possible stair climbing/jumping
  6. Finalize all hardware on robot, polished dedicated PCBs for robot and Vive

It’s going to be quite a challenge getting the FPGA software sorted so if anyone knows about communicating with the Pi Camera V2 or WiGig drivers and wants to provide some code, advice, or link me to resources I would appreciate it.

  • Stereo Camera Development

    DrYerzinia02/25/2017 at 15:10 0 comments

    My first thought when designing the mini stereo camera was, I'll just take the Raspberry Pi Camera schematic and redraw it so there are to of them next to each other, but then I found out how not actually open the Pi Camera is... So I had to reverse engineer the schematic from the PCB, fortunately not to difficult and that effort is documented here.

    The first step was to test some wide angle lenses. So where do you go when you want the narrowest wide angle lenses so you can get an interpupillary distance of just 11mm? After a lot of searching the internet and getting no where I came up with a source, if anyone knows of a place that sells all kinds of lens off the shelf and knows what combo I need to make a better lens than what I am about to describe please leave a comment.

    Yes, Home Depot to the rescue with a peep hole lens, why didn't I think of it sooner? The peep hole fit perfectly on the end of the camera but the the barrel took up most of the cameras field of view, the actually scene was a small fraction of it, and I want all the pixels. What followed was disassembly of the peep hole and a lot of experiments tweaking the distance of the lens, trying the Pi Camera at different focuses or with no lens of it's own at all. Eventually I settled on this solution:

    Using the 2 upper elements of the lens suspended 18mm above the camera with its lens screwed all the way out provided an image that filled most of the field of view of the camera sensor and was in focus. There are to problems with the picture quality however, one is you need a fair bit of light to get good pictures, probably because the itty bitty lens on the Pi Camera, which is why I would like to find a lens solution that doesn't use it so I can get all the light that comes into the 11mm wide Fisheye lens down onto the sensor instead of bouncing around in the barrel. The other issue's where blurring toward the outside of the field of view, and it just doesn't have very high dynamic range, shooting indoors with a bright window in the background will ruin your day. But overall the pictures where quite immersing.

    This is a photo of Fiona and you can see the scene almost fully fills the field of view vertically.

    After all the testing and figuring out how to arrange the lenses I drew up the dual camera board and built and tested it. That was a bit painful in that somehow I managed to kill one of my $30 image sensors along the way, plus having to deal with moving over that evil ATSHA204 driver lock down IC just felt so wrong. But after some careful debugging and replacing some common mode chokes who's transfer damaged them I had to working cameras 11mm apart.

    Before I could get photos of anything but my desk I needed a way to make this camera portable. Currently for testing I had it hooked up to a Raspberry Pi 2 and a Raspberry Pi 3. I used a cheap 5v buck converter from china, a drone battery, and a tiny breadboard to breakout power for the Pi's. A pair of wires between them for synchronizing the camera trigger. Then everything was controlled via wifi with python scripts.

    I thought it was pretty funny that when I first showed this to some one they asked me, "Why are you showing me soup?" Apparently it also makes a pretty stealthy little camera.

    But then I turned it around and they understood.

    Lots of hot glue, that's how these things get built! I was actually in the middle of 3D printing a nice mounting bracket for it to attach to a robot platform, but then I thought I want to try this now!

    So next up are some stereo imagines I encourage you to view in a proper viewer. If you have a cardboard or equivalent so far the best app I've found for this is VR Player (free) and let me tell you I looked at a lot (10+) of apps and this was the only one I found that would do a Dome (180°) projection with SBS stereo. Unfortunatly the images are actualy 160° so if anyone knows of a cardboard viewer that lets you set that please comment below. If you are lucky enough to have an Occulus...

    Read more »

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

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