logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować i działa program sterujący robotem dla początkujących?

lopez123 07 Wrz 2007 20:24 4657 9
REKLAMA
  • #1 4260663
    lopez123
    Poziom 13  
    Posty: 115
    Pomógł: 2
    Ocena: 8
    Witam.
    Czy mógłby ktoś wytłumaczyć mi i pewnie przydało by się to wszystkim początkującym budowę i działanie programu sterującego robotem?
    Pozdrawiam Lopez:)
  • REKLAMA
  • #2 4261977
    przemotronik
    Poziom 13  
    Posty: 87
    Pomógł: 3
    Ocena: 1
    Zaraz, zaraz...
    możesz napisać trochę dokładniej o jakiego robota Ci chodzi:?: Przecież program sterujący robotem przemysłowym będzie zupełnie inny od programu dla robota mobilego. A w grupie tego ostatniego trzeba oddzielić roboty kołowe od kroczących itp. itd...
    Napisz, czy masz na myśli ogólną teorię sterowania dla robotów, czy jakiś konkretny model:?:
    Pozdro
    P.S.
    :arrow:https://www.elektroda.pl/rtvforum/search.php
  • REKLAMA
  • #3 4263381
    lopez123
    Poziom 13  
    Posty: 115
    Pomógł: 2
    Ocena: 8
    Chodzi mi o teorie sterowania robotami mobilnymi.
  • #4 4263529
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    ten projekt powinien pomóc w zrozumieniu zasady sterownia robotem mobilnym http://www.robot.bighost.pl/
    pamiętaj że każdy program jest uzależniony od tego co faktycznie znajduje się na pokładzie robota i jakie na wykonać zadania , dlatego program należy dostosować ( napisać ) do własnych potrzeb i raczej trudno tu mówić i pisać o programie jeżeli podałeś tylko lakoniczne stwierdzenie " robot mobilny "
    powinieneś podać założenia oraz urządzenia które masz zamiar zastosować dotyczy to napędu , czujników , sterownia itp , właściwie cały program to zbiór podprogramów obsługujących napęd , sterownie i czujniki według ustalonego algorytmu
  • REKLAMA
  • #5 4268483
    lopez123
    Poziom 13  
    Posty: 115
    Pomógł: 2
    Ocena: 8
    Chyba mnie nikt nie zrozumiał. Chodzi mi o podstawy programu sterującego robotem. Np. polecenia to odczytu stanu wejść w procesorze. Czy ktoś mógłby wytłumaczyć polecenia do sterowania itp. Przydało to by się także początkującym robotykom.
  • #6 4268893
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    Nie ma czegoś takiego. Jest olbrzymia masa różnych rodzin mikrokontrolerów i kilka języków programowania, nie ma nic uniwersalnego, gdyż każdy mikrokontroler działa na trochę innej zasadzie.

    Nawet zakładając że zaczynamy od Bascoma i Atmegi8, to nie wiadomo gdzie są podłączone silniki robota, gdzie czujniki. Więc lepiej przejrzyj gotowe rozwiązania - jak chociażby elebot, jest tam bardzo prosty i zgrabnie napisany program.
  • REKLAMA
  • #7 4269685
    bogdan_p
    Poziom 39  
    Posty: 3849
    Pomógł: 525
    Ocena: 120
    sprawa wygląda dokładnie tak jak przedstawił kolega McRancor na początku powinieneś wybrać mikrokontroler , język programowania , urządzenia które będą zainstalowane znając ich sposób sterownia lub jakie sygnały z nich otrzymujemy , dalej stworzyć na kartce algorytm działa poszczególnych bloków , dokonać wyboru które porty będą obsługiwać dane urządzenie na końcu na podstawie tych wszystkich informacji stworzyć program sterujący
    obecnie bardzo popularne są 8 bitowe mikrokontrolery firmy Atmel , masz do wyboru dwie rodziny '51 lub AVR do tego bardzo prostym językiem programowania jest Bascom , mając wybrany uC i znając podstawowe zagadnienia związane z zasadami pracy uC oraz przynajmniej podstawowe polecenia danego języka możesz napisać odpowiedni program
    polecam kurs Bascoma z strony EdW i jeszcze jedno nie da się opanować sztuki programowania na "sucho " musisz mieć minimalny zestaw testowy na którym będziesz mógł sprawdzić swoje umiejętności , więcej informacji znajdziesz w dziale mikrokontrolery
  • #8 4270351
    Tawez
    Poziom 18  
    Posty: 265
    Pomógł: 19
    Ocena: 5
    Zakładam naiwnie, że pytanie jest zadane na wyższym poziomie abstrakcji, niż poprzednicy je potraktowali :cunning:

    Teoretycznie (moje ulubione słowo) można rozważać to zagadnienie bez Waszych Ulubionych (TM) Afałerów i Baskomów :cunning:
    Najogólniej wszystko sprowadza się do
    - stworzenia odpowiedniego algorytmu,
    - podzielenia go na odpowiednio małe bloki funkcyjne
    - zaimplementowaniu ich (na symulatorze, rzeczywistym uC, whatever...)
    - przetestowaniu organoleptycznie
    - ulepszaniu... (w kółko)

    W przypadku implementacji Algorytm będzie 'obudowany' odpowiednimi poleceniami konfiguracyjnymi itp. itd.
    Nie zniżając się jednak (na razie) do tak niskiego poziomu, zostańmy jeszcze przy algorytmie.


    Najprostsze podejście to algorytm sekwencyjny, synchroniczny.
    Polega on na wykonywaniu zaplanowanych czynności po kolei i odwoływaniu się do zasobów wtedy kiedy są potrzebne.
    (zasoby to np. czujniki, silniki, etc.)
    Z grubsza może to wyglądać tak:
    1. odczytaj wskazania czujników
    2. określ na podstawie odczytów nowy kierunek
    3. wyślij odpowiednie polecenie do silników
    4. skocz do punktu 1.

    (Oczywiście te punkty są dość ogólne, w rzeczywistej implementacji trzeba by je jeszcze podzielić na mniejsze kroki - ale pewna baza już jest.)

    Plusy takiego podejścia to łatwość w implementacji
    Minusy: nie da się tak sterować efektywnie robotem, ani tworzyć skomplikowanych algorytmów.


    Trochę trudniejszy to algorytm sekwencyjny, asynchroniczny.
    Polega on na wykonywaniu zaplanowanych czynności po kolei.
    Natomiast zasoby są obsługiwane poza główną pętlą programu, niezależnie od jej biegu (stąd asynchronicznie).
    Do odpowiedniego komunikowania się z zasobami wykorzystuje się tzw. system przerwań.
    Z grubsza może to wyglądać tak:
    1. Sprawdź, czy odczyty z czujników są gotowe
    1.1 jeśli tak, odczytaj wskazania czujników
    1.2 określ na podstawie ostatnio odczytanych danych nowy kierunek
    1.3 wyślij odpowiednie polecenie do silników
    2. skocz do punktu 1.

    Subtelna różnica, ale umożliwia już robienie ciekawszych rzeczy.

    Plusy: efwktywniejsze wykorzystanie zasobów, nadal, dość łatwa implementacja (choć niewątpliwie potrzeba trochę praktyki)
    Minusy: nadal jest granica skomplikowania, której nie da się tak przeskoczyć.


    Im dalej tym trudniej i tym ciekawiej.
    A co dalej?... jakieś proste systemy operacyjne na przykład.
    Umiejętność programowania jako takiego pomaga.
    A jak przechodzisz do konkretnej implementacji, wiedza o konkretnym uC już jest jednak potrzebna.
    I nie musi to być ulubiony Afałer.


    Rozpisał bym się, ale tak z doskoku trochę dziś jestem... ;>
  • #9 4474839
    Jacek31
    Warunkowo odblokowany
    Posty: 541
    Pomógł: 48
    Ocena: 9
    Aby programować roboty musisz się najpierw czegoś się nauczyć o budowie mikroprocesorów, komputerów, ich działaniu. Inaczej od razu utkniesz, i się zniechęcisz, bo uznasz, że to trudne. Potem jakiś język programowania, na początek polecam, BASCOM i dopiero możesz próbować, małymi kroczkami budować roboty i je sterować. Polecam archiwalne numery Elektroniki Dla Wszystkich. Jest tam dużo kursów w tym o BASCOM i robotyce. :sm9: :D
  • #10 4476509
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    McRancor napisał:
    Nie ma czegoś takiego. Jest olbrzymia masa różnych rodzin mikrokontrolerów i kilka języków programowania, nie ma nic uniwersalnego, gdyż każdy mikrokontroler działa na trochę innej zasadzie.

    Nawet zakładając że zaczynamy od Bascoma i Atmegi8, to nie wiadomo gdzie są podłączone silniki robota, gdzie czujniki. Więc lepiej przejrzyj gotowe rozwiązania - jak chociażby elebot, jest tam bardzo prosty i zgrabnie napisany program.


    I to jest cały ból... Przydałby się jakis projekt uniwersalnego systemu operacyjnego dla mobilnych pojazdów/robotów. Pewnie są bo nie szukałem. Rozdzielenie sterowania sprzętem od SI by się przydał często. Nawet implementacja basica lub javy to, juz dobra rzecz bo pozwala ładować skrypty, nie niskopoziomowy kod.

Podsumowanie tematu

✨ Dyskusja dotyczy podstaw budowy i działania programów sterujących robotami mobilnymi, skierowana do początkujących. Podkreślono, że program sterujący musi być dostosowany do konkretnego typu robota, jego napędu, czujników oraz zadań, co wymaga znajomości używanego mikrokontrolera i języka programowania. Popularnym wyborem są 8-bitowe mikrokontrolery Atmel (rodziny '51 i AVR') oraz język Bascom, który jest prosty dla początkujących. Zaleca się najpierw opracowanie algorytmu działania robota, podzielenie go na bloki funkcyjne, a następnie implementację i testowanie na rzeczywistym zestawie testowym. Nie istnieje uniwersalny program sterujący, gdyż każdy mikrokontroler i konfiguracja sprzętowa wymaga indywidualnego podejścia. Wskazano również na potrzebę nauki podstaw mikroprocesorów i programowania oraz przeglądanie gotowych projektów, np. elebot. Poruszono też koncepcję uniwersalnego systemu operacyjnego dla robotów mobilnych, który oddzielałby sterowanie sprzętem od warstwy sztucznej inteligencji, umożliwiając ładowanie skryptów w językach wysokiego poziomu, takich jak BASIC czy Java.
Wygenerowane przez model językowy.
REKLAMA