Is it possible to set up emergency return backup motors in Ardupilot Rover firmware?

Hello, seniors in technology.

I am writing this because I have a question.

I am making a boat with two motors using Ardupilot Rover firmware.

While making it, I was thinking about how to return to the return point in case of an emergency while the boat is floating on the water. I found out that if the main motor cannot rotate due to grass/trees, it cannot return.

In this case, a person has to go to the boat and rescue the ArduBoat.

So, the method I would like to suggest is to use four motors.

Two motors (named A and B for easy explanation) are always used, and if the main motors (A/B motors) are unavailable, the backup (emergency) motors (C/D motors) are driven to return to the return point.

The way to convert a motor to a backup motor is to use the channel of the remote controller.

Let’s take an example.

Motor A/B = Main motor. (Servo Output 1/3)

Motor C/D = Emergency motor. (Servo Output 2/4)

Controller channel 10 = Motor changeover switch. (RC IN 10)

Set up like this.

  1. Started operating using motor A/B for work.

  2. During work, motor A/B reports an abnormality in operation. (Forward motion is not possible/operation is not possible)

  3. Stop operating and turn on controller channel 10.

  4. The signal value changes to motor C/D and motor A/B does not operate.

  5. Return safely to the starting position using motor C/D.

  6. If safely returned to the starting position, repair motor A/B and turn off controller channel 10.

  7. Motor A/B can be used again.

I am thinking of this workflow. I lack a lot of software skills, so I tried to implement the technology using PWM relays for the workflow I had in mind.

However, after searching a lot, it seems that I can actually implement the workflow I have in mind using LUA scripts(?).

What do you think, seniors?

How can I actually implement this workflow?

Can I actually implement it using LUA scripts?

Thank you.






I can’t answer your question about the LUA skripts but I think also it will be possible.

But how you ensure that the backup motors always will do the job if the normal motors fail.

1 Like

The backup motor ensures normal operation.
For example, if the motor enters the water only in an emergency outside the hull.

How do you think the configuration I am thinking of would be possible?

I think, the controlling of our workflow with ardupilot is the smaller problem. I am more in doubt about the mechanical setup to ensure the backup motors always operational.
In case the normal motors are fishing grass and trees why should the backup motors not?
If you find the solution that the backup motors will work under any condition you can implement this to the normal motors and don’t need backups like this.

1 Like

Motors that run underwater can become unusable at any time due to external factors.
This applies to fishing boats, general vessels, guide motor hulls, and ArduBoats.

I have made a suggestion to reduce the time required for structural solutions.

The goal is to install a backup motor so that with just one press of a button on the remote control, the output is switched to the backup motor and you can return safely.

I 100% agree with this out of my experience as RC-skipper and also real skipper

This is my most interest in this posting, can you describe and maybe discuss this little more

As said before I am sure this can be done with ardupilot and LUA sript.

I done some experimenting with backup propulsion and steering systems, the best solution i found was either a water pump or an air propeller

2 Likes

Simply put, you just install an additional emergency motor. It is very difficult to keep a regular motor running all the time. You can design the hull so that the emergency motor is only used in emergencies.

I don’t know anything about Lua. I think if someone who knows more than me contributes to this article, I can explain it more easily.

Hi geofrancis! It’s nice to meet you again. I’ve been reading your posts and watching your videos. I’m currently struggling with the issue of the auxiliary propulsion. How did you solve the problem of transmitting the signal from the main propulsion to the auxiliary propulsion?

Did you use Arduino? Did you use Lua script?

I never got around to that, my original plan was to have a lua script that would let me select what group of motors I wanted to use, sail, akerman, tank steering or thrusters but when I went to test it the problem was I couldn’t change the outputs while the vehicle was armed.

my new plan is to to change all the outputs I need to lua then I can change them around in the script without changing parameters but I haven’t gotten around to that. I ended up splitting the project between my solar rover for power and communications and the tugboat for the marine issues.

what I would like to eventually do is have the boat set up with blheli ESCs with telemetry so that I can use a LUA script to read the motor RPM and current to detect if there is a problem and shut it down, my boat has steering thrusters and a rudder so running with a single main motor isn’t an issue, I was actually thinking about making that the default mode so it would run on the right motor + rudder and if there was an issue it would switch to the left motor, then if that failed it would switch to backup propulsion.

@geofrancis
I am currently considering three methods.
Maybe

  1. Using Arduino.

Connect the Servo 1/3 output of the FC to the Arduino.

Set the Servo 6 output of the FC to CH10 of the controller.

Connect the A/B/C/D motor ESC signal lines to the Arduino.

If the output value of Servo 6 (Arduino input value) is 1000 PWM (when the emergency button on the controller is not pressed), the Servo 1/3 output transmits the value to the A/B motor ESC connected to the Arduino.

In an emergency situation, if the output value of Servo 6 is 2000 PWM (when the emergency button on the controller is pressed), the Servo 1/3 output transmits the value to the C/D motor ESC, not the A/B motor ESC connected to the Arduino.

  1. Use Lua script.
    I don’t know Lua script very well. I believe it is possible.

  2. Use electronic relay controlled by PWM.

Connect Servo 1/3 output of FC to electronic relay.
Set Servo 6 output of FC to CH10 of controller.
Connect A/B/C/D motor ESC signal line to electronic relay.

If Servo 6 output value (electronic relay input value) is 1000 PWM (when emergency button is not pressed on the controller), Servo 1/3 output will send value to A/B motor ESC connected to electronic relay.

If emergency situation occurs, Servo 6 output value is 2000 PWM (when emergency button is pressed on the controller), Servo 1/3 output will send value to C/D motor ESC instead of A/B motor ESC connected to electronic relay.