Arma 3
Realistic Auto Pilots
FatherSarge 13 Jul, 2018 @ 9:56pm
Autopilot suggestions
So, I'm not sure why for helicopters you made altitude and attitude two separate options, I guess I've gotten attitude to work kinda, but it's not how a system like this would need to work for arma to simulate real life. Your attitude hold is more of a stability augmentation system which is nearly useless for arma because of the sensitivity of controls and size of the maps.

The hold position seems to be kinda laggy as well. Like it's not being very responsive, the lack of bindable keys for hold position on/off kinda makes it pointless for controller/HOTAS players who don't have access to the mouse immediately.

Back to hold altitude/attitude though, a three-axis autopilot is more what arma needs for the desired result (heading hold with attitude which implies you are wanting to maintain airspeed), Devas autopilot has the same issue which I was trying to work with him on but to little avail unforuntately :( Three-axis would also need a fixed collective input (this is the main problem with autopilot mods)

I'd be happy to help out if you wanted to go that far as it's something I think has been sorely needed for helicopters in this game. You'd be welcome to test it out on our dedicated server as well. Always looking to help modders make their stuff better!
< >
Showing 1-15 of 17 comments
Blockdude  [developer] 13 Jul, 2018 @ 10:07pm 
I have plans as of right now to add CBA keybinds, so be looking for that in the next update.

As far as improving the system itself, how would a digital autopilot go about maintaining/calculating a pitch which would maintain airspeeds? And as far as a 'fixed collective input' are you saying the autopilot would take control of collective or just adjust it to maintain attitude (For level attitude and/or raising as well)? I'll try to work on the hold position as that is the autopilot function in this mod I am least happy with, but attitude seems weird too.
FatherSarge 13 Jul, 2018 @ 10:17pm 
So collective is less up/down and more engine power provided. With a nose down attitude and full power applied (collective all the way up) you increase speed.

You can actually find a point at any altitude where you will have full or any set amount of power applied and you can set the attitude such that you only increase speed and cancel your climb.

Try flying with kimi's hmd for a great visual representation of this, it gives you a digital VSI on the right side of the screen and you can play around with power applied, altitude, attitudes and airspeed.

I'm not a coder/modder so I don't really know how difficult this stuff is but in my mind a system to set an altitude (MSL, mean sea level, altitude above sea level), heading and airspeed would be beyond amazing... But almost as good would be a single key bind to "hold"(remember) the players current inputs, including collective input, thereby maintaining the player's current climb/descent/straight and level flight, heading, airspeed, etc.

I say remember because the main purpose for a system like this is to be hands off controls for a time to check the map, change radios, etc. I would hope the player would be able to do this as well in game (especially opening the map which currently cancels all player inputs on the helicopter)
Blockdude  [developer] 13 Jul, 2018 @ 11:22pm 
You see, just setting the users control and holding those would seem to work, but real autopilot doesn't work that way and secondly, ArmA (at least to my knowledge) cannot directly get user inputs from a script. (That is to say, this would need custom binds for the stick to do that).

Another thing is if the chopper was banked at all (or if this were DCS, if it was banked or had wind) then the attitude could not be held it controls were held (IE, banked would transition into an altitude hold)
Fox 14 Jul, 2018 @ 12:36am 
I think there is a discrepancy here between Trim and Autopilot.

Trim would hold the controls in a certain position to allow hands off flight whilst an Autopilot is an extension to Trim to allow further actions to be carried out automatically.

Altitude hold would allow you to bank the aircraft longitudinally and laterally and also apply anti torque rotor correction whilst the autopilot then utilises the collective to assist in altitude.

Attitude hold would pretty much control all 4 axis of flight inorder to maintain a constand bank and pitch angle.

Hover hold uses both rad alt input and gps/doppler information inorder to control all 4 axis of flight and hold an aircraft stable.

I'm sorry if it comes across that im trying to teach you guys how to suck eggs.

After having a bit of a flight around in the AH-9 with these modes i've noticed a couple of irregularities.

Attitude Hold - When inputting a postive collective input the aircraft pitchs downwards whilst when a negative input into the collective is carried out the aircraft pitchs upwards. This would not happen as the aircraft is taking its postion data from a gyro at this stage.

Altitude Hold - Currently works as advertised but it would be automatically cancelled after a significant lateral input. In some airframes this would just suspend the autopilot till the aircraft is level and then gain or lose the height required to get to the select datum.

Hoved Hold - Works well, maybe just needs to be tightened up a bit in the longitudinal and lateral axis. Will have to consult my avionic notes on whether altitude changes are affected by hover hold.

As mentioned by Fathersarge an ability to combine Alitutude hold and Attitude hold would be amasing or atleast some ability to trim the aircraft without using the advanced flight model.
Last edited by Fox; 14 Jul, 2018 @ 12:52am
Blockdude  [developer] 14 Jul, 2018 @ 1:06am 
I was under the impression an altitude hold in a helicopter would try to remove any bank and level you, as that is the only way it can maintain a set movement. If it were banked, wouldn't it just side-slip it's way until it started going another direction?
FatherSarge 14 Jul, 2018 @ 8:51am 
Hence my mention of this being less autopilot and more like a 2 axis SAS

I don't think it is possible to have arma actually replicate real world autopilots and SAS but it can maybe mimick them slightly.

I personally don't think maps in arma are big enough to even bother with trim. However after spending the night thinking about it I really do think some system to input airspeed, altitude, and heading and activate that, letting the script fly the helicopter until deactivated would be the way to go. If anything was possible, that might seeing as how I agree that no script is probably going to be able to take player inputs and hold them (not really how autopilots work true, but for the purposes of the game that would be more ideal given the distances we are talking about in an arma map)

If you can figure out the input method (airspeed, altitude, heading in a gui of some kind with activate and deactivate) that would open up a rediculous amount of possiblilites for the arma community, including autopilot flown search patterns and helicopter "autolanding" (safely bringing the helicopter down to a ~10ft hover on a selected point)

Additional notes on Fox's observations:

Attitude Hold: Because there is no collective friction to speak of in arma and for those that don't use HOTAS (analog throttle), the current attitude hold in any configuration immediately loses airspeed. I personally wasn't able to engage the attitude hold unless I was +/- 3-5 degrees of level

Altitude Hold: I did not get this to work. Attempted to activate in straight and level several times but no luck. I'm curious from Fox as to what consitutes the significant cyclic input he used to cancel it after activated.

Hover Hold: As I said, it worked but seemed rather sluggish and I agree it could be tightened

As to your question on altitude hold, I don't think such a system ("Altitude hold") really exists by itself. As part of a full autopilot where you input the altitude you'd like, sure, but alone it doesn't make a ton of sense because to maintain altitude you realy would need a full autopilot. This is where my confusion with the differentiation in the mod comes in. Attitude hold can essentially be used as an Altitude hold. All they both are is a 2-3 axis SAS, "holding" whatever the pilot gives it until the pilot changes it. It doesn't care about airspeed, altitude, or heading it just continues holding whatever the pilot has given it. So for an altitude hold you would just set the attitude to maintain that altitude (not in a dive, not in a climb) and the system will hold that.

I think a more robust attitude hold and axing the altitude hold would be a step in the right direction for a simple SAS. If you keep going with a full autopilot, that would blow my mind.
Blockdude  [developer] 14 Jul, 2018 @ 7:45pm 
Alright, after a day of working on it on and off, I have nearly completely redone Attitude and have modified Position for helicopters.

Attitude:
- Holds you vector of movement and speed in that vector.
- Holds your bearing as best as it can (Dont go to fast while aiming sideways and you're fine).

Position:
- Kind of like before but without it feeling like the EAC is half-asleep.
Fox 15 Jul, 2018 @ 5:48pm 
I worked for 10yrs as a Avionics Tech on AH1 Apaches so the following information is mostly from that in regards to autopilot. I'll try go through the systems without hopefully breaking any OPSEC.

Automatic Flight Control System (AFCS) - The AFCS recieves inputs from multiple systems onboard the aircraft and then these are processed in an FMC (Flight Management Computer).
The FMC then provide electrical inputs into the hydaulic servos which govern all 4 axis of flight.

The Apache AFCS has 4 functions.
a) Stability Command Augmentation System (SCAS) (Not required in Arma)
b) Attitude Hold
c) Altitude Hold
d) Automatic Stabilator Control (Not required in Arma)

Stability Command Augmentation System (SCAS) is comprised of two systems.
1. Stability Augmentation System (SAS) - Used to provide rate damping in pitch, roll, yaw and collective axis to compensate for external forces causing airframe movement (Not required in Arma)
2. Command Augmentation System (CAS) - Used to linearise aircraft response from inputs the pilots have commanded in the pitch, roll and yaw channels only (Not required in Arma)

Attitude Hold - Inorder to select attitude hold the aircraft must have be relatively level and with very little pitch.
There are 4 sub modes for attitude hold.
a) Attitude Hold - When engaged the aircraft will hold the current attitude and will maintain the attitude as a reference point. When movement is felt in the cyclic the aircraft will disengage the attitude hold and remain on standby until the no movement is felt in the cyclic then attitude hold will re-engage and will return the aircraft to the previous datum.
b) Velocity Hold - When engaged the aircraft will hold the current velocity. This could be in any direction of the horizontal plane. When movement is felt in either the cyclic or yaw controls then the velocity hold is disengaged. When cyclics and yaw controls are then released the velocity hold will re-engaged at the new velocity.
c) Position Hold - Can only be engaged at the hover. When engaged the aircraft will try to maintain a set position in 3d space. If movement is felt in any of the controls the aircraft will disengage position hold. When the aircraft again comes to the hover the position hold with re-engage and maintain that position.
d) Heading Hold - Will only engage at wings level. Will hold the aircraft in the current heading. If movement of the yaw or lateral movement of the cyclic is sensed then the aircraft will disengage heading hold. Once the aircraft returns to wing level flight with no yaw input the heading hold will re-engage.

Altitude Hold - When engaged this will hold the aircraft at the datum altitude whilst using only collective inputs. Large movements of the aircrafts collective controls will disengage the Altitude hold and will require the aircrew to reselect altitude hold when at the desired height.
There are two variants of Altitude hold.
a) Radar Altitute Hold (Above Ground Level) - This will only engage if the aircraft is flying sufficiently slow and low enough for the rad alt to be effective. This allows the aircraft to maintain a set altitude above the ground.
b) Barometric Altitude Hold (Above Sea Level) - This can be engaged at both slow and high speeds. This maintains the aircrafts height in relation to sea level. (Simplified idea of barometric) Barometric is also used when the Radar altitude hold mode has been selected and the aircraft exceeds the speed allowed for radar altitude hold. It is also selected when no radar source is available.

I made an error on my last post as i stated that a significant cyclic input had deselected the Altitude hold. This didn't happen ingame but instead the large cyclic input caused the aircraft to lose altitude and when returned to straight and level it maintained the new datum. This would have caused a real aircraft to disengage the altitude hold. This would not be due to the cyclic input but instead due to a large enough change in altitude detected by the aircraft.

The only Autopilot modes above which would make sense in ARMA is the Velocity Hold, Position Hold, Heading Hold and Barometric Altitude Hold.

Here is a nice US Navy course paper that is available online which explains the different functions of AFCS in both fixed and rotary wing.
http://www.courses.netc.navy.mil/courses/14009A/14009A_ch8.pdf
Last edited by Fox; 15 Jul, 2018 @ 5:49pm
Blockdude  [developer] 16 Jul, 2018 @ 4:49pm 
Wow, I didn't expect such a plathera of knowledge to be dunked on me! This is really good stuff to know.
I have taken your suggestion and added Heading Hold to the mod while modifing the existing ones to allow for a standby as the pilot adjusts the values manually.

Im going to have to give that PDF a read though, seems like it'll be a good one!

Thanks for all of this. The only bit of knowledge it seems to be lacking (for the topic) is the autopilot off conditions, but I assume those are pretty obvious (within reason)
Twitch 20 Aug, 2018 @ 4:00pm 
Hey, really awesome mod. One thing I'd like to see is an holding pattern autopilot for helicopters. Would be super handy being on station not having to fly a race track pattern manually.
Tarus 10 Sep, 2018 @ 1:19pm 
first of all love the mod keep doing great work

i would love an option to auto hover or automaticly set the thrust to hover thrust in the VOTL blackfish
What about a Combat Formations System? There is a mod by that name,but I want to just simply have an option that puts helicopters on even spacing with an option to kick out ,dubble the spacing between them,cap their speed to what ever I set at wp or my speed,and Echelon Right for landing. I want a "Velocity Hold-Go To Set Altitude" -set in a new medium sized window. Plus a Kick-out Horizontal X meters. Preferably by Sliders. Command Augmentation System (CAS) ,if implemented and used in all mods in Arma 3 - will have a very nice effect for all Air in Arma 3. I want a Position Hold option for keeping their (or my) place in formation. I will need a Position Hold with a dialed in set speed and a way to make sure they don`t fly into the helicopter ahead of them-they will need to be able to break hard and go-around.
Last edited by 76561198040606770; 9 Feb, 2019 @ 1:21pm
Millenwise 21 Feb, 2020 @ 9:18pm 
Hey Blockdude, I've just been getting back into a previous project and I'm using the keybindings to activate the auto pilot functions, but to turn them off I still need to go through the action menu. Are you able to set the bindings up to allow for them to be toggled off also?
Blockdude  [developer] 22 Feb, 2020 @ 6:14pm 
The bindings should be turning them on and off. Would you be able to tell me what autopliot modes this is the case for as well as if it is the case on both rotary winged and fixed wing? The bit of code I glanced at show it as a toggle, but this clearly isn't always working.
And thanks for letting me know, it makes me happy to hear people still use this mod! :)
Millenwise 22 Feb, 2020 @ 6:48pm 
I've only tested speed and altitude on fixed-wing. I'll let you know when I get around to testing with rotary, just doing a few other things at the moment. Plus, I did a quick test with a key bind (that failed) but my main use was to add Use Actions to them, and bind my HOTAS throttle to the Use Actions. The throttle wouldn't bind directly to the Auto Pilot commands.

And no worries, feedback is great, when it's constructive lol. It's good to have something like this available!
< >
Showing 1-15 of 17 comments
Per page: 1530 50