Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

JH Capstone

Basic Info
  • Host: GitHub
  • Owner: JH-UAS-Capstone
  • Language: Roff
  • Default Branch: main
  • Size: 5.97 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Citation

README.md

Assured UAS Autonomy Capstone

TBD

Development Environment Setup

If you are not creating a development environment, follow the directions for Production Environment Setup instead.

Ubuntu 22.04 Virtual Machine (SITL Drone)

The SITL drone is installed on a virtual machine running Ubuntu 22.04. It is configured with 4 CPU cores and 8GB of RAM. These resources are necessary to run the flight controller simulator. The instructions below are from the Ubuntu Development Environment guide. git clone https://github.com/PX4/PX4-Autopilot.git --recursive bash ./PX4-Autopilot/Tools/setup/ubuntu.sh Downgrade gazebo with gazebo-classic, as instructed in the Gazebo Classic Simulation guide. sudo apt remove gz-harmonic sudo apt install aptitude sudo aptitude install gazebo libgazebo11 libgazebo-dev Download and install mavlink-router, which will enable communication to and from the SITL drone outside of localhost, according to the mavlink-router README file. git clone https://github.com/mavlink-router/mavlink-router cd mavlink-router git submodule update --init --recursive sudo apt install git meson ninja-build pkg-config gcc g++ systemd meson setup build . ninja -C build sudo ninja -C build install

Because the VM does not have a GPU, the SITL simulator must be run in HEADLESS mode. Open two terminal windows or tabs.

SITL Terminal

Create and run the following bash script: bash cd ~/path/to/PX4-Autopilot export PX4_HOME_LAT=39.952638 export PX4_HOME_LON=-113.475976 export PX4_HOME_ALT=28.5 export HEADLESS=1 export SYS_FAILURE_EN=1 make px4_sitl jmavsim

Mavlink Router Terminal

Create and run the following bash script: bash cd ~/path/to/mavlink-router mavlink-routerd -e <development_machine_ip>:14550 -e <development_machine_ip>:14540 127.0.0.1:14550
- UDP :14550: Is the port that QGroundControl (QGC) will communicate on - UDP :14540: Is the port that the Python IPS will communicate on - UDP 127.0.0.1:14550: The internal port that mavlink-routerd is proxying - TCP 127.0.0.1:5760: The internal port that the SITL drone communicates on - do not connect to this port

Note: It is possible to run this part of the environment in Windows Subsystem for Linux (WSL2), but I ran into issues (I suspect the Windows Defender Firewall) connecting the SITL drone to the custom Python script. This needs more testing; for now Linux works.

Development Machine

The development machine is where the Python application will be developed. It facilitates communication over UDP to the SITL drone.

QGroundControl

Like Ardupilot's MissionPlanner, QGroundControl is used to send commands from the ground station to the drone. The PX4 community recommends QGroundControl over MissionPlanner, but both should work equally well Simply download and install QGroundControl.

Python Virtual Environment

Because of dronekit's limitations, the latest version that works with this application is Python 3.9.13; install it. Next, create your virtual environment. This is a good practice to prevent installing excessive modules in your global Python install. python -m venv .venv .venv\Scripts\activate Finally, install the required development modules. They are utilities to keep the code error-free and properly formatted. Pre Commit will run every time you commit updates to a branch. pip install -r requirements.txt pip install -r requirements_dev.txt pre-commit install pre-commit run all-files

Running the Development Testbed

Run the PX4_SITL drone and Mavlink Router startup scripts according to the previous instructions On the development machine, start the Python application: python main.py --testbed udp:0.0.0.0:14540 The testbed argument enables simulated attacks against the vehicle.

Production Environment Setup

Because of dronekit's limitations, the latest version that works with this application is Python 3.9.13; install it. Next, create your virtual environment. This is a good practice to prevent installing excessive modules in your global Python install. python -m venv .venv .venv\Scripts\activate Finally, install the required modules. pip install -r requirements.txt

Running Mavlink Router

Running the Drone Monitor

Start the Python application python main.py /dev/ttyAMA0

References

Owner

  • Name: JH-UAS-Capstone
  • Login: JH-UAS-Capstone
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Zitter"
  given-names: "Andrew"
  orcid: "https://orcid.org/0009-0001-9625-2696"
- family-names: "Lohani"
  given-names: "Chinmay"
  orcid: "https://orcid.org/0000-0000-0000-0000"
- family-names: "Stevens"
  given-names: "Spencer"
  orcid: "https://orcid.org/0009-0008-6851-3140"
title: "UAS Capstone"
version: 1.0.0
date-released: 2024-12-01
url: "https://github.com/JH-UAS-Capstone/Capstone"

GitHub Events

Total
  • Public event: 1
  • Push event: 31
  • Pull request event: 4
  • Create event: 1
Last Year
  • Public event: 1
  • Push event: 31
  • Pull request event: 4
  • Create event: 1

Dependencies

pyproject.toml pypi
requirements.txt pypi
  • dronekit ==2.9.2
  • dronekit-SITL ==3.3.0
  • numpy ==2.0.2
  • python-json-logger ==2.0.7
requirements_dev.txt pypi
  • pre-commit ==3.8.0 development