Project Idea - Android Platform for Experimenters

APEX (Android Platform for Experimenters)

Goal: To define and build an Android development platform that simplifies trying out new ideas on Android or exploring its capabilities, without the constraints imposed by a mobile phone environment. This platform would be an ideal "sandbox" for experimenting with wearable computers, robotics, home automation devices, etc. Let your imagination run wild!

Key Features:
- tool chain tailored for iterative/exploratory application design
- access to a rich set of peripherals (UART, I2C, SPI, PWM, ADC, etc.) to easily interface to other devices
- low power consumption => can run for hours on batteries
- wireless connectivity => nice if built-in, but not required
- low cost, under USD$200

A distinguishing feature of APEX is the choice of programming tools. When developing new algorithms or applications, you will want to be able to test different parameter values, debug the new behavior (eg, by inspecting variable values while the app is running) and quickly make changes to your code. Thus we will heavily use the Android Scripting Environment, using Lua or Python as the primary development and glue language. APEX will also include a C/C++ toolchain so that time-critical parts of an application can be compiled for maximum execution speed. By providing both a scripting and compiling tools, you get the best of both worlds: flexibility and speed. Oh, another benefit to having the C/C++ toolchain is that we can use a vast collection of existing libraries for diverse apps such as computer vision, machine learning, speech recognition.

I thinking of using the BeagleBoard for the hardware because it has most of the key features, except it has no built-in BT or WiFi. But that can be added later. Also the BB uses the TI OMAP3530 processor with has an on-chip DSP and video accelarator, so you can do numerically intensive computations and have HD-quality output. Plus, the BB has a very active community behind it.

There's really two parts to this project. One is to come up with the experimenter's platform that is generic enough so that people can readily use it for their own projects. The second part is to do really cool stuff on the platform. My pressing interest is robotics-- I'm planning to install OpenCV on APEX then hook it up to a Lego Mindstorms robot to give it vision.

I'm hoping to get some people to collaborate on this project. Let me know at the meetup or send me email!

coredump9

================================================================================================

truedat101

+1 from me. I like the concept, would like to hear more from you on how you think this should be approached. Between the NDK and a few other scripting plugins for Android, you can get a good part of what you describe. I still think there are some big issues when porting existing non-Java OSS projects over to Android. Let's figure out what this might look like.

=================================================================================================

sidgabriel

I love this idea, but it will be difficult to push through if you're not there. Did you rsvp for the meetup? Can you make it?

=================================================================================================

coredump9
Oh definitely, I'll be there Thursday!

=================================================================================================

coredump9

Hi truedat,

Given that the NDK supports the basic libc and libm libraries, it should make it easier to port C programs (more effort for C++). We may need to write support functions, or better yet, import them from other OSS projects in order to build the full OpenCV shared library. Then it would be a matter of writing JNI wrappers for the external functions, something like this: http://www.codetoad.com/java_simpleJNI.asp ; At least, it's doable in theory :)

As a bonus, someone already made an initial port of OpenCV on Android. Have a look at
http://www.codetoad.com/java_simpleJNI.asp

Cool, huh?

=================================================================================================

sidgabriel

There's been some discussion of APEX in the Tin Man thread. Are you going to present APEX? I'm thinking I want to present a project riffing off Tin Man and APEX.

Sid

=================================================================================================

fableson

I think the proposed APEX sounds very good. Getting access from the h/w (I2C, SPI, etc.) up to the application layer is key and working on a variety of mobile phone h/w platforms is just not going to cut it.

=================================================================================================

coredump9

Yes, I'm planning to present on APEX. I hope you don't riff it off too much, Sid :lol:

=================================================================================================

sidgabriel

No worries, I won't steal your thunder! APEX is awesome. See you tomorrow.

(Credit coredump9, copied from original forum)

Pivotal Tracker is fully loaded for release 1.0

Project members will receive an invite to join the Pivotal Tracker project. Please contact coredump9 for more info.