-
-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
offboard::set_position_velocity_ned #1532
Comments
It's actually a bit confusing. I believe what the speed sets is the "feed-forward" term for the control. |
@happyzihao Could you elaborate on what do you man by too fast? Is it moving faster than the desired setpoint velocity? |
@happyzihao you can limit the speed using the param MPC_XY_CRUISE. The velocity that you add to the MAVSDK interface is a control feed-forward. |
Note to self: we should describe that better in the API docs. |
Thanks for your answers. In control, feed-forward usually used for disturbances or outer effects. How do you use velocity as feedforward? |
Without getting into the details of controls, what are you trying to do? |
I want the quadcopter to fly from its current point A to point B. I want to know what happens if vecotors AB and target velocity have different directions and we use the command set_position_velocity_ned(PositionNedYaw(B_north, B_east, B_down, 0),VelocityNedYaw(target_velocity_north, arget_velocity_east, arget_velocity_down, 0)). |
You want to fly from A to B, ok. And then you lost me. |
Thanks for your answer. What I am trying to say is that we can send target velocity and target position using the command set_position_velocity_ned. Conisder that a drone is at point A and we set point B as the target point and also we consider a target velocity vector for the dorne. If we use the command set_position_velocity_ned to send the target velocity and pont but the vector from point A to B has different direction with target velocity, then what happens? |
Ok, so I think the PX4 controller will go in a straight line between A and B. However, if you, for instance know that there is a strong wind coming from one side you could command the feedforward against that wind and therefore the controller would be able to resist the wind better (at least initially) because it doesn't need to be perturbed by the wind first to find out that it needs to correct for it, but instead you can fight it earlier. If your feedforward is not against wind but just wants to fly somewhere else, let's say to fly a round trajectory, then you will essentially fight the position controller, and you'll end up with something in between, based on your tuning and how strong your feedforward is. Does that make sense? |
Thanks. So I think when we send both the target velocity and target position, the output is a sum of the outputs of the separate position controller and velocity controller. Therefore, they can conflict with each other. |
Right. |
Hello,
In the funtion
Offboard::Result Offboard::set_position_velocity_ned( PositionNedYaw position_ned_yaw, VelocityNedYaw velocity_ned_yaw);
What does VelocityNedYaw mean? Average velocity in each direction ?
Actual flying, I set different VelocityNedYaw, the fly speed is always too fast.
Thanks.
The text was updated successfully, but these errors were encountered: