Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator fdcl_uav uav_gazebo uav_control_plugin

Repository Summary

Description Python - Gazebo Simulation Environment for a UAV with Geometric Control
Checkout URI https://github.com/fdcl-gwu/uav_simulator.git
VCS Type git
VCS Version main
Last Updated 2024-09-02
Dev Status UNKNOWN
Released UNRELEASED
Tags python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
fdcl_uav 0.0.0
uav_gazebo 0.0.0
uav_control_plugin 0.0.0

README

TravisCI Docker
Build Status tag:ros2-iron

Python - Gazebo Simulation Environment for a UAV with Geometric Control

This repository includes Python codes for the position control a UAV in a Gazebo simulation environment, using geometric controllers.

Features

  • Developed using Python
  • Uses a geometric controller that works great with aggressive maneuvers
  • Uses Gazebo as the physics engine
  • Has a nice GUI for controlling the UAV
  • Estimator, controller, and trajectory generators are in their own ROS nodes. If you need to test your own estimator, controller, or a trajectory, you only need to modify the respective node.

Landing

Why Python?

  • Python makes developing/debugging easier and shorter (no compiling)
  • Can easily find open-source modules or libraries for different tasks

Which controller is used for the UAV control?

  • A geometric controller with decoupled-yaw attitude control is used
  • The controller is published in:
    @InProceedings{Gamagedara2019b,
        title={Geometric controls of a quadrotor uav with decoupled yaw control},
        author={Gamagedara, Kanishke and Bisheban, Mahdis and Kaufman, Evan and Lee, Taeyoung},
        booktitle={2019 American Control Conference (ACC)},
        pages={3285--3290},
        year={2019},
        organization={IEEE}
    }
    

Which estimator is used for the state estimation?

  • The estimator defined in the following paper is implemented here (except for the sensor bias estimation terms):
    @InProceedings{Gamagedara2019a,
        author    = {Kanishke Gamagedara and Taeyoung Lee and Murray R. Snyder},
        title     = {Real-time Kinematics {GPS} Based Telemetry System for Airborne Measurements of Ship Air Wake},
        booktitle = {{AIAA} Scitech 2019 Forum},
        year      = {2019},
        month     = {jan},
        publisher = {American Institute of Aeronautics and Astronautics},
        doi       = {10.2514/6.2019-2377}
    }
    
  • Matlab implementation of the above controller can be found at https://github.com/fdcl-gwu/dkf-comparison.
  • Note that the Matlab implementation has a delayed Kalman filter that has not been implemented here. Only the non-delayed parts inside DelayedKalmanFilter.m is utilized here.

Setting-up

Releases

The current main branch has been tested to work on Ubuntu 22.04, running ROS2-Iron. Check releases for different OS/ROS versions.

  1. v1.0: Ubuntu 18.04 with ROS-Melodic
  2. v2.0: Ubuntu 20.04 with ROS-Noetic
  3. v3.0: Ubuntu 22.04 with ROS2-Iron

:bangbang: If you are trying to use an older release, please checkout that release, and use setup instructions there. Each release has different instructions.

:bangbang: If you are running this on a virtual machine, please make sure that Gazebo can run at real-time speed. It is known that this simulation exhibits unintended behavior if the “real-time factor” of the Gazebo simulation is not closer to 1.0 (See issue #3).

Setting-up the repository

  1. Clone the repository.
    git clone https://github.com/fdcl-gwu/uav_simulator.git
    
  1. Update the submodules.
    cd uav_simulator
    git submodule update --init --recursive
    

Dependencies

You have to options here:

  1. Installing everything locally
  2. Running a docker container

Installing everything locally is probably the most straight-forward way, but you have to instal dependencies manually, or may have to deal with package version changes. Docker solves this by streamlining all the dependencies, up-to the OS. For example, if you are on Ubuntu 22.04 and want to test the ROS-Melodic version, docker will be the only way.

If you want to install everything locally, follow Local Install. If you want to run a docker container instead, skip to Docker Setup.

Local Install

  1. ROS2: this repository has been developed using ROS2 Iron, on Ubuntu 22.04. If you are on a different version of Ubunto or ROS, please check the previous releases before installing dependencies. We recommend installing the ROS2 full version.

  2. Python modules: these libraries must be installed in the system

    1. NumPy

File truncated at 100 lines see the full file

Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator
Repo symbol

uav_simulator repository

python simulator uav simulation controller ros gazebo control-systems unmanned-aerial-vehicle gazebo-simulator uavsimulation uav-simulator