Px4 cannot takeoff

Takeoff command accepted sucessfully, but px4 cannot takeoff. Here is my code.

import pexpect
from pymavlink import mavutil
import time

master = mavutil.mavlink_connection('udp:0.0.0.0:{}'.format(14540))

master.wait_heartbeat()

master.arducopter_arm()

takeoff_altitude = 5.0

master.mav.command_long_send(
    master.target_system,        # 目标系统
    master.target_component,     # 目标组件
    mavutil.mavlink.MAV_CMD_NAV_TAKEOFF,  # 起飞命令
    0,                           # 预留参数1
    0,                           # 预留参数2
    0,                           # 预留参数3
    0,                           # 预留参数4
    0,                           # 预留参数5
    0,                           # 预留参数6
    0,                           # 起飞方向
    takeoff_altitude             # 起飞高度
)

while True:
    msg = master.recv_match(type='COMMAND_ACK', blocking=True)
    if msg.command == mavutil.mavlink.MAV_CMD_NAV_TAKEOFF and msg.result == mavutil.mavlink.MAV_RESULT_ACCEPTED:
        print("Takeoff command accepted.")
        time.sleep(15)
        break
    time.sleep(0.5)

master.close()