ZJU-FAST-Lab / Fast-Drone-250

hardware and software design of the 250mm autonomous drone
1.42k stars 275 forks source link

请问Fast-Drone-250的位置控制和速度控制是否简化了? #86

Open lminjy opened 2 months ago

lminjy commented 2 months ago

我的基于ego-planner的探索算法给出的是PositionCommand.msg,它设定了目标点的期望位置、速度、加速度,我的仿真环境需要的控制指令是mavros_msgs/AttitudeTarget,按照px4飞控的多旋翼的控制架构来说,仿真环境里的飞控应该是有相应的角度、角速度控制器,所以为了控制仿真环境里的四旋翼,我需要实现对应的Position Controller、Velocity Controller和Acceleration and Yaw to Attitude,并在必要的地方加入前馈控制以使四旋翼在目标点处有期望的速度、加速度,可是我在Fast-Drone-250的px4ctrl只找到Acceleration and Yaw to Attitude(是在PX4CtrlFSM.cpp中controller.calculateControl计算吧?),请问是否存在对应的Position Controller和Velocity Controller?我该如何找到它们呢? calculateControl 控制架构

lminjy commented 2 months ago

好像是有Position Controller和Velocity Controller,但是和我理解的不太一样,按照我的理解(如方框图所示): 位置控制器的控制输出量 $des\_p=k_p(des.p-odom.p)$ 速度控制器期望值(控制输入量) $des\_p+des.v-odom.v$ 速度控制器的控制输出量 $des\_v=k_v(des\_p+des.v-odom.v)$ 因此 $des\_acc=des.a + k_v(des\_p+des.v-odom.v)=des.a + k_v(des.v-odom.v)+k_v*k_p(des.p-odom.p)$ 所以,您是把kvkp合成一个参数是吗?此"kp"非常规的kp是吗? Position Controller and Velocity Controller 方框图