]> pere.pagekite.me Git - homepage.git/blob - blog/tags/robot/robot.rss
d776a7b266d889b5e580dddc63e387cb75a9df25
[homepage.git] / blog / tags / robot / robot.rss
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/'>
3 <channel>
4 <title>Petter Reinholdtsen - Entries tagged robot</title>
5 <description>Entries tagged robot</description>
6 <link>http://people.skolelinux.org/pere/blog/</link>
7
8
9 <item>
10 <title>First version of a Perl library to control the Spykee robot</title>
11 <link>http://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html</link>
12 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/First_version_of_a_Perl_library_to_control_the_Spykee_robot.html</guid>
13 <pubDate>Sat, 9 Oct 2010 14:00:00 +0200</pubDate>
14 <description>&lt;p&gt;This summer I got the chance to buy cheap Spykee robots, and since
15 then I have worked on getting Linux software in place to control them.
16 The firmware for the robot is available from the producer, and using
17 that source it was trivial to figure out the protocol specification.
18 I&#39;ve started on a perl library to control it, and made some demo
19 programs using this perl library to allow one to control the
20 robots.&lt;/p&gt;
21
22 &lt;p&gt;The library is quite functional already, and capable of controlling
23 the driving, fetching video, uploading MP3s and play them. There are
24 a few less important features too.&lt;/p&gt;
25
26 &lt;p&gt;Since a few weeks ago, I ran out of time to spend on this project,
27 but I never got around to releasing the current source. I decided
28 today that it was time to do something about it, and uploaded the
29 source to my Debian package store at people.skolelinux.org.&lt;/p&gt;
30
31 &lt;p&gt;Because it was simpler for me, I made a Debian package and
32 published the source and deb. If you got a spykee robot, grab the
33 source or binary package:&lt;/p&gt;
34
35 &lt;p&gt;&lt;ul&gt;
36 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.tar.gz&quot;&gt;libspykee-perl_0.0.20101009-1.tar.gz&lt;/a&gt;&lt;/li&gt;
37 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1.dsc&quot;&gt;libspykee-perl_0.0.20101009-1.dsc&lt;/a&gt;&lt;/li&gt;
38 &lt;li&gt;&lt;a href=&quot;http://people.skolelinux.org/~pere/debian/packages/lenny/libspykee-perl_0.0.20101009-1_all.deb&quot;&gt;libspykee-perl_0.0.20101009-1_all.deb&lt;/a&gt;&lt;/li&gt;
39 &lt;/ul&gt;&lt;/p&gt;
40
41 &lt;p&gt;If you are interested in helping out with developing this library,
42 please let me know.&lt;/p&gt;
43 </description>
44 </item>
45
46 <item>
47 <title>My first perl GUI application - controlling a Spykee robot</title>
48 <link>http://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html</link>
49 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/My_first_perl_GUI_application___controlling_a_Spykee_robot.html</guid>
50 <pubDate>Wed, 1 Sep 2010 21:00:00 +0200</pubDate>
51 <description>&lt;p&gt;This evening I made my first Perl GUI application. The last few
52 days I have worked on a Perl module for controlling my recently
53 aquired Spykee robots, and the module is now getting complete enought
54 that it is possible to use it to control the robot driving at least.
55 It was now time to figure out how to use it to create some GUI to
56 allow me to drive the robot around. I picked PerlQt as I have had
57 positive experiences with the Qt API before, and spent a few minutes
58 browsing the web for examples. Using Qt Designer seemed like a short
59 cut, so I ended up writing the perl GUI using Qt Designer and
60 compiling it into a perl program using the puic program from
61 libqt-perl. Nothing fancy yet, but it got buttons to connect and
62 drive around.&lt;/p&gt;
63
64 &lt;p&gt;The perl module I have written provide a object oriented API for
65 controlling the robot. Here is an small example on how to use it:&lt;/p&gt;
66
67 &lt;p&gt;&lt;pre&gt;
68 use Spykee;
69 Spykee::discover(sub {$robot{$_[0]} = $_[1]});
70 my $host = (keys %robot)[0];
71 my $spykee = Spykee-&gt;new();
72 $spykee-&gt;contact($host, &quot;admin&quot;, &quot;admin&quot;);
73 $spykee-&gt;left();
74 sleep 2;
75 $spykee-&gt;right();
76 sleep 2;
77 $spykee-&gt;forward();
78 sleep 2;
79 $spykee-&gt;back();
80 sleep 2;
81 $spykee-&gt;stop();
82 &lt;/pre&gt;&lt;/p&gt;
83
84 &lt;p&gt;Thanks to the release of the source of the robot firmware, I could
85 peek into the implementation at the other end to figure out how to
86 implement the protocol used by the robot. I&#39;ve implemented several of
87 the commands the robot understand, but is still missing the camera
88 support to make it possible to control the robot from remote. First I
89 want to implement support for uploading new firmware and configuring
90 the wireless network, to make it possible to bootstrap a Spykee robot
91 without the producers Windows and MacOSX software (I only have Linux,
92 so I had to ask a friend to come over to get the robot testing
93 going. :).&lt;/p&gt;
94
95 &lt;p&gt;Will release the source to the public soon, but need to figure out
96 where to make it available first. I will add a link to
97 &lt;a href=&quot;http://wiki.nuug.no/grupper/robot/&quot;&gt;the NUUG wiki&lt;/a&gt; for
98 those that want to check back later to find it.&lt;/p&gt;
99 </description>
100 </item>
101
102 <item>
103 <title>Robot, reis deg...</title>
104 <link>http://people.skolelinux.org/pere/blog/Robot__reis_deg___.html</link>
105 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Robot__reis_deg___.html</guid>
106 <pubDate>Sat, 21 Aug 2010 22:10:00 +0200</pubDate>
107 <description>&lt;p&gt;I dag fikk jeg endelig tittet litt på mine nyinnkjøpte roboter, og
108 har brukt noen timer til å google etter interessante referanser og
109 aktuell kildekode for bruk på Linux. Det mest lovende så langt er
110 &lt;a href=&quot;http://ispykee.toyz.org/&quot;&gt;ispykee&lt;/a&gt;, som har en
111 BSD-lisensiert linux-daemon som står som mellomledd mellom roboter på
112 lokalnettet og en sentral tjeneste der en iPhone kan koble seg opp for
113 å fjernstyre roboten. Linux-daemonen implementerer deler av
114 protokollen som roboten forstår. Etter å ha knotet litt med å oppnå
115 kontakt med roboten (den oppretter et eget ad-hoc wifi-nett, så jeg
116 måtte gå av mitt vanlige nett for å få kontakt), og kommet frem til at
117 den lytter på IP-port 9000 og 9001, gikk jeg i gang med å finne ut
118 hvordan jeg kunne snakke med roboten vha. disse portene. Robotbiten
119 av protokollen er publisert av produsenten med GPL-lisens, slik at det
120 er mulig å se hvordan protokollen fungerer. Det finnes en java-klient
121 for Android som så ganske snasen ut, men fant ingen kildekode for
122 denne. Derimot hadde iphone-løsningen kildekode, så jeg tok
123 utgangspunkt i den.&lt;/p&gt;
124
125 &lt;p&gt;Daemonen ville i utgangspunktet forsøke å kontakte den sentrale
126 tjenesten som iphone-programmet kobler seg til. Jeg skrev dette om
127 til i stedet å sette opp en nettverkstjeneste på min lokale maskin,
128 som jeg kan koble meg opp til med telnet og gi kommandoer til roboten
129 (act, forward, right, left, etc). Det involverte i praksis å bytte ut
130 socket()/connect() med socket()/bind()/listen()/accept() for å gjøre
131 klienten om til en tjener.&lt;/p&gt;
132
133 &lt;p&gt;Mens jeg har forsøkt å få roboten til å bevege seg har min samboer
134 skrudd sammen resten av roboten for å få montert kamera og plastpynten
135 (armer, plastfiber for lys). Nå er det hele montert, og roboten er
136 klar til bruk. Må få flyttet den over til mitt vanlige trådløsnett
137 før det blir praktisk, men de bitene av protokollen er ikke
138 implementert i ispykee-daemonen, så der må jeg enten få tak i en mac
139 eller en windows-maskin, eller implementere det selv.&lt;/p&gt;
140
141 &lt;p&gt;Vi var tre som kjøpte slike roboter, og vi har blitt enige om å
142 samle notater og referanser på &lt;a
143 href=&quot;http://wiki.nuug.no/grupper/robot/&quot;&gt;NUUGs wiki&lt;/a&gt;. Ta en titt
144 der hvis du er nysgjerrig.&lt;/p&gt;
145 </description>
146 </item>
147
148 <item>
149 <title>2 Spykee-roboter i hus, nå skal det lekes</title>
150 <link>http://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n__skal_det_lekes.html</link>
151 <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/2_Spykee_roboter_i_hus__n__skal_det_lekes.html</guid>
152 <pubDate>Wed, 18 Aug 2010 13:30:00 +0200</pubDate>
153 <description>&lt;p&gt;Jeg kjøpte nettopp to
154 &lt;a href=&quot;http://www.spykee-robot.com/&quot;&gt;Spykee&lt;/a&gt;-roboter, for test og
155 leking. Kjøpte to da det var så billige, og gir meg mulighet til å
156 eksperimentere uten å være veldig redd for å ødelegge alt ved å bytte
157 ut firmware og slikt. Oppdaget at lekebutikken på Bryn senter hadde
158 en liten stabel på lager som de ikke hadde klart å selge ut etter
159 fjorårets juleinnkjøp, og var villig til å selge for en femtedel av
160 vanlig pris. Jeg, Ronny og Jarle har skaffet oss restbeholdningen, og
161 det blir morsomt å se hva vi får ut av dette.&lt;/p&gt;
162
163 &lt;p&gt;Roboten har belter styrt av to motorer, kamera, høytaler, mikrofon
164 og wifi-tilkobling. Det hele styrt av en GPL-lisensiert databoks som
165 jeg mistenker kjører linux. Firmware-kildekoden ble visst publisert i
166 mai. Eneste utfordringen er at kontroller-programvaren kun finnes til
167 Windows, men det må en kunne jobbe seg rundt når vi har kildekoden til
168 firmwaren. :)&lt;/p&gt;
169
170 &lt;ul&gt;
171 &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Spykee&quot;&gt;Wikipedia-oppføring&lt;/a&gt;&lt;/li&gt;
172 &lt;li&gt;&lt;a href=&quot;http://www.spykeeworld.com/spykee/US/freeSoftware.html&quot;&gt;Nedlasting av firmware-kilden&lt;/a&gt;&lt;/li&gt;
173 &lt;li&gt;&lt;a href=&quot;http://wiki.nuug.no/grupper/robot&quot;&gt;prosjektwiki hos NUUG&lt;/a&gt;&lt;/li&gt;
174 &lt;/ul&gt;
175 </description>
176 </item>
177
178 </channel>
179 </rss>