Závod autonomních elektrických formulí ROBORACE by se měl poprvé konat v
sezóně 2016-2017. Deset týmů, každý se dvěma vozy bez řidiče, bude soutěžit v
jednohodinovém závodě na závodních okruzích po celou sezónu. Všechny týmy
budou mít stejná auta, takže to bude soutěž použitých řídicích AI programů.
Jeden soutěžící bude „crowd-sourced community team”, tj. otevřený veřejnosti.
Máme se nač tešit … Blog update:
2/8 — DevBots v Montreálu
Autonomní auta mne zajímají už od DARPA Grand
Challenge z roku 2004. Co ale nevím, jestli by to zajímalo i vás, čtenáře? Má
smysl přepisovat útržky nalezených článků do češtiny? Případně zajímavé kusy
kódu, pokud opravdu desátý tým bude vše zveřejňovat? Proto
fandorama blog, který by měl pokrýt celou první
soutěžní sezónu.
Asi zatím nejvíce informací je na již zmiňovaném
wired.co.uk.
Teď se snaží získat firmy, které již autonomní vozy vyvíjí (Google, Uber,
Continental a Bosh). Existuje i první verze API, aby týmy mohly začít se
simulátory … dokumentaci jsem si vyžádal, tak uvidíme jestli odpoví.
Roborace fills a gap left by the School Series, an electric kit car
competition for kids that was run before a number of races in Formula E's first
season. The School Series was dropped from the season two schedule shortly
before the first race in Beijing, leaving room for a new support series like
Roborace. … tj. ruší
závody
pro děti a nahrazují je závody pro roboty … a co děti, mají si kde hrát?
16. únor 2016 — API na výsledky
Koukám, že už je to měsíc, co jsem zde naposledy napsal odstaveček. Ono se
stále nic neděje. Alespoň jednou týdně projdu oficiální stránky a github … a
nic. Jen různé polemiky typu
deseti
důvodů proč neignorovat robotrace, kde pozorování, že publikum bude trošku
jiné a možná to přiláká i ostatní, kteří k F1 závodům nemají žádný vztah, mne
moc nenadchly.
Zkouším také hledat "e-formula api" a na to jsem dnes skoro poskočil, když
vyběhl odkaz na Ergast Developer API. The Ergast
Developer API is an experimental web service which provides a historical record
of motor racing data for non-commercial purposes. The API provides data for the
Formula One and Formula E series, from the beginning of the world championships
in 1950 and 2014 respectively. Tj. není to API na řízení formule :-(, ale
přístup do databáze výsledků. Třeba se i toto bude časem hodit …
5. duben 2016 — Nový design
Informaci, že elektrická závodní auta budou mít nový design, jsem četl už zhruba před
mesícem. Ale byla to agentura JPP (Jedna Paní Povídala), resp.
Roborace
hired the man behind Tron: Legacy's light cycles to design its driverless
cars. Musím uznat, že některé návrhy Daniela
Simona jsou opravdu „cool”, ale nějak mne spíše trápí technická stránka
soutěže a toto patří spíše do kategorie „nice to have”. No nic, už
je to
oficiální a tak si můžete prohlédnout „vyrenderovaný obrázek”:
p.s. mezi řádky The first Roborace 'shows' will take place during the
2016/2017 Formula E season., tj. už to nevypadá, že by závodilo pokaždé a
začalo to letos … ???
27. duben 2016 — Nvidia
Když jsem se koukal posledně, tak jsem zaznamenal nějaké útržky, že Roborace
podpoří Nvidia, ale teprve teď vidím
relevantní článek. Každé
auto bude tedy vybaveno počítačem
NVIDIA DRIVE PX 2. Už podle
obrázků to vypadá moc pěkně … no to by bylo zlé, kdyby Nvidia neměla
pěkné obrázky .
DRIVE PX is a powerful auto-pilot car computer designed to run deep neural
networks paving the way for the autonomous car.
Ještě přidám odkaz s informacemi o
Nvidia
na letošním CESu. 10x výkonější než starší generace (Dual
NVIDIA Tegra® X1
processors = 2.3 Teraflops) … asi bych udělal malou
odbočku. Cogito posílal před časem odkaz na nahrávané přednášky ze Stanfordu z
ledna letošního roku — jestli o Deep Neural Networks nic netušíte (ale
i když tušíte) tak vřele doporučuji (já se tím prokousávam jenom pomalinku,
přeci jenom je to 15h videa, ale lepší zdroj asi nenajdete):
CS231n
Winter 2016 Tam člověk pochopí, jaká revoluce proběhla nárůstem výpočetní
síly a množstvím vstupních dat.
ukázka klasifikace (zdroj Nvidia)
DRIVE PX 2 can process the inputs of 12 video cameras, plus lidar, radar and
ultrasonic sensors. It fuses them to accurately detect objects, identify them,
determine where the car is relative to the world around it, and then calculate
its optimal path for safe travel.
Hm, tak to už tam pro programátora snad nezbývá ani co dělat??
5. květen 2016 — Vzdělání škodí lidem?!
Teď se mnou cloumá vztek, tak ho ventiluji alespoň do jednoho odstavečku tohoto
blogu. Jestli jste se nestihli podívat na ty DNN videa ze Stanfordu, co jsem o
nich psal minule, tak už máte smůlu. Jsou stažená: This video is private.
:-(. Vysvětlení je na
Karpathyho
twitteru. Sigh. Prostě pokud něco uděláte pro vzdělané lidi, tak vás za to
můžou i zažalovat, viz odkaz z toho twitteru:
Harvard
and M.I.T. Are Sued Over Lack of Closed Captions. Už vidím, jak se budou
ilegálně kopírovat vysokoškolské přednášky … nebylo to tu už někdy? Proletáři
všech zemí vy…
p.s. díky za komentář — ještě že existuje underground
Vedle akce samotné mne na první pohled upoutal
dataset
ke stažení. Má 4.57GB, zabalený tar, takže si ho asi moc na svém notebooku
neprohlédnu, ale už samotný fakt, že si náhodný kolemjdoucí může stáhnout data
z Lidaru (na autech jsem viděl Velodyne 32) a kamer (?) mne těší . Asi budu
potřebovat viewer od PolySync, ale
věřím, že někde bude formát popsán. Až dojde na Roborace, tak to asi bude
podobné …
Koukám, že ke stažení jsou i čistě data z Velodyne HDL-32 na
data.selfracingcars.com (1.2GB).
YouTube video zas tak moc odvaz
není. Je celkem dobře vidět vnitřek auta, ale závodní dráha v ostrém slunci je
spíše bílá … a je to jenom demo, sběr dat, jen jedno auto na trati. Ale nějak
se začít musí.
17. srpen 2016 — Roborace welcomes you
Asi jsem zase zaspal. To je mi podobný! Na druhou stranu jsem skoro
přesvědčený, že tlačítko ENQUIRE bylo na oficiálních
stránkách Roborace už od začátku a že jsem ho v únoru (?) použil, když jsem
organizátorům psal. Jen vedlo na jiný formulář :-(.
Ono je i možné, že se to změnilo nedávno?? Každopádně, když teď na to tlačítko
kliknete, tak se vám objeví Join us as a můžete zvolit Team or
Roboracer a dále jestli registrujete tým nebo hledáte místo v týmu … pak
vás čeká dotaz na znalosti a když správně odpovíte robotovi:
Hi, it’s Roborace AI speaking.
I believe you are one of us. Aren’t you?
4 + seven is:
tak dostanete mail s linkem na NDA (non-disclosure
agreement). Je nutné podepsat, naskenovat a poslat … skoro mám obavy, jestli
potom ještě budu moci v tomto blogu pokračovat. Uvidíme. Ještě jsem to
neposlal — to tlačítko jsem dnes stiskl, protože jsem se chtěl zeptat jestli
už nějaké týmy jsou … nepřidáte se ještě někdo?
24. srpen 2016 — DevBot
Z Roborace organizátorů se po mailu zatím nikdo neozval (automatické odpovědi
nepočítám), ale teď jsem narazil na
článek
a youtube video, kde je první
zmínka o stroji — DevBot. Příliš krátké = skoro nezajímavé, ale snad už
brzy bude známo více.
p.s.
ještě
jeden článek, nesoucí stejnou informaci, kde je ale zmínka, že Roborace's
DevBot will make its public debut on August 24th, at the Formula E open
practice sessions at Donington Park. (to bylo včera) Na The Verge je také
podrobnější
článek
o plánovaných senzorech, i když se obávám, že je to zatím spíše spekulace a
je to definované možnostmi vstupů Nvidia Drive PX2.
Tady
je zmínka, že demo již proběhlo, ale chtělo by to více …
29. srpen 2016 — První autonomní jízdy
Na webu jsou už k vidění první videa s autonomní jízdou. Přiznám se, že bych v
DevBot-u moc sedět nechtěl. První video je s Lucas Di Grassi … trošku, jak když
vás vystřelí na měsíc:
A toto je první veřejná jízda — škoda, že je video oříznuté:
18. zaří 2016 — TORCS?
Včera na Robotour večeři byla vyslovena
hypotéza, že Roborace bude možná postavené na TORCS (The
Open Racing Car Simulator), a
zde je
důkaz, že o tom organizátoři uvažovali … pro případ, že by
link přestal fungovat, zde je originalní text:
> On 4/8/2016 3:52 PM, Vadim Butakov wrote:
>
> Hi,
>
> I'm a member of Roborace:
> http://spectrum.ieee.org/cars-that-think/transportation/self-driving/
nvidia-to-supply-roborcar-brains-for-roborace-formula-e-series
>
> I'm evaluating an idea of modifying Speed Dreams to create a free
> open-source platform that anyone can use to develop, test their ai
> algorithms and compete with each other in virtual Roborace events.
> It can be an alternative to a high-end (hence inaccessible to the
> general public) sim that will be used by the actual teams.
>
> The questions to you guys are:
>
> - what do you think of this idea?
>
> - are you willing to help us to build such a platform? The to-do
> list will be to create a udp bot server addon (similar to one used
> in TORCS championships), create a Robocar model, (if there is
> enough time) crate tracks that will be used in the championship
> and a Roborace event in the game.
>
> Let me know what you think!
>
> Cheers,
>
> Vadim
Vadim Butakov
— Autonomous Driving Software Lead at Roborace
26. zaří 2016 — Speed Dreams
Jako první krok Vadim doporučuje Speed Dreams, což
je simulátor, který z TORCS vychází.
At some point we considered it as an option because it's an open source and
there is a great community around it, but unfortunately it's quite outdated and
there is plenty of work has to be done in order to get it to standards we aim.
We might suggest Speed Dreams as a free simulator for very early algorithms
testing, but no more than that.
OK, má pravdu, že už je to trošku outdated. Zdrojáky si můžete stáhnout na
SourceForge,
ale zabalené mají 2.98GB a rozbalené pak asi 4.5GB. Kód je psaný primárně v
C/C++. Začít bude asi nejlepší v složce doc/tutorials/robot … ale ta je i
online.
A robot is a program that drives a car (technically it's a function
encapsulated into a shared object in Linux, into a DLL in Windows). It is
executed from TORCS and gets as input information about the current status of
its car and the situation on the track. Based on this it can compute how much
it wants to steer, to brake or accelerate, which gear it needs and if it wants
to pit. Your robot returns the data to TORCS and the next simulation step will
be performed.
… a
první
lekce jak řídit robota středem závodní dráhy vypadá dobře … uvidíme
…
6. říjen 2016 — DevBot v Hong Kongu
Ten čas hrozně utíká! Dnes jsem dostal info, že
DevBot je v Hong Kongu a po chvíli
hledání mi vyskočil starý
článek, kde psali: The first Roboraces will take place during the upcoming
Formula E season, which kicks off in Hong Kong October 9. … tj. závody
začínají už tuto neděli!
HKT Hong Kong ePrix - Qualifying LIVE 09/10/2016 Sunday 05:45 CEST 07:10 CEST
HKT Hong Kong ePrix - Race LIVE 09/10/2016 Sunday 09:30 CEST 11:30 CEST
9. říjen 2016 — Závod Formule-E v Hong Kongu
Přestože podle
časového
rozvrhu měla být ukázka Roborace jak v sobotu tak v neděli, tak jsem jí zatím
na YouTube nenašel. Během dne jsem alespoň narazil na
stream z kvalifikace a závodů
Formule-E. Stojí to za shlédnutí, co že všechno bude muset ten počítač zvládat
[video bylo změněno na "private" a není již k dispozici]
(start závodu je cca v 8:12:00)
12. říjen 2016 — DevBot měl v Hong Kongu problémy
Už vím, proč … DevBot nebyl na žádných záběrech, viz
článek
na CNN:
However, things didn’t quite go to plan for its first scheduled street track
outing at the inaugural Formula E Hong Kong ePrix this weekend.
There were no high-speed figures of eight, only seven engineers struggling to
push the 1.1-ton car through a three-point turn outside its temporary home in
Hong Kong — problems recharging the battery the reason given for the no
show.
We are calling this a Beta season — getting people on board and getting them
up to speed.
The Roborace team will try again at next month’s Marrakech ePrix on November
12 with Tomlinson hopeful that they will be running races before the third
season of Formula E ends next July.
Uvidíme tedy za měsíc v Maroku … (viz
seznam
závodů).
p.s. stream z víkendu je již nedostupný, tak alespoň sestřih:
Včera jsem víceméně omylem narazil na Vadimův repozitář
Roborace-Dreams. Na první pohled
to vypadalo jako prázdné repo, podobně jako
roborace/roborace, ale klonování
trvalo nějak hrozně dlouho. Důvod? On je skoro prázdný master, ale větev
dev obsahuje modifikovanou verzi Speed Dreams!
Konkrétně by vás mohl zajímat adresář
Info_Roborace.
Je to 3 měsíce staré a asi opuštěné, ale zároveň v tom Info.docx je popis
UDP stavový paketů a paketů pro řízení formule:
The protocol for the simulator out stream is defined below.
Signal
Start Byte
Type
Units
Description
LapTime
0
float
seconds
current lap time
DistStart
4
float
meters
distance from start line
LastLapTime
8
float
seconds
last lap time
RacePos
12
int32
-
race position
RPM
16
float
rev/min
RPM
EnergyLevel
20
Float
TBD
battery level
GearPos
24
int32
-
gear position
WheelVelFR
28
float
rad/sec
wheel speed front right
WheelVelFL
32
float
rad/sec
wheel speed front left
WheelVelRR
36
float
rad/sec
wheel speed rear right
WheelVelRL
40
float
rad/sec
wheel speed rear left
AbsPosX
44
float
meters
position of vehicle CG in abs CS
AbsPosY
48
float
meters
AbsPosZ
52
float
meters
AngX
56
float
rad
roll (X), pitch (Y) and yaw (Z) angles of the vehicle
The protocol for the simulator in stream is defined below.
Signal
Start Byte
Type
Units
Description
SteerAng
0
float
deg
“+” – left, “-“ - right
AccelRequest
4
float
N∙m or % gas
Overall torque request or gas pedal percentage (depending on
CtrlMode)
BrakeRequest
8
float
% brake
brake pedal request (0 to 1)
GearPos
12
int32
-
gear position: -1 – reverse,
0 – neutral, 1 - drive
CtrlMode
16
uint8
-
control mode:
3 – torque request, N∙m
11 –gas pedal request, %
Ctr
20
uint8
-
the simulator checks if controller is alive using this counter
Je to kompromis mezi Speed Dreams a Roborace. Vedle absolutní pozice na
trati máte k dispozici i rychlosti, zrychlení, úhly, derivace úhlů, rychlosti
jednotlivých kol, úhel zatáčení, reakci kol (to moc netuším co je) a informace
o stavu baterie, kolize a absolutní pozici soupeřů (X, Y, směr a rychlost).
Pro řízení pak posíláte příkaz na otočení volantu, sešlápnutí „plynu”, brzdy
a řazení.
14. říjen 2016 — pyroborace ver0
Neodolal jsem. Vytvořil jsem si VirtualBox s Ubuntu, abych mohl snadno
postupovat podle
instrukcí.
Až na to, že je to PDFko, celkem OK (obyčejný text by šel lépe kopírovat,
případně ideálně rovnou pustit nebo patchovat). Drobnost s mkdir bild (má
být mkdir build) a pak mi neprošla kompilace kvůli Windows socketům. Ono
hned vedle je
linux_fix/fix.zip,
který po rozbalení skrývá README.md:
# Roborace Ubuntu Fix
#Install:
- Clone the original repo (https://github.com/vadbut/Roborace-Dreams)
- Copy the 'drivers' folder into 'Roborace-Dreams/src/' and choose to
overwrite all conflicting files
… no asi bych to dělal jinak, ale vzhledem k tomu, že to fungovalo a jinak je
to asi mrtvá větev OK. Prostě natvrdo překopírovat zdrojáky z toho ZIPu přes ty
trackované v repozitory a pak zkompilovat a nainstalovat.
Chvilku jsem hledal, co mám vlastně pustit … odpověď je speed-dreams-2. V
samotném programu pak vyberete závod (Quick Race pro test stačí), účastníky
si vyberete ze skupinky UDP (v mém případě první byl UDP Nico Watt) a po
odstartování, kdy vaše auto stojí a všichni vás předjedou, je vidět na konzoli,
že nepřicházela žádná UDP data a spojení bylo ukončeno.
K Hello World! už je jenom krůček: opakovaně posílat 21 bajtů na port 3001,
viz
pyroborace/ver0.py:
# simplest version = just go straight with 50% gas
import socket
import struct
soc = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ctr = 0
while True:
data = struct.pack('fffiBB', 0, 0.5, 0, 1, 11, ctr & 0xFF)
soc.sendto(data, ('127.0.0.1', 3001))
ctr += 1
Když si představím, že toto by šlo pustit na závodní formuli, tak mne až
zamrazí . Co to v simulátoru udělá? Částečně šlápne na plyn, jede to rovně a
v první zatáčce to nabourá.
Co dál? Asi bych si rozchodil přesměrování portů, abych řízení mohl pouštět
mimo VirtualBox (pro pohodlí), a pak ver1, která zároveň bude číst stavy a
popojede s formulí 1 metr.
15. říjen 2016 — pyroborace ver1
Přidání čtení stavu simulované formule je v Pythonu poměrně triviální:
soc.bind( ('', 4001) )
soc.settimeout(1.0)
s tím, že ten timeout je pouze pro pohodlnost (nechci teď ještě řešit nějaká
vlákna).
pyroborace/ver1.py
opravdu dostával požadovanou strukturu velikosti 794 bajtů, včetně absolutní
pozice na trati, a tak veškerá „logika” byla zapamatovat si pozici startu
(není to (0, 0)) a když je vzdálenost (math.hypot()) větší než 10 metrů, jeden
metr mi přeci jenom přišlo málo, sundej nohu z plynu.
Celkem to fungovalo, jenom mne překvapilo, když po chvíli formule začala
couvat?! Že by tam byl kopec?? Přidal jsem si vypisování ještě Z-ové souřadnice
a byl …
Po těch 10 metrech jsem tedy ještě začal zuřivě dupat na brzdu (soupeři za mnou
se to moc nelíbilo a obratem do mne naboural) a celkově jsem zastavil až na
116 metru.
Další krok bude nastudovat trasu (netuším, jak ten 3D model popisují) a zkusit
objet celé kolo. Pomalu.
16. říjen 2016 — Inside Roborace - Episode 1
… úplně jsem na to zapomněl …
Z toho záznamu z Hong Kongu je vidět, že
Vadim Butakov hraje
poměrně aktivní roli a další důležitou osobou je
Gregory
Forostovsky.
9. listopad 2016 — pyroborace track
Tento víkend se pojede závod v Maroku a tentokrát to snad DevBot alespoň jednou
objede. Předpokládám, že následně sestříhají Epizodu 2.
Na poli Pythonovské Roborace je
drobný update: přibyl jednoduchý parser popisu trasy
track.py. Řeší
zatím jenom 2D trasu a ignoruje náklony a stoupání. Mezi problematické
segmenty patří zatáčky s proměnnou křivostí (popisují se pomocí poloměru na
začátku a na konci), které u některých tras nesedí. Defaultní Espie Grand
Prix Circuits ale funguje a tak je na čase se pohnout z místa „alespoň
trošku inteligentně”.
Jinak potvrzuji, co mi psal Vadim, že souřadnice ostatních závodních aut jsou k
dispozici pouze pro UDP roboty. Vedle Nico Watta jsem si přidal ještě UDP
robota Petera Fleminga a začala chodit lepší data . Není to dokonalé,
ale krůček to je.
10. listopad 2016 — DevBot #2 a Epizoda 2
Díky Jirkovi za korekci, že Epizoda 2 už je skoro týden online …
17. listopad 2016 — Roborace-Dreams ve Windows
Minulý týden se do Roborace aktivně zapojil i Zbyněk a
prošlapal minimalistickou verzi simulátoru Roborace ve Windows. A klasicky
„když dva dělají totéž není to totéž” — výsledek stojí za to (myslím, že i
střípky z jeho trnité cesty), tak bych to zde zmínil …
Začal bych ale ještě pár poznámkami k „mé” Ubuntu verzi ve VirtuálBoxu (ta
vlastně zavdala popud k větší revizi a vytvoření
forku Roborace-Dreams). Lze si
totiž zapnout Port Forwarding (Network >> Advanced >> Port Forwarding >>
'+' >> UDP 127.0.0.1 3001 10.0.2.15 3001 a UDP 127.0.0.1 3002 10.0.2.15 3002),
povolit ve firewall oba porty jak na straně Windows, tak ve VirtualBoxu (sudo
ufw 3001 a sudo ufw 3002), restartovat VirtualBox a pak ověřit, že
spojení funguje (netcat -lu 3001 — testovat to přímo ve speed-dreams-2
není moc dobrý nápad).
Cvičně jsem si pustil proti sobě
ver0.py vs.
ver2.py (u
ver0.py jsem si změnil číslo portu na 3002), jedno auto dal na začátek a
druhé na konec startovního pole a … začala mi chodit nesmyslná data jak pro
mé auto, tak pro pozici soupeře:
… prostě to vypadá, že všechny informace se chybně posílají na port 4001 a
pokud by druhé auto poslouchalo na 4002, tak nic nedostane … což byla
motivace, proč zasahovat do
Vadimových zdrojáků.
Následující sekci Zbyněk možná brzy zcenzuruje … ale v mezičase …
začalo to mailem se subj. speed dreams (nebo spíš nightmares?) … jen pár
výseků ze série mailů:
Tak jsem se do toho pustil…
[ale nakonec jsem nic užitečného nesepsal, takže to klidně ignorujte]
Klonuji
git@github.com:robotika/Roborace-Dreams.git
ale už to nějakou dobu běží, mám staženo 1.3G a píše to 60% - hmm, docela
nářez. Snažím se postupovat dle
neb mám rozchozené MSVC express 2008 včetně qmake a cmake. Jinak ale vůbec
netuším, co vlastně dělám. Potřebuji to vlastně kompilovat? No nic, časem snad
asi jo, tak to nebude zbytečná práce. Ze souborů
Mimochodem, už mám 2.2G a říká to, že je to 80%. Prostě je to na dýl.
…
Jinak pokračuji v rozchozování pod win 7 a vc express 2008. První problém je,
že to nemá inttypes (a to tvrdí, že msvc 2008 je podporované). Proboha chápete
někdo, proč má CMake gui tak strašně malé to okno s logem? No, pak nemohl najít
3rdparty - tak vězte, že mají být "vedle" checkoutu (../3rdParty). Pak prošel
jak Configure, tak Generate, takže mám otevřené msvc a v něm sln se spoustou
projektů. Dávám build all a "odcházím na párek" . Builduje se to v 21
paralelních jobech a stejně to v součtu nevytíží mé 4 procesory na víc jak na
30%. Tak uvidíme. A, už to frčí na 100% (je 12:36).
Můj nynější plán je, podívat se v debugeru, jak se vlastně parsují ty xml
tracky.
Uhh, ho. Je 12:42 a je dobuildováno a žádný error! Teď už jen zjistit, jestli
je tam ten udp driver. Projekt udp tam je, ale z roku 2006.
@Martine, co tam ten Vadim vlastně přidával či měnil?
SpeedDreams2 jde pustit. První věc - chci vypnout hudbu. Bohužel dostávám
access violation :-(. A to v nějakém loggeru :-(. Protože _pStream není
inicializovaný. Nicméně po ručním restartu už to alespoň nehraje, … a budu
mít ještě chvilku čas se v tom vrtat .
Vybírám Race => QuickRace, ale nemůžu najít, jak tam vybrat nějakého UDP
závodníka :-(. Tj. asi končím. Respektive nepustím si ver0.py, ale furt můžu
zkusit kouknout na ty xml tracks.
…
Bingo (další polední spánek)! Jinak já teda nevím, ale asi máme o UI úplně jiné
představy (tím myslím já vs. vývojáři Speed Dreams). Takže, když vyberete Quick
Race, tak si nevybírejte jezdce kliknutím na tlačítko "Players", ne ne. Tím se
jezdci nevybírají. Jak píše Martin, vybírají se tlačítkem Configure. A ta
"herní" myš mě taky pěkně štve - vždycky, když to nad něčím přemýšlí, tak myš
zmizí a člověk vůbec netuší, co se děje. A že to před startem přemýšlí fakt
dlouho. Ale možná je to tou debug verzí.
Jestli to celé dobře chápu, tak na to, aby člověk programoval UDP bota, tak na
to vůbec nemusí kompilovat vlastní Speed Dreams, ale stačí stáhnout binární
instalaci. Ještě jsem to neověřoval, ale nemám dojem, že tam Vadim něco přidal
či změnil. A to repozitory je teda mega nepříjemné na práci - 2.2G na stahování
a po checkoutu a buildu to má 7.5G.
Čili první milník dosažen! Již druhý člověk po prvním průkopníkovi byl schopen
spustit ver0.py!
… přijde mi, že kdybych sem dal pouze dvouřádkový návod, jak si to celé
rozchodit, tak by si málokdo uvědomil, že to nebylo úplně „zadarmo” …
Zbyňkova pozorování (resp. „detaily”, kterých jsem si já dříve nevšiml):
simulace je včetně zvuku (já ho mám na notebooku skoro permanentně vypnutý)
UDP roboti ve Speed Dreams byli ještě před Roborace
Roborace autíčka udp_1 až udp_20 jsou, včetně Robocar modelu, k dispozici pod složkou Roborace
ver0.py na Windows funguje a je to dost agresivní strategie (ve starších pokusech mi zůstávala v první zatáčce, ale s Robocar se odráží od mantinelů a i někam dojede)
DevBot #1 úspěšně dokončil 12 autonomních objezdů (bez řidiče) s tím, že v každém
kole zrychloval
na příště plánují již „závod” dvou aut (pravděpodobně DevBot #1 a DevBot #2)
28. listopad 2016 — pyroborace - end_radius a predikce
Na poli Roborace byl minulý týden klid (jestli jsem zase něco nepřehlédnul) a
tak bych alespoň zmínil, co nového s
pyroborace — řízení Roborace-Dreams simulované formule
programované v Pythonu.
Asi první zásadní změna je, že s
demo.py už je
možné jezdit po libovolném okruhu a ne nutně pouze
Espie.
Zbyněk vyřešil problém s
offsetem tak, že teď je startovní čára vždy na pozici (0, 0, 0). Je k tomu
potřeba jiná
udp_Roborace.dll
(viz Remove offset, fix #3,
kde je detailněji řešení popsáno).
Druhý problém, který je snad již vyřešen (hrubou silou), ale zatím není v
masteru, byly zatáčky s proměnlivou křivostí. Poznají se tak, že vedle
radius mají v XML popisu také end radius. Jak se s tím pracuje je
vidět v
Roborace-Dreams
zdroji, ale přiznám se, že mi to trvalo poměrně dlouho to pochopit (viz
druhý pokus).
Algoritmus:
odhadni délku segmentu: arc * (radius + end_radius)/2
definuj počet dělících kroků jako podíl délky segmentu a hodnoty parametru profil steps length
přepočítej jednotlivé kousky tak, aby první měl poloměr radius, poslední end_radius
a délka trajektorie byla v každém kousku stejná (tj. odpovídající úhel arc se pro proměnný
poloměr také mění, stejně tak střed kružnice)
Výsledkem je výřez ze spirálovité křivky, kde ale každý jednotlivý úsek je stále
„micro zatáčka” s pevným poloměrem.
K dalším drobnostem patří lepší počítání nejbližšího segmentu (chyba se
projevila na okruhu
Aalborg,
kde jsou celkem divoké zatáčky) a řízení s 0.5s predikci, kdy Robocar už
pěkně řeže zatáčky. S lepší regulací plynu se Robocar čas okruhu Espie snížil z 3 minut na
2:28 … ale stejně je stále na posledním místě.
Na poli pyroborace je drobný posun.
Předevnším už si můžete vykreslit trasu a do ní pozice auta nalogované během
závodu. Kreslení je pomocí matplotlib, což je trošku
„monstrum”, ale na kreslení grafů z Pythonu vřele doporučuji.
Merge kreslícího nástroje zatím probíhá
zde, tj. v tuto chvíli v
masteru ještě není. Já se ale zatím naučil spousty užitečných triků:
Další plán byl rozchodit logování přes WinCap, ale
jelikož je komunikace pouze lokální, tak je ještě třeba
Loopback a to už mi přišlo
na „minimalistickou verzi” nějak nezdravě složité :-(. Dočasné řešení je
tedy pouze:
log.write('{} {}\n'.format(absPosX, absPosY))
a drobné rozšíření plot.py.
A nějaké výsledky?! Co mne asi nejvíce překvapilo, jak je trajektorie po třech
(resp. 2.5) kolech opakovatelná:
p.s. tak ještě video (zdroj má 4.7GB, 4806 PNG souborů, konverze pomocí
upraveného
img2video.py).
Je to bez zvuku, i když Speed Dreams zvuk generuje … někdy příště.
Posílám jen informaci o tom, že také zkouším Roborace-Dreams a pyroborace.
Díky tvému blogu na robotika.cz se mi před pár dny podařilo systém zprovoznit
(na Windows 10) a funguje jak ver0.py, tak i demo.py.
Už jsem si s tím i trochu hrál a hrubou silou se mi podařilo dosáhnout času pod
5:30 (v Quick race na trati Espie). Ta hrubá síla spočívala v tom, že jsem do
skriptu pro každou zatáčku zadal maximální rychlost průjezdu a k tomu udělal
jednoduchý regulátor rychlosti. Funguje to docela hezky. Zjistil jsem přitom,
že když nechám jet to auto moc "tvrdě" (prudké přidávání plynu, prudké brzdění
a rychlé průjezdy zatáčkami), tak se "rozbije" ještě před dojetím do cíle
(selže na "damage", zastaví a je odtažen mimo trať). Také jsi to už zjistil?
Každopádně chci v pokusech pokračovat. Mám v plánu dopočítávat vhodnou rychlost
v zatáčkách z parametrů trati (a ne to tam mít zadané natvrdo) a také se chci
pokusit vyhýbat soupeřům (zatím na ně neberu ohled a počítám s tím, že uhnou
oni).
a přiložil i link na video, jako důkaz:
Na titulním snímku je i vidět Best: 01:45.129, takže můj
vánoční milestone už
Aleš dosáhnul!
p.s. u Alešova videa si i můžete pustit zvuk
17. prosince 2016 — Episode 4 (Michelin HQ)
Testování na okruhu Michelinu
13. leden 2017 — Nvidia Autopilot
Tomáš S. mi poslal na první pohled nevinný linkhttp://kevinhughes.ca/blog/tensor-kart s komentářem: „Pěkný článek, umělá
inteligence pro Mario Kart pomocí Tensor Flow.” Nemusíte se bát na něj
kliknout, jen varování, že přes pár odkazů se dostanete ke zdrojákům a datasetu
Nvidia
Autopilota! Ten původní článek se snaží ovládat počítačovou hru
Mario Kart s využitím neuronových sítí a
Tensor Flow frameworku.
Autor ve svém blogu zmiňuje, že Later, I switched to use Nvidia’s Autopilot
developed specifically for self-driving vehicles. Cože?! Má tam odkaz na
github
Autopilot-TensorFlow, který implementuje nápady z Nvidia článku
(pdf). Aby toho nebylo úplně málo, tak
dává k dispozici i
2.2GB
dataset, kde naleznete 45405 JPEG obrázků a soubor data.txt obsahující
referenční úhel pro zatáčení. Nevím, zda úplně přesně implementoval, co bylo v
článku. Tam je to 1/r, kde r je poloměr otáčení se znaménkem a rovné
jízdě odpovídá hodnota 0.
obrázek 10070.jpg z datasetu
Nvidia pro učení použila stejný trik jako dříve švýcarská skupinka s učením
drony (viz starší video od
Cogito) — 3 kamery. Dopředná se učí kam má auto/drona jet/letět a levá a
pravá jsou reference, pro které je třeba nějaká korekce. Nvidia ještě navíc
generovala umělé pohledy s posunem z kombinace více snímků, ale základní
myšlenka je stejná. Po naučení stačí už jen jedna (prostřední) kamera pro
navigaci. Požadovaná reakce je sbírána ze senzoru na volantu auta.
Jestli vás to alespoň trošku vyvedlo z míry jako mne , tak toto cvičení máte
skoro zadarmo. Je třeba si
nainstalovat
TensorFlow, k tomu ještě numpy, scipy, pillow" a opencv"" (de
facto jsem vše instaloval z http://www.lfd.uci.edu/~gohlke/pythonlibs/ pro
Windows a Python 3.5) a můžete nechat váš počítač zatopit. Pokud nemáte
pořádnou grafickou kartu, tak to holt bude déle trvat, ale … uvidíme.
A proč to zmiňuji v tomto blogu? Nvidia je partner Roborace a řídicí algoritmy
poběží na jejich DRIVE PX-2…
Ještě poznámka k velikosti zdrojového kódu:
model.py
má 88 řádek,
train.py
55 řádek a
run.py,
který z video kamery určuje úhel pro zatočení, má 32 řádek. Nevím jak vás, ale
mne to trošku děsí. Toto je předzvěst konce programátorů.
p.s. Udacity stejný kód použila pro svoji
druhou
lekci
21. leden 2017 — Episode 5
1. únor 2017 — Nvidia DRIVE PX2
Minulý týden jsem se snažil zjistit více informací k plánovanému řídicímu
počítači Nvidia DRIVE PX2.
Nevím, zda je to záměrné, ale je kolem toho docela guláš. Teď myslím sporné
zprávy, že DRIVE PX2 má spotřebu 250W a musí být chlazený vodou vs. informace
na že The new single-processor configuration of DRIVE PX 2 for AutoCruise
functions —which include highway automated driving and HD mapping—consumes just
10 watts of power.
Zajímavá byla i informace, že DRIVE PX2 bude vedle Roborace používat i
Tesla
Motors ve všech svých autech (Model S, Model X a brzy i Model 3). To hned
zvedlo
diskusi
na Tesla Motors Club, jak je možné dodávat počítač v ceně 15000 USD do aut,
která mají stát 35000 USD?
Ono důvodem bude nejspíše více variant platformy, kde ta minimální by měla
být brzy výrazně levnější, se spotřebou 10W, a na druhém konci spektra je
výkoná se zdvojenou GPU i CPU jednotkou. Že se jedná spíše o platformu
naznačuje i článek
ZF
debuts ProAI, a production self-driving system based on Nvidia’s Drive PX
2.
Představení DRIVE PX2 na loňském CESu
Product Specifications: NVIDIA DRIVE PX 2 is powered by the company's newest
system-on-a-chip, featuring a GPU based on the NVIDIA Pascal™ architecture. A
single NVIDIA Parker system-on-chip (SoC) configuration can process inputs from
multiple cameras, plus lidar, radar and ultrasonic sensors. It supports
automotive inputs/outputs, including ethernet, CAN and Flexray.
P.S. ještě bych přidal
link
na video, kde s tím Nvidia teprve začínala a auto, podle očekávání, dělalo
pěkné skopičiny … je to jenom cca 20s předehra, pak už je prezentace, jak
je to dokonalé po trénovaní 3000 mil z března 2016 …
17. únor 2017 — Zítra DevBotí duel v Buenos Aires!
Zítra se v Buenos Aires jede další kolo závodů
FIA Formule E. V Čechách by to měla
vysílat Sport Aréna TV (resp. na Slovensku),
kdy kvalifikace je v sobotu v 15:45:
Buenos Aires Qualifying LIVE 18/02/2017 Saturday 15:45 CET 17:10 CET
Buenos Aires Race LIVE 18/02/2017 Saturday 19:45 CET 21:30 CET
Jestli dobře počítám, tak 20-16 je časový posun jen 4h … hmm, tak to by
Roborace byl snad někde ke shlédnutí mezi 18-19h. No uvidíme. Při nejhorším to
bude určitě další Roborace Epizoda.
Včerejší závod stál za houby, resp. já z něj nic neviděl :-(.
YouTube video stream byl
povolen jenom v británii (The uploader has not made this video available in
your country.) a proxy přes UK mi nefungovala. Veškeré info je tedy pouze z
Roborace Twitteru, konkrétně Devbot 2 while
pushing the boundaries of AI had a racing incident on track, leaving Devbot 1
to win. No drivers were harmed though
Co mne ale včera potěšilo je spekulace o použitých laserových senzorech.
Tipoval bych (95%), že to jsou
IBEO ScaLa senzory.
Uznávám, že vycházím pouze z „podobnosti krabiček”, umístění úchytů a
konektoru a z obrázku z listopadu,
kde pět laserů má rozsah cca slibovaných 145 stupňů.
Foto z autonomoustuff.com
Tento senzor jsem viděl poprvé loni na Dni
chytrých aut. Moc pěkný — skenuje ve čtyřech rovinách, rozlišení 0.25
stupně a záběr zmíněných 145 stupňů. Navíc se jedná o „chytrý” senzor, což
znamená že snímaná data rovnou zpracovává
(viz ibeo-Object-Tracking-3.pdf).
Pro představu přikládám toto veřejné video … možná to místo poznáte …
mám pocit, že jsem tam za rohem roky chodil do školy
25. únor 2017 — Episode 6 - kolize při závodu v Buenos Aires
V šesté epizodě je alespoň malý střípek toho co se minulý víkend v Buenos Aires
stalo: DevBot2 narazil na pravý mantinel, zlomil přední osu a demo závod
byl ukončen.
3. březen 2017 — LEGO?!
Koukal jsem se teď na video s detailními záběry Robocar z Barcelony (viz
Engadget.com)
a zaskočilo mne logo LEGA?! Chvíli jsem hledal a jedno podezření bylo, že
původní název Roborace používalo před mnoha lety LEGO
(IEEE
článek z 2004).
Další nápověda je přímo na
Roborace twitteru z
loňského léta s pěkným komentářem Please tell me the Roborace cars aren't
using Mindstorms. They are really great for kids... not so much racing cars
Licensing: Potentially a big issue as this will need the approval of all the
featured teams, their sponsors, drivers and Formula E themselves. However,
Formula E's support series, Roborace, has already partnered up with Lego Speed
Champions and placed the logo on the Roborace car; this means that a Roborace
set is quite likely to be announced in the future. If the support series with
close ties to FE decides to go for the Lego option, how long until the main
series follows suit? In terms of attracting a younger audience, which is what
both Formula E and Roborace set out to do, it makes perfect sense.
No čím nás ještě Roborace nepřekvapí …
31. březen 2017 — Episode 7 - představení Robocar v Barceloně
p.s. jenom připomínám, že zítra je závod v Mexico City
p.s.2 tak nakonec se Roborace v Mexico City neprezentovala :( … jako důkaz
viz http://roborace.com/
Jinak nic extra nového/zajímavého. Možná za zmínku stoji informace z
tohoto
videa (zdroj
CNN
Money), kde na otázku kolik to auto stojí Denis Sverdlov odpovídá:
How much did it cost you? To me? Yeah. Around 1 million pounds, to make this
car. So a little more than a million dollars.
No mně 31 milionů korun nepřijde „o trošku více” než 25 milionů, ale nechť
… prostě rozflákat by to byla škoda.
19. květen 2017 — Roborace Paris (pátek)
22. květen 2017 — Roborace Paris 2017
… tak toto je vše, co bylo z Roborace v Paříži k vidění. Možná trošku
zklamání, ale když si přečtu Jirkův „věštecký mail”: Mluvis o vstupu do
zakulisi, nebo o sezeni na tribune, kdy kolem dvakrat projede devbot (v
lepsim pripade)?, tak se musím jenom smát. Jak to věděl?! Ale od začátku.
Závody FormulaE se konaly na
Invalides,
což je opravdu v centru Paříže. Po nedávných událostech jsou všude ozbrojenci
a policie. Platí podobné zákazy jako na letišti, lahve s pitím do 500ml, pouze
malé batůžky a pod.
Na místo jsme se Zbyňkem dorazili v pátek okolo 11h, ujasnili si, že v poledne
nás pustí dovnitř (trať a veškerá infrastruktura již byla hotova) a obešli celý
okruh z vnějšku. S nejrůznějšími zátarasy to vyšlo na tu zbývající hodinu.
Invalides je palác s parkem, závody se jely okolo paláce. V parku byly
na jedné straně pity jednotlivých týmů a na druhé pak reklamní stany převážně
výrobců elektrických aut. Centrální trávník byl ohraničen dvěma obrovskými
obrazovkami (eVillage).
Obešli jsme cca 90% a o Roborace ani zmínka. Info stánky vůbec netušily o čem
mluvíme (a to nebylo jen z důvodu anglo-francouzského komunikačního problému) a
tak jsem začal propadat depresi. Čekal jsem ledacos, ale že by Roborace do
Paříže vůbec nedorazila (jak do Mexika), tak na to jsem psychicky připravený
nebyl. Pak jsem ale zahlédl zadek auta na stánku pojišťovny Allianz a … to
musí být Robocar! Byl, jenom nějak divně pomalovaný. Klučina, co měl
dávat návštěvníkům informace, věděl jenom že to jezdí samo a víc nic. Ale
šéfová stánku mluvila dobře anglicky a nasměrovala nás zpět na začátek s tím, že
Roborace pit je hned první stánek a že jsme ho nemohli minout …
A stánek tam byl, jenom byl zavřený a za plotem a nikde nikdo. První osoby,
kterou jsme viděli, jsme se ptali na Vadima, což byl jediný člověk z Roborace,
co s námi občas komunikoval. A byl tam … ale moc nadšený nebyl a ukázalo se,
že po Paříži s Roborace končí. Super, tím se počet kontaktů snížil na nula.
A tak jsme čekali dál za plotem a civěli na stánek Roborace. Po nějakém čase
odtáhli pravou polovinu a hle DevBot1 a vedle DevBot3! Vida, tak alespoň něco
nového. DevBot2 tu kolizi v Buenos Aires asi nerozdýchal. :-(
O něco později jsme viděli DevBot1 na okruhu. Při druhé jízdě narazil. Podle
všeho ale nebyl v autonomním módu a byla to chyba testovacího pilota.
Milé překvapení nastalo okolo 18:30 — otevřeli vstup všem do pitů. Zamířili
jsme rovnou k Roborace, kde tentokrát pootevřeli i levou polovinu stanu. A tam
byla „žlutá kára”, která mi byla daleko více povědomá než ta červená u
Allianz. Bavili jsme se i s vývojáři a dozvěděli se, že jedna z věcí, co je
trápí, je nízký framerate laserů (pouze 25Hz) a že ochranné sklo moc nevydrží.
Dozvěděli jsme se i časy sobotního dema: ráno test v 8:55 a odpoledne v 14:00
A co sobota? Na okruh vyrazila žlutá robokára, ale na přechodech zastavovala a
dávala asi přednost virtuálním chodcům. Chápu, že jí tvůrci nechtěli rozbít už
při první příležitosti, ale … alespoň se to hýbe a není to jenom pěkná maketa.
Uvidíme, jak to bude dál, ale do Berlína 10. června 2017 nejspíše
nepojedeme …
P.P.S.S. 24/5 Roborace vydalo svoji verzi (zatím to není ani Epizoda)
15. červen 2017 — Berlín - amatérské video
Roborace se svým výsledkem prezentace v Berlíně příliš nechlubí a tak očekávám,
že měli podobné problémy jako v Paříži. Na dráhu vyjel DevBot, i když podle
původních náznaků se měly předvézt obě Robocar formule (žlutá a červená). Tak
alespoň amatérské záběry dostupné na YouTube:
Test DevBotu — dvě kola rychlostí 100km/h, čtyři kola rychlostí 150km/h a
jelikož vše bylo OK tak zvýšili na 200km/h … ale jak to bylo doopravdy nevím.
11. červenec 2017 — Berlín z pohledu DevBota
Pravděpodobně po stížnosti fanoušků Roborace zveřejnila záznam z DevBota na
okruhu v Berlíně. Je to zase pouze dvouminutové video z jednoho okruhu, ale
stále to více vystihuje realitu, než střípky v
Epizodě 8.
24. červenec 2017 — New York a nespokojenost fanoušků
Na komentáře na YouTube jsem dosud moc nekoukal, ale tady mne až zaskočilo jak
byly všechny negativní — holt po tom roce už fanouškům pomalu dochází
trpělivost … a trošku je chápu …
p.s. teď jsem našel v komentářích tuto poznámku:
I thought your YouTube series was going to be a documentary? Like in the
first episode you talk about the struggles, not sweep them under the rug. For
those that don't know the devbot actually clipped the side of a barrier during
it's autonomous lap. No major damage but still. It would have been great to see
why that happened in this video.
2. srpen 2017 — DevBots v Montreálu
Kanada byla poslední Roborace „štace” v Formula E sezóně 2016-2017.
Na webu jsem zatím našel jen tento neoficiální záznam jízdy jednoho z DevBotů:
a chtěl jsem nepěkně komentovat to, že vedle „leštičů” mají i šikovné
„lakýrníky”, kteří snadno a rychle přemalují DevBota jako chameleón:
Just wanted to tell you, I was in Montréal today and watched the formula e
race. I saw also the roborace dev cars and they actually worked and drove
smoothly even without driver! Sadly they did not highlight the robocars very
much but it was cool.
+
There were two devbots but not simultaneously on the track, not competing at
least. But it was cool to see them drive, even just a bit.