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
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
Metadata Files
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
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
- Set Up PX4 Simulator on WSL PX4 Simulator: Unlocking Drone Development and Testing Capabilities - Godfrey Nolan, RIIS LLC
Owner
- Name: JH-UAS-Capstone
- Login: JH-UAS-Capstone
- Kind: organization
- Repositories: 1
- Profile: https://github.com/JH-UAS-Capstone
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
- dronekit ==2.9.2
- dronekit-SITL ==3.3.0
- numpy ==2.0.2
- python-json-logger ==2.0.7
- pre-commit ==3.8.0 development