Request for Feedback on New Guided Control Mode

Hi all,

I’ve been experimenting with a control concept where horizontal movement is commanded via acceleration targets (X/Y) to improve system responsiveness, while vertical movement is controlled via absolute position (Z). This approach is useful for external guidance systems or reinforcement learning controllers that issue force-like commands for quicker dynamic response.

To test this concept, I created a prototype mode in ArduCopter called AccelXY_PosZ by extending the Guided mode.

Summary of what I implemented:

  • A new GuidedSubMode: AccelXY_PosZ
  • Modified ModeGuided::set_mixed_accelpos() to:
    • Accept X and Y acceleration targets (in m/s²)
    • Accept a Z position target (in cm)
    • Set yaw / yaw_rate optionally
  • Sets PosControl target values accordingly
  • Ignores velocity and Z acceleration
  • Logs are written using existing Log_Write_Guided_Position_Target() API

Here is the prototype branch:

Questions:

  1. Is there a preferred way to structure this kind of control mode?
  2. Is there interest in the community for enabling more flexible control over the type_mask settings in guided mode messages?

Appreciate your time and looking forward to your thoughts!

Thanks,
Portes

Can you rebase your work on top of master? And create a PR? It will be easier to review and comment on.