Coder Social home page Coder Social logo

prl-mushr / mushr_gprm Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 145 KB

Alternative to the main MuSHR global planner repo, this planner is intended to be more lightweight so it can run on standard MuSHR cars.

License: BSD 3-Clause "New" or "Revised" License

CMake 0.38% Python 99.62%

mushr_gprm's Introduction

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.

mushr_gprm's People

Contributors

markusschiffer avatar

Watchers

Christoforos Mavrogiannis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.