To calibrate a device, you generally need to feed as input to it a known signal / value. The word calibration here probably means to measure and correct the bias and scale factor / sensitivity errors of the sensor.
The only real requirement is that you need at least two different known input to be fed to a sensor to calculate its bias and scale factor / sensitivity. The sensor is assumed to be an ideal linear sensor. then you need to solve for the equation
output = m * input + c. Where
m is the scale factor and
c is the bias. To solve for these values, you need two known values of
input and the corresponding measured values of
By standing still, you are feeding a
0 deg/s (not really) input to the sensor. With this, gyroscope bias can be measured and corrected, but not sensitivity/scale factor.
When standing still, the gyros should pick up the component of earth's rotation parallel to their sensitive axis.
If the sensor is good enough to pickup earth's rotation rate, You need to position the gyro in many (6?) different positions to calibrate it.
Just as earth rotation rate is a natural (and free of cost to use) input for gyroscopes, earth's gravity is a natural input to accelerometers. By pointing the sensitive axis of the accelerometer, parallel and perpendicular to the center of the earth, you can input
0g to it. This will allow for the measurement of sensitivity and bias of the sensor.
I don't know about magnetometers though. I would imagine that magnetometers also need only 6 positions like the accelerometers, but the software you may be referring to, may be able to make do with sufficient random movement.
For hobby equipment the above procedure is enough. For high grade sensors, there are machines which can accelerate, and rotate the sensor at accurate and precise known values from which you can calibrate the sensor.