Skip to content

Commit 00e5692

Browse files
authored
Merge pull request #23 from hmakelin/hmakelin-wms-node
Distribute logic to multiple specialized ROS nodes to improve maintainability
2 parents d7b2447 + c17605b commit 00e5692

File tree

84 files changed

+4607
-4277
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+4607
-4277
lines changed

.github/workflows/build.yml

+24-4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,21 @@ jobs:
3737
repository: PX4/px4_msgs
3838
path: colcon_ws/src/px4_msgs
3939

40+
- name: Install geographic_msgs and GeographicLib datasets
41+
run: |
42+
sudo apt-get install wget
43+
sudo apt-get install -y ros-foxy-mavros ros-foxy-mavros-extras
44+
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
45+
chmod +x install_geographiclib_datasets.sh
46+
./install_geographiclib_datasets.sh
47+
sudo apt-get install -y ros-foxy-geographic-msgs
48+
49+
- name: Checkout GISNav messages
50+
uses: actions/checkout@v3
51+
with:
52+
repository: hmakelin/gisnav_msgs
53+
path: colcon_ws/src/gisnav_msgs
54+
4055
- name: Build colcon workspace
4156
run: |
4257
cd colcon_ws/src/px4_ros_com/scripts
@@ -58,22 +73,27 @@ jobs:
5873
- name: Install GISNav
5974
run: |
6075
cd colcon_ws
76+
source /opt/ros/foxy/setup.bash
6177
rosdep update
6278
rosdep install --from-paths src --ignore-src -y --rosdistro=foxy
6379
cd src/gisnav
6480
git submodule update --init
6581
pip install -r requirements.txt
6682
pip install -r requirements-dev.txt
6783
cd ../..
68-
colcon build --packages-select gisnav
84+
colcon build --packages-select gisnav gisnav_msgs
6985
70-
- name: Run ROS 2 integration tests
86+
- name: Run ROS 2 launch tests
7187
run: |
7288
cd colcon_ws
89+
sudo apt-get -y update
90+
sudo apt-get -y dist-upgrade
7391
source /opt/ros/foxy/setup.bash
7492
source install/setup.bash
75-
python3 -m coverage run --branch --include */site-packages/gisnav/* src/gisnav/test/test_mock_gps_node.py
76-
python3 -m coverage report
93+
ros2 daemon stop
94+
ros2 daemon start
95+
launch_test src/gisnav/test/launch/test_px4_launch.py
96+
launch_test src/gisnav/test/launch/test_ardupilot_launch.py
7797
7898
- name: Build Sphinx docs
7999
run: |

CONTRIBUTING.md

+12-30
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Contribute
22

33
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.
4+
commits and pull requests (PRs). Please see below for guidance and suggestions on how to contribute.
55

66
## Issues and improvement suggestions
77

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

1313
## Pull requests and software commits
1414

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

22+
* See [Style Guide for Python Code][4] for general code style guidelines.
23+
24+
* Consider following [Conventional Commits][3] when making your commit message.
25+
2226
* If your pull request is related to an existing [open issue][1], please mention it in your pull request description.
2327

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

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.
31+
* Consider creating a [draft pull request][5] to get early feedback on your work before you commit to it further.
3032

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

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.
36+
* If your pull request makes use of 3rd party software, please ensure that it is MIT license compatible.
5737

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

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
40+
[3]: https://www.conventionalcommits.org/
41+
42+
[4]: https://peps.python.org/pep-0008/
6143

62-
[4]: https://osmbuildings.org/data/
44+
[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

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ https://user-images.githubusercontent.com/22712178/187902004-480397cc-460f-4d57-
22

33
# Introduction
44

5-
> **Warning** Do not use this software for real drone flights. This software is untested and has only been demonstrated
5+
> **Warning** Do not use this software for real drone flights. GISNav is untested and has only been demonstrated
66
> in a software-in-the-loop (SITL) simulation environment.
77
88
GISNav is a ROS 2 package that enables map-based visual navigation for airborne drones **in a simulation environment**.

config/test_typhoon_h480__ksql_airport.yaml

-30
This file was deleted.

config/typhoon_h480__ksql_airport.yaml

-28
This file was deleted.

config/typhoon_h480__ksql_airport_ardupilot.yaml

-29
This file was deleted.
Loading

docs/conf.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,13 @@
3737
# Add any Sphinx extension module names here, as strings. They can be
3838
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
3939
# ones.
40-
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.coverage', 'autodocsumm', 'myst_parser']
40+
extensions = ['sphinx.ext.autodoc',
41+
'sphinx.ext.coverage',
42+
'sphinx.ext.autosectionlabel',
43+
'sphinx_design',
44+
'autodocsumm',
45+
'myst_parser'
46+
]
4147

4248
# Add any paths that contain templates here, relative to this directory.
4349
templates_path = ['_templates']
@@ -79,6 +85,7 @@
7985
}
8086
],
8187
"icon_links_label": "Quick Links",
88+
"show_toc_level": 3,
8289
}
8390

8491
# Make version number accessible in .rst files

docs/index.rst

+24-14
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,38 @@ GISNav Developer Documentation
33
#####################################
44
Welcome to GISNav's developer documentation!
55

6-
This site contains the following pages:
6+
.. card:: Get Started
7+
:link: pages/get_started.html
78

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

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

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

14-
Instructions on how to to setup your own PX4 development and simulation environment
16+
.. card:: API Documentation
17+
:link: pages/api_documentation/index.html
1518

16-
* `Developer Guide <pages/developer_guide.html>`_
19+
GISNav public API reference for developers
1720

18-
Instructions on how to integrate GISNav with your own project and how to extend its functionality
21+
.. card:: Contribute
22+
:link: pages/contribute.html
1923

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

22-
GISNav public API reference for developers
26+
Generate documentation
27+
_________________________________________
28+
To build this Sphinx documentation yourself, first install the :ref:`GISNav ROS package` including the
29+
:ref:`Development dependencies` and then run:
30+
31+
.. code-block:: bash
32+
:caption: Build Sphinx documentation
2333
24-
* `Contribute <pages/contribute.html>`_
34+
cd ~/colcon_ws/src/gisnav/docs
35+
make html
2536
26-
Contributions to GISNav are welcome! Please see this page for guidance.
37+
The HTML documentation will then appear in the ``~/colcon_ws/src/gisnav/docs/_build/`` folder.
2738

2839
.. seealso::
2940

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

4152
pages/get_started
42-
pages/setup
43-
pages/developer_guide
44-
pages/api_documentation
53+
pages/developer_guide/index
54+
pages/api_documentation/index
4555
pages/contribute

0 commit comments

Comments
 (0)