This repo is the development environment for the advanced-ekf ROS2 package. The EKF is used for state estimation and it uses the full dynamical system of a UAV, plus the input forces and torques given by the propellers. The advanced EKF leverages on the IKFoM Toolkit by the University of Hong Kong. Hopefully, it can achieve higher accuracy in state estimation.
Clone this repository and all its submodules.
# Clone the repository
git clone https://github.com/MAVTech-srl/advanced-ekf
cd advanced-ekf
# Clone submodules
git submodule update --init --recursiveThis project uses a Dev Container as development environment. The Dev Container is compatible for both AMD64 and ARM64 CPU architectures. To build and open the container, create the ad-hoc devcontainer.json running the provided bash script in the .devcontainer folder:
# This creates the devcontainer.json file used by VS Code
bash setup_devcontainer.shThen open VS Code and open the project in the container. The correct Dockerfile will automatically be selected based on the host capabilities.
The advanced-ekf ROS2 package comes with two data visualization tools:
- Plotjuggler (self-contained in Docker) to visualize both
.csvfiles and ROS2 messages in real time plot_csv.pyto visualize the.csvfile created by the advanced-ekf node whensave_logparameter insrc/advanced-ekf/config/default.yamlfile is set totrue. This script runs a Dash-Plotly webapp atlocalhost:8050in which it is possible to open the log files in thelogs/folder.