Project

General

Profile

uavatt component

Ports

uav_input (in)

Data structure
  • struct ::or_uav::input uav_input

    • struct ::or::time::ts ts

      • long sec

      • long nsec

    • boolean intrinsic

    • optional< struct ::or::rb3d::force > thrust

      • double x

      • double y

      • double z

    • optional< struct ::or::t3d::att > att

      • double qw

      • double qx

      • double qy

      • double qz

    • optional< struct ::or::t3d::avel > avel

      • double wx

      • double wy

      • double wz

    • optional< struct ::or::t3d::aacc > aacc

      • double awx

      • double awy

      • double awz

Attitude/thrust control input.


wrench_measure (out)

Data structure
  • struct ::or_wrench_estimator::state wrench_measure

    • struct ::or::time::ts ts

      • long sec

      • long nsec

    • boolean intrinsic

    • optional< struct ::or::rb3d::force > force

      • double x

      • double y

      • double z

    • optional< struct ::or::rb3d::force_cov > force_cov

      • double cov[6]

    • optional< struct ::or::rb3d::torque > torque

      • double x

      • double y

      • double z

    • optional< struct ::or::rb3d::torque_cov > torque_cov

      • double cov[6]

Provides current wrench measurements.

This port contains the current wrench exerted by the UAV according to the propeller measurements and the geometric model.


rotor_input (out)

Data structure
  • struct ::or_rotorcraft::input rotor_input

    • struct ::or::time::ts ts

      • long sec

      • long nsec

    • enum ::or_rotorcraft::control_type control ∈ { velocity, throttle }

    • sequence< double, 8 > desired


rotor_measure (in)

Data structure
  • struct ::or_rotorcraft::output rotor_measure

    • sequence< struct ::or_rotorcraft::rotor_state, 8 > rotor

      • struct ::or::time::ts ts

        • long sec

        • long nsec

      • boolean emerg

      • boolean spinning

      • boolean starting

      • boolean disabled

      • double velocity

      • double throttle

      • double consumption

      • double energy_level


state (in)

Data structure
  • struct ::or_pose_estimator::state state

    • struct ::or::time::ts ts

      • long sec

      • long nsec

    • boolean intrinsic

    • optional< struct ::or::t3d::pos > pos

      • double x

      • double y

      • double z

    • optional< struct ::or::t3d::att > att

      • double qw

      • double qx

      • double qy

      • double qz

    • optional< struct ::or::t3d::vel > vel

      • double vx

      • double vy

      • double vz

    • optional< struct ::or::t3d::avel > avel

      • double wx

      • double wy

      • double wz

    • optional< struct ::or::t3d::acc > acc

      • double ax

      • double ay

      • double az

    • optional< struct ::or::t3d::aacc > aacc

      • double awx

      • double awy

      • double awz

    • optional< struct ::or::t3d::pos_cov > pos_cov

      • double cov[6]

    • optional< struct ::or::t3d::att_cov > att_cov

      • double cov[10]

    • optional< struct ::or::t3d::att_pos_cov > att_pos_cov

      • double cov[12]

    • optional< struct ::or::t3d::vel_cov > vel_cov

      • double cov[6]

    • optional< struct ::or::t3d::avel_cov > avel_cov

      • double cov[6]

    • optional< struct ::or::t3d::acc_cov > acc_cov

      • double cov[6]

    • optional< struct ::or::t3d::aacc_cov > aacc_cov

      • double cov[6]


Services

set_mass (attribute)

Inputs
  • double mass


set_geom (attribute)

Inputs
  • double mass Mass (kg)

  • double G[48] Mapping from propellers velocity² to wrench

Set mass and allocation matrix

This is a generic function for setting the geometric parameters of the controlled robot. See set_gtmrp_geom (function) for a specialized function for tilted multi rotors robots.


set_gtmrp_geom (function)

Inputs
  • unsigned short rotors (default "4") Number of rotors

  • double cx (default "0") X position of center of rotors wrt center of mass (m)

  • double cy (default "0") Y position of center of rotors wrt center of mass (m)

  • double cz (default "0") Z position of center of rotors wrt center of mass (m)

  • double armlen (default "0.23") Distance of rotors to the center (m)

  • double mass (default "1") Total mass (kg)

  • double rx (default "0") X rotation of the first rotor thrust vector (deg)

  • double ry (default "0") Y rotation of the first rotor thrust vector (deg)

  • short rz (default "-1") Z spin direction of the first rotor (1: ccw, -1: cw)

  • double cf (default "0.00065") Propeller thrust coefficient (N.s²)

  • double ct (default "1e-05") Propeller torque coefficient (N.m.s²)

Throws
  • exception ::uavatt::e_inval

    • string<128> what

Compute allocation matrix and inertia tensor for tilt rotors robots.

Generically Tilted Multi-Rotor Platforms (GTMRP) are made of a set of rotors evenly distributed in a horizontal plane. The rotors are tilted around an axis lying in the plane, all by the same angle but with alternating signs on the X axis. The spinning direction is also alternating.

This function is a specialization of the more generic set_geom (attribute).


set_wlimit (attribute)

Inputs
  • double wmin Minimum propeller velocity

  • double wmax Maximum propeller velocity


set_servo_gain (attribute)

Inputs
  • struct ::uavatt::ids::servo_s::gain_s gain

    • double Kqxy

    • double Kqz

    • double Kwxy

    • double Kwz


set_emerg (attribute)

Inputs
  • struct ::uavatt::ids::servo_s::emerg_s emerg

    • double dq (default "5") Attitude uncertainty threshold (deg)

    • double dw (default "20") Angular velocity uncertainty threshold (deg/s)

Set thresholds for emergency hovering.

dq and dw represent the maximum uncertainty tolerated in the input state (in) for attitude (dq) and angular velocity (dw), measured as 3 times the standard deviation. By default, dq is 5⁰ and dw 20⁰/s. Beyond that threshold, an emergency hovering is started.

The emergency hovering uses no feedback, as the state is considered invalid. Thus, stability is not guaranteed …​


get_servo_parameters (attribute)

Outputs
  • struct ::uavatt::ids::servo_s servo

    • struct ::uavatt::ids::servo_s::gain_s gain

      • double Kqxy

      • double Kqz

      • double Kwxy

      • double Kwz

    • double ramp

    • double scale

    • struct ::uavatt::ids::servo_s::emerg_s emerg

      • double dq

      • double dw


get_geom_parameters (attribute)

Outputs
  • struct ::uavatt::ids::body_s body

    • double G[48]

    • double iG[48]

    • double mass

    • unsigned short rotors

    • double wmin

    • double wmax

    • double thrust_min[3]

    • double thrust_max[3]

    • boolean init


get_reference (attribute)

Outputs
  • struct ::or_uav::input reference

    • struct ::or::time::ts ts

      • long sec

      • long nsec

    • boolean intrinsic

    • optional< struct ::or::rb3d::force > thrust

      • double x

      • double y

      • double z

    • optional< struct ::or::t3d::att > att

      • double qw

      • double qx

      • double qy

      • double qz

    • optional< struct ::or::t3d::avel > avel

      • double wx

      • double wy

      • double wz

    • optional< struct ::or::t3d::aacc > aacc

      • double awx

      • double awy

      • double awz


servo (activity)

Throws
  • exception ::uavatt::e_input

  • exception ::uavatt::e_geom

Context

Track a desired attitude


set_state (function)

Inputs
  • struct ::or::rb3d::force thrust: Thrust

    • double x

    • double y

    • double z

  • struct ::or::t3d::att att: Orientation

    • double qw

    • double qx

    • double qy

    • double qz

  • struct ::or::t3d::avel avel: Angular velocity

    • double wx

    • double wy

    • double wz

  • struct ::or::t3d::aacc aacc: Angular acceleration

    • double awx

    • double awy

    • double awz

Throws
  • exception ::uavatt::e_geom

Context

Set the desired state


stop (function)

Context

Stop tracking a desired attitude


log (function)

Inputs
  • string<64> path (default "/tmp/uavatt.log") Log file name

  • unsigned long decimation (default "1") Reduced logging frequency

Throws
  • exception ::uavatt::e_sys

    • short code

    • string<128> what

Log controller data


log_stop (function)

Stop logging


log_info (function)

Outputs
  • unsigned long miss Missed log entries

  • unsigned long total Total log entries

Show missed log entries


Tasks

main

Context