Oscar Garcia WP
- Project Name: Without name yet
- Authors: Óscar Javier García Baudet (oscar [dot] robotica [at] linaresdigital [dot] com)
- Academic Year: 2012-2013
- Degree: Master
- Jde Version: jde-5.0
- SVN Repository: https://svn.jderobot.org/users/redstar/master/
- Tags: Computer Vision, IOIO, Android, Navigation
- Technology: Java, Bluetooth, OpenCV
- Source License: GPLv3
- Document License: Creative Commons Attribution-Share Alike 3.0
- 1 Work Progress
- 2 Greatest hits
- 3 Previous work
- 3.1 First approach to flow motion analysis
- 3.2 Second approach to flow motion analysis
- 3.3 Third approach to flow motion analysis
- 3.4 Playing with IOIO
- 3.5 Installing Debian 7 on GK802
- 3.6 Getting started with the FX-61 Phantom (our UAV)
- 3.7 Designing a feeding system
- 4 Failed hits
- 4.1 Working with cheap cameras and RC car
- 4.2 Android camera server interface for Jderobot
- 4.3 Installing Debian 7 on GK802
- 5 Links
15th October 2012: Roadmap
Based on my robotics blog: http://blogrobotica.linaresdigital.com/
First approach to flow motion analysis
Using cvCalcOpticalFlowPyrLK OpenCV function we could get an vector of center image's optical flow as shown here:
Second approach to flow motion analysis
We are trying to estimate camera rolling analyzing only two points:
Third approach to flow motion analysis
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
There is a lot of examples and technical info in its wiki:
First sensors (infrared proximity sensors)
First servo and ESC (electronic speed controller)
Source code (rewritten): https://svn.jderobot.org/users/redstar/master/ServoIOIO/
Testing ESC (electronic speed controller) forward, reverse and brake
Installing Debian 7 on GK802
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).
Getting started with the FX-61 Phantom (our UAV)
Balancing the propeller
Testing battery, radio, servos and motor
Designing a feeding system
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
Connecting all together
Testing GK802 with a little battery
Working with cheap cameras and RC car
Test 1: inside home
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
Testing RC car outside at street failed because very strong image shake that are blurring image and losing image sharp.
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
Running cameraserver in Android
Screen capture from Sony Xperia Neo V:
Running cameraview in Ubuntu 12.04
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!
Please, see "hits" #AndroidCameraServer.
Installing Debian 7 on GK802
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.
Using spanish locale and spanish apt repositories.
Using english locale but spanish apt repositories.