How to realize Trajectory tracking with Vx Vy Vz

@Jaeyoung-Lim
Sorry to interrup, I send
ax_desired
ay_desired
az_desired by mavros acceleration setpoint.
In x and y direction seems that it woks fine, but in z direction drone will gradually decrease in altitude like a Oblique parabolic motion. ( The effect is obvious if az_desired < 0.5 ).

And here is my code: would you mind take a look, Is there something wrong ? ?
void acccontroller::setOffboardAccNED(double ax, double ay, double az, double yaw){
mavros_msgs::PositionTarget acc{};
acc.coordinate_frame = mavros_msgs::PositionTarget::FRAME_LOCAL_NED;
acc.type_mask =
mavros_msgs::PositionTarget::IGNORE_PX |
mavros_msgs::PositionTarget::IGNORE_PY |
mavros_msgs::PositionTarget::IGNORE_PZ |
mavros_msgs::PositionTarget::IGNORE_VX |
mavros_msgs::PositionTarget::IGNORE_VY |
mavros_msgs::PositionTarget::IGNORE_VZ |
mavros_msgs::PositionTarget::IGNORE_YAW_RATE;
acc.acceleration_or_force.x = ax;
acc.acceleration_or_force.y = ay;
acc.acceleration_or_force.z = az;
acc.yaw = (yaw / 180.0f * M_PI);
AccPub_.publish(acc);
///////////AccPub_ = nh_.advertise<mavros_msgs::PositionTarget>(“mavros/setpoint_raw/local”, 1);
}

@sudo Acceleration setpoints are not supported yet in px4. You can track the progress here

@Jaeyoung-Lim wow ,thank you for your quick reply ~~
I am working on MPC recently(Model Predictive Controller)
I looked into your geometric_controller and find that you get BodyRate_ from acc_desired, so I followed this, but it didnt work, drone just droped to ground as soon as the obtained BodyRate is published. Am I missing anything ?

I use this :
void geometricCtrl::computeBodyRateCmd(Eigen::Vector3d acc_desired){
q_des = acc2quaternion(acc_desired, mavYaw_);
cmdBodyRate_ = attcontroller(q_des, acc_desired, mavAtt_);
}

@Jaeyoung-Lim I will take a look into the link,Thanks~ , You always solve my problem