Laboratorio Primer Parcial
Laboratorio Primer Parcial
Laboratorio Primer Parcial
SISTEMAS LINEALES 2
OBJETIVO:
Analizar los datos de 24 sensores ultrasonicos del robot SCITOS G5 (manual aqui->
https://www.yumpu.com/en/document/read/3271797/scitos-g5-software-guide-metralabs
(https://www.yumpu.com/en/document/read/3271797/scitos-g5-software-guide-metralabs))
### TAREAS:
Cargar los datos "sensor_readings_24.data" que pueden ubicar en:
https://archive.ics.uci.edu/ml/datasets/Wall-Following+Robot+Navigation+Data
(https://archive.ics.uci.edu/ml/datasets/Wall-Following+Robot+Navigation+Data)
Indicar cual es la Frecuencia de adquisicion de las señales en Hertz.
Indicar que sensores se activan cuando, se realize el:
Movimiento adelante (Move-Forward)
Giro leve a la derecha (Slight-Right-Turn)
Giro cerrado a la derecha (Sharp-Right-Turn)
Giro leve a la izquierda (Slight-Left-Turn)
Elegir un sensor (para analizar) y realizar la Conversion de los datos a Centimetros utilizando la funcion de
"Echo" del sensor ultrasonico, en cada uno de los movimientos.
Graficar (4 graficas) el comportamiento de las medidas en cm realizadas por el sensor elegido.
Responder las siguientes preguntas, esto de acuerdo al sensor elegido:
¿cual es la minima distancia Medida por el sensor elegido cuando se realiza Slight-Right-Turn?
¿cual es la maxima distancia Medida por el sensor elegido cuando se realiza Sharp-Right-Turn?
¿cual es la distancia promedio del movimiento Slight-Left-Turn?
De los datos en centimetros, realizar la adaptacion de señal si se trabaja con medidas MAXIMAS de 20cm y
minimas de 2cm (normalizacion de datos), y graficar para poder contrastar entre la señal sin adaptacion y
con adaptacion
import pandas as pd #libreria para trabajar con archivos del tipo DATAFRAME
In [3]: SENSORES.head(7) #vemos las primeras 7 filas del dataframe cargado llamado SEN
SORES
Out[3]:
0 1 2 3 4 5 6 7 8 9 ... 15 16 17
0 0.438 0.498 3.625 3.645 5.0 2.918 5.000 2.351 2.332 2.643 ... 0.593 0.502 0.493 0.
1 0.438 0.498 3.625 3.648 5.0 2.918 5.000 2.637 2.332 2.649 ... 0.592 0.502 0.493 0.
2 0.438 0.498 3.625 3.629 5.0 2.918 5.000 2.637 2.334 2.643 ... 0.593 0.502 0.493 0.
3 0.437 0.501 3.625 3.626 5.0 2.918 5.000 2.353 2.334 2.642 ... 0.593 0.502 0.493 0.
4 0.438 0.498 3.626 3.629 5.0 2.918 5.000 2.640 2.334 2.639 ... 0.592 0.502 0.493 0.
5 0.439 0.498 3.626 3.629 5.0 2.918 5.000 2.633 2.334 2.645 ... 0.589 0.502 0.493 0.
6 0.440 5.000 3.627 3.628 5.0 2.919 3.028 2.346 2.330 2.638 ... 0.588 0.501 0.492 0.
7 rows × 25 columns
Out[4]:
0 1 2 3 4 5 6 7 22 23 24
0 0.438 0.498 3.625 3.645 5.0 2.918 5.0 2.351 0.440 0.429 Slight-Right-Turn
1 0.438 0.498 3.625 3.648 5.0 2.918 5.0 2.637 0.443 0.429 Slight-Right-Turn
Out[5]:
0
0 0.438
1 0.438
2 0.438
3 0.437
Out[6]: (5456, 1)
In [7]: # convertimos el dataframe a array numpy, para trabajar comodamente con lo que
ya practicamos
mov_leve_derecha = GLD_S017.to_numpy()
In [8]: type(mov_leve_derecha)
Out[8]: numpy.ndarray
Out[9]: array([[0.438],
[0.438],
[0.438],
[0.437]])
Out[10]: (5456, 1)
In [11]: # SI por ejemplo la funcion del sensor fuera dato = medida^2 + 10.4
In [13]: MLD_cm[:4,:] #vemos las 2 primeras filas de la matriz numpy que mostraria dat
os en centimetros
Out[13]: array([[10.591844],
[10.591844],
[10.591844],
[10.590969]])
In [ ]: # definimos valores del eje de tiempos DISCRETOS n, vease el ejemplo del ECG c
uando teniamos una frecuencia de adquisicion
In [ ]: # Graficando la señal de del sensor elegido, para el caso del movimiento suave
hacia la derecha (Slight-Right-Turn)
plt.plot(td,MLD_cm)
plt.grid()
In [ ]:
In [ ]: