Behaviour of motor and ESC

I have customized the px4 stack and my motor mixer is providing pwm values to the ESC While flying d quadcopter I am giving only throttle input and pwm values being passed to esc are same(I observed on qground control) . But quad is getting some pitch and roll and it is flying randomly and finally leads to crash . I wonder even after providing the same pwm to esc how does quad getting roll and pitch. Is d force generated by each motor is same ? I am using a very simple linear mixer .if the behaviour of the motors are not same than how can I improve my mixer to set up a stable flight.