Space Engineers

Space Engineers

Tigershark Helicopter
Lynnuxx  [developer] 28 Feb, 2016 @ 3:29pm
Rotor Assistant
I've added a RotorAssist module to the FlightAssist script.
Added upwards/downwards acceleration based on the gravity vector in the Transpose module.

The FlightAssist is based on the version 3.0 without working "cruise" mode but this mode is not feasible for this heli anyways.

The rotorAssist module has to be switched on first. It's off by default to prevent a drop of the simspeed on slower PCs (I still have simspeed 1.00).

Block naming rules
The motors of the main rotors (Two-Ended Rotors) need to have a " CW" (with space in front) in the name of the rotor turning clockwise and a " CCW" in the name of the rotor turning counter-clockwise.

Commands
In conformance to the existing FlightAssist script you can pass commands as argument to the programmable block. The commands are not case sensitive though I use it here for better readability.


RotorAssist On - Enables the rotor assistant and sets it to hovering (keep altitude)
RotorAssist Off - Disables the rotor assistant and sets the pitch to 0°

RotorAssist Climb <climbrate> - Sets the climbrate [m/s] of the helicopter (negative values mean descending)

RotorAssist Pitch <pitch> <direction> - Sets the cyclic pitch angle of the blades [°] and the direction [°] of the roll effect. The cyclic pitch angle of the Tigershark blades is limited to 2°.
A positive pitch value will lift the side that the direction points to, a negative will "drop" it. A direction of 0° means forward, 90° means right (clockwise when looking at the rotors from above).

E.g.:

RotorAssist Climb 50.0
Climb with 50 m/s. Remark: The Tigershark heli will just achieve 8 m/s.

RotorAssist Climb 0.0
Climb with 0 m/s = keep the altitude

RotorAssist Climb -3.0
Drop with 3 m/s

RotorAssist Pitch 2.0 0.0
RotorAssist Pitch -2.0 180.0 (same as above because both pitch and direction inverted)
Pitch the nose up with maximum rotation speed.

RotorAssist Pitch 5.0 90.0
Lift the right side up (=roll left) with maximum speed. Since the pitch angle is limited to 2.0 it's the same as "RotorAssist 2.0 90.0"

RotorAssist Pitch 1.0 315.0
Lift the left side and nose up with half (?) speed. 315° is 45° to the left.


Something you can try (rotor assistant on):

1)
Switch the rotor assistant to hover (Ctrl+4, key "4")
Switch the HoverAssist to "Roll" (Ctrl+2, key "2")
Use the cursor keys to pitch the nose of the heli down (or up).

See the helicopter accelerating while still keeping it's altitude. Of course, if the nose points down too much the altitude won't be kept anymore.

2) In creative mode only:
Spawn 20 tons of ice (Ctrl+Shift+F10, enter amount: 20000)
Press "t" to put the iceblock into your astronauts inventory. The 20 ton iceblock won't add to the mass of the helicopter when it's in the inventory of the astronaut.
Enter the heli and fly up some meters and switch to hover.

The pitch of the rotor blades will be around 4.5°. Remember the mass of the heli and the altitude.
Now press "i" and put the iceblock into the large container.

The pitch of the rotor blades will be higher now. Compare the mass and altitude :-)

3) As 1) but using cyclic pitch:
Switch the rotor assistant to hover (Ctrl+4, key "4")
Switch the HoverAssist to "Roll" (Ctrl+2, key "2")
Pitch the nose down via cyclic pitch (Ctrl+5, key "2") or up (Ctrl-5, key "3"), stop roll movement with (Ctrl-5, key "1")


See the helicopter accelerating while still keeping it's altitude. Of course, too much pitch cannot be compensated.
Have fun !



For programmers there might be some interesting techniques in the RotorAssist module:
- A method of finding the blade rotors on the subgrid of the main rotor. Only the main rotors need to obey a naming rule currently (see above). The detection should also work when several Tigershark helicopters are connected to the same grid.
- The error of the angle of the blade rotors caused by the high torque would interfere with the pitch control of the blades. The error is positive when the rotor velocity is positive and negative when the velocity is negative. To prevent problems the rotor velocity is always set to the same speed after the rotor has settled at its new angle (positive for CW blades and negative for CCW blades).
- Detection of a damaged or removed (rotor) block.
Last edited by Lynnuxx; 1 Apr, 2016 @ 3:06pm