Strona 1 z 2

[MOC] Caterpillar 797F

: 2019-08-27, 17:50
autor: Sariel
Obrazek

Dane techniczne:
Wymiary: dł. 63s / szer. 39s / wys. 32s
Waga: 4.156 kg
Napęd: 2 x PF XL z redukcją 12.6:1
Zawieszenie: przód - niezależne samopoziomujące, tył - kolebka
Silniki: 2 x PF XL, 1 x PF M, 2 x EV3 Large

MOC którego koncepcja zmieniała się kilkakrotnie, postaram się krótko streścić. Punktem wyjścia były opony - większość opon LEGO jest szersza niż prawdziwe opony, co nastręcza problemów przy budowie wielu pojazdów, szczególnie takich z podwójnymi kołami na jednej osi. Bodaj największe opony o realistycznych proporcjach to 62.4 x 20 (ok, są jeszcze większe stare ale brzydkie), które nie są jakiejś nadzwyczajnej wielkośći i mocno ograniczają skalę pojazdów które można na nich zbudować. A opony Baja Claw TTC od RC4WD mają proporcje dokładnie jak opony prawdziwego 979F i są duuuuże, stąd pomysł zbudowania dużego modelu tej wywrotki na nich.
Model od początku powstawał jako hybryda PF i EV3. Pierwotnie wyposażony był w 4-biegową skrzynię biegów na selektorach z Chirona którą miał przełączać właśnie unit EV3. Sęk w tym, że wywrotki tego typu mają o wiele mniej miejsca na mechanikę niż się wydaje, dlatego że paka wchodzi głęboko w podwozie i podwozie zwyczajnie musi być bardzo płaskie. W skrzyni nie mieścił mi się przez to stepper, więc wymyśliłem że zastąpię go silnikiem EV3 Medium obracanym co 90 stopni. W teorii działało fajnie, w praktyce okazało się że kiedy model zbliżał się do 4 kg to silnik nie dawał rady utrzymać selektorów i skrzynia wysprzęglała się pod obciążeniem. Czy stepper zamiast silnika by to utrzymał - nie wiadomo, ale ostatecznie wywaliłem całą skrzynię z podwozia. Pozostawiło to drugą funkcję przewidzianą dla EV3, czyli samopoziomujące zawieszenie.
Ciężarówka ma klasyczne podwójne wahacze z przodu i luźną, pozbawioną amorów kolebkę z tyłu. Bardzo chciałem zrobić w końcu coś z EV3, dlatego w przednim zawieszeniu zrobiłem funkcję przechyłu lewo/prawo którą miał sterować właśnie EV3 na podstawie odczytu przechyłu bocznego modelu. Eksperymentowałem z odczytywaniem tego przechyłu z angle sensora z którego osi zwisał ciężarek ale było to mało precyzyjne, potem bawiłem się żyroskopem EV3 ale jak każdy kto miał z nim do czynienia wie, sporo w nim bugów i ma tendencję do "pływania". Szukając czegoś co na bieżąco poda mi faktyczny przechył modelu wykorzystałem w końcu akcelerometr EV3, który mierząc przyspieszenia w trzech osiach potrafi też miarodajnie podać przechylenie w tych trzech osiach. Akcelerometr umieściłem nad przednią osią i napisałem prosty program każący EV3 zasadniczo obracać oś regulującą przechył przedniego zawieszenia o odwrotność aktualnego kąta bocznego. Czyli jak mamy 10 stopni przechyłu w lewo to przechylamy zawieszenie o 10 stopni w prawo - proste jak cep. W praktyce wymagało to sporo dodatkowej zabawy, finalny program wykonuje jednocześnie 5 wątków: odczyt komend z pilota PF (przez sensor IR), wyświetlanie wartości przechyłów i komend na ekranie, poziomowanie zawieszenia, wstrzymywanie poziomowania jeśli kąt przechyłu nie przekracza +3 albo -3 (żeby EV3 nie merdało zawieszeniem tylko dlatego że czyta przechył o włos od idealnego poziomu) i wreszcie antistalling czyli przeciwdziałanie blokowaniu się silnika. Nie wiem ile bugów ma soft od EV3 ale cały program co jakiś czas zawieszał silnik, tzn. wysyłał mu jedną komendę i trwała ona w nieskończoność. Jedynym rozwiązaniem jakie znalazłem było napisać osobny wątek który mierzy czas pracy silnika i jeśli silnik wykonuje jedną komendę dłużej niż 2 sekundy to go wyłącza. Całość poniżej:

Obrazek

Tak oprogramowana ciężarówka faktycznie sama reaguje na przechyły boczne i stara się wrócić do pionu, co z jednej strony wygląda fajnie, ale z drugiej działa dość ślamazarnie (cały program ma woooolny czas reakcji, nie umiem powiedzieć czy to przez te 5 wątków wykonywanych naraz czy przez wolny odczyt z akcelerometru) i w sumie niewiele w praktyce daje. Myślę że nie jest to rodzaj MOCa w którym taki bajer wypada najlepiej.
Mając na pokładzie EV3 zaprzęgnąłem je jeszcze do podnoszenia paki. Służy temu jeden silnik EV3 Large napędzający dwa siłowniki śrubowe w odpowiedzi na komendy z pilota PF które EV3 czyta sensorem IR schowanym w prawym boku. Co ma ten minus że cały sensor jest większy od wieży IR, ale ten plus że odsłonić trzeba tylko wycinek 1x1 stud z całego sensora.
Model nie jest jakoś powalająco wierny czy funkcjonalny, myślę że traci na ogromnej ilości miejsca jaką pożera unit EV3 i na konieczności ściągania całego przodu żeby się do tego unitu dostać. Wyzwaniem był też napęd 4-kilogramowego potwora za pomocą ogromnych kół i to przez oś która jest luźną kolebką bez amorów. Rozważałem dodanie amorów i dodatkowego silnika EV3 large poziomującego tylną oś, ale psuło to wygląd i wymagało miejsca pod paką którego zwyczajnie nie było, dlatego rozwiązaniem poprawiającym stabilność tylnej osi jakie wypracowałem jest redukcja między kołami a dyfrem. Zauważyłem że im więcej jej tam jest, tym mniej tylna oś rwie się go kiwania na boki przy ruszaniu. Początkowo miałem tam redukcję 3:1 i kolejne 3:1 w przekładniach planetarnych które zbudowałem sobie z dużych obrotnic i przypiąłem do nich koła. Niestety tak zbudowane przekładnie generowały sporo tarcia, dlatego poczekałem na 42099 i wsadziłem zamiast nich jego przekładnie planetarne (poprzedzone redukcją 1.6:1 po dyferencjale). Ich wewnętrzna redukcja 5.4:1 rozwiązała wszystkie problemy z redukcją, tarciem i jazdą w ogóle.
Model trochę męczy się ze skręcaniem bo opony przednich kół uginają się pod takim ciężarem - swoją drogą całkiem jak w prawdziwym 979. Z jazdą po prostej problemu nie ma, jestem też zadowolony że paka, sama ważąca prawie 2 kilo, daje się podnieść z 2 kg ładunku, chociaż silnik EV3 Large wyje przy tym żałośnie i ociera pot. Na pewno przód wisi za nisko, co jest kombinacją wagi cisnącej na zawieszenie i opony, oraz faktu że pociągnąłem nadwozie trochę bardziej w dół żeby zakryć unit EV3.
I to w sumie tyle. Nie jestem jakoś szczególnie zadowolony z tego modelu, był to eksperyment na wielu frontach, grunt że mam go w końcu za sobą :)

Kilka fotek:
Obrazek Obrazek Obrazek Obrazek Obrazek Obrazek Obrazek Obrazek

Kilka fotek WIP:
Obrazek Obrazek Obrazek Obrazek Obrazek Obrazek

Galeria: https://bricksafe.com/pages/sariel/cate ... dump-truck
I film:


: 2019-08-27, 20:16
autor: M_longer
Kawał sprzętu. Nie chciałeś zrobić przeszklonej kabiny?

: 2019-08-27, 20:48
autor: eric trax
Podoba mi się wizualnie bo ma realistyczne proporcje dzięki tym oponom. Najbardziej byłem ciekaw tego systemu poziomowania i troche szkoda tej sporej latencji. Nie wynika ona z ograniczonej mocy obliczeniowej kostki? Liczyłem, że opóźnienia będą mniejsze bo chciałem to wykorzystać w innym projekcie ale troche smuteczek.

: 2019-08-27, 20:59
autor: Sariel
eric trax pisze:Nie wynika ona z ograniczonej mocy obliczeniowej kostki? Liczyłem, że opóźnienia będą mniejsze bo chciałem to wykorzystać w innym projekcie ale troche smuteczek.
Żyroskop EV3 nie ma takiej latencji, więc podejrzewam że to kwestia sensora. Akcelerometr jest produkcji HiTechnic, nie bezpośrednio LEGO, i powstał jeszcze w czasach NXT. Teoretycznie ma sterownik do EV3, ale może nie działa do końca dobrze?
M_longer pisze:Kawał sprzętu. Nie chciałeś zrobić przeszklonej kabiny?
Nie miałem kompletu szybek w jednym kolorze a naprawdę już mi się nie chciało robić kolejnego zamówienia pod BL tylko pod to. Wszystkie powinny być w trans-clear, przynajmniej tak to wyglądało kiedy siedziałem w prawdziwym Cacie 789c :)

: 2019-08-27, 22:15
autor: eric trax
Sariel pisze:
eric trax pisze:Nie wynika ona z ograniczonej mocy obliczeniowej kostki? Liczyłem, że opóźnienia będą mniejsze bo chciałem to wykorzystać w innym projekcie ale troche smuteczek.
Żyroskop EV3 nie ma takiej latencji, więc podejrzewam że to kwestia sensora. Akcelerometr jest produkcji HiTechnic, nie bezpośrednio LEGO, i powstał jeszcze w czasach NXT. Teoretycznie ma sterownik do EV3, ale może nie działa do końca dobrze?
Całkiem możliwe. Nie mniej podziwiam samozaparcie w stworzeniu tego systemu i sam pomysł.

Jakie jest obciążenie tylko tylnej osi? 1,5kg? Jak w Twojej ocenie poradziły sobie nowe zwolnice z dużym obciążeniem? Był problem z rozjeżdżającymi się kołami? Na filmie tego nie zauważyłem

: 2019-08-28, 00:10
autor: legosamigos
Chyba paka jest za ciężka, bo strasznie nią telepie :) przy podnoszeniu. Ale przynajmniej zwierzaki mają duże koryto z żarciem :D Tych zwierzaków trochę Ci się nazbierało, a wykarmić je wszystkie , to trochę kasy też pochłania :)

: 2019-08-28, 01:00
autor: Tranzystor
Ciekawy projekt. Szkoda, że tak mało jest w tym dziale modeli wykorzystujących EV3.
Sariel pisze:podejrzewam że to kwestia sensora
Nie ma co gdybać. Zmierz jakie ma opóźnienie. Na filmie wygląda jakby było co najmniej kilkusekundowe. A wtedy całe to poziomowanie nie ma prawa działać. Możliwe, że ten czujnik nie działa dobrze z softem EV3, można by spróbować innego języka, albo czujnika od mindsensor.
Sariel pisze: Nie wiem ile bugów ma soft od EV3 ale cały program co jakiś czas zawieszał silnik
Nie spotkałem się z czymś takim. Soft z EV3 raczej ma mało bugów, jedyny problem to wolne działanie. I im więcej wątków tym wolniej. Tu można by bezproblemowo połączyć wszystkie w jeden i znacznie by to przyspieszyło działanie programu. Wydaje mi się też, że masz w programie błąd, silnik A może być sterowany dwoma pętlami na raz, możliwe, że przez to się zawieszał.

Dziwi mnie, że sterujesz kątem, a nie prędkością silnika.
Sariel pisze:jak mamy 10 stopni przechyłu w lewo to przechylamy zawieszenie o 10 stopni w prawo - proste jak cep.
Jeśli podniesiemy koło, mamy przechył (uchyb), zawieszenie się przechyla, uchyb znika, zawieszenie wraca do 0. Przy ciągle podniesionym kole. Więc teoretycznie powinno się później zaczynać telepać. Nie jest tak, czy źle rozumuję?

Ogólnie z tym autopoziomowaniem, gdyby dopracować soft, użyć mniej bezpośredniego napędu przechyłu i sterowania PID (a ty Sariel o ile pamiętam się na nim znasz), to mogło by to działać idealnie i było by WOW, a na dzień dzisiejszy jest to jednak trochę niedopracowane.

: 2019-08-28, 05:01
autor: Jellyeater
Ogólnie z tym autopoziomowaniem, gdyby dopracować soft, użyć mniej bezpośredniego napędu przechyłu i sterowania PID (a ty Sariel o ile pamiętam się na nim znasz), to mogło by to działać idealnie i było by WOW, a na dzień dzisiejszy jest to jednak trochę niedopracowane.
Jest szansa na kolejną wersję. A może spróbować zrobić coś na kształt citroena CX? ;-)

CAT budzi respekt, dobrze oddana wielkość prawdziwej maszyny.

: 2019-08-28, 06:46
autor: Sariel
eric trax pisze:Jakie jest obciążenie tylko tylnej osi? 1,5kg? Jak w Twojej ocenie poradziły sobie nowe zwolnice z dużym obciążeniem? Był problem z rozjeżdżającymi się kołami? Na filmie tego nie zauważyłem
Zwolnice miodzio, łożyskują i stabilizują koła znacznie lepiej niż wcześniejsze piasty. Wydaje mi się że czasem było widać lekkie ugięcie tylnej osi, szczególnie z podniesioną paką kiedy większość masy była z tyłu, ale to raczej nie wina zwolnic tylko miękkich opon.

: 2019-08-28, 10:25
autor: Neo
Na wstępie jako fan Mindstormsowo-technicowych mariaży powiem : Lubię to ! … a nawet Super ! :)
Wydaje mi się, że działanie poziomowania można by zoptymalizować.
Po pierwsze jak zauważyłeś HiTechnicowy akcelerometr jest zdecydowanie gorszym rozwiązaniem niż żyroskop LEGO (wykorzystujesz tylko jedną oś pomiaru, a akcelerometr mierzy wszystkie trzy, co nie przyśpiesza procesu).
Po drugie spróbuj zmniejszyć ilość pętli w programie. odczyt z akcelerometru do różnych celów można zapakować do jednej pętli. Zmniejszy to przejrzystość programu, ale przyspieszy jego działanie.
I czy na pewno w pętli odpowiedzialnej za wyświetlanie potrzebne jest opóźnienie aż 0,5 sekundy ? (a próbowałeś odpinać tę pętlę i sprawdzać jak to wpłynie na opóźnienie całego procesu ? )

: 2019-08-28, 11:05
autor: Sariel
Myślisz że pętla wyświetlania na ekranie może opóźniać pętlę obsługującą akcelerometr? Dałem jej pół sekundy opóźnienia bo bez tego ekran cały migotał i wydawało mi się że spowolnienie jego odświeżania wyjdzie na plus.

: 2019-08-28, 11:18
autor: Neo
Zajmując się Mindstormsami z pewnością spotkałeś się z sytuacją, w której analizując kod programu logicznie nie byłeś w stanie wytłumaczyć końcowego efektu :) i jedyną metodą była metoda prób i błędów :)
Napisz proszę jaki skutek odniosło całkowite odpięcie pętli odpowiedzialnej za wyświetlanie (sam jestem ciekaw :) )

: 2019-08-28, 13:59
autor: Tranzystor
Sariel pisze:Myślisz że pętla wyświetlania na ekranie może opóźniać pętlę obsługującą akcelerometr? Dałem jej pół sekundy opóźnienia bo bez tego ekran cały migotał i wydawało mi się że spowolnienie jego odświeżania wyjdzie na plus.
Sariel, każda dodatkowa pętla go spowalnia. Przy 5 pętlach zamiast 1 całość będzie działać nawet 5 razy wolniej. Możesz łatwo to sprawdzić mierząc częstotliwości z jakimi działają poszczególne pętle. I po co odczytywać czujnik 3 razy, skoro wystarczy tylko raz.

: 2019-08-29, 10:37
autor: dmac
Miałem nadzieję, że przewieziesz nim tego psiaka, a nie tylko karmę ;) .

Nie wiem, czy problemy z szybkością działania programu da się rozwiązać, ale sam fakt, że występują - bo w końcu nie chodzi tu o obliczanie trajektorii lotu na Marsa, tylko o czytanie danych z jednego czujnika! - budzi niesmak. Czy przepaść dzieląca Mindstorms (i nie tylko, bo i nowy system, z tego co widzę, na dziś nie wygląda najlepiej), a przeciętną elektroniką użytkową A.D. 2019 nie stała się wręcz żenująca?

Tyle dygresji. Sam model zaś prezentuje się imponująco. Aż trudno uwierzyć, że dwa siłowniki podnoszą cztery kilogramy; zwłaszcza, że dźwignia nie jest szczególnie korzystna. Nie jestem znawcą tematu, ale autonomiczny system utrzymujący równowagę pojazdu za pomocą kostki Mindstorms widzę po raz pierwszy, więc brawo za ambitną próbę. Jeśli uda się zoptymalizować program, zmierz się z tematem AT-ST :D . To jest dopiero utrzymywanie równowagi, level: Expert ;) .

Brawo!

: 2019-08-30, 08:57
autor: SAMOLOT
Piękny. Na mnie wrażenie robi zwłaszcza podnoszenie tak ciężkiej paki. Mi zazwyczaj strzelają sprzęgła w siłownikach albo brakuje wychylenia. Jak bym się miał do czegoś przyczepić do do tego niskiego przodu. No ale może mu po prostu szczęka opadła z wrażenia jak się w lustrze zobaczył :)