User:Eb4890
Contact
My mobile phone number can be found in my babbage share
Interests
- Reverse engineering the laser cutter software
- nodejs based social thingmy
- Augmented Reality
- Human-computer interface/wearable computers
- Random silly projects
- Cutting Stuff with lasers
- Odd low-level security software
- Machine Learning
- Weird Governance schemes
- Shiny things
- Viruses/synthetic biology
- Chemistry
Android Robotics
See cellbots for current work.
Why
Android phones/tablets will get stupidly cheap in the future. They also have a bunch of sensors/wireless comms and the ability to connect to random micro-controller based usb devices. They also have GPUs to give a bunch of parallel processing power for a low price, althought that can't be accessed nicely at the moment.
They do compete somewhat with raspberry pis (raspberry pis being stripped down phones without the sensors/displays etc). I expect two ecosystems will emerge, with android phones and the OS being used for robots that need comms and lots of phone functionality, with micro controllers being used as for autonomic procedures and low latency apps. Raspberry PI and rooted phones with non-android roms will be used for situations where you need lots of processing power close to the metal.
Things to do
- Decide on a method taking advantage of multi-core and GPUs on android. This either means OpenCL or Render Script. OpenCL is more cross platform but Render Script is working on android today (at least for multicore);
- Mod OpenCV for android using the above PP framework.
- Port of PCL for android with above considerations.
- Check the possibility of flashing the arduino/microcontroller attached to the android phone over the ADK link (would allow the phone to upload different low latency programs dependent upon task).
- If opencl can we implement opencl for android ourselves? In Render Script, NDK?
- Intent to Ros message translation is some fashion.
- Speech recognition using the PP framework
- SLAM/Fast slam using above technologies
- Machine Learning library
Why are we re-implementing lots of technologies? Because they are often based upon intel technologies such as SSE, which the ARM doesn't have. Lots of these things will be of dual purpose, not only for robotics, they will enable better augmented reality apps and google goggles type apps without having to use the server giving better latency and off network use.
Things to investigate
- Rosjava - http://code.google.com/p/rosjava/
- RenderScript - http://developer.android.com/guide/topics/renderscript/index.html OpenCL alternative available now? Ziilabs has opencl running. Renderscript seems to be nicer in that it allocates jobs to cores at run time (rather than fixing them) so can use multi-core as well as GPU but it can't currently use GPU even in ICS. It depends how long it takes Google to implement renderscript vs opencl. Ziilabs only does opencl for their chips I think....
- Integration with Kinnect? Probably need a rooted tablet
Work in progress tutorial on inkscape
It is a bit of a pain in the ass to get inkscape to output something useful to laser cut if you are doing anything marginally complex.
Trace Bitmap is your friend
- Use A4 size. Some people swear by this to get the dimensions right.
- Objects such as Text are not exported. Convert them to paths Paths->Object to paths.
- Different bits of the svg are not aligned correctly. Select all then Path-> Combine to make it all one object. Then use a dxf editing program to put the different bits of the object in different layers. As the laser cutting software is not the best for doing this.