The online racing simulator
Better Mechanism for Steering Input / Output in Sim Racing ?
This post is not LFS-specific. Any real-time driver-in-the-loop vehicle dynamics sim (game for entertainment, digital training environment or industrial-level simulation) applies.

Let's take a look at how the steering input / force feedback output system works in today's sim.

While the car is moving, force is somehow generated in the steering geometry, and that causes some torque on the steering column... Wait a second, there's no physical steering column model. The force goes into a feedback port which passes non-hardcoded value to the hardware driver, where another (maybe more than one) multiplier applies before the real-life hardware from some random manufacturer takes the action using some unknown type of motor/transmission. How much torque do we actually get on the real-life device ? How much should we get ? The system gives no answer (other than a percentage).

Electric motor which powers the hardware’s action can be complicated. The input-output function may be not linear, and is power-source-dependent. A small motor running on its edge may be very sensitive to rotating speed and the output torque under the same input signal may vary greatly. The simple percentage output from the sim can’t deal with these issues. I don’t know if the hardware drivers do anything about it.

There's more to worry about. The real-life gaming wheel has some (rotational) inertia, but nobody knows how much inertia it actually has. Powered by the same motor/transmission, a heavy (of high rotational inertia) wheel would react slower than a light one when rotating freely. But when you hold it still this causes no difference. The steering control mechanism we have now is blind to this effect, which contributes to the great difference of dynamic characteristics among different wheel models (even if we only compare those “powerful enough” ones). Aftermarket modifications makes it more complicated.

As we can see, no matter how realistic the physical engine/model is, the force feedback effect you actually get in your hands has been modified/filtered/converted/remapped for multiple times in uncontrolled ways before it finally reaches the player. How realistic the force feedback wheel experience is does not only depends on the quality of the physics simulation or the power of your wheel hardware, but also the input/output mechanism that connects the two worlds, which should be more than “23%*120% to the left”.

Ideally, hardware manufacturers and sim programmers can work together to build a more solid/direct/precise connection between the real-world device and the digital simulation. But I guess a more real-life approach would be some geek working alone.

I’m wondering if any work has been done before (successfully). Is what we have in LFS (or whatever sim you can buy from the market) the best we can get ? Or there is already some protocol/design which is better, but just not as popular and well-supported as the standard FFB system due to economic issues ?
The signals used for force feedback specify output as an amount of torque, if all the virtual forces are correctly calculated then the actual forces at the wheel should also be correct.

Most wheels use calculated PWM values to vary torque output which would be accurate to within a few percent and a few high quality wheels use torque sensing for motor control so torque output should be near perfect with these.

Inertia is a problem, torque sensing effectively cancels it but only within the limits of the feedback drive train (motor, gears etc), without torque sensing it has to be cancelled by the position sensor and clever firmware with the same kind of drivetrain limitations.

Drivetrain limitations are usually due to speed and acceleration, usually the motors are simply to small so there is lag while they get up to speed. Direct drive should be the solution as it cuts drivetrain inertia to the minimum but I've not heard of a direct drive wheel that feels good (please CMIIW), the simply solution is more power but that probably means lots of injury claims too :/

Saying that, I've tried a few wheels that where simply wrong, the force feedback protocols allow manufacturers to send any kind of signals they like and many chose to do things their way instead of using the simple actual values provided by the protocol. Also, many games do screwed up things with force output, don't know if this is something to do with physics clock rates as the linkage forces are simple to get and a very few calculations give the output at the steering column with everything accounted for.
I think wheels should have a second set of motors which move the whole steering column around (as opposed to just rotating the wheel I mean - 6DOF would be ideal, but just moving it forwards and back would be an improvement).

Games such as LFS, with no 'canned' effects can quite often feel a little bland, as they're only transmitting torque force at the the steering rack to the wheel, wheras its obvious to anyone who has ever even sat in a car that you get a lot of bumping transmitted from the body to the steering column which have nothing to do with torque forces at the wheel (as the steering column is fixed to the chassis).

'Canned' effects can try to recreate this bumping force by adding blips of torque to the wheel and if done well and subtly, can give things a little more immersion, but a seperate set of force motors to physically move the steering column around would be so much better.
Quote from stan.distortion :The signals used for force feedback specify output as an amount of torque, if all the virtual forces are correctly calculated then the actual forces at the wheel should also be correct.
...

[ Edit: Can't confirm on this. Any one knows some details ? ]

Looks like my info was wrong. Didn't know that you can actually send hard-coded torque via the standard protocol without specific game-driver support. I thought those sensors were only used by the wheel driver itself to monitor the action and reduce the instability of motor's output. Sorry for not doing my homework well.

So, if the hardware is in good shape, and everything goes very well in the software part, the "force multiplier" is a real multiplier for hard-coded torque, which should work in a completely linear way ? If yes, problem one solved.

Quote :Inertia is a problem, torque sensing effectively cancels it but only within the limits of the feedback drive train (motor, gears etc), without torque sensing it has to be cancelled by the position sensor and clever firmware with the same kind of drivetrain limitations.

Do the existing drivers actually do it ? If they do, how about aftermarket mods (bigger and maybe heavier wheels, etc.) ?

I understand that a torque sensor can simplify things. But (sorry in advance if this is silly) how can it cancels the inertia problem ? With a torque sensor in a loop that’s fast enough, you can apply whatever torque without worrying about inconsistency. However, how fast the wheel body reacts to the torque input still depends on its inertia. I know that if pre-calibrate the wheel using reading from torque sensor (or calculated PWM) and position sensor, you can “weight” the wheel and do adjustment (Can we call it inertia simulation ?) with this info. But again, do they actually do it ? Hyperactive's linked article mentioned that the author knows no consumer wheel which "simulates inertia" in 2011. So if they don't, can our sim take the job ?

Quote from Hyperactive :...
Also nice piece to read:
http://www.virtualr.net/why-ff ... es-not-work-by-leo-bodnar

Thanks for the link.

Was thinking about basically the same thing. But I thought using a soft link (like the “heavy spring” mention at the end of Leo’s article) for position between the two worlds would require the frequency to be too high, and I stopped there. I’ll do some simulation work to see how hard it actually has be to give acceptable experience.


@Crashgate3

Will definitely bring more realism/immersion to the sim. But that’s another topic.
That article makes a lot of valid points but IMHO the real issue of what he describes isn't in the way force feedback is done, as far as I can see its in the way tires are modelled. In a real car you do judge your cornering by the force exerted and not the angle (this was a real pain with power steering systems until relatively recently) but this is because of the tires. The tread doesn't immediately respond to our wishes, first the sidewall has to load up then there will be a slight rebound as the cars rotational inertia is taken up etc. and if the tire breaks traction it becomes a real mess as balances have to re-establish, dampers have to catch up, body inertias balance out.... all this is fed back to us through the wheel in a real car, no reason why a sim cant do the same, the more accurately the tires responses are simulated the more accurate the feedback will be.

The force feedback specs cover reading force from the wheel and using it as an input, it also covers forces like spring, inertia, ramping and many more but implementing them correctly is up to the wheel manufacturer. He has a very good point in moving the servo type operation into the wheel's controller, wheels are effectively a servo but the PC is acting as controller which makes things very slow, orders of magnitude slower than even the cheapest industrial servo controller. I'd looked at device memory to do the same thing, ie. have the torque value for a few degrees in either direction stored so the values can change immediately the wheel is turned instead of waiting for the PC to respond to the new input but the force feedback protocols don't allow for this (at least, if they do I haven't figured it out yet). Latency is a big issue with controls, if there is any lag noticeable then the feedback signals will likely be lagging even more, noticed this to the point where it makes a game all but undrivable with feedback.
Quote from stan.distortion :That article makes a lot of valid points but IMHO the real issue of what he describes isn't in the way force feedback is done, as far as I can see its in the way tires are modelled.
...

1. That's another topic. We're doing reductionism in sim racing and should assume the tyre physics to be perfect when talking about steering wheel connection.

2. It already does to some extent. With the tyre physics we enjoy now it does take the tyre some time to balance, and the re-balance progress happens when you lock, spin, etc.


BTW, it's interesting that the real-virtual wheel link in LFS isn't 100% solid. When you hit a wall with fixed steering input, the digital wheel may let go and jump for a short time.
Quote from Keling :Looks like my info was wrong. Didn't know that you can actually send hard-coded torque via the standard protocol without specific game-driver support. I thought those sensors were only used by the wheel driver itself to monitor the action and reduce the instability of motor's output. Sorry for not doing my homework well.

So, if the hardware is in good shape, and everything goes very well in the software part, the "force multiplier" is a real multiplier for hard-coded torque, which should work in a completely linear way ? If yes, problem one solved.

The torque units aren't specified in the spec and I don't where they are required to be linear, I'm fairly sure linearity is part of the spec though, the docs are here: http://www.usb.org/developers/hidpage/ under ' Usage Tables for Physical Interface Devices'.

Quote :Do the existing drivers actually do it ? If they do, how about aftermarket mods (bigger and maybe heavier wheels, etc.) ?

The wheels own inertia more or less cancels out as a real race wheel would be a similar weight, many road cars have a heavy wheel to increase inertia and so give a smoother feel. As to drivers, it's been a few years since I dug into what effects are implemented and it wasn't great, maybe manufacturers are implementing signals more advanced than basic force and rumble type effects but most of what I have seen is the equivalent of 640x480 graphics.

Quote :I understand that a torque sensor can simplify things. But (sorry in advance if this is silly) how can it cancels the inertia problem ? With a torque sensor in a loop that’s fast enough, you can apply whatever torque without worrying about inconsistency. However, how fast the wheel body reacts to the torque input still depends on its inertia. I know that if pre-calibrate the wheel using reading from torque sensor (or calculated PWM) and position sensor, you can “weight” the wheel and do adjustment (Can we call it inertia simulation ?) with this info. But again, do they actually do it ? Hyperactive's linked article mentioned that the author knows no consumer wheel which "simulates inertia" in 2011. So if they don't, can our sim take the job ?

The wheels own inertia is very difficult to cancel out completely, it could be done with sensors in gloves but it really isn't needed as the same type of inertia exists in a real car wheel. On paper a torque sensor would only give a minutely better response that a perfect system using the position sensor, all it really does is make things simpler with less room for error. I was surprised by the part of the article about inertia implementation too, its in the force feedback spec and the maths to simulate inertia are very simple with a PC and far from impossible with an 8 bit microcontroller as found in most wheels. Don't know whats going on there, maybe there is a vicious circle of wheels not implementing it so games don't use so no need to implement it... etc.

FGED GREDG RDFGDR GSFDG