¿Cómo iniciar estos scripts en python?
Publicado por Sonia (3 intervenciones) el 11/09/2016 12:49:29
Hola a todos, estoy haciendo un proyecto de un curso y no sé muy bien como empezar estos scripts.
1. Nodo 1 (battery_state_publisher.py): Nodo que publica continuamente en un tópico '/battery_state' el estado de la batería y si está cargando o no. Se propone representar este mensaje con un nuevo mensaje llamado BatteryState.msg con los campos 'percentage' como Float32 y 'charging' como Bool. El nodo publicará el porcentaje de la batería decreciendo hasta descargarse bajando el porcentaje un X% cada Y segundos. El nodo también albergará un Service con un mensaje que se propone llamar Charge.srv con tipo campo 'charging' como Bool el cual seteará el estado como cargando, si está charging a True, el porcentaje de la batería crecerá en vez de decrecer. Finalmente, este nodo tendrá que inicializarse con rosparams para setear:
Porcentaje inicial de bateria (initial_battery = 100)
Estado de carga inicial de la bateria (initial_charging_state = False)
Cada cuanto modificar el porcentaje de la bateria (battery_state_rate = 1.0) y por tanto cada cuanto publicar un nuevo mensaje
Cuanto modificar el porcentaje de la bateria en cada 'tick' (percentage_step = 10?)
2. Nodo 2 (charging_actionserver.py): Action server (llamado '/go_to_charge') con un mensaje propuesto como GoToCharge.action donde el goal consista en un 'PoseStamped' llamado 'charger_pose' donde se especificará una pose imaginaria del cargador y el result consista en un 'Bool' llamado succeeded para indicar que la acción ha funcionado. Este nodo solo espera a que haya llamadas, cuando haya una, este nodo a su vez hará una llamada al servicio del Nodo 1 de charging para ponerlo a cargar.
3. Nodo 3 (battery_monitor.py): Nodo que se subscribe al tópico del Nodo 1 ('/battery_state') y cuando el estado de la batería es <= 40% y NO está cargando saca por la terminal un print avisando de que se está quedando sin batería. Cuando la batería es <= 20% se llama al action server del Nodo 2 ('/go_to_charge') para mandar al robot a cargar.
Agradecería mucho una ayuda lo antes posible.
Muchas gracias'
1. Nodo 1 (battery_state_publisher.py): Nodo que publica continuamente en un tópico '/battery_state' el estado de la batería y si está cargando o no. Se propone representar este mensaje con un nuevo mensaje llamado BatteryState.msg con los campos 'percentage' como Float32 y 'charging' como Bool. El nodo publicará el porcentaje de la batería decreciendo hasta descargarse bajando el porcentaje un X% cada Y segundos. El nodo también albergará un Service con un mensaje que se propone llamar Charge.srv con tipo campo 'charging' como Bool el cual seteará el estado como cargando, si está charging a True, el porcentaje de la batería crecerá en vez de decrecer. Finalmente, este nodo tendrá que inicializarse con rosparams para setear:
Porcentaje inicial de bateria (initial_battery = 100)
Estado de carga inicial de la bateria (initial_charging_state = False)
Cada cuanto modificar el porcentaje de la bateria (battery_state_rate = 1.0) y por tanto cada cuanto publicar un nuevo mensaje
Cuanto modificar el porcentaje de la bateria en cada 'tick' (percentage_step = 10?)
2. Nodo 2 (charging_actionserver.py): Action server (llamado '/go_to_charge') con un mensaje propuesto como GoToCharge.action donde el goal consista en un 'PoseStamped' llamado 'charger_pose' donde se especificará una pose imaginaria del cargador y el result consista en un 'Bool' llamado succeeded para indicar que la acción ha funcionado. Este nodo solo espera a que haya llamadas, cuando haya una, este nodo a su vez hará una llamada al servicio del Nodo 1 de charging para ponerlo a cargar.
3. Nodo 3 (battery_monitor.py): Nodo que se subscribe al tópico del Nodo 1 ('/battery_state') y cuando el estado de la batería es <= 40% y NO está cargando saca por la terminal un print avisando de que se está quedando sin batería. Cuando la batería es <= 20% se llama al action server del Nodo 2 ('/go_to_charge') para mandar al robot a cargar.
Agradecería mucho una ayuda lo antes posible.
Muchas gracias'
Valora esta pregunta


0