How to compute the sun vector for path planning

Transcript

How to compute the sun vector for path planning
How to compute the sun vector
for path planning
1
Calcolo dell’illuminazione delle celle solari
Si consideri la Fig. 1. Il rover si sposta sulla mappa, variando nel tempo la sua posizione
T
p = x y z e il suo assetto R, entrambi riferiti ad un sistema inerziale indicato con
R0 . Il sistema di riferimento a bordo rover è indicato con Rm .
La mappa è orientata in modo tale che il Nord geografico sia allineato con l’asse Y positivo
e l’Est geografico con l’asse X positivo del riferimento inerziale, ossia con il versore (vettore
unitario) i 0 . In tal modo le posizioni sono misurate in gradi di longitudine lungo X e gradi
di latitudine lungo Y . All’equatore della Terra 1◦ di latitudine o di longitudine equivalgono
approssimativamente a 111 km.
L’assetto del rover è calcolabile utilizzando gli angoli di Roll, Pitch e Yaw (RPY), θx , θy , θz ;
in tale configurazione, l’assetto vale

cθz cθy sθx sθy cθz − cθx sθz cθx sθy cθz + sθx sθz
R (θx , θy , θz ) = cθy sθz sθx sθy sθz + cθx cθz cθx sθy sθz − sθx cθz 
−sθy
sθx cθy
cθx cθy

dove si scrive cθ = cos θ, sθ = sin θ. Gli angoli θx , θy , θz dipendono dal tempo attraverso la
legge del moto del rover.
La posizione istantanea del Sole nel cielo è data da due angoli, detti angolo di azimuth φs (t)
e angolo di elevazione solare θs (t) (vedere Fig. 3). L’azimuth è l’angolo tra una direzione
fissa definita sul piano locale π (di solito il Sud, ma talvolta in Nord) e l’intersezione su π
del piano OSP contenente l’osservatore, il Sole e il piede P della perpendicolare dal Sole
a π. L’elevazione solare è l’angolo tra il segmento OP e la linea OS.
1
Questi angoli sono funzione di parametri astronomici, della posizione (latitudine e longitudine) del rover e dell’ora locale, attraverso una legge che sarà specificata nel seguito.
−→
Il vettore unitario, chiamato vettore sole s = OS, che dal rover punta verso il Sole, ha la
seguente espressione


sin φs cos θs
(1)
s = − cos φs cos θs 
sin θs
Sembra ragionevole ipotizzare che l’illuminazione dei pannelli solari sia massima quando
il sole si trova allo zenith rispetto ad essi e che si riduca via via che l’altezza del sole
diminuisce, fino a diventare zero quando il sole è sullo stesso piano (o al disotto) dei
pannelli. Se consideriamo pari a 1 l’illuminazione massima e pari a 0 quella minima, il
calcolo di questo parametro si traduce nel calcolo del prodotto scalare tra s e il vettore
unitario n normale al piano dei pannelli solari.
Per calcolare n, bisogna conoscere la posizione dei pannelli solari rispetto al corpo principale del robot. Qui facciamo l’ipotesi semplificativa che i pannelli si trovino sul piano XY
del riferimento Rm , e che quindi n coincida con k m .
La Fig. 2 illustra il rover con i pannelli solari, il versore n e il vettore sole s.
In questa ipotesi, il vettore n, rappresentato in R0 avrà la seguente espressione, in funzione
degli angoli RPY:


cθx sθy cθz + sθx sθz
(2)
n = cθx sθy sθz − sθx cθz 
cθx cθy
Conseguentemente il prodotto scalare varrà
s T n = sφs cθs (cθx sθy cθz + sθx sθz ) − cφs cθs (cθx sθy sθz − sθx cθz ) + sφs cθx cθy
(3)
Se indichiamo con la variabile 0 ≤ σ ≤ 1 il coefficiente di carica dovuto all’illuminazione
solare, possiamo scrivere
T
s n per s T n ≥ 0
σ=
0
per s T n ≤ 0
2
Legge oraria per n(t)
Il valore di n (t) dipende dalla legge del moto del rover e dalla mappa su cui esso si muove.
Nel nostro caso lo si può calcolare applicando la relazione (2), noti gli angoli di roll θx (t),
pitch θy (t), yaw θz (t).
2
3
Legge oraria per s(t)
Come abbiamo visto sopra, il valore di s dipende da due angoli, rispettivamente di azimuth
(φs ) e di elevazione solare (θs ), che a loro volta dipendono dalle seguenti grandezze:
1. L’inclinazione dell’asse di rotazione del corpo celeste (pianeta o satellite) rispetto
all’eclittica (piano di rotazione del pianeta intorno al Sole). Si chiama anche obliquità
dell’eclittica ε: per la Terra ε = 23◦ 27′ = 23.45◦ = 0.41 rad, mentre per Marte
ε = 25◦ 11.4′ = 25.19◦ = 0.44 rad.
2. La posizione attuale del rover (latitudine e longitudine) sul pianeta. Si può considerare approssimativamente costante, considerando che i percorsi del rover siano
brevi
3. L’attuale stagione su Marte; per stagione si intende la posizione del pianeta durante
l’orbita intorno al Sole, rispetto ad un’origine assegnata (vedi anche Fig. 2). La stagione si misura anche come longitudine solare Ls , a partire da Ls = 0 per l’equinozio
di primavera (vedi Fig. 3).
4. Il tempo solare, cioè l’ora locale misurata rispetto alla durata del giorno, che su Marte
è leggermente più lungo che sulla Terra, ossia 1 sol = 24h 39.5min
Tuttavia, per semplificare i calcoli, si utilizzano le formule valide per la Terra.
3.1
Calcolo dell’altezza solare
L’angolo θs che misura l’altezza o elevazione del Sole (Sun height) rispetto al piano
dell’orizzonte si ottiene dalla seguente relazione
sin θs = cos h cos δ cos ΦL + sin δ sin ΦL
dove:
h
δ
N
ΦL
angolo orario
declinazione solare
giorno dell’anno
latitudine locale
(4)
1 ora = 15◦
◦
23.45◦ sin 360
(N + 284)
365
ad es. 21 Marzo = 80
ad es. Torino = 45◦
Un esempio del risultato che si ottiene con i valori dei parametri visti sopra, è riportato in
Fig. 4.
3.2
Calcolo dell’azimuth
Nota: l’angolo di azimuth φs è definito rispetto al Sud geografico ed è assunto positivo
se in verso antiorario; alcuni testi definiscono l’azimuth come l’angolo (positivo se in verso
3
orario) rispetto al Nord geografico; noi ci atterremo alla prima definizione. L’azimuth è
positivo se verso Est, altrimenti è considerato negativo.
Esistono due relazioni, entrambe le quali permettono di calcolare φs ; esse sono
cos φs =
sin θs sin ΦL − sin δ
cos θs cos ΦL
(5)
e
cos h cos δ sin ΦL − sin δ cos ΦL
(6)
cos θs
Entrambe portano agli stessi grafici e la scelta di quale usare dipende dall’organizzazione
interna dei dati dell’algoritmo.
cos φs =
Un esempio del risultato che si ottiene con i valori dei parametri visti sopra, è riportato in
Fig. 5.
3.3
Calcolo del vettore sole
Un esempio di calcolo del vettore sole è riportato in Fig. 6, mentre Fig. 7 presenta il grafico
dell’elevazione solare normalizzata; essa è semplicemente il risultato dell’applicazione della
relazione (3) quando n = k .
4
Approssimazioni
Bisogna considerare che si introducono numerose approssimazioni. In primo luogo le approssimazioni dovute alla discretizzazione della mappa. Essa è una grid map, dove ogni
elemento della griglia ha una una larghezza ℓX e una altezza ℓY che dipendono dalle specifiche esterne; possiamo ad esempio avere mappe 1000 × 1000, con ℓX = ℓY = 0.1 m, oppure
con ℓX = ℓY = 1 m.
In ogni caso, il moto locale del rover non supera l’ampiezza di qualche kilometro e quindi
la variazione di latitudine e longitudine può essere senz’altro trascurata.
Notiamo che l’angolo θz (Yaw) è discretizzato su 8 valori, cosı̀ definiti
direzione codifica sin θz cos θz
N
0
0√
1
√
2
2
NE
1
−2
2
E
2
−1
0√
√
2
SE
3
−2
− 22
S
4
0
−1
√
√
2
2
SO
5
−
2
2
O
6
1
0
√
√
2
2
NO
7
2
2
4
Queste approssimazioni possono portare al calcolo semplificato delle numerose funzioni
trigonometriche presenti in (1)-(6)
Figura 1: I sistemi di riferimento.
5
Figura 2: Il rover con i pannelli solari.
Figura 3: Stagioni su Marte.
6
Figura 4: Diagramma dell’elevazione del sole il giorno 21 Marzo, alla latitudine di 45◦ .
Figura 5: Diagramma dell’azimuth il giorno 21 Marzo, alla latitudine di 45◦ sulla Terra.
7
Figura 6: Diagramma del vettore Sole s il giorno 21 Marzo, alla latitudine di 45◦ sulla
Terra.
Figura 7: Diagramma dell’elevazione normalizzata σ = n T s il giorno 21 Marzo, alla
latitudine di 45◦ sulla Terra.
8