Skip to content

IMACS again again (will work this time trust 💪)

License

Notifications You must be signed in to change notification settings

UWARG/IMACS-3.0

 
 

Repository files navigation

IMACS 3.0

IMACS 3.0 is forked from Falcon Ground Control Station (FGCS).

The objective of this project is to develop a scalable and fully customizable ground control station universal to all operating systems, opening the door to creative freedom for unique features.


How to run

Prerequisites
  1. Ensure npm is installed, to do so follow this guide. Note: node version must be >= v20.10.0
  2. Ensure yarn is installed, to do so run npm install --global yarn or follow this guide
  3. Install python 3.11.9 (this can be found here) then create a virtual environment for it (see Creating a virtual environment for help)
Windows
  1. Clone this repository into your device
  2. Run setup.bat in project root
  3. Run build.bat in project root
  4. Run run.bat in project root
Mac/Linux
  1. Clone this repository into your device
  2. Run source setup.sh in project root
  3. Run source build.sh in project root
  4. Run bash run.sh in project root
Post Installation

Create a .env file and add these two entries or rename .env_sample and populate the values:


Development Info

Stack
  • GUI
    • Electron + Vite + React (JavaScript)
  • Backend
    • Flask + Pymavlink (Python)
SITL with Docker

To run the SITL simulator within Docker, first pull the docker image with docker pull kushmakkapati/ardupilot_sitl. Once pulled, you can start the container with docker run -it --rm -p 5760:5760 kushmakkapati/ardupilot_sitl. This will expose port 5760 for you to connect to over TCP on 127.0.0.1 (the connection string is tcp:127.0.0.1:5760). You can also open up port 5763 for running other scripts on the simulator whilst a GCS is connected.

By default the vehicle type will be ArduCopter, however you can tell the SITL to use a custom vehicle by providing it as a named argument at the end of the run command, e.g. docker run -it --rm -p 5760:5760 kushmakkapati/ardupilot_sitl VEHICLE=ArduPlane. You can also set the starting LAT, LON, ALT and DIR using the named arguments.

If you want to upload a custom parameter file or custom mission waypoint to the simulator then you must have a custom_params.parm or mission.txt file in your current working directory. These can then be uploaded to the simulator on run by specifying a bind mount with -v .:/sitl_setup/custom (note that the destination path must be sitl_setup/custom). E.g. docker run -it --rm -p 5760:5760 -p 5763:5763 -v .:/sitl_setup/custom ardupilot_sitl VEHICLE=ArduPlane.

Note: Steps to push an updated image to docker hub:

docker build . -t ardupilot_sitl
docker tag ardupilot_sitl:latest kushmakkapati/ardupilot_sitl:latest
docker push kushmakkapati/ardupilot_sitl:latest
Python

Version

We are going to be using python 3.11.x so please install that on your computer from Python's website. Please try to use a virtual environment when programming. Name the folder either "env" or "venv" so its in the .gitignore as we don't want to be uploading that to github.

Code Style

We will be using black as the code formatter and flake8 + pylint for linting python code. Please look at the documentation found here. When pushing code we have an action to check if it is in the correct code style, if it is not in the correct style it will fail the run and you will need to fix it by running python -m black . for formatting and checking any linting issues reported by flake8 and pylint.

Configuration

Changing Ports

We have an .env file located in gcs/.env. To change the host and port for the backend, please edit VITE_BACKEND_URL.

Note: The default host and port is http://127.0.0.1:4237.


Need Help?

Feel free to ask questions in the IMACS 3.0 discord channel.

About

IMACS again again (will work this time trust 💪)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 58.0%
  • Python 37.4%
  • TypeScript 2.7%
  • CSS 0.6%
  • Shell 0.6%
  • Batchfile 0.4%
  • Other 0.3%