From 951a67d82ef5c17f979a588a249391045b2e5e5f Mon Sep 17 00:00:00 2001 From: HameedFawwaz Date: Sat, 30 Aug 2025 16:14:09 -0600 Subject: [PATCH 1/4] Added Airframe guides --- src/airframe.md | 17 +++++++++++++++++ src/solidworks.md | 10 ++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/airframe.md create mode 100644 src/solidworks.md diff --git a/src/airframe.md b/src/airframe.md new file mode 100644 index 0000000..2aee7a6 --- /dev/null +++ b/src/airframe.md @@ -0,0 +1,17 @@ +# Intro to the UAARG Airframe Subteam + +Hello and welcome to the UAARG Airframe Subteam! This page it to serve as a guide for you to learn about who we are and what we do. + + +At UAARG Airframe, we do a lot of things, some of which include aero design, electromechanical design, and manufacturing. There are tons of things you can learn at your time with the UAARG Airframe team, but not all of them can encapsulated in a single guide so I will be primarily including resources to introduce you to the basics of what we do at UAARG Airframe. + + +## Some things you should be familiar with + + - SolidWorks (See [this](/guide/src/solidworks.md) for a SolidWorks Guide) + - 3D Printing + - [Basic Aerodynamics](https://www1.grc.nasa.gov/beginners-guide-to-aeronautics/learn-about-aerodynamics/) + - Basic Structural Analysis + - Common Hand Tools + + diff --git a/src/solidworks.md b/src/solidworks.md new file mode 100644 index 0000000..733c2fc --- /dev/null +++ b/src/solidworks.md @@ -0,0 +1,10 @@ +# Intro to SolidWorks + +This is a quick reference guide to videos and other resources to allow you to learn about SolidWorks. If you do not have a SolidWorks license, feel free to contact one of the Airframe subteam leads and they will get you access to a SolidWorks License. + +## [Video Series](https://www.youtube.com/watch?v=2sSgkW0MhBw&list=PLROUP1bV8REQmZgDTTJ0JCanXS8uySo-4) + +## [Text Guide (From SolidWorks)](https://my.solidworks.com/solidworks/guide/SOLIDWORKS_Introduction_EN.pdf) + +You don't have to go through the entirity of these guides, but these serve as good introductions to SolidWorks and CAD. These serve as good resources for you to learn how to use SolidWorks so that you can apply it for when you go and design parts and assemblies. + From d60ae59410baa464456bbb07ed9d6166c6c40951 Mon Sep 17 00:00:00 2001 From: HameedFawwaz Date: Tue, 16 Sep 2025 17:03:24 -0600 Subject: [PATCH 2/4] Added instructions for using Gazebo in SITL --- src/sim.md | 76 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 19 deletions(-) diff --git a/src/sim.md b/src/sim.md index 595b4e9..a85b9d6 100644 --- a/src/sim.md +++ b/src/sim.md @@ -8,18 +8,12 @@ scripts or MavLink connections! OS: Ubuntu 22.04+ (Or equivalent to it, WSL will also work, please note that some functionality in WSL is limited) -## Create Working Environment for your simulator It is recommended to enclose -your simulator in its own directory for ease of use. +## Create Working Environment for your simulator +It is recommended to enclose your simulator in its own directory for ease of use. -## Installing APM Planner (for Ubuntu Users) +## Installing QGroundControl -Follow through the Ubuntu 22.04 LTS installation from here: -https://github.com/ArduPilot/apm_planner?tab=readme-ov-file#linux - -## Installing QGroundControl (For WSL Users) Unfortunately there are connection -issues over UDP for APM Planner so for now you can just run QGroundControl - -https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html#ubuntu +[https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html#ubuntu](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html#ubuntu) After installing QGC (QGroundControl): Go to application settings, and then network settings. Add a connection via UDP and make the address 127.0.0.1:14551 @@ -28,8 +22,8 @@ and the connection port to be 14551 ## Set up ArduCopter SITL ### Set up the build environment for ArduPilot - -#### Install required packages: +#### ubuntu +##### Install required packages: ``` sudo apt-get update @@ -37,19 +31,50 @@ sudo apt-get install git sudo apt-get install gitk git-gui ``` -#### Clone ArduPilot repository into the simulator directory +#### mac +##### install required packages +1. Install Xcode command line tools and homebrew (both likely already done) + + ``` + xcode-select --install + /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + ``` +2. Install required packages + + ``` + brew update + brew install genromfs + brew install gcc-arm-none-eabi + ``` +3. Install the latest version of gawk + + ``` + brew install gawk + ``` +4. Install pip (again, likely already done) + ``` + python -m ensurepip --upgrade + ``` + +### Clone ArduPilot repository into the simulator directory ``` git clone --recurse-submodules git@github.com:ArduPilot/ardupilot.git cd ardupilot ``` -#### Install required packages for SITL (Software In The Loop) +#### Install the required packages for SITL (Software In The Loop) +#### Ubuntu ``` Tools/environment_install/install-prereqs-ubuntu.sh -y ``` +#### Mac +``` +Tools/environment_install/install-prereqs-mac.sh +``` + > NOTE: This installation can be quite lengthy, don't exit out just because its > taking too long. Patience is a wonderful thing @@ -62,7 +87,7 @@ sudo reboot After your system has finished rebooting: -#### Build the code and configure it for ArduCopter +### Build the code and configure it for ArduCopter ``` ./waf configure @@ -70,7 +95,7 @@ After your system has finished rebooting: ./waf clean ``` -At this point, you can test if everything is working by running +At this point, you can test if everything is working by running. You most likely will need to reload the path for this to work (open a new terminal window) ``` sim_vehicle.py -v Copter @@ -102,15 +127,28 @@ Next you need to make these shell scripts executable chmod +x ./sitl.sh ./proxy.sh ``` +## Installing Gazebo (3D Simulated Environment for Simulating Imaging Scripts in Flight) + +Install Gazebo from binary, following the instructions from here: +https://gazebosim.org/docs/harmonic/install/ + +Follow these instructions for Gazebo Harmonic based on your OS: + +https://github.com/ArduPilot/ardupilot_gazebo/blob/main/README.md + + +Test out if the Gazebo SITL works by following the Usage instructions from the ardupilot_gazebo README.md + + ## Running the Simulator Open up 4 terminals 1. In the first terminal, run `./sitl.sh` 2. In the second terminal, run `./proxy.sh` -3. In the third terminal, run `./release/apmplanner2` -4. The fourth terminal is where you will be executing your scripts to run in - the simulator +3. In the third terminal, run QGroundControl or Gazebo (depending on what you are testing) + +The fourth terminal will serve as the place for you to run your python scripts. To run a python script, navigate to the root of the directory with the script. For example, navigate to the root of shepard and then you can run your scripts From c6d0808a5d2dda1f517011beac0254ac234ea257 Mon Sep 17 00:00:00 2001 From: HameedFawwaz Date: Sat, 18 Oct 2025 22:32:11 -0600 Subject: [PATCH 3/4] Added imaging simulation instructions --- src/sim.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/sim.md b/src/sim.md index a85b9d6..5020867 100644 --- a/src/sim.md +++ b/src/sim.md @@ -137,8 +137,46 @@ Follow these instructions for Gazebo Harmonic based on your OS: https://github.com/ArduPilot/ardupilot_gazebo/blob/main/README.md -Test out if the Gazebo SITL works by following the Usage instructions from the ardupilot_gazebo README.md +Test out if the Gazebo SITL works by running sitl.sh, proxy.sh, and the following: +``` +export GZ_SIM_SYSTEM_PLUGIN_PATH=$HOME/ardupilot_gazebo/build:$GZ_SIM_SYSTEM_PLUGIN_PATH +export GZ_SIM_RESOURCE_PATH=$HOME/ardupilot_gazebo/models:$HOME/ardupilot_gazebo/worlds:$GZ_SIM_RESOURCE_PATH +``` + +NOTE: If someone could find a way to properly implement this in a shell script that would be goated + +``` +gz sim -v4 -r iris_runway.sdf +``` + +and in the proxy.sh window, run the following: +``` +mode guided +arm throttle +takeoff 5 +``` + +If everything works, the drone in the gazebo simulator will take off + +### Imaging Simulation + +Go to Application Settings -> Video in QGroundControl and select UDP h.264 Video Stream and set the UDP URL to '127.0.0.1:5600' + +Then run the following + +``` +export GZ_SIM_SYSTEM_PLUGIN_PATH=$HOME/ardupilot_gazebo/build:$GZ_SIM_SYSTEM_PLUGIN_PATH +export GZ_SIM_RESOURCE_PATH=$HOME/ardupilot_gazebo/models:$HOME/ardupilot_gazebo/worlds:$GZ_SIM_RESOURCE_PATH +gz sim -v4 -r iris_runway.sdf +``` + +And in a seperate terminal window run: +``` +gz topic -t /world/iris_runway/model/mount/model/gimbal/link/pitch_link/sensor/camera/image/enable_streaming -m gz.msgs.Boolean -p "data: 1" +``` + +If everything works, you'll be able to see a video stream in your QGroundControl Window ## Running the Simulator @@ -148,6 +186,8 @@ Open up 4 terminals 2. In the second terminal, run `./proxy.sh` 3. In the third terminal, run QGroundControl or Gazebo (depending on what you are testing) +If you are running Gazebo, see the instructions to run gazebo in the installing gazebo instructions + The fourth terminal will serve as the place for you to run your python scripts. To run a python script, navigate to the root of the directory with the script. From 30c3837b6a3d677a5ac8cf025735c8cb69e920d4 Mon Sep 17 00:00:00 2001 From: HameedFawwaz Date: Mon, 1 Dec 2025 17:22:00 -0700 Subject: [PATCH 4/4] Updated sim.md docs --- src/sim.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/sim.md b/src/sim.md index 5020867..570e6a4 100644 --- a/src/sim.md +++ b/src/sim.md @@ -124,7 +124,7 @@ git clone git@github.com:uaarg/simulator-scripts.git Next you need to make these shell scripts executable ``` -chmod +x ./sitl.sh ./proxy.sh +chmod +x ./sitl.sh ./proxy.sh ./camera.sh ``` ## Installing Gazebo (3D Simulated Environment for Simulating Imaging Scripts in Flight) @@ -173,25 +173,28 @@ gz sim -v4 -r iris_runway.sdf And in a seperate terminal window run: ``` -gz topic -t /world/iris_runway/model/mount/model/gimbal/link/pitch_link/sensor/camera/image/enable_streaming -m gz.msgs.Boolean -p "data: 1" +gz topic -t /world/iris_runway/model/iris_with_gimbal/model/gimbal/link/pitch_link/sensor/camera/image/enable_streaming -m gz.msgs.Boolean -p "data: 1" ``` +If you change what world you are running or the model that contains the camera topic then you must change the topic to be whatever new topic you have + If everything works, you'll be able to see a video stream in your QGroundControl Window ## Running the Simulator Open up 4 terminals -1. In the first terminal, run `./sitl.sh` +1. In the first terminal, run `./camera.sh` if doing Gazebo Simulations 2. In the second terminal, run `./proxy.sh` -3. In the third terminal, run QGroundControl or Gazebo (depending on what you are testing) +3. In the third terminal, run Gazebo via gz sim -v4 -r +4. (Optional) run QGroundControl If you are running Gazebo, see the instructions to run gazebo in the installing gazebo instructions The fourth terminal will serve as the place for you to run your python scripts. To run a python script, navigate to the root of the directory with the script. -For example, navigate to the root of shepard and then you can run your scripts +For example, navigate to the root of shepard (or whatever directory you have your scripts in) and then you can run your scripts as follows: ``` @@ -201,6 +204,5 @@ PYTHONPATH=. python3 After the script is running, you will know if it is running if there is a print statement in your console saying that the connection has been established -To start flying the drone in the simulator, you will need to go into the -mission planner, set the mode to `Guided` and then arm the drone and it will +To start flying the drone in the simulator, you will need to go into QGroundControl, set the mode to `Guided` and then arm the drone and it will start flying.