5c09254a83 | ||
---|---|---|
.ci | ||
.circleci | ||
.github | ||
.vscode | ||
Documentation | ||
ROMFS | ||
Tools | ||
boards | ||
cmake | ||
integrationtests/python_src/px4_it | ||
launch | ||
mavlink/include/mavlink | ||
msg | ||
platforms | ||
posix-configs | ||
sitl_gazebo_fully_actuated | ||
src | ||
test | ||
test_data | ||
validation | ||
.ackrc | ||
.clang-tidy | ||
.gitattributes | ||
.github_changelog_generator | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
.ycm_extra_conf.py | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
CTestConfig.cmake | ||
Firmware.sublime-project | ||
Jenkinsfile | ||
LICENSE | ||
Makefile | ||
PULL_REQUEST_TEMPLATE.md | ||
README.md | ||
appveyor.yml | ||
eclipse.cproject | ||
eclipse.project | ||
package.xml |
README.md
PX4 Autopilot Extended to Fully-Actuated Multirotors
This is the repository for the PX4 autopilot with the enhanced ability to work with fully-actuated robots. It is based on the original PX4 firmware (current version branched from master on Jan 21, 2020) and supports all the functionality and airframes of the original PX4 in the same way. However, it additionally provides implementations of attitude strategies for fully-actuated multorotors that allow the 6-DoF flight. It includes the definitions for a hexarotor with all rotors tilted sideways and has been tested on several UAVs.
For more information and to access the publications, please visit the AirLab's website.
To access the original PX4 autopilot repository and website, please visit here and here.
How to use the firmware
For general PX4 functionality, please visit PX4 User Guide and PX4 Developer Guide.
To be able to compile the firmware, you need to first setup your system and install the toolchain. Then clone this repository and all its submodules:
git clone https://github.com/castacks/PX4-fully-actuated.git --recursive
Test that everything works fine using the guide on this page.
The current tilted-hex airframe is defined to have 30 degrees of side tilt, similar to what is described in our papers. To change the geometry for your airframe, you can modify the definition of the tilted hex or add your own definition. To add the new definition file, please consult the PX4 guides above. To modify our airframe, you can find it here.
After compiling the firmware and uploading it on your hardware (see here), choose Hexarotor x with tilted arms
airframe. This firmware also adds a set of parameters all starting with OMNI_
. To see the description of the parameters, please refer here. The most important parameter is OMNI_ATT_MODE
which supports the attitude strategies.
We have tested the firmware only with Pixracer. If you have flash memory issues when compiling for your hardware, one solution is to comment the geometries that you don't need in this CMakeLists file.
Simulation and more
More detailed guide will be incrementally added here. Please reach us directly or submit an issue on this repository if you have specific questions, concerns, feedback or bug reports.
To simulate using gazebo, you need to add the model and the world of your fully-actuated UAV to the firmware. Optionally you can modify the model files for our hexarotor (with all arms tilted for 30 degrees).
To enable simulation for our multirotor, copy the contents of the world
and model
folders from sitl_gazebo_fully_actuated
to the world
and model
folders in Tools/sitl_gazebo
. Now you can run the SITL simulation of our UAV using the following command:
make px4_sitl gazebo_hexa_x_tilt
If you get gazebo_opticalflow_plugin.h:43:18: error: ‘TRUE’ was not declared in this scope
, simply replace TRUE
with true
in Tools/sitl_gazebo/include/gazebo_opticalflow_plugin.h
line 43.
Disclaimer
Note that changing any of the parameters (e.g., the attitude modes) will affect the flight behavior of the UAV mid-flight.
Finally, we are still in the testing/development phase and the code is in no way fully tested or complete. Use the code at your own risk and please report any bugs or issues to help us make the firmware more useful for the users.
Acknowledgment
In the initial commits, the idea of how to extend PX4 to support 3-D thrust and fully-actuated vehicles have been taken from here.