Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 2.68 KB

README.md

File metadata and controls

32 lines (24 loc) · 2.68 KB

Global Planner

build-test

This ROS package hosts a lightweight global planner for the MuSHR system. It is intended to be runnable on any MuSHR car, along with the rest of the MuSHR stack. It uses a lazy A* planner implementation. Search based methods have two parts - first, the planning problem and environment must be represented by a graph, and then the graph must be searched from a starting point to a goal. For this implementation, we use a Roadmap (see roadmap.py) to represent an environment on which we can find valid Dubins paths (see dubins.py). We use a sampler (samplers.py) and a problem definition (problems.py) to help construct and reason about this roadmap. Within search.py, we use the Networkx A* solver to find a shortest path through our roadmap. Additionally, we optimize our path with shortcutting the final path we have if possible.

Tutorial

The following tutorial goes through installing/running the car.

Installing on the car

Make sure you install our fork of networkx onto your system (our fork has a tiny modification which determines if there is no solution more efficiently, it is a pending pull request). If you already have networkx installed, you should uninstall it first and reinstall the forked version. Note if you do not have it installed, skip the uninstall step:

pip uninstall networkx
pip install git+https://github.com/brianhou/networkx.git

Clone this repo into ~/catkin_ws/src

If you're on our docker image, you should be good to go! If not, make sure you have these common ROS dependencies: tf2_ros, std_msg, nav_msg, visualization_msg, and geometry_msg. Also, make sure you have the Python libraries matplotlib and numpy as well.

mushr_gprm ROS API

Publishers

Topic Type Description
/path_topic geometry_msgs/Path The trajectory computed by the planner.

Subscribers

Topic Type Description
/map nav_msgs/OccupancyGrid Uses the provided occupancy grid as the graph for planning.
/goal_topic geometry_msgs/PoseStamped Goal to compute path to.
/start_topic geometry_msgs/PoseStamped Starting location of the path being computed.