Oscar Garcia WP

From jderobot
Jump to: navigation, search


Work Progress[edit]

15th October 2012: Roadmap[edit]

Greatest hits[edit]

AndroidCameraServer[edit]

Previous work[edit]

Based on my robotics blog: http://blogrobotica.linaresdigital.com/

First approach to flow motion analysis[edit]

Original post: http://blogrobotica.linaresdigital.com/2011/02/analisis-del-flujo-de-movimiento-en.html

Using cvCalcOpticalFlowPyrLK OpenCV function we could get an vector of center image's optical flow as shown here:

Second approach to flow motion analysis[edit]

Original post: http://blogrobotica.linaresdigital.com/2011/02/analisis-del-flujo-de-movimiento-en_15.html

We are trying to estimate camera rolling analyzing only two points:

Third approach to flow motion analysis[edit]

In this video I'm trying to test a closer surface view. I don't analyze yet angles nor distances, only I was testing how stable and precise (cvCalcOpticalFlowPyrLK uses subpixel accuracy) is motion flow:

Playing with IOIO[edit]

Original post: http://blogrobotica.linaresdigital.com/2012/07/de-vuelta-al-tfm.html

Sparkfun is selling a device named "IOIO for Android" that let Android interacts with I/O devices and sensors directly:

https://dlnmh9ip6v2uc.cloudfront.net/images/products/1/0/7/4/8/10748-01b_i_ma.jpg

There is a lot of examples and technical info in its wiki:

https://lh5.googleusercontent.com/-dAgdZpZlclI/TbrErR3lCOI/AAAAAAAAToM/eVn3WReS_ps/s599/pins.jpg

First touch[edit]

First sensors (infrared proximity sensors)[edit]

First servo and ESC (electronic speed controller)[edit]

Source code (rewritten): https://svn.jderobot.org/users/redstar/master/ServoIOIO/

Testing ESC (electronic speed controller) forward, reverse and brake[edit]

Installing Debian 7 on GK802[edit]

GK802 is a HDMI Android dongle with a powerful quad core CPU (Freescale i.MX6 SOC) and 1GB of RAM. It beats Raspberry Pi in lots of features but doesn't have ethernet port (but support USB ethernet adapter), serial port, RGB monitor and has only one USB port (Raspberry Pi has two of them).

Hardware details:

http://redstar.linaresdigital.com/robotica/imagenes/urjc/GK802.jpg


Installation process[edit]

Original blog entry: http://projectgus.com/2013/05/debian-installer-for-zealz-gk802-android-tv-quad-core-arm-minipc/

Getting started with the FX-61 Phantom (our UAV)[edit]

Balancing the propeller[edit]

Testing battery, radio, servos and motor[edit]

Designing a feeding system[edit]

Power requeriments are different for RC flying wing and processing unit.

While flying wing ESC needs direct input from battery and feeds both, motor (11,1V and 30A max.) and servos (5V and 1A max.), processing unit needs a BEC that feeds GK802 with 5V and 2A.

Instead using two batteries, we will make a T cable that power both devices.

Making a T cable and soldering connectors[edit]

http://redstar.linaresdigital.com/robotica/imagenes/urjc/Adaptador_T_1_mini.jpg http://redstar.linaresdigital.com/robotica/imagenes/urjc/Adaptador_T_2_mini.jpg

Connecting all together[edit]

http://redstar.linaresdigital.com/robotica/imagenes/urjc/Alimentacion_GK802_mini.jpg http://redstar.linaresdigital.com/robotica/imagenes/urjc/Alimentacion_Completa_mini.jpg

Testing GK802 with a little battery[edit]

http://redstar.linaresdigital.com/robotica/imagenes/urjc/Conector_microUSB_mini.jpg

Failed hits[edit]

Working with cheap cameras and RC car[edit]

Test 1: inside home[edit]

Testing RC car inside a house failed because reflecting floor issues and wheel's car vibrating that are blurring image confusing algorith.

Test 2: outside[edit]

Testing RC car outside at street failed because very strong image shake that are blurring image and losing image sharp.

Summary[edit]

It's a very bad idea using cheap cameras because image quality and a problem with rolling shutter.

Rolling shutter is a method of image acquisition in which each frame is grabbed by scanning across the frame line by line vertically, so if a object is moving (or the camera is panning quickly) in each line the object or the scene will be in a different position.

In a road or highway, for example, this will cause vertical lamps or handrails appear to be oblique (skew). The same happens with the complete scene when the car turns over quickly.

When the car is running on a rough surface then the vibration gets a lot of wobble (jello effect).

Both of them (skew and wobble) makes it extremely difficult analyze motion flow.

Android camera server interface for Jderobot[edit]

Source code (SVN): https://svn.jderobot.org/users/redstar/master/AndroidCameraServer/trunk/AndroidCameraServer/

Running cameraserver in Android[edit]

Screen capture from Sony Xperia Neo V:

http://redstar.linaresdigital.com/robotica/imagenes/android-cameraserver/RedStar_Android_CameraServer_Failed_mini.png

Running cameraview in Ubuntu 12.04[edit]

When running cameraview in Ubuntu 12.04 against Ubuntu cameraserver it works as expected.

When running cameraview against Android cameraserver it fails with "Invalid proxy" message:

redstar@greystar:~/jderobot/trunk/src/components/cameraview$ ./cameraview --Ice.Config=android.cfg 
Loading glade
Invalid proxy

Update (2013-02-27): Got it![edit]

Please, see "hits" #AndroidCameraServer.

Installing Debian 7 on GK802[edit]

We are looking for a cheap substitute board for Raspberry Pi with more CPU power but lower current consumption.

GK802 HDMI dongle uses Android as operating system but can be easily changed with an ubuntu or debian linux distribution.

First attempt[edit]

Using spanish locale and spanish apt repositories.

Second attempt[edit]

Using english locale but spanish apt repositories.

Links[edit]