How can I enable a thrust reverser on mid to low throttle on a boat?

Do I need to fork Ardupilot in order to enable a reverse thruster (servo controlled) for a Jet Drive? reverse Bucket
The motors can only spin in one direction. Could I just make a LUA script that turns the servo for input below mid throttle level, instead of reverse?
This is a video of it in action. Currently this is bound to a switch, however I am hoping it would be possible to configure ardurover/lua so that it natievely can be used for loiter and auto modes to reverse https://www.youtube.com/watch?v=HG1jJuqhzQ8

Unfortunately the current documentation (wiki) does not support the latest version of Ubuntu (with Python3) and prereqs ubuntu script appears to point to repositories that do not have release files and fails:

http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu
http://ppa.launchpad.net/mc3man/xerus-media/ubuntu
http://ppa.launchpad.net/terry.guo/gcc-arm-embedded/ubuntu

Attempting to ./waf configure at this point simply fails at building when looking for the arm repository “Could not find the program [‘arm-none-eabi-ar’]”.

At this point I’d be happy if someone could direct me as to how I can use a LUA script to mix a servo when pulling down on the throttle from mid point instead of reversing.

For posterity, Rhys has cooked up a LUA script that can leverage SITL on Gazeebo https://github.com/srmainwaring/ardupilot_gazebo_models/tree/feature/twin_jet_boat/config/twin_jet_boat

Also, my issue with ubuntu prereqs may have been to do with forking /rover instead of master.

Hi!
I have a similar setup but much more simple (for testing). i want to use a small dc waterpump with L298N dc motor driver, which works with pwm signals. the driver has reverse capabilities and the pump would probably run in the reverse direction but it will pump the water the same way. so this can not be used as reverse throttle. instead i would like to use a servo that turns the pump outlet in the 180° to the oposite direction.

@Andrew_Demczuk it would be cool to hear from you if your script works ? greetings

i managed to set up a second output in the mission planner servo output config for my servo…but it would need not a linear relationship min,trim,max but instead a bilinear one like throttle/pwm: a(-1/1100) b(-0.05/1100) c(0.05/2000) d(1/2000) or something…

And i did not find any capabilities of inputting curves for servo channels. Does that exist in ardupilot rover firmware?

alternatively a lua script could be made like: (with trottle going from -1 to 1)

if throttle < 0
servo.set_output (function_number, PWM=1100)
else
servo.set_output (function_number, PWM=2000)

but have to look into lua scripting first…have not done this yet