各位前輩好 有關arducopter的PosControl

各位前輩好

最近我在學arducopter裡的一些程式

目前在看PosControl這部分 看了幾次還是不太懂他是怎麼運作的

想請問各位前輩PosControl這部分所使用的演算法是什麼

網路找了很久都沒有相關資料

所以在這邊詢問各位前輩  謝謝

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • 你應該是指AC_PosControl class吧

    PosControl只是物件, 裡面有很多functions, 端看你指哪個function而定

    • 我後來有仔細看了一遍

      流程大概是

      1.pos_to_rate_xy 位置轉速度
      2.rate_to_accel_xy 速度轉加速度
      3.accel_to_lean_angles 加速轉成target_roll跟target_pitch
      4.最後把target_roll跟target_pitch送到姿態控制器
      不過我看不懂的地方為這一段
      _pitch_target = constrain_float(atanf(-accel_forward/(GRAVITY_MSS * 100))*(18000/M_PI_F),-lean_angle_max, lean_angle_max);
      float cos_pitch_target = cosf(_pitch_target*M_PI_F/18000);
      _roll_target = constrain_float(atanf(accel_right*cos_pitch_target/(GRAVITY_MSS * 100))*(18000/M_PI_F), -lean_angle_max, lean_angle_max);
      不知道為什麼是用arctan去轉成pitch_target跟roll_target  不知道是用什麼理論解的
    • 三角函數去算分向量

    • 前輩我推了一陣子還是不太清楚他們的關係

      為什麼_roll_target的arctan裡面需要使用cos_pitch_target

      小的數學不是很好在這邊請教一下前輩

    • 你畫個座標..訂出yaw,roll,pitch ...然後依照他的code logic去推..哪一邊是斜邊/鄰邊/對邊
      ex: cos = 鄰邊/斜邊 去推 應該能推出來

      鄰邊

    • 收到!!!!

      感謝建議!!!

    • 原來如此

      感謝前輩解答!

This reply was deleted.