czech english

Pat (a Mat)

aneb zajíc v pytli

Vím, že písmeno P už bylo použité, ale pro (potenciální) dvojici pomocných robotů mne automaticky asociovala dvojice kutilů z oblíbeného DIY seriálu. Blog update: 14/4/2024 — Cones Challenge v1.0 (10 minut)


Podvozek pro donáškového robota jsem poptával již léta. Začalo to s Eurobotem a robotem Daisy (vlastně už s Bertou). Jedna z vizí byl pizzabot, který by rozvážel ještě horkou pizzu na pokoje na internátě v Praze Troji. No na realizaci nikdy nedošlo.
Další „donáškovou ligou” je soutěž Robotour. Zde je náklad pouze 5 litrový soudek, ale i pro běžné RC modely je to už moc.
Nějakou větší platformu jsem plánoval poskládat ze stavebnice Infento, ale zatím jsem tam nerozchodil ani ovládání motoru a o nějakých enkodérech ani nemluvě.
Na SubT Challenge se mi líbil Kloubák K2 a K3, ale přestože má dobrou prostupnost terénu, chybí nějaké vhodné místo, kam by se připevnil náklad. Navíc je tam problém výroby — netuším, zda někdy studenti poskládají K4, ale „letos to nebude”.
Co se komerčně dostupných platforem týče, tak si pamatuji noční šestikolovou můru z Francie, kterou Jirka testoval na Field Robot 2010. Pak jsem si nějaký čas hrál s Husky od Clearpath Robotics. Nebyla to úplně levná sranda a když si vzpomenu na stopy jak na trávníku tak na podlaze v obyváku, tak bych raději podvozek s možností zatáčení.
A konečně by bylo dobré pořídit již nějakou existující platformu a ne experimentální prototyp.
A když jsme nedávno znovu hledali platformu, co by byla schopna unést 100kg nákladu, tak jsme narazili na firmu Yuhesen: Founded in 2013, Yuhesen Technology is an industrial leading modular intelligent mobile robot provider building the easy-to-operate and high control precision robot platforms to support robotics research in the field of manufacturing, agriculture, educational, logistics, military and aerospace. YUHESEN has established a robotics product system covering all-terrain UGV and ROS based autonomous robotics solutions.
Robotických platforem nabízí hned několik s tím, že na současnou úlohu nejlépe pasoval FR-07 Pro:
  • Rozměry: 132 x 76 x 49cm
  • Váha: 125kg
  • Náklad: 100kg
  • Rychlost: 8km/h
  • Max stoupání: 10 stupňů

Obsah



Blog / Pat (a Mat)

8. září 2023 — Nalodění

Dnes rano jsem dostal tyto fotky, které mne celkem potěšily, tak jsem se rozhodl odstartovat Pat-ovský blog.

27. září 2023 — Prověření transakce, beneficiary name a EVER GLOBE

Tak jo, drobný posun. Omlouvám se, že jsem článek na chvili „schoval” (on ho stejně Google snadno našel i když byl hidden), protože situace nebyla úplně příznivá. Začalo to bankou, která chtěla „prověřit transakci”: ... banky dle zákona č. 253/2008 Sb., § 9 odst. 1 mají mimo jiné povinnost provádět kontrolu transakcí na účtu a mají právo klienta požádat o vysvětlení případně doložení transakcí, které probíhají na jeho účtech vedených u dané finanční instituce...
Pak to trvalo skoro 10 dní než se peníze dostaly z evropské banky do te čínské … přečetl jsem si dotaz na platbu do Číny, 14 dní žádná doba a nehrotil to (jméno Pavel Strašák mi také přišlo tématické ). Zabalený robůtek mezitím čekal ve skladu …
Pak to pokračovalo z čínské strany: The bank notified us they just received the payment. However it's incorrect beneficiary name so they can't released the remittance to us. It should be SHENZHEN YUHESEN TECHNOLOGY CO., LTD.
Kupodivu i toto se dá vzdáleně opravit, něco to stojí (prý až dalších 80 USD), ale … Good news. The bank just notified us they received the modify request and confirmed the payment is transfer to us.
A dnes přišlo info, že robot už je na cestě na EVER GLOBE (obrázek EVERGREEN je snad jen ilustrativní). ETA could be the middle of November. Uvidíme, co robota na cestě ještě potká.

3. listopadu 2023 — Čínský agent v Praze

Jestli myslíte, že se za titulkem skrývá informace, že už je PatAMat (jak mu říká Jirka) v Praze, tak vás zklamu. Toto navazuje na mailovou konverzaci ze začátku října, která se ke mne náhodou dostala. Tam jsem se dozvěděl, že já jsem ten agent!!! ... their company has a product agent in Prague, ...
The contact persion in PRAGUE for Yuhesen product:
Name: Martin DLOUHY
E-mail: Robotika.czmdXXX
Tel: +420 XXX
… nejprve mne to vytočilo do běla, pak mi to přišlo k smíchu … a po měsící už skoro i ke zveřejnění
Sledoval jsem, jak lodička (chápejte kontejnerová loď) pluje a kde asi robot touto dobou je a když nám posledně přišlo, že už jede loď zpět do Číny, tak jsem se raději zeptal. Odpověď byla šita na míru čínského agenta:
tak ještě že máme ty imperiální translátory … no tak tentokrát se moc nevytáhly :-(. Tak jen indicie, že Pat asi přestoupil na jinou loď a 5-7 asi odpovídá větě v mailu: The cargo has transfer to Germany warehouse now and will be delivered to your address in 5-7 days. Nechci být hnidopich, ale 27 + 7 je dnes. Jako jsem rád, že dnes dorazily ty lidary, ale to bude jiný blog …
p.s. jenom doufám, že jak překladač přeložil pravou část jako destination Republic of China, tak se pletl … „Matka vyhodnotila signál jako varování” (z filmu Vetřelec).
p.s.2 beru zpět tu poznámku o imperiálních překladačích … ona tam byla autodetekce jazyka a nějak přišel na Češtinu … když jsem mu vybral vhodnější, tak:
Dotaz na nákladní list
Číslo nákladního listu
Číslo převodního příkazu
čas schůzky
destinace
ilustrovat
fungovat
HX80054767
2023-10-27 0
Česká republika
Odhadovaný počet položek převedených do německého skladu je 5-
Znovu zkontrolujte stopu
1:06:41
Rozbalte podrobnosti
Zadejte prosím číslo objednávky (až 10), oddělené
klávesou Enter
HX80054767
【HX80054767】Podrobnosti
čas schůzky
plocha
podrobnosti
27. 10. 2023 01:06:41
Bire
Byl převezen do německého skladu a očekává se, že dorazí za 5-7 dní.
24. 10. 2023 16:40:58
Bire
Dorazil do přístavu
Zeptejte se
22. 10. 2023 00:00:00
Bire
|Předpokládaný čas příjezdu
2023-10-03 00:00:00
Shenzhen
|Odhadovaný čas plavby
27.09.2023 22:53:45
Shenzhen
| Jméno a číslo lodi: EVER GIFTED 0675-020w
27.09.2023 18:53:45
Shenzhen
|Protože inspekce nedodržela plán plaveb této lodi, je třeba ji odložit na další loď
26.09.2023 10:10:43
Shenzhen
|Odhadovaný čas plavby
22.09.2023 10:09:00
Shenzhen
Skříň nainstalovaná
22.09.2023 10:09:00
Shenzhen
| Název lodi a plavba: EVER GLOBE 0674-017W
25.09.2023 10:08:44
Opusťte distribuční centrum
2023-09-09 09:31:27
|Vstupte do distribučního centra

10. listopadu 2023 — První dojmy

A je to tady! Už dlouho jsem se na něco tak netěšil a zároveň z toho měl tak velké obavy. A oboje bylo naplněno. Balíčk dorazil. Bylo třeba tomu jít naproti, sehnat si dvakrát delší evropské trackovací číslo, provolat se k člověku co to má na starosti a možná jako v tomto případě řekne: „Jo, jo, včera to dorazilo, ale nebyl tam žádný telefón, takže je to zatím u nás ve skladu.” Den na to to ale expedovali, takže OK.
Pro začátek je třeba dodávka/nákladák s paletovou plošinou. Ta hračka, podle papírů, váží 125kg ale s krabicí a paletou už to hodí 180kg. Prostě ve dvou to neodnesete. Ale on je i problém s tím kousek popojet. Co si budeme povídat, Pat s domečkem skončil uprostřed zahrady. Dál to s paletovým vozíkem nešlo.
První dojem byl … že je Pat obrovský. Žena to později komentovala, že je to velké jak kráva! Ale ono je to asi ve srovnání s robůtky, co si člověk sám zvedne a odnese do auta, rozhodně pravda. Minimálně tak velká kola snad nemá ani Spider3 Rider. Ale neměřil jsem to, zatím. Co jsem ale změřil jsou rozměry krabičky: 145cm x 90cm x 60cm (s paletou 72cm).
Vedle toho, že Pat už je doma, mne potěšilo příslušenství — je tam i PCAN-USB převodník. Případnému hraní tedy nic nebrání.
A teď ty špatné zprávy — brání. Nejde to zapnout. Tipoval bych, že je tam někde schovaná pojistka, ale … robota jsem hned v poledne dal na nabíječku a psal Lambertovi, že platforma dorazila. Rovnou mne znova varoval (skleróza je hrozná věc), že vzhledem k tomu jak dlouho pojede robot lodí, je baterka úmyslně odpojena. Je třeba rozebrat levý kryt a baterii tlačítkem zapojit. Nepomohlo to.
Status? Pat spí uprostřed zahrady — snad divoká prasata nebudou zkoumat, co je to za nový přírustek.
p.s. zapomněl jsem zmínit, že robot je defaultně zabrzděný, tj. je třeba ho napájet, aby se odbrzdil

13. listopadu 2023 — Baterka a brzda

Neveselo, truchlivo … hned se pozná první den dovolené. Dnes bylo nevlídno celý den. Ráno jsem byl domluvený s Lambertem (řekl bych, že obrázek na Alibabě je čistě ilustrativní , ale je tam více o Yuhesenu, je zvláštní, že cena je skoro dvojnásobná … že by už vánoce?!) na videohovoru ještě s technikem. Chtěli vidět robota „naživo”, což samozřejmě dává smysl, ale s tím deštěm uprostřed zahrady nic moc. Hodil jsem přes otevřenou krabici velkou plachtu a streamoval jak zapínám baterku a nabíječka nereaguje. Pak říkali ať platformu zapnu i když je na nabíječce (v manuálu to myslím doporučené není) a začalo to svítit a blikat jak vánoční stromeček. Tak už vím na co se mám tešit, až „baterka naběhne”, naběhne-li.
Teorie je taková, že venku je příliš chladno a tak se ochranný systém brání nabíjení. Lambert říkal 10 stupňů C a venku dnes přes den bylo 5.5C. A v noci nejspíše i mrzlo — rozhodně to není ideální pro baterku po X dnech cestování lodí.
Druhou novinkou je brzda. Defaultně se „zamkne”, když je robot bez napájení, ale páčkou lze odblokovat:
Milé překvapení bylo, že po odblokování brzdy bylo s robotem možné relativně snadno manipulovat (i když má těch 125kg). Tak jsem ho přesunul pod střechu a na vozíku přesunul i „ulitu”:
Další dobrá zpráva byla, že se Pat vejde do auta … dost mi to připomnělo výlet na Býčí skálu s K2. Sedačky je třeba sklopit a i jedno místo vzadu zůstane.
Zapnul jsem naftová kamínka, vytopil auto na 23C a … nic, nepomohlo to.
Další pokus bylo vytažení baterie. Lambert psal: It's better to label the cables before you remove the battery. The red and black are not interchangeable.
Řekl bych, že to byl jeho první zásek … no to je tak, když programátor hrabe do HW. Až po chvíli mi došlo, že to jsou jenom průchodky! … ty jen tak neodpojím. Když se ale povolí 4 šrouby (2 vlevo a 2 vpravo), tak lze s baterií snadno posouvat a …
… tak to bych možná ani já nepopletl.
Ještě drobná lekce čínštiny … jako opravdu díky za ty přkladače.

15. listopadu 2023 — ZERO battery voltage

Zatím žádné dobré zprávy. Původně jsem včerejší titulek chtěl nazvat No pasarán s touto fotkou:
Aneb poučení, že pokud máte někde schovaná „zadní vrátka”, tak někdy zkuste, zda jimi opravdu projdete. Matfyzácké řešení by bylo, že když měla krabice s robotem na výšku 60cm, tak při změně souřadného systému by robot měl projít, není-liž pravda? Asi lepší řešení navrhla žena a to vysadit branku a pak se tam Pat vešel.
Jak to pak vypadalo v chatě raději komentovat nebudu — prostě co měl Harry Potter pod schody byl luxus! Pat to dal jen do předsíně — vyndavat kvůli němu kamna v obýváku jsem fakt nechtěl. No nic, je v teple.
Druhý titulek co mne napadl byl „židovský vtip” o malém bytě, kdy rabín doporučí tazateli si pořídit kozu … ale nemůžu ho najít :-( Tak s FR-07 Pro je to podobobné. Pokud máte moc malý byt, poříďte si velkého robota …
A dnes jsem si koupil nový voltmetr, abych mohl proměřit tu zatracenou baterku:
Prostě je to nula ať propojíte cokoliv nebo vypnete/zapnete, napříč konektory … prostě nic. Je na čase otevřít zaplombovanou „černou skříňku”? Čekám na autorizaci z Číny.

16. listopadu 2023 — PCAN

(osgar) md@md-ThinkPad-P50:~/git/osgar$ python -m osgar.record  -duration 10 config/test-pcan.json 
                                               -note "Ubuntu Yuhesen PCAN2/USB, 10s"
2023-11-16 00:13:36,761 root             WARNING  Environment variable OSGAR_LOGS is not set 
                                                  - using working directory
2023-11-16 00:13:36,761 __main__         INFO     /home/md/git/osgar/test-pcan-231115_231336.log
2023-11-16 00:13:36,896 can              DEBUG    can config: {'bitrate': 500000, 'interface': 
                                                               'pcan', 'channel': 'PCAN_USBBUS1'}
2023-11-16 00:13:36,898 can.pcan         WARNING  uptime library not available, timestamps are relative
                                                  to boot time and not to Epoch UTC
2023-11-16 00:13:37,460 __main__         INFO     SIGINT handler installed
2023-11-16 00:13:47,471 can.bus          WARNING  PcanBus was not properly shut down

(osgar) md@md-ThinkPad-P50:~/git/osgar$ python -m osgar.logger /home/md/git/osgar/test-pcan-231115_231336.log 
 k    name  bytes | count | freq Hz
-------
 0     sys    269 |    3 |   0.3Hz
 1 can.can 109072 | 6416 | 599.1Hz

Total time 0:00:10.709735


(osgar) md@md-ThinkPad-P50:~/git/osgar$ python -m osgar.logger /home/md/git/osgar/test-pcan-231115_231336.log 
                                               -stream can.can -format '{hex(data[0])}' | sort | uniq -c

   1002 0x18c4d2ef - Chassis control feedback command
   1003 0x18c4d7ef - Left rear wheel information feedback
   1003 0x18c4d8ef - Right rear wheel information feedback
    200 0x18c4daef - Chassis I/O status feedback
   1002 0x18c4dcef
   1003 0x18c4deef - Chassis speedometer feedback
    100 0x18c4e1ef - Battery BMS information feedback
    100 0x18c4e2ef - Battery BMS mark status feedback 
   1003 0x18c4eaef - Vehicle fault status feedback
… tj. jedna nezdokumentovaná zpráva?
0x18c4e1ef 0000000000007070
0x18c4e1ef 0000000000008080
0x18c4e1ef 0000000000009090
0x18c4e1ef 000000000000a0a0
0x18c4e1ef 000000000000b0b0
0x18c4e1ef 000000000000c0c0
… tj. až na poslední counter je vše nula.
0x18c4e2ef 0000000000007070
0x18c4e2ef 0000000000008080
0x18c4e2ef 0000000000009090
0x18c4e2ef 000000000000a0a0
0x18c4e2ef 000000000000b0b0
… 0% zbývající baterie, min/max teplota 0C = nesmysl.

18. listopadu 2023 — Remote Control

Uznávám, ze poslední záznam o PCANu jsem „lehce ošidil” o nějakou omáčku. Bylo to až po půlnoci, kdy mne ostatní vyhecovali rozchodit si převodník a pak bylo tedy možné už rovnou v OSGARu nahrát si nějaká CAN bus data. A další den jsem začal psát OSGAR driver pro Yuhesen FR07 platform.
Pár pozorování:
  • CAN zprávy z BMS (Battery Management System) jsou vždy samé nuly ať už je baterka zapnutá, vypnutá nebo je kabel úplně vypojený! Z toho bych soudil, že pětipinový konektor není CAN
  • Většina zpráv jede na 100Hz
  • CAN zprávy pro řízení maji i echo, které vrací podle jakých příkazu se jede (hodí se v kombinaci s Remote Control)
Zapnout dálkové ovládání, když je Pat puštěný na nabíječce vypsal toto:
(fakt nevěřím, že by někdo někdy mohl navázat komunikaci s mimozemskou civilizaci)
Včera jsem to zkoušel znova, přepnul druhou levou do max polohy a dostal další obrázek:
Pracovní obrazovka
Pracovní obrazovka
překlad
překlad
(omlouvám se za mizerné foto, ale překladač to stejně nějak dal — zajímavé bylo, že když jsem špatně vybral zdrojový jazyk, tak pouze texty zvýraznil … další potenciálně užitečná vlastnost)
Pak jsem zkoušel zatáčet, houkat, couvat … no fungovalo jenom to zatáčení. Z logu jsem pak vyčetl, že robot byl celou dobu v parked režimu tak možná ta brzda je opravdu ruční? A houkačka nic i když byl požadovaný bit nastavený.
A když jsem to chtěl celé vypnout, tak to nešlo:
Závěrečná obrazovka
Závěrečná obrazovka
překlad
překlad
… ale po vypnutí robota se vypnul i dálkový ovladač.

p.s. zkusil jsem to znova a „hele, ten display je dotykovy!”
S tou číňštinou je spousta zábavy. Heslo?! What?! No o tom se manual nezmiňuje. Asi je na čase si ho znova přečíst.
p.s.2 tentokrát jsem se koukal i zepředu a opravdu při zatáčení dává blinkry,
p.s.3 tuto obrazovku vám nechám jako „domácí úkol”:

19. listopadu 2023 — První ujeté centimetry a User manual V2.2.0

Pat má za sebou první ujetý půlmetr! Konkretně 562mm … já vím, bída, ani celý metr … ale ono v té předsíni je cca 20cm prostoru, než nabourá. A ano, ten půlmetr je akumulovaný (CAN message 0x18C4DEEF Accumulated mileage). Vtipné mi přišlo, že v příkladu uvádějí jak nastavit rychlost 5 m/s … kdybych to udělal, tak asi místo předsíně máme verandu. No nic, pohnul se a to je hlavní, tj. i když se mi nepodařilo s ním pohnout přes dálkový ovladač, tak po CANu jede.
Asi bych vypíchnul, že ta CAN zpráva na řízení je fakt ošklivá, aneb proč probůh?! Jsou tam první 4 bity na řazení (P, R, N, D), pak 16 bitů na požadovanou rychlost v milimetrech za sekundu a dále 16 bitů na úhel zatočení v setinách stupně. Jednotky se mi líbí, ale … oni to vše narvali za sebe, takže v prvním bajtu je zkombinovaná rychlost s typem řazení a ve třetím bajtu je mix rychlosti a zatáčení. A aby to bylo zábavnější, tak je to Intel tj. pozpátku. Vůbec se nedivím, že jsem v tom udělal chybu. Pak snadno pošlete místo příkazu jeď pomalu dopředu něco jako „pedál až na podlahu”. Jako plus hodnotím pár vzorových příkazů v manuálu, ale … proč? Odpověd znám … prostě to tam ty nástroje nahází za sebe, ale pěkné to není.
Druhé téma je User manual. RTFM, tak jsem si ho už také pročetl … a dnes jsem koukal na ten vytištěný, co dorazil s platformou a on byl jiný!!! Tiskovinu jsem lehce ignoroval, protože k tomu už potřebuji brýle a tak jsem byl spokojenější s PDFkem. Ale chyba lávky! PDFko, co mi posílali někdy koncem května, je verze 1.0 a ta tištěná varianta je V2.2.0. A ten dálkový ovladač má stejné páčky jako na obrázku i je tam zmínka o touch screen. Tak už vím, že houkačka je tlačítko zespodu vlevo … ale stejně nehouká, tak nic.

23. listopadu 2023 — Nabíječka a dálkový ovladač

Asi bych začal upřesněním, jak je to s tím ježděním a baterkou? Dva lidé to nezávisle z mého textu nepochopili, takže jsem to asi (jako obyčejně) zmátl:
  • baterka je stále mrtvá
  • robot je schopen popojet pár centimetrů, ale pouze na připojenou nabíječku!
Dnes bych si sem přihodil odkazy na datasheety:
Díky tomu PDFku k dálkovému ovladači nejen s předním ale i zadním pohledem je teď už jasné, že VRB není „pravé spodní tlačítko”, ale trimovací kolečko v rohu. A když s tím otočíte doprava a nezapomenete zamáčknuté Emergency STOP tlačítko, tak najednou robot jede (stále je zdrojem nabíječka). Tak alespoň nějaký posun.
p.s. jo ještě jeden detail s houkačkou: The horn is optional part not including in standard platform. We reserve the key and interface for it, they won't work if the platform don't equip with horn hardware.

27. listopadu 2023 — Zbyňkovy hračky a Anderson konektory

V sobotu se stavil Zbyněk a vzal s sebou i svoje „hračky”: bezkontaktní měřák proudu, regulovaný zdroj do 60V s nastavitelným proudovým omezením, krimpovací kleště a pod. První měření bylo trojpinový konektor z nabíječky vs. obří Anderson konektory. Nabíječka tedy používá červené konektory a šedivé jsou pak pro napájení celé platformy. Jeden z pinu (no měl jsem si udělat foto počmáraného Pata) pak není zapojen vůbec, ani na kostru.
Druhé pozorování bylo, že při zapojené nabíječce a zapnuté platformě teklo kabelama cca 400mA (zase jsem si to měl zdokumentovat) protože to vypadalo, že se nějakých 100mA „ztrácí” v černé krabíčce baterky. Proudy se ale nijak nelišily ať už tlačítko baterky bylo zapnuté nebo vypnuté.
Další test byl se zdrojem a postupném zvyšování napětí … ani ťuk, nic si to nechtělo vzít. Při té příležitosti si Zbyněk všiml, že ty červené a šedé Anderson konektory jsou různé typy! Šedivý měl přepážku mezi + a - a červený nikoliv, takže i kdybych se to snažil pospojovat poslepu (nekoukal na barvy) tak by se mi to nepodařílo … za to mají u mne autoři FR07 plus (chtěl jsem řící malé bezvýznamné plus, ale to by asi neurazilo jen mé spolužáky z gymplu, protože to bylo oblíbené rčení naší třídní).
Do rozdělání krabice s černě označenými šroubky (buď plomby nebo prý že to bylo utahováno klíčem s měřeným momentem) jsme se zatím nepustili.
Zavěr — baterie je stále mrtvá.

21. prosince 2023 — Stará baterka

Koukám, že jsem skoro měsíc nic nezveřejnil na téma Pat a Mat. Nějaké zprávy by byly, ale moc veřejné nikoliv. Ale čas utíká, takže doplním archlív.
Asi to vezmu od konce, tedy dnešního mailu, že náhradní nová baterka by už měla být na nějakém evropském letišti a čeká na proclení. Mám i DPD číslo zásilky, ale dnes se mi dokonce podařilo při dotazu dostat 502 (Bad Gateway) … zkrátka chybu na serveru … prostě vánoce. A minulých X dní tam nebylo nic zajímavého, jen potvrzení, že to číslo je pro mne. Trošku marnost.
Na druhou stranu mne včera potěšil TomášR, který došel k závěru, že není nač čekat a pustil se do nabíjecích experimentů „autorizované otevřené baterky” (aneb výrobce o tom ví a souhlasí a zajímá ho, na co přijdeme).
Nejprve již pár týdnů staré fotky:
Asi nejdrsnější je ta vlevo dole - všech 75 článků dohromady mělo 1.8V!
Tento týden Tomáš poslal update: Před nabíjením měla baterka 1,819 V a na jednotlivých článcích bylo: 0,1725; 0,1277; 0,1342; 0,1176; 0,1006; 0,1203; 0,0953; 0,1289; 0,0856; 0,1371; 0,1526; 0,0895; 0,0854; 0,1474; 0,1246 V. Po pár hodinách nabíjení jsem ji dostal až na 20V, ale po odpojení zdroje to začlo hodně rychle padat. Buď je špatná BMS, nebo to číňan odfláknul. Naměřil jsem spotřebu přes 10 mA, což je úlet. Ráno měla baterka jen 4,37 V. Vypínač na spotřebu nemá vliv.
A včerejší zprává byla ještě nadějnější: ... tak už se mi povedlo probrat BMS :-) Při cca 38V na baterii BMS obživla a začla nabíjet (pulzy 1:1) a jede i CAN. Na CANu (500kb/s) chodí 3 zprávy:
0x200 0E CA 00 00 09 34 0A 8B
0x201 00 00 0A 64 00 03 00 00
0x202 C0 0A 00 01 0B B9 0B AF
p.s. ok, poslední report v tomto roce. V příloze máš tabulku s naměřenými napětími na jednotlivých člancích. Dnes už jsem se dostal, po dalších cca 7h nabíjení, prakticky na nominální napětí. Baterka už šla zapnout, ale kde je ta hranice přesně nevím. BMS povolila nabíjení někde mezi 38-39V, vybíjení myslím až tak kolem 42V. Články se už trošku srovnaly, ale zda tomu nějak pomohla BMS, nebo to je jen tím, že už se to dostalo do ploché části charakteristiky, nevím. To se uvidí až ke konci nabíjení.
Jinak jsem koukal ještě na CAN zprávy a v 0x200 jsou první 2 byty napětí baterie a pak tam jsou asi 2 hodnoty (4 byty), ktere by mohly odpovídat stavu nabití. Nějak systematicky jsem to ale nezkoumal. U 0x201 jsem žádné změny nepozoroval. V 0x202 je asi nějaký status, jeden bit odpovídá stavu vypínače, a pak tam jsou asi zas 2 hodnoty, ale ty se moc nemění.

2. ledna 2024 — Odložené uspokojení

Potřebuji se uklidnit, tak to hodím „na papír” resp. na web.
Žena si přála pod stromeček knížku Cyrila Höschla Tak o co jde? a tak jsem v ní také listoval. Jedno téma bylo odložené uspokojení, což je asi teď už něco, co pomalu nedávám. Nová baterka byla odeslána 11. prosince 2023, letecky. Ano v nejnevhodnější čas. Mezi svátky mi to přišlo už pomalu divné, tak jsem volal na DPD. Zase zajímavá zkušenost s telefoními automaty … jediná cesta k operátorovi vede přes ignorování všech nabízených voleb. Tehdy (27/12) jsem se konečně provolal a dozvěděl se, že to je někde v Německu na letišti a dosud to není v systému. O dovolene (29/12) mi přišla SMS, že 2/1/2024 mi doručí balíček a že ho můžu přesměrovat (což by se fakt hodilo protože v cílovém místě 2. ledna nikdo nebude). Pár kliku, přesměrováno do Alza boxu za rohem a datum doručení se dokonce změnilo na Nový Rok! Mimochodem všem vám přeji vše nejlepší v novém roce. Už jsem viděl ten titulek Happy New Year/Pat's Battery 2024, ale chyba lávky. Včera nic … to jsem tak trošku očekával, bylo to podezřelé. Ale dnes také nic?! Navíc to převezli z Říčan do Uhnoště (na druhou, vzdálenější, část Prahy). A co mne už uplně vyřadilo byla hláška Your parcel was returned as you refused to take delivery. F* … to už se opravdu neovládám. Zítra bych Prahu opustil a přesunul se na místo, kam měli dodat balíček původně … no hlavně klid, je třeba trénovat odložené uspokojení. Tak alespoň vzpomínka na poslední západ slunce nad jezerem v roce 2023 — fakt to stoji za to se zbytečně rozčilovat?

3. ledna 2024 — Konec srandy - baterka je zpátky v Německu!

No dnes bych to nazval spíše jako deprivací. Ráno jsem volal na DPD a paní mi v klidu řekla, že balíček poslali zpět odesílateli?! Dokonce se musela zeptat, jestli tam ještě jsem, protože jsem fakt nevěřil tomu co jsem slyšel. F*, musel jsem do práce a pak tam volal znova a dozvěděl se, že je tam poznámka, že se to má prošetřit. Chudáka bráchu jsem poprosil, ať se staví v Unhošti, protože bych to tam do 18h nestihl … a balíčk byl fakt pryč. V českém trackovacím systému už je jen info, že se vrací, ale alternativní německé mi ukázalo tento obrázek:
Nějaké dotazy? Mimochodem Alzabox je v tom nevinně — nějaký nováček prý místo přesměrování na Prahu 10 kliknul na vrátit odesílateli … také by vás zajímalo, proč to tedy neřeší?! Možná je čas vypsat kurzy jestli ti borci to pošlou až zpátky do Číny … jó, pěkně ten 2024 začíná.
p.s. 04.01.2024 10:22 Your parcel has been delivered successfully Kelsterbach, DE

11. ledna 2024 — Vzkříšení

Nevím proč, ale první asociace se vzkříšením je zase Vetřelec. Dnes to bude „pro změnu” kryptické, aneb viz github. Nechci mluvit o nové baterce (ta je ztracená někde v Německu a když jsem dnes znova volal DPD, tak řekli ať zavolám za týden, že to začnou prošetřovat jako ztrátu), ale o staré baterce, kterou TomášR několik týdnů křisil. A ano, dnes jsem poprvé po dvou měsícíh, co Pat dorazil, popojel na baterku! Musel jsem si zase otevřít čínský manuál (ano anglický, ale asi automaticky překádaný), protože robot popojet nechtěl (zatočit to ano). Brzda, vypnout automatiku, zařadit D, odblokovat STOP tlačítko … a pak jel. Po pravdě mne přepínání jízdy dopředu D a dozadu R trošku rozčilovalo, ale to bude tím prostorem (na diagonále jsem v předsíni získal cca 0.5m).
Na konektorech nic nenaměříte, pokud není baterka puštěná, tj. stiské tlačítko. Po zapnutí na obou vyskočilo 49V. A ukazuje to jak dálkový ovladač tak CAN (mimochodem zprávy, co posílal CAN baterky/BMS na robotovi dostupné nejsou). Nechal jsem to běžet cca 15 minut (v přesíni byla kosa a v kuchyni zamrzala voda, pokud jste jí tam chvíli nechali ležet, tj. úplně ideální podmínky to na testování nejsou).
Voltage 49.63 0.0 26.3
Temperature 15.0 16.0
…
Voltage 49.41 0.0 26.3
Temperature 13.0 15.0
To napětí kleslo cca o 200mV a baterka si myslela, že teplota je nějakých 14 stupňů (reportuje min a max, ale nevím, zda to mezi jednotlivými reporty resetuje). Ano, zase bych šťoural do toho kódování teploty s rozlišením 0.1 stupně Celsia/bit uložených v 12ti bitech. V realitě to je zase s rozlišením ve stupních, takže kdyby to hodili do bajtu, tak +/- 120 stupňů C by snad stačit mohlo … no nic, aspoň trošku rébus. Když je v jednom měření nybble A a zbytek nuly a v jiném 9 a 6, jak to může jít po sobě? Moc skočit to nemůže a maximum 1 stupeň je nějak málo a tak 0xA0 = 160 a 0x96 = 150. Vyřešeno.
p.s. Tomáši, díky moc!

19. ledna 2024 — Nová baterka!

Dnes v 15 hodin CET dorazila nová baterka! Byl jsem z toho trošku na nervy, když zmizela v Německu a po pravdě nevím, jestli jí nakonec odchytli tam, nebo to šla až do té Číny. Skoro si říkám nemusím vědět všechno (aneb snad to ani nechci vědět).
První pozorování — při vypnuté baterce naměřím 11.3V?! Stará baterka (po renovaci) tam má 0V, ale asi to za chvíli znova prověřím. Dobrá zpráva ale je, že při zapnuté baterce (ono je to snad pouze informativní tlačítko pro BMS) naměřím 49.3V.
Jinak je ještě několik zpráv, ale ty asi nechám až po víkendu. Minulý víkend jsem si rozchodil popojíždění přes CAN od X metrů (v mém případě centimetrů) tam a zpět, ale nevyhecoval jsem se k vyklizení cesty z předsíně, sezení na verandě a v kombinaci s nájezdy abych v lehkém mrazu vyjel tuto feature demonstrovat na zahrádku. Ona priorita byla trošku jinde (aby neuletěla střecha na přístřešku, časem snad i pro Pata) a … lenost.
Dále jsem se snažil zprovoznit prastarého ALIXe. Ano, je to "vykopávka", ale stejně jsem přesvědčený, že sběr dat a jednoduché follow me by to dát mohlo/mělo. No byl tam ještě Python 2.6 a ani se to nechtělo bavit s GitHubem, kvůli starému ssh (jestli jsem to pochopil dobře). Od Jakuba mám půjčenou novou "hračku", ale o tom asi více až uřídí popojetí 1 metr.
Komentáře (1) 1/19/24, 18:38 Ahoj. Když to ale je vypnuté, tak tam naměřím 11.3V? To bude jen svod MOSFETu. Pokud jsi to měřil digitálním multimetrem, tak ten má velký vstupní odpor, takže i malý svod vyvolá měřitelné napětí. Většinou mají multimetry vstupní odpor 10 MOhm, což by odpovídalo proudu 1,1uA a to je akceptovatelná / očekávatelná hodnota. T.

20. ledna 2024 — Pat nemá rád sníh

Dnes vystoupila teplota až na 0 stupňů Celsia, svítilo sluníčko a tak jsem se vehecoval (odsunout záchod, přestěhovat betonovou lavičku, přerovnat dřevo u baráku, vybalit nájezdy) a vyzkoušel Pata venku. A rovnou mne udeřila mezi oči stará hláška: Test First! Aneb nemá velký smysl připravovat něco komplikovaného, když i „ujetí jednoho metru” může selhat. Ano, tento výsledek jsem úplně nečekal, takže test byl úspěšný, míněno užitečný, a možná jsem se k tomu měl opravdu rozhoupat už před týdnem.
Pat neujel ani ten metr, ani na dálkové ovládání. Pociťoval jsem marnost, jako když jsem cca před měsícem zapadl na louce se Sharanem a nemohl vyjet. Holt 4x4 to není a to samé platí i pro Pata. Pokud jedno kolo bylo ve vzduchu, tak to bylo to co se točilo. A pokud podkluzovalo, tak to samé. Zvláštní bylo, že při couvání podkluzovalo zase to druhé kolo. A chvílema jsem měl pocit, že změnou zatáčení se roztočilo druhé kolo?! Jako by tam byly dva motory … ale nejsou. Nevím, jak přesně funguje ten diferenciál, ale tady nepomáhá. A ano, jak na začátku mi říkal HonzaR, ty hladká kola kloužou fakt hodně.
Další (vtipné) pozorování bylo, že jsem špatně pochopil manuál:
SWC for S4 rocker high school low-speed control mode, to forward gear, for example: SWC is at the top of the S4 rocker control the vehicle's highest speed for the low-speed mode driving; SWC is in the middle of the position when the S4 rocker control the vehicle for the medium-speed mode driving; SWC is in the bottom of the position of the S4 rocker control the vehicle for the high-speed mode driving.
Asi jediná zřejmá poloha je in the middle. Ale co je nahoře a co dole? Jako tak jak se to chová mi to dává smysl. Řekl bych, že mne zmátla věta: If the SWA/SWB/SWC/SWD toggle switches are not in the default position when powering on, an alarm interface will appear, prompting you to toggle all switches to up, and enter the main interface normally when all switches are in the default position. Tj. up je … mají to dobře, jen se naučit číst! Tak jak jsem popojížděl v předsíni s 20cm místa vpřed a vzad, tak jsem to měl samozřejmě na high-speed driving. Hmm, tak ta maximálka je (pro autonomního robota) celkem rozumná a na startu musí být páčky s nejmenší povolenou rychlostí.

10. února 2024 — Odyssey a 3x USB

Uznávám, že tu dokumentaci nějak flákam. Jsou to sice převážně drobnosti, ale z čeho jiného se skládá život (robota)? Dnes jsem s Patem chvíli jezdil venku „autonomně”. Bylo to jednoduché osgar.go s opakováním 10x na jízdu 1m tam a zpět. Nejprve jsem jezdil rychlostí 0.1m/s (jako v předsíni) a pak to zvedl na 0.5m/s (při pomalé jízdě měl na chodníku občas problém a zastavil se). Snažil jsem se to i nahrávat, ale úplně chápu Jirku, že natáčet na mobil, mít v ruce notebook a bezpečnostní dálkové ovládání nějak dohromady nejde. Ale jako důkaz viz video. Pokud si pustíte i zvuk, tak poznáte, že náš pes moc robota rád nemá.
A teď tedy k názvu dnešního příspěvku. Odyssey je malý počítač, který mám zapůjčený od Jakuba. Jedná se o ODYSSEY-X86J4125800. Studenti tam předinstalovali Ubuntu 22.04 a výkonově je na tom asi 10x lépe, než starý Alix, kterého jsem chtěl použít na logování dat. Od TomášeR mám napájecí kabel, takže jede na 12V z robota (k dispozici je ještě 24V, což plánuji pro VanJee lidar, a 48V).
Odyssey má 3 USB porty, které jsem velmi rychle zaplnil — pro řízení robota potřebuji USB-CAN převodník (PeakCAN), na detekci překážek jsem tam dal OAK-D kameru a do zbylého portu zapojil starou USB GPS. Hodilo by se mít ještě couvací kameru, 2x Pozyx majáčky a možná i SSD disk na ukládání dat … prostě brzy dojde na USB hub.
S ovladačem na PeakCAN jsem trošku zápasil a když už to fungovalo, tak jsem přidal OAK-D kameru a „rozbilo se to”. Ale nebylo to kamerou, ale (za tento hint díky moc týmu Robotika ) kvůli automatickému upgrade kernelu na pozadí! No kdybych mohl, tak bych ten vychytralý SW nejraději do toho pozadí nakopal. Jakub to komentoval: xubuntu by nemělo být tak arogantní jako ubuntu … tj. na Odyssey je asi to xubuntu, ale stejně. Prostě je to připojené na wifinu a dále na internet, tak co by si to nestáhlo nejnovější aktualizace?
Z náhodných kopii textů z terminálu je změna vidět:
2024-01-27
Leaving directory '/usr/src/linux-headers-6.5.0-14-generic'
vs.
2024-02-02
- manually installing pcan under /lib/modules/6.5.0-15-generic/misc…
… ono vlastně přeinstalování pomohlo — znova se ten samý driver nakopíroval, ale do jiného adresáře.

2. března 2024 — Pat follows Path

Je to bída! Dnes jsem si raději prohodil priority, abych se ke hraní s robotem vůbec dostal. :-( Ostatní přistávají na Měsící a já ještě ani pořádně nepopojel. Ale postupně — dnes už robot „sledoval cestu” (čistě z odometrie) a sbíral data. Stále jsem nepřimontoval ten VanJee lidar takže získaná data nejsou úplná. Také mám už cukání „slanit” ze svahu a pohybovat se dole na louce na řádově větším prostoru. Snad brzy.

Nahrávky byly pouze z robota, takže co mám je např. unlisted video, kdy robot projíždí mezi kuželama. No styděl jsem se to dát public, tak snad na to nemusíte ani klikat. … ale reálná data na detekci kužele to jsou.
p.s. přidal bych i nějaké pohledy z lidarview (alespoň trajektorii), ale zase se mi tu něco updateovalo a pygame nejede bez restartu … někdy přístě …

24. března 2024 — Navigace na kužel

MartinL se nechce veřejně pochlubit, jak s Rocker robotem jezdil před 14ti dny U-čko a během 15minut jízdy ujel cca 200m, a já tady mám vytahovat, jak se Pat horko těžko 20 sekund navigoval ke kuželu?! Ale nechť, za mne nějaký postup je:
Obrázek je z lidarview.py, který jsem hackoval, aby zobrazoval i nové detekce z OAK kamery. Zobrazen je i VanJee lidar pro úhly 0 a -10 stupňů a je například vidět, že vodorovně (světle zelené body) kužel detekován vůbec není!
Mezi nové poznatky patří:
  • nutnost odolnosti vůči dešti (když jsem měl konečně chvíli na testování, tak každych 10 minut pršelo a to jsem pořádně ani nestihl vyjet z předsíně)
  • externí WiFi anténa — ona tam nějaká je, ale když je robot už 10m od chaty, tak se spojení ztrácí (jedu přes společné AP s přístupem na internet). Asi nejzábavnější bylo, že robot klidně vyjel (má se rozjet až když detekuje kužely), ale na obrazovku žádné detekce nevypisoval … protože výstup na konzoli byl výrazně opožděn
  • chtělo by to něco jako rozvodovou skříň, tj. když zapnu robota, abych s ním kousek na dálkové ovládání popojel, tak nepotřebuji rovnou pouštět lidar a počítač
Pak ještě jeden „staronový” aneb, že ta OAK-D Pro varianta hrozně žere místo (došlo mi i místo na notebooku, takže půlku logů jsem si ještě nestáhl):
(osgar) md@md-ThinkPad-P50:~/git/osgar-apps$ python -m osgar.logger
                   /data/pat/2024_03_24/cones-challenge-240324_161328.log
 k                    name     bytes | count | freq Hz
----------—-
 0                     sys    762653 |  9159 | 159.4Hz
 1    app.desired_steering      6220 |  1428 |  24.8Hz
 2            platform.can    116909 |  6877 | 119.7Hz
 3 platform.emergency_stop         1 |     1 |   0.0Hz
 4         platform.pose2d     12561 |  1428 |  24.8Hz
 5                 can.can    622914 | 36642 | 637.6Hz
 6               oak.depth 274503824 |   536 |   9.3Hz
 7               oak.color 514189468 |   536 |   9.3Hz
 8    oak.orientation_list    294234 |   534 |   9.3Hz
 9          oak.detections     28147 |   535 |   9.3Hz
10           oak.depth_seq      4440 |   536 |   9.3Hz
11           oak.color_seq      4440 |   536 |   9.3Hz
12      oak.detections_seq      4431 |   535 |   9.3Hz
13            gps.position       638 |    58 |   1.0Hz
14          gps_serial.raw     19687 |  2894 |  50.4Hz
15              vanjee.raw        36 |     1 |   0.0Hz
16              vanjee.xyz         0 |     0 |   0.0Hz
17             vanjee.scan   2339649 |   573 |  10.0Hz
18           vanjee.scan10   2601617 |   573 |  10.0Hz
19           vanjee.scanup   2316595 |   573 |  10.0Hz
20          vanjee_udp.raw  12716052 |  9169 | 159.6Hz
21      obstdet3d.obstacle      4815 |   535 |   9.3Hz

Total time 0:00:57.466885
… 774M za necelou minutu, a to je ta kamera uměle omezovaná na 10Hz.
Teď koukám, že i ten sys je nějaký velký …
…
0:00:57.430776 0 b"{'name': 'vanjee_udp', 'delay': 57.111811, 'channel': 'raw', 'caller': 'run_input'}"
0:00:57.430979 0 b"{'name': 'vanjee_udp', 'delay': 57.113248, 'channel': 'raw', 'caller': 'run_input'}"
0:00:57.431503 0 b"{'name': 'vanjee_udp', 'delay': 57.113418, 'channel': 'raw', 'caller': 'run_input'}"
… no je to report zpoždění, ale VanJee se jenom v úvodu zapne a pak už mu není třeba nic dalšího posílat. TODO fix report
A divnosti, resp. „nedodělky”? Když už kužel nevidí, tak stejně jede vesele dál. Zastaví ho pouze překážka do 1 metru. Už to vidím:
speed, steering_angle = self.max_speed, 0
if self.last_detections is not None and len(self.last_detections) == 1:
    x1, y1, x2, y2 = self.last_detections[0][2]
    steering_angle = (self.field_of_view/2) * (0.5 - (x1 + x2)/2)  # steering left is positive
… no evidentně jsem se s tím moc nepáral a i je teď jasné, proč na dva kužely moc nereagoval. Do další verze jsem chtěl před kuželem zatáčet vlevo dokud kužel nezmizí a pak dokud se zase neobjeví. Pak už by mohl vesele jezdit mezi dvěma kužely tam a zpět. Ale to už asi do velikonoc nestihnu. :-(

7. dubna 2024 — Killer Application

Když jsem před léty poprvé slyšel pojem Killer Application, tak jsem si říkal, že je podivné, že firmy píšou zabijácký software a ještě se tím chlubí! Dnešní AI si o tom myslí toto. Zajimavé je, že je to relativně starý koncept:
The concept of a killer app has been around for decades, with examples such as the VisiCalc spreadsheet for the Apple II in the late 1970s, Lotus 1-2-3 and Excel for the IBM PC in the 1980s, and the Mosaic Web browser for the Internet in the early 1990s. These applications were so good that they provided reason enough to purchase the hardware, becoming the defining feature of their respective platforms.
Dnes ale chci mluvit o jiné interpretaci a to jak se z Pata s nevinným (14 let starým) programmem followme.py stal „zabiják”. Ale pěkně popořádku …
O víkendu jsme měli návštěvu a robot z předsíně (fakt se kolem něj nedalo skoro protáhnout) musel pryč. Ze svahu jsem se ho pustit neodvážil a došlo tedy na již „osvědčenou technologii”: vysazení zadních vrátek (v kombinaci s hárající fenou a okolo číhajících nápadníku celkem zábava, ale naštěstí si dali chvíli pauzu), vyvezení Pata na kopeček, přistavit Sharana, první test nájezdu (úspěšný) a převoz autem cca 1km dolu na spodní zahradu. Tam je o řád více prostoru, tak jsem nasbíral pár logů (cca 1GB/min). Mimo jiné i záběry mostíku, kam bych rád jednou Pata pustil samotného:
mostík pohledem z hloubkové kamery
mostík pohledem z hloubkové kamery
Jako slabina „nového ubytování” se ukázala, že se tam Pat se senzory na výšku nevejde. :-( … tak jsem odšrouboval lidar, OAK-D a krabici s Odyssey deskou, vypojil hlavní, vlastně jediný, propojovací konektor s robotem (trošku mi to připomíná způsob napojení Matrixu na mozek) a bylo. Jako vedlejší (pozitivní) efekt jsem pak řídící počítač mohl zapojit rovnou do zásuvky a data si během chvíle přetáhnout.
Nicméně, byl tam i negativní vedlejší efekt na který jsem narazil až dnes. Doslova jsem si „ukradl” hodinku na hraní, sešroubuji robota, pustím pokusně follow me se zamáčknutým STOP tlačítkem a … nefunguje CAN! To už není novinka, viz pozn-240210. Prostě tím, že jsem připojil počítač z robota na internet tak neměl lepší nápad, než si zase upgradeovat jádro. :-( … jen tentokrat make install nefungovalo: /home/robot/peak-linux-driver-8.16.0/driver/src/pcan_main.c:3506:22: error: initialization of ‘ssize_t (*)(const struct class *, const struct class_attribute *, char *)’ {aka ‘long int (*)(const struct class *, const struct class_attribute *, char *)’} from incompatible pointer type ‘ssize_t (*)(struct class *, struct class_attribute *, char *)’ {aka ‘long int (*)(struct class *, struct class_attribute *, char *)’} [-Werror=incompatible-pointer-types] To jsem úplně nerozdejchal — pochopte jste s robotem mimo net, resp. pár znaků tam a zpět prošlo, ale k nějakému komfortu to mělo hodně daleko, … a wono to neumí ujet ani 1 metr?! Šel jsem místo toho oživovat po zimě traktůrek, dofukovat kola a tak …
Nový kernel 6.5.0-26 ale jde použít s nejnovější verzi PCAN driveru peak-linux-driver-8.17.0 z ledna 2024. A stejný problém je popsaný i na Peak system fóru. Cvičně jsem se pokusil změnit update kernelu na manuální, ale jestli se to povedlo, se nejspíše dozvím až na Robotem Rovně 2024 a tam to bude už bez netu.
Jelikož času až tak moc nebylo, tak jsem původně chtěl vyzkoušet něco jednoduchého a Eduro followme s VanJee lidarem už jezdilo. Po pravdě to byla jedna z motivací to nejprve na Eduru „oprášit” a rozšířit na 360 stupňový lidar — se starým SICKem to jezdilo např. před 12ti lety na Floriade 2012. A to už se pomalu dostáváme k tomu zabijákovi. Pustil jsem to, stál jsem před robotem, a ten na mne vyrazil „na plný koule”, ještě trošku upravil zatočení, aby mne opravdu trefil. F* Do konfigurace jsem dal "max_speed": 0.2 a stejně do příkazové řádky … ale to co jsem viděl bylo daleko agresivnější. Také se potvrdilo, že STOP tlačítko vzadu na robotovi je úplně k ničemu, protože to už bych měl přeražené nohy … jako u 360deg pokrytí si vás robot snadno najde. Konečně ani Ctrl+C přes problémovou síť, kdy to někdy dojde, není ta správná volba. Oni Číňani věděli, proč dálkové ovldádání nejde vypnout pokud je robot zapnutý (zatím to řeším jen vytažením baterek, protože mi přijde, že se to pere s wifinou). No nic, druhý pokus, tentokrát se zapnutým dálkovým ovladačem a Pat se zase na mne vrhl a stěží jsem stihl zareagovat … hmm.
Vysvětlení je poměrně prosté, viz followme.py:L111: speed = 0.2 + 2 * (near - desiredDistance). Na žádnou max_speed si tento stařičký kód nehraje. Jako u Edura to nevadilo, protože maximálku mělo poměrně nízko, ale pro Pata jsem pak v logu našel:
(osgar) md@md-ThinkPad-P50:~/git/osgar-apps$ python -m osgar.logger pat-followme-240407_155741.log
     -stream app.desired_speed
0:00:00.254637 1 [1334, 1650]
0:00:00.353701 1 [1340, 1680]
0:00:00.453620 1 [1346, 1740]
0:00:00.553774 1 [1348, 1800]
0:00:00.653843 1 [1332, 1920]
0:00:00.753903 1 [1274, 1920]
0:00:00.853871 1 [1202, 1830]
…
F* … 16.5 stupně vlevo, rychlost 1.3m/s … to moc nevypadá na omezení 0.2m/s … no prostě si na hračky dávejte bacha, a revolver (nebo dálkové ovládání) mějte vždy po ruce. A zapnuté. A prst na spoušti.

14. dubna 2024 — Cones Challenge v1.0 (10 minut)

Dneska to vlastně byla nuda (když to porovnávám s minulou neděli ). Pat se mne nesnažil přelámat končetiny, skoro to hned fungovalo … nějak jsem si vybavil jednak Sebastianova "nudného robota" (Sebastian Thrun) a dále komentář na RoboRace (autonomní elektrické formule), že to bude zábava jako sledovat otáčející se buben elektrické pračky. To byly moje dnešní pocity. Na druhou stranu jsem měl celou hodinu zapnuté dálkové ovládání, prst na „spoušti” (přepínání autonomní/manuální režim) a jen občas zkusil natočit něco na telefon.
první jízda max_speed=0.2m/s a timeout 120s dělala co měla:
  • pokud vidíš právě jeden kužel, naviguj jeho směrem
  • pokud je kužel ve vzdálenosti menší než 2 metry, zatáčej doleva (limit zatáčení)
  • pokud je překážka z hloubkové kamery do jednoho metru zastav
Jako bylo to tak brutálně pomalé, že stačil dojet jenom tam a zpátky.
Pro další jízdu jsem zdvojnásobil rychlost na 0.4m/s a trošku posunul kužely ať robot jezdi „skoro po cestě”. A přestalo to fungovat. Na videu je vidět, jak jezdí dokolečka místo aby jel zpátky na první kužel.
Moje první teorie byla, že nestíhá detekovat kužely a že vlastně jede podle starého záznamu videa. Proto jsem ho občas pozastavil na dálkovém ovladači „aby se chytnul”. Někdy to fungovalo, někdy ne. A kde byl zakopaný pes? Mimichodem ten štěkající pes v tomto videu není náš, ale souseda naproti … asi robot Pat opravdu u psů není oblíben. V tom algoritmu výše chyběl detail, že když začně točit, tak na nějaký čas kužely ignoruje (aby náhodou nenavigoval znova na ten samý) a jakmile pak kužel detekuje, tak se k němu vydá. Jen ten ignorační čas byl trošku dlouhý = 20 sekund (viz 28eb0af). Pro rychlost 0.2m/s asi nutnost, ale pro vyšší nepoužitelné!
Aby to bylo více akční, tak jsem postupně zvyšoval rychlost (pomocí -param app.max_speed=0.7). Ale tím jsem se sám chytnul do vlastní pasti, kdy po minulém zážitku jsem dal SW speed limit přímo pro samotnou platformu (viz PR #987). Pokud si chce programátor nově zahrávat s „nebezpečnou rychlostí”, tak je třeba změnit i limit platformy, tj. -param app.max_speed=0.7 platform.max_speed=0.7. Skončil jsem u 1m/s, ale stále to vypadalo jako ta automatická pračka … viz poslední video.
Timeout jsem dal jen 10 minut — on by si rozhodčí stejně stěžoval, že ty kužely nejsou dostatečně daleko a možná by měl i jiné námitky. A také chci dát šanci ML, protože příští víkend se k tomu nedostanu. A po pravdě, když jsem se pak u té 10 minutové jízdy nudil, tak jsem kužely začal posouvat až na konec cestičky … a nefungovalo to. Proč bych měl zjistit z logu, ale zda se, že přes WiFi to dnes ani všechno nestáhnu (6.3MB/s a např cones-challenge-240414_145616.log má 9.1GB, zhruba 1GB/min, s tím budu muset také něco udělat). Co bylo v logu tedy až „někdy příště” …