Skip to content

MonashUAS/Girbal-PX4-Fork

 
 

Project Girbal PX4 Autopilot Fork

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

Setting up the dev environment

  1. Firstly, you install the Jmavsim simulator that we are using. Run the batch file run-console.bat after install.

  2. 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

  3. In the batch console, run make px4_sitl jmavsim inside the Girbal-PX4-Fork directory.

  4. Download qgroundcontrol in Windows land, which allows you to control the drone/send commands to the sim.

Developing for PX4

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).

Modules

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

Messages

  1. Anchor Distances - Contains an anchor ID, anchor XYZ position and its distance from the drone.
  2. Vehicle Position - Contains the relative drone XYZ position.

Fixing common issues

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

About

PX4 Autopilot Software - Girbal Fork

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • C++ 46.4%
  • C 40.5%
  • Python 5.4%
  • CMake 5.1%
  • Shell 1.3%
  • MATLAB 0.6%
  • Other 0.7%