Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

[Line follower][Inny] Robot karmiący - dystrybujący paszę: hydraulika siłowa

Autor Wiadomość
robot2016 



Posty: 1
Skąd: Warszawa
Programuję w:
C++, C, ASM
Wysłany: 15-02-2016, 19:04   [Line follower][Inny] Robot karmiący - dystrybujący paszę: hydraulika siłowa

Nie mogłem się zdecydować do jakiej kategorii go zaklasyfikować, czy to jest "line follower"? Z tekstu powinno wyniknąć.

Opis projektu

Zakres pracy:
Projekt, wykonanie i instalacja systemu sterującego robotem dystrybuującym paszę dla zwierząt (krowy w oborze).

Zadania robota:
Robot porusza się po zadanych torach, wytyczonych przez linie indukcyjne. Z punktów dystrybucyjnych robot pobiera paszę w zadanych proporcjach a następnie rozkłada ją (rozsypuje) w punktach karmienia zwierząt. Punkty te noszą nazwę grup. Grupy gromadzą krowy o podobnych wymogach żywieniowych. Grupy mogą mieć postać odcinków obejmujących wiele krów lub mogą być zredukowane do punktów, w których znajduje się jedna krowa. Przed rozłożeniem świeżej paszy, robot szczotkami usuwa pozostałości starej karmy.
Sterownik umożliwia zaprogramowanie o jakiej porze, jaka pasza i do których grup zostanie dostarczona.

Cechy części mechanicznej:
Jednorazowo można załadować do 1000kg paszy.
Robot został zaprojektowany do pracy ciągłej 24/7.
Moc silnika napędu: 20KM.
Robocza prędkość jazdy: 0.3m/s
Dokładność pozycjonowania +/-1cm na odcinku 200m.
Masa urządzenia: ok.1000kg

Konstrukcja mechaniczna robota:
Robot jest wyposażony w silnik spalinowy napędzający alternator i pompę hydrauliczną. Start ilnika zapewnia akumulator i rozrusznik elektryczny. Pompa hydrauliczna wytwarza cisnienie robocze dla elementów wykonawczych (silniki i siłowniki). Elementy wykonawcze są uruchamiane przy pomocy bloku zaworów sterowanych elektrycznie. Część zaworów w bloku sterowana jest proporcjonalnie a część dwustanowo.

Konstrukcja sterownika:
Należy mówić raczej o całym systemie obejmującym część mobilną zainstalowaną na robocie oraz infrastrukturę w której robot się porusza.
Cześć mobilna składa się z dotykowego panelu sterowania i diagnostyki, szafki sterowniczej z wbudowaną jednostką centralną, joysticka, anten naprowadzających, czujników (temperatura, ciśnienie, indukcyjne), wyłączników krańcowych , wyłączników bezpieczeństwa.
Część stacjonarna to: generator sygnału indukcyjnego, sieć odbiorników radiowych umożliwiających odbiór poleceń z robota oraz sieć ścieżek indukcyjnych.
Procesory: Atmega128, Atmega32
Wejścia analogowe: 10
Wejscia cyfrowe: 10
Wyjscia analogowe PWM: 4
Wyjscia cyfrowe: 9
Serial Port przez Bluetooth: 2

Zadania systemu sterowania:
1. Praca robota w trybie automatycznym, półautomatycznym i ręcznym.
2. Wyswietlanie stanu robota.
3. Definiowanie paszy, punktów dystrybucji, grup, linii, czasów karmienia.
4. Dystrybucja paszy według składu oraz ilości i czasu zadanego przez użytkownika – pobranie z punktu/punktów dystrybucyjnych i wysypanie w zadanym punkcie lub odcinku grupy.
5. Komunikacja radiowa z urządzeniami stacjonarnymi.
6. Sterowanie urządzeń na hali – mixer (otwarcie,zamknięcie) , bramy (otwarcie, zamknięcie), generator sygnału dla linii indukcyjnej (wybór drogi jazdy)
7. Pomiar ilości paszy w zbiorniku z analizą zakłóceń odczytu oraz adaptywnym ich filtrowaniem.
8. Planowanie sposobu optymalnego i równego rozkładania paszy.
9. Ruszanie, zatrzymanie, zmiana kierunku jazdy: do przodu/do tyłu i utrzymanie zadanej prędkości jazdy (PID).
10. Utrzymanie zadanej trasy jazdy (PID).
11. Włączanie / wyłączanie wyładunku paszy i szczotkowania (czyszczenia) według programu użytkownika.
12. Unikanie kolizji z obiektami na hali (przedmioty, zwierzeta i ludzie).
13. Dodatkowe, rozwojowe, które w tym projekcie nie miały zastosowania:
1. Sterowanie wieloma robotami w tym samym czasie
2. Wyznaczanie tymczasowych punktów lub odcinków wyładowania bez konieczności zmian w programie użytkownika przy pomocy fizycznych znaczników początku i końca (RFID, lub optyczne)
3. Prawidłowe prowadzenie kierunku ruchu robota przez skrzyżowania dwóch lub więcej linii indukcyjnych

Ciekawsze aspekty projektu (niektórzy nazywają to wyzwaniami - to tygrysy lubią najbardziej):
Cały system jest moim pomysłem i moją konstrukcją. Jest układ modułowy, dwuprocesorowy z wymianą danych po szynie I2C. W pracy wykorzystałem płytki developerskie dla układów z montażem SMT aby uniknąć dość niewdzięcznych czynności związanych z lutowaniem i uruchamianiem miniaturowych obwodów. Skupiłem się na głównych zadaniach prowadzących do powstania konstrukcji działającej i spełniającej oczekiwania uzytkownika. W trakcie projektu sterowania okazało się, że konstrukcja robota nigdy nie była projektowana jako urządzenie automatyczne. Jest to wózek z napędem hydraulicznym do pracy pod nadzorem operatora. W późniejszym czasie elektronika sterująca została dodana. Ten pierwotny system sterowania został źle zaprojektowany i był bardzo awaryjny. Ostatecznie nastąpiło jego nieodwracalne elektryczne uszkodzenie. Naprawa okazała się nieopłacalna. W tym momencie zaczął się mój projekt.
Trudnym do spełnienia warunkiem było załozenie braku modyfikacji istniejącej konstrukcji mechanicznej. Efektem jest: niewystarczająca ilość czujników (szczególnie trudno jest sterować i stabilizować prędkość jazdy a jest to konieczność ponieważ obciążenie robota się zmienia a trasa nie jest pozioma – pierwszy odczyt prędkości pojawia się po ok.2s. od załączenia silnika, a gdzie czas na utrzymanie stałej prędkości? A co jeśli po tych 2s. odczytu nie będzie , bo właśnie zwierzęta urwały kabel od czujnika?) , awaryjny, bardzo niedokładny system wyładunku (a wymagania do dokładności wyładunku to +/- 2kg), niedokładnie, nierówno położona linia indukcyjna wyznaczająca trasy, obecność dużych przedmiotów stalowych zniekształcających sygnał linii indukcyjnej. W trakcie prac usunąłem uszkodzenia oraz wykonałem regulację w samym pojeździe, takie jak: system paliwowy silnika, centralka zapłonowa, odpowietrzenie instalacji hydraulicznej i wymiana oleju, wymiana uszkodzonego zaworu, zmiana położenia anten.
Robot pracuje w dynamicznie zmieniającym się środowisku. Powietrze jest mocno zapylone i wilgotne.

Wszystkie powyższe trudności przezwyciężyłem! Dało to ogromną satysfakcję i nowe doświadczenia. Dodatkowo zadowolenie uzytkownika oraz utrzymanie konstrukcji mechanicznej w pierwotnym stanie bez dodatkowego wkładu finansowego na modernizację.

Pracę podzieliłem mniej więcej tak:

1. Poznanie własności mechanicznych konstrukcji:
a) Sterowanie silnikiem spalinowym
b) Własności i specyfika pracy hydrauliki: starzenie instalacji, wycieki, niedobór oleju, praca w szerokim zakresie temperatur, niewystarcząca wydajność pompy hydraulicznej, niepodziewane skoki ciśnienia
c) Powstawanie luzów mechanicznych i ich wpływ na sterowność.
d) Własności napędu i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego.
e) Własności systemu skrętów i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego.
f) Dynamika jazdy robota.
g) Waga elektroniczna: zachowanie w czasie postoju, ładowania, rozładowania, dryft czasowy i temperaturowy,
h) System wyładunku: zależność pracy od rodzaju paszy, zakres przypadkowości działania, wpływ wilgotności i temperatury na szybkość wyładunku.
i) Awaryjna konstrukcja czujnika wykrywającego znacznik początku trasy i możliwości kompensacji błędów w oprogramowaniu.
j) Niedokładności czujnika pozycji linii i mozliwość ich kompensacji w oprogramowaniu.

2. Zapoznanie z rozchodzeniem fal radiowych w środowisku pracy i dobranie odpowiedniego rozwiązania zapewniającego pewne , odporne na zakłócenia i zaniki połaczenia radiowego sterowanie.

3. Zaprojektowanie i wykonanie prototypowej wersji elektroniki mobilnej, generatora i odbiorników.

4. Zaprogramowanie podstawowych funkcji sterowania („klocków”): jazda, skręty, odczyt czujników, analiza wagi, sterowanie prostymi funkcjami przez serial port i panel dotykowy itp.

5. Budowa symulatora obiektu.
Większość prac programistycznych można wykonać „na biurku” zamiast w terenie. W terenie następuje w większości jedynie weryfikacja założeń i składanie oprogramowania z gotowych „klocków”. Jest to o tyle istotne, że robot jest w ruchu oraz należy analizować wiele parametrów w tym samym momencie.

6. Stacja monitorowania w czasie jazdy – połączenie przez bluetooth.
Symulacja obiektu przy pomocy zewnętrznego układu nie odpowie na ważne pytanie: jak zachowuje się pasza , często niejednorodna , o różnej gęstości i wilgotności, w trakcie załączania i wyłączania elementów mechanizmu wyładunku. Wszystkie obserwowane parametry można zapisywać do późniejszej analizy.

7. Zapewnienie bezpieczeństwa developera.
Zbudowałem bezprzewodowy, radiowy system zatrzymywania robota w razie niespodziewanych reakcji programu (np. ustawienie maksymalnej prędkości jazdy, niekontrolowany zjazd z trasy), które mogłyby spowodować „ucieczkę” maszyny lub zniszczenia w okolicznych obiektach. To urządzenie jest niezależne od głównego systemu procesorowego i reaguje na zanik transmisji z „pilotem”. Transmisja jest dwukierunkowa. Najdłuższy czas reakcji to 5ms. Można korzystać z dwóch trybów „stopu”: chwilowego i trwałego. Przerywane są kluczowe obwody robota powodujące wyłączenie silnika, spadek ciśnienia roboczego, zamknięcie zaworów itp.

8. Praca nad softwarem.
To etap zajmujący najwięcej czasu: poprawki i rozbudowa oprogramowania, który w zasadzie nadal trwa. Użytkownik po początkowym zachłyśnięciu się możliwościami robota, przywykł już do dużej oszczędności czasu w pracy i teraz proponuje kolejne dodatkowe funkcje.

9. Dla usprawnienia poszukiwania błędów programowych w stacjonarnej części radiowej systemu, zaprojektowałem i wykonałem urządzenie monitorujące jednocześnie transmisje kablową RS485 oraz radiową w paśmie 433MHz z możliwością zapisywania wyników do późniejszej analizy.

10. Zapewnienie bezpieczeństwa uzytkownika.
Osiągnąłem 100% poziom bezpieczeństwa sterownika w trakcie 12 miesięcznej ciągłej pracy urządzenia, tzn. system zawsze poradził sobie z sytuacją awaryjną. System prawidłowo reaguje na: „zawieszenie” sterownika (rzadkie zupełne wyłączenie-najczęściej prawidłowa kontynuacja po samoresecie procesorów), brak sygnału linii indukcyjnej, blokowanie (zakleszczanie) zaworów hydraulicznych, stop awaryjny z przycisków operatora, przetarcie lub zerwanie kabli, sygnał ze zderzaków mechanicznych. Dotyczy to zdarzeń symulowanych i rzeczywistych.
Oczywiście ten bardzo optymistyczny wynik nie przesądza o instalacji niezależnego, fabrycznego systemu bezpieczeństwa. Ale to już kolejny projekt.

Zobacz inne roboty w naszym katalogu
Polecany artykuł z FORBOT.PL:
Napędy tunelowe w robotyce

W poradniku tym, zebrałem moje doświadczenie poparte wyłącznie praktyką - nie pojawi się tutaj żadna teoria. P... Czytaj całość

Warto przeczytać » Przewodnik instalacji Linuxa na platformie embedded




agriputer_com.jpg
Plik ściągnięto 120 raz(y) 67.11 KB

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 7282
Pomógł: 112 razy
Otrzymał 479 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 17-03-2016, 10:23   

Autor poprawił opis zgodnie z moją prośbą, więc podbijam, aby wszyscy zauważyli zmiany :)


Sprawdź! >> Kurs ARDUINOKurs podstaw elektronikiKurs STM32
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: [Kroczący] Robot kro... [Inny] Roboty mietki... [Wielozadaniowy] Rob... [Nanosumo] Robot &qu...
lub przeszukaj forum po wybranych tagach: dystrybujacy, followerinny, hydraulika, karmiacy, line, pasze, robot, silowa


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki