Diferencia entre revisiones de «Vfhp local planner»
(→vfhp_node.py) |
|||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 2: | Línea 2: | ||
== vfhp_node.py == | == vfhp_node.py == | ||
+ | |||
+ | Implementa el algoritmo VFH+ para ''local path planning''. | ||
=== Subscribed Topics === | === Subscribed Topics === | ||
Línea 123: | Línea 125: | ||
− | I. Ulrich and J. Borenstein, " | + | I. Ulrich and J. Borenstein, "VFH+: reliable obstacle avoidance for fast mobile robots," Proceedings. 1998 IEEE International Conference on Robotics and Automation (Cat. No.98CH36146), Leuven, Belgium, 1998, pp. 1572-1577 vol.2. doi: 10.1109/ROBOT.1998.677362 [https://ieeexplore.ieee.org/document/677362] |
− | doi: 10.1109/ROBOT.1998.677362 | ||
− | J. Borenstein and Y. Koren, " | + | J. Borenstein and Y. Koren, "The vector field histogram-fast obstacle avoidance for mobile robots," in IEEE Transactions on Robotics and Automation, vol. 7, no. 3, pp. 278-288, June 1991. |
− | doi: 10.1109/70.88137 | + | doi: 10.1109/70.88137 [https://ieeexplore.ieee.org/document/88137] |
Revisión actual del 16:08 6 dic 2019
Contenido
Nodes
vfhp_node.py
Implementa el algoritmo VFH+ para local path planning.
Subscribed Topics
odom
(nav_msgs/Odometry)
- Odometría de la base.
scan_front
(sensor_msgs/LaserScan)
- LIDAR delantero.
scan_back
(sensor_msgs/LaserScan)
- LIDAR trasero.
Published Topics
cmd_vel
(geometry_msgs/Twist)
- Comandos de velocidad resultado del algoritmo de evasión.
vfhp/active_window
(nav_msgs/OccupancyGrid)
- Valores de ocupación de la ventana activa (active window).
vfhp/obstacle_grid
(nav_msgs/OccupancyGrid)
- Valores de ocupación de la cuadrilla de obstáculos (obstacle grid).
vfhp/polar_hist
(vfhp_local_planner/Histogram)
- Valores de densidad de obstáculos del histograma polar (polar histogram).
Services
set_goal
(vfhp_local_planner/SetGoal)
- Servicio para fijar la meta del robot. La ubicación es respecto al marco de referencia dado por el parámetro
odom_frame
. Para
- Servicio para fijar la meta del robot. La ubicación es respecto al marco de referencia dado por el parámetro
draw_hist
(std_srvs/Empty)
- Servicio para graficar el estado de las estructuras de datos. Genera graficas de: active window (valores de ocupación), active window (magnitudes de vectores de obstáculo) y polar histogram. Solo es posible llamar este servicio si el parámetro
graphics
está activado.
- Servicio para graficar el estado de las estructuras de datos. Genera graficas de: active window (valores de ocupación), active window (magnitudes de vectores de obstáculo) y polar histogram. Solo es posible llamar este servicio si el parámetro
Parameters
'~odom_frame_id'
(string, default: 'odom')
- Marco de referencia tf de la odometría.
'~robot_frame_id'
(string, default: 'mecanum_base')
- Marco de referencia tf de la base.
'~graphics'
(bool, default: True)
- Habilita el servicio de graficación.
'~decay_rate'
(int, default: 50)
- Taza de decay de la ocupación de la ventana activa respecto al ciclo de control, de 0 a 100. Para 100 en cada ciclo se aplica el decay, 50 aprox. cada 2 ciclos, etc. El ciclo de control se ejecuta a 10 Hz, por lo que para un decay rate de 50 la frecuencia sería aprox. 20 Hz.
'~decay_value'
(int, default: 1)
- Valor en que se reduce la ocupación de cada celda al aplicar el decay.
'~decay_guardband'
(int, default: 3)
- Celdas adicionales alrededor de la ventana activa a las que se le aplica el decay.
'~grid_size'
(int, default: 125)
- Tamaño (celdas) del obstacle grid.
'~c_max'
(int, default: 20)
- Valor máximo de ocupación.
'~resolution'
(double, default: 0.15)
- Resolución del obstacle grid (m).
'~window_size'
(int, default: 25)
- Tamaño (celdas) del active window.
'~hist_size'
(int, default: 180)
- Tamaño (sectores) de los distintos histogramas polares.
'~kb'
(double, default: 10.0)
- Constante B de la ecuación de magnitud.
'~kd'
(double, default: 1.0)
- Constante D de la ecuación de magnitud (solo para modo GAUSS).
'~ke'
(double, default: 2.0)
- Constante E de la ecuación de magnitud (solo para modo GAUSS).
'~robot_radius'
(double, default: 0.478)
- Radio del robot (m).
'~d_s'
(double, default: 0.05)
- Radio de ensanchamiento de seguridad (m).
'~t_lo'
(double, default: 175000.0)
- Valor umbral inferior del polar histogram (sectores desocupados).
'~t_hi'
(double, default: 200000.0)
- Valor umbral superior del polar histogram (sectores ocupados).
'~v_max'
(double, default: 0.41)
- Velocidad lineal máxima del robot (m/s).
'~v_min'
(double, default: 0.0)
- Velocidad lineal mínima del robot (m/s)
'~mu1'
(double, default: 6.0)
- Peso del costo de seguimiento
'~mu2'
(double, default: 2.0)
- Peso del costo de cambios abruptos en la dirección.
'~mu3'
(double, default: 2.0)
- Peso de compromiso a una dirección.
'~dist_fcn'
(string, default: "GAUSS")
- Elige la función de magnitud. Para la función original de VFH+ usar "LINEAR", para la versión mejorada desarrollada en el CERLab usar "GAUSS".
ROS Message Types
Histogram
- Mensaje para transmitir la información de los histogramas polares.
ROS Service Types
SetGoal
- Servicio para fijar la meta (x, y) del planeador.
Referencias
I. Ulrich and J. Borenstein, "VFH+: reliable obstacle avoidance for fast mobile robots," Proceedings. 1998 IEEE International Conference on Robotics and Automation (Cat. No.98CH36146), Leuven, Belgium, 1998, pp. 1572-1577 vol.2. doi: 10.1109/ROBOT.1998.677362 [1]
J. Borenstein and Y. Koren, "The vector field histogram-fast obstacle avoidance for mobile robots," in IEEE Transactions on Robotics and Automation, vol. 7, no. 3, pp. 278-288, June 1991. doi: 10.1109/70.88137 [2]