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: 20/10/2024 — Cones Challenge v1.1 (1h)
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
- 230908 - Nalodění
- 230927 - Prověření transakce, beneficiary name a EVER GLOBE
- 231103 - Čínský agent v Praze
- 231110 - První dojmy
- 231113 - Baterka a brzda
- 231115 - ZERO battery voltage
- 231116 - PCAN
- 231118 - Remote Control
- 231119 - První ujeté centimetry a User manual V2.2.0
- 231123 - Nabíječka a dálkový ovladač
- 231127 - Zbyňkovy hračky a Anderson konektory
- 231221 - Stará baterka
- 240102 - Odložené uspokojení
- 240103 - Konec srandy - baterka je zpátky v Německu!
- 240111 - Vzkříšení
- 240119 - Nová baterka!
- 240120 - Pat nemá rád sníh
- 240210 - Odyssey a 3x USB
- 240302 - Pat follows Path
- 240324 - Navigace na kužel
- 240407 - Killer Application
- 240414 - Cones Challenge v1.0 (10 minut)
- 240502 - 4 kužely CCW
- 240906 - Push me!
- 241020 - Cones Challenge v1.1 (1h)
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:
|
|
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:
… 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 |
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.
Už 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ě” …
2. května 2024 — 4 kužely CCW
Včerejší prvomájové testování byla dost tragédie. Nejprve nefungoval CAN driver (jádro se posunulo na 6.5.0-28, takže bych možná tady v textu našel, že
bývalo starší). Tj. blokace automatického upgrade evidentně nefungovala a možná jsem to navíc trošku rozbil, když jsem se snažil nainstalovat ros2,
ale o tom až někdy jindy. V plánu mam „přetrhat všechna spojení na internet”, wifi změnit na Access Point (to byl druhý problém, že jak se vše zazelenalo
tak už jsem nebyl schopen se za potokem připojit) a vyhrazený statické IP na zbyly Ethernet port. Zůstal mi krátky červeny Ethernet kabel, takže už barva
naznačuje jen v krizových situacích.
A co to tedy mělo dělat? Místo dvou kuželů jsem na zahradu dal čtyři a změnil v kódu podmínku, aby místo akceptace pouze jednoho jediného detekovaného kuželu
to pracovalo i vícero ve výhledu. Navigovat se měl jenom na ten co vidí vpravo, takže v kombinaci se zatáčením vlevo měl jezdit do obdélníku proti směru
hodinových ručiček. Když to byl právě jeden kužel, tak to byla skoro jistota, že je to ten pravý — teď do hry vstupují i různí „duchové”,
ale po pravdě jejich vliv jsem moc nezaregistroval. Co se zase rozbilo bylo to 3s otáčení naslepo. Proč? Začínal jsem rovnou na rychlosti 1m/s, ale
teď se už neměl otáčet 180 stupňů, ale pouze 90, takže by stačil i poloviční čas, kdy detekci kuželů ignoruje. A bylo to často přesně na hranici o zlomek
sekundy, takže řešení to snížit na například 2s by to „řešilo”, ale asi už bylo dost tohoto hacku. A hlavně pak nedetekuje nic a také nic nedělá,
což mne asi trápí více.
Co jsme se bavili s Jirkou před týdnem, tak je na čase začít kužely mapovat a vylepšit odometrii (viz minulý příspěvek, že ta odometrie z enkoderů
na zadních hnaných kolech není úplně ideálni). Včera jsem jezdil i na „sousedním políčku”, které nám rozvrtali divočáci, a tam je krasně vidět, jak to v jednom
místě pravidelně „ustřelí”, když je jedno z kol ve vzduchu (ano, Pat stále jezdí bez nákladu).
p.s. tak alespoň jedno unlisted video
p.s.2 PS píše: ... nicméně, jak jsem to tak četl, napadl mě námět na velkofilm "Pán robotů: Čtyři kužely"
6. září 2024 — Push me!
Vypadá to, že se tady nic 4 měsíce (!) nedělo, ale on v mezičase byl Pat na Robotem Rovně a později
s Cogito na ELROBu …
A s ELROBem a kategorií
Mula to vlastně i souvisí. Tam je úkolem nejprve robota provést z A do B, a pak už robot mezi těmito dvěma místy jezdí sám. A pravě ta úvodní follow me fáze
je „taková divná” — opravdu se chcete „procházet” před několikatunovým transportérem? A stále se otáčet, jestli jede za vámi jak má? Případně zda nemáte
popoběhnout?! Nebylo by lepši se v klidu procházet ZA ROBOTEM a jen ho lehce navádět, kam má jet? Jednak robotu nebudete překážet ve výhledu, aby si
mohl v klidu trasu mapovat pro cestu zpět, a dále ho budete mít „stále na očích”. Tolik teorie.
Ano, lehce jsme se hecovali, že to nebude fungovat, ale … viz video. Trošku mi to připadá jako „nahánění dobytka” … honák
je vidět jenom na lidarovém scanu.
Jak to nejsnáze implemntovat? Jelikož
má Pat 360 stupňový lidar, tak stačí ho virtuálně otočit o 180 stuňů. Pak si začne myslet, že osoba vlevo za robotem je vlastně vpravo před robotem.
A zbytek už je staré dobré follow me.
Ano, bude to chtít ještě „doladit detaily” jako rozumná vzdálenost od robota, zda místo kruhu spíše nevzít v úvahu obdélníkový tvar robota a počítat vzdálenost
od okrajů robota a pod. Je to jen malý krůček, ale možná správným směrem.
20. řijna 2024 — Cones Challenge v1.1 (1h)
No myslím, že by mi to porota neuznala, ale aspoň jsem si trošku zajezdil. Koukám, že před půl rokem (!?), to je fakt hrůza
jak ten čas utíká, jsem první pokusy nazval v1.0, tak nechť toto je drobný „upgrade”, i když na rovinu je to spíše „downgrade”.
První změna, co jsem včera
hacknul, bylo vypnutí detekce překážek … to jako není 2x dobrý nápad a udělat to pořádně je už staré TODO. Další změna byla, že do zatáčky jede robot pomaleji,
aby měl šanci detekovat druhý kužel. Měl jsem tam 1/4 rychlosti pro jízdu rovně, ale to se otáčel tak pomalu, že na místě rozrytém divokými prasaty to nedal.
Změnil jsem to na 1/2 rychlosti jízdy rovně, tj. rovně jel 1m/s a do zatáčky 0.5m/s.
Třetí úprava byla k částečnému odstranění falešných detekcí — když jsi
při zatáčení viděl kužel a zmizel, tak pokud se do 2s neobjeví, tak pokračuj v zatáčení. Něco v křoví mu stále ten kužel připomíná, tak je to taková obezlička
bez přetrénování. No a konečně jsem, letos asi naposledy, posekal trávu a kužel na cestě dal na přepravku, aby byl lépe vidět … no podvodník, co vám budu
vykládat.
A výsledek?
$ python -m osgar.logger /data/pat/2024_10_19/cones-challenge-241019_144119.log k name bytes | count | freq Hz ######################################################### 0 sys 52096485 | 615709 | 160.0Hz 1 app.desired_steering 570208 | 96194 | 25.0Hz 2 platform.can 7850481 | 461793 | 120.0Hz 3 platform.emergency_stop 2 | 2 | 0.0Hz 4 platform.pose2d 1150680 | 96194 | 25.0Hz 5 can.can 41867447 | 2462791 | 639.9Hz 6 oak.depth 3361803388 | 38442 | 10.0Hz 7 oak.color 1362172191 | 38442 | 10.0Hz 8 oak.orientation_list 21182093 | 38443 | 10.0Hz 9 oak.detections 1241670 | 38442 | 10.0Hz 10 oak.left_im 0 | 0 | 0.0Hz 11 oak.right_im 0 | 0 | 0.0Hz 12 oak.depth_seq 410302 | 38442 | 10.0Hz 13 oak.color_seq 410302 | 38442 | 10.0Hz 14 oak.detections_seq 410302 | 38442 | 10.0Hz 15 oak.left_im_seq 0 | 0 | 0.0Hz 16 oak.right_im_seq 0 | 0 | 0.0Hz 17 gps.position 41221 | 3847 | 1.0Hz 18 gps.rel_position 0 | 0 | 0.0Hz 19 gps.nmea_data 704286 | 3847 | 1.0Hz 20 gps_serial.raw 1289847 | 199932 | 51.9Hz 21 vanjee.raw 36 | 1 | 0.0Hz 22 vanjee.xyz 0 | 0 | 0.0Hz 23 vanjee.scan 171430988 | 38481 | 10.0Hz 24 vanjee.scan10 200877685 | 38481 | 10.0Hz 25 vanjee.scanup 172092665 | 38481 | 10.0Hz 26 vanjee_udp.raw 853982871 | 615706 | 160.0Hz 27 obstdet3d.obstacle 345969 | 38441 | 10.0Hz Total time 1:04:08.792693
… prostě hodinu jezdil dokolečka. Ty poslední čtyři minuty (cca) jsem ho přepnul na manuál a přejel ručně k „domečku”, ale jinak jsem do toho nezasahoval.
Zajimavé mi přišlo „rozpoložení testera” — cca prvních 15 minut jsem seděl a koukal, jak to jezdí. Pak jsem robota nechal jezdit samotného
a vozil vedle dřevo. Pak jsem si říkal, že to není úplně dobrý nápad ho nechávat bez dozoru, a že bych měl oprášit tu bezpečnostní kameru.
Netriviální čas jsem se jí snažil přidělat a vzpomenout si, jak se ovládá (možná vhodný okamžik zamergeovat do OSGARa. Konečně jsem si notebook
vzal s sebou a koukal na video blíže k wifině (ale kdyby se něco stalo, tak stejně robota nezastavím). Pokud nic, tak pro změnu narostl seznam co by bylo dobré
vylepšit/posunout:
- automatické sledování robota
- automatické vypnutí robota v okamžiku divného chování
- alarm, pokud robot zmizí
Za včerejšek tedy alespoň dvě mizerné videa z bezpečnostní kamery, kdy jsem nahrával VLC Media Playerem a jak kamera, tak můj notebook neměly ideální
wifi signál (stahování nahrávek z tapo kamery jsem také ještě nerozchodil):
- https://youtu.be/qqk2YCMZr4w — Pat Cones Challenge 2024-10-19
- https://youtu.be/jC8XLQK5u6M
A co dál? Chtěl bych zkusit noční jízdu, ale u prvního pokusu OAK kamera neviděla vůbec nic! Doporučení bylo používat levou a pravou černobílou kameru, ale
to se mi zatím nějak popralo s detekcí na barevné kameře.
A plán B je natrénovat nějaký zajímavější okruh — jj, už jsem si ho vyhledl, jen zatím nevím jak to naprogramovat. … a možná by byl dobré ho také trošku
prosekat.
p.s. pro úspěšnou misi jsem Pata naložil — myslím, že je to 70 litrů (?) kompostu, který pak žena hledala
p.s.2 je divné, že ta videa jsou bez zvuku
p.s.3 důvod ukončení předešlého pokusu cones-challenge-241019_143752.log: