Project

General

Profile

uavpos component

Ports

uav_input (out)

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 (in)

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.


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]


reference (in)

Data structure
  • struct ::or_rigid_body::state reference

    • 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::jerk > jerk

      • double jx

      • double jy

      • double jz

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

      • double sx

      • double sy

      • double sz


Services

set_saturation (attribute)

Inputs
  • struct ::uavpos::ids::servo_s::sat_s sat

    • double x

    • double v

    • double ix


set_servo_gain (attribute)

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

    • double Kpxy

    • double Kpz

    • double Kvxy

    • double Kvz

    • double Kixy

    • double Kiz


set_mass (attribute)

Inputs
  • double mass


set_geom (attribute)

Inputs
  • double J[9] Inertia matrix


set_xyradius (attribute)

Inputs
  • double rxy Maximum lateral thrust (N)


set_emerg (attribute)

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

    • double descent (default "0.1") Vertical acceleration for emergency descent (m/s²)

    • double dx (default "0.05") Position uncertainty threshold (m)

    • double dv (default "0.2") Linear velocity uncertainty threshold (m/s)

Set thresholds for emergency descent.

dx and dv represent the maximum uncertainty tolerated in the input state (in) for position (dx) and linear velocity (dv), measured as 3 times the standard deviation. By default, dx is 5cm and dv 20cm/s. Beyond that threshold, an emergency descent is started.

As long as the emergency descent is active, the position error or linear velocity error are cancelled (i.e. the desired roll and pitch are set to 0) and a vertical acceleration of descent (by default -0.1 m/s²) is requested. The descent is based on the mass only, with no feedback, as the state is considered invalid.


get_servo_parameters (attribute)

Outputs
  • struct ::uavpos::ids::servo_s servo

    • struct ::uavpos::ids::servo_s::sat_s sat

      • double x

      • double v

      • double ix

    • struct ::uavpos::ids::servo_s::gain_s gain

      • double Kpxy

      • double Kpz

      • double Kvxy

      • double Kvz

      • double Kixy

      • double Kiz

    • struct ::uavpos::ids::servo_s::emerg_s emerg

      • double descent

      • double dx

      • double dv


get_body_parameters (attribute)

Outputs
  • struct ::uavpos::ids::body_s body

    • double J[9]

    • double mass

    • double rxy


get_reference (attribute)

Outputs
  • struct ::or_rigid_body::state reference

    • 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::jerk > jerk

      • double jx

      • double jy

      • double jz

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

      • double sx

      • double sy

      • double sz


servo (activity)

Throws
  • exception ::uavpos::e_input

Context

Track a desired position


set_state (function)

Inputs
  • struct ::or::t3d::pos pos: Position

    • double x

    • double y

    • double z

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

    • double qw

    • double qx

    • double qy

    • double qz

  • struct ::or::t3d::vel vel: Linear velocity

    • double vx

    • double vy

    • double vz

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

    • double wx

    • double wy

    • double wz

  • struct ::or::t3d::acc acc: Acceleration

    • double ax

    • double ay

    • double az

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

    • double awx

    • double awy

    • double awz

  • struct ::or::t3d::jerk jerk: Linear jerk

    • double jx

    • double jy

    • double jz

  • struct ::or::t3d::snap snap: Linear snap

    • double sx

    • double sy

    • double sz

Context

Set the desired state


set_position (function)

Inputs
  • double x

  • double y

  • double z

  • double yaw

Context

Set the desired position


set_current_position (activity)

Throws
  • exception ::uavpos::e_input

Context

Set the desired position


stop (function)

Context

Stop tracking a desired position


log (function)

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

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

Throws
  • exception ::uavpos::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