MPU6050 Arduino Mega getting pitch,roll

Okay so, i am working on a quadcopter project, i have figured out the motors, ESC's arming etc, but i need to figure out a way to auto level the quadcopter. i brought the MPU6050 and have succeded to read RAW values from it, but i have not been able to convert those to something useful despite looking a lot online. I am NOT using a radio controller, i am going to control it with android app, which is pretty much set up to control the speeds of the motors for now.

  1. Do i need to use Kalman or any other filter.? if so, how?
  2. Do i need to use PID to control it?

Any help would be appreciated!.