2013-07-24

Android on HP tx1000 update

My effort to install Android on a HP tx1000 convertible tablet was a success. Essentially i duplicated the example configuration files that were made for a later HP laptop model to suit the more humble specs of my device, and after a few rounds of trial and error it booted android and everything was swell.

However, just as it was starting to get fun, the device died on me. I have put my plans for x86 Android device on hold while working on other much more important and pressing software components like IK.

IKFast

Right now I am working on the software part of the robot. The area I have worked most on is related to vision, audio and other rather complex areas. I have hit a wall because the single most important algorithm for the vision subsytem, namely the SURF has an implementation in OpenCL that refuses to run on my nVidia hardware. Apparently nVidia has inferior OpenCL support to the likes of AMD. I have struggled with a hodgepodge of drivers, libraries and versions before essentially giving up til I get my hands on some better hardware.

In the meantime I have shifted focus to another important part of the software, namely motion. How will the position of the legs be calculated? I have worked with 3D graphics for a while earlier in my carrier, and I instantly googled "IK" for "Inverse Kinematics", which is the art and science of calculating where a bunch of stuff under constraints will move when receiving input.

It turns out that to make IK work I will have to create an accurate 3D model of the robot body first. How else would the IK solver know what and how to operate?




After looking around for a bit for C++ libraries for solving IK problems, I came across IKFast which is a plugin to the extensive OpenRAVE project that takes the whole making a model and simulating it very seriously. Actually IKFast is a compiler that will generate C++ code that can be incorporated into my project directly. It needs a robot description as input, and it will output code that is fast, accurate and robust and that fits my robot perfectly.

This is exactly the kind of tool I love. Performance in the front seat. The downside (or upside if you will) is that I need to know exaclty how my robot should look like, and although I have all these dreams resembling scenes from the sci-fi movies, I havent put much effort into finding a resonable working design.

I guess it is time that I start designing the body of my robot. Maybe I can use the robot model to simulate my way to a better design?



2013-07-23

Honda GX25 Update

The Honda GX25 that I un-boxed for quite some time ago has been started and runs great. I have since moved and it is in storage. The plan is to find a suitable alternator for it and also to create a simple ECU that can be controlled from the roboard. To begin with I will most likely just write the ECU as a routine in C on the roboard directly and use one of its many ports to controll a little RC servo on the throttle.

CNC Update

The EMCO F1 CNC machine that I received for some time ago has not yet been put to good use. I have moved lately, and thus I needed a place for this 200kg beast to stay. It has been stored in the garage of my good friend.

We have been busy remodelling his house and haven’t had the time to look at the CNC machine before now. I must say that this machine is really retro. It looks like it came right out of TRON. Even the key is a rather spectacularly designe specimen. Everything has the "robot from the future in the eyes of 1984" feel to it. All the while being a very high quality product made in Austria.

But the best part by far is the sound when you switch it on. It spends several seconds winding up the computer fan, and you feel like an astronaut from some sci-fi movie every time.

Status on the machine is that the software, computer and control panel works great. So does two of the axes, which will jog manually. The Z axis and the spindle motor are however not responding. We are troubleshooting this, but given the limited space and time (it has to fit in both our busy schedules) progress is slow.

The way ahead on this is most likely replacing the 1984 beast-computer that weighs in on around 120kg with a linux based control computer and some matching stepper/spindle motor controller boards. But we will try our best to diagnose it first and see if we can get it working using the existing hardware. For that job, this site has been an absolute god-send resource. It has all manuals, programming guides and specifications for the machine.

I might get some pictures or videos of our effort in here.

Paralella: Cheap supercomputer in credit-card form factor

My robot will require a lot of on-board processing, and this is a challenge given that it should be able to go on for days without charging. So finding the hardware with the right cycle to power ratio is a challenge.

While looking around the internet I found  the paralella board.



In short it is a 5watt board with 66 OpenCL compatible CPU/GPU cores that apparently delivers up top 90Gflops! The form-factor is the size of a regular credit card.

I have previously contemplated using an AMD 7990 graphics card in combination with an AMD g-series SBC. While delivering a staggering amount of raw OpenCL performance, that solution will also draw an excruciating amount of current. Given that these little paralella boards can be stacked in clusters, I would be able to write software that would scale the current draw with the required amount of computing power.

An intriguing thought indeed!