Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commander guarda en el log todos los atributos con timestamp #31

Open
1 of 3 tasks
tomasalmeida opened this issue Jan 29, 2019 · 4 comments
Open
1 of 3 tasks

Commander guarda en el log todos los atributos con timestamp #31

tomasalmeida opened this issue Jan 29, 2019 · 4 comments
Assignees
Labels
commander Related with the commander module

Comments

@tomasalmeida
Copy link
Member

tomasalmeida commented Jan 29, 2019

  • Verificar las propiedades disponibles en vehicle y decidir las que son significativas y añadirlas al CSV
  • Añadir el dato 'timestamp' (debería incluir al menos los milisegundos, preferiblemente microsegundos)
  • Escribir datos a un archivo (CSV) y al broker
@a-berg a-berg self-assigned this Jan 29, 2019
@daavoo daavoo added the commander Related with the commander module label Jan 30, 2019
@jjmontesl
Copy link
Contributor

jjmontesl commented Jan 30, 2019

Para empezar, olvidémonos de escribir al broker.

El punto 1 y 2 creo que puedes ocuparte @a-berg, de refinar el diccionario y añadir el timestamp. Entiendo que sabes cómo ejecutar el proyecto y cargar el simulador para tener acceso a datos simulados y poder probarlo (comenta si no), aunque yo no sé si el simulador ofrece exactamente los mismos datos que el ArduPilot real (@daavoo, @alexhermida ?).

Para escribir al CSV, usa el paquete csv, abre el archivo al principio (para append, ya que así no nos cargaremos un archivo que ya exista ;-) ) y en cada muestra que recibas escribe una línea.

Podrías usar csv.DictWriter (echa un ojo a la doc) ya que admite un diccionario, así que podrías pasarle el diccionario que ya tienes montado.

A mí los datos que hay por ahora me parecen bastante bien. Si se puede sacar algo más genial (tampoco sé qué sensores lleva). Si puedes pegar en este hilo una lista completa de los datos disponibles, como referencia, mejor que mejor.

Algunas notas:

  1. Estamos inicializando 'hub' en el módulo. Debería hacerse dentro de 'main', supongo, junto con el resto de la inicialización.

  2. Estamos haciendo un scheduling para sondear el vehículo de principio a fin (time.sleep(TIMER_10HZ)), y no de principio a principio (time.sleep(TIMER_10HZ - tiempo_gastado_en_la_tarea)). Ya lo comentaremos pero no es la forma correcta de schedulear una tarea periódica, y de toda formas se suele usar una biblioteca scheduler que lo haga bien. Por ahora es lo de menos.

Cualquier duda comenta.

@a-berg
Copy link

a-berg commented Feb 4, 2019

Esta es la lista de atributos:

# vehicle is an instance of the Vehicle class
print "Autopilot Firmware version: %s" % vehicle.version
print "Autopilot capabilities (supports ftp): %s" % vehicle.capabilities.ftp
print "Global Location: %s" % vehicle.location.global_frame
print "Global Location (relative altitude): %s" % vehicle.location.global_relative_frame
print "Local Location: %s" % vehicle.location.local_frame    #NED
print "Attitude: %s" % vehicle.attitude
print "Velocity: %s" % vehicle.velocity
print "GPS: %s" % vehicle.gps_0
print "Groundspeed: %s" % vehicle.groundspeed
print "Airspeed: %s" % vehicle.airspeed
print "Gimbal status: %s" % vehicle.gimbal
print "Battery: %s" % vehicle.battery
print "EKF OK?: %s" % vehicle.ekf_ok
print "Last Heartbeat: %s" % vehicle.last_heartbeat
print "Rangefinder: %s" % vehicle.rangefinder
print "Rangefinder distance: %s" % vehicle.rangefinder.distance
print "Rangefinder voltage: %s" % vehicle.rangefinder.voltage
print "Heading: %s" % vehicle.heading
print "Is Armable?: %s" % vehicle.is_armable
print "System status: %s" % vehicle.system_status.state
print "Mode: %s" % vehicle.mode.name    # settable
print "Armed: %s" % vehicle.armed    # settable

@a-berg
Copy link

a-berg commented Feb 4, 2019

Por cierto he creado mi propia branch, he visto una de feature/add_more_info pero no estaba seguro y no quería machacar el trabajo de nadie.

@jjmontesl
Copy link
Contributor

No la veo en este repo ni en tu github ¿cómo se llama la susodicha branch?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
commander Related with the commander module
Projects
None yet
Development

No branches or pull requests

4 participants