J.Szrek, Control algorithms of mobile manipulators, MSs thesis
Transkrypt
J.Szrek, Control algorithms of mobile manipulators, MSs thesis
Politechnika Wrocªawska Wydziaª Elektroniki Kierunek: Automatyka i Robotyka (AiR) Specjalno±¢: Robotyka (ARR) PRACA DYPLOMOWA MAGISTERSKA Algorytmy sterowania manipulatorów mobilnych Autor: Jarosªaw Szrek Opiekun pracy: Prof. dr hab. in». Krzysztof Tcho« Prowadz¡cy prac¦: Prof. dr hab. in». Krzysztof Tcho« Ocena pracy: Wrocªaw 2004 Panu prof. dr hab. in». Krzysztofowi Tchoniowi podzi¦kowania za pomoc i ukierunkowanie w sposobie opisu bada« przyczyniaj¡ce si¦ do podniesienia merytorycznej warto±ci pracy. Równocze±nie dzi¦kuj¦ Panu dr in». Markowi Wnukowi za po±wi¦cony czas i pomoc przy budowie ukªadu sterowania modelu manipulatora mobilnego. 1 Spis tre±ci 1 Kinematyka manipulatora mobilnego 1.1 1.2 1.3 1.4 Endogeniczna przestrze« konguracujna . . . Kinematyka . . . . . . . . . . . . . . . . . . . Wyprowadzenie równa« kinematyki platformy Funkcja wyj±cia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 7 . 7 . 8 . 10 2 Algorytm kinematyki odwrotnej 13 3 Konstrukcja manipulatora mobilnego 17 2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 Jakobian pseudoodwrotny . . . . . . . . . . . . . . . . . . . . . . . . 13 Algorytm sterowania . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Dyskretna posta¢ algorytmu . . . . . . . . . . . . . . . . . . . . . . . 14 Ogólna charakterystyka . . . . . . . . . . . Silniki robota . . . . . . . . . . . . . . . . Nap¦d i skr¦t platformy . . . . . . . . . . Manipulator . . . . . . . . . . . . . . . . . Chwytak . . . . . . . . . . . . . . . . . . . Sterownik . . . . . . . . . . . . . . . . . . Jednostka centralna . . . . . . . . . . . . . Sensoryka . . . . . . . . . . . . . . . . . . 3.8.1 Pomiar poªo»enia . . . . . . . . . . 3.8.2 Pozycjonowanie pocz¡tkowe . . . . Ukªad wykonawczy dla silników . . . . . . 3.9.1 Cyfrowy ukªad sterowania . . . . . 3.9.2 Ukªad wyzwalania H-mostka . . . . 3.9.3 Mostek typu H . . . . . . . . . . . Zasilanie robota . . . . . . . . . . . . . . . Dane techniczne robota . . . . . . . . . . . Opis poª¡cze« moduªów elektronicznych . Opis funkcji peªnionych przez kanaªy TPU i porty mikrokontrolera . . . . . . . . . . . 4 Badania symulacyjne 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 18 21 22 23 23 23 23 25 25 26 27 29 29 30 . . . . . . . . . . . . . . . 32 34 Wyniki dziaªania algorytmu . . . . . . . . . . . . . . . . . . . . . . . 35 2 5 Badania eksperymentalne 5.1 5.2 5.3 5.4 Algorytm ±ledzenia . . . . . . . . . . . . . . . . . . . . . Programowa idea dziaªania algorytmu ±ledzenia poªo»enia Wst¦pne testy na robocie . . . . . . . . . . . . . . . . . . Eksperymentalne sprawdzenie algorytmu kinematyki odwrotnej . . . . . . . . . . . . . . . . . . . . 3 39 . . . . . . . 39 . . . . . . . 39 . . . . . . . 40 . . . . . . . 40 Spis rysunków 1 Manipulator typu 2R na platformie mobilnej . . . . . . . . . . . . . . 1.1 1.2 1.3 1.4 Warunek braku bocznego po±lizgu kóª tylnych . . . . . . . Warunek braku bocznego po±lizgu koªa przedniego . . . . . Platforma mobilna w zewn¦trznym ukªadzie wspóªrz¦dnych Widok manipulatora . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 Koªo przednie z silnikiem nap¦dowym i skr¦caj¡cym -widok z boku Silnik steruj¡cy skr¦tem -widok z góry . . . . . . . . . . . . . . . . Przekªadnia dla dolnego ramienia manipulatora . . . . . . . . . . . Przekªadnia dla górnego ramienia manipulatora . . . . . . . . . . . Chwytak dwupalczasty . . . . . . . . . . . . . . . . . . . . . . . . . Schemat blokowy ukªadu sterowania robota . . . . . . . . . . . . . Schemat ideowy kodera . . . . . . . . . . . . . . . . . . . . . . . . . Zasada pomiaru za pomoc¡ kodera . . . . . . . . . . . . . . . . . . Schemat blokowy ukªadu sterowania silnikiem . . . . . . . . . . . . Schamat ideowy cyfrowej cz¦±ci ukªadu sterowania mostkiem . . . . Schamat ideowy ukªadu sterowania mostkiem . . . . . . . . . . . . Schemat blokowy poª¡cze« moduªów robota . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 20 20 21 22 24 24 26 27 28 33 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Rozmieszczenie punktów startowych w ukªadzie wspóªrz¦dnych Wynik dziaªania algorytmu dla punktu startowego A . . . . . Wynik dziaªania algorytmu dla punktu startowego B . . . . . Wynik dziaªania algorytmu dla punktu startowego C . . . . . Wynik dziaªania algorytmu dla punktu startowego D . . . . . Wynik dziaªania algorytmu dla punktu startowego E . . . . . Wynik dziaªania algorytmu dla punktu startowego F . . . . . Wynik dziaªania algorytmu dla punktu startowego H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 35 36 36 37 37 38 38 5.1 5.2 5.3 5.4 5.5 K¡t skr¦tu przedniego koªa w caªym horyzoncie czasowym . K¡t skr¦tu przedniego koªa w pocz¡tkowej fazie ruchu . . . . Droga przebyta przez robota w caªym horyzoncie czasowym Droga przebyta przez robota w pocz¡tkowej fazie ruchu . . . Widok skonstruowanego manipulatora mobilnego . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 42 42 43 4 . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 9 . 9 . 11 . 11 Wprowadzenie Post¦p techniczny w wielu dziedzinach nauki, dynamicznie rozwijaj¡ce si¦ badania nad robotami oraz wykorzystanie techniki mikroprocesorowej umo»liwiaj¡ budow¦ coraz lepszych urz¡dze« robotycznych. Podwy»szanie jako±ci i niezawodno±ci sterowania, pozwalaj¡ce wykonywa¢ zaprogramowane ruchy znalazªo zastosowanie robotów w ró»nych dziedzinach »ycia. Roboty pomagaj¡ czªowiekowi w ci¦»kich i niebezpiecznych dla zdrowia pracach jak malowanie, spawanie oraz przy wykonywaniu precyzyjnych czynno±ci np. w medycynie. Mo»liwo±¢ samodzielnego przemieszczania si¦ robota daje mu szersze mo»liwo±ci zastosowa«. Urz¡dzenie skªadaj¡ce si¦ z manipulatora zamontowanego na platformie mobilnej pozwala wykonywa¢ bardziej wyszukane zadania. Manipulatory mobilne mog¡ pomóc czªowiekowi w transporcie, usªugach, opiece nad osobami starszymi lub niepeªnosprawnymi. Rysunek 1: Manipulator typu 2R na platformie mobilnej Stosowanie manipulatorów mobilnych generuje potrzeby opracowywania wielu typów algorytmów sterowania. Algorytm sterowania manipulatorem mobilnym lub 5 inaczej algorytm planowania ruchu robota ma na celu wyznaczenie pewnych oddziaªywa« przeprowadzaj¡cych ukªad z konguracji pocz¡tkowej do zadanej konguracji ko«cowej. Zakªadaj¡c nieholonomiczne podej±cie do ukªadu robotycznego zadnie sterowania robotem mo»na podzieli¢ na dwa etapy. Pierwszy etap polega na planowaniu trajektorii ruchu robota, a drugi etap dotyczy ±ledzenia zadanej trajektorii realizowane przez ukªad sterowania [2]. ledzenie trajektorii wyznaczonej w pierwszym etapie powinno doprowadzi¢ robota do celu. Celem bada« niniejszej pracy jest analiza algorytmu kinematyki odwrotnej oraz eksperymentalne sprawdzenie mo»liwo±ci jego implementacji na rzeczywistym modelu robota. Obiektem bada« jest manipulator mobilny widoczny na rysunku (1). Robot skªada si¦ z trzykoªowej platformy mobilnej klasy (1,1) i dwuramiennego manipulatora o dwóch przegubach rotacyjnych. W pracy wykonano teoretyczne wyliczenia kinematyki rozwa»anego robota. Przedstawiono algorytm kinematyki odwrotnej i przetestowano algorytm symulacyjnie. Dodatkowo skonstruowano zyczny model manipulatora mobilnego. Wykonany robot umo»liwiª przeprowadzenie na nim zamierzonych bada« eksperymentalnych. Wcze±niejsze badania algorytmów kinematycznych [3] i numerycznych metod planowania ruchu robota [4] pozwoliªy na odpowiednie dobranie elementów algorytmu, aby umo»liwi¢ implementacje na sterowniku robota. Ukªad pracy jest nast¦puj¡cy: W rozdziale pierwszym zawarto teoretyczne podstawy dotycz¡ce kinematyki robota w przestrzeni endogeniczniej [1] oraz wyprowadzono równania kinematyki rozwa»anego manipulatora mobilnego. Nast¦pnie, w rozdziale drugim, opisano badany algorytm kinematyki odwrotnej, a w rozdziale czwartym przedstawiono wyniki bada« symulacyjnych tego algorytmu. Rozdziaª trzeci po±wi¦cono opisowi budowy mechanicznej i elektronicznej skonstruowanego modelu manipulatora mobilnego. Eksperymentalne wyniki dziaªania algorytmu na rzeczywistym obiekcie przedstawiono w rozdziale pi¡tym. 6 Rozdziaª 1 Kinematyka manipulatora mobilnego 1.1 Endogeniczna przestrze« konguracujna Przyjmijmy, »e manipulator mobilny skªada si¦ z nieholonomicznej platformy mobilnej oraz z zamontowanego na niej stacjonarnego manipulatora. Platforma posiada n uogólnionych wspóªrz¦dnych stanu oraz m wej±¢ steruj¡cych. Oznaczmy stan platformy jako q ∈ Rn , wektor wej±¢ jako u ∈ Rm , wektor poªo»e« przegubów manipulatora jako x ∈ Rp . Dodatkowo oznaczmy wektor wspóªrz¦dnych zadaniowych przez y ∈ Rr . Przy tak przyj¦tych oznaczeniach kinematyka manipulatora mobilnego mo»e by¢ reprezentowana przez ukªad sterowania z wyj±ciem ( q̇ = G(q)u y = k(q, x). (1.1) Przez analogi¦ do stacjonarnych manipulatorów, gdzie konguracja zwi¡zana jest z zadawanym poªo»eniem przegubów, w manipulatorch mobilnych konguracja b¦dzie zwi¡zana ze zmiennymi steruj¡cymi. Endogeniczn¡ przestrzeni¡ konguracyjn¡ b¦dzie nazywana przestrze« okre±lona przez X = L2m [0, T ] × Rp , gdzie zbiór funkcji steruj¡cych platform¡ L2m [0, T ] jest przestrzeni¡ funkcji caªkowalnych z kwadratem na pewnym przedziale czasu [0, T ], natomiast Rp oznacza poªo»enie przegubów manipulatora. Endogeniczna przestrze« konguracyjna jest przestrzeni¡ Hilberta z norm¡ k(u(·), x)kRW = Z T O !1/2 T T u (t)R(t)u(t)dt + x W x , dla pewnych dodatnio okre±lonych i symetrycznych macierzy R(t) = RT (t) > 0, W = W T > 0. 1.2 Kinematyka Ustalaj¡c poªo»enie pocz¡tkowe plaformy q0 ∈ Rn i wybieraj¡c konguracj¦ endogeniczn¡ (u(·), x) ∈ X , wyliczamy trajektori¦ q(t) = ϕq0 ,t (u(·)) platformy oraz trajektori¦ w przestrzeni zadaniowej y(t) = k(q(t), x). Zakªadamy, »e obie trajektorie 7 s¡ zdeniowane dla ka»dego t ∈ [0, T ]. Wyj±cie systemu (1.1) (poªo»enie i orientacja efektora) w chwili T Kq0 ,T : X −→ Rr , jest okre±lone przez transformacj¦ konguracji endogenicznej we wspóªrz¦dne zadaniowe Kq0 ,T (u(·), x) = y(T ) = k(ϕq0 ,T (u(·)), x). (1.2) Tak zdeniowana funkcja b¦dzie nazywana kinematyk¡ manipulatora mobilnego. Odpowiednikiem jakobianu analitycznego manipulatora mobilnego jest pochodna kinematyki, Jq0 ,T (u(·), x)(v(·), w) = C(T, x) Z T 0 d |α=0 Kq0 ,T (u(·) + αv(·), x + αw) = dα Φ(T, s)B(s)v(s)ds + D(T, x)w, (1.3) której warto±¢ jest wyj±ciem η(T ) ukªadu wariacyjnego ( ξ˙ = A(t)ξ + B(t)v, η = C(t, x) + D(t, x)w (1.4) stowarzyszonego z ukªadem (1.1), obliczona dla ξ(0) = 0, gdzie B(t) = G(q(t)), A(t) = C(t, x) = ∂k(q(t),x) , ∂q ∂ (G(q(t))u(t)), ∂q D(t, x) = ∂k(q(t),x) . ∂x Wyst¦puj¡ca w równaniu(1.3) macierz fundamentalna Φ(t, s) speªnia równanie ∂ Φ(t, s) = A(t)Φ(t, s), oraz posiada wªasno±¢ Φ(s, s) = In . ∂t 1.3 Wyprowadzenie równa« kinematyki platformy Rozwa»my platform¦ mobiln¡ klasy (1,1) [6], posiadaj¡c¡ jedno koªo przednie i dwa tylne. Koªa tylne zamocowane s¡ po bokach platformy, natomiast koªo przednie zapewniaj¡ce nap¦d i skr¦t robota znajduje si¦ w poªowie szeroko±ci nadwozia. Platforma jest opisana wektorem zmiennych stanu q = (x, y, ϕ, θ). Parametry x, y okre±laj¡ wspóªrz¦dne ±rodka tylnej osi, a ϕ i θ s¡ odpowiednio orientacj¡ robota i k¡tem skr¦tu przedniego koªa. Na rysunku (1.1) przedstawiony jest schematyczny widok platformy z oznaczonymi parametrami. Odlegªo±¢ przedniego koªa od tylnej osi jest oznaczona przez l. Formalnie, kinematyk¦ robota mobilnego charakteryzuje si¦ przez ukªad sterowania postaci (1.1) gdzie q ∈ Rn , u ∈ Rm , m = n − s. Parametr s oznacza ilo±¢ niezale»nych ogranicze« nieholonomicznych. Wyznaczenie modelu kinematyki wymaga zaªo»enia o braku po±lizgu poprzecznego kóª tylnych oraz koªa przedniego. Warunek ten, w przypadku kóª tylnych, mo»na zapisa¢ jednym równaniem, które odpowiada brakowi po±lizgu bocznego punktu o wspóªrz¦dnych 8 Yo θ η y· ϕ · ϕ ycosϕ l ϕ y ϕ x· · ϕ xsinϕ Xo ξ x Rysunek 1.1: Warunek braku bocznego po±lizgu kóª tylnych · η Yo θ η=y+lsinϕ ϕ η· =cos(ϕ+θ) · ξ (ϕ+θ) l · (ϕ+θ) ϕ ξ=x+lcosϕ ξ=sin(ϕ+θ) Xo Rysunek 1.2: Warunek braku bocznego po±lizgu koªa przedniego 9 (x,y), b¦d¡cego ±rodkiem tylnej osi. Oznacza to, »e skªadowe wektora pr¦dko±ci prostopadªe do powierzchni kóª musz¡ mie¢ warto±¢ równ¡ zero, (1.5) ẋ sin ϕ − ẏ cos ϕ = 0. Analogicznie, warunek na brak polizgu bocznego koªa przedniego mo»na zapisa¢ jako (zob. rys 1.2) ξ˙ sin(ϕ + θ) − η̇ cos(ϕ + θ) = 0, (1.6) gdzie ξ = x + l cos ϕ, ξ˙ = ẋ − lϕ̇ sin ϕ, η = y + l sin ϕ, η̇ = ẏ + lϕ̇ cos ϕ. Ostatecznie, po podstawieniu otrzymujemy: (ẋ − lϕ̇ sin ϕ sin(ϕ + θ) − (ẏ + lϕ̇ cos ϕ cos(ϕ + θ) = 0. Po kolejnych przeksztaªceniach mamy (1.7) ẋ cos ϕ sin θ + ẏ sin ϕ sin θ − lϕ̇ cos θ = 0. Ograniczenia (1.5) oraz (1.7) mo»na zapisa¢ macierzowo w postaci Pfaa A(q)q̇ = sin ϕ cos ϕ sin θ − cos ϕ sin ϕ sin θ 0 −l cos θ ẋ 0 ẏ . 0 ϕ̇ θ̇ (1.8) Aby otrzyma¢ pierwsze równanie ukªadu (1.1) nale»y znale¹¢ pola wektorowe g1 (q), g2 (q) nale»¡ce do j¡dra macierzy A(q). atwo sprawdzi¢, »e takie warunki speªniaj¡ pola l cos ϕ cos θ 0 l sin ϕ cos θ 0 g1 (q) = , g2 (q) = . 0 sin θ 0 1 Ostatecznie, ukªad sterowania reprezentuj¡cy kinematyk¦ platformy przyjmuje posta¢ ẋ = u1 l cos ϕ cos θ ẏ = u l sin ϕ cos θ 1 ϕ̇ = u1 sin θ (1.9) θ̇ = u2 . 1.4 Funkcja wyj±cia Okre±lenie poªo»enia i orientacji efektora w ukªadzie globalnym w zale»no±ci od konguracji przegubów manipulatora mo»na wyliczy¢ przy pomocy zªo»enia dwóch transformacji. Pierwsza Ap0 = T rans(X, x)T rans(Y, y)Rot(Z, ϕ)T rans(X, d) 10 Zo θ Yo l d y ϕ Xo x Rysunek 1.3: Platforma mobilna w zewn¦trznym ukªadzie wspóªrz¦dnych l2 x2 l1 x1 lo Rysunek 1.4: Widok manipulatora 11 okre±la poªo»enie oraz orientacj¦ punktu platformy, w którym jest zamontowana podstawa manipulatora (Rysunek 1.3). Druga transformacja π Aep = T rans(Z, l0 )Rot(X, )Rot(Z, x1 )T rans(X, l1 )Rot(Z, x2 )T rans(X, l2 ) 2 wyznacza poªo»enie i orientacj¦ efektora wzgl¦dem punktu zamontowania manipulatora na platformie (Rysunek 1.4). Iloczyn tych dwóch przeksztaªce« wyznacza poªo»enie i orientacj¦ efektora wzgl¦dem ukªadu globalnego cϕ c12 s c Ae0 = ϕ 12 s12 0 −cϕ s12 −sϕ s12 c12 0 sϕ −cϕ 0 0 x + cϕ (d + l1 c1 + l2 c12 ) y + sϕ (d + l1 c1 + l2 c12 ) , l0 + l1 s1 + l2 s12 1 gdzie s12 = sin(x1 +x2 ), c12 = cos(x1 +x2 ). Przy zaªo»eniu, »e interesuje nas poªo»enie efektora, funkcja wyj±cia jest ostatni¡ kolumn¡ macierzy Ae0 i ostatecznie przyjmuje postac x + cϕ (d + l1 c1 + l2 c12 ) y = k(q, x) = y + sϕ (d + l1 c1 + l2 c12 ) . (1.10) l0 + l1 s1 + l2 s12 Poª¡czenie wyra»e« (1.9) oraz (1.10) reprezentuje kinematyk¦ manipulatora mobilnego w postaci ukªadu sterowania z wyj±ciem. 12 Rozdziaª 2 Algorytm kinematyki odwrotnej 2.1 Jakobian pseudoodwrotny Niech Jq0 ,T (u(·), x)(v(·), w) oznacza wcze±niej zdeniowany jakobian analityczny (1.3). Przy ustalonej konguracji endogenicznej (u(·), x) rozwa»my równanie (2.1) Jq0 ,T (u(·), x)(v(·), w) = η r dla danego η ∈ R . Rozwi¡zanie tego równania uzyskamy metod¡ najmniejszych kwadratów. Jest to równowa»ne minimalizacji kwadratu normy min k(v(·), w)k2RW , (v(·),w) z uwzgl¦dnieniem warunku równo±ciowego (2.1). W tym celu zdeniujemy lagran»ian Z T L(v(·), w, λ) = T λ C(T, x) Z T 0 0 ! T T v (t)R(t)v(t)dt + w W w + ! Φ(T, t)B(t)v(t)dt + D(T, x)w − η , gdzie λ = (λ1 , . . . , λr ) jest wektorem mno»ników Lagrange'a. Po wyznaczeniu ekstremum lagran»ianu i eliminacji mno»ników Lagrange'a uzyskujemy rozwi¡zanie równania (2.1) w postaci v(t) w = Jq#0 ,T (u(·), x)η (t) = gdzie R−1 (t)B T (t)ΦT (T, t)C T (T, x) Dq−1 (u(·), x)η, 0 ,T W −1 DT (T, x) (2.2) Dq0 ,T (u(·), x) = D(T, x)W −1 DT (T, x) + C(T, x) Z T 0 Φ(T, s)B(s)R−1 (s)B T (s)ΦT (T, s)dsC T (T, x). Równanie (2.2) okre±la prawostronn¡ pseudoodwrotno±¢ (odwrotno±¢ Moore'a -Penrose'a) jakobianu, wi¦c prawdziwa jest równo±¢ Jq0 ,T (u(·), x)Jq#0 ,T (u(·), x) = Ir . (2.3) Nietrudno sprawdzi¢, »e równanie (2.1) b¦dzie speªnione, je»eli do rozwi¡zania (2.2) zostanie dodany dowolny element ξ ∈ KerJq0 ,T (u(·), x). 13 2.2 Algorytm sterowania Odwrotne zadanie kinematyki dla robota mobilnego polega na znalezieniu takiej konguracji endogenicznej (u(·), x), aby przeprowadzi¢ ukªad z poªo»enia pocz¡tkowego q0 , x0 do zadanego punktu docelowego yd w zadanym horyzoncie czasowym T. Zadanie b¦dzie uwa»ane za rozwi¡zane, gdy Kq0 ,T (u(·), x) = yd . Przyjmijmy, »e zadanie odwrotne posiada rozwi¡zanie. Aby je znale¹¢, nale»y wybra¢ pewn¡ krzyw¡ (uθ (·), x(θ)), θ ∈ R, w endogenicznej przestrzeni konguracyjnej, startuj¡c z pewnej pocz¡tkowej konguracji (u0 (·), x0 ). Wzdªu» tej krzywej obliczamy bª¡d e(θ) = Kq0 ,T (uθ (·), x(θ)) − yd . (2.4) Gdy warto±¢ pocz¡tkowa bª¦du e(0) 6= 0, b¦dziemy chcieli wybra¢ tak¡ krzyw¡, aby wzdªu» krzywej bª¡d zmniejszaª si¦ eksponencjalnie do zera. Eksponencjaln¡ zbie»no±¢ bª¦du chcemy osi¡gn¡¢ dla pewnego wspóªczynnika γ > 0, takiego »e d e(θ) = −γe(θ). dθ (2.5) Po niezb¦dnych przeksztaªceniach i uwzgl¦dnieniu denicji jakobianu analitycznego (1.3), z równania (2.5) otrzymujemy nast¦puj¡ce równanie ró»niczkowe d Jq0 ,T (uθ (·), x(θ)) dθ uθ (·) x(θ) = −γe(θ). (2.6) Przy zaªo»eniu, »e jakobian robota mobilnego Jq0 ,T (u(·), x) jest suriekcj¡ wzdªu» krzywej (uθ (·), x(θ)), mo»na zapisa¢ algorytm kinematyki odwrotnej z wykorzystaniem jakobianu pseudoodwrotnego d dθ uθ (t) x(θ) = −γ Jq#0 ,T (uθ (·), x(θ))e(θ) (t) = R−1 (t)BθT (t)ΦTθ (T, t)CθT (T, x) −γ Dq−1 (uθ (·), x(θ))e(θ). 0 ,T W −1 DθT (T, x) (2.7) Rozwi¡zanie odwrotnego zadania kinematyki przedstawi¢ mo»na jako granic¦ w +∞, trajektorii b¦d¡cej rozwi¡zaniem równania (2.7) ud (t) xd = lim θ→+∞ uθ (t) . x(θ) (2.8) 2.3 Dyskretna posta¢ algorytmu Kinematyka manipulatora mobilnego jest okre±lona w postaci ukªadu sterowania (1.1). Przyjmujemy konguracj¦ pocz¡tkow¡ (u0 (·), x0 ), punkt docelowy yd oraz 14 interwaª sterowania [0, T ]. Maj¡c dany jakobian analityczny, mo»na obliczy¢ sterowanie pozwalaj¡ce osi¡gn¡¢ yd w zadanym czasie T wedªug formuªy ui+1 (·) xi+1 (·) = ui xi − γJq#0 ,T (ui (·), xi )ei , (2.9) któr¡ uzyskano w wyniku dyskretyzacji (2.7). Je±li punkt docelowy yd zostaª osi¡gni¦ty w kroku i-tym, to Kq0,T (ui (·), xi ) − yd = 0 i odwrotne zadanie kinematyki mo»na uwa»a¢ za rozwi¡zane. W przeciwnym przypadku sterowanie ui (·) jest modykowane zgodnie ze wzorem (2.9). Ze wzgl¦dów obliczeniowych, a tak»e z uwagi na zyczne wªasno±ci nap¦dów robota przyjmuje si¦ sterowanie w postaci sko«czonego szeregu Fouriera ui (t) = λi0 + si X λi2k−1 sin kωt + λi2k cos kωt, k=1 gdzie i = 1, 2, . . . , m, ω = 2π/T. Powy»sze równanie mo»na zapisa¢ w postaci u(t) = P (t)λ, gdzie macierz P (t) = 1 sin ωt . . . cos s1 ωt 0 0 ... 0 0 0 ... 0 0 0 . . . 0 1 sin ωt . . . cos s ωt 0 0 . . . 0 2 .. . .. . 0 0 ··· 0 0 ··· 0 0 1 sin ωt · · · cos sm ωt tworzy baz¦ przestrzeni funkcyjnej, a λ = (λ1 , λ2 , · · · , λm ) jest wektorem wspóªczynników rozwini¦cia. Ostatecznie dyskretn¡ posta¢ algorytmu sterowaniao ograniczonym pa±mie cz¦stotliwo±ci mo»na zapisa¢ jako λk+1 xk+1 = λk xk − γ J˜q#0 ,T (λk , xk )ek . (2.10) Wystepuj¡ca w (2.10) macierz J˜q#0 ,T stanowi pseudoodwrotno±¢ jakobianu analitycznego Jq0 ,T (λk , xk ) = [ Ck (T, xk ) RT 0 Φk (T, s)Bk (s)P (s)ds Dk (T, xk ) ] , (2.11) która jest liczona zgodnie z formuª¡ A# = AT (AAT )−1 . Wyst¦puj¡ce w (2.7) macierze R i W wybieramy jako staªe i jednostkowe. Podczas dziaªania algorytmu wektor λ b¦dzie aktualizowany, a» do osi¡gni¦cia punktu yd . Punkt docelowy mo»na uzna¢ za osi¡gni¦ty, gdy bª¡d deniowany jako ró»nica poªo»enia efektora i punktu zadanego, ek = k(qk (T ), xk ) − yd b¦dzie mniejsza od pewnej bliskiej zeru warto±ci. Za szybko±¢ zbie»no±ci algorytmu odpowiada parametr γ > 0. Przed rozpocz¦ciem dziaªania algorytmu ustalane s¡ warto±ci pocz¡tkowe. Do zmiennych zadeklarowanych w programie wpisywana jest konguracja pocz¡tkowa q0 , punkt docelowy yd , czas sterowania T oraz pocz¡tkowe warto±ci wspóªczynników sterowania λ. Nast¦pnie 15 wykonywane s¡ obliczenia stanu ukªadu w zadanym horyzoncie czasowym, przez wykonanie numerycznego caªkowania równa« (1.9). Do caªkowania zastosujemy metod¦ Eulera ze staªym krokiem. Potrzebne jest te» wyliczenie macierzy przej±cia stanu Φ(T, s) wyst¦puj¡cej w jakobianie analitycznym [4]. Macierz Φ(t, s) jest rozwi¡zaniem równania ∂ Φ(t, s) = A(t)Φ(t, s). ∂t Przybli»one rozwi¡zanie powy»szego równania mo»na uzyska¢ korzystaj¡c z wªasno±ci macierzy Φ(t, s). Ró»niczkuj¡c wyra»enie Φ(t, s)Φ(s, t) = In po zmiennej s i uproszczeniu otrzymujemy ∂ Φ(t, s) = −Φ(t, s)A(s), ∂s a nast¦pnie ∂ Φ(T, t) = −Φ(T, t)A(t). ∂t Przybli»aj¡c pochodn¡ ilorazem ró»nicowym Φ(T, tk ) − Φ(T, tk−1 ) = −Φ(T, tk )A(tk ), ∆ ostatecznie otrzymujemy formuª¦ aproksymuj¡c¡ macierz przej±cia Φ(T, tk−1 ) = Φ(T, tk )(In + A(tk )∆), gdzie ∆ jest odlegªo±ci¡ pomi¦dzy kolejnymi chwilami czasu, a A(t) jest podane analitycznie. Dla macierzy przej±cia prawdziwe jest Φ(T, T ) = In . Je»eli punkt docelowy zostaª osi¡gni¦ty z zadan¡ dokªadno±ci¡, to algorytm ko«czy dziaªanie. W przeciwnym razie nast¦puje modykacja parametrów sterowania wedªug (2.10) i wykonanie oblicze« od pocz¡tku. W implementacji algorytmu baza przestrzeni funkcyjnej zostaªa ograniczona do skªadowych o cz¦stotliwo±ci podstawowej i przyjmuje posta¢ P (t) = 1 sin ωt cos ωt 0 0 0 . 0 0 0 1 sin ωt cos ωt Liczba modykacji parametrów sterowa« zostaªa ograniczona do 500. Pozostaªe elementy potrzebne w algorytmie s¡ wyliczane funkcjami, które generuj¡ odpowiednie macierze w zale»no±ci od parametrów wej±ciowych. Symulacje oraz algorytm wykonano przy u»yciu pakietu Matlab. 16 Rozdziaª 3 Konstrukcja manipulatora mobilnego 3.1 Ogólna charakterystyka Baz¦ robota stanowi aluminiowa pªyta w ksztaªcie prostok¡ta, w której wykonano wyci¦cia na koªa. Robot jest klasy (1,1) i posiada trzy koªa: jedno przednie i dwa tylne. Koªo przednie, umieszczone w poªowie szeroko±ci robota, realizuje nap¦d i skr¦t. Koªa tylne zostaªy zamontowane na bokach platformy. Koªa zaadaptowano z wózków dzieci¦cych i przerobiono stosownie do potrzeb projektu (centrowanie otworów i dopasowanie sworzni stanowi¡cych ªo»yska ±lizgowe kóª). Przednie zawieszenie wykonano z pªaskowników stalowych, które zapewniaj¡ odpowiedni¡ wytrzymaªo±¢. K¡t skr¦tu koªa przedniego jest ograniczony zycznie i wynosi ± π2 . W centralnym, punkcie platformy osadzono podstaw¦ manipulatora. Manipulatorem jest dwuwahadªo, na ko«cu którego znajduje si¦ efektor. Ramiona manipulatora zostaªy wykonane z ksztaªtowników aluminiowych. Wysoko±¢ postumentu mierzona od powierzchni platformy wynosi 20cm. Dªugo±ci ka»dego z ramion manipulatora wynosi 40cm. Platforma ma 30cm szeroko±ci i 45cm dªugo±ci. Elementy konstrukcyjne i nap¦dowe zaadaptowano z urz¡dze« codziennego u»ytku, co pozwoliªo na znaczne obni»enie koszów robota. 3.2 Silniki robota Robot posiada cztery silniki elektryczne pr¡du staªego sprz¦»one z przekªadniami planetarnymi. Napi¦cie zasilania silników pochodz¡cych od wiertarko-wkr¦tarek wynosi 14.4V. U»yte zespoªy nap¦dowe posiadaj¡ odpowiedni¡ moc, a ich koszt jest niewielki w porównaniu z silnikami profesjonalnymi. Typowe dla wiertarkowkr¦tarek nap¦dy przed zamontowaniem do robota nale»aªo odpowiednio zmodykowa¢. Z waªków wyj±ciowych przekªadni planetarnych usuni¦to sprz¦gªa cierne i osadzono na nich z¦batki wspóªpracuj¡ce z przekªadniami. Nast¦pnie z ksztaªtowników stalowych wykonano uchwyty umo»liwiaj¡ce zamocowanie silników do robota. Dodatkowo na osiach silników nale»aªo zamontowa¢ czujniki poªo»enia. Aby umo»liwi¢ zamontowanie czujników, do osi silników przymocowano wykonane w tym celu sprz¦gªa o takiej ±rednicy jak sprz¦gªo sensora. W poni»szej tabeli zestawiono 17 parametry silnika nap¦dowego z przekªadni¡ planetarn¡. napi¦cie zasilania [V] pobór pr¡du (bez obci¡»enia slinika ) [A] pr¡d rozruchu [A] ilo±¢ obrotów silnika [min−1 ] przeªo»enie przekªadni planetarnej silnika 14.4 1.6 12 19800 36:1 3.3 Nap¦d i skr¦t platformy Skr¦t jest realizowany przez dwie sprz¦»one ze sob¡ przekªadnie. Pierwsza z nich obni»a obroty, a druga, k¡towa zapewnia dodatkowo mo»liwo±¢ prostopadªego zamocowania silnika na osi skr¦tnej koªa (zob. Rysunek 3.1). Elementy do pierwszej przekªadni pochodz¡ od urz¡dzenia gospodarstwa domowego. Obie przekªadnie umieszczone jedna za drug¡ zapewniaj¡ obni»enie obrotów silnika (z przekªadni¡ planetarn¡) okoªo sze±¢ razy. Pozwala to na dokªadniejsze pozycjonowanie skr¦tu koªa platformy. Dodatkowo, zastosowanie przekªadni k¡towej pozwoliªo na obni»enie wysoko±ci kolumny skr¦caj¡cej, co wyeliminowaªo kolizj¦ z manipulatorem. Na wyj±ciowym waªku przekªadni k¡towej umieszczone s¡ wideªki, do których zamontowano koªo oraz nap¦dzaj¡cy je silnik. Nap¦d przedniego koªa odbywa si¦ za po±rednictwem paska z¦batego. rednica koªo z¦batego na osi silnika nap¦dowego jest mniejsza od ±rednicy koªa nap¦dzaj¡cego robota, co pozwala na dodatkowe obni»enie obrotów (zob. Rysunek 3.1). Kolumna przedniego koªa jest przymontowana do platformy za po±rednictwem pªaskownika stalowego wyprolowanego w ªuk, który stanowi zawieszenie ukªadu odpowiedzialnego za nap¦d i skr¦t. 3.4 Manipulator Manipulator robota jest typu 2R. Skªada si¦ on z dwóch ramion o dªugo±ci 40cm osadzonych na podstawie. Do nap¦du ramion wahadªa u»yto takich samych silników jak w platformie. Siªy potrzebne do wykonania ruchu ramionami manipulatora s¡ nieco wi¦ksze od siª potrzebnych do wykonania ruchu platformy, dlatego wykonano dodatkowe przekªadnie. Czterostopniowe przekªadnie z¦bate obni»aj¡ pr¦dko±¢ obrotow¡ silników obu ramion manipulatora, jednocze±nie zwi¦kszaj¡c moment siªy na wyj±ciu ukªadu nap¦dowego ramion. Przekªadnia nap¦dzaj¡ca pierwsze rami¦ manipulatora zostaªa wykonana tak, aby mo»liwe byªo umieszczenie jej wewn¡trz podstawy. Na ostatniej osi przekªadni, znajduj¡cej si¦ przy szczycie podstawy, zamontowano pierwsze rami¦ manipulatora. Elementem no±nym pierwszego ramienia s¡ dwa równolegle poª¡czone ksztaªtowniki. Pomi¦dzy ksztaªtownikami zamontowano koªa z¦bate przekªadni dla drugiego ramienia (rys. 3.4). Takie rozwi¡zanie zaproponowano, aby silnik byª zamontowany mo»liwie blisko przegubu ª¡cz¡cego pierwsze rami¦ z postaw¡. Dzi¦ki takiemu rozwi¡zaniu mo»na sterowa¢ drugim ramieniem manipulatora, niezale»ne od pierwszego. Ponadto powoduje to przesuni¦cie ±rodka masy bli»ej podstawy, co ma znaczenie ze wzgl¦du na siª¦ (moment) potrzebn¡ do 18 przekladnia katowa silnik skretny silnik napedowy pasek zebaty Rysunek 3.1: Koªo przednie z silnikiem nap¦dowym i skr¦caj¡cym -widok z boku przekladnia katowa Rysunek 3.2: Silnik steruj¡cy skr¦tem -widok z góry 19 Rysunek 3.3: Przekªadnia dla dolnego ramienia manipulatora Rysunek 3.4: Przekªadnia dla górnego ramienia manipulatora 20 zapewnienia ruchu ramienia. Do ostatniej osi przekªadni znajduj¡cej si¦ na ko«cu pierwszego ramienia zamocowano uchwyt dla drugiego ramienia manipulatora, które jest wykonane z ksztaªtownika aluminiowego. Na ko«cu drugiego ramienia przygotowano miejsce do zamontowania chwytaka. Koªa z¦bate obu przekªadni pochodz¡ z urz¡dze« AGD, które odpowiednio przerobiono stosownie do potrzeb (zmniejszono szeroko±¢ kóª, wytulejowano otwory). 3.5 Chwytak Podstawowym zadaniem chwytaka jest uchwycenie obiektu i uwolnienie go, po przeniesieniu przez robota do miejsca docelowego. Z wielu mo»liwych typów chwytaków wybrano jedno z najprostszych rozwi¡za« i wykonano chwytak dwupalczasty. Elementem wykonawczym jest elektromagnes. Pojawienie si¦ napi¦cia na uzwojeniach cewki powoduje wci¡gni¦cie rdzenia elektromagnesu poª¡czonego z palcami chwytaka i zamkni¦cie go. Za otwarcie chwytaka odpowiedzialna jest spr¦»yna, która Rysunek 3.5: Chwytak dwupalczasty po wyª¡czeniu napi¦cia zasilania rozwiera palce chwytaka. Takie rozwi¡zanie umo»liwia uchwycenie przedmiotów o szeroko±ci okoªo 2.5cm. Po zmianie punktu zamocowania ª¡cznika rdzenia elektromagnesu z d¹wigni¡ palców chwytaka, mo»liwe jest równie» uchwytanie szerszych przedmiotów. Dla odpowiedniego dziaªania chwytaka, po zwi¦kszeniu rozwarcia palców nale»y równie» dokona¢ regulacji spr¦»yny powrotnej. Poza mo»liwo±ci¡ regulacji szeroko±ci rozwarcia palców chwytaka istnieje mo»liwo±¢ zmiany ustawienia pªaszczyzny dziaªania chwytaka. Jest to mo»liwe dzi¦ki wykonaniu interfejsu umieszczonego prostopadle do drugiego ramienia manipulatora. W zale»no±ci od rodzaju obiektu, który chcemy uchwyci¢ mo»na dowolnie dopasowa¢ k¡t chwytaka wzgl¦dem pªaszczyzny pionowej. Przez r¦czn¡ regulacj¦ i zablokowanie ±rub¡ mo»na przekongurowa¢ chwytak tak, aby palce otwieraªy si¦ 21 na boki lub w gór¦ i w dóª. Sterowanie otwarciem chwytaka odbywa si¦ jednym z bitów portu mikrokontrolera, za po±rednictwem ukªadu klucza tranzystorowego. 3.6 Sterownik Za wszystkie dziaªania i ruchy robota jest odpowiedzialny ukªad sterowania. Wykonuje on niezb¦dne pomiary parametrów ruchu, takie jak poªo»enie, pr¦dko±¢. Ponadto ukªad sterowania komunikuje si¦ z komputerem nadrz¦dnym w celu pobrania parametrów do realizowanego zadania. Przekazuje on do komputera nadrz¦dnego aktualne parametry. Na podstawie zadanych i zmierzonych parametrów generuje manipulator platforma koder N koder S koder W1 koder W2 M1 M2 M3 M4 Uklad wykonawczy Uklad wykonawczy komputer nadrzedny Uklad Uklad wykonawczy wykonawczy TPU SCI Jednostka centralna zasilanie robot Rysunek 3.6: Schemat blokowy ukªadu sterowania robota takie sterowania silników, aby doprowadzi¢ robota do punktu docelowego. Moc obliczeniowa ukªadu sterowania powinna by¢ taka, aby zapewni¢ wykonywanie tych wszystkich czynno±ci autonomicznie i w mo»liwie krótkim czasie. Na rysunku 3.9 przedstawiono schemat blokowy ukªadu sterownika. 22 3.7 Jednostka centralna Do sterowania robotem wykorzystano 32-bitowy mikrokontroler MC68332, który posiada du»e mo»liwo±ci obliczeniowe i funkcjonalne. W robocie wykorzystano autonomiczny okªad czasowy TPU (Time Processor Unit) i komunikacj¦ szeregow¡ z komputerem nadrz¦dnym SCI (Serial Communication Interface). Moduª TPU umo»liwia realizowanie zaprogramowanych w mikrokodzie funkcji czasowych. W robocie moduª TPU wykorzystano do generowania sygnaªu PWM oraz do dekodowania sygnaªów pochodz¡cych z czujników poªo»e«. Obie operacje wykonywane s¡ przy u»yciu standardowych funkcji o nazwie PWM i QDEC. Do pomiaru pr¦dko±ci silników wykorzystano napisan¡ do potrzeb projektu wózka MK funkcj¦ QDVEL [5]. Programowanie odbywa si¦ za po±rednictwem interfejsu ª¡cz¡cego mikrokontroler z komputerem PC. Mikrokontroler po podª¡czeniu do komputera pracuje w specjalnym trybie BDM (Background Debug Mode). Prac¦ w tym trybie równie» u»ywa si¦ do debagowania programu i podgl¡du zawarto±ci rejestrów. Jest to mo»liwe dzi¦ki u»yciu odpowiedniego oprogramowania dost¦pnego w Laboratorium robotyki. Ukªad mikrokontrolera wraz z pami¦ci¡ RAM, EEPROM, interfejsem szeregowym MAX232 oraz niezb¦dnymi zª¡czami, wyprowadzaj¡cymi sygnaªy z ukªadu oraz doprowadzaj¡cymi do niego, tworzy niezale»ny moduª. 3.8 Sensoryka 3.8.1 Pomiar poªo»enia Aby skutecznie sterowa¢ robotem, niezb¦dne jest wykonywanie pomiarów poªo»enia i pr¦dko±ci. Uwarunkowania nansowe wymusiªy u»ycie koderów przyrostowych pochodz¡cych z myszek do komputera. Przed zastosowaniem do robota nale»aªo zmieni¢ ukªad elektroniczny zgodnie ze schematem widocznym na rysunku (3.7). Po modykacji mechanicznej kodery zamocowano na osiach silników za po±rednictwem elastycznego ª¡cznika, który eliminuje ewentualne braki wspóªosiowo±ci. Podczas ruchu silnika fototranzystory kodera generuj¡ prostok¡tne sygnaªy przesuni¦te w fazie o 90o (zob. Rysunek 3.8). Po przej±ciu przez ukªad 7414 (w celu uzyskania stromych zboczy narastaj¡cych i opadaj¡cych), sygnaªy te s¡ doprowadzane do kanaªów TPU jednostki centralnej, gdzie s¡ zliczane programowo. Na podstawie liczby impulsów mo»na okre±li¢ poªo»enie i obliczy¢ pr¦dko±¢ robota (platformy i przegubów manipulatora). Zastosowane kodery generuj¡ 12 impulsów na jeden obrót osi silnika. Dekodowanie sygnaªu w module TPU uwzgl¦dnia wszystkie zbocza sygnaªu, wi¦c rozdzielczo±¢ pomiaru poªo»enia wzrasta do 48 próbek przypadaj¡cych na jeden obrót osi silnika. Zastosowanie przekªadni obni»aj¡cych pr¦dko±¢, dodatkowo zwi¦ksza dokªadno±¢ pomiaru. 3.8.2 Pozycjonowanie pocz¡tkowe Bezpo±rednio po wª¡czeniu zasilania robota, ukªad sterowania nie zna ani dokªadnej pozycji ramion, ani k¡ta skr¦tu przedniego koªa. Dlatego do kalibracji poªo»enia za- 23 Rysunek 3.7: Schemat ideowy kodera SENSOR A TPU KANAL X 7414 KANAL Y SENSOR B Rysunek 3.8: Zasada pomiaru za pomoc¡ kodera 24 montowano czujniki kra«cowe. Przed wykonywaniem jakichkolwiek ruchów nale»y uruchomi¢ funkcj¦ zerowania pozycji robota. Robot wykona wtedy z niewielk¡ pr¦dko±ci¡ ruch ramion manipulatora i koªa skr¦caj¡cego oraz zatrzyma silniki steruj¡ce po osi¡gni¦ciu poªo»enia kra«cowego. W ten sposób mo»na uzyska¢ informacj¦ o pozycji przegubów i koªa odpowiedzialnego za skr¦t. Od tego momentu wszystkie parametry ruchu b¦d¡ ustawiane na podstawie liczby zliczonych impulsów pochodz¡cych z koderów. 3.9 Ukªad wykonawczy dla silników Zadaniem ukªadu wykonawczego jest sterowanie silnikami robota w zale»no±ci od sygnaªów pochodz¡cych z jednostki centralnej. W opisywanej konstrukcji robota sterowanie odbywa si¦ przez regulacj¦ napi¦cia zasilania silników, które jest zale»ne od wspóªczynnika wypeªnienia sygnaªu PWM (Pulse Width Modulation). Wybrane sygnaªem DIR (Direction) odpowiednie tranzystory mostka typu H s¡ kluczowane sygnaªem PWM. Przebieg o odpowiednim wypeªnieniu generowany jest w module TPU jednostki centralnej, a DIR jest ustawiany jako jeden z bitów portu mikrokontrolera. Ukªad wykonawczy zostaª zaprojektowany w taki sposób, aby wysterowa¢ silniki o napi¦ciu 14.4V i pr¡dzie o warto±ci 15A. Ukªad wykonawczy mo»na podzieli¢ na trzy moduªy: • cyfrowy ukªad sterowania • ukªad wyzwalania H-mostka • mostek typu H. 3.9.1 Cyfrowy ukªad sterowania Zadanie tego moduªu polega na wygenerowaniu sygnaªów do wª¡czenia odpowiednich tranzystorów na podstawie stanu linii DIR i PWM. Dla linii PWM stanem aktywnym jest stan wysoki. Wysoki stan logiczny linii DIR oraz stan wysoki PWM powoduje zaª¡czenie kluczy K1 i K4 (obrót w prawo silnika) (rys. 3.9). Zmiana stanu linii DIR z wysokiego na niski powoduje otwarcie kluczy K1, K4 oraz zamkni¦cie K2 i K3 (obrót w lewo). Zatrzymanie silnika nast¦puje przy zerowym wypeªnieniu sygnaªu PWM. Dla takiej sytuacji klucze K1 i K2 s¡ otwarte. Zmiana poziomu sygnaªu DIR powoduje przeª¡czanie tranzystorów kierunku, lecz dopiero po ustawieniu stanu wysokiego na linii PWM silnik zacznie si¦ obraca¢. Podczas przeª¡czania kluczy tranzystorowych w mostku typu H istnieje niebezpiecze«stwo jednoczesnego wª¡czenia kluczy tego samego póªramienia. Jest to zwi¡zane z opó¹nieniami czasowymi w ukªadach przeª¡czaj¡cych i elementach wykonawczych (klucze jednego ramienia mostka wª¡cz¡ si¦ przed wyª¡czeniem kluczy dla przeciwlego ramienia). Aby zabezpieczy¢ si¦ przed tego typu zjawiskiem zastosowano ukªad opó¹niaj¡cy, który dopiero po upªywie czasu τ = RC = 2µs wª¡cza tranzystory odpowiedzialne za wybór kierunku obrotów. Wª¡czenie tranzystora kierunku nast¡pi w momencie pojawienia si¦ na obu wej±ciach bramki NAND (U3A lub U3B) stanu wysokiego. Na 25 +Uz uklad wyzwalania K2 K1 uklad wyzwalania M uklad wyzwalania K3 K4 uklad wyzwalania modul cyfrowy PWM DIR Rysunek 3.9: Schemat blokowy ukªadu sterowania silnikiem jednym wej±ciu sygnaª pojawi si¦ od razu, a na drugim po naªadowaniu przez rezystor (R10 lub R12) kondensatora (C2 lub C1), daj¡c szans¦ caªkowitego wyª¡czenia kluczy dla poprzedniej konguracji (rys. 3.10). W przypadku odª¡czenia przewodu ª¡cz¡cego jednostk¦ centraln¡ z ukªadem wykonawczym, nast¦puje wyª¡czenie silników robota. Dzieje si¦ to za spraw¡ rezystora R1 podª¡czonego do masy, który na linii PWM wymusza stan niski. 3.9.2 Ukªad wyzwalania H-mostka Z ukªadu cyfrowego ukªadu sterowania mostka do ukªadu doprowadzone s¡ cztery sygnaªy, wygenerowane na podstawie sygnaªów DIR i PWM. Nast¦pnie sygnaªy te s¡ doprowadzane przez rezystor do emitera tranzystora pracuj¡cego ukªadzie wspólnej bazy. Kolektor tego tranzystora poª¡czony jest z bazami dwóch tranzystorów steruj¡cych bezpo±rednio bramk¡ tranzystora mocy. Jeden z nich (npn) zwiera bramk¦ tranzystora mocy z dodatnim biegunem zasilania, a drugi (pnp) zwiera bramk¦ z mas¡. Zwarcie z mas¡ bramki tranzystora z kanaªem typu P powoduje jego otwarcie, a zwarcie z potencjaªem dodatnim - zatkanie. W tranzystorze z kanaªem typu N sytuacja jest odwrotna. Rozwa»my sterowanie tranzystorem T1 (zob.rys 3.11). Tranzystor T5 jest otwar- 26 Rysunek 3.10: Schamat ideowy cyfrowej cz¦±ci ukªadu sterowania mostkiem ty przez rezystor R7 co powoduje wymuszenie stanu wysokiego na bramce T1 i zamkni¦cie go (T1 dodatkowo jest zamykany przez rezystor R1). Sygnaª PWMT1 w stanie niskim przez rezystor R6 otwiera tranzystor T9, powoduj¡c pojawienie si¦ stanu niskiego na bazach tranzystorów T5 i T6. Stan niski jednocze±nie zamyka tranzystor T5 i otwiera T6. Na bramce T1 pojawia si¦ stan niski wprowadzaj¡c tranzystor typu P w stan przewodzenia. Ukªad oparty na tranzystorach pozwala na szybkie odprowadzenie ªadunku zgromadzonego w pojemno±ci bramki tranzystora unipolarnego, czyli odpowiedni¡ szybko±¢ przeª¡czenia. Ukªad pracy tranzystora T9 umo»liwia szybk¡ reakcj¦ na zmian¦ stanu na emiterze i umo»liwia sterowanie sygnaªami o poziomach TTL. 3.9.3 Mostek typu H Do budowy mostka u»yto tranzystorów mocy typu MOSFET. Mostek skªada si¦ z dwóch tranzystorów z kanaªem typu P oraz dwóch z kanaªem typu N. Pierwsze z nich s¡ kluczowane sygnaªem PWM, a drugie sªu»¡ do wyboru kierunku obrotów silnika. Tranzystory pracuj¡ce jako klucze podaj¡ napi¦cie zasilania na silniki zapewniaj¡c obrót z zadan¡ pr¦dko±ci¡ i w odpowiednim kierunku. Pr¡dy pªyn¡ce przez tranzystory podczas pracy powoduj¡ wydzielanie si¦ znacznej ilo±ci ciepªa, dlatego elementy wykonawcze umieszczono na radiatorze. 27 Rysunek 3.11: Schamat ideowy ukªadu sterowania mostkiem 28 3.10 Zasilanie robota Do zasilania robota u»yto akumulatorów pochodz¡cych od wiertarko-wkr¦tarek, z których wykorzystano silniki z przekªadniami. Bateria akumulatorów skªada si¦ z poª¡czonych szeregowo 1.2 voltowych ogniw niklowo-kadmowych. Napi¦cie zasilania silników robota wynosi 14.4V. Napi¦cie pracy ukªadów elektronicznych robota wynosi 5V i jest czerpane z akumulatorów przez stabilizator napi¦cia. 3.11 Dane techniczne robota • Przekªadnie W tabeli umieszczono warto±ci przeªo»e« liczonych od osi wirnika silnika do waªka wyj±ciowego ostatniego stopnia przekªadni. Poszczególne liczby skªadaj¡ce si¦ na wynikowe przeªo»enie oznaczaj¡ przeªo»enie nast¦puj¡cych po sobie przekªadni (z uwzgl¦dnieniem przekªadni planetarnych silników). przeªo»enie nap¦du przeªo»enie kolumny skr¦tnej przeªo»enie przekªadni ramion manipulatora 36 x 2 = 72 36 x 2.92 x 3.6 = 378.43 36 x (2.92)4 = 2617.18 • Platforma szeroko±¢ platformy [cm] dªugo±¢ platformy [cm] odlegªo±¢ przedniego koªa od tylnej osi [cm] ±rednica przedniego koªa [cm] ±rednia tylnych kóª [cm] rozstaw tylnych kóª [cm] prze±wit pod platform¡ [cm] 37.5 45 35 10.5 9.7 30.5 4 • Manipulator odlegªo±¢ podstawy manipulatora od ±rodka tylnej osi [cm] wysoko±¢ podstawy [cm] dªugo±ci ramion manipulatora [cm] 29 17 20 40 3.12 Opis poª¡cze« moduªów elektronicznych Bazowym punktem ukªadu sterowania robota jest jednostka centralna, do której doprowadzane s¡ wszystkie sygnaªy pochodz¡ce z sensorów i wyprowadzane sygnaªy steruj¡ce robotem. Poª¡czenia elektryczne pomi¦dzy moduªami robota wykonano przewodami zako«czonymi standardowymi zª¡czami. Takie rozwi¡zanie pozwala na ªatwe i szybkie ª¡czanie moduªów, zapewniaj¡c jednocze±nie niezawodno±¢ poª¡czenia. Sposób poª¡cze« pomi¦dzy poszczególnymi moduªami i opis zª¡czek widoczny jest na rysunku (3.12). Opis sygnaªów poszczególnych zª¡czek przedstawiono w poni»szych tabelach. • Zª¡cze PDJ NS (PDW NS) - sygnaªy PWM i DIR dla silnika nap¦dowego i skr¦caj¡cego: sygnaª DIR N nap¦d GND GND DIR S skr¦t pin 1 3 5 7 pin 2 4 6 8 sygnaª PWM N nap¦d +5 V +5 V PWM S skr¦t • Zª¡cze PDJ W1W2 (PDW W1W2) - sygnaªy PWM i DIR dla silników ramion manipulatora: sygnaª DIR W1 rami¦ pierwsze GND GND DIR W2 rami¦ drugie pin 1 3 5 7 pin 2 4 6 8 sygnaª PWM W1 rami¦ pierwsze +5 V +5 V PWM W2 rami¦ drugie • Zª¡cze QD W1W2 (QDS W1W2) - kwadraturowe sygnaªy QDECA i QDECB pochodz¡ce z przyrostowych czujników poªo»enia manipulatora: sygnaª QDECA W1 rami¦ pierwsze GND GND QDECA W2 rami¦ drugie pin 1 3 5 7 pin 2 4 6 8 sygnaª QDECB W1 rami¦ pierwsze +5 V +5 V QDECB W2 rami¦ drugie • Zª¡cze SNR - sygnaªy pochodz¡ce z sensorów pozycjonowania pocz¡tkowego. W przypadku zadziaªania sensora nast¦puje zwarcie przewodu sensora z mas¡: sygnaª sensor skr¦tu sensor ramienia pierwszego sensor ramienia drugiego NC 30 pin 1 3 5 7 pin 2 4 6 8 sygnaª GND GND GND NC • Zª¡cze CHW - sygnaª steruj¡cy chwytakiem: sygnaª chwytak + pin 1 pin 2 sygnaª GND • Zª¡cze MS (MN, MW1, MW2) - sterowanie silnikami wykonawczymi skr¦tu (nap¦du, ramienia pierwszego, ramienia drugiego): sygnaª +/- Vcc pin 1 pin 2 sygnaª -/+ Vcc • Zª¡cze V15 - napi¦cie zasilaj¡ce elektromagnes chwytaka: sygnaª +15 V pin 1 pin 2 sygnaª GND • Zª¡cze V5 - napi¦cie zasilaj¡ce jednostk¦ centraln¡ i cyfrow¡ cz¦±¢ ukªadu wykonawczego: sygnaª +5 V pin 1 pin 2 sygnaª GND sygnaª NC TxD GND NC NC pin 1 3 5 7 9 pin 2 4 6 8 10 sygnaª RxD DTR NC NC NC • Zª¡cze szeregowe RS232: • Zª¡cze BDM: sygnaª GND GND RESET Vcc NC pin 1 3 5 7 9 pin 2 4 6 8 10 31 sygnaª BKP T / DSCLK FREEZE / QOUT IF ET CH / DSI IP IP E / DSO NC 3.13 Opis funkcji peªnionych przez kanaªy TPU i porty mikrokontrolera • Funkcie poszczególnych kanaªów TPU: opis linia A czujnika poªo»enia nap¦du linia B czujnika poªo»enia nap¦du wypeªnienie sygnaªu steruj¡cego nap¦dem linia A czujnika poªo»enia skr¦tu linia B czujnika poªo»enia skr¦tu wypeªnienie sygnaªu steruj¡cego skr¦tem linia A czujnika poªo»enia ramienia pierwszego linia B czujnika poªo»enia ramienia pierwszego wypeªnienie sygnaªu steruj¡cego ramieniem pierwszym linia A czujnika poªo»enia ramienia drugiego linia B czujnika poªo»enia ramienia drugiego wypeªnienie sygnaªu steruj¡cego ramieniem drugim funkcja QDEC QDEC PWM QDEC QDEC PWM QDEC QDEC PWM QDEC QDEC PWM • Porty mikrokontrolera: opis wybór kierunku nap¦du wybór kierunku skr¦tu wybór kierunku ramienia pierwszego wybór kierunku ramienia drugiego pozycjonowanie skr¦tu pozycjonowanie ramienia pierwszego pozycjonowanie ramienia drugiego sterowanie chwytakiem 32 nr pinu portu PE1 PE2 PE3 PE4 PF5 PF6 PF7 PE0 nr kanaªu 0 1 12 2 3 13 4 5 14 6 7 15 MS M1 M2 koder N MN koder S MW1 M3 M4 koder W1 koder W2 MW2 PDW NS PDW W1W2 7414 7414 QDS NS QDS W1W2 RS232 BDM P1 CHW MC68332 P2 V15 SNR PDJ W1W2 PDJ NS V5 QD W1W2 QD NS komputer nadrzedny Rysunek 3.12: Schemat blokowy poª¡cze« moduªów robota 33 Rozdziaª 4 Badania symulacyjne Badania symulacyjne maj¡ na celu sprawdzenie dziaªania zaproponowanego algorytmu kinematyki odwrotnej w zale»no±ci od konguracji pocz¡tkowych robota i parametrów algorytmu. Manipulator mobilny reprezentowany jest równaniami C D B r E A H F G Rysunek 4.1: Rozmieszczenie punktów startowych w ukªadzie wspóªrz¦dnych kinematyki (1.9) i (1.10). Konguracja pocz¡tkowa ma posta¢ wektorów q0 = (x0 , y0 , ϕ0 , θ0 ) i x0 = (x01 , x02 ). Jako poªo»enie zadane podawane s¡ wspóªrz¦dne yd = (xd , yd , zd ) punktu, w którym ma si¦ znale¹¢ chwytak. Sterowanie ma posta¢ uk (t) = λ0k + λ1k sin ωt + λ2k cos ωt, k=1,2. Horyzont czasowy symulacji wynosi T = 8. Podczas symulacji na staªe przyj¦to orientacj¦ pocz¡tkow¡ robota ϕ0 = 0 i wspóªrz¦dne docelowe chwytaka yd = (0, 0, 0.8). Algorytm poddawano analizie przy ró»nych ustawieniach k¡ta skr¦tu przedniego koªa θ0 i ró»nych warto±ciach wspóªczynnika odpowiedzialnego za szybko±¢ zbie»no±ci algorytmu γ. Odlegªo±¢ do punktu docelowego ustawiono na staª¡ warto±¢ r = 3m. Wyniki dziaªania algorytmu przedstawiono na wykresach, po cztery dla ka»dej symulacji. Na pierwszym z nich znajduje si¦ trajektoria platformy i efektora, drugi 34 przedstawia trajektori¦ stanu platformy q , trzeci trajektori¦ chwytaka, a czwarty przebieg czasowy sterowania. 4.1 Wyniki dziaªania algorytmu Punkty startowe rozmieszczono na obwodzie koªa o promieniu r = 3 od punktu docelowego (0, 0) (Rysunek 4.1). Pocz¡tkow¡ ustawienie ramion wahadªa wynosi (x01 , x02 ) = ( π3 , − π2 ), a pocz¡tkowa warto±¢ skr¦tu koªa θ0 = π6 . Wspóªczynnik szybko±ci zbie»no±ci algorytmu ustawiono na wartó±¢ γ = 0.1. Pocz¡tkowe warto±ci parametrów sterowania wynosz¡ λ01 = 0.01, λ02 = −0.01 oraz λ1k , λ2k = 0. Dla tak przyj¦tej konguracji pocz¡tkowej punkt yd zostaª osi¡gni¦ty ze wszystkich zaproponowanych punktów startowych, za wyj¡tkiem punktu G. W wi¦kszo±ci przypadków osi¡gni¦to punkt zadany bez du»ej ilo±ci skr¦tów i zwrotów. 1 4 q1 q2 q3 q4 y q 0.8 q1 q2 q3 q4 3 2 1 0 0.6 0 1 2 3 4 t 5 6 7 y1 y2 y3 3 q2 y2 y1 y2 y3 0.4 0.2 8 2 1 0 0 0 1 2 3 4 t 5 6 7 u1 u2 2 −0.2 8 u1 u2 0 −2 −0.4 0 0.5 1 1.5 2 q1 y1 2.5 3 3.5 4 0 1 2 3 4 t 5 6 7 8 Rysunek 4.2: Punkt startowy A, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, Najbardziej skomplikowan¡ trajektori¦ do punktu zadanego osi¡gni¦to z punktu A, D i H, gdzie nast¡piª ponad caªy obrót koªa przedniego wokóª osi skr¦tu. Jest to szczególne niepo»¡dane, gdy» rzeczywisty model nie ma mo»liwo±ci skr¦tu o k¡t wi¦kszy ni» ± π2 . Z punktu startowego F trajektoria doj±cia do punktu zadanego jest najlepsza z uzyskanych. Dla tego przypadku maksymalny k¡t skr¦tu koªa zawiera si¦ pomi¦dzy π6 i - π6 i robot bez wykonywana zb¦dnych ruchów osi¡ga punkt docelowy. Dªugo±¢ drogi przebytej przez robota do punktu zadanego ma wpªyw na warto±¢ napi¦cia sterowania silników. Jest to zgodne z intuicj¡, gdy» w przypadku dªu»szej drogi aby robot mógª osi¡gn¡¢ cel w zadanym czasie to musi porusza¢ si¦ z wi¦ksz¡ pr¦dko±ci¡. Porównuj¡c przebiegi sterowa« dla przypadku A (Rysunek 4.2) oraz F (Rysunek 4.7) ªatwo zauwa»y¢, »e poziom sterowa« dla drugiego przypadku jest ni»szy. 35 2.5 2 q1 q2 q3 q4 2 q1 q2 q3 q4 y q 0 −2 0 1 2 3 y1 y2 y3 q2 y2 1.5 1 4 t 5 6 7 y1 y2 y3 2 1 0 0.5 0 1 2 3 4 t 5 6 7 u1 u2 8 u1 u2 0 0 8 −1 −2 −0.5 −0.5 0 0.5 1 1.5 2 2.5 3 0 1 2 3 q1 y1 4 t 5 6 7 8 Rysunek 4.3: Punkt startowy B, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 3.5 3 q1 q2 q3 q4 2 q1 q2 q3 q4 y q 0 2.5 −2 2 3 y1 y2 y3 q2 y2 0 1.5 1 2 3 4 t 5 6 7 8 y1 y2 y3 2 1 0 1 0 0.5 1 2 3 4 t 5 6 7 u1 u2 u1 u2 2 0 8 1 0 −0.5 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 q1 y1 0 1 2 3 4 t 5 6 7 8 Rysunek 4.4: Punkt startowy C, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 36 2.5 2 q1 q2 q3 q4 y q 2 q1 q2 q3 q4 0 −2 0 1 2 3 1.5 4 t 5 6 7 1 8 y1 y2 y3 1 y1 y2 y3 q2 y2 2 0 −1 0 0.5 1 2 3 4 t 5 6 7 u1 u2 1 u1 u2 0 8 0 −1 −0.5 −2.5 −2 −1.5 −1 q1 y1 −0.5 0 −2 0.5 0 1 2 3 4 t 5 6 7 8 Rysunek 4.5: Punkt startowy D, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 0.45 y q q1 q2 q3 q4 q1 q2 q3 q4 0 0.4 0.35 −1 −2 −3 0.3 0 1 2 3 4 t 5 6 7 y1 y2 y3 y1 y2 y3 q2 y2 0.25 0.2 0.15 8 0 −1 −2 0 1 2 3 0.1 4 t 5 6 7 1 u1 u2 u1 u2 0.05 0 8 0.5 0 −0.05 −3 −2.5 −2 −1.5 −1 −0.5 0 0.5 q1 y1 0 1 2 3 4 t 5 6 7 8 Rysunek 4.6: Punkt startowy E, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 37 0.5 1 q1 q2 q3 q4 y q 0 q1 q2 q3 q4 0 −1 −2 0 1 2 3 y1 y2 y3 q2 y2 −0.5 −1 4 t 5 6 7 8 y1 y2 y3 0 −1 −2 0 −1.5 1 2 3 4 t 5 6 7 8 1 u1 u2 u1 u2 −2 0.5 0 −2.5 −2.5 −2 −1.5 −1 q1 y1 −0.5 0 0.5 0 1 2 3 4 t 5 6 7 8 Rysunek 4.7: Punkt startowy F, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 0.5 q1 q2 q3 q4 y q 0 q1 q2 q3 q4 2 0 −2 0 1 2 3 −0.5 4 t 5 6 7 y1 y2 y3 y1 y2 y3 q2 y2 2 −1 8 0 −2 0 −1.5 1 2 3 4 t 5 6 7 2 u1 u2 1 u1 u2 −2 8 0 −1 −2 −2.5 −0.5 0 0.5 1 1.5 q1 y1 2 2.5 3 3.5 0 1 2 3 4 t 5 6 7 8 Rysunek 4.8: Punkt startowy H, pocz¡tkowe parametry symulacji: (x01 , x02 ) = ( π3 , − π2 ), θ0 = π6 , γ = 0.1, λ101 = 0.01, λ202 = −0.01, T = 8, 38 Rozdziaª 5 Badania eksperymentalne 5.1 Algorytm ±ledzenia Po zako«czeniu oblicze« algorytmu kinematyki odwrotnej i osi¡gni¦ciu punktu docelowego otrzymujemy dwa wektory. Pierwszy, x = (x1 , x2 ) okre±la ustawienie k¡tów poszczególnych ramion manipulatora, a drugi λ = (λ1 , . . . , λ6 ) wyznacza wspóªczynniki przy sterowaniu podawanym na silniki robota. Sterowanie generowane przez algorytm ma sens pr¦dko±ci liniowej platformy i pr¦dko±ci k¡towej skr¦tu przedniego koªa. Osi¡gni¦cie zadanej pr¦dko±ci w poszczególnych chwilach czasu powinno doprowadzi¢ robota do punktu docelowego. Jest to przykªad typowego algorytmu ±ledzenia pr¦dko±ci. Aby poprawnie ±ledzi¢ pr¦dko±¢, nale»y mie¢ informacje o przyspieszeniu i mie¢ mo»liwo±¢ zadawania momentu nap¦dowego na silniki. W skonstruowanym modelu manipulatora mobilnego istnieje bezpo±redni pomiar poªo»enia osi silników, a sterowanie odbywa si¦ za pomoc¡ zmiany pr¦dko±ci silnika. Dlatego zadane ±ledzenia pr¦dko±ci przetransformowano do zadania ±ledzenia poªo»enia. Wymagaªo to modykacji sterowania generowanego przez algorytm kinematyki odwrotnej. Modykacja polegaªa na caªkowaniu zadanych pr¦dko±ci w celu uzyskania funkcji poªo»e« w czasie. Nast¦pnie funkcje poªo»enia platformy i warto±ci k¡ta skr¦tu koªa s¡ podawane do algorytmu ±ledzenia. ledzenie poªo»enia jest realizowane standardowym algorytmem PD. 5.2 Programowa idea dziaªania algorytmu ±ledzenia poªo»enia Wygenerowane przez algorytm parametry sterowania i k¡ty ustawienia ramion manipulatora s¡ przekazywane do ukªadu sterowania, który generuje tablic¦ poªo»e« osi silników, przez wyliczanie warto±ci funkcji w poszczególnych chwilach czasu. Tak przygotowana tablica jest podawana na regulator PD, który jako parametr zadany bierze kolejne elementy przygotowanej tablicy poªo»e«. Przyrost czasu jest programowo okre±lony przez liczb¦ przerwa« procesora w ci¡gu sekundy. Wspóªczynniki wzmocnienia regulatora PD dobrano eksperymentalnie, a bie»¡ce bª¦dy poszczególnych parametrów ruchu s¡ wyliczane na podstawie odczytu poªo»e« osi silników. 39 5.3 Wst¦pne testy na robocie Po napisaniu oprogramowania dla robota przetestowano go i stwierdzono prawidªowe dziaªanie funkcji odpowiedzialnych za zadawanie napi¦cia zasilana silników i funkcji zerowania poªo»enia. Do poprawnego okre±lania parametrów sterowania robota niezb¦dne jest zerowanie poªo»enia po jego uruchomieniu. Nast¦pnie eksperymentalnie sprawdzono obliczone warto±ci wspóªczynników przeªo»e« nap¦dów, aby zadawane warto±ci poªo»e« silników odpowiadaªy parametrom wygenerowanym przez algorytm. 5.4 Eksperymentalne sprawdzenie algorytmu kinematyki odwrotnej Do eksperymentalnego przetestowania trajektorii wygenerowanej przez algorytm mo»na wybra¢ tylko te trajektorie, dla których k¡t skr¦tu przedniego koªa nie przekracza ± π2 . Na podstawie wcze±niej wykonanych symulacji do eksperymentu wybrano przypadek, którego wynik dziaªania widoczny jest na rysunku (4.7). Aby sprawdzi¢ osi¡gni¦cie przez chwytak robota poªo»enia docelowego, na pªaskim podªo»u wytyczono punkt startowy i punkt docelowy. Nast¦pnie ustawiono robota w punkcie startowym i uruchomiono go. Po wykonaniu kalibracji ukªadów pomiarowych, wyliczeniu tablicy poªo»e« silników w poszczególnych chwilach czasu, robot ruszyª. W zadanym czasie robot zrealizowaª trajektori¦ podobn¡ do trajektorii wcze±niej zasymulowanej. Ze wzgl¦du na brak mo»liwo±ci sprz¦towej realizacji oblicze« zmiennoprzecinkowych, wyliczenie tablicy poªo»e« silników zajmuje pewien czas (okoªo 30s), zale»ny od horyzontu czasowego i liczby przerwa« procesora. Podczas wykonywania zadania przez robota zapisano aktualne i zadane warto±ci k¡ta skr¦tu przedniego koªa i dªugo±¢ drogi przebytej przez robota. Zapami¦tane dane odczytano z robota i na ich podstawie wykonano wykresy. Rysunek (5.1) przedstawia rzeczywiste i zadane poªo»enie k¡ta skr¦tu przedniego koªa w caªym horyzoncie czasowym. Zadanie ±ledzenia trajektorii w caªym horyzoncie czasowym przebiega poprawnie. Jedynie na pocz¡tku ruchu robota poªo»enie rzeczywiste odbiega nieznacznie od warto±ci zadanej. Dokªadniej jest to widoczne na wykresie o zwi¦kszonej skali (rys. 5.2). Podobna sytuacja ma miejsce w przypadku ±ledzenia zadanego poªo»enia robota (rys. 5.3). Na pocz¡tku algorytm ±ledzenia dziaªa z pewnym opó¹nieniem, ale po upªywie okoªo 0.25s niedokªadno±¢ ±ledzenia pozycji zadanej zmniejsza si¦ i ustala na maªej warto±ci (rys. 5.4). Bª¡d ±ledzenia poªo»enia platformy w pocz¡tkowej fazie ruchu jest spowodowany gwaªtownym skokiem warto±ci zadanej, co ma wpªyw na bª¡d osi¡gni¦cia celu. Niedokªadno±¢ osi¡gni¦cia punktu zadanego zale»y równie» od pocz¡tkowej orientacji robota. Wykonane próby wykazaªy, »e dla niewielkiej zmiany orientacji pocz¡tkowej robota, ko«cowe poªo»enie chwytaka mo»e ró»ni¢ si¦ od poprzedniej nawet o 15 cm. Jest to nieuniknione ze wzgl¦du na odlegªo±¢ jak¡ robot pokonuje. W przypadku zwi¦kszenia odlegªo±ci pomi¦dzy punktem pocz¡tkowym i docelowym wra»liwo±¢ na pocz¡tkowe ustawienia robota b¦dzie rosn¡¢. 40 0.6 zadane rzeczywiste 0.5 0.4 0.3 q4 0.2 0.1 0 −0.1 −0.2 −0.3 −0.4 0 1 2 3 4 t 5 6 7 8 Rysunek 5.1: Zadana i rzeczywista warto±¢ k¡ta skr¦tu przedniego koªa w caªym horyzoncie czasowym 0.53 zadane rzeczywiste 0.525 0.52 q4 0.515 0.51 0.505 0.5 0.495 0.49 0 0.02 0.04 0.06 0.08 0.1 t 0.12 0.14 0.16 0.18 0.2 Rysunek 5.2: Zadana i rzeczywista warto±¢ k¡ta skr¦tu przedniego koªa w pocz¡tkowej fazie ruchu 41 3 zadane rzeczywiste 2.5 droga [m] 2 1.5 1 0.5 0 −0.5 0 1 2 3 4 t 5 6 7 8 Rysunek 5.3: Zadana i rzeczywista warto±¢ drogi przebytej przez robota w caªym horyzoncie czasowym 0.1 zadane rzeczywiste droga [m] 0.05 0 −0.05 0 0.05 0.1 0.15 t 0.2 0.25 0.3 Rysunek 5.4: Zadana i rzeczywista warto±¢ drogi przebytej przez robota w pocz¡tkowej fazie ruchu 42 Zako«czenie Celem pracy byªo przeanalizowanie algorytmu kinematyki odwrotnej oraz eksperymentalne sprawdzenie mo»liwo±ci jego implementacji na rzeczywistym modelu robota. W pracy zawarto peªny opis operacji, jakie nale»aªo wykona¢, aby w peªni wypeªni¢ postawione zadanie. Cykl prac rozpocz¦to od wykonania niezb¦dnych Rysunek 5.5: Widok skonstruowanego manipulatora mobilnego oblicze« kinematyki badanego obiektu. Nast¦pnie przedstawiono i przeanalizowano symulacyjnie algorytm kinematyki odwrotnej. Zaprojektowano i wykonano model manipulatora mobilnego, na którym sprawdzono eksperymentalnie dziaªanie algo- 43 rytmu sterowania. Widok skonstruowanego w domowych warunkach manipulatora mobilnego jest widoczny na rysunku (5.5). Zaproponowany algorytm sterowania dla manipulatora mobilnego nale»y do grupy algorytmów kinematycznych i nie uwzgl¦dnia dynamiki. Pomimo pomini¦cia dynamiki w obliczeniach, robot zrealizowaª zadan¡ trajektori¦ ruchu. Trajektoria wygenerowana przez algorytm nie zawsze jest mo»liwa do realizacji na wykonanym modelu robota. Gªównym powodem tego jest zyczne ograniczenie k¡ta skr¦tu przedniego koªa robota. Aby algorytm znalazª trajektori¦ realizowaln¡ na modelu robota nale»aªo niekiedy uruchomi¢ obliczenia wielokrotnie, dla ró»nych ustawie« warunków pocz¡tkowych algorytmu. Stwierdzono, »e nawet niewielka zmiana parametrów sterowania czy pocz¡tkowej warto±ci k¡ta skr¦tu przedniego koªa mo»e spowodowa¢ wygenerowanie trajektorii o zupeªnie innym ksztaªcie. Wykonany model manipulatora mobilnego i zaimplementowany program sterowania nap¦dami, ±ledz¡cy zadane poªo»enia silników umo»liwia testowanie równie» innych algorytmów sterowania robotów mobilnych lub manipulatorów. Robot mo»e stanowi¢ baz¦ dla nowych projektów badawczych lub da¢ mo»liwo±¢ eksperymentalnego sprawdzenia ju» istniej¡cych. Mo»liwo±¢ wykonywania bada« eksperymentalnych pozwala na pozyskanie informacji mog¡cych wyznaczy¢ nowe kierunki bada«. W przypadku badanego algorytmu nowe kierunki bada« mog¡ i±¢ w stron¦ uwzgl¦dnienia ogranicze« na k¡t skr¦tu przedniego koªa oraz wymuszenia zerowej warto±ci pr¦dko±ci w pocz¡tkowej chwili ruchu, która mo»e prowadzi¢ do gwaªtownego szarpni¦cia robotem i spowodowa¢ bª¦dy osi¡gni¦cia punktu docelowego. Dodanie nowych moduªów programowych czy wyposa»enie robota w dodatkowe sensory mo»e zwi¦kszy¢ autonomiczno±¢ modelu i umo»liwi¢ robotowi reakcj¦ na bod¹ce zewn¦trzne. Interakcja z otoczeniem zwi¦kszy uniwersalno±¢ robota i zwi¦kszy zakres jego stosowania. 44 Bibliograa [1] K. Tcho«: Kinematics of mobile manipulators: An endogenous conguration space approach. Proc. 9th MMAR Conference, Mi¦dzyzdroje 2003, Poland, ss. 721-732. [2] K. Tcho«, A. Mazur, I. Dul¦ba, R. Hossa, R. Muszy«ski: Manipulatory i roboty mobilne. Akademicka Ocyna Wydawnicza Warszawa 2000. [3] K. Tcho«, J. Jakubiak: Endogenous conguration space approach to mobile manipulators: a derivation and performance assessment of Jacobian inverse kinematics algorithms. Int. J. Control 2003, vol. 76, no. 14, 1387-1419. [4] J. Jakubiak: Numeryczne aspekty metody Newtona planowania ruchu robotów nieholonomicznych. Praca magisterska pod kierunkiem dr. in». I. Dul¦by, PWr 1999. [5] M. Kabaªa, M. Wnuk: Konstrukcja i oprogramowanie dwukoªowego robota mobolnego. Raport SPR 20/2002, Instytut Cybernetyki Technicznej PWr 2002. [6] C. C. de Vit, B. Siciliano, G. Bastin: Theory of Robot Control. Springer-Verlag London 1996. [7] M. J. Griendel, Z. Hendzel, W. ylski: Modelowanie i sterowania mobilnych robotów koªowych. Wydawnictwo Naukowe PWN, 2002. 45