Hi, I have a RC boat running ardupilot (arduRover as a boat). It has 2 motors but no rudder so im using skid steer to control it, servo 1 = 73 and servo 3 =74. Everything works exactly as expected on autopilot, the boat speed is perfect and it turns well.
Where im struggling is with the handset. Using the stick to go forward, back, right or left it works fine. However, If i push full throttle and then turn right or left (so stick goes top left or right corner) , it mixes both the channels and volienty turns the boat. Even though i have limits on the end points on the controller and limited throttle max on autopilot.
It seems to mix forward and right together at full speed making boat agressive on the handset. Is there i way i can can adjust the rc controller or ardupilot settings to smooth out the aggression at the top corners of the handset.
Hopefully i have explained it well.
Which mode are you driving the boat around in? Probably Manual but maybe Acro?
Ideally it would be good to see an onboard log of the problem.
yes, in manual mode. I’ll post up the log file once im back tomorrow. Thanks
OK, in Manual mode the pilot is essentially directly controlling the throttle and steering so AP isn’t doing very much.
What might help is in “latest” we have a MANUAL_STR_EXPO parameter that allows reducing the steering response around the center of the stick position while maintaining the full range if the steering stick is pushed out to the edges. “latest” can be downloaded using MP’s Firmware Install screen after first pushing Ctrl-Q. Note that “latest” hasn’t gone through beta testing though so it is possible that there are bugs/issues with it.
Here is a video showing the boat in manual mode. You can see the forward speed and turn speed are fine when run individually. When running at full throttle and then hard left or right, you will see the motor on the opposite side of the turn, get much faster. The way i understand it (and correct me if im wrong) is in manual mode when you go full throttle and turn right or left, it takes the full throttle and the full turn speeds and adds them together. This then gives you this doubling of the throttle on one of the motors. So unless anything can be done on the handset, i cant work out how to stop this doubling up.
Im not sure MANUAL_STR_EXPO will help as the stick will be on the outer limits not as the centre.
Thanks for the video, that makes it pretty clear what you’re talking about… which is that the steering response varies with the input throttle while in manual mode. In general you might expect that with a skid steering vehicle, if you gave it full left stick while stopped or at full throttle it would turn at the same speed. If anything you might expect it to turn more slowly at full speed due to motor saturation but in fact the opposite is happening, the vehicle turns much more quickly with full throttle.
I think we need to determine if this is an input issue or an output issue which will require an onboard log.
I can think of a few possible causes:
- the ESCs don’t allow the motors to spin backwards or in opposite directions to each other so while stopped only one motor is spinning. I think this is the most likely cause.
- the ESCs are very non-linear meaning they produce much more thrust at the top end. For example they might provide thrust X at 50% but 4*X at 100%
- there is some mixing in the ESCs causing this effect. This is probably only possible if the vehicle has been setup as an Ackermann steering vehicle instead of a skid-steering vehicle
- there is mixing in the transmitter that makes it send a lower steering value when the throttle is at zero (this seems unlikely)
Ive tested the esc/motors over the weekend on this boat and a second boat and can confirm the following.
- The ESCs do allow the motors to spin backwards/opposite directions. used the old paper trick stuck over the motors to confirm if they forward or reverse.
- the escs are set to linear on flat line.
- im in skid steering mode only. 73/74
- there is no mixing in the transmitter. i can see from the channel monitor its working as intended.
I have 2 boats set up now that act in the identical way. In manual at full throttle and full steering the opposite motor goes twice as fast than expected. Its somehow mixing the full throttle and full steering together, giving 2x forward throttle on one side and 1x reverse throttle on the other. I have sent you a dm with the file and have the second boat bin if you want it.
Maybe sothing set up on the handset can help, just not sure.
Thanks for the parameter file.
I think the issue is that MOT_THR_MAX = 60 and this parameter limits the maximum throttle sent into the motor mixer meaning it limits the overall throttle, not the motors individual throttle.
If you’d never like to use the full power of the motors you could lower SERVO1_MAX, SERVO3_MAX and raise SERVO1_MIN and SERVO3_MIN.
ok, I see. I assumed MOT_THR_MAX would limit both motors individually. i’ll rework the servo limits with MOT_THR_MAX back at 100. Thanks