-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of github.com:PegasusResearch/pegasus
- Loading branch information
Showing
9 changed files
with
158 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: Build docs | ||
|
||
on: | ||
push: | ||
branches: | ||
main | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build-docs: | ||
name: Build documentation | ||
runs-on: ubuntu-22.04 | ||
if: github.repository == 'PegasusResearch/pegasus' | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install doc requirements | ||
working-directory: ./docs | ||
run: pip install -r requirements.txt | ||
|
||
- name: Compile html docs | ||
working-directory: ./docs | ||
run: make html | ||
|
||
- name: Deploy to github pages | ||
uses: peaceiris/actions-gh-pages@v3 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./docs/_build/html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,51 @@ | ||
Autopilot | ||
========= | ||
|
||
At the center of the Guidance and Control system is the Autopilot. | ||
At the center of the Guidance and Control system is the Autopilot, implemented in C++. This is located inside the ``pegasus_autopilot/autopilot`` package. | ||
The Autopilot is responsible for keeping track of the current operating ``mode`` of the vehicle. It exposes to each operation ``mode`` the following APIs: | ||
|
||
* ``Control`` - Provides the control commands to the vehicle to track a given position, attitude, velocity, etc. | ||
* ``Geofencing`` - Checks if the vehicle is within the geofence and if not, provides the control commands to bring the vehicle back inside the geofence. | ||
* ``Trajectory Manager`` - Manages desired trajectories for the vehicle to follow. | ||
|
||
It also provides each mode with the current ``state`` of the vehicle, which includes the current position, velocity, attitude, etc. | ||
|
||
The autopilot operation ``modes``, ``controllers``, ``geofencing`` and ``trajectory manager`` are implemented as ROS 2 plugins. This allows for easy extensibility and customization of the Autopilot, without having | ||
to modify the base autopilot packages. The Autopilot is responsible for loading the plugins at runtime and managing the communication between them. | ||
|
||
0. Operating Modes | ||
------------------ | ||
|
||
The default operating modes provided by the Autopilot are: | ||
|
||
* ``Arm`` - The vehicle is armed and ready to take off. | ||
* ``Disarm`` - The vehicle is on the ground and disarmed. | ||
* ``Takeoff`` - The vehicle takes of to a predefined altitude above the current position. | ||
* ``Land`` - The vehicle lands at the current position. | ||
* ``Hold`` - The vehicle holds its current position. | ||
* ``Follow Trajectory`` - The vehicle follows the trajectory loaded in the trajectory manager. | ||
* ``Waypoint`` - The vehicle goes to a waypoint. | ||
|
||
|
||
1. Autopilot Code | ||
----------------- | ||
|
||
.. literalinclude:: ../../../pegasus_autopilot/autopilot/include/autopilot/autopilot.hpp | ||
:language: c++ | ||
:emphasize-lines: 87-88, 90-91, 93-94, 102-103, 127-128, 130-131, 133-136, 182-186 | ||
:linenos: | ||
|
||
2. Explanation | ||
-------------- | ||
|
||
In order to | ||
|
||
.. literalinclude:: ../../../pegasus_autopilot/autopilot/include/autopilot/autopilot.hpp | ||
:language: c++ | ||
:lines: 87-88 | ||
:lineno-start: 87 | ||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,9 @@ | ||
Controllers | ||
=========== | ||
=========== | ||
|
||
0. Definition of the Controller Interface | ||
----------------------------------------- | ||
.. literalinclude:: ../../../pegasus_autopilot/autopilot/include/autopilot/controller.hpp | ||
:language: c++ | ||
:emphasize-lines: 92-95, 97-101, 128-130, 132-139, 141-148, 150-157, 159-166, 168-173 | ||
:linenos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,9 @@ | ||
Geofencing | ||
========== | ||
========== | ||
|
||
0. Definition of the Geofencing Interface | ||
----------------------------------------- | ||
.. literalinclude:: ../../../pegasus_autopilot/autopilot/include/autopilot/geofencing.hpp | ||
:language: c++ | ||
:emphasize-lines: 92-93, 95-99 | ||
:linenos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,17 @@ | ||
States | ||
====== | ||
====== | ||
|
||
0. Definition of the State Machine Mode Interface | ||
------------------------------------------------- | ||
.. literalinclude:: ../../../pegasus_autopilot/autopilot/include/autopilot/mode.hpp | ||
:language: c++ | ||
:emphasize-lines: 103-108 | ||
:linenos: | ||
|
||
1. Provided State Machine Modes | ||
------------------------------- | ||
TODO | ||
|
||
2. Adding Custom Modes to the State Machine | ||
------------------------------------------- | ||
TODO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
Static Trajectory Manager | ||
========================= | ||
|
||
0. Definition of the Trajectory Interface | ||
----------------------------------------- | ||
.. literalinclude:: ../../../pegasus_autopilot/static_trajectory_manager/include/static_trajectory_manager/static_trajectory.hpp | ||
:language: c++ | ||
:emphasize-lines: 67-73 | ||
:linenos: | ||
|
||
1. Provided Trajectories | ||
------------------------ | ||
TODO | ||
|
||
2. Adding Custom Static Trajectories | ||
------------------------------------ | ||
TODO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters