drone-playground
Simple Drone Simulator for Educational Purposes Based on Babylon.js
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 (3.8%) to scientific vocabulary
Repository
Simple Drone Simulator for Educational Purposes Based on Babylon.js
Basic Info
- Host: GitHub
- Owner: maruta
- License: mit
- Language: TypeScript
- Default Branch: main
- Homepage: https://maruta.github.io/drone-playground/
- Size: 1.59 MB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
drone-playground
Simple Drone Simulator for Educational Purposes Based on Babylon.js
This simulator was created as a simplified alternative to the AirSim based simulator previously used in classes. Only the parts related to horizontal movements, which the author uses in lectures, have been adjusted. Please do not expect too much.
TO RUN
- Go https://maruta.github.io/drone-playground/
- Press [Run] Button to execute the code
- Use [Pause] to pause/resume the simulation
- Use [Reset time] to reset the simulation time
- Use [Despawn All] to remove all drones from the scene
CAMERA CONTROL
Camera location and orientation are controlled by Keyboard / Mouse(wheel) / Touch / Gamepad
- ↑ ↓ ← → PgUp PgDn Forward / Backward / Left / Right / Up / Down
- W S A D Q E Horizontal (Forward / Backward / Left / Right) / Vertical (Up / Down)
- Mouse wheel: Zoom in/out
- Touch: Tap to follow drone, pinch to zoom, drag to rotate camera
- Hide Code / Show Code button to toggle code editor visibility
EXAMPLE USAGE IN EDUCATION
Discuss the drone behavior corresponding to the PD controller designs submitted by the students. Press [Run] to execute the code and start the simulation.
-
- The drones are placed in the X-Z plane in the order of gain crossing frequency and phase margin.
- Observe the difference in response due to gain crossing frequency and phase margin.
-
- Drones are lined up in order of gain crossing frequency.
- After the second round, they switch to controllers of their own design
- After the third lap, the speed gradually increases.
LICENSE
This project is licensed under MIT License
Third-party libraries and resources within the
vendoranddistfolders (e.g., CSS frameworks, JavaScript libraries) are subject to their respective licenses. For more details, please refer to the license files of the respective projects.
Acknowledgements
- The 3D model of drone (static/model/drone.glb) was provided by user 31415926 on sketchfab. It is licensed under the CC BY 4.0 License.
Local Development and Building
Follow these steps to develop and build the project on your local environment.
Prerequisites
- Node.js installed (npm comes with it)
- Visual Studio Code (recommended editor)
Setup
Clone or download this repository.
Open a terminal in the project's root directory.
Run the following command to install the necessary dependencies:
npm install
Starting the Development Server
To run the project during development:
- Execute the following command:
npm start
- Open
http://localhost:9000in your browser.
Building the Project
To build the project for production:
- Run the following command:
npm run build
- The built files will be output to the
distdirectory.
Developing with Visual Studio Code
If you're using Visual Studio Code for development:
Open the project's root directory in Visual Studio Code.
To start debugging:
- start the development server with
npm start. - Press
F5or select the Debug view (bug icon) from the activity bar on the left. - Choose "Launch Chrome against localhost" from the dropdown menu.
- Click the green play button or press
F5to start debugging.
- start the development server with
This project already includes a .vscode/launch.json file, so you can start debugging without additional configuration.
Using Visual Studio Code makes it easier to develop and debug TypeScript, allowing you to set breakpoints, watch variables, step through code, and more.
Owner
- Name: Ichiro Maruta
- Login: maruta
- Kind: user
- Company: Kyoto University
- Website: https://control.kuaero.kyoto-u.ac.jp/~maruta/
- Repositories: 6
- Profile: https://github.com/maruta
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Maruta" given-names: "Ichiro" orcid: "https://orcid.org/0000-0002-2246-3570" title: "Simple Drone Simulator for Educational Purposes Based on Babylon.js" date-released: 2024-07-02 url: "https://github.com/maruta/drone-playground"
GitHub Events
Total
- Watch event: 2
- Push event: 14
Last Year
- Watch event: 2
- Push event: 14
Dependencies
- actions/checkout v4 composite
- actions/deploy-pages v1 composite
- actions/setup-node v4 composite
- actions/upload-pages-artifact v1 composite
- 445 dependencies
- @types/node ^20.14.9 development
- clean-webpack-plugin ^4.0.0 development
- copy-webpack-plugin ^12.0.2 development
- css-loader ^7.1.2 development
- file-loader ^6.2.0 development
- html-webpack-plugin ^5.6.0 development
- monaco-editor-webpack-plugin ^7.1.0 development
- source-map-loader ^5.0.0 development
- style-loader ^4.0.0 development
- ts-loader ^9.5.1 development
- typescript ^5.5.3 development
- webpack ^5.92.1 development
- webpack-cli ^5.1.4 development
- webpack-dev-server ^5.0.4 development
- babylonjs ^7.13.1
- babylonjs-gui ^7.13.1
- babylonjs-loaders ^7.13.1
- babylonjs-materials ^7.13.1
- monaco-editor ^0.50.0