ctu-mrs / mrs_uav_odometry

UAV sensor fusion in ROS, part of the "uav_core" package.

Home Page:https://github.com/ctu-mrs/uav_core

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MRS UAV Odometry

Build status Build Status

This package provides state estimation of the UAV dynamics based on sensor fusion of onboard sensors. The estimated states are:

  • lateral position
  • lateral velocity
  • lateral acceleration
  • heading
  • heading rate

Within the MRS UAV System, the resulting state estimate is used by the ControlManager for feedback control of the UAV. The provided odometry diagnostics topic is used by the Gain/Constraint-Managers for applying proper dynamics constraints and controller gains based on the current estimator type.

Bank of estimators

The odometry node maintains a bank of filters with independent hypotheses. Multiple sensors can be combined into a sensor group, which is input to one of the estimators. The estimators run independently and are multiplexed to obtain the main estimate. Only the selected main estimated is used for the feedback control. Here follows the list of selected estimators with their inputs.

  • "OPTFLOW"
  • "GPS"
    • horizontal: GNSS position
    • vertical: range finder height
    • heading: magnetometer
  • "OPTFLOWGPS"
    • horizontal: GNSS position, optic flow velocity
    • vertical: range finder height
    • heading: magnetometer
  • "RTK"
    • horizontal: RTK GNSS position
    • vertical: range finder height
    • heading: magnetometer
  • "LIDAR"
    • all states: 3-D LIDAR position and heading
  • "VIO"
    • horizontal: Visual Inertial Odometry position
    • heading: Visual Inertial Odometry heading
    • vertical: range finder height
  • "HECTOR"
    • horizontal: Hector slam position
    • heading: Hector slam heading
    • vertical: range finder height

Provided topics

The main estimator output currently used for control (in the custom UavState message type):

/uav*/odometry/uav_state

The main estimator output currently used for control (in the custom Odometry message type):

/uav*/odometry/odom_main

Particular estimator topics:

/uav*/odometry/odom_optflow
/uav*/odometry/odom_gps
/uav*/odometry/odom_optflowgps
/uav*/odometry/odom_rtk
/uav*/odometry/odom_lidar
/uav*/odometry/odom_vio
/uav*/odometry/odom_hector

Switching current estimator

rosservice call /uav*/odometry/change_odometry_source optflow

About

UAV sensor fusion in ROS, part of the "uav_core" package.

https://github.com/ctu-mrs/uav_core

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 97.2%Language:Shell 1.0%Language:Python 0.7%Language:C 0.7%Language:CMake 0.4%