午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

Ardupilot的Copter的throttle_loop

 Coder編程 2021-04-27

copter的throttle_loop()任務(wù)定義在任務(wù)列表中

1 //頻率 50   最大運(yùn)行時(shí)間75us
2 SCHED_TASK(throttle_loop,         50,     75),
throttle_loop - 應(yīng)該以50HZ運(yùn)行
 1 void Copter::throttle_loop()
 2 {
 3     //更新throttle_low_comp值(控制油門(mén)的優(yōu)先級(jí) VS 高度控制)
 4     update_throttle_mix();
 5     
 6     //檢查自動(dòng)armed狀態(tài)
 7     update_auto_armed();
 8     
 9     
10     //補(bǔ)償?shù)孛嫘?yīng)
11     update_ground_effect_detector();
12     update_ekf_terrain_height_stable();
13 }
update_throttle_mix
1 //根據(jù)vehicle狀態(tài)來(lái)設(shè)置電機(jī)throttle_low_comp值
2 //當(dāng)油門(mén)高于懸停油門(mén)時(shí),較低的值優(yōu)先于飛行員/自動(dòng)駕駛油門(mén)而不是姿態(tài)控制,而較高的值則優(yōu)先于姿態(tài)控制而不是油門(mén) 
3 void Copter::update_throttle_mix()
4 {
5     attitude_control->set_throttle_mix_man();
6 }
AC_AttitudeControl_Multi
1 class AC_AttitudeControl_Multi
2 {
3     //設(shè)置所需的油門(mén)與姿態(tài)混合 (實(shí)際混合會(huì)在1到2秒內(nèi)轉(zhuǎn)換為該值 )
4     void set_throttle_mix_min() override { _throttle_rpy_mix_desired = _thr_mix_min}; 
5 }
ap_t
 1 typedef union 
 2 {
 3         struct 
 4         {
 5             uint8_t unused1                 : 1; // 0
 6             uint8_t unused_was_simple_mode  : 2; // 1,2
 7             uint8_t pre_arm_rc_check        : 1; // 3       
 8             //當(dāng)rc 輸入 pre-arm檢查已經(jīng)完全成功時(shí)為真
 9             uint8_t pre_arm_check           : 1; // 4  
10         //當(dāng)所有的pre-arm檢查(rc,accel,calibration,gps,lock)已經(jīng)被執(zhí)行時(shí),為真
11             uint8_t auto_armed              : 1; // 5       
12             //從開(kāi)始停止自動(dòng)執(zhí)行,直到油門(mén)上升
13             uint8_t logging_started         : 1; // 6       
14             //日志記錄開(kāi)始就為真
15             uint8_t land_complete           : 1; // 7       
16             //當(dāng)探測(cè)到著陸就為真
17             uint8_t new_radio_frame         : 1; // 8       
18             //當(dāng)來(lái)自radio的pwm數(shù)據(jù)來(lái)執(zhí)行時(shí),為真
19             uint8_t usb_connected_unused    : 1; // 9       // UNUSED
20             uint8_t rc_receiver_present     : 1; // 10      
21             //有rc接收機(jī)時(shí)為真
22             uint8_t compass_mot             : 1; // 11      
23             //正在進(jìn)行羅盤(pán)校準(zhǔn)為真
24             uint8_t motor_test              : 1; // 12      
25             //執(zhí)行電機(jī)測(cè)試時(shí)為真
26             uint8_t initialised             : 1; // 13      
27             //一旦init_ardupilot函數(shù)完成,就為真,到gps的擴(kuò)展?fàn)顟B(tài)不發(fā)送,直到這個(gè)完成
28             uint8_t land_complete_maybe     : 1; // 14      
29             //如果已經(jīng)著陸就為真
30             uint8_t throttle_zero           : 1; // 15      
31             // 如果油門(mén)桿為零且反跳,則為true,它確定飛行員是否在不使用電動(dòng)機(jī)互鎖時(shí)打算關(guān)閉 
32             uint8_t system_time_set_unused  : 1; // 16      
33             //系統(tǒng)時(shí)間已經(jīng)從cps設(shè)置,為真
34             uint8_t gps_glitching           : 1; // 17  
35             //GPS錯(cuò)誤影響導(dǎo)航準(zhǔn)確度
36             uint8_t using_interlock         : 1; // 20      
37             // aux switch motor interlock function is in use
38             //輔助開(kāi)關(guān)電機(jī)互鎖功能在使用
39             uint8_t land_repo_active        : 1; // 21      
40             // 如果飛行員超越著陸位置,則為true 
41             uint8_t motor_interlock_switch  : 1; // 22      
42             // 如果飛行員請(qǐng)求啟用電機(jī)互鎖,則為true
43             uint8_t in_arming_delay         : 1; // 23      
44             // 當(dāng)我們武裝但正在等待旋轉(zhuǎn)電機(jī)時(shí)為真
45             uint8_t initialised_params      : 1; // 24      
46             // true when the all parameters have been initialised. we cannot send parameters to the GCS until this is done
47             //當(dāng)所有參數(shù)已經(jīng)初始化,我們不能發(fā)送參數(shù)到GPS,直到這個(gè)完成
48             uint8_t unused3                 : 1; // 25      
49             
50             //當(dāng)指南針的初始化位置已經(jīng)設(shè)置為真,
51             uint8_t unused2                 : 1; // 26      
52             //輔助開(kāi)關(guān)rc_override是允許的
53             uint8_t armed_with_switch       : 1; // 27      
54             //使用arm開(kāi)關(guān)來(lái)armed
55         };
56         uint32_t value;
57 } ap_t;
update_auto_armed
1 //更新auto_armed標(biāo)志的狀態(tài)
2 void Copter::update_auto_armed()
3 {
4  if(ap.auto_armed)
5  {
6  }
7 }
baro_ground_effect.cpp
1 void update_ground_effect_detector(void);

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多