APM關鍵姿態控制原始碼講解

2022-06-20 11:27:13 字數 2570 閱讀 3881

手控姿態增穩函式

vector3f            _angle_ef_target;       // angle controller earth-frame targets

vector3f            _angle_bf_error;        // angle controller body-frame error

vector3f            _rate_bf_target;        // rate controller body-frame targets

vector3f            _rate_ef_desired;       // earth-frame feed forward rates

vector3f            _rate_bf_desired;       // body-frame feed forward rates

大概流程:

rc訊號進入

rc訊號匹配成角度(-4500~4500度)

rc角度生成目標滾轉角、目標俯仰角、目標航向速率、油門比例

rc目標值轉換成ef目標值

ef目標值變成ef速率目標值

計算出ef_error

ef_error轉換成bf_error

計算出bf_rate速率目標值

bf_rate目標值傳入速率控制函式即pid

自穩模式解讀之初始化解讀

自穩初始化:

1)首先是判斷條件:解鎖&&著陸&&加鎖模式&&油門過高如果為真就返false

2)初始化目標高度為0

/// set_alt_target - set altitude target in cm above home

void set_alt_target(float alt_cm)

// stabilize_run - runs the main stabilize controller  執行主要增穩控制

// should be called at 100hz or more

static void stabilize_run()

float target_roll, target_pitch;

float target_yaw_rate;

int16_t pilot_throttle_scaled;

// if not armed or throttle at zero, set throttle to zero and exit immediately

//判斷是否解鎖或者油門是零  立即退出  重置積分i和油門置為零 

if(!motors.armed() || g.rc_3.control_in <= 0) else else else else else if (error < -linear_dist) else {

return error*p;

Pixhawk原始碼筆記七 姿態控制預覽

這裡,我們以高度保持模式為例,對姿態控制程式呼叫關係進行了詳細介紹。如有問題,可以交流30175224 qq.com英文參考 本節源自 姿態控制概覽.html 手動飛行模式,諸如自穩模式 stabilize mode 特技模式 acro mode 飄逸模式 drift mode 其程式結構如下圖 在...

行人姿態估計原始碼AlphaPose

機器環境 ubuntu16.04,cuda8.0 1.torch tensorflow 版本 首先跑的是torch版本,安裝了torch和tensorflow後執行程式出現如下錯誤 error in python2 corrupted size vs.prev size 0x000000000298...

Spring原始碼講解

spring註解方式的refresh中beanfactory.preinstantiatesingletons 過程 spring如果解決迴圈依賴問題,如何使用 快取。beanfactory.preinstantiatesingletons 初始化和例項化操作 迴圈beandefinitionnam...