⚠️ Attention please: This README is outdated.The MRS UAV System 1.5 is being released and this page needs updating. Please, keep in mind that the information on this page might not be valid.
This package contains high-level flight managers.
- integrates the control and tracking part of the MRS UAV pipeline
- dynamically loads feedback controllers and reference trackers plugins
- subscribes to the estimated UAV state and provides it to all loaded trackers and controllers
- runs the iteration of the currently active controller and tracker with every received state estimator message
- outputs the attitude control command to the HW API
- provides constraints to trackers through a common interface
- allows in-mid-air switching of feedback controllers and reference trackers
- provides common services for
- setting a reference
- setting a trajectory reference
- human-callable goto, goto relative, goto altitude, set heading and set relative heading
- hover
- emergency hover after which most of the provided services are disabled
- emergency landing - switches to emergency controller and tracker and lands as fast as possible
- failsafe landing - feedforward landing, only effective in small heights and low speeds
- escalating failsafe - the measures escalate when calling it repeatedly
- emergency hover
- emergency landing
- failsafe landing
- disarm
- transforming references and vectors between frames
- verifying that references are inside of the allowed safety area
- provides safety routines for checking
- position control error
- tilt control error
- yaw control error
- estimator innovation error
- missing estimator data
- the validity of desired references
- allows controlling the UAV using a ROS-compatible joystick
- allows controlling the UAV using RC through our pipeline
- the RC channels are picked up from HW API
- a relative reference is generated for the active tracker
- escalating failsafe can be triggered by a dedicated switch
- provides an obstacle bumper feature
- has priority over user-provided references
- for slow-flight only
- handles takeoff from the high-level
- checks for pre-condition which might result in takeoff failure
- switches to the right tracker and controller for the takeoff
- triggers takeoff
- switches to the right tracker and controller after the takeoff
- handles a regular landing from the high-level
- descends to a landing height (~2.0 m) using the currently active tracker and controller, given the current constraints
- switches to the right tracker and controller for the landing
- triggers the landing
- monitors the thrust output and decides when the UAV touched the ground
- provides a land home feature
- the UAV flies in the current altitude to its takeoff location and lands
- provides a land there feature
- the UAV flies to the desired position at which it lands
- monitors exceeding the maximum altitude
- triggers a priority descend if it exceeds the safety area ceiling
- monitors exceeding the maximum thrust
- triggers a landing if it exceeds a limit
- provides a flight timer
- triggers a landing if it exceeds a limit
- stores and provides sets of dynamics constraints for the trackers
- allows mapping each set of constraints to only some state estimators
- automatically switches to a fallback set of constraints if the current ones are not allowed
- provides a service for switching to a desired set of constraints
- stores and provides sets of gains for the Se3Controller
- allows mapping each set of gains to only some state estimators
- automatically switches to a fallback set of gains if the current ones are not allowed
- provides a service for switching to a desired set of gains
- provides the state estimation of the UAV
- dynamically loads default state estimator or custom user-made plugins
- publishes following topics:
- the
uav_state
topic that is used for feedback control in ControlManager- velocities in
uav_state
are in theheaded/frame_id
frame!!
- velocities in
- visualizable
odom
topic- velocities in
odom
are in thechild_frame_id
frame!! (follows the ROS convention fornav_msgs/Odometry
msg)
- velocities in
- current UAV height above terrain on topic
height_agl
(if available) - maximum height above terrain that the UAV can fly in (based on the current estimator used for control)
- the
- provides common services for
- switching of state estimator currently used in control feedback
- checks health of current state estimator and switches to a healthy one in case current estimator becomes unhealthy
- if no estimator is healthy, calls failsafe landing
- provides the following default TFs from the
fcu
frame (can be turned off/on or renamed by custom configs):fcu_untilted_origin
,world_origin
,local_origin
,stable_origin
,fixed_origin
,utm_origin
,mapping_origin_tf
(if a SLAM algorithm is running)
- publishes the delay of odometry produced by a SLAM algorithm (if available) on topic
map_delay
- additionally can provide custom TFs from
nav_msgs/Odometry
topics by adding them to thetf_sources
array in custom config- the msg can also be republished in another frame by adding the
frame_id
to therepublish_in_frames
array
- the msg can also be republished in another frame by adding the