> JohnLonningdal

Introduction

Hello, my name is John Christian Lonningdal and has been a frequent reader of the OAP community pages. I have always wanted to make some kind of robot and when I discovered OAP I found that it was very close to what I also had in mind.

The robot is so far called JCP1 - or John Christians Prototype 1. :)

Please go to my project website for more detailed information:

http://robot.lonningdal.net

Drawings

I made a couple of designs a while back when I did some 3d studio max drawings. Later I have settled on a design done in Google Sketchup that I will soon start to prototype. That said I have already started purchasing some needed parts. The first challenge is to build a base since I will not use the Zagros Robotics base in the OAP prototype. The main reason for this is that I want a cheaper solution at the moment and a custom shape with a rectangular front and a circular back. Below is an early 3ds rendering with a thin aluminium body and no head.

http://robot.lonningdal.net/jcp1-render.jpg

Base

Starting to build the base has not been a simple task. It seems that what I need is some sheets and spacers. Well getting e.g. ABS plastics is not that easy here in Norway for some reason, other than in large quantities. So I have now found some cheap 3mm plexiglass sheets that I will try to use - although I will probably have to glue two together for strength in the bottom base since the battery alone weighs 3.3 kgs. For spacers I am still searching for a good and lightweight solution. Weight is something I really want to keep down on the robot for natural reasons. It would also be good to find a solution that allows me to attach the body easily also since I plan to hide the internals of the robot completely.

Electronics

As motor drive and controller I will use a kit by Devantech, as well as their range of I2C devices - a compass, some ultrasonic sensors, and maybe their servo-controller. As the main cpu in the robot I will also use a Mini-ITX board and I will most probably go for one of the new C7 processor versions since they use less power than the older boards. The CN13000 is probably the one I will choose. I also have a 20GB 2.5" drive that I will use to boot it up, although it would be interesting to run it all from a compactflash sometime. The vision will be monoscopic at start and I will use a Logitech Quickcam Pro 4000 at first, but later create a pan/tilt head with stereo vision. From web camera tests online I see that the ones with a CCD sensor gives a far better color reproduction than the rest. The whole thing will be powered by a 10 Ah 12 volt SLA battery.

Software

I will not use Linux like in the OAP project, but a minimal Windows XP installation and the robot software will run from a Sun Java VM. The reason for this is that I am most comfortable in Windows and Java - chances are that I will be much more productive sofware-wise that way.

I have already started some programming where I have tested out using IBM Viavoice for speech recognition and Natural Voices as voice output. I use a Java library called Cloud Garden which implement the Java Speech API and maps this to any SAPI4 and SAPI5 compatible engine. I have had great success with this already and have been able to have the robot understand simple grammars. One problem I realized very quickly was that for a speech recognizer to work with any success it needs a stable microphone input so most probably the person talking to the robot will have to wear a mic. This is a shame because it would be very nice if the robot could be commanded at a distance. I will most probably try using a bluetooth microphone that is BT 1.2-EDR or BT 2.0 compatible since that has 16 bit sampling and works with speech recognition according to some postings I have read online.

I have also used Java Media Framework to get images from a web camera and have been able to implement some simple vision algorithms to try a couple of things. Vision is of course the most difficult area in the robot. There is no end to the amount of algorithms and information available, but there is no good solutions on effective use of these. So far the most interesting library I have found is the OpenCV project which has a number of algorithms for image processing and detection. The most interesting one is "Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features". I have previously worked with computer learning using back-propagation networks and know that its possible to learn a network about image features and have fairly good recognition. The work that Paul Viola and Rainer Lienhart has done on this is very and their feature recognition seems to work very well identifying faces and other objects. Another interesting one is the detection of rectangles and ovals in an image since you can get very far by finding these primitives. The immediate use is that you can allow for some interesting interaction with the robot if you are able to hold e.g a card in front of the robot and have him identify the picture on the card. I can think of many interesting scenarios and hope to list them here as possible goals to reach with the robot. The Artificial Intelligence or AI as you might call it. In general the goal is to provide the robot with enough things it can do so that it feels more "natural" - a way toward the well known Turing Test. :)

Well, there are a ton of things to do, and this will take some time - one step at a time, and I will try to regularly update this information as I go along.

Best regards, John Christian