Skip to content

About

This is Particle Swarm Optimizer with Potential functions based global path planner plugin for use with move_base pkg in ROS.

Resources

Stars

9 stars

Watchers

1 watching

Forks

Repository files navigation

PSO_based_move_base_planner

This is Particle Swarm Optimizer with Potential functions based global path planner plugin for use with move_base pkg in ROS.

Important note:

The planner is in demo stage. It may not work as expected. This uses potential fields and A-star algorithm as well as move_base's default local_planner to make the plan. The PSO algorithm works above these just to provide the Gbest positions in the map. Navigation is carried on by other planners.
PSO is designed to generate plans in an obstacle-free environment on top of the other planners. Thus it won't consider the obstacles in the map. Further implementation of obstacle avoidance using obstacle information from costmap layers is yet to be done.
The particle distribution boundary is adjusted and hard-coded for now in accordance with the map provided. Please adjust accordingly.
Feel free to fix the issues

Instructions::

  • Place the "pso_ros" package in the source "src" folder for of your workspace.

  • Use "catkin_make" to build or "catkin_make --pkg pso_ros" to build this package individually.

  • Create your own launch file to launch your robot. Sample launch file "pso_test.launch" is given in launch folder.

  • Make sure to specifiy a pre-built map to use for navigation, before the following line:
    <node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />

  • Mention the custom move_base launch file to use with your robot.
    <include file="$(find pso_ros)/launch/move_base_custom.launch"/>

  • If "move_base.launch" file is created separately, use the following line to access the pso_ros package as the global planner.
    <param name="base_global_planner" value="Pso_pot_planner/PsoPotPlannerROS" />

  • In the following <rosparam file="$(find..> , make sure to point the params to the costmap params file in your robot setup.

17

The green dots represents the particle distribution. Red blob shows our robot position. The blue straight line show the global path generated by the PSO algorithm.

Future Works:

  • Fix defects and improve convergence on a single path without much deviation
  • Use costmap information to implement obstacle avoidance.
  • Set up and control multiple bots by taking sensory information from each bot as individual particle information, and use PSO to provide them individual optimal path to reach the target.

About

This is Particle Swarm Optimizer with Potential functions based global path planner plugin for use with move_base pkg in ROS.

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages