ARDrone: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche
(FILESYSTEM)
(Hardware)
 
(32 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= ARDrone =
+
= AR.Drone =
  
  
Parrot produces a very nice quadcopter called "ARDone"
+
Parrot produces a very nice quadcopter called "AR.Done"
  
 
Homepage: http://ardrone.parrot.com/parrot-ar-drone/usa/
 
Homepage: http://ardrone.parrot.com/parrot-ar-drone/usa/
  
In Vienna you can get them at [http://www.parrot.com/catalog/pos/parrot/ar-drone/AT/stores/mediamarkt-at Mediamarkt] for 300,- EUR
+
In Vienna you can get them at [http://www.parrot.com/catalog/pos/parrot/ar-drone/AT/stores/mediamarkt-at Mediamarkt & Saturn] for 300,- EUR
  
 
We plan to make a mesh of flying drones.
 
We plan to make a mesh of flying drones.
Zeile 31: Zeile 31:
 
* Wi-Fi: AR6000
 
* Wi-Fi: AR6000
  
 +
# cat /proc/cpuinfo
 +
Processor      : ARM926EJ-S rev 5 (v5l)
 +
BogoMIPS        : 233.47
 +
Features        : swp half thumb fastmult edsp java
 +
CPU implementer : 0x41
 +
CPU architecture: 5TEJ
 +
CPU variant    : 0x0
 +
CPU part        : 0x926
 +
CPU revision    : 5
 +
Cache type      : write-back
 +
Cache clean    : cp15 c7 ops
 +
Cache lockdown  : format C
 +
Cache format    : Harvard
 +
I size          : 32768
 +
I assoc        : 4
 +
I line length  : 32
 +
I sets          : 256
 +
D size          : 16384
 +
D assoc        : 4
 +
D line length  : 32
 +
D sets          : 128
 +
# free
 +
              total        used        free      shared      buffers
 +
  Mem:      126072        12480      113592            0            0
 +
  Swap:            0            0            0
 +
Total:      126072        12480      113592
  
 +
Hardware        : Mykonos Parrot platform
 +
Revision        : 0904
 +
Serial          : 0000000000000000
  
 +
The Wi-Fi chip seems to have it's own SDIO interface driver. Anyway, the good news for us is, that ad-hoc mode works very well.
  
 +
o  o  o      (Not in USE / think its serial console??)
 +
o  o  o  o    USB (flashing/parrots own flash software)
 +
5V -D +D GND
  
The Wi-Fi chip seems to have it's own SDIO interface driver. Anyway, the good news for us is, that ad-hoc mode works very well.
 
  
 +
'''USB-Flashmode (Pinlayout):'''
  
 +
[[Datei:ARDrone-USB-Cable.png]]
  
 
=== OLSRD - HowTo / Build @ Debian 5.0  ===
 
=== OLSRD - HowTo / Build @ Debian 5.0  ===
Zeile 44: Zeile 78:
 
  deb http://www.emdebian.org/debian/ lenny main
 
  deb http://www.emdebian.org/debian/ lenny main
  
Get new Update´s!
+
'''Get new Update´s!'''
 
  sudo apt-get update
 
  sudo apt-get update
  
Zeile 56: Zeile 90:
 
  cd olsrd-[VERSION]
 
  cd olsrd-[VERSION]
  
Edit Makefile.inc:
+
'''Edit Makefile.inc:'''
 
  vi Makefile.inc
 
  vi Makefile.inc
 
Press [ i ]
 
Press [ i ]
  CC=gcc-4.3-arm-linux-gnueabi
+
  CC=arm-linux-gnueabi-gcc-4.3
 
Press [ ESC ] & type [ :wq ] & PRESS ENTER
 
Press [ ESC ] & type [ :wq ] & PRESS ENTER
  
Zeile 67: Zeile 101:
  
 
Now olsrd is Compiled and ready for AR.Drone!
 
Now olsrd is Compiled and ready for AR.Drone!
 +
 +
=== Copy Compiled OLSRD to AR.Drone ===
 +
'''You need:'''
 +
#Laptop with Wireless LAN
 +
#Local Webserver (MacOS X has one ;)
 +
#Compiled OLSR Binary´s (Plugin´s, OLSRD)
 +
 +
* Connect your Laptop with AR.Drone
 +
* Wait few seconds for IP (192.168.1.2)
 +
* Open a shell window and telnet into AR.Drone
 +
telnet 192.168.1.1
 +
* Lets create some Folder´s on AR.Drone
 +
mkdir /data/apps
 +
mkdir /data/apps/etc
 +
mkdir /data/apps/lib
 +
mkdir /data/apps/init.d
 +
mkdir /var/run
 +
* Copy OLSRD Binary
 +
cd /data/apps
 +
wget http://192.168.1.2/~[USERNAME]/olsrd
 +
ln -s /data/apps/olsrd /bin/olsrd
 +
chmod 777 /bin/olsrd
 +
* Copy OLSRD_LIB´s
 +
cd /data/apps/lib
 +
wget http://192.168.1.2/~[USERNAME]/olsrd_txtinfo.so.0.1
 +
wget http://192.168.1.2/~[USERNAME]/olsrd_httpinfo.so.0.1
 +
wget http://192.168.1.2/~[USERNAME]/olsrd_watchdog.so.0.1
 +
ln -s /data/apps/lib/olsrd_txtinfo.so.0.1 /lib/olsrd_txtinfo.so.0.1
 +
ln -s /data/apps/lib/olsrd_httpinfo.so.0.1 /lib/olsrd_httpinfo.so.0.1
 +
ln -s /data/apps/lib/olsrd_watchdog.so.0.1 /lib/olsrd_watchdog.so.0.1
 +
 +
=== OLSRD Configuration and FunkFeuer Setup ===
 +
 +
(!) DO IT AT YOUR OWN RISK / BE CAREFUL (!)
 +
 +
* Create olsrd.conf in Datadir
 +
vi /data/apps/etc/olsrd.conf
 +
Press [ i ] / Copy & Paste
 +
DebugLevel              0
 +
IpVersion              4
 +
AllowNoInt              yes
 +
FIBMetric              "flat"
 +
Pollrate                0.025
 +
RtProto                111
 +
TcRedundancy            2
 +
Willingness            7
 +
MprCoverage            7
 +
LinkQualityFishEye      0
 +
LinkQualityAlgorithm    "etx_ff"
 +
LinkQualityLevel 2
 +
UseHysteresis no
 +
LoadPlugin "olsrd_txtinfo.so.0.1" {
 +
    PlParam "Port"      "2006"
 +
    PlParam "Accept"    "127.0.0.1"
 +
}
 +
LoadPlugin "olsrd_httpinfo.so.0.1" {
 +
    PlParam "Net"      "0.0.0.0 0.0.0.0"
 +
    PlParam "port"      "8000"
 +
}
 +
LoadPlugin "olsrd_watchdog.so.0.1"
 +
{
 +
        PlParam "file" "/tmp/0xffolsr_watchdog"
 +
        PlParam "interval" "50"
 +
}
 +
Interface "ath0"
 +
{
 +
        Mode            "mesh"
 +
}
 +
InterfaceDefaults
 +
{
 +
        HelloInterval          5.0
 +
        HelloValidityTime      100.0
 +
        TcInterval              3.0
 +
        TcValidityTime          500.0
 +
        MidInterval            30.0
 +
        MidValidityTime        500.0
 +
        HnaInterval            30.0
 +
        HnaValidityTime        500.0
 +
        Ip4Broadcast 255.255.255.255
 +
}
 +
Press [ ESC ] andy type [ :wq ].
 +
* Create startupfile with IP/BSSID/ESSID... Setting´s
 +
vi /data/apps/init.d/olsr.sh
 +
Press [ i ] / Copy & Paste
 +
#!/bin/sh
 +
# kill all olsrd/httpd sessions and delete lock file...
 +
# we can use this script to do restart´s
 +
killall olsrd
 +
rm /var/run/olsrd-ipv4.lock
 +
# ready to setup wireless interface switch to adhoc, bssid, essid
 +
ifconfig ath0 down
 +
iwconfig ath0 mode ad-hoc
 +
iwconfig ath0 channel [CHAN.NR.]
 +
iwconfig ath0 ap [BSSID]
 +
iwconfig ath0 essid [ESSID] #ardrone.freiesnetz.funkfeuer.at looks nice
 +
ifconfig ath0 [IP] netmask [NETMASK] up
 +
ifconfig ath0:1 192.168.1.1 netmask 255.255.255.0 up # be Save ;-)
 +
olsrd
 +
Press [ ESC ] andy type [ :wq ].
 +
ln -s /data/apps/init.d/olsr.sh /etc/init.d/olsr.sh
 +
chmod 777 /etc/init.d/olsr.sh
 +
* Now you can test your OLSRD AR.Drone with
 +
/etc/init.d/olsr.sh
 +
it look´s like
 +
# /etc/init.d/olsr.sh
 +
  *** olsr.org - 0.6.0 ***
 +
  Build date: 2010-11-11 21:14:10 on server1.paua.at
 +
  http://www.olsr.org
 +
Parsing file: "/etc/olsrd.conf"
 +
Debug level: 0
 +
IpVersion: 4
 +
Noint set to 1
 +
FIBMetric: flat
 +
Pollrate 0.03
 +
RtProto: 111
 +
TC redundancy 2
 +
Willingness: 7
 +
MPR coverage 7
 +
Link quality fish eye 0
 +
LQ Algorithm: etx_ff
 +
Link quality level 2
 +
Hysteresis disabled
 +
Plugin: olsrd_txtinfo.so.0.1
 +
Plugin param key:"Port" val: "2006"
 +
Plugin param key:"Accept" val: "127.0.0.1"
 +
Plugin: olsrd_httpinfo.so.0.1
 +
Plugin param key:"Net" val: "0.0.0.0 0.0.0.0"
 +
Plugin param key:"port" val: "8000"
 +
Plugin: olsrd_watchdog.so.0.1
 +
Plugin param key:"file" val: "/tmp/0xffolsr_watchdog"
 +
Plugin param key:"interval" val: "50"
 +
setting ifs_in_curr_cfg = 0
 +
        Mode: mesh
 +
        HELLO interval: 5.00
 +
        HELLO validity: 100.00
 +
        TC interval: 3.00
 +
        TC validity: 500.00
 +
        MID interval: 30.00
 +
        MID validity: 500.00
 +
        HNA interval: 30.00
 +
        HNA validity: 500.00
 +
        IPv4 broadcast: 255.255.255.255
 +
Interface Defaults      IPv4 broadcast/multicast : 255.255.255.255
 +
        Mode          : mesh (d)
 +
        IPv6 multicast          : ff02::6d
 +
        HELLO emission/validity  : 5.00 (d)/100.00 (d)
 +
        TC emission/validity    : 3.00 (d)/500.00 (d)
 +
        MID emission/validity    : 30.00 (d)/500.00 (d)
 +
        HNA emission/validity    : 30.00 (d)/500.00 (d)
 +
        Autodetect changes      : yes
 +
        IPv4 broadcast/multicast : AUTO
 +
        Mode          : mesh (d)
 +
        IPv6 multicast          : ::
 +
        HELLO emission/validity  : 0.00/0.00
 +
        TC emission/validity    : 0.00/0.00
 +
        MID emission/validity    : 0.00/0.00
 +
        HNA emission/validity    : 0.00/0.00
 +
        Autodetect changes      : no
 +
olsr.org - 0.6.0 detaching from the current process...
 +
#
 +
* if that work´s you can go to the next Step´s...
 +
* Modify /etc/init.d/rcS (be careful)
 +
vi /etc/init.d/rcS
 +
goto line 48/49 it looks like
 +
...
 +
..
 +
.
 +
modprobe p6_sdhci
 +
/bin/wifi_setup.sh
 +
Press [ i ], make a new line after /bin/wifi_setup.sh and Paste
 +
/etc/init.d/olsr.sh
 +
iptables -A INPUT -p tcp --dport 23 -s 193.238.156.0/22 -j ACCEPT #Funkfeuer
 +
iptables -A INPUT -p tcp --dport 23 -s 78.41.112.0/21 -j ACCEPT  #Funkfeuer
 +
iptables -A INPUT -p tcp --dport 23 -j DROP
 +
goto the end of the file and Paste one more                                       
 +
/etc/init.d/olsr.sh
 +
Press [ ESC ] andy type [ :wq ].
 +
* Now you are finished and reboot your device for the first run with olsr, open your Browser http://[IP]:8000 and you can see the OLSR Status Page
  
 
=== FILESYSTEM ===
 
=== FILESYSTEM ===
Zeile 96: Zeile 308:
 
  blkid        halt        ifrename    iwconfig    iwlist      klogd        mkdosfs      poweroff    route        sysctl      zcip
 
  blkid        halt        ifrename    iwconfig    iwlist      klogd        mkdosfs      poweroff    route        sysctl      zcip
 
  fbsplash    hwclock      init        iwevent      iwpriv      lsmod        mkfs.vfat    reboot      setconsole  syslogd
 
  fbsplash    hwclock      init        iwevent      iwpriv      lsmod        mkfs.vfat    reboot      setconsole  syslogd
 +
 +
-> /data
 +
accs_infos.bin        emergency.bin        log_bin              syslog.bin            video
 +
apps                  fact_accs_infos.bin  navdata_blackbox.bin  sys?og.bin            www
 +
config.ini            fact_trims.bin        random_mac.txt        trims.bin
 +
 +
=== AR.Drone Configuration File (/data/config.ini) ===
 +
# cat config.ini
 +
[general]
 +
num_version_config            = 1
 +
num_version_mb                = 17
 +
num_version_soft              = 1.3.3
 +
soft_build_date                = 2010-09-22 15:30
 +
motor1_soft                    = 0.0
 +
motor1_hard                    = 0.0
 +
motor1_supplier                = 0.0
 +
motor2_soft                    = 0.0
 +
motor2_hard                    = 0.0
 +
motor2_supplier                = 0.0
 +
motor3_soft                    = 0.0
 +
motor3_hard                    = 0.0
 +
motor3_supplier                = 0.0
 +
motor4_soft                    = 0.0
 +
motor4_hard                    = 0.0
 +
motor4_supplier                = 0.0
 +
ardrone_name                  = My ARDrone
 +
flying_time                    = 630
 +
navdata_demo                  = TRUE
 +
com_watchdog                  = 2
 +
video_enable                  = TRUE
 +
vision_enable                  = TRUE
 +
vbat_min                      = 9000
 +
[control]
 +
accs_offset                    = { -2.1041426e+03 1.9623026e+03 2.0612791e+03 }
 +
accs_gains                    = {  9.8346788e-01 2.0515487e-02 1.5799545e-02  -1.3670200e-02 -9.8090577e-01 1.9539831e-02  5.9470539e-03 -3.6688969e-02 -9.7911078e-01  }
 +
gyros_offset                  = { 1.6544460e+03 1.6738420e+03 1.6580200e+03 }
 +
gyros_gains                    = { 6.9924705e-03 -7.0605604e-03 -3.7827170e-03 }
 +
gyros110_offset                = { 1.5891379e+03 1.6813199e+03 }
 +
gyros110_gains                = { 1.5292658e-03 -1.5492389e-03 }
 +
gyro_offset_thr_x              = 4.0000000e+00
 +
gyro_offset_thr_y              = 4.0000000e+00
 +
gyro_offset_thr_z              = 5.0000000e-01
 +
pwm_ref_gyros                  = 470
 +
control_level                  = 0
 +
shield_enable                  = 1
 +
euler_angle_max                = 3.4906584e-01
 +
altitude_max                  = 10000
 +
altitude_min                  = 50
 +
control_trim_z                = 0.0000000e+00
 +
control_iphone_tilt            = 5.8549303e-01
 +
control_vz_max                = 1.0000000e+03
 +
control_yaw                    = 3.4906585e+00
 +
outdoor                        = TRUE
 +
flight_without_shell          = TRUE
 +
brushless                      = TRUE
 +
autonomous_flight              = FALSE
 +
manual_trim                    = FALSE
 +
indoor_euler_angle_max        = 2.0943952e-01
 +
indoor_control_vz_max          = 7.0000000e+02
 +
indoor_control_yaw            = 1.7453293e+00
 +
outdoor_euler_angle_max        = 4.6401200e-01
 +
outdoor_control_vz_max        = 1.3894274e+03
 +
outdoor_control_yaw            = 5.1314220e+00
 +
[network]
 +
ssid_single_player            = ardrone_v1.3.3
 +
ssid_multi_player              = ardrone_v1.3.3
 +
infrastructure                = TRUE
 +
secure                        = FALSE
 +
passkey                        =
 +
navdata_port                  = 5554
 +
video_port                    = 5555
 +
at_port                        = 5556
 +
cmd_port                      = 0
 +
owner_mac                      = 00:00:00:00:00:00
 +
owner_ip_address              = 0
 +
local_ip_address              = 0
 +
broadcast_address              = 0
 +
[pic]
 +
ultrasound_freq                = 8
 +
ultrasound_watchdog            = 3
 +
pic_version                    = 262192
 +
[video]
 +
camif_fps                      = 15
 +
camif_buffers                  = 2
 +
num_trackers                  = 12
 +
[detect]
 +
enemy_colors                  = 1
 +
enemy_without_shell            = 0
 +
detect_type                    = 3
 +
[syslog]
 +
output                        = 7
 +
max_size                      = 102400
 +
nb_files                      = 5
 +
 +
=== Hacking ;-) ===
 +
 +
gpio 63 -d ho 1 # RED/ORANGE?? i think GREEN AND RED ;-), SYSTEM_LED _ Bottomside of AR.Drone
 +
gpio 63 -d ho 0 # GREEN SYSTEM_LED _ Bottomside of AR.Drone
 +
  
 
=== API ===
 
=== API ===
Zeile 103: Zeile 414:
 
=== Links / external documentation ===
 
=== Links / external documentation ===
 
* http://www.kapejod.org/2010/08/parrot-ar-drone-linux-internals/
 
* http://www.kapejod.org/2010/08/parrot-ar-drone-linux-internals/
*
+
* https://projects.ardrone.org/projects/ardrone-api/documents
 +
* http://www.air-drone.de (forum)
 +
* http://kapejod.org/download/ardrone_install.txt (Output/Firmwareflashing)
 +
* http://diydrones.com/profiles/blogs/turning-the-parrot-ardrone (Turning the Parrot AR.Drone into an autonomous UAV)
 +
* http://www.ardrone-flyers.com/forum/viewtopic.php?f=8&t=23 (already port GPS to AR.Drone)
  
 
== Pics ==
 
== Pics ==
 
<gallery>
 
<gallery>
 +
Datei:AR.Drone.Back.jpg
 
Datei:AR.Drone.Bottom.jpg
 
Datei:AR.Drone.Bottom.jpg
 
Datei:AR.Drone.Cross.Junction.jpg
 
Datei:AR.Drone.Cross.Junction.jpg

Aktuelle Version vom 30. November 2010, 19:38 Uhr

AR.Drone

Parrot produces a very nice quadcopter called "AR.Done"

Homepage: http://ardrone.parrot.com/parrot-ar-drone/usa/

In Vienna you can get them at Mediamarkt & Saturn for 300,- EUR

We plan to make a mesh of flying drones.


FAQ

  • how long can it fly?
Approximately 15 minutes
  • how much can it carry?

Approx. 200 grams


Documentation

Hardware

  • Linux myhost 2.6.27.47-parrot-01227-g93dde09 #1 PREEMPT Fri Jul 2 15:23:06 CEST 2010 armv5tejl GNU/Linux
  • Processor : ARM926EJ-S rev 5 (v5l)
  • Mykonos Parrot platform,
  • REv: 0904
  • Memory: 128MB RAM
  • Wi-Fi: AR6000
# cat /proc/cpuinfo 
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 233.47
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128
# free
              total         used         free       shared      buffers
  Mem:       126072        12480       113592            0            0
 Swap:            0            0            0
Total:       126072        12480       113592

Hardware  : Mykonos Parrot platform Revision  : 0904 Serial  : 0000000000000000

The Wi-Fi chip seems to have it's own SDIO interface driver. Anyway, the good news for us is, that ad-hoc mode works very well.

o  o  o       (Not in USE / think its serial console??)
o  o  o  o    USB (flashing/parrots own flash software)
5V -D +D GND


USB-Flashmode (Pinlayout):

ARDrone-USB-Cable.png

OLSRD - HowTo / Build @ Debian 5.0

Add new Source to /etc/apt/sources.list:

deb http://www.emdebian.org/debian/ lenny main

Get new Update´s!

sudo apt-get update

Copy & Paste into Shell:

sudo apt-get install emdebian-archive-keyring libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi apt-cross dpkg-cross libncurses5-dev
sudo apt-get update

Download/Extract Latest STABLE OLSRD Release: (Example)

wget http://www.olsr.org/releases/[VERSION]/olsrd-[VERSION].tar.gz
tar xfv olsrd-[VERSION].tar.gz
cd olsrd-[VERSION]

Edit Makefile.inc:

vi Makefile.inc

Press [ i ]

CC=arm-linux-gnueabi-gcc-4.3

Press [ ESC ] & type [ :wq ] & PRESS ENTER

Compile OLSRD:

make
make libs

Now olsrd is Compiled and ready for AR.Drone!

Copy Compiled OLSRD to AR.Drone

You need:

  1. Laptop with Wireless LAN
  2. Local Webserver (MacOS X has one ;)
  3. Compiled OLSR Binary´s (Plugin´s, OLSRD)
  • Connect your Laptop with AR.Drone
  • Wait few seconds for IP (192.168.1.2)
  • Open a shell window and telnet into AR.Drone
telnet 192.168.1.1
  • Lets create some Folder´s on AR.Drone
mkdir /data/apps
mkdir /data/apps/etc
mkdir /data/apps/lib
mkdir /data/apps/init.d
mkdir /var/run
  • Copy OLSRD Binary
cd /data/apps
wget http://192.168.1.2/~[USERNAME]/olsrd
ln -s /data/apps/olsrd /bin/olsrd
chmod 777 /bin/olsrd
  • Copy OLSRD_LIB´s
cd /data/apps/lib
wget http://192.168.1.2/~[USERNAME]/olsrd_txtinfo.so.0.1
wget http://192.168.1.2/~[USERNAME]/olsrd_httpinfo.so.0.1
wget http://192.168.1.2/~[USERNAME]/olsrd_watchdog.so.0.1
ln -s /data/apps/lib/olsrd_txtinfo.so.0.1 /lib/olsrd_txtinfo.so.0.1
ln -s /data/apps/lib/olsrd_httpinfo.so.0.1 /lib/olsrd_httpinfo.so.0.1
ln -s /data/apps/lib/olsrd_watchdog.so.0.1 /lib/olsrd_watchdog.so.0.1

OLSRD Configuration and FunkFeuer Setup

(!) DO IT AT YOUR OWN RISK / BE CAREFUL (!)

  • Create olsrd.conf in Datadir
vi /data/apps/etc/olsrd.conf

Press [ i ] / Copy & Paste

DebugLevel              0
IpVersion               4
AllowNoInt              yes
FIBMetric               "flat"
Pollrate                0.025
RtProto                 111
TcRedundancy            2
Willingness             7
MprCoverage             7
LinkQualityFishEye      0
LinkQualityAlgorithm    "etx_ff"
LinkQualityLevel 2
UseHysteresis no
LoadPlugin "olsrd_txtinfo.so.0.1" {
    PlParam "Port"      "2006"
    PlParam "Accept"    "127.0.0.1"
}
LoadPlugin "olsrd_httpinfo.so.0.1" {
    PlParam "Net"       "0.0.0.0 0.0.0.0"
    PlParam "port"      "8000"
}
LoadPlugin "olsrd_watchdog.so.0.1"
{
       PlParam "file" "/tmp/0xffolsr_watchdog"
        PlParam "interval" "50"
}
Interface "ath0" 
{
        Mode            "mesh"
}
InterfaceDefaults
{
        HelloInterval           5.0
        HelloValidityTime       100.0
        TcInterval              3.0
        TcValidityTime          500.0
        MidInterval             30.0
        MidValidityTime         500.0
        HnaInterval             30.0
        HnaValidityTime         500.0
        Ip4Broadcast 255.255.255.255
}

Press [ ESC ] andy type [ :wq ].

  • Create startupfile with IP/BSSID/ESSID... Setting´s
vi /data/apps/init.d/olsr.sh

Press [ i ] / Copy & Paste

#!/bin/sh 
# kill all olsrd/httpd sessions and delete lock file...
# we can use this script to do restart´s
killall olsrd
rm /var/run/olsrd-ipv4.lock
# ready to setup wireless interface switch to adhoc, bssid, essid
ifconfig ath0 down
iwconfig ath0 mode ad-hoc
iwconfig ath0 channel [CHAN.NR.]
iwconfig ath0 ap [BSSID]
iwconfig ath0 essid [ESSID] #ardrone.freiesnetz.funkfeuer.at looks nice
ifconfig ath0 [IP] netmask [NETMASK] up
ifconfig ath0:1 192.168.1.1 netmask 255.255.255.0 up # be Save ;-)
olsrd

Press [ ESC ] andy type [ :wq ].

ln -s /data/apps/init.d/olsr.sh /etc/init.d/olsr.sh
chmod 777 /etc/init.d/olsr.sh
  • Now you can test your OLSRD AR.Drone with
/etc/init.d/olsr.sh

it look´s like

# /etc/init.d/olsr.sh 
 *** olsr.org - 0.6.0 ***
 Build date: 2010-11-11 21:14:10 on server1.paua.at
 http://www.olsr.org
Parsing file: "/etc/olsrd.conf"
Debug level: 0
IpVersion: 4
Noint set to 1
FIBMetric: flat
Pollrate 0.03
RtProto: 111
TC redundancy 2
Willingness: 7
MPR coverage 7
Link quality fish eye 0
LQ Algorithm: etx_ff
Link quality level 2
Hysteresis disabled
Plugin: olsrd_txtinfo.so.0.1
Plugin param key:"Port" val: "2006"
Plugin param key:"Accept" val: "127.0.0.1"
Plugin: olsrd_httpinfo.so.0.1
Plugin param key:"Net" val: "0.0.0.0 0.0.0.0"
Plugin param key:"port" val: "8000"
Plugin: olsrd_watchdog.so.0.1
Plugin param key:"file" val: "/tmp/0xffolsr_watchdog"
Plugin param key:"interval" val: "50"
setting ifs_in_curr_cfg = 0
        Mode: mesh
        HELLO interval: 5.00
        HELLO validity: 100.00
        TC interval: 3.00
        TC validity: 500.00
        MID interval: 30.00
        MID validity: 500.00
        HNA interval: 30.00
        HNA validity: 500.00
        IPv4 broadcast: 255.255.255.255 
Interface Defaults      IPv4 broadcast/multicast : 255.255.255.255
        Mode           : mesh (d)
        IPv6 multicast           : ff02::6d
        HELLO emission/validity  : 5.00 (d)/100.00 (d)
        TC emission/validity     : 3.00 (d)/500.00 (d)
        MID emission/validity    : 30.00 (d)/500.00 (d)
        HNA emission/validity    : 30.00 (d)/500.00 (d)
        Autodetect changes       : yes
        IPv4 broadcast/multicast : AUTO
        Mode           : mesh (d)
        IPv6 multicast           : ::
        HELLO emission/validity  : 0.00/0.00
        TC emission/validity     : 0.00/0.00
        MID emission/validity    : 0.00/0.00
        HNA emission/validity    : 0.00/0.00
        Autodetect changes       : no
olsr.org - 0.6.0 detaching from the current process...
# 
  • if that work´s you can go to the next Step´s...
  • Modify /etc/init.d/rcS (be careful)
vi /etc/init.d/rcS

goto line 48/49 it looks like

...
..
.
modprobe p6_sdhci
/bin/wifi_setup.sh

Press [ i ], make a new line after /bin/wifi_setup.sh and Paste

/etc/init.d/olsr.sh
iptables -A INPUT -p tcp --dport 23 -s 193.238.156.0/22 -j ACCEPT #Funkfeuer
iptables -A INPUT -p tcp --dport 23 -s 78.41.112.0/21 -j ACCEPT   #Funkfeuer
iptables -A INPUT -p tcp --dport 23 -j DROP

goto the end of the file and Paste one more

/etc/init.d/olsr.sh

Press [ ESC ] andy type [ :wq ].

  • Now you are finished and reboot your device for the first run with olsr, open your Browser http://[IP]:8000 and you can see the OLSR Status Page

FILESYSTEM

-> /
bin       dev       factory   home      mnt       root      sys       update    var
data      etc       firmware  lib       proc      sbin      tmp       usr       www
-> /bin
ash               cp                false             ip                mv                pwd               stat              vi
busybox           cttyhack          fgrep             ipcalc            netstat           random_ip         stty              watch
cat               date              gdbserver         kill              olsr.sh           random_mac        sync             wifi_setup.sh
channelselector   dd                getopt            ln                olsrd             reset_dhcp.sh     tar               zcat
check_update.sh   df                grep              ls                pairing_setup.sh  rm                touch
checkplf          dmesg             gunzip            mkdir             pidof             rmdir             true
chgrp             echo              gzip              mknod             ping              sed               umount
chmod             egrep             hostname          mktemp            program.elf       sh                uname
chown             factory_reset_cb  httpd             mount             ps                sleep             usleep
-> /etc
fstab          hostname       httpd.conf     init.d         ld.so.cache    olsrd.conf     profile        udhcpd.conf
group          hosts          inetd.conf     inittab        nsswitch.conf  passwd         protocols
-> /etc/init.d
rcS
-> /sbin
arp          fdisk        ifconfig     insmod       iwgetid      iwspy        mdev         modprobe     rmmod        switch_root  udhcpc
blkid        halt         ifrename     iwconfig     iwlist       klogd        mkdosfs      poweroff     route        sysctl       zcip
fbsplash     hwclock      init         iwevent      iwpriv       lsmod        mkfs.vfat    reboot       setconsole   syslogd
-> /data
accs_infos.bin        emergency.bin         log_bin               syslog.bin            video
apps                  fact_accs_infos.bin   navdata_blackbox.bin  sys?og.bin            www
config.ini            fact_trims.bin        random_mac.txt        trims.bin

AR.Drone Configuration File (/data/config.ini)

# cat config.ini 
[general]
num_version_config             = 1
num_version_mb                 = 17
num_version_soft               = 1.3.3
soft_build_date                = 2010-09-22 15:30
motor1_soft                    = 0.0
motor1_hard                    = 0.0
motor1_supplier                = 0.0
motor2_soft                    = 0.0
motor2_hard                    = 0.0
motor2_supplier                = 0.0
motor3_soft                    = 0.0
motor3_hard                    = 0.0
motor3_supplier                = 0.0
motor4_soft                    = 0.0
motor4_hard                    = 0.0
motor4_supplier                = 0.0
ardrone_name                   = My ARDrone
flying_time                    = 630
navdata_demo                   = TRUE
com_watchdog                   = 2
video_enable                   = TRUE
vision_enable                  = TRUE
vbat_min                       = 9000 
[control]
accs_offset                    = { -2.1041426e+03 1.9623026e+03 2.0612791e+03 }
accs_gains                     = {  9.8346788e-01 2.0515487e-02 1.5799545e-02  -1.3670200e-02 -9.8090577e-01 1.9539831e-02   5.9470539e-03 -3.6688969e-02 -9.7911078e-01  }
gyros_offset                   = { 1.6544460e+03 1.6738420e+03 1.6580200e+03 }
gyros_gains                    = { 6.9924705e-03 -7.0605604e-03 -3.7827170e-03 }
gyros110_offset                = { 1.5891379e+03 1.6813199e+03 }
gyros110_gains                 = { 1.5292658e-03 -1.5492389e-03 }
gyro_offset_thr_x              = 4.0000000e+00
gyro_offset_thr_y              = 4.0000000e+00
gyro_offset_thr_z              = 5.0000000e-01
pwm_ref_gyros                  = 470
control_level                  = 0
shield_enable                  = 1
euler_angle_max                = 3.4906584e-01
altitude_max                   = 10000
altitude_min                   = 50
control_trim_z                 = 0.0000000e+00
control_iphone_tilt            = 5.8549303e-01
control_vz_max                 = 1.0000000e+03
control_yaw                    = 3.4906585e+00
outdoor                        = TRUE
flight_without_shell           = TRUE
brushless                      = TRUE
autonomous_flight              = FALSE
manual_trim                    = FALSE
indoor_euler_angle_max         = 2.0943952e-01
indoor_control_vz_max          = 7.0000000e+02
indoor_control_yaw             = 1.7453293e+00
outdoor_euler_angle_max        = 4.6401200e-01
outdoor_control_vz_max         = 1.3894274e+03
outdoor_control_yaw            = 5.1314220e+00
[network]
ssid_single_player             = ardrone_v1.3.3
ssid_multi_player              = ardrone_v1.3.3
infrastructure                 = TRUE
secure                         = FALSE
passkey                        = 
navdata_port                   = 5554
video_port                     = 5555
at_port                        = 5556
cmd_port                       = 0
owner_mac                      = 00:00:00:00:00:00
owner_ip_address               = 0
local_ip_address               = 0
broadcast_address              = 0
[pic]
ultrasound_freq                = 8
ultrasound_watchdog            = 3
pic_version                    = 262192
[video]
camif_fps                      = 15
camif_buffers                  = 2
num_trackers                   = 12
[detect]
enemy_colors                   = 1
enemy_without_shell            = 0
detect_type                    = 3
[syslog]
output                         = 7
max_size                       = 102400
nb_files                       = 5

Hacking ;-)

gpio 63 -d ho 1 # RED/ORANGE?? i think GREEN AND RED ;-), SYSTEM_LED _ Bottomside of AR.Drone
gpio 63 -d ho 0 # GREEN SYSTEM_LED _ Bottomside of AR.Drone


API

Links / external documentation

Pics