INAV 2.5 introduced rover and boat support. However, INAV setup on tracked vehicles like tanks or with differential steering was never really working like expected. Turning was possible but only in forward or backward movement – throttle had to be not-idle. And that meant that turning in place was not an option.
Luckily, the INAV Programming framework can be used to build a fully functional tracked vehicle/differential steering mixer. Here is a short tutorial on how to do it.
You will need:
- INAV compatible flight controller
- INAV 2.5.2 or newer
- tracked or other differential steering vehicle with two bi-directional ESC
Enable Reversible Motors Mode
- Setup Is Armed conditions in LC#0
- Setup Not Is Armed condition in LC#1
- Map Throttle RC channel to -500:500 range in LC#2
- Set it in GVAR#0 to be used in the mixer in LC#3
- You have to connect motor ESC to servo outputs, not motor outputs
- Servo#0 will be the left motor
- Servo #1 will be the right motor
- For each servo configure:
- If LC#1 evaluates true (not armed) set the constant value of 1460 (default neutral)
- If LC#0 evaluates true (armed) mix GVAR#0 as throttle input and Stabilized Yaw as a rudder input
That's all. With the mixer above, when armed, differential steering will be possible even without throttle forward/backward. The vehicle will be able to turn in place.
The shortcoming is that with such a mixer, INAV is not capable of controlling the throttle during RTH and the driver has to keep the throttle open for the vehicle to drive manually. This will change in INAV 2.6. Luckily, INAV will be able to control yaw, so it will steer home!