Archive for the Vision Category

BOOF working on Processing for Android!

Posted in Android, Processing, Vision on July 31, 2015 by asteriondaedalus

A little work and a little sweat and the help of Peter Abeles (the author of BOOFCV) and BOOFCV can compile in Processing for Android.

The fix is to break into the boofcv_dependencies.jar and delete the xmlpull entry under: boofcv_dependencies/org

The reason, the library is already being pulled in from somewhere else in the build and the build is not smart enough to ignore a replicated library and simply cracks up.

Simple fix.

Too early to know whether there will be any side effects – perhaps now in Java mode of the Processing IDE, since this fix appears to correct a problem in the Android mode.

In any event, we can move on with the experiments. I have quite a few android based toys with cameras after all.

JXD S7800B

JXD S7800B

water proof phone

android webcam

Cyclops!

Cyclops!

Measy

Voila!

Posted in Android, Processing, Vision on July 20, 2015 by asteriondaedalus

Okay, so a little fiddling and changing a couple of set parameters and I have code running on my Samsung S2 that will unwrap a Bloggie lens.

Based on code by Flong but running against camera and not a saved image.

Now a bit of work to port ideas from roborealm to turn this into an obstacle avoidance sensor.  Will have to find or code related image processing in Processing or Java.  Although, might have found the best library in BOOF!  BOOF has processing library (already just now installed on my machine), camera calibration, structure from motion (OMG!), Fiducials (read Markers) (OMG!).

So, ready, steady GO!

Try, try again.

Posted in Chase That Dog!!, Doodling, Vision on July 19, 2015 by asteriondaedalus

After breaking the setup my Processing for Android installation, I opted to rip out the Android SDK, rip out Processing, delete all remaining files and folders and environment variables.

I then re-installed Processing and let the fresh Android Mode install the Android SDK (rather than hook into my own  installation).

A little wrestling with the permissions on the sketch for the camera and I was (finally) able to get both my front and my back camera running on my Samsung S2.

Now we are away with modifying a bloggie lens to sit on the phone and to use the processing unwrapping of the bloggie image to knock up a collision sensor.

Cyclops!

One snazzy sensor

Raspberry Pirates are GO!

Posted in Raspberry Pirate, Vision on November 10, 2014 by asteriondaedalus
Battery charged ... check.

Battery charged … check.  Click on the picture.  Go on.  Look at it close up.  I am spun out at the SD card size in comparison with the board.

With my USB mouse and keyboard from Linux setup downstairs.  A bran spanking new black Ethernet cable plugged into my wireless extender.  Lights a flickering and:

A pretend Pi!

A pretend Pi! (aka Raspberry Pirate Arrrgh!)

So, I was curious, having been lazy and buying an SD card from Hardkernel, but it was Raspbian…phew.

So I downloaded bottlepy (the web framework) and:

Hello Nephew!

Hello Nephew!

No biggy but now I wait with bated breath for him to catch up.

In the meantime, I am writing up Part1 of LAB2 of the FPGA laboratories … slowly, as I am deep in Masters Dissertation at the moment.

Also wik, I am looking at Processing on Android to build my 3D sensors (both line laser and structured light).  I have (almost) sorted the line laser driver which will run off a Seeduino film with Bluetooth.

I decided to switch because there is already a structured light program running in Processing and I have dibs on a LED pico projector from China for around $100.

Not to mention the bloggy omni-lens demo code is in Processing (and you’ll recall I have three of those suckers now 😉 – yes Yes YES!

Now that’s an idea!

Posted in Android, Arduino, Sensing, Vision on May 2, 2014 by asteriondaedalus
Cyclops!

Cyclops!

Feast your eyes!

The beautiful accidents right.

The GripGo base, once I ripped the suction cup off (broke off without actually any resistance) was a couple of millimeters in diameter larger than a circular “ledge” on the back of the indoor rover so a liberal smear of epoxy and voila!!  An adjustable mount for my old Samsung SII.

Do notice the omnidirectional lens on the top.  That is a “spare” that turned up.  Cost $60 but came with an old knock about bloggie which I will find some other use for.

Unfortunately the second bloggie fell through, the poor dear at the other end of the interweb was too dull to know how to mail something interstate – oddly, this one comes from twice as far away.  Can’t fathom it but there are still Luddites around.

Anway, I have two of these lens as well as the “periscope” version (that I am waiting on the USB catheter camera).  So, plenty if you ask me.

I will need to get a student copy of Matlab to use a fancy calibration library which looks like it lifts any distortion out of the image once it is unwrapped.  Even if that falls through, a simple wall detector will allow this beast to avoid bumping into walls – we hope … mwahahahahaha!

Recall the phone runs S4A and Python so while the application will be in C++ or Android it can ping a socket with steering directions – or that is the plan.

Beauty is that the adjustable holder allows other configurations when other algorithms and vision approaches are being played with.

Nope, same Rover.

Nope, same Rover.

OmniEndo?? EndoOmni??

Posted in Sensing, Vision on April 22, 2014 by asteriondaedalus

Endo camera modules on way:

This won't hurt a bit ;)

This won’t hurt a bit 😉

To pair with the omni lens:

Perfect match for endo camera module.

Perfect match for endo camera module.

 

The problem with the full unit was 1) the glaring LED bathing the interior of the lens with unwanted light and 2) the tube the camera was in kept the camera aperture too far from lens … so it didn’t fit field of view.

The bigger difference between this and the lens from the older bloggy is that it is more of a periscope … with a mirror at 45 degrees … that the camera looks at.  The unit has a cover with jeweler’s screws so might still take the mirror out and use camera co-axially with lens.

Won’t know until the modules turn up to see how much of the field of view is filled.

In mean time, coding in the background to work a 360 degree collision detection – stealing from a few places.

Now that I am also getting a couple of older omni lenses:

Good for flat surfaces

Good for flat surfaces

 

I will happily grind off the clip ends so I can hot glue or otherwise to bottom of my Parrot as I planned some time ago now.

Post Script

Here is price of closest alternative.

Pixy post 2

Posted in Vision on April 17, 2014 by asteriondaedalus

It finally got here!

So, another distraction from my studies. Though the main culprit is I went looking for a second hand bloggie to get hold of a couple of extra omni-lenses.  They retail on the Sony site for $35 but you can’t get them any more for the bloggie I have and the lens themselves were retailing $120 for spares when they did have them.

So, turns out you can get a second hand bloggie for $60 so you get a lens and a camera. I’ll sell on the cameras to get some money back.

I am waiting on a response from sellers of two bloggie with the older setup – which is good since you can easily modify the lens to sit over a flat surface.

Good for flat surfaces.

Good for flat surfaces.

 

But I did get a deal on a Bloggie Duo that has a lens that is more like a periscope.

MHSFS2KP-1

Give me one ping!

Give me one ping!

 

At the moment I am thinking of mounting the lens on a small plastic box and just us a USB catheter camera (raw camera for sub $20 from China).  Using the example processing code (re-coded either in ADK or NDK for Android, or at least on Beaglebone for fun) and knocking it up so it can provide basic collision detection.