Hogyan kell azt megprogramozni, hogy egy mobil robot ket szervo segitsegevel A pontbol B be jusson - lokalizácio?
c++ ban
kell hasznalni valamifele matrix szorzást, X,Y,Walfa ertekeknek,...
Sok lenne az most még neked.
Először programozni kell megtanulni, utána jöhet az efféle nagyobb falat.
Egyébként elég egy szervó vagy léptető motor is, nem kell mindjárt kettő, bár kettővel a feladat könnyebb, ez tény.
Ha nem is a kész forráskódot, de valami algoritmusbeli segítséget tudok adni.
1. Lekéred az "A" pont koordinátáját (Ax és Ay értékek) - ez a kezdőpont.
2. Lekéred a "B" pont koordinátáját (Bx és By értékek).
3. A robot áll valamilyen irányba - vagy specifikálva van a feladatban, vagy lekérded (iránytű?). Nevezzük béta szögnek.
4. A két koordinátát összekötő egyenes irányszögét (alfa) megkaphatod:
alfa = atan((By - Ay) / (Bx - Ax))
ezt összehasonlítod a béta szöggel, és onnan elfordulsz az alfa szög irányába.
Gyanítom az egyik szervó pont erre szolgál.
5. Ha a robot beállt a megfelelő irányba akkor a másik motorral nekiindulsz toronyiránt. Ha eléred a megfelelő koordinátát, lekapcsolod a motrot.
^
4. atan helyett atan2-t szokás használni, atan elszáll 90 foknál és minden meredekségre 2 megoldást ad a 360 fokos tartományban. Nem mindegy hogy szembe áll vagy háttal :)
koszi a valaszokat. erre gondotlam ...szoval nem kell most meg a matrixokat szoroznom. Kicist probaltam keresgelni, a kinematika/dynamika irant a mobile robotoknak es ezek jonnek elo mindenutt szinte (szoval a matrix szorzasok)...
Amugy az honnand fogja tudni a robot hogy elerte a celt?
^
Mondtam: az elvet írtam le, nem a forráskódot. ;)
"Amugy az honnand fogja tudni a robot hogy elerte a celt?"
Pl. méri a megtett utat. Vagy lekérdezi a GPS-t.
"Amugy az honnand fogja tudni a robot hogy elerte a celt?"
1. Vagy van benne helymeghatározó rendszer, amit időnként lekérdezel.
2. Vagy van benne sebességmérő, és mivel:
v = s / t
ebből következőleg a megtett út:
s = v * t
(s: a megtett távolság, v: a sebesség, t: a két mérés között eltelt idő)
#6
Nem kötekedni szeretnék, de az atan2 nem forráskód hanem egy létező trigonometrikus függvény és az elmélet nem igazán működik sima arctg-vel, azért írtam.
Kérdező: jó lenne ismerni hogy milyen érzékelők vannak, milyen visszajelzéssel és késéssel, stb. Anélkül csak erős általánosításokat tudunk mondani. Ha kamerával és markerekkel követed a robotot az egy teljesen más jellegű probléma mint pl. egy odometriai probléma ahol a robot belső érzékelői alapján kell becsülni, és sok esetben elég komoly matek is kellhet hozzá hogy megbízhatóan működjön.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!