I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og
har brukt noen timer til å google etter interessante referanser og
aktuell kildekode for bruk på Linux. Det mest lovende så langt er
ispykee, som har en
BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på
lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for
å fjernstyre roboten. Linux-daemonen implementerer deler av
protokollen som roboten forstår. Etter å ha knotet litt med å oppnå
kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg
måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at
den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut
hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten
av protokollen er publisert av produsenten med GPL-lisens, slik at det
er mulig å se hvordan protokollen fungerer. Det finnes en java-klient
for Android som så ganske snasen ut, men fant ingen kildekode for
denne. Derimot hadde iphone-løsningen kildekode, så jeg tok
utgangspunkt i den.
Daemonen ville i utgangspunktet forsøke å kontakte den sentrale
tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om
til i stedet å sette opp en nettverkstjeneste på min lokale maskin,
som jeg kan koble meg opp til med telnet og gi kommandoer til roboten
(act, forward, right, left, etc). Det involverte i praksis å bytte ut
socket()/connect() med socket()/bind()/listen()/accept() for å gjøre
klienten om til en tjener.
Mens jeg har forsøkt å få roboten til å bevege seg har min samboer
skrudd sammen resten av roboten for å få montert kamera og plastpynten
(armer, plastfiber for lys). Nå er det hele montert, og roboten er
klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett
før det blir praktisk, men de bitene av protokollen er ikke
implementert i ispykee-daemonen, så der må jeg enten få tak i en mac
eller en windows-maskin, eller implementere det selv.
Vi var tre som kjøpte slike roboter, og vi har blitt enige om å
samle notater og referanser på NUUGs wiki. Ta en titt
der hvis du er nysgjerrig.