Skip to content

Commit 10c6046

Browse files
authored
Merge pull request #14 from hmakelin/hmakelin-contributing-update
Add CONTRIBUTING.md file and issue templates. Update Contributing guidance.
2 parents 03a8b13 + 713a629 commit 10c6046

File tree

4 files changed

+100
-122
lines changed

4 files changed

+100
-122
lines changed

.github/ISSUE_TEMPLATE/bug-report.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Bug report
3+
about: Raise an issue with the project to help us improve it
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**What's the issue**
11+
Please provide a very brief description of your issue here to make it easier to filter and categorize.
12+
13+
**Describe it in detail**
14+
Please describe the issue in as much detail as you think is relevant. Being detailed in your description helps us solve your issue faster.
15+
16+
**Logs, screenshots, and other supporting information**
17+
Add any logs, screenshots or other information (software version, GPU driver version, etc.) that you think might help solve your problem here.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Feature request
3+
about: Suggest an improvement for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Idea in brief**
11+
Please provide a very brief description of your idea to make it easier to filter and categorize.
12+
13+
**Describe it in detail**
14+
Please describe your feature request in detail:
15+
* How does it make the software better?
16+
* What are the alternatives you have considered and why is your suggestion better?
17+
18+
**Additional context**
19+
Add any other context or screenshots about your feature request here.

CONTRIBUTING.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Contribute
2+
3+
All kinds of contributions are welcome, from raising issues and improvement suggestions with the software to software
4+
commits and pull requests (PRs). Please see below for guidance and suggestions on how and where to contribute.
5+
6+
## Issues and improvement suggestions
7+
8+
Please take a look at the [open issues][1] to see if someone has already raised a similar issue or suggestion on which
9+
you could add your own comments. If not, use the provided templates to submit a new one.
10+
11+
[1]: https://github.com/hmakelin/gisnav/issues
12+
13+
## Pull requests and software commits
14+
15+
> **Note**
16+
> By contributing to this repository, you agree that **your contributions will be licensed under the repository's MIT
17+
> license**.
18+
19+
All changes to the software are made through [pull requests][2]. Please pay attention to the following before you
20+
submit your pull request:
21+
22+
* If your pull request is related to an existing [open issue][1], please mention it in your pull request description.
23+
24+
* If your pull request addresses a new issue or improvement, consider posting it on the [open issues][1] page before
25+
you start working on it so that others will also be aware of your pending work.
26+
27+
* If your pull request makes use of 3rd party software, please ensure that it is MIT license compatible.
28+
29+
* Consider creating a [draft pull request][3] to get early feedback on your work before you commit to it further.
30+
31+
* In your pull request, please describe not only *what* you have done, but also *why* you have done it. This helps the
32+
reviewer understand your thought process faster.
33+
34+
## Improvements and new features
35+
36+
If you are planning to add a new feature or improve an existing feature of the software, please ensure that your
37+
contribution is aligned with GISNav's **development focus**. Currently the **development focus** is to make the software:
38+
39+
* **Easier to use**, for example by...
40+
* ...improving documentation
41+
* ...streamlining the public API
42+
* ...smoothing out configuration quirks
43+
* **Better tested**, for example by...
44+
* ...improving unit test coverage
45+
* ...adding a (better) testing framework
46+
* **Support relevant technology stacks**, for example by...
47+
* ...adding support for Ardupilot
48+
* ...adding an adapter for TensorFlow-based neural networks
49+
* **More accurate**, for example by...
50+
* ...adding a new state-of-the art pose estimation algorithm
51+
* ...making use of digital-elevation maps (DEM) to retrieve elevation of ground plane
52+
* ...making use of the [OSM buildings][4] database to remove assumption of planar ground surface
53+
54+
> **Note**
55+
> Please consider the examples in the second level bullet points as *suggestions* on where to find low-hanging fruit rather than
56+
> as *recommendations* on what to do.
57+
58+
[2]: https://docs.github.com/en/pull-requests
59+
60+
[3]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests
61+
62+
[4]: https://osmbuildings.org/data/

docs/pages/contribute.rst

Lines changed: 2 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +1,2 @@
1-
**************************************************
2-
Contribute
3-
**************************************************
4-
All kinds of contributions are welcome, from raising issues with the software to software commits and pull requests
5-
(PRs). Please see below for guidance and suggestions on how and where to contribute.
6-
7-
8-
Issues & Improvement Suggestions
9-
==================================================
10-
Please take a look at the issues board on the Github page to see if someone already has raised a similar issue or
11-
suggestion.
12-
13-
14-
Commits & Pull Requests
15-
==================================================
16-
Pull requests (PRs) are very much welcome! Please follow the
17-
`feature branch workflow <https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow>`_ when
18-
submitting your pull request.
19-
20-
* Take a look at the known issues or create one yourself for your PR before you start working so that others will also be aware of your pending work. You can also use it as an opportunity to get feedback on your idea before you commit to it further.
21-
22-
* If your PR fixes or implements an issue, please link the issue in your pull request
23-
24-
* In your commit messages, please describe not only *what* you have done, but *why* you have done it. This helps the reviewer understand your thought process faster.
25-
26-
27-
Development Guidance
28-
==================================================
29-
If you are interested in contributing to GISNav as a developer, you may consider the guidance provided in this section.
30-
These bullet points should be taken more as suggestions on where to find "low-hanging fruit" rather than as
31-
recommendations on what to do.
32-
33-
.. _Project Intention:
34-
35-
Project Intention
36-
--------------------------------------------------
37-
GISNav demonstrates a map-based visual global positioning for airborne drones that complements and improves on
38-
existing sensor fusion systems. It improves both local and global position and attitude estimate accuracy, and provides
39-
backup global positioning for GNSS-denied flight.
40-
41-
.. _Guiding Principles:
42-
43-
Guiding Principles
44-
--------------------------------------------------
45-
The following principles have been used as design guidance when developing GISNav and that you can use to evaluate
46-
whether a new feature could fit in:
47-
48-
* Complement and improve but do not replace
49-
50-
A natural application of map-based visual global positioning is complementing (but not replacing) GPS (GNSS) as
51-
global position provider.
52-
53-
* Maintainability and well-defined interfaces over premature optimization
54-
55-
Open source drone autopilot software as well as deep learning based image matching are under active development.
56-
Autonomous drone delivery services and other use scenarios are not well-developed.
57-
58-
* Build on proven open technology stack
59-
60-
The future-proof approach is to support open hardware platforms and FOSS software with existing wide adoption
61-
62-
* Target future `commercial` use cases
63-
64-
Future autonomous drone services will require precise and reliable navigation, especially within an urban or
65-
semi-urban environment. Vision is a key enabler when a drone needs to e.g. autonomously land on a small back yard.
66-
67-
68-
.. _Constraints:
69-
70-
Constraints
71-
--------------------------------------------------
72-
The `Guiding Principles`_ impose constraints on GISNav, namely:
73-
74-
* Favorable operating terrain for map-based visual matching is strongly featured urban and semi-urban areas and traffic corridors (roads or similar infrastructure), not featureless natural terrain
75-
* Drone or UAV size, flight altitude or velocity constrained only to such degree that allows commercial GNSS receivers to work
76-
* Emphasis on good flight conditions is a reasonable assumption for most commercial use cases
77-
* Open-source software (and hardware) with permissive licenses only
78-
* ROS is baked in
79-
80-
Development Focus
81-
--------------------------------------------------
82-
Taking the `Constraints`_ into account, development focus could for example be in:
83-
84-
* Easier adoption
85-
86-
* Improving documentation
87-
88-
* Developing pre-made Docker environments to speed up initial setup
89-
90-
* Pre-made configurations for popular hardware platforms or autopilot technology stacks
91-
92-
* Abstracting away current configuration quirks
93-
94-
* PX4 could be complemented by other autopilot options such as Ardupilot through Mavlink compatible interface
95-
96-
* Improved estimation accuracy, reliability or performance
97-
98-
* Newer, better pose estimation algorithms or neural networks
99-
100-
* Using elevation maps (DEMs) or other data from the underlying GIS system to complement orthoimagery
101-
102-
For example, a DEM could be used to plug in the z-coordinates of the object points for the
103-
:func:`cv2.solvePnPRansac` call that is currently used under the hood of :class:`.KeypointPoseEstimator`.
104-
105-
* Support for stereo or other kinds of cameras
106-
107-
* More testing
108-
109-
* Better test coverage
110-
111-
* SITL testing workbench development
112-
113-
Have a way to fly premade flight plans in SITL and automatically parse the flight logs or import them into e.g.
114-
a Jupyter notebook for further analysis.
115-
116-
* Better customization
117-
118-
* Have a way to re-initialize the dynamically loaded classes (:class:`.PoseEstimator`) at runtime to make it possible to swap in specialized neural nets for specific terrain via a ROS service
119-
120-
* Better maintainability
121-
122-
* Move to a more distributed 'ROS native' system in the long term where current modules that are managed by the :class:`.BaseNode` are spun as independent ROS nodes if possible.
1+
.. include:: ../../CONTRIBUTING.md
2+
:parser: myst_parser.sphinx_

0 commit comments

Comments
 (0)