I’m trying to work out the best way to disable arming checks when in manual mode.
I want to have arming checks in Auto mode ( and other modes).
But in manual mode I want to bypass arming checks. My use case is I want to be able to drive my rover mower out of my shed without things like a GPS fix .
So far I haven’t found a lua script that does somethibg like this.
On a rover you can set
ARMING_NEED_LOC to 0. In this case you can arm without absolute known position. So you can arm in manual mode without GPS Fix. But the rover is not able to accept a switch to an AUTO mode as long as no GPS Fix or other position information is available.
Looks like you’ve probably found a solution but in any case, by default it should be possible to arm in Manual and Acro modes without a GPS. Please tell us if you find this isn’t true (and provide an onboard log if possible). The only issue may be if you have a fence enabled in which case the solution would be to enable the fence after the mower is out of the shed. If this is too inconvenient we could potentially modify the arming checks to make it more convenient.
Thanks yes seems to be okay. I have fence enable connected to a RC switch so I can disable them.. Although I would agree with Yuri’s comment about disabling them in manual mode.
I think it makes sense to remove the fence check for manual modes for both Copter and Rover now that we have the ARMING_NEED_LOC parameter. Because it’s safety related though it will need a discussion on one of the weekly dev calls I think.
@rmackay9 agree. I’ve been meaning to craft a script to do what amounts to that because I face similar issues along with many other Rover users. I get around it because I use very high end GPS receivers and antennas, so it rarely is an actual issue for me, even in a garage.
Making this the firmware standard makes sense. I am very busy with work right now but will try hard to make any dev call where the topic is on the agenda.
I’m talking specifically about Rover’s MANUAL mode only, which is unique by comparison to Copter, as it is pure RC passthrough of throttle and steering. I think there is a compelling reason to make it position independent, or at least have an option bit to do so without wasting an aux switch on it.
I think what @LupusTheCanine and @khancyr are suggesting is the conservative approach that we took with Copter. The thinking was, “if we don’t know where we are then we can’t be sure if we are inside or outside the fence so it’s best to not allow the vehicle to move”.
I think with the new ARMING_NEED_LOC parameter we can still allow this behaviour because the user could set the parameter and then the vehicle would definitely not arm if it doesn’t know its position. If the vehicle knows its position and it’s outside of the fence then we would fail an arming check.
So the suggestion is not to completely turn off the fence arming check in Manual mode but rather to only check the fence (in Manual mode) if the vehicle has a position estimate. If it doesn’t have a position estimate we allow it to arm.
I think if the user wants to bypass a fence they should disable the fence. If the user doesn’t disable the fence they may get a nasty surprise when the vehicle gets position. If we don’t know if it is safe to arm we shouldn’t arm.
I see, so you’re concerned about the case where the fence action is, for example, RTL which could trigger the moment the vehicle gets a position estimate. So (assuming the user had manually set the home position so that it’s not the vehicle’s current position) the vehicle could suddenly takeoff in an unexpected direction.
This is a good point, we should make sure that the fence action can never trigger unless the vehicle has been within the fence at least once.
I think current behavior is better in most of the cases.
If the fence action is RTL and home is included we shouldn’t allow arming without home or we shouldn’t set the fence outside the fence without an option but set.