Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
560 commits
Select commit Hold shift + click to select a range
f5a94e1
fixed merge
sr259 May 6, 2024
5c2cc1b
update on useEffect for the dashboard
yashaswini-slu May 6, 2024
e8b0ca3
Merge branch 'issue52DisplayMainReport' of https://github.com/oss-slu…
yashaswini-slu May 6, 2024
44a6e94
updated
hebronh May 6, 2024
cbdb138
Merge branch 'issue43api' into issue52DisplayMainReport
yashaswini-slu May 6, 2024
74484b7
updated with main
hebronh May 6, 2024
e854263
Merge pull request #80 from oss-slu/issue43api
yashaswini-slu May 6, 2024
207b174
update on the back button in fuzzyDashboard
yashaswini-slu May 6, 2024
b897957
update on style
yashaswini-slu May 6, 2024
62cd971
Merge pull request #84 from oss-slu/81-link-dashboard-to-landing-page
yashaswini-slu May 6, 2024
91c9307
merging
sr259 May 6, 2024
86243b1
update on create simulation error
yashaswini-slu May 6, 2024
7cc28bd
Merge branch 'main' into issue52DisplayMainReport
yashaswini-slu May 6, 2024
79238b1
Merge pull request #87 from oss-slu/issue52DisplayMainReport
yashaswini-slu May 6, 2024
c7ffe28
Revert to React 17 rendering API for compatibility
9LogM Aug 14, 2024
db5b1ae
Downgrade React version to 17 for compatibility with @mui/styles
9LogM Aug 14, 2024
a046340
Resolve connection error related to API key
9LogM Aug 14, 2024
aafca34
Add .bat and .sh scripts for easier backend server startup
9LogM Aug 14, 2024
cbe887d
Create LICENSE
9LogM Sep 6, 2024
0babc06
add codeowners file
9LogM Sep 14, 2024
86ef3c4
add codeowners file
9LogM Sep 14, 2024
4523d55
fixed the issue, used the dayjs library which handles null values, wh…
nguzinski Sep 15, 2024
f2968ee
Update CODEOWNERS
9LogM Sep 22, 2024
6d83367
issue94Loadingattempt
Damerson1 Sep 16, 2024
53a0633
issue94-LoadingUIResolved
Damerson1 Sep 16, 2024
f1a4b56
issue94-LoadingUIResolved
Damerson1 Sep 16, 2024
7f5255a
Updated Code based on review
Damerson1 Sep 22, 2024
d582b22
Changed name of Loading file to Loading.jsx
Damerson1 Sep 22, 2024
0ae437b
Rename Loading.JSX to Loading.jsx
Damerson1 Sep 22, 2024
d935a51
Delete frontend/src/components/Loading.js
Damerson1 Sep 23, 2024
d51300b
Battery Monitor Commit
Sep 16, 2024
e81d811
Target Battery value and info alert section update
Sep 23, 2024
cacfcab
input fields bug fix
Sep 23, 2024
94d52d0
Add pymongo to requirements
9LogM Sep 25, 2024
b501390
Remove /unreal_app/
9LogM Sep 26, 2024
2deae23
Update README and installation instructions
9LogM Sep 26, 2024
6f32ea6
Combine multiple gitignore files
9LogM Sep 26, 2024
8dd5c93
Add not found page (#95)
Alhajideen Sep 29, 2024
4a2dd4f
Prepare files for GCS implementation
9LogM Oct 1, 2024
776b4ae
Setup GCS client
9LogM Oct 1, 2024
597f354
Merge pull request #122 from oss-slu/setup-gcs-client
9LogM Oct 1, 2024
91ba6cf
Update CODEOWNERS
9LogM Oct 3, 2024
fd6daf6
Create workflows for testing
9LogM Oct 6, 2024
b864602
Update workflow
9LogM Oct 6, 2024
f7aaa53
Update workflow files (#131)
9LogM Oct 6, 2024
8f18889
save report to GCS
Oct 7, 2024
0301482
wrapping up
nguzinski Oct 7, 2024
aa38711
Refactoring of save_method
Damerson1 Oct 7, 2024
f571987
AbstractMission Changes
Damerson1 Oct 8, 2024
bb92837
Add desktop.ini and key.json to .gitignore
Damerson1 Oct 8, 2024
30ca9fc
Save_method tested
Damerson1 Oct 8, 2024
d0e7d13
Update abstract_mission.py
Damerson1 Oct 8, 2024
1a460ac
Update GCS storage
9LogM Oct 8, 2024
a70ba04
Work in Progress uploading html files.
Damerson1 Oct 14, 2024
66e4788
Update point_deviation_monitor.py
Damerson1 Oct 14, 2024
05296e5
initial set up of the abstract class and concrete implementation
nguzinski Oct 14, 2024
67e9a90
this should work
nguzinski Oct 14, 2024
5984479
this should work
nguzinski Oct 14, 2024
ef2d591
fetch report files from GCS
Oct 14, 2024
d988694
Uploading Html files currently working
Damerson1 Oct 20, 2024
0f9f12e
Uploading Html files currently working
Damerson1 Oct 20, 2024
a25bb73
Attempt to pass test, indent error
Damerson1 Oct 20, 2024
351da92
Replaces unneeded inheritance and functions
Damerson1 Oct 20, 2024
02991e4
local file handling bug fix
Oct 21, 2024
36bbaa5
delete unnecessary file
Oct 21, 2024
6b4e6bb
edits
Oct 21, 2024
c188647
Reworked File Path
Damerson1 Oct 21, 2024
8266fda
another edit
Oct 21, 2024
dc53047
Removed local html file saving from draw_interactive_trace_vs_planned
Damerson1 Oct 21, 2024
2a83956
pushing up
nguzinski Oct 21, 2024
7ff4e45
Update
9LogM Oct 22, 2024
88cb8cc
Merge pull request #142 from oss-slu/issue139
9LogM Oct 22, 2024
35524cf
Merge pull request #140 from oss-slu/issue138
9LogM Oct 22, 2024
d2e6ccd
Update
9LogM Oct 22, 2024
d3d1ec5
Fix merge conflict
9LogM Oct 22, 2024
6762c6a
Update
9LogM Oct 22, 2024
a47a8e2
Merge pull request #141 from oss-slu/137-create-storageservice-interf…
9LogM Oct 22, 2024
29e6c16
Replaces every instance of upload_to_gcs with save_report_to_storage
Damerson1 Oct 28, 2024
0a4c01c
parse pass/fail counts
Oct 28, 2024
5a39a80
setting up explanation of task
nguzinski Oct 28, 2024
40cbf53
Merge pull request #156 from oss-slu/issue147
9LogM Oct 29, 2024
c8ff76b
Update drone count
9LogM Oct 29, 2024
789824a
Merge pull request #157 from oss-slu/issue146
9LogM Oct 29, 2024
8d6d244
Fix pass/fail extra counts (#159)
9LogM Oct 30, 2024
b7dc0f6
update files for sprint 5
9LogM Oct 31, 2024
9480419
Update workflow actions and requirements
9LogM Oct 31, 2024
dcf1005
update wiki
9LogM Oct 31, 2024
335932f
add loader in report dashboard
Alhajideen Oct 31, 2024
06c4d93
Update workflows
9LogM Nov 1, 2024
0c9d615
Merge pull request #164 from oss-slu/update-workflow
9LogM Nov 1, 2024
56d4bac
separate header from loader in homepage
Alhajideen Nov 1, 2024
54eb9ec
fix alignments of text on homepage
Alhajideen Nov 3, 2024
a5c7d46
fix alignments of text on homepage
Alhajideen Nov 3, 2024
08ea2c9
Merge pull request #163 from Alhajideen/add_loader_in_reports_dashboard
9LogM Nov 3, 2024
feb6c0a
fixed those typos
nguzinski Nov 4, 2024
58570a1
Fix typo
9LogM Nov 5, 2024
611166f
Remove old comments
9LogM Nov 5, 2024
207d688
Merge pull request #158 from oss-slu/145-fix-violation-detected-in-re…
9LogM Nov 5, 2024
61d3cbd
Remove extra files
9LogM Nov 5, 2024
ea5314b
Issue165 File Paths need work
Damerson1 Nov 11, 2024
11fc336
Merge branch 'main' of https://github.com/oss-slu/DroneWorld
Damerson1 Nov 11, 2024
bff6f0c
initially setting up the process
nguzinski Nov 11, 2024
cd4b7ee
first attempt
nguzinski Nov 11, 2024
613b38e
tested and complete, with built in auto test
nguzinski Nov 11, 2024
8625953
html file links
Nov 11, 2024
4e4825c
File paths work in progress, files upload, two separate paths are gen…
Damerson1 Nov 17, 2024
7b9dbe7
Updated initializations of the grapher to include log_subdir and stor…
Damerson1 Nov 18, 2024
2facea2
improve legibility
Nov 18, 2024
0491d97
rid of extra folder
Nov 18, 2024
ed8216e
final touches as requested
nguzinski Nov 18, 2024
ca711c9
final touches as requested
nguzinski Nov 18, 2024
44e655c
PNG file handling fix
Nov 19, 2024
5cf08d8
Update
9LogM Nov 19, 2024
cf7948a
Merge pull request #172 from oss-slu/issue165
9LogM Nov 19, 2024
859dc70
Update
9LogM Nov 19, 2024
c64f60d
Merge pull request #170 from oss-slu/166-add-functionality-to-upload-…
9LogM Nov 19, 2024
97d73b3
Update
9LogM Nov 19, 2024
b65ae54
Merge pull request #171 from oss-slu/issue167
9LogM Nov 19, 2024
94e4691
HTML frontend
Nov 25, 2024
d0dcd67
Update
9LogM Nov 28, 2024
7f034d4
Update
9LogM Nov 28, 2024
8f4de86
Merge pull request #178 from oss-slu/issue175
9LogM Nov 28, 2024
114744a
Update
9LogM Nov 28, 2024
d83f318
Merge pull request #176 from oss-slu/173-implement-report-pulling-in-…
9LogM Nov 28, 2024
5c891af
Update
9LogM Nov 29, 2024
e2689b1
Merge pull request #177 from oss-slu/issue1174
9LogM Nov 29, 2024
1531840
slowly adding the needed foundations for enviromentModel
nguzinski Feb 3, 2025
d4119c9
this is a good start for the foundation, more changes will be require…
nguzinski Feb 3, 2025
3817e6a
MainJson file and updates commit
Feb 3, 2025
cf34d6a
Added API functions to simulation model
Damerson1 Feb 3, 2025
62c9762
matching file structure
nguzinski Feb 3, 2025
7c41a6a
Adding workflows to the branch
Rakesh-Ranga-Buram Feb 5, 2025
7316986
Adding CODEOWNERS
Rakesh-Ranga-Buram Feb 5, 2025
ff5043b
Merge pull request #189 from oss-slu/issue185
Rakesh-Ranga-Buram Feb 6, 2025
25382d7
Added Cesium dependency
nguzinski Feb 9, 2025
1465deb
moved file locations as requested
nguzinski Feb 9, 2025
cafa2fc
Added addition files which may be needed for simulation
Damerson1 Feb 9, 2025
a106818
Added simulationPage which may be needed for simulation
Damerson1 Feb 9, 2025
2adda34
Delete frontend/src/components/SimulationConfigurationModel.js
Damerson1 Feb 10, 2025
96d872c
Merge pull request #190 from oss-slu/issue186
Rakesh-Ranga-Buram Feb 10, 2025
47ddab9
this should work
nguzinski Feb 10, 2025
9c4efd7
making sure
nguzinski Feb 10, 2025
94e53b4
Merge pull request #188 from oss-slu/187-integrate-backend-for-enviro…
Rakesh-Ranga-Buram Feb 10, 2025
fdb7530
Items on Simulation Page Shifted Left
Feb 14, 2025
ab3f7ea
Drone Icon Addition
Feb 14, 2025
16c6146
Deleted extra imports (IconButton and MyLocationIcon)
Feb 14, 2025
30abc22
annotation fix of 'process' not defined
Feb 16, 2025
27f1095
WIP Cesium Map and React integration
Damerson1 Feb 17, 2025
ea32a63
Parts of Cesium now Load. Still Errors out.
Damerson1 Feb 17, 2025
9e57a6e
Item Spacing Fix
Feb 24, 2025
bdee085
Merge pull request #194 from oss-slu/issue191
Rakesh-Ranga-Buram Feb 24, 2025
9f695e9
Integrated Cesium with React, More work to be done
Damerson1 Feb 24, 2025
412d4f6
Merge branch 'DragAndDrop' into issue193
Damerson1 Feb 24, 2025
d586ce9
uncommented imageURLS, as Val has this in her sprint
nguzinski Feb 24, 2025
bb06a70
disabling tokenization to allow for process to run, team will need to…
nguzinski Feb 24, 2025
b5af33f
Merge pull request #195 from oss-slu/issue193
Rakesh-Ranga-Buram Feb 24, 2025
6744430
Merge pull request #197 from oss-slu/ImageUrls
Rakesh-Ranga-Buram Feb 24, 2025
7a02f14
React Cesium Integration fixes
Rakesh-Ranga-Buram Mar 1, 2025
21f32eb
grabbing the imports needed for droneModel import, and retrofitting
nguzinski Mar 3, 2025
4da26f0
cleaned up outsanding errors, edited some methods for drag and drop
nguzinski Mar 3, 2025
6facb61
Integrated React in Cesium-map path, wizard TBD
Damerson1 Mar 3, 2025
174ecdf
Controls Display and Horizontal Stepper display update
Mar 3, 2025
83fcce4
Stepper Update
Mar 9, 2025
f4b8c1a
Cesium Map Visibility and Map Controls
Mar 10, 2025
c121a68
Added files from repo. Cesium file unchanged
Damerson1 Mar 10, 2025
bdcadd2
Cesium Map Unchanged.Files imported
Damerson1 Mar 10, 2025
0e554a8
added those images as requested
nguzinski Mar 10, 2025
048edb3
Merge pull request #202 from oss-slu/newissue198
Rakesh-Ranga-Buram Mar 10, 2025
b6c4c18
Merge branch 'DragAndDrop' into 200-integrate-dronemodel-in-missionco…
Rakesh-Ranga-Buram Mar 10, 2025
ce127f0
Merge pull request #201 from oss-slu/200-integrate-dronemodel-in-miss…
Rakesh-Ranga-Buram Mar 10, 2025
ab10caa
Merge branch 'DragAndDrop' into CesiumIntegration
Rakesh-Ranga-Buram Mar 10, 2025
ef12b63
Merge pull request #203 from oss-slu/CesiumIntegration
Rakesh-Ranga-Buram Mar 10, 2025
cc1c9b4
fixes
Rakesh-Ranga-Buram Mar 12, 2025
660f370
fixes
Rakesh-Ranga-Buram Mar 12, 2025
86ba608
fixes
Rakesh-Ranga-Buram Mar 12, 2025
5ba05e0
fixes
Rakesh-Ranga-Buram Mar 12, 2025
c2be850
Merge pull request #204 from oss-slu/Fixes
Rakesh-Ranga-Buram Mar 12, 2025
561361e
workflow fix
Rakesh-Ranga-Buram Mar 17, 2025
07c1468
workflow fix
Rakesh-Ranga-Buram Mar 18, 2025
9baf795
workflow fix
Rakesh-Ranga-Buram Mar 18, 2025
999614a
workflow fix
Rakesh-Ranga-Buram Mar 18, 2025
cc56ff6
workflow fix
Rakesh-Ranga-Buram Mar 18, 2025
95ccae3
workflow fix
Rakesh-Ranga-Buram Mar 18, 2025
5a9eb25
Merge pull request #208 from oss-slu/workflow_fix
Rakesh-Ranga-Buram Mar 18, 2025
2aeac0c
mainJson Integration for Single Drone
Mar 24, 2025
f1b512a
this should function as planned
nguzinski Mar 24, 2025
5fc9548
need to talk about instillation of craco or removal of this dpeendency
nguzinski Mar 24, 2025
e8072b0
fixed craco issue
nguzinski Mar 24, 2025
74aee8c
Array Update
Mar 25, 2025
c806800
file update
Mar 25, 2025
3d36bb1
return fixes
Mar 25, 2025
6d2fb93
Fixes the multiple drone drag and drog error
Damerson1 Mar 25, 2025
5e47427
attempting massive restructure
nguzinski Mar 31, 2025
3afd659
I've added as much error handling as necessary, this makes sure that …
nguzinski Mar 31, 2025
1de15cc
deleted redundant package
nguzinski Mar 31, 2025
05770ac
camera position fix
Mar 31, 2025
c1235c4
drone confg edit
Mar 31, 2025
d85a6c2
compile success
Mar 31, 2025
6130c1a
Merge pull request #210 from oss-slu/issue207
Rakesh-Ranga-Buram Mar 31, 2025
2d4e724
removed changes to mission config
nguzinski Mar 31, 2025
f7b9cca
Addressed commments from previous pr. Code Cleanup
Damerson1 Mar 31, 2025
383c802
Merge branch 'DragAndDrop' into issue206
Rakesh-Ranga-Buram Mar 31, 2025
70889f8
Merge pull request #212 from oss-slu/issue206
Rakesh-Ranga-Buram Mar 31, 2025
3be0667
Merge branch 'DragAndDrop' into 205-drones-latitude-longitude-and-hei…
Rakesh-Ranga-Buram Mar 31, 2025
343fb8d
Merge pull request #211 from oss-slu/205-drones-latitude-longitude-an…
Rakesh-Ranga-Buram Mar 31, 2025
f18fc7c
label update
Apr 7, 2025
7d73dee
Fixes issue214. Decrement now correctly updates Cesium Map
Damerson1 Apr 7, 2025
c72451d
Uses pop instead of droneid. removed function deletedronebyid
Damerson1 Apr 14, 2025
7050078
Merge pull request #218 from oss-slu/issue214
Rakesh-Ranga-Buram Apr 14, 2025
cacba11
DroneName update in Cesium
Apr 14, 2025
e07e26a
Merge pull request #217 from oss-slu/issue215
Rakesh-Ranga-Buram Apr 14, 2025
1ec3cdd
CesiumMap 3D Assets
Rakesh-Ranga-Buram Apr 15, 2025
44a33ac
workflow fixes
Rakesh-Ranga-Buram Apr 17, 2025
8bb147d
DragAndDrop
Rakesh-Ranga-Buram Apr 17, 2025
20e1151
initial fixes
Apr 28, 2025
6ecc82c
Added comments and null checks
Damerson1 Apr 28, 2025
fa46643
Merge pull request #225 from oss-slu/issue222
Rakesh-Ranga-Buram Apr 29, 2025
5489b57
import fixes
May 5, 2025
425dac1
clean push of pixel streaming and start_enviroment.ps1
nguzinski May 5, 2025
7fadca5
Merge pull request #224 from oss-slu/issue221
Rakesh-Ranga-Buram May 5, 2025
4e1dd07
Merge pull request #226 from oss-slu/213-pixel-streaming-unreal-in-fr…
Rakesh-Ranga-Buram May 5, 2025
ed41101
Pixel Streaming
Rakesh-Ranga-Buram May 9, 2025
61b3d9a
Updated Nav Bar
CharlieWells13 Sep 15, 2025
a2e1730
Changed Simulations to Simulation
CharlieWells13 Sep 15, 2025
517eb29
finished
Hbarsanti Sep 15, 2025
f1a14d1
Landing Page done
Hbarsanti Sep 16, 2025
f3fc9dc
Updated NavBar
CharlieWells13 Sep 17, 2025
8a4d86c
Fixed Get Started button and veiw documentation is now responsive
Hbarsanti Sep 19, 2025
c7f69f3
Merge landingPage updates and local changes
Sep 21, 2025
0d14b01
updated
Sep 22, 2025
ebf6e8b
verified navbar
Sep 22, 2025
a648336
added about us page
ahmedbektic Sep 29, 2025
acdcb41
added css allowing user to see accepted ranges
Hbarsanti Sep 29, 2025
15db76d
file changes
prakhyatpandit Oct 2, 2025
443c06a
Added input validation for wind speed
Hbarsanti Oct 3, 2025
f1a0f7a
Fixed Major typo, added some console logs, added Nav Bar to Router
CharlieWells13 Oct 4, 2025
6c37ad0
Added in a protector so camera onl flys when I want it to, this make …
CharlieWells13 Oct 5, 2025
08f947a
Merge branch 'about-us'
prakhyatpandit Oct 5, 2025
43fcc08
Merge branch 'main' of https://github.com/oss-slu/DroneWorld into Val…
prakhyatpandit Oct 6, 2025
bc8fb3d
fix files
prakhyatpandit Oct 6, 2025
e435832
Merge branch 'main' into CesiumMapResetBugFix
CharlieWells13 Oct 13, 2025
ce61aba
Revert App.js to match main
CharlieWells13 Oct 13, 2025
c7ba374
Merge remote-tracking branch 'origin/CesiumMapResetBugFix' into Cesiu…
CharlieWells13 Oct 13, 2025
ccb5231
Fix App.js structure to pass auto-test
CharlieWells13 Oct 13, 2025
fb87167
Add new code owners to CODEOWNERS file
kungfuchicken Oct 27, 2025
109395c
Update CODEOWNERS to reflect current ownership
kungfuchicken Oct 27, 2025
cc27886
Merge pull request #252 from oss-slu/update-codeowners-kungfuchicken
kungfuchicken Oct 27, 2025
450b2d3
Removed App.js Changes
CharlieWells13 Oct 27, 2025
be1bc8d
Trying to remove app.js changes
CharlieWells13 Oct 27, 2025
80b42f9
Merge pull request #239 from CharlieWells13/CesiumMapResetBugFix
kungfuchicken Oct 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Code owners for the entire repository
* @kungfuchicken @prakhyatpandit @BohanZhang1
55 changes: 55 additions & 0 deletions .github/workflows/backend-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Backend CI

on:
push:
branches:
- main
- docker-main
pull_request:
branches:
- main
- docker-main

jobs:
backend-setup:
runs-on: windows-latest
strategy:
matrix:
python-version: [3.10]

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Cache pip dependencies
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r backend/requirements.txt

- name: Lint backend code
run: |
pip install flake8
flake8 backend/ --max-line-length 160 --ignore E127,E251,E302,E501,E261,E262,E265,F401,F403,F405,F841,W293,E128,E303,E305,W292,E122,W391,E111,E117,E301,E125,E222,E226,E201,E203,E202,E721,W503,W504,E272,E126,E225,W291,E211,E231,E722,W191,E712,F523,E402,E306

- name: Format backend code with Black
run: |
pip install black
black backend/

- name: Perform Dependency Audit
run: |
pip install safety
safety check -r backend/requirements.txt
57 changes: 57 additions & 0 deletions .github/workflows/frontend-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Frontend CI

on:
push:
branches:
- main
- docker-main
pull_request:
branches:
- main
- docker-main

jobs:
frontend-setup:
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '16'

- name: Install dependencies
run: |
cd frontend
npm install

- name: Lint frontend code
run: |
cd frontend
npm run lint

- name: Format frontend code with Prettier
run: |
cd frontend
npm run format

- name: Build frontend
run: |
cd frontend
npm run build

- name: Run ESLint Security Checks
run: |
cd frontend
npm audit --omit=dev --audit-level=critical || true
50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Ignore Visual Studio files
.vs/

# Ignore virtual environments
backend/venv/

# Ignore Node.js dependencies
node_modules/

# Ignore Python bytecode files and __pycache__ directories globally
*.pyc
__pycache__/

# Ignore backend-specific files
backend/*.csv
backend/*.html
backend/*.png
backend/*.jpg

# Frontend ignores
# dependencies
frontend/node_modules
frontend/.pnp
frontend/.pnp.js

# testing
frontend/coverage

# production
frontend/build

# misc
frontend/.DS_Store
frontend/.env.local
frontend/.env.development.local
frontend/.env.test.local
frontend/.env.production.local

frontend/npm-debug.log*
frontend/yarn-debug.log*
frontend/yarn-error.log*

# Ignore frontend package-lock.json
frontend/package-lock.json

# Ignore Windows system file
desktop.ini

# Ignore Google Cloud service account key
key.json
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Open Source with SLU

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
9 changes: 0 additions & 9 deletions backend/.gitignore

This file was deleted.

14 changes: 12 additions & 2 deletions backend/PythonClient/multirotor/airsim_application.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
from abc import abstractmethod

from PythonClient import airsim

from PythonClient.multirotor.storage.storage_config import get_storage_service

class AirSimApplication:
# Parent class for all airsim client side mission and monitors
def __init__(self):
# Set up the storage service
self.storage_service = get_storage_service()

self.circular_mission_names = {"FlyInCircle"}
self.polygon_mission_names = {"FlyToPoints", "FlyToPointsGeo"}
self.point_mission_names = {"FlyStraight"}
Expand Down Expand Up @@ -59,6 +62,13 @@ def append_pass_to_log(self, new_log_string):
def save_report(self):
pass

def save_report_to_storage(self, file_name, content, content_type='text/plain'):
"""
Saves the content as a report and uploads it using the storage service.
Uses the upload_to_service method of the storage service.
"""
self.storage_service.upload_to_service(file_name, content, content_type)

def save_pic(self, picture):
self.snap_shots.append(picture)

Expand Down Expand Up @@ -104,4 +114,4 @@ def get_cesium_origin(self):
lat = data["latitude"]
lon = data["longitude"]
height = data["height"]
return [lat, lon, height]
return [lat, lon, height]
57 changes: 42 additions & 15 deletions backend/PythonClient/multirotor/control/simulation_task_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ def add_task(self, raw_request_json, uuid):
json.dump(raw_request_json, f, indent=4)

def __populate_drone_and_mission_settings(self, new_setting_dot_json, raw_request_json):
print(new_setting_dot_json)
for single_drone_setting in raw_request_json["Drones"]:
# Must-exist params for setting.json or mission dispatch
single_drone_setting_copy = copy.deepcopy(single_drone_setting)
Expand All @@ -180,10 +181,36 @@ def __populate_drone_and_mission_settings(self, new_setting_dot_json, raw_reques

diff_dict = self.__find_diff(single_drone_setting_copy, self.__DEFAULT_DRONE_FULL_LENGTH)

if "Sensors" in single_drone_setting:
diff_dict["Sensors"] = diff_dict.get("Sensors", {})
if "Barometer" in single_drone_setting["Sensors"]:
diff_dict["Sensors"]["Barometer"] = single_drone_setting["Sensors"]["Barometer"]
if "Magnetometer" in single_drone_setting["Sensors"]:
diff_dict["Sensors"]["Magnetometer"] = single_drone_setting["Sensors"]["Magnetometer"]
if "GPS" in single_drone_setting["Sensors"]:
diff_dict["Sensors"]["GPS"] = single_drone_setting["Sensors"]["GPS"]

new_one_drone_json = {
drone_name: dict(VehicleType="SimpleFlight", X=drone_x, Y=drone_y, Z=drone_z)
drone_name: dict(FlightController="SimpleFlight", X=drone_x, Y=drone_y, Z=drone_z)
}

# # GPS settings
# if "GPS" in single_drone_setting["Sensors"]:
# diff_dict["Sensors"]["GPS"] = {
# "EphTimeConstant": single_drone_setting["Sensors"]["GPS"].get("EphTimeConstant", 0.9),
# "EpvTimeConstant": single_drone_setting["Sensors"]["GPS"].get("EpvTimeConstant", 0.9),
# "EphInitial": single_drone_setting["Sensors"]["GPS"].get("EphInitial", 25),
# "EpvInitial": single_drone_setting["Sensors"]["GPS"].get("EpvInitial", 25),
# "EphFinal": single_drone_setting["Sensors"]["GPS"].get("EphFinal", 0.1),
# "EpvFinal": single_drone_setting["Sensors"]["GPS"].get("EpvFinal", 0.1),
# "EphMin3d": single_drone_setting["Sensors"]["GPS"].get("EphMin3d", 3),
# "EphMin2d": single_drone_setting["Sensors"]["GPS"].get("EphMin2d", 4),
# "UpdateLatency": single_drone_setting["Sensors"]["GPS"].get("UpdateLatency", 0.2),
# "UpdateFrequency": single_drone_setting["Sensors"]["GPS"].get("UpdateFrequency", 50),
# "StartupDelay": single_drone_setting["Sensors"]["GPS"].get("StartupDelay", 1),
# }


new_one_drone_json[drone_name].update(diff_dict)
new_setting_dot_json['Vehicles'].update(new_one_drone_json)
self.__drone_positions_seen.clear() # clear the duplicate drone position list
Expand All @@ -195,8 +222,8 @@ def __handle_wind_settings(self, new_setting_dot_json, raw_request_json):
# wind vector already handled in run_fuzzy_test_batch
else:
wind = raw_request_json['environment']['Wind']
if "Force" in wind:
wind_vector = self.__string_to_wind_vector(wind["Distance"], wind["Force"])
if "Velocity" in wind:
wind_vector = self.__string_to_wind_vector(wind["Direction"], wind["Velocity"])
new_setting_dot_json['Wind'] = {'X': wind_vector[0], 'Y': wind_vector[1], 'Z': wind_vector[2]}
elif not (wind['X'] == 0 and wind['Y'] == 0 and wind['Z'] == 0):
new_setting_dot_json['Wind'] = raw_request_json['environment']['Wind']
Expand Down Expand Up @@ -392,7 +419,7 @@ def __create_global_monitor_threads(self, monitor_list):
start_threads.append(threading.Thread(target=monitor_instance.start))
stop_threads.append(threading.Thread(target=monitor_instance.stop))
return start_threads, stop_threads

@staticmethod
def __get_class_instance(class_name, module_name):
module = importlib.import_module("PythonClient.multirotor." + module_name + "." + class_name)
Expand All @@ -401,7 +428,7 @@ def __get_class_instance(class_name, module_name):
@staticmethod
def __create_default_drone_full_length_reqeust():
return dict(
VehicleType="SimpleFlight", DefaultVehicleState="Armed", PawnPath="",
FlightController="SimpleFlight", DefaultVehicleState="Armed", PawnPath="",
EnableCollisionPassthrogh=False, EnableCollisions=True,
AllowAPIAlways=True, EnableTrace=False, Name="Drone1", Mission={},
X=0, Y=0, Z=0, Pitch=0, Roll=0, Yaw=0)
Expand Down Expand Up @@ -445,23 +472,23 @@ def __set_fuzzy_wind_vector(wind_magnitude):
return [x, y, 0]

@staticmethod
def __string_to_wind_vector(direction, force):
def __string_to_wind_vector(direction, velocity):
if direction == 'N':
return [force, 0, 0]
return [velocity, 0, 0]
elif direction == 'S':
return [-force, 0, 0]
return [-velocity, 0, 0]
elif direction == 'E':
return [0, force, 0]
return [0, velocity, 0]
elif direction == 'W':
return [0, -force, 0]
return [0, -velocity, 0]
elif direction == 'NE':
return [force / 2 ** 0.5, force / 2 ** 0.5, 0]
return [velocity / 2 ** 0.5, velocity / 2 ** 0.5, 0]
elif direction == 'NW':
return [force / 2 ** 0.5, -force / 2 ** 0.5, 0]
return [velocity / 2 ** 0.5, -velocity / 2 ** 0.5, 0]
elif direction == 'SE':
return [-force / 2 ** 0.5, force / 2 ** 0.5, 0]
return [-velocity / 2 ** 0.5, velocity / 2 ** 0.5, 0]
elif direction == 'SW':
return [-force / 2 ** 0.5, -force / 2 ** 0.5, 0]
return [-velocity / 2 ** 0.5, -velocity / 2 ** 0.5, 0]
else:
return [0, 0, 0]

Expand Down Expand Up @@ -502,7 +529,7 @@ def __environment_check():
"SimMode": "Multirotor",
"Vehicles": {
"Drone1": {
"VehicleType": "SimpleFlight",
"FlightController": "SimpleFlight",
"X": 0,
"Y": 0,
"Z": 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
import os
import threading
from enum import Enum

from PythonClient.multirotor.airsim_application import AirSimApplication


lock = threading.Lock()


Expand Down Expand Up @@ -34,24 +32,17 @@ def async_fly_to_position(self, drone_name, point, speed):

def save_report(self):
with lock:
log_dir = os.path.join(self.dir_path, self.log_subdir, self.__class__.__name__)
# print("DEBUG:" + log_dir)
if not os.path.exists(log_dir):
try:
os.makedirs(log_dir)
except:
print("Folder exist, thread unsafe")
# Directly create the file name for GCS
file_name = self.__class__.__name__ + "_" + self.target_drone + "_log.txt"
gcs_path = f"{self.log_subdir}/{self.__class__.__name__}/{file_name}"

with open(log_dir + os.sep + self.__class__.__name__ + "_" + self.target_drone + "_log.txt", 'w') as outfile:
outfile.write(self.log_text)
# Upload directly to GCS (log_text is uploaded as file content)
self.save_report_to_storage(gcs_path, self.log_text)

def kill_mission(self):
self.state = self.State.END
# kill all threads





if __name__ == '__main__':
mission = GenericMission()
mission = GenericMission()
Loading