-
Notifications
You must be signed in to change notification settings - Fork 2
bender_nav
#bender_nav
[TOC]
- Ver bender_nav usage
Obs: Tanto servicios como tópicos usan el prefijo /bender/nav/goal_server/
Sirve como gestor de goals para el sitema de navegación.
En general, se debe especificar el campo 'header/frame_id' del goal a perseguir, transformado automáticamente al frame '/map' (por default), de ser necesario. Se recomienda enviar goals ya transformados al frame '/map', si es que fueron almacenados hace mucho tiempo, pues el sistema tiene un buffer de tiempo limitado (~15[s]) y no podrá procesar goals de los que no tenga información de las transformadas pasadas.
-
goal_server/goal (geometry_msgs/PoseStamped)
- A goal for move_base to pursue in the world.
- It replaces the current goal.
-
/bender/nav/move_base/global_costmap/inflated_obstacles (nav_msgs::GridCells)
- Utilizado para chequear si el espacio para goal_server/approach está ocupado.
-
~go (bender_srvs/NavGoal)
- A goal for goal_server to pursue in the world. It replaces the current goal.
- Sólo toma en cuenta el campo NavGoal/goal.
- Servicio retorna false ante algún error en el procedimiento.
-
~look (bender_srvs/NavGoal)
- Setea un goal para girar hacia la pose requerida. Reemplaza el goal actual.
- Sólo toma en cuenta el campo NavGoal/goal (La orientación de la pose es irrelevante)
- Servicio retorna false ante algún error en el procedimiento.
-
~approach (bender_srvs/NavGoal)
- Setea un goal, en el que supuestamente hay un obstáculo, al que el robot intentará acercarse.
- El procedimiento usado es:
- a) generar poses alrededor de la pose central, candidatos a goal. (Todos mirando hacia el centro)
- b) elige la siguiente pose más cercana al robot
- c) si hay obstáculos cerca de la pose: pasar a b)
- d) si la pose está sobre espacio desconocido: pasar a b)
- e) enviar el primer goal que cumpla con ambos requisitos.
- Reemplaza el goal actual.
- Sólo toma en cuenta el campo NavGoal/goal (La orientación de la pose es irrelevante)
- Servicio retorna false ante algún error en el procedimiento.
- Todos los parámetros de goal_server que inicial con goal_server/approach_ sirven para modificar el comportamiento del servicio.
-
~rotate (bender_srvs/NavGoal)
- Setea un goal para girar en el ángulo requerido. Reemplaza el goal actual.
- Sólo toma en cuenta el campo NavGoal/rotation, que está en grados sexagesimales.
- Si ángulo > 0, la rotación es en sentido antihorario (del eje_x a eje_y)
- Servicio retorna false ante algún error en el procedimiento.
-
~cancel (std_srvs/Empty)
- Cancela el goal actual, deteniendo el robot.
-
~has_arrived (bender_srvs/NavGoal)
- retorna el estado del goal actual, en el campo NavGoal/state
- Para mayor info acerca del significado del número retornado, ver bender_srvs/NavGoal
- /static_map (nav_msgs/GetMap)
- Utilizado para hacer el chequeo de puntos desconocidos, para goal_server/approach.
- ~goal_almost_reach_radius (double, default:0.3)
- ~map_frame (string, default:"/map")
- ~goal_reach_degree_th (double, default:20.0)
- ~goal_almost_reach_radius (double, default:0.3)
- ~goal_topic (string, default:"goal")
- ~pose_topic (string, default:"/amcl_pose")
- ~initial_pose_topic (string, default:"/initialpose")
- ~base_frame (string, default:"/base_link")
- ~tf_buffer_size (double, default:3.0)
- ~obstacles_topic (string, default:"/move_base/global_costmap/inflated_obstacles")
- ~map_service (string, default:"/static_map")
- ~approach_delta_degree (double, default:50.0)
- ~approach_delta_radius (double, default:0.3)
- ~approach_max_radius (double, default:1.0)
- ~approach_person_radius (double, default:0.6)
- ~approach_obstacle_th (double, default:0.1)
- ~approach_window_w (double, default:0.8)
- ~approach_window_h (double, default:0.8)
- ~approach_unknown_th (int, default:10)
Diccionario de poses, útiles como mapa semántico.
Los cambios con objetos agregados/modificados sólo son hechos con los datos de la memoria, para almacenar los cambios en un archivo es necesario utilizar el servicio /bender/nav/semantic_map_server/save
Obs: Los servicios tienen el prefijo /bender/nav/semantic_map_server/
TODO: Se espera que el servidor evolucione a algo más que un simple diccionario, pudiendo trabajar con informaciónes topológicas como lo son: 'door','room','object','table','etc', almacenando además un grafo del mapa topológico y operaciones útiles.
TODO
Sujeto a cambios
-
which (bender_srvs/String)
- Returns the last loaded map's name
-
set (bender_srvs/SemMap)
- Inserts a SemanticObject in memory.
- If the object already exists, then it is replaced.
- It does not modifies the map file
-
get (bender_srvs/SemMap)
- Gets a SemanticObject with the specified 'id' from memory.
- It does not uses the map file
-
get_all (bender_srvs/SemMap)
- Gets all the SemanticObject(s) from memory.
- It does not uses the map file
-
delete (bender_srvs/String)
- Deletes a SemanticObject with the specified 'id' from memory.
- It does not modifies the map file
-
print (std_srvs/Empty)
- Prints current map contents on screen
-
save (bender_srvs/String)
- Saves the current map contents on the specified file
-
load (bender_srvs/String)
- Loads the current map contents from the specified file
No usa
Utilidad para simplificar la creación de mapas semánticos por medio de rviz.
utilidad para enviar goals al estilo rotar + avanzar