Space Robotics Challenge
NASA challenge, Phase 2
NASA vyhlásila pokračování soutěže Space Robotics Challenge, která probíhá v simulovaném prostředí Gazebo/ROS. Cílem SRC2 je realizovat plně autonomně dlouhodobou ISRU (in-situ resource utilization) misi na Měsíci. Cílem skupinky robotů je lokalizovat důležité minerály, sbírat je a neztratit se v neznámém prostředí. Update: 17/1/2020 — Robotika vítězí v kvalifikačním kole NASA Space Robotics Challenge
Blog / Přehled
- 191017 - NASA Webinář
- 200118 - Informace o robotech
- 200305 - NASA Webinář 2
- 200317 - Kvalifikační kolo začalo
- 200325 - První data z Měsíce
- 200401 - První ujetý metr
- 200406 - Zatáčení
- 200408 - Našli jsme poklad!
- 200412 - ROS Python vs. ROS C++
- 200418 - Nuda na Měsíci
- 200420 - Úloha číslo 3 a barevné fleky
- 200425 - První body a první rvačka ...
- 200501 - Verze 0, 4 body, proměnné světy
- 200503 - 5 bodů v úloze číslo 3
- 200613 - Měsíc po měsíci
- 200615 - The threshold score is 86
- 200618 - Arabské tržiště
- 200714 - Seed, Bulk and Rock
- 200825 - Shutdown for Hurricanes
- 200913 - NASA update a R2 video
- 200919 - 15+ Qualification Submissions
- 201213 - NASA leak
- 201225 - A Holiday Gift from Us to You
- 210117 - Robotika vítězí v kvalifikačním kole NASA Space Robotics Challenge
Soutěžící mají za úkol vyvinout software, který si poradí s úlohami v
simulovaném prostředí na měsíčním povrchu. Dostanou k dispozici Gazebo
simulátor pro vývoj a testování a ROS API pro komunikaci mezi roboty ve
virtualním robotickém týmu.
Pro úspěšné bodování v kvalifikačním kole je třeba splnit všechny 3 úlohy na
vlastním domácím počítači. Průběžné výsledky bude možné po celou dobu
kvalifikace nahrávat na dedikovanou webovou stránku.
Seznam hledaných zdrojů
- Water Ice (H2O)
- Hydrogen (H2)
- Carbon Dioxide (CO2)
- Carbon Monoxide (CO)
- Ammonia (NH3)
- Hydrogen Sulfite (H2S)
- Ethene/Ethylene (C2H4)
- Methane (CH4)
Úloha 1 - lokalizace zdrojů (Task 1: Resource localization)
První úloha je vyhledat zdroje v daném prostoru měsíčního povrchu. Objekty se
mohou nacházet jak na povrchu, tak pod povrchem. Úkolem je určit polohu co
nejvíce objektů s přesností +/- 2 metry vůči startovní pozici robota.
K dispozici budou senzory pro vnímaní, detekci a identifikaci zdrojů. Časově
bude tato úloha omezena na 45 simulovaných minut.
Úloha 2 - sběr vzorků (Task 2: Resource collection)
V této úloze půjde o sběr již lokalizovaných objektů.
Úloha 3 - určení vlastní polohy (Task 3: Self-localization)
V poslední úloze má robot za úkol se lokalizovat vůči známé pozici zadaných
objektů. 5 bodů bude za určení relativní pozice objektů, 5 za návrat na
základnu a 3 za správnou orientaci robota.
17. října 2019 — NASA Webinář
Včerejší „webinář” moc nepřekvapil — v zásadě šlo o zopakování seznamu
organizátorů a sponzorů, rychlý přehled pravidel a zdůraznění, že Číňané se za
žádných okolností (stejně tak ještě některé další národnosti) nesmí zúčastnit.
Asi tuší, že by vyhráli.
Asi jedině překvapení bylo, že každý člen týmu musí být pojištěn na $100000 na
období soutěže, resp. kvalifikačního kola. Na dotazy, co budou mít roboti za
senzory a pod odpovídali: „to se dozvíte až v lednu až se přihlásíte a pošleme
vám balík se simulátorem.”
Udělal jsem alespoň pár motivačních snímků, ale pro detaily bych odkázal na
anglická
pravidla.
p.s. možná ještě poznámka na kvalitu simulace … prý nebude tak dobrá jako u
Space
Robot Challenge Phase1 a že hlavně půjde o spolupráci více robotů …
18. ledna 2020 — Informace o robotech
Utekly tři měsíce (hrůza jak to utíká), kdy registrace byla uzavřena 20. prosince
2019. Předpokládám, že jsme se úspěšně registrovali, jelikož včera přišel mail
Access to the Space Center Houston / srcp2-competitors project was granted.
Jediný problém je, že vám o tom zatím nesmím skoro nic říci resp. nevím,
co mohu a co je „top secret”. NASA zatím postupuje podle plánu popsaného v
revidovaných pravidlech
SRCPhase2_Official_Rules_rev_01.2020.pdf.
Zde najdete informaci: January 15, 2020 --- Packet of Robot Information
Delivered to Competitors, tj. NASA již tento bod splnila. Další deadline je
March 16, 2020 --- Qualification Round Opens, kdy asi vydají oficiálně ROS
simulátor (ten momentálně k dispozici zatím není, resp. jsem ho nikde
nenašel).
Jak již bylo řečeno minule případně na
webináři bude se jednat o spolupráci
více robotů. Vozítka jsou tří druhů a trošku připomínají Spider3:
Vozítka jsou pro hledání minerálů, jejich naložení, případně dokonce vykopání,
a transport materiálu na základnu.
Koukám, že
oficiální
stránka s dokumentací (veřejná) obsahuje i
FAQ
(často kladené dotazy), kde píšou:
- Q: Regarding "Task 2: Resource collection": Will the robotic excavator be equipped with a resource sensor, as is the prospecting robot? To perform sensing in permanently shadowed regions, is the excavator equipped with a light or LIDAR?
- A: Only prospecting robot will have resource sensor. All robot model will be equipped with a light source, LIDAR and depth camera
Tak to vám asi prozradit můžu … tj. průzkumný robot má senzor na detekci a
jinak všichni roboti mají světlo, LIDAR (2D) a kameru. Měl jsem za to, že je
obyčejná, ale v této odpovědi tvrdí, že je hloubková (RGBD) … neuvěřím,
dokud neuvidím první data. Aha, už to vidím ... this is preliminary robot
information and they are subject to change without notice, takže nakonec to
bude možná úplně jinak, ideálně jako byla oficiální odpověd.
- Q: In the qualifiers, is the sensor suite specified by each team, or is it generic and the same for all teams?
- A: Same for all teams.
… tj. všichni budou mít stejnou sadu senzorů.
- Q: We'd like to know if we'll have to handle a handful of robots (3-5), or we need to prepare for a fleet of 10-20 robots.
- A: Handful of robots.
… no že roboti budou alespoň tři je jasné už teď, ale kolik jich bude celkem
moc jasné není. Je i možné, že počet robotů bude proměnný.
- Q: What kind of capabilities need to be developed to identify the regolith? Do we need a computer vision expert, or will the robots have some sensor that gives analyzes the environment for us?
- A: Did you meant "volatile"? The simulation will be provided with volatile sensor that detects different types of volatiles.
… prostě průzkumný robot bude mít senzor schopný rozpoznat všechny druhy
minerálů.
- Q: When will the ROS simulation environment be available for download?
- A: Qualification round opens on March 16th 2020.
… už je jasné, proč jsem simulaci nikde nenašel. Pokračování v
březnu 2020.
p.s. v pravidlech vidím u popisu kvalifikačních kol:
- Competitors will be provided with a prospecting robot equipped with sensors that allow for autonomous perception, as well as resource detection and identification.
- Competitors will be provided with a robotic excavator and multiple robotic haulers that are equipped with sensors that allow for autonomous perception.
… prostě informace, že se v simulátoru budou používat 3 druhy robotů je oficiální.
p.s.2
Date: Sat, Jan 25, 2020, 01:48 Subject: SRC2 - Insurance Approved
This email is official acknowledgement that your insurance has been reviewed
and accepted by Space Center Houston and thus your team is officially accepted
into the Qualification Round.
Congratulations! Regards, The SRC2 Team
5. března 2020 — NASA Webinář 2
Včera byl již druhý NASA webinář. V první části organizátoři procházeli
instrukce na wiki na GitLabu, kde od 16. března bude ke stažení simulátor a
testovací světy. Druhá část se pak věnovala dotazům.
Za nás bych řekl několik pozitivních zpráv:
- je možné o SRC2 blogovat a publikovat screenshoty
- je podporováno nahrávání a publikování videí zajímavých simulací
- kód může být Open Source včetně soutěžního kódu a je to náš problém, pokud by ho použili soupeři
Co mne trošku zklamalo byl fakt, že rover byl pouze inspirován reálným
vozítkem a odpovídající platforma tedy v reálu neexistuje.
Pro zajímavost, NASA má v plánu pravidelné týdenní updates a stejně tak plánuje
„dávkově” reagovat na dotazy a reporty chyb.
p.s. ještě před seminářem jsem si pročítal pravidla a zaujala mne věta: BHP
is a resources company based in Melbourne, Australia ... (an mining company).
… prostě někoho zajímá autonomní dolování natolik, aby soutěž sponzoroval.
17. března 2020 — Kvalifikační kolo začalo
Včera večer začalo kvalifikační kolo, které končí až někdy v srpnu 2020,
tj. relativně dost času. Vzhledem k situaci je to možná dobré téma jak trávit
večery. … jediný problém je, že už README začíná Unauthorized
Distribution Strictly Prohibited, takže to budou jenom drobné střípky. :-(
Nemám u sebe stroj, kde bych simulaci mohl snadno pustit (Ubuntu s NVidia GPU)
a pro vzdálený přístup to nemám úplně připravené. Franta to doma ale již
rozchodil a přislíbil nějaké screenshoty (ty podle posledního webináře povolené
jsou). Založil jsem tedy i první Issue (#44) a to jestli jde obejít stisk
„Play” tlačítka v simulačním okně. Píšu, že času je dost, ale termín je
zhruba stejný jako DARPA Cave Circuit, takže
čím dříve kvalifikaci sfoukneme, tím lépe.
Ptáte se, co bude první krok? samozřejmě Go 1 meter! aneb
Robotem Rovně (asi další z akcí, která letos
nebude). Očekávám pád do kráteru nebo náraz na hranici světa … a ano, je
třeba z toho natočit video a to zde pak zveřejnit. (nechápu, kde teď beru tu
dobrou náladu, ale možná je to tím, že zrovna nekoukám na zprávy...)
25. března 2020 — První data z Měsíce
No asi to nikoho extra nenadchne, ale toto je první RGB obrázek z
scout_1:
Trošku mne mrzí, že jsem měl
před dvěma měsíci pravdu:
... neuvěřím, dokud neuvidím první data., takže to opravdu budou pouze RGB
data a nikoliv hloubková data: They are supposed to be RGB. They are stereo
cameras, so you can use this to compute depth-from-stereo if you wish
Jinak s pořádnou GPU kartou ty obrázky budou asi hezčí (já byl vděčný za CPU
verzi dokud No GUI automaticky nepouští simulaci … known bug).
A tady je ještě pohled z lidarview:
Laser scan má rozsah záběr +/- 75 stupňů s rozlišením 1.5 stupně (tj. 100
měření). Dosah zatím nevím, ale ten „šutr” vpředu je zhruba v 15 metrech.
1. dubna 2020 — První ujetý metr
No není to žádný velký odvaz, ale rover scout_1 se konečně pohnul z místa a
ujel slibovaný metr (viz video). Ono to
vypadá, že tam není žádný watchdog, tj. když přestaneme posílat příkazy,
tak jede dál podle posledního …
Jinak řízení je pomocí třinácti kloubů, u kterých se nastavuje točivý
moment (torque) v Nm. 10Nm bylo málo, ale pro 100Nm to už jelo jak vidíte.
Na druhou stranu těchto 13 kloubů má
JointState,
který obsahuje vedle jména, pozice a rychlosti i effort … tak možná půjde
poznat, že se rover zrovna pere s překážkou.
Ještě přidám jedno mini-video, kde je hezky vidět jak kamera „šumí” a
robotovi se podaří asi mírným couváním udělat kotrmelec do kráteru.
p.s. přidal jsem ještě do playlitu video od
Franty nahrané přímo z GUI Gazeba … přeci jenom člověk získá lepší
představu, jak to okolí vypadá (mimochodem, počáteční pozice robota je pokaždé
náhodná).
6. dubna 2020 — Zatáčení
Organizátorům se podařil pěkný bug, který už je ale teď možná odstraněn —
obě kamery jsou otočené o 90 stupňů vlevo a tak máme pěkné záběry levého kola:
V posledním release už jsou k dispozici kompresované JPEG obrázky, takže
něco s čím si náš OSGAR lépe rozumí a umí snadno vygenerovat
video ze dvou kamer.
Zároveň to beru jako jasný důkaz, že už zatáčíme. Ale pokud rover náhodný
generátor umístí do kráteru, tak jsou překážky všude kolem a robot trošku
propadá klaustrofobii …
8. dubna 2020 — Našli jsme poklad!
Přiznám se, že včera jsem měl zase „slabší chvilku”. Proč? No řešil jsem proč
mi nechodí měření z detektoru minerálů:
root@gpu-desktop:/osgar# rostopic echo /scout_1/volatile_sensor WARNING: no messages received and simulated time is active. Is /clock being published?
A pak mi došlo, že možná to posílá data pouze v přítomnosti minerálů(!) (což
mi následně potvrdili organizátoři i jeden další tým). No super … takže abych
ověřil, že mi funguje dobře zpracování dat ze senzoru, tak nejprve musím nějaký
vzorek nalézt.
Ale ono to má více rovin (viz Pohádka o slepičce a kohoutkovi ). Protože
pokud chcete zkusit report nalezeného pokladu, tak:
root@gpu-desktop:/# rosservice call /vol_detected_service "pose: > x: 60.0 > y: -7.0 > z: 0.0 > vol_type: 'ethene'" ERROR: service [/vol_detected_service] responded with an error:
… jo ten error je prázdný.
Tentokrát jsem si prošel většinu z 100 issues této soutěže na gitlabu a Chris
(také soutěží v SubT) se tam ptal na podobnou věc …
volatile/poklad/minerál lze reportovat pouze pokud je robot v jeho
blízkosti a detekoval ho jeho senzor. A aby to nebylo moc jednoduché, tak pro
každý běh je startovní pozice robota náhodná a mám pocit, že i rozložení
pokladů je pokaždé jiné. Prostě jedna velká radost …
Tak k tomu dnešnímu titulku — poklad vypadá takto:
root@gpu-desktop:/osgar# python3 -m osgar.logger /scout1-200408_100943.log 0 sys 6527 | 25 | 0.3Hz 1 app.desired_speed 3817 | 439 | 5.0Hz 2 app.artf_xyz 0 | 0 | 0.0Hz 3 app.artf_cmd 0 | 0 | 0.0Hz 4 app.pose2d 4343 | 658 | 7.5Hz 5 app.pose3d 0 | 0 | 0.0Hz 6 app.request_origin 0 | 0 | 0.0Hz 7 transmitter.raw 0 | 0 | 0.0Hz 8 receiver.raw 34957762 | 20990 | 238.3Hz 9 rosmsg.rot 79492 | 8528 | 96.8Hz 10 rosmsg.acc 79949 | 8528 | 96.8Hz 11 rosmsg.scan 134207 | 439 | 5.0Hz 12 rosmsg.image 0 | 0 | 0.0Hz 13 rosmsg.pose2d 3944 | 658 | 7.5Hz 14 rosmsg.sim_time_sec 0 | 0 | 0.0Hz 15 rosmsg.cmd 17864 | 659 | 7.5Hz 16 rosmsg.origin 0 | 0 | 0.0Hz 17 rosmsg.gas_detected 0 | 0 | 0.0Hz 18 rosmsg.depth 0 | 0 | 0.0Hz 19 rosmsg.t265_rot 0 | 0 | 0.0Hz 20 rosmsg./qual_1_score 26334 | 8778 | 99.6Hz 21 rosmsg./scout_1/volatile_sensor 398 | 398 | 4.5Hz 22 rosmsg./scout_1/camera/left/image_raw/compressed 17606034 | 875 | 9.9Hz 23 rosmsg./scout_1/camera/right/image_raw/compressed 17228123 | 874 | 9.9Hz Total time 0:01:28.095461
Vlastně dost pochybuji, že by to ocenil ještě někdo jiný než já , ale
klíčový řádek s nenulovýma hodnotama je: rosmsg./scout_1/volatile_sensor
398 | 398 | 4.5Hz. Ona radost mne asi rychle přejde, protože 398 zpráv
mělo dohromady 398 bajtů, což bude None … ale snad to půjde extrahovat z
nahraných receiver.raw.
OK, tak je to methanol:
('methanol', 1.9950698614120483) ('methanol', 1.986070156097412) … ('methanol', 0.688122034072876) … ('methanol', 1.9825676679611206) ('methanol', 1.9922877550125122)
… tj. v okamžiku vzdálenosti menší než 2 metry od volatile se dozvíme
vzdálenost a typ. Jinak na kameře není vidět vůbec nic, takže ten methanol
je pod povrchem.
p.s. poslední týden byl opravdu pěkný pohled na reálný Měsíc
12. dubna 2020 — ROS Python vs. ROS C++
Tuto zprávičku jsem chtěl zapsat už během naší pravidelné středeční
telekonference … ale nestalo se tak. Rozhodně si však zaslouží být
„zaprotokolována” a spadá do přihrádky proč nemám rád ROS.
NASA Space Robotics Challenge se
liší od DARPA Subterannean Challenge tím, že
pro komunikaci s ROS simulátorem lze přímo použít rospy, tedy Pythonovské
rozhraní. DARPA tam má navíc binární knihovny, které je třeba přilinkovat a to
už je celé snazší udělat v malém C++ wrapperu. V obou soutěžích používáme
stejnou strategii: OSGAR běží v Python3 a tak přes ZeroMQ komunikujeme buď
s Python2 (NASA podporuje pouze starší Ubuntu 18.x) nebo C++. Vše je ještě
takové neusazené a na simulátoru se stále pracuje, ale následující výpisy mne
rozhodně vyděsily:
double free or corruption (out) … Assertion failed: check () (src/msg.cpp:347)
Původně jsem si myslel, že je to rospy, resp. ROS hláška, ale po hledání na
Google vyskočilo ZeroMQ pokud se používá z více vláken?! Jak je to možné,
vždyť tam máme jenom jedno hlavní?? Odpověď je možná horší, než by programátor
čekal: implementace stejného API je v Pythonu a C++ zásadně odlišná!!!. Teď
už chápu, proč některé příklady v jednom jazyce nefungují v jiném. Je to jak
když dáte dětem na hraní zápalky … na tady máš vlákna a užij si to!
V C++ je dost zásadní volat spin() nebo spinOnce(). Kupodivu
spinOnce() (odbav jednu zprávu) v Pythonu vůbec není a teď konečně chápeme
proč … ona totiž implementace spin() v Pythonu vůbec nic nedělá — je to
pouze hodně složitý sleep na několik řádek. Sigh. Zkrátím to: pokud v
Pythonu si vyžádáte čtení nového topicu (rospy.Subscriber()), tak
pro každý subscriber vznikne nové vlákno. Pokud toto uděláte v C++, tak
se žádné vlákno nevytváří a nový subscriber se pouze zařadí do fronty.
Pokud v tom velký rozdíl nevidíte, tak ROS je pro vás jak stvořený. Pokud však
používáte oba programovací jazyky, tak berte toto jako varování, že v ROSu
některé základní (programátorské) předpoklady splněné nejsou …
18. dubna 2020 — Nuda na Měsíci
Nečekal bych to, ale už to je skoro nuda, když to „srovnám s výletem na
Kokořín ... co je tady? Prd. Tam byly alespoň stánky” (kdo nezná viz
Dobytí
severního pólu nebo youtube
shot). Ono to asi bude i tím, že jsem se zatím moc daleko nedostal a to už
teď byl druhý milestone pro task2 (bagrování), který jsem zatím ještě
ani nezprovoznil. :-(
Tak alespoň malý status report. Zkouším řízení s tím, že měřená rychlost kol je
„nějaká divná” (strašně osciluje). Issue
#110
(private)):
Na všechna kola posílám 80Nm, tj. teoreticky se to muže rozkmitat, ale i
organizátoři to považují spíše za chybu simulace.
Vyřadil jsem LocalPlanner a už zase jezdím jenom rovně, dokud se nějak
nezaseknu a zjišťuji, zda jsem schopen ten stav poznat. Přešel jsem na řízení
jako u kloubáků s pohonem pouze na přední a měření
„odometrie” na pasivních zadních (v závislosti na směru pohybu) … ono je
tam totiž pěkně vidět kolize s monolitem nebo příliš strmý kráter. Pak si
couvnu a smykově zatáčím (zase lenost, není tam třeba nic počítat). A tak
jezdím, bourám, zatáčím, jezdím … a nic extra zajímavého tam není … „na
sever a na jih!”.
Asi jediná vtipnější epizoda byla, když jsem rover převrátil na záda a přišlo
mi, že kamera s laserem je stále nějak stabilizovaná a po převrácení, že má
divný úhel. Na to jeden z vývojářů odpověděl: if you flip the rover, all bets
are off. In reality, US Congress would then want to know why you've totaled
their shiny, multi-million dollar robot, assuming the Ames and JPL teams don't
get you first!
No nevím, zda to tu můžu zveřejňovat, ale myslím, že je to výstižné!
20. dubna 2020 — Úloha číslo 3 a barevné fleky
Už asi tuším co je na tom Měsíci tak fádní … ta šedivá „barva”!
Přeskočil jsem teď na úlohu číslo 3, kdy je třeba přesně (tolerance 5 metrů)
lokalizovat satelit:
Jedná se o žlutý krychlový satelit
CubSat …
jenom ta velikost mi nějak nesedí :-( … rozhodně to není 10 cm x 10 cm x 10
cm, ale při druhém přečtení toto je pouze unit a The cube-shaped
satellites are spacecraft size in units or U’s, typically up to 12 U, kde
krychle o straně 1.2m už by pravda být mohla. V každém případě visí někde mezi
5 až 25 metrů nad povrchem.
Po určení polohy satelitu (za 5 bodů) je třeba dojet na základnu (Processing
Plant), ohlásit se do vzdálenosti 5 metrů od vchodu (zase 5 bodů) a konečně
se zarovnat na značku s přesnosti do 10 stupňů (3 body).
Včera Franta natočil externí video (no jo no, je to normální uživatel, který má
GUI) a člověk si pak udělá o tom povrchu Měsíce lepší představu:
p.s. no nečekal bych, že se mi po tom černobílém světe bude ještě stýskat!
a ani nekomentuji, že JPEG se mi jinak rozbaluje v ROS Linuxovém dockeru a
Win7, tj. nesedí mi „počty žlutých pixelů”
p.s.2 tak jo, ještě jedno vtipné video
robotického tělocviku (jak to celé stojí za houby, tak toto mi zase
vrátilo chuť pokračovat … plus mail od NASA, že našli důvod resetu
kontrolleru, ale oscilace stále zkoumají)
25. dubna 2020 — První body a první rvačka …
Není nad tým! Koukal jsem, kam jsem to
robotické desatero psal a na
Field Robot 2012 bych to rozhodně nehledal.
Ale Ctrl+F fungovalo
Zpět k tématu … nějak to na mne padlo (neschopnost získat po více jak měsíci
snažení na Měsíci jediný bod) a v tomto okamžiku to převzal Franta. A výsledek?
Requesting true pose Volatile detection, getting closer: 1.935847 origin scout_1 43.153003 33.652192 0.129002 -0.172170 -0.117561 -0.419139 -0.883662 Origin received, internal position updated Loc: 2.283263 -0.596569 -0.111458; Score: 0 Volatile detection, getting closer: 0.885438 … Volatile detection, getting closer: 0.873248 Volatile detection, starting to go further, reporting 44.673080 33.116856 Reporting artefact carbon_dio at position 44.670000 33.120000 0.000000 Volatile report result: True Loc: 4.313170 -1.963797 -0.193626; Score: 2 Loc: 6.051630 -3.997004 -0.260722; Score: 2
Z tohoto pohledu Verze 0 pro úlohu 1 je hotová!. Byla tam ještě zrada, že
aby rover mohl bodovat, tak střed robota musel být do vzdálenosti 2 metrů
od volatile. Ten byl ale detekován senzorem, který je umístěn vpředu od
robota, tj. když došlo k první detekci na hranici 2m, tak střed robota byl
typicky ještě dál než požadovaná hranice.
Řešení, co Franta nakonec použil, je vyžádat si jednorázově informaci o pozici
robota v globální soustavě souřadné, ale reportovat detekovaný volatile až
při dosažení minimální vzdálenosti. Pozice z první detekce byla navíc
korigovaná a ten zhruba ujetý metr z dat z odometrie.
A než jsem se nadál, tak se Franta pustil do úlohy číslo 2, kde mají dva roboti
spolupracovat. Robotický bagr (Excavator) má nabrat horninu v blízkosti
získané pozice volatile a vysypat jí do robotického náklaďáku (Houler). Po
dosažení kritické hmotnosti tým získá bod.
Na rozdíl třeba od SubT je zde možné řídit
všechny roboty z jednoho programu, aneb na problémy komunikace mezi roboty se
tady nehraje. Pro první kolo to Franta ale na mé přání stejně udělal
„postaru”, tj. pouští se dva nezávislé programy (navíc každý s vlastní ROS
proxy) a zbytek uvidíme. A už jedna z prvních jízd byla celkem ke koukání:
Mě to přišlo, jako když se ti roboti perou, ale PavelS to komentoval slovy: Mě
se spíše zdálo, že se pokoušejí o rozmnožování
Asi poznámka na okraj, že v soutěži samotné robotů bude daleko více, tj.
„rozmnoží se”…
1. května 2020 — Verze 0, 4 body, proměnné světy
OK, tak verze 0, kdy rover jezdí náhodně a při první detekci se zeptá na
skutečnou pozici (tuto možnost má pouze jednou) a reportuje pozici při
nejbližším průjezdu, už je v
masteru.
Při posledním testu jsem ho nechal jezdit 40 minut (reálného času a po pravdě
nevím, kolik to bylo simulovaného času — v pravidlech je Time constraint:
45 simulation minutes for this task) a dokonce dal celkem 4 body, tj.
podařilo se mu dostatečně dlouho držet platnou absolutní pozici. Jezdíme na
4WD, tj. klouže to a odometrie je nedostatečná, ale pro jednou to vyšlo.
… 0:14:27.685843 Volatile 7 detection at 0.185m, reporting 58.066348 -56.896968 0:14:30.666018 Loc: 55.43 -56.83 0.17; Score: [2, 1] 66.37 -76.02 1.89 … 0:14:46.584770 Volatile 25 detection at 2.000m, reporting 57.488306 -47.546196 0:14:50.676024 Loc: 57.94 -47.15 0.08; Score: [2, 1] 68.89 -66.33 1.80 0:14:57.949699 Volatile 1 detection at 1.867m, reporting 58.432105 -46.585204 0:15:00.679811 Loc: 58.58 -46.39 0.33; Score: [2, 2] 69.53 -65.57 2.05 … 0:15:24.390609 Volatile 25 detection at 1.748m, reporting 59.121294 -45.884399 0:15:24.451381 Volatile 1 detection at 1.749m, reporting 59.115627 -45.907418 0:15:30.693607 Loc: 59.06 -47.97 0.29; Score: [4, 3] 70.01 -67.15 2.01 0:15:40.697581 Loc: 59.94 -48.54 0.28; Score: [4, 3] 70.89 -67.72 2.00 … 0:29:38.361666 Volatile 0 detection at 1.717m, reporting 64.249616 18.268521 0:29:41.184570 Loc: 64.81 19.94 1.57; Score: [4, 3] 75.76 0.76 3.30 … 0:41:21.512480 Loc: 30.38 24.95 4.06; Score: [4, 3] 41.33 5.76 5.78 maximum delay: 0:00:00.003831
Tak tady potkal čtyři „poklady” s indexy 7, 25, 1 a 0. První skoro krásně
přejel (18cm od středu), ostatní měl na hranici detekce dvou metrů.
Poznámka, že jenom kouká jestli něco neleží na cestě a k artefaktu aktivně
nezajíždí, zatím.
Ještě vás možná pobaví skutečnost, že rover jede rovně (100m s timeoutem 2
minuty), při nárazu si couvne, otočí se náhodně o 90 až 180 stupňů na místě a zase jede
rovně. Ale ty křivky úplně nevypadají rovné, není-liž pravda?! No to je
tím, že jezdíme v 3D terénu a není zde žádná regulace na směr z IMU … prostě
v kráteru to klidně bude jezdit dokolečka.
Ještě bych přidal „důkazový materiál” od Franty, že pozice „šutrů” se mezi
jednotlivými simulacemi mění:
… skoro je to hra „najděte pět rozdílů”
cbd (což bylo dokázati)
3. květen 2020 — 5 bodů v úloze číslo 3
Včera psal Franta: Teda nechci se nějak vytahovat
Loc: [-21.366298 22.239406 -0.522004] [-0.002443 -0.028798 1.969255]; Score: 0 Starting to track cubesat Someone else is driving True 1100 1101 Loc: [-17.641294 29.011444 -0.891152] [-3.119078 0.000175 1.038995]; Score: 0 1200 1201 Loc: [-12.882595 37.612236 -0.894276] [0.018675 -0.048695 1.081231]; Score: 0 Someone else is driving False Requesting true pose origin scout_1 3.415957 -7.723545 0.907761 0.014314 -0.028405 0.523845 0.851219 Origin received, internal position updated Calculated angles roll=-0.005402, pitch=-0.063397, yaw=1.103511 Set camera angle to: 0.780000 1300 1301 Final frame x=234 y=227 w=45 h=45 Using pose: xyz=[3.415957 -7.723545 0.907761] orientation=[-0.005402 -0.063397 1.103511] In combination with view angle 1.380944 0.809511 and distance 23.000000 Object offset calculated at: [2.994253 15.581522 16.650844] Reporting estimated object location at: [6.410210,7.857977,17.558605] Reporting artefact cubesat at position 6.410000 7.860000 17.560000 result: True Loc: [3.457205 -7.635774 0.919047] [0.001396 0.153764 1.078963]; Score: 5 0:01:32.597836 turn - timeout at -63.9deg 1400 1401 0:01:34.662325 stop at 0:00:02.064489 Sleep and finish
Ptal jsem se, co se skrývá za Someone else is driving a jedná se přepínání
režimu náhodné procházky a navigaci směrem na detekovaný artefakt.
Je to prý opakovatelné, tak si to zkusím pustit také.
p.s. víte, že mají na Měsíci kanalizaci? Po dnešní projížďce na kole jsem už
pochopil, co mi ty volatiles nejvíce připomínají … poklopy u kanálů!
13. červen 2020 — Měsíc po měsíci
… na rovinu ono je to už měsíc a deset dní, co jsem psal poslední report a je
tam jistá korelace s tím, že projekt Moon systematicky posouval Franta sám
…
10. května 2020 — Já jsem hotov, co děláš ty? … tak toto poslal s
přiloženým obrázkem:
Tj. po lokalizaci a úspěšném reportování pozice satelitu se robot vrátil na
základu, oznámil, že je doma (dalších 5 bodů) a pak vyhledal basemarker s
logem soutěže, upravil orientaci roveru a reportoval konec (poslední 3 body).
Celkem tedy 13 bodů, což je i maximum v této úloze.
Pak jsme trošku řešili infrastrukturu pro request/response požadavky. Ono
totiž poměrně hodně věcí je ve Space Robotics Challenge Phase 2 řešeno
pomocí ROS Services: reporty, šlápnutí na brzdu, změna náklonu laseru s
kamerou, dotaz na globální souřadnici robota (je možné se zeptat nejvýše
jednou) a pod. No je to ještě na TODO listu … testovali jsme asi už tři
verze, ale stále to není „to ono” (za mne, tj. jsem navíc brzda :-(
2. června 2020 — 13 bodů za 30 sekund … aneb Franta posunul
spolehlivost detekce modrého trojúhelníka a pak už je to na mne „skoro moc
rychlé”
11. června 2020 — R2 bod, Máš tam logy od prvního bodu v R2, ale byl to
boj. Nakládalo to jeden volatile asi 6 minut (čím jsi dále od středu, tím toho
nabereš míň a musíš to vícekrát opakovat).
Ona druhá úloha je možná nejtěžší, protože vyžaduje kooperaci dvou robotu. Bagr
(excavator) musí bagrovat dostatečně blízko pozice „naleziště” a pak
obsah lžíce vysypat na korbu náklaďáku (hauler) a to opakovat dokud
nenasbírá požadované množství. Viz video kopání
a nakládání.
Skyline Lokalizace
Jedna z klíčových dovedností je schopnost robotů se lokalizovat (navíc v
systému NASA, protože jinak nezískáte body na nalezené artefakty ani nevíte kde
kopat v druhé úloze). Na
gitlab issue
#159 (private) se poměrně široce diskutovalo téma o spolehlivosti odometrie a
penalizované „nápovědy” za dotaz „kde jsem?”. Výrazně jsem se tomu bránil
(a Franta nakonec souhlasil), jen zatím nemáme v kapse spolehlivé lokalizační
řešení … a rozhodně to není jednoduché.
Jeden návrh byl hledat vrcholy meteoritů (šutrů), které jsou při každém běhu
náhodně po testovacím prostoru rozmístěny.
Detekce vrcholu |
On ten přechod nebe a povrchu Měsíce je relativně dobře definovaný, pokud není
obrázek úmyslně zašuměný.
No daleko jsem se neposunul a ano, např. v kráteru, kde nic z okolí vidět není
je jediná možnost vyjet ven (vylézt na strom, „Jeníček a Mařenka TM”) a
rozhlédnout se tam. Robot nutně bude i v situacích, kdy opravdu nebude vědět,
kde se přesně nachází.
Nicméně jak vidíte, Frantu to nezastavilo a vlastně splnil všechny tři úlohy.
Pokud by k tomu byl již i ROSbag, tak možná splňujeme podmínky kvalifikace
… asi by to chtělo prověřit.
Ještě přikládám mapku meteoritů z Gazeba od Franty … jsou pouze tři druhy:
15. červen 2020 — The threshold score is 86
Necelých 24 hodin po té, co jsem zveřejnil „měsíční report” přišel mail od
Automated Education Robot:
Hello Team Leaders,
An update has been made to the Rules Document for the Qualification Round that
provides more clarification around scoring and tiebreakers. Attached, you will
find the current Rules Document, and it will also be posted in GitLab and the
Space Robotics Challenge site.
The specific changes to the doc are in section 4.0 and 8.1, but here's a quick
summary:
- In order to qualify for the Competition Round, you must meet a threshold of 86 points in the Qualifying Round across the three tasks as well as being in the top 25 teams
- Each task will be worth $5,000, and you are eligible for all $5,000 if you have a score greater than 0
- We added a second and third tiebreaker that we don't expect to use, but are happy to have in place.
For complete details, please review the document. All updates are in red.
Best,
AER
Mimochodem, pravidla jsou volně ke stažení na http://www.spaceroboticschallenge.com.
Neovládl jsem se a napsal NASA jestli si z nás dělají srandu?!
(#175, private
repo). A vypadá to, že to nebyl omyl: The threshold of 86 is a function of
the total maximum points and our expectations of a minimum "passing" score for
the simulation to be valuable to NASA, thus the odd number.
Task 3 je za 13 bodů max a toho již Franta opakovaně dosáhl, tj. tam už toho
více nevymačkáme. 86-13=73 … za nalezeni volatile a reportovaní lokace s
toleranci 2 metry v tasku 1 jsou 2 body. Za vykopání a naložení pak jeden bod
na osvícené straně a dva body na odvrácené straně. Na rovinu si myslím, že
získání toho prvního bodu už je úspěch a většina týmů to nedá. Ale teď nově za
kvalifikaci NASA nikomu nedá ani cent, pokud nedosáhne nedosažitelné hranice
… i jeden soutěžící počítal, když bude mapovat prostor maximální rychlosti
jaká je šance, ze objeví 2/3 artefaktů (podle Franty je úplné maximum 110 bodů,
ale to je třeba vykopat i artefakty, které se nachází na strmých svazích
kráterů nebo pod meteority …
NO COMMENT
18. červen 2020 — Arabské tržiště
No snad nikoho (zase) neurazím, ale trošku mi to dohadování s NASA připomnělo
arabské tržiště. Nejprve neuvěřitelně přepálená cena a když se zákazník
chvíli dohaduje, tak to postupně zkonverguje k nějaké rozumné částce: After
taking another look, a threshold score of 20 seems fair for the Qualification
Round.. Tak jo (*)
To nás vrací zpátky do hry, resp. to nám dává smysl pokračovat ve hře o $15k za
kvalifikaci. Franta mezi tím připravil
pull request s verzi 0 pro
druhou úlohu, která získá 0 až 3 body. Suma sumárum 4 + 3 + 13 = 20 … ty jo,
oni nás snad vzali jako referenci.
Ještě možná stránka ze včerejšího callu:
Astrobotic
wins NASA contract to deliver VIPER lunar rover … tak to možná má smysl dělat …
(*) viz knížku Cesta/Cormac McCarthy
14. červenec 2020 — Seed, Bulk and Rock
Několik lidí se mne nezávisle ptalo, jestli už jsme NASA challenge vzdali —
je to dobra indikace, že bych měl updateovat tento blog. Nevzdali, konec
update.
Těma dvaceti body na kvalifikaci to neskončilo. Skoro bych to nazval
Impérium
vrací úder aneb když si soutěžící vyhádali snížení počtu bodů pro kvalifikaci,
tak pojďme změnit simulátor i celý princip vyhodnocovaní! Dobrý trik co?!
Myslím, že se máme ještě co učit … ale třeba nejsou tak zlí úmyslně
Simulace je teď 10x rychlejší, resp. místo po 10ms se simuluje po 1ms. Všechny
senzory jsou zašuměné (to je prý motivace pro redukci simulačního kroku, aby
měl člověk zase šanci to „odšumět”), ale důsledek je ten, že simulace dříve
běžící skoro v reálném čase teď je až 10x pomalejší. Pak jeden 45min test na
starém stroji může zabrat skoro den … no prima.
Druhá zrada je ve změně tření — teď to všechno klouže jak na ledové ploše a
je třeba jezdit velmi opatrně. Na druhou stranu po integraci primitivního PID
kontroleru na motory už je to zase skoro použitelné. Změna byla i v kloubech u
bagru, ale to nevím, zda už opravili?
A pokud by toho bylo málo, tak se změnil i povrch samotný. Přibyly nové typy
kamenů, vše vypadá nějak texturovaně … má to pomoci vizuální odometrii, ale
nevím. Také dříve špičaté kameny jsou teď zaoblené, tj. hledání vrcholů, resp.
jejich pozice už tak stabilní není.
Proč název Seed, Bulk and Rock aneb Semínko, Dávka a Kámen?
Tento obrázek mi poslal včera Franta, jako jeden z výstupů dávkového testování
(viz
moon/bulk_test.sh).
Prostě to pouští dokola simulace s rozdílným seed pro náhodný generátor
Měsíčního světa. To je nová feature, za kterou bych NASA pochválil, i když
není 100% spolehlivá. Prostě než testovat na úplně náhodném světě, tak můžete
zadat seed parametr a pro stejné číslo by to měl být identický svět.
Simulace ale rozhodně stejná není, protože i při vypnutí šumu (další
feature) rover dopadne na jiné místo nebo se trošku sklouzne, než
nastartuje váš řídící program:
M:\git\osgar>python -m osgar.logger moon-round1-200711_202050.log –stream rpc.response 0:00:00.625548 16 ['0xe3e70682c2094cac629f6fbed82c07cd', 'origin -1.603658 5.103922 1.096226 -0.182118 -0.014257 0.979283 -0.087379'] 0:23:24.037823 16 ['0x1846d424c17c627923c6612f48268673', 'service [/vol_detected_service] responded with an error: '] 0:29:51.270197 16 ['0x12e0c8b2bad640fb19488dec4f65d4d9', 'service [/vol_detected_service] responded with an error: ']
vs.
M:\git\osgar>python -m osgar.logger moon-round1-200712_205451.log –stream rpc.response 0:00:00.278639 16 ['0xe3e70682c2094cac629f6fbed82c07cd', 'origin -1.831382 5.065773 0.974008 -0.167647 -0.008114 0.981975 -0.086912'] 0:07:14.362503 16 ['0x7c65c1e582e2e662f728b4fa42485e3a', 'service [/vol_detected_service] responded with an error: '] 0:13:18.138290 16 ['0x37ebdcd9e87a1613e443df789558867f', 'service [/vol_detected_service] responded with an error: ']
… prostě je tam rozdíl a naše „náhodná procházka” pak potká trošku jiné
„poklady” (volatiles), přestože jsou snad na stejných pozicích.
Co dál? Už se těšíme na zimu, resp. na freeze nebo lépe NASA code
freeze. Prostě okamžik, kdy už tu simulaci přestanou měnit a tak váš kód může
fungovat déle než týden do nového NASA release. Původně měl být 1. července a
nebyl. Další plán je 20. červenec, tak se necháme překvapit …
15. srpen 2020 — Shutdown for Hurricanes
Včera přišel mail:
Due to impending weather as a result of Hurricanes Marco and Laura, NASA
JSC (located in Houston, TX, USA) needs to shut down power to the Center’s
servers.
As a result, the SRC Development Team will be unable to access the competition
servers until power is restored. Development, support and deployment is paused
until the storms pass.
We hope everyone in the path of this storm stays safe, and we will keep all of
the teams updated as we are able.
… jak člověk nechce sledovat zprávy, tak je pak občas překvapený …
V kontextu soutěže je asi ještě důležitější mail, co poslal NASA Automated
Education Robot před čtyřmi dny:
As we are nearing the qualification round deadline, and finalizing the
infrastructure to receive your submissions, we need the following pieces of
information from each team ...
We will be opening the submission repo for teams to push their submission
images on August 21, 2020, 4:00pm Central Time (ideally, as this email is being
sent). The submission scripts provided should push to this repo on command.
The Qualification Round closes to submissions on September 16, 2020, at 5:00pm
Central Time. At this time, competitor access to this repo will be revoked.
We will be grading submissions over the remainder of the calendar year, with
results to be announced in early January 2021. Teams will receive their scores
at least two weeks prior to the announcement being made. From the moment scores
are sent to each team, the Team Leader has three days to submit an
appeal...
tak už je to tady …
13. září 2020 — NASA update a R2 video
Už mne pomalu přišlo líto času si stěžovat na vesmírnou agenturu … na druhou
stranu není jednoduché se všem zavděčit. Poslední „zářez” byl, když v rámci
submission window zablokovali přístup na jejich dockerhub, kam soutěžící
měli uploadovat svá řešení. Myslím si, že Frantova domněnka, že je to z důvodu
velmi špatné bezpečnosti — ostatní týmy mohly nejen vidět ostatní řešení,
ale nejspíše si je i stáhnout a „kouknout se dovnitř” (netestováno). To že
submission script ani teď nefunguje, už mne vůbec nevzrušuje … a
mimochodem konec měl být za dva dny. Výjimečně mne potěšil mail, že We
recognize that this is an additional layer for your submission, and in the
spirit of supporting the teams, we are extending the submission deadline to
Friday, September 18th, 5pm Central Time. Přidali tam možnost (nepovinnou)
šifrovat ten docker image — detaily jsem nestudoval a ani to nemáme v plánu,
když i zdrojové kódy jsou za nás k dispozici.
Minulý týden dělal Franta „testovací submission” a to jsme byli třetí tým,
který to na dockerhub nahrál. Teď už je to nepřístupné a je pouze vidět, že
někdo z scheducation/srcp2_qualification_submissions stahoval image 43x.
Aby tento „měsíční report” nevyzněl tak plně negativně, tak bych zveřejnil
Frantovo 45min video pro Run 2, kdy robotický bagr (excavator)
spolupracuje s robotickým náklaďáčkem (hauler) a společně se snaží vytěžit
co nejvíce volatiles, jejichž absolutní pozice dostanou jako vstup.
V tomto pokusu získali společně 6 bodů, což by na kvalifikaci stačilo (za
předpokladu 13 bodů z R3 a alespoň jednoho bodu v R1).
19. září 2020 — 15+ Qualification Submissions
Game is over — v pátek organizátoři uzavřeli „okénko pro odeslání
řešení” — On 9/19/2020 2:01 AM, srcp2-dev-1 wrote: The submission window
for the SRCP2 Qualification Rounds is now closed. We would like to thank all
the teams who participated, and we look forward to assessing the results.
Den před uzávěrkou bylo pouze 7 podaných řešení, v pátek pak 15 a těsně před
uzávěrkou přibyly ještě další 2. Teď už jsou stránky nedostupné, takže jak to
bylo doopravdy se dozvíme asi až v lednu 2021.
Za sebe jsem zvědavý, jak to nakonec budou vyhodnocovat. Pokud pro každé kolo
zkusí tři různé světy a do bodování vezmou maximum, tak snad nějaká šance
získat nutných 20 bodů je, ale čert ví, co si ještě vymyslí. Co jsem psal
Frantovi — pokud bych tušil, jak se pravidla a simulátor od zahájení soutěže
změní, tak bych do toho nešel. Ale zase to byl dobrý protipól
DARPA SubT, na který si už tak moc nestěžuji.
p.s. možná je tady teď vhodné místo veřejně poděkovat Frantovi, že to, na rozdíl
od mne, nevzdal a dotáhl to až do konce … díky!!!
13. prosinec 2020 — NASA leak
Jak jsem psal v září, nějaké užitečné informace o soutěži se nejspíše dozvíme
až v lednu 2021. Na SRC2 fóru byl před měsícem dotaz, jestli alespoň nemůžou
prozradit jaké světy (random seeds) použili pro vyhodnocení? Zatím stále bez
odpovědi. Co jsem ale v daném příspěvku přehlédl byl
odkaz na
facebook. Je tam video, kde už první náhled mne vytáčí
Proč? No připomíná vám to rovery z kvalifikačního kola? Případně ta základna?
Ani náhodou! Tj. všechny detektory bude třeba ladit znova (já vím, já to
nedělal, tak ať si nestěžuji). To samé původně výrazný přistávací modul je teď
sotva vidět, sigh. (jediný garantovaný landmark)
V textu je: Our judges are currently reviewing the qualifying round
submissions for the Space Robotics Challenge, presented by BHP. We had 458
participants competing in 123 teams from around the world. We can’t wait to see
who qualifies for the next round!, tj. 458 účastníků a 123 týmů …
zpětně mi to přijde trošku nadsazené, ale je možné, že to jsou týmy, co
vyplnili registraci, ale fakticky nikdy nic neudělali.
No to jsem tedy zvědav, co si ještě vymysli!
Jo a ten leak — někdo si v tom videu na konzoli všiml, že to běží pod
jiným ROSem a jiným Gazebem:
25. prosinec 2020 — A Holiday Gift from Us to You
NASA jsou fakt vtipálci. Na vánoce psal Automated Education Robot:
If you are receiving this email, then we are excited to inform you that you
will be invited to participate in the Competition Round of the Space Robotics
Challenge starting in January! This is not the official announcement, but we
thought we'd share the good news with you during the holiday season as a
special gift.
tj. pokud jste dostali tento mail, tak to znamená, že se můžete účastnit
soutěžního kola SRC, které začíná v lednu! To zní dobře, protože to znamená, že
Robotika In Space skončila do dvacátého místa (postupuje pouze 20 týmů z
kvalifikace).
On Sunday afternoon, a scheduled email will go out to each team leader
discussing their scores and any money that may be awarded. As a part of that
email, we will discuss an appeal process if you have evidence that your scores
may not reflect your work. In short, there will be a form through which you can
submit an appeal. The deadline for the appeal will be 5 pm CST, Wednesday,
December 30, 2020.
(ano, jsem si vědom, že tato informace nejspíše neměla být zveřejněná a tak jí
asi brzy nahradím)
That's all for now. Happy Holidays, and we look forward to the Competition
Round!
17. leden 2021 — Robotika vítězí v kvalifikačním kole NASA Space Robotics Challenge
Six teams completed the three tasks or met the threshold score for the maximum award of $15,000:
- Olympus Mons, Barcelona, Spain (U.S. Citizen)
- Robotika, Annapolis, Maryland
- Runaround Robots, Cedar Falls, Iowa
- Team Capricorn, Worcester Polytechnic Institute, Worcester, Massachusetts
- Team Mountaineers, West Virginia University, Morgantown
- Walk Softly, Niskayuna, New York
One team completed two tasks and qualified for a $10,000 award:
- Mingo Mountain Robotics, Kettle Falls, Washington
Nine teams completed one task qualified for a $5,000 award:
- AMI Technologies LLC, Edina, Minnesota
- Future Robotics, Franklin, North Carolina
- God & Golem, Inc., New York
- Lycanthropic Lunar Lunatics, Ramona, California
- MoonrAlders, Johnstown, Colorado
- Team Swarmathon, University of New Mexico, Albuquerque
- The University of Adelaide, Australia (U.S. Citizen)
- UHCL/SJC, University of Houston – Clear Lake and San Jacinto College, Texas
- Whalers, Nantucket, Massachusetts
Six additional teams qualified to compete in the competition round:
- Columbia Space Initiative, New York
- Team Schmidty, Bridgeville, Pennsylvania
- The Luminosity Lab, Tempe, Arizona
- Team Olrun, Evansville, Indiana
- PRIME, Cypress, Texas
- Purdue-Hongik Team, West Lafayette, Indiana