fw_att_control is the fixed wing attitude controller.
fw_att_control <command> [arguments...] Commands: stop status print status info
fw_pos_control_l1 is the fixed wing position controller.
fw_pos_control_l1 <command> [arguments...] Commands: start stop status print status info
This implements the multicopter attitude and rate controller. It takes attitude
vehicle_attitude_setpoint) or rate setpoints (in acro mode
manual_control_setpoint topic) as inputs and outputs actuator control messages.
The controller has two loops: a P loop for angular error and a PID loop for angular rate error.
Publication documenting the implemented Quaternion Attitude Control: Nonlinear Quadrocopter Attitude Control (2013) by Dario Brescianini, Markus Hehn and Raffaello D'Andrea Institute for Dynamic Systems and Control (IDSC), ETH Zurich
To reduce control latency, the module directly polls on the gyro topic published by the IMU driver.
mc_att_control <command> [arguments...] Commands: start stop status print status info
The controller has two loops: a P loop for position error and a PID loop for velocity error. Output of the velocity controller is thrust vector that is split to thrust direction (i.e. rotation matrix for multicopter orientation) and thrust scalar (i.e. multicopter thrust itself).
The controller doesn't use Euler angles for its work, they are generated only for more human-friendly control and logging.
mc_pos_control <command> [arguments...] Commands: start stop status print status info
Module that is responsible for autonomous flight modes. This includes missions (read from dataman), takeoff and RTL. It is also responsible for geofence violation checking.
The different internal modes are implemented as separate classes that inherit from a common base class
_navigation_mode contains the current active mode.
Navigator publishes position setpoint triplets (
position_setpoint_triplet_s), which are then used by the position
navigator <command> [arguments...] Commands: start fencefile load a geofence file from SD card, stored at etc/geofence.txt fake_traffic publishes 3 fake transponder_report_s uORB messages stop status print status info
Controls the position of a ground rover using an L1 controller.
actuator_controls_0 messages at a constant 250Hz.
Currently, this implementation supports only a few modes:
- Full manual: Throttle and yaw controls are passed directly through to the actuators
- Auto mission: The rover runs missions
- Loiter: The rover will navigate to within the loiter radius, then stop the motors
CLI usage example:
rover_pos_control start rover_pos_control status rover_pos_control stop
rover_pos_control <command> [arguments...] Commands: start stop status print status info