UAS Fork of the PX4 autopilot, with custom messages and modules for Project Girbal. Original repo can be found here; official PX4 docs can be found here. Good luck xx
-
Firstly, you install the Jmavsim simulator that we are using. Run the batch file
run-console.bat
after install. -
From the console that appears when you run the batch file, you want to clone our fork of the PX4 software (you're currently reading its readme). Make sure that you run a recursive clone as there are a lot of submodules in it:
git submodule update --recursive
-
In the batch console, run
make px4_sitl jmavsim
inside the Girbal-PX4-Fork directory. -
Download qgroundcontrol in Windows land, which allows you to control the drone/send commands to the sim.
The Girbal modules can be found in "/src/modules/GIRBAL_{module_name}", with the message definitions located in "/msg/GIRBAL_{msg_name}". Typically, each module will have a main .cpp file, a header file with definitions, and a CMakeLists.txt that tells the compiler about it. Message file are added as needed, and are used to communicate between modules. There are a plethora of predefined message files (read more about messaging here).
1 UWB Driver - Interfaces with the UWB module (DWM1000) to provide send and receive functionality. Additionally, calculates node distances based on received UWB data.
1.5 UWB Driver (Simulator) - A derivative of the first module that runs within the Jmavsim environment, using simulated GPS data in lieu of UWB data within the simulator.
To use module 1.5, once in the jmavsim environment call 'GIRBAL_Sim_Driver' and it should give the location to each node 5 times
2 Position Calculation - Converts the node distances calculated by the first module into a relative drone position that can be used for pathfinding.
3 Go Getter - Receives pathfinding goals from the algorithm and forwards them on to the PX4 autopilot. Disregards waypoints with old timestamps
- Anchor Distances - Contains an anchor ID, anchor XYZ position and its distance from the drone.
- Vehicle Position - Contains the relative drone XYZ position.
If you're having random build issues not related to the code (can't help you with that, get gud :p), the following may help:
git submodule update --recursive
- Runs a recursive update on any submodules in the repo
make distclean
- Cleans out any files associated with building the software