This blog details my finding in building and setting up a small web connected humanoid robot.
The first objective of this project is to fully control and monitor the robot from internet.
This will be done by adding a single board computer running a full Linux system connected to the Robovie Nano robot by the serial port and connected to the web by wifi.
Beside web remote control, I will take advantage of the complete Linux system to add some higher functions to this robot (environment analysis, navigation, speech & video recognition,...).

There are several constraints in this project.

At first a limited weight and space . The Nano is a very small robot and the available space is quite narrow (6 x 3 x 2 cm in the back) .
The added weight load must be under 100 gms (Linux board + battery + wlan+ audio + webcam + sensors ) if we want to keep fluid motions and good autonomy.
Due to theses constraints I have to work with a minimal processing power. I am using a Bifferboard from Bifferos running a full Debian Distro at 150Mhz.

The tasks and progress are:

Build Debian kernel & rootf : (done) Debian Squeeze with headers. Linux
Wlan (done)
Remote motions control (done)
Remote master slave control : (done)
Video streaming - 2 ways : (done)
Vision/Blob recognitions (not started)
Sound streaming - 2 ways (wip) - can play stream, can record sound
Speech Synthesis (done) - flite working well, espeak is choppy but still usable
Speech Recognition (wip)
Remote Sensors monitoring (done) Battery level, accelerometer, distance, temperature
Lcd usb display (done) - hacked 1.5" key chain
Oled i2c display (wip)
Auto charging (not started)

Saturday, February 26, 2011


I am using a very small wlan USB adapter with the module rtl8192CU compiled from  rtl8192CU_linux_v2.0.939.20100726 (you need to have the Linux header to compile it).
This module was posting quite a lot of messages to the console (issue nulldata to keep alive and issue_nulldata:0) , it can be annoying, I commented out these 2 lines to remove them:

In core folder / rtl871x_mlme_ext.c I commented ligne 2790:
DBG_871X("issue nulldata to keep alive\n");
and line 1507:
DBG_871X("%s:%d\n", __FUNCTION__, power_mode);

Here is my network configuration ( /etc/network/interfaces)

# The loopback network interface - always needed here
auto lo
iface lo inet loopback

# this one for dhcp
#auto eth0
#iface eth0 inet dhcp

# this one for  WIFI
allow-hotplug wlan2
iface wlan2 inet static
pre-up ifconfig wlan2 up
pre-up iwconfig wlan2 mode Managed
pre-up iwconfig wlan2 essid "linksys-G-MIX"

# The primary network interface - use this for cable if WIFI above not used
# in that case disable the WIFI above with # before each line
#allow-hotplug eth0
#iface eth0 inet static

# set these for the LAN address

# set this for the Internet modem gateway to the LAN
# dns-* options are implemented by the resolvconf package, if installed

# my gateway acts as a local dns-nameserver
dns-search example.org

No comments:

Post a Comment