IMU - 3000 with ADXL345 and Arduino
The IMU-3000 uses the I2C bus to communicate with the Arduino.  The I2C bus is a simple serial protocol (much like the way you talk to the Arduino from your PC) that utilizes an single line that works in both directions.

In order to use the I2C bus, you need to include the Wire.h library that comes standard with the Arduino.  You can then implement the protocol outlined in the datasheet to get the specific values that you want.

Here is a rough example of what I'm talking about.  This code is untested, but it should give you the general flow of what you are trying to do on the Arudino.  Once you have the low-level reading done, you can start to implement filters to smooth your data and get it into the format you need for your application.

#define GYRO 0x69 // gyro I2C address
void setup()
{
    Wire.begin();
    // Do other gyro stuff here, sample rate, max speed, power management
    // From datasheet, set power management to internal oscillator
    Wire.beginTransmission(GYRO); //Device Address
    Wire.send(0x3E); //Register Address
    Wire.send(0x00); // Value
    Wire.endTransmission();
}

void main()
{
    // A quick read example, temperature, gyro x,y,z
    Wire.beginTransmission(GYRO);
    Wire.send(0x1B); //Register Address TEMP_H
    Wire.endTransmission();

    Wire.beginTransmission(GYRO);
    Wire.requestFrom(GYRO,6); // Read 8 bytes
    int ii = 0;
    while(Wire.available())
    {
        buff[ii] = Wire.receive();
        ii++;
    }
    Wire.endTransmission;

    //Combine bytes into ints
    int temperature = buff[0] &lt;&lt; 8 | buff[1];
    int gyro_x = buff[2] &lt;&lt; 8 | buff[3];
    int gyro_y = buff[4] &lt;&lt; 8 | buff[5];
    int gyro_z = buff[6] &lt;&lt; 8 | buff[7];
}