Skip to content

Commit

Permalink
Merge pull request #23 from hmakelin/hmakelin-wms-node
Browse files Browse the repository at this point in the history
Distribute logic to multiple specialized ROS nodes to improve maintainability
  • Loading branch information
hmakelin authored Dec 17, 2022
2 parents d7b2447 + c17605b commit 00e5692
Show file tree
Hide file tree
Showing 84 changed files with 4,607 additions and 4,277 deletions.
28 changes: 24 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,21 @@ jobs:
repository: PX4/px4_msgs
path: colcon_ws/src/px4_msgs

- name: Install geographic_msgs and GeographicLib datasets
run: |
sudo apt-get install wget
sudo apt-get install -y ros-foxy-mavros ros-foxy-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh
sudo apt-get install -y ros-foxy-geographic-msgs
- name: Checkout GISNav messages
uses: actions/checkout@v3
with:
repository: hmakelin/gisnav_msgs
path: colcon_ws/src/gisnav_msgs

- name: Build colcon workspace
run: |
cd colcon_ws/src/px4_ros_com/scripts
Expand All @@ -58,22 +73,27 @@ jobs:
- name: Install GISNav
run: |
cd colcon_ws
source /opt/ros/foxy/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src -y --rosdistro=foxy
cd src/gisnav
git submodule update --init
pip install -r requirements.txt
pip install -r requirements-dev.txt
cd ../..
colcon build --packages-select gisnav
colcon build --packages-select gisnav gisnav_msgs
- name: Run ROS 2 integration tests
- name: Run ROS 2 launch tests
run: |
cd colcon_ws
sudo apt-get -y update
sudo apt-get -y dist-upgrade
source /opt/ros/foxy/setup.bash
source install/setup.bash
python3 -m coverage run --branch --include */site-packages/gisnav/* src/gisnav/test/test_mock_gps_node.py
python3 -m coverage report
ros2 daemon stop
ros2 daemon start
launch_test src/gisnav/test/launch/test_px4_launch.py
launch_test src/gisnav/test/launch/test_ardupilot_launch.py
- name: Build Sphinx docs
run: |
Expand Down
42 changes: 12 additions & 30 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Contribute

All kinds of contributions are welcome, from raising issues and improvement suggestions with the software to software
commits and pull requests (PRs). Please see below for guidance and suggestions on how and where to contribute.
commits and pull requests (PRs). Please see below for guidance and suggestions on how to contribute.

## Issues and improvement suggestions

Expand All @@ -12,51 +12,33 @@ you could add your own comments. If not, use the provided templates to submit a

## Pull requests and software commits

> **Note**
> **Warning**
> By contributing to this repository, you agree that **your contributions will be licensed under the repository's MIT
> license**.
All changes to the software are made through [pull requests][2]. Please pay attention to the following before you
submit your pull request:

* See [Style Guide for Python Code][4] for general code style guidelines.

* Consider following [Conventional Commits][3] when making your commit message.

* If your pull request is related to an existing [open issue][1], please mention it in your pull request description.

* If your pull request addresses a new issue or improvement, consider posting it on the [open issues][1] page before
you start working on it so that others will also be aware of your pending work.

* If your pull request makes use of 3rd party software, please ensure that it is MIT license compatible.

* Consider creating a [draft pull request][3] to get early feedback on your work before you commit to it further.
* Consider creating a [draft pull request][5] to get early feedback on your work before you commit to it further.

* In your pull request, please describe not only *what* you have done, but also *why* you have done it. This helps the
reviewer understand your thought process faster.

## Improvements and new features

If you are planning to add a new feature or improve an existing feature of the software, please ensure that your
contribution is aligned with GISNav's **development focus**. Currently the **development focus** is to make the software:

* **Easier to use**, for example by...
* ...improving documentation
* ...streamlining the public API
* ...smoothing out configuration quirks
* **Better tested**, for example by...
* ...improving unit test coverage
* ...adding a (better) testing framework
* **Support relevant technology stacks**, for example by...
* ...adding support for Ardupilot
* ...adding an adapter for TensorFlow-based neural networks
* **More accurate**, for example by...
* ...adding a new state-of-the art pose estimation algorithm
* ...making use of digital-elevation maps (DEM) to retrieve elevation of ground plane
* ...making use of the [OSM buildings][4] database to remove assumption of planar ground surface

> **Note**
> Please consider the examples in the second level bullet points as *suggestions* on where to find low-hanging fruit rather than
> as *recommendations* on what to do.
* If your pull request makes use of 3rd party software, please ensure that it is MIT license compatible.

[2]: https://docs.github.com/en/pull-requests

[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
[3]: https://www.conventionalcommits.org/

[4]: https://peps.python.org/pep-0008/

[4]: https://osmbuildings.org/data/
[5]: 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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ https://user-images.githubusercontent.com/22712178/187902004-480397cc-460f-4d57-

# Introduction

> **Warning** Do not use this software for real drone flights. This software is untested and has only been demonstrated
> **Warning** Do not use this software for real drone flights. GISNav is untested and has only been demonstrated
> in a software-in-the-loop (SITL) simulation environment.
GISNav is a ROS 2 package that enables map-based visual navigation for airborne drones **in a simulation environment**.
Expand Down
30 changes: 0 additions & 30 deletions config/test_typhoon_h480__ksql_airport.yaml

This file was deleted.

28 changes: 0 additions & 28 deletions config/typhoon_h480__ksql_airport.yaml

This file was deleted.

29 changes: 0 additions & 29 deletions config/typhoon_h480__ksql_airport_ardupilot.yaml

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 8 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,13 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.coverage', 'autodocsumm', 'myst_parser']
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.coverage',
'sphinx.ext.autosectionlabel',
'sphinx_design',
'autodocsumm',
'myst_parser'
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Expand Down Expand Up @@ -79,6 +85,7 @@
}
],
"icon_links_label": "Quick Links",
"show_toc_level": 3,
}

# Make version number accessible in .rst files
Expand Down
38 changes: 24 additions & 14 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,38 @@ GISNav Developer Documentation
#####################################
Welcome to GISNav's developer documentation!

This site contains the following pages:
.. card:: Get Started
:link: pages/get_started.html

* `Get Started <pages/get_started.html>`_
A quick demonstration of GNSS-free visual navigation with GISNav

A quick demonstration of GNSS-free visual navigation with GISNav's :class:`.MockGPSNode`
.. card:: Developer Guide
:link: pages/developer_guide/index.html

* `Setup <pages/setup.html>`_
Instructions on how to integrate GISNav with your own project and how to extend its functionality

Instructions on how to to setup your own PX4 development and simulation environment
.. card:: API Documentation
:link: pages/api_documentation/index.html

* `Developer Guide <pages/developer_guide.html>`_
GISNav public API reference for developers

Instructions on how to integrate GISNav with your own project and how to extend its functionality
.. card:: Contribute
:link: pages/contribute.html

* `API Documentation <pages/api_documentation.html>`_
Contributions to GISNav are welcome! Please see this page for guidance

GISNav public API reference for developers
Generate documentation
_________________________________________
To build this Sphinx documentation yourself, first install the :ref:`GISNav ROS package` including the
:ref:`Development dependencies` and then run:

.. code-block:: bash
:caption: Build Sphinx documentation
* `Contribute <pages/contribute.html>`_
cd ~/colcon_ws/src/gisnav/docs
make html
Contributions to GISNav are welcome! Please see this page for guidance.
The HTML documentation will then appear in the ``~/colcon_ws/src/gisnav/docs/_build/`` folder.

.. seealso::

Expand All @@ -39,7 +50,6 @@ This site contains the following pages:
:hidden:

pages/get_started
pages/setup
pages/developer_guide
pages/api_documentation
pages/developer_guide/index
pages/api_documentation/index
pages/contribute
Loading

0 comments on commit 00e5692

Please sign in to comment.