Skocz do zawartości

Wojcik98

Users
  • Zawartość

    151
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    3

Wojcik98 zajął 1. miejsce w rankingu.
Data osiągnięcia: 9 kwietnia 2014.

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

Reputacja

29 Bardzo dobra

O Wojcik98

  • Ranga
    5/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Tarnów
  • Moje zainteresowania:
    robotyka, fizyka, astronomia

Ostatnio na profilu byli

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

  1. Po półtora miesiąca przerwy czas coś napisać. Większość tego czasu spędziłem na ogarnięciu, czemu ROS2 nie działa i to była faktycznie jego, a nie moja wina . Na początku po jakiejś aktualizacji okazało się, że przestała działać główna jego funkcjonalność, czyli protokół porozumiewania się między węzłami (osobnymi programami). Nawet przykładowe programy nie działały, publisher wysyłał wiadomości w eter a do subscribera już nic nie docierało. Nareszcie po kilku dniach przyszła kolejna aktualizacja, która naprawiała ten problem i mogłem pisać dalej, tylko pojawił się kolejny problem. ROS2 nie w
  2. Czy funkcja constrain() działa w jakimkolwiek przypadku? Bo tutaj nie wygląda, powinno być 10 ≤ beta2 ≤ 170, a tutaj masz przed i po ograniczeniu równą -0.61 albo - 16.59 (oprócz 12.59, które już jest w prawidłowym zakresie przed ograniczaniem).
  3. Cześć, tak bez możliwości przetestowania samemu kodu trudno coś powiedzieć, ale zauważyłem dwie rzeczy: 1) Dlaczego "if(beta <= -1) beta = -0.99;"? beta jest w radianach, dlaczego jest ograniczasz ją z dołu do akurat -1? 2) Czy beta4 może być równa 0? Najpierw robisz beta2 = constrain(beta2, 10, 170), a potem beta3 = constrain(beta3, 10, 160), czyli minimalna wartość beta4 to 10+110=20? Czy funkcja constrain działa inaczej, niż się domyślam? Spróbuj wypisać wartości zmiennych beta2, 3, 4 przed i po wprowadzeniu ograniczeń, żeby można było zawęzić obszar poszukiwań buga. Napis
  4. Dopracowałem już model i sterowanie serw, żeby obydwa pokazywały to samo i udało mi się zakodzić prosty "chód", a właściwie czołganie się, czym się pochwalę: Na razie to jest bardzo proste, bo od strony implementacyjnej wygląda to tak, że końcówką każdej nogi zakreślam okrąg. I teraz chciałem zadać pytanie o "poprawne" sterowanie, ale w trakcie jego formułowania przyszło mi do głowy rozwiązanie Moja definicja poprawnego sterowania: sterowanie pozycją nóg i robota względem otoczenia, zamiast względem robota. Aktualnie w wizualizacji mam nieruchomego robota, który
  5. Dzisiaj skończyłem tworzyć model robota w URDF. Mam skrypt, który czyta paramtery w notacji Denavita-Hartenberga i zamienia je na współrzędne używane w URDF. Na razie jest zrobione tak, żeby było i będę musiał jeszcze przysiąść, żeby to "czysto" napisać. Oprócz tego napisałem odwrotną kinematykę, też na razie trochę brzydko, ale chciałem sprawdzić obliczenia i wydają się być dobre. Poniżej wstawiam filmik z działania i moje obliczenia, dość chaotycznie spisane. Wiem, że model nie za piękny, ale na razie mi tyle wystarcza do wizualizacji Pozycja końcówki jest zadawana z joysitcka, który by
  6. Dzisiaj skończyłem pisać węzeł do komunikacji z sterownikiem serw. Węzeł odbiera, jakie kąty powinien ustawić w serwach i wylicza dla nich długość impulsu potrzebną sterownikowi. Bierze przy tym pod uwagę, dla jakiego impulsu serwo jest ustawione na 0°, co musiałem sam sprawdzić i wpisać w plik csv. Poniżej krótki filmik, na którym robot już rusza nogami. Przy okazji pierwsza część "hejtu" na ROS2. W ROS1 (formalnie tam nie ma 1, ale dla widoczności) konfigurację paczki ustawiało się w pliku CMakeLists.txt i package.txt, niezależnie, czy kod mieliśmy w Pythonie czy C++. W ROS2 n
  7. Cześć wszystkim! Po dość długiej nieobecności na forum powracam z nowym projektem. Jest to robot kroczący, którego planowałem zrobić już od dwóch lat, ale nie miałem do tej pory czasu przez łączenie studiów z pracą. Do tego nie umiałem za bardzo zaprojektować mechaniki i dopiero niedawno mnie olśniło, że można kupić gotową Mechanika Robot ma cztery nogi, każda ma 3 stopnie swobody. Rozważam późniejsze dołożenie czwartego, bo jeszcze mi zostało serw, ale na razie zostawię go w tej konfiguracji. Do sklecenia konstrukcji użyłem platikowej obudowy jako korpusu
  8. Wojcik98

    Losowe włączanie diod LED

    Pomyliłeś znaki mniejszości i większości, w drugim warunku chcesz, żeby x był jednocześnie mniejszy od 10 i większy od 100, podobnie z resztą.
  9. szerwi, niekoniecznie. Chumanista prosił na razie o poprawki, a nie nowe funkcjonalności, a w tym zawiera się poprawienie aktualnego kodu, wykrycie błędów itd. Osobiście trochę mnie razi zakomentowany fragment "NEW" przy if(enforceSlope). System kontroli wersji jest też po to, żeby nie zakomentowywać niedziałającego kodu, tylko trzymać go w commitach i gałęziach. Podczas testowania na swoim komputerze sam tak robię, ale wysłałbym commita albo jeszcze bez tego, albo na inną gałąź, albo z opcją, żeby przy kompilacji definiowało się odpowiedni parametr i odpowiednia wersja by się kompilowała, coś
  10. Cześć, na tej stronie z silniczkiem masz podany przykładowy kod, niby na Arduino, ale ogólny algorytm powinieneś ogarnąć. Po pierwsze, sygnał z enkoderów nie jest w postaci PWM, tylko wyjść kwadraturowych. Nie jestem pewny, czy Twój program mierzy wypełnienie PWM, czy częstotliwość częstotliwość sygnału wejściowego, ale oba podejścia są złe. Sygnał kwadraturowy przy stałej prędkości będzie miał stałe "wypełnienie" 50%, a częstotliwość można uzyskać bardzo dużą drgając kołem tak, żeby czujnik magnetyczny ciągle zmieniał sygnał, a koło będzie praktycznie stać w miejscu. Żeby mierzyć prawidłowo
  11. Ja się przyznam jeszcze do Ziomusia, który jest tak naprawdę samouczącym Trzewikodziobem . Musiałem zmienić nazwę, bo właściwie do dnia przed wyjazdem nie wiedziałem, czy pojadę z nim, czy zdążę zrobić nowego robota, no i niestety nie zdążyłem. Jak skończę go już teraz na spokojnie to opiszę na forum.
  12. mosi2, rozpoznawanie obrazu inaczej niż przez uczenie maszynowe nie da się chyba zrobić, więc raczej będzie kłuć coś co przypomina rozgwiazdę, a nie zupełnie nie podobnego człowieka. Nawet jeśli błąd programu będzie na tyle duży, że będzie mógł zaatakować człowieka, to raczej nie w rozpoznawaniu błąd i wszystko inne po drodze też powinien, a wtedy będzie widać, że coś jest nie tak i będzie go można wyłączyć. Błędu skierowanego tylko przeciwko ludziom jakoś nie potrafię sobie wyobrazić, ale jakich to niespodziewanych błędów się w kodzie nie znajdywało
  13. mafish95, tak, jest to normalny programator ST-Link/V2, trzeba tylko zworki ściągnąć. Ja sam korzystam z takiego z płytki Discovery, bo mi stary ST-link nie chciał działać na nowym laptopie.
  14. Treker, rozwijania tego w sumie nie planowałem. Chciałem to uczenie przetestować, sprawdzić w praktyce, a że miałem linefollowera pod ręką to spróbowałem z tym . W przyszłości zrobię może jakiegoś robota balansującego, można by też było sprawdzić, jak to zadziała w *sumo. Ustawianie nastaw w PIDzie jest chyba nawet lepszym pomysłem od uczenia się prędkości dla każdej pozycji, spróbuję może kiedyś to zrobić. Nagrody mogłyby być dawane dla każdego przejazdu, proporcjonalnie do prędkości robota.
×
×
  • 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.