Skocz do zawartości

klonyyy

Użytkownicy
  • Zawartość

    874
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    30

klonyyy zajął 1. miejsce w rankingu.
Data osiągnięcia: 21 czerwca 2023.

Treści użytkownika klonyyy zdobyły tego dnia najwięcej polubień!

2 obserwujących

O klonyyy

  • Urodziny 04.05.1998

Informacje

  • Płeć
    Mężczyzna
  • Moje zainteresowania:
    robotyka

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika klonyyy

Kreator

Kreator (11/19)

  • Regularny bywalec
  • Za 25 postów
  • Za 5 postów
  • Za 100 postów
  • Robotyk

Odznaki

229

Reputacja

  1. Hej, Po tym jak @Gieneq wspomniał o wyjściu SWO, trochę z nim poeksperymentowałem i udało mi się dopisać do STMViewera moduł w którym można w łatwy sposób profilować swój kod, sprawdzać czasy wykonania przerwań, ich kolejność, czy wyświetlać inne bardzo szybkie sygnały. Według mnie jest to fajna alternatywa dla podpinania GPIO do procka i czytania stanu przy użyciu oscyloskopu czy analizatora stanów, bo wymaga jedynie pinu SWO. Tradycyjnie GIF na zachętę: Link do repa: https://github.com/klonyyy/STMViewer Link do posta na blogu: https://pwwprojects.blogspot.com/2023/09/stmviewer-update-trace-viewer-module.html
  2. Pewnie masz na myśli tzw. attach - czasami korzystam z tego trybu, ale z tego, co pamiętam, nadal jest paru sekundowe opóźnienie, aż debugger się podłączy, Cube zmieni konfigurację wyświetlania środowiska itp. Niemniej jednak przyspieszy to nam pracę o kroki, które wspominałeś.
  3. @Gienek powiem szczerze, kiedyś miałem na oku SWO, ale przy okazji zastosowania do logowania przy użyciu tego narzędzia: https://github.com/rokath/trice. Nie pamiętam czemu odpuściłem i nie zgłębiłem tematu. W sumie od wtedy nie używałem SWO i nie interesowałem się nim więcej, do czasu aż napisałeś o SWO w kontekście wykresów w Cubie 😉 Postanowiłem sobie poklikać i parę ficzerów bardzo mi się spodobało: 1. Sampling profiler oparty o PC 2. Exception trace - fajna sprawa do logowania przerwań, niestety w przypadku dużej liczby przerwań mam ciągły overflow (może źle szukałem ale nie widzę opcji filtracji przerwań w Cubie czy rejestrach) 2. Porty ITM które można wykorzystać na wiele sposobów - np ręczne, wybiórcze logowanie przerwań co niejako rozwiązuje poprzedni problem Z wad, które zobaczyłem po krótkiej zabawie: 1. Wyświetlanie zmiennych na wykresie często mi się zacinało, a overflow pakietów wywalał mi całkowicie Cuba 😛 Ograniczenie do czterech logowanych zmiennych też nie pozwala na wiele, ale to zrozumiałe - to jest małe narzędzie do szybkiego podglądu. 2. Brak wizualnego przedstawienia przerwań, tylko widok statystyczny - czasami taki pogląd pozwala wyłapać które przerwanie wywłaszcza które itp. 3. Czas wymagany na włączenie debugera, aby podejrzeć wartości zmiennych jest dosyć długi w porównaniu do kliknięcia przycisku start w np STMStudio. Ogólnie wg mnie super sprawa - ciekawi mnie czy byłbym w stanie jakieś funkcjonalności zawrzeć w ramach STMViewera. Z tego co widzę libka z której korzystam do obsługi stlinka nie posiada wsparcia dla SWO. Może kiedyś poczytam ile implementacja czegoś takiego by zajęła. Dzięki za przypomnienie o tej funkcjonalności!
  4. Hej, Chciałbym wam przedstawić mój ostatni popołudniowy projekt, którego używam w pracy i przy projektach z udziałem mikrokontrolerów STM32. Krótko mówiąc jest to opensourceow'a kopia niewspieranego już STMStudio. Dla tych, którzy nie słyszeli wcześniej o tym programie, był to realtime'owy logger wartości zmiennych, które były odczytywane przy pomocy programatora STlink bezpośrednio z mikrokontrolera przy użyciu interfejsu debugowego. Genialna sprawa do strojenia regulatorów PID, podglądu zmiennych procesowych, konfigów, czy nawet sterowania wykonaniem programu. Narzędzie o tyle fajne, że jest bezinwazyjne (nie zmienia zachowania softu zależnie od tego czy z niego korzystamy czy nie), pozwala na odczyt z częstotliwością dochodzącą nawet do 1kHz, przy niewielkiej ilości logowanych zmiennych, a także pozwala na zapisywanie wartości z poziomu GUI. Niestety od jakiegoś czasu jest niewspierane, a jego następca czyli Cube Monitor jest bardzo ograniczony i wydaje się również być obecnie porzucony. Dodatkowo STMStudio ma problem z dekorowanymi (manglowanymi) nazwami obiektów C++ - wbudowana wyszukiwarka ich po prostu nie widzi, a dodatkowo program działa tylko na Windowsie. Dochodzi do tego kilka wkurzających bugów i w efekcie program przestaje być już tak atrakcyjny. Nie mając innych alternatyw postanowiłem zrobić swoje narzędzie w oparciu o różne projekty dostępne na Githubie. Główne założenia to wsparcie dla Windowsa i Linuxa oraz obsługiwanie C++. W chwili obecnej projekt jest we wczesnym stadium, jest używalny ale nie ma jeszcze wszystkich ficzerów STMStudio. Postanowiłem o nim napisać teraz ze względu na to, że może akurat ktoś zdecyduje się spróbować nim pobawić i wrzuci mi jakiś feedback, a ja będę wiedział co trzeba dopracować/zmienić w pierwszej kolejności. Aktualnie sam projekt to nie są jakieś wyżyny programowania, nad refactorem pracuję w wolnych chwilach - z czasem powinno być lepiej. Zachęcam do uwag i sugestii 😉 Poniżej link do repa na Githubie: https://github.com/klonyyy/STMViewer Na razie testy przeprowadzałem tylko na maszynach wirtualnych i komputerze z Windowsem, ale założenie jest takie, że pobierając installera z strony z Releasami (po lewej stronie) i instalując program powinien on ruszyć 😉 W razie problemów jestem do dyspozycji, tutaj czy na Githubie. Jako, że softwareowe projekty zazwyczaj bywają nudne jeśli chodzi o opis, to wrzucam gifa z działania programu, tak na zachętę 😉 Postaram się wrzucać tutaj ważniejsze update'y jako posty, możecie także zajrzeć na bloga, tam pojawiać się będą posty w j. angielskim.
  5. Hej, Dzisiaj wpis będzie dosyć krótki, ponieważ chciałbym się z Wami podzielić moją pracą dyplomową (która już zawiera bardziej rozbudowany opis :)). Praca co prawda była obroniona w styczniu, ale dopiero teraz mogę się nią podzielić. Jeśli ktoś zainteresował się tematem napędów, taki raport z budowy napędu powinien go zainteresować: https://pwwprojects.blogspot.com/2021/10/my-bachelors-thesis-brushless-actuator.html
  6. Hej, zgodnie z planem udało mi się uruchomić na czas demo kinematyki korpusu robota. Poniżej krótki filmik ze sterowania robotem przy użyciu pada od PlayStation. Niestety płytki PCB głównego sterownika nie dotarły do mnie na czas, więc demo stworzone jest przy użyciu przejściówki USB<>FDCAN: Niedawno odbył się także "showcase" z Reddita, podczas którego przedstawiłem krótką prezentację o robocie, więc jeśli nie uczestniczyliście na żywo wrzucam link do wydarzenia: https://www.youtube.com/watch?v=HLFfAnheun8&t=5019s&ab_channel=theredditroboticsshowcase . Polecam także obejrzeć inne projekty kroczące, a w szczególności pierwszą prezentację członka zespołu tworzącego HyQ na IIT. Na koniec podrzucam kilka fotek robota:
  7. Hej, tym razem obrazkowy przewodnik po etapach składania prototypowego robota (kilka części będzie wymagać modyfikacji, więc nie jest to ostateczna wersja): Najpierw przygotowane części do napędów: - statory zdjęte z oryginalnego mocowania, każdy z doklejonym termistorem - rotory w których wyfrezowane zostały cztery kieszenie w celu redukcji masy - części frezowane w które zostały wciśnięte łożyska/piny/zębatka centralna przekładni planetarnej - płytki kontrolera silnika bezszczotkowego Następnie napędy biodra zamocowane w obudowie torsu robota - jak widać na tym etapie nie było jeszcze przygotowanych przewodów od zasilania i magistrali FDCAN. Tutaj z kolei tors z zamocowanymi napędami od biodra i uda, wraz z poprowadzonymi przewodami: Oraz sposób umieszczenia akumulatora w torsie (widok od spodu): akumulator nadal jest tylko testowy, złożony ze starych ogniw laptopowych, najprawdopodobniej niedługo będę zaopatrywał się w ogniwa wysokoprądowe do ostatecznej wersji akumulatora. Jako ostatnie zdjęcie z dwoma ukończonymi nogami: Do ukończenia zostało jeszcze sporo detali, ale powoli robot zaczyna przypominać czworonoga 😉 Plan na najbliższy czas to dokończenie konstrukcji prototypu i uruchomienie kinematyki korpusu widocznej na filmiku, który wrzucałem kilka postów wcześniej. Na razie niestety ograniczają mnie braki w komponentach i zmiany w przepisach paczek spoza UE, przez co płytki PCB idą już do mnie ponad miesiąc i na razie nie wygląda, że szybko do mnie trafią, więc aktualnie ruchy robota testuję przy użyciu przejściówki USB<>FDCAN i skryptu pythona. Dla zainteresowanych projektem w niedzielę 1 sierpnia o 21:00 czasu polskiego będę przedstawiał krótką prezentację o robocie, w związku wydarzeniem Reddita z kanału r/Robotics. Więcej informacji jak i opisy innych projektów znajdziecie tutaj: https://redditroboticsshowcase.wordpress.com/2021/07/02/sunday-august-1st/ Jeśli macie Instagrama możecie śledzić bardziej szczegółowe postępy również tam, które często wrzucam w formie stories'ów (zajmuje to najmniej czasu a pozwala późnej złożyć fajną historię/przebieg budowy w formie chronologicznie ułożonych zdjęć 😉). Link do profilu znajdziecie tutaj: https://www.instagram.com/klonyyy/
  8. Aktualnie skończyłem frezowanie wszystkich elementów i powoli przymierzam się do składania pozostałych dziewięciu napędów. Pozostały mi do zrobienia przeróbki samych silników, umieszczenie łożysk w frezowanych elementach, oraz przygotowanie płytek PCB. Jednocześnie działam trochę nad korpusem robota drukując kolejne części. Niestety na chwilę obecną globalne braki elementów elektronicznych nie pozwalają mi na przygotowanie izolowanej galwanicznie wersji płyt zasilania i sterowania, więc początkowo będzie to standardowa konfiguracja na nieizolowanych układach (na co na szczęście się przygotowałem ;P) A teraz przyjemniejsza część czyli kilka fotek: wyfrezowane części: materiał z którego zostały wykonane (ok. 5.5kg aluminium PA6): a po wycięciu części zostało mniej więcej tyle: i kilka fotek z czasu frezowania: na koniec statory silników i mój sposób na pozbycie się oryginalnego mocowania: Kolejne kroki to przygotowanie płytek znajdujących się w torsie robota, oraz drukowanie części korpusu 😉 (niestety niektóre zdjęcia wydają się same obracać więc wybaczcie jak są nienaturalnie obrócone)
  9. Ostatnio pracowałem nad płytkami PCB do tzw. powerboarda (który załącza zasilanie napędów, plus odpowiada za izolację galwaniczną pomiarów i izolowane zasilanie części sterującej) oraz nakładki na RPI, która służy jako przejściówka SPI<>CANFD, zawiera IMU + magnetometr oraz moduł komunikacji bezprzewodowej). Poniżej kilka screenów modeli 3D płytek: Control board (nakładka na RPI): Dolna płytka powerboard'a (bez izolacji): opcjonalny moduł izolacji wtykany na płytkę podstawową: Płytki niedługo trafią do wykonania, a ja w tym czasie, w weekendy, frezuję kolejne części do modułów: Reszta materiału po frezowaniu części widocznych powyżej zostaje wykorzystana na część dystansującą (część znajdująca się na środku zdjęcia poniżej), tak aby powstało jak najmniej odpadu. Sam materiał to plastry walca aluminiowego PA6 (średnica 140mm). Samo frezowanie zajmuje dużo czasu, jednak jest to fajna odskocznia od pracy przy komputerze 😉
  10. Wczoraj udało mi się przenieść kinematykę korpusu robota do symulacji w PyBullet'cie włącznie z modelem robota opisanego przy pomocy pliku URDF. Poniżej krótki filmik ruchu robota w symulacji (3 translacje i 3 rotacje):
  11. @wn2001 jak zaczynałem tworzyć napędy nie było w sumie żadnych komercyjnych sterowników tego typu. Teraz jest tego trochę więcej, ale nadal są dosyć duże (przeznaczone do większych silników). Druga kwestia to to, że temat sterowania bezszczotkami zawsze mnie interesował, a nie ma nic lepszego do poznania tematu niż zrobienie swojego sterownika 😄 @matural dzięki 🙂 niedługo po tym projekcie zacząłem myśleć o trochę bardziej złożonym kroczącym i tak jakoś wyszło 🙂
  12. Dzięki za miłe słowa, cieszę się że projekt się podoba 🙂 @deshipu ROS jest niestety za wolny na sterowanie robotem na poziomie napędów, jednak jak najbardziej nadaje się do sterowania na wyższym poziomie tj. wizja, planowanie itp. Na razie planuję coś prostego opartego na prymitywnym przestawianiu nóg, takie chodzenie w pętli otwartej, jak już będę miał dopracowaną kinematykę i proste poruszanie się będę celował w coś bardziej zaawansowanego 🙂 Niestety RPI często nie wystarcza do realtime'owego rozwiązywania zagadnień optymalizacji jak np w algorytmie MPC, ale często prostsze algorytmy również fajnie dają sobie radę.
  13. Cześć! Zgodnie z obietnicą z wątku krótkich worklogów zakładam temat z niewiele dłuższym opisem konstrukcji nad którą pracuję 🙂 Jest to czteronożny robot kroczący zainspirowany konstrukcjami o wysokich zdolnościach ruchowych, które ostatnio stają się coraz bardziej popularne. W odróżnieniu od robotów kroczących opartych na serwach modelarskich, założyłem że w mojej konstrukcji użyję napędów bezszczotkowych, które odpowiednio wysterowane pozwalają na bardziej zaawansowane manewry. Przyjąłem, że robot powinien być, przede wszystkim, niewielki (max 5 kg) i posiadać modułowe napędy, które w razie awarii mogą zostać wymienione. Prace rozpoczęły się od projektu samego napędu. Pierwszym celem było zaprojektowanie miniaturowego sterownika silnika bezszczotkowego. Sterownik do zastosowań w robotach kroczących nie może być zwyczajnym kontrolerem modelarskim, ponieważ nie ma dobrego sprzężenia od pozycji i prądów fazowych silnika, przez co nie jest możliwe sterowanie momentem obrotowym, na którym najbardziej nam zależy. W takim wypadku należy użyć sterowania wektorowego (Field Oriented Control - FOC), które pozwala osiągnięcie maksymalnego momentu silnika przy szerokim zakresie prędkości (nawet zatrzymanym wale), a także na dużą dynamikę sterowania momentem obrotowym. Całe sterowanie, rodzaje silników bezszczotkowych oraz ich dobór to temat-rzeka, ale myślę, że takie krótkie wyjaśnienie wystarczy na chwilę obecną 🙂 . Krótko mówiąc nie mogłem uniknąć konieczności stworzenia własnego sterownika. Po kilku iteracjach (tematem sterowania silników bezszczotkowch zajmuję się już jakiś czas) powstał sterownik widoczny niżej, który zamocowany jest w każdym napędzie. Sterownik wyposażony jest w mikrokontroler, enkoder magnetyczny, trzy półmostki, zintegrowany sterownik tranzystorów, oraz transceiver CANFD. Wspólną cechą większości napędów robotów kroczących (w formie, którą przyjąłem) jest to, że napędy nie są samohamowne i bardzo łatwo możemy poruszyć napędem od strony wyjścia. Zapewnia to możliwość kontroli momentu obrotowego na podstawie odczytywanych prądów fazowych silnika bezszczotkowego, bez konieczności stosowania zewnętrznych czujników sił czy momentów na samej kończynie. Z tym założeniem bezpośrednio związana jest przekładnia o niskim przełożeniu, zazwyczaj mniejszym niż 9:1. Ja akurat miałem pod ręką 14 sztuk przekładni do wkrętarek akumulatorowych z przekładnią 4.5:1 (pierwszy stopień), które zdecydowałem się wykorzystać w projekcie. Moduł został zaprojektowany w ten sposób, że w razie potrzeby możliwa jest wymiana części przekładni na inną (o innym przełożeniu). Część mechaniczna napędu to kilka frezowanych części aluminiowych, które skręcone są ze sobą tworząc „kanapkę”. Można wyróżnić trzy główne sekcje widoczne na rysunku poniżej, czyli sekcję przekładni, silnika i elektroniki sterującej. Wszystkie elementy zostały wykonane na własnej roboty frezarce trzyosiowej. Byłem zmuszony do złożenia takiej maszyny na potrzeby tego projektu, ze względu na trudną dostępność do obrabiarek na uczelni. Jestem z niej bardzo zadowolony, ponieważ mogę bardzo szybko prototypować części w aluminium. Poniżej wrzucam kilka zdjęć frezowanych części napędu: Timelapse z frezowania: A tak wygląda sama maszyna: Gotowy napęd waży ok. 210 g, jest w stanie wytworzyć 0.875 Nm momentu ciągłego (ograniczonego maksymalną temperaturą równą 65*C) lub 3 Nm momentu szczytowego (przez kilka sekund). Poniżej filmik demonstrujący działanie napędu w trybie tłumik-sprężyna (PD): Zazwyczaj na nogę robota przypadają dwa lub trzy napędy. Ja wybrałem opcję z trzema napędami, tak aby każda noga miała duże pole robocze. W takiej konfiguracji jestem w stanie sterować stawem kolanowym, udowym i biodrowym. Napędy umieszczone są jak najbliżej wolno poruszającego się torsu, aby zmniejszyć momenty bezwładności kończyny, która dzięki temu może przyspieszać o wiele szybciej. Niedawno skończyłem pierwsze testy kończyny na stanowisku z szyną liniową, gdzie noga może swobodnie poruszać w kierunku góra-dół. Założeniem było wykonywanie powtarzających się skoków, które znacznie obciążają przekładnie napędów, ale także części drukowane kończyny. Noga, którą zbudowałem waży ok. 800 g i jest w stanie podskoczyć na 15 cm mierząc 20 cm w wyprostowanej pozycji. Poniżej filmik z testu: Całkowicie noga wykonała ponad tysiąc skoków, dzięki czemu mogę być spokojniejszy o wytrzymałość napędów (chociaż chciałbym również sprawdzić w jakich sytuacjach będę w stanie uszkodzić napędy - jednak ze względu na długi czas wykonywania części muszę się wstrzymać z testami destrukcyjnymi na razie 🙂 ). Aktualnie pracuję nad zasilaniem robota i płytkami PCB znajdującymi się w korpusie. Robot najprawdopodobniej zasilany będzie z 8 ogniw li-ion w konfiguracji 4S2P. Bateria będzie umieszczona na samym dole korpusu, pod elektroniką sterującą. Na elektronikę znajdującą się w torsie robota składają się moduły odpowiedzialne za dystrybucję zasilania do napędów oraz zasilania mikrokomputera (RPI), a także moduł będący nakładką na RPI, który wyposażony jest w moduł bezprzewodowej komunikacji, jednostkę IMU + magnetometr, oraz transceivery CANFD. Na renderach poniżej brakuje jeszcze płytki-nakładki na RPI: Myślę, że tyle opisu na razie wystarczy 🙂 Starałem się wszystko opisać w miarę prostym językiem, więc wybaczcie skróty myślowe i bardzo pobieżne opisy niektórych tematów. Niestety większość z nich jest tak rozległa, że ciężko byłoby tutaj wszystko zawrzeć. Mimo to mam nadzieję, że opis przypadł Wam do gustu i jeśli macie jakieś pytania piszcie śmiało 🙂 Projekt dokumentuję dosyć aktywnie na Instagramie: https://www.instagram.com/klonyyy/ A trochę mniej aktywnie na Hackaday'u: https://hackaday.io/project/175753-wolfie I moim blogu, na którym znajdziecie także krótki opis z budowy frezarki: https://pwwprojects.blogspot.com/ Pozdrawiam, Piotrek
  14. Jasne, w wolnej chwili wrzucę krótki opis i postaram się w miarę aktualnie dopisywać postępy🙂 Projekt trochę szerzej opisuje na Hackaday'u, więc jeśli komuś nie przeszkadza angielski opis również może przeczytać więcej tutaj: https://hackaday.io/project/175753-wolfie
  15. Elementy aluminiowe wykonuje na frezarce własnej konstrukcji, dlatego też części są zoptymalizowane pod frezowanie na 3 osiowej maszynie 🙂 Z tego też względu ciężko mi ocenić koszt całości, jak dobrze pamiętam materiały i elektronika mieściły się w 260-300zł. Przy pierwszych prototypach "na poważnie" na pewno doszedłby koszt frezowania i nowej przekładni planetarnej (obecnie mam tam przekładnie z wkrętarek, które mają spory luz).
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.