Lucrarea 9
Comanda unui robot mobil pentru a parcurge un
traseu impus, cu jaloane
Se consideră date următoarele dimensiuni:
Distanţa de la start până la jalon
D_roata = 56 mm;
Distanţa între roţi
distanta_jalon = 1000 mm;
Diametrul roţilor motoare
Ecartament = …. mm;
Raza de virare pentru ocolirea jalonului
(raza de virare a roţii dinspre interiorul
virajului)
Ecartament
R_int = 70 mm.
D_roata
Robot
NXT
Traseul care va fi parcurs de către robotul mobil
Raportul dintre cele două viteze este dat de
următoarele relaţii:
vint Rint
Rint
kv =
=
=
vext Rext Rint + Ecartament
Roţile motoare vor parcurge arce de cerc având aceeaşi deschidere θ dar
lungimi diferite
d int = θ ⋅ Rint
d ext = θ ⋅ Rext = θ ⋅ ( Rint + Ecartament )
unde unghiul θ este măsurat în radiani.
Cum cele două viteze sunt în relatie de dependenţă, este suficient furnizarea comenzii unghiul de rotatie α
pentru o singură roată – cea care are de parcurs distanţă mai mare.
Pentru calculul unghiul de rotatie al motorului exterior
se utilizeaza relaţia:
360 d ext
α[ grade] =
⋅
π Droata
Parametri dimensionali de intrare pentru functia de
miscare sunt:
alfa_roata = α[grade]
balans = (1 − k v ) ⋅ 50
- “raportul” dintre cele doua viteze;
La mers in linie dreapta, kv =1 deci balans = 0.
Pentru viraj la dreapta, balansul se ia negativ.
Se propune utilizarea urmatoarei funcţii de comandă a mişcării:
RotateMotorEx (OUT_BC , v , alfa_roata, balans, true, true);
APLICAŢIA 2. Parcurgerea unui
culoar impus
Se va scrie un program prin care se
urmăreşte navigarea unui robot mobil într-un
culoar ale cărui dimensiuni (D1 ... D7) sunt
D2
D3
impuse.
D6