Pathfinding package. Use A* to find optimal path in a mapped environment.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
This package was developed during the Robotcraft '19 program. Using a P(ID) wall follower navigation method first, the robot maps the environment and avoid collisions. Then, using the map, an A* search is performed and an optimal path is found, solving a maze effectively.
Install ROS Melodic, you can also use tutorials. There's a bunch of them, including in the ros wiki. I may add a script later in a repository.
Now that you have ROS, to setup the project on your local machine:
- Click on
Fork
. - Go to your fork and
clone
the project to your local machine, in the "catkin_ws" folder. git clone https://github.com/robotcraft19/robotcraft-pathfinding.git
- Make sure you have rosdep install :
sudo apt-get install python-rosdep && sudo rosdep init
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src -r -y
- In the catkin workspace :
catkin_make
If everything went smoothly, you should now have this repo's package as well as its dependencies.
Running the nodes is quite easy as launch files were made.
- Reactive Driving and Mapping :
roslaunch robotcraft-pathfinding maze_basic.launch
A node then stores the mapped environment in the scans folder. The initial position used by the pathfinder is the initial position of the robot. The final position is the last known position. It is saved when exiting the task and repetitively throughout the process.
Another node loads the mapped environment stored previously at the begining of the astar pathfinding launch file.
- A* Pathfinder :
roslaunch robotcraft-pathfinding maze_pro.launch
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Choose any open issue from here.
- Comment on the issue:
Can I work on this?
and get assigned. - Make changes to your fork and send a PR.
Otherwise just create the issue yourself, and we'll discuss and assign you to it if serves the project !
To create a PR:
Follow the given link to make a successful and valid PR: https://help.github.com/articles/creating-a-pull-request/
To send a PR, follow these rules carefully, otherwise your PR will be closed:
- Make PR title in this formats:
Fixes #IssueNo : Name of Issue
Feature #IssueNo : Name of Issue
Enhancement #IssueNo : Name of Issue
According to what type of issue you believe it is.
For any doubts related to the issues, i.e., to understand the issue better etc, comment down your queries on the respective issue.
Distributed under the MIT License. See LICENSE
for more information.
Erwin Lejeune - @spida_rwin - erwin.lejeune15@gmail.com
Everyone part of the original team or that assisted throughout the development.