best way to make a helicopter?

Mr F
Posts: 1
Joined: Sun Jun 05, 2011 1:23 pm

best way to make a helicopter?

Post by Mr F »

Hi.
I try to recreate a helicopter behaviour using bullet.
If someone already tried it, can you please describe your method?

Currently I have a compound of hulls connected to two rotor shapes (main and tail) via hinges.
When I want the helicopter to fly up, I activate hingeMotor and apply such force to the rotor:
rotorAngVel * rotorAngVel * lift
where rotorAngVel is current rotor's angular velocity (created with motor) and lift is a constant.

Rotors are also have some angular damping to stop quickly when the motor is off.
The helicopter's body also has some significant angular damping, because without damping, it just starts to swing madly when applying any horizontal forces in air.

Such simple approach looks OK when launching the heli up and rotating it with the tail rotor around Y axis.

But, how is it better to make it move sideways and forward/backward?
I read that in real life such motions achieved with slightly rotating main rotor thus rotating the direction of its force.
However I tried to rotate the force I described with some small quaternions and it always looked very unrealistic.

Also I heard there is not only the way to control the power of rotor's lift by changing its actual angular speed, but also rotor's blade can rotate themselves changing the flow differently, thus slowing/accelerating the lift force. How such thing can be simulated?

Currently I don't need very realistic model, it would be nice just to achieve something believable-looking.
So if someone had an experience building a heli model with Bullet, it would be cool to hear how did you do it.
espais
Posts: 1
Joined: Fri Jan 27, 2012 9:37 pm

Re: best way to make a helicopter?

Post by espais »

i would be definitely interested in this as well...
monkeyman
Posts: 22
Joined: Sat Nov 26, 2011 5:41 pm

Re: best way to make a helicopter?

Post by monkeyman »

Actually the pitch of the blades are varied throughout the rotation by a mount called the swashplate, so the blades can for example develop more lift on the left side of the helicopter than the right. The controls of the heli shift this asymmetry to develop thrust laterally. The pitch can also be varied collectively for all angles, this controls the average lift. The actual blade speed is more or less constant no matter what you do.

You can certainly make a physical airdrag -> force on the blades model but I don't think that would work well with Bullet. For starters, you would have to spin the blades unrealistically slow or use a super high simulation frequency in the physics. You could probably also experience instability from the continuous hammering of the helicopter with impulses in opposing directions and the associated numerical unstability, but why not try :)

The easy way out is of course to just apply a force on the shaft with a total force vector that corresponds to the time-averaged result of the swinging blades at the particular cyclic and collective inputs.

Unless you're actually modelling breakable blades (in which case you're going down anyway fast) or do it for aerodynamic research, there won't be a difference and it would be more easy.

So conceptually you have a solid disk mounted on a solid shaft rigidly connected to the chassis. The disk gets a common upwards force (collective) and an additional lift at the rim at a particular angle. Don't forget the tail rotor, it is n't needed for stability in that model, but it is needed if you want to simulate the foot controls in the helicopter (left/right turn).

Oh, and after modelling this you'll realize it's pretty difficult to fly a helicopter ;)