-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Add Fixedwing path following as a separate controller state #21376
Conversation
2f2f7f3
to
61a8761
Compare
61a8761
to
793a8f4
Compare
7e5aec0
to
e3db31f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree on the separating it into the new control_auto_path() method (as opposed to control_auto_position()). Let's just be very careful with the state machine, that one is hard to see through anymore.
8296d02
to
2722d35
Compare
e0a1912
to
b2457d7
Compare
This commit separates offboard path following as a separate state inside the FW Poscontrol module. This is a cleanup on clearly defining fw pos control behaviors
b2457d7
to
cae9708
Compare
@sfuhrer Rebased and tested with ROS2: https://review.px4.io/plot_app?log=3e50cfeb-ffb5-41fa-9fab-ad5b797207c8
Fully agreed, the logic is no longer tractable. I think we should try to hash out the global variables so we can unit test the conditions.Should we revisit #21382 ? Also, would be great if we can finally get rid of pos_sp_triplets 😄 |
@sfuhrer I don't think the CI failure is related to this PR (happening on a multirotor) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, lets get this in and move on to your next one!
What of the triplets is annoying you most? Maybe we can find a way iteratively work towards a better interface. Eg we can starve out PositionSetpoint further, until we can completely delete it. |
Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
@sfuhrer For me it seems like a superset of all the information we need downstream, and a lot of the information is actually unused or not properly populated, depending on the state of the controller. |
* Separate offboard path setpoints as fixedwing pos control state This commit separates offboard path following as a separate state inside the FW Poscontrol module. This is a cleanup on clearly defining fw pos control behaviors * Update src/modules/fw_pos_control/FixedwingPositionControl.cpp Co-authored-by: Silvan Fuhrer <silvan@auterion.com> * Fix format --------- Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
* Separate offboard path setpoints as fixedwing pos control state This commit separates offboard path following as a separate state inside the FW Poscontrol module. This is a cleanup on clearly defining fw pos control behaviors * Update src/modules/fw_pos_control/FixedwingPositionControl.cpp Co-authored-by: Silvan Fuhrer <silvan@auterion.com> * Fix format --------- Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
Solved Problem
This PR adds an additional FW path navigation state, which uses position, tangent and optionally curvature to do path tracking.
Currently this was done by overriding
control_auto_position
, but since it is using more of the derivative setpoints, we thought it should be separated out as a separate modeThe behavior is as the following.
In offboard,
FW_POSCTRL_MODE_AUTO_PATH
FW_POSCTRL_MODE_AUTO
, which would end up usingcontrol_auto_position
Fixes #{Github issue ID}
Test coverage
Additional Context