DroneKit教程(五):使用自定义MAVLink指令
DroneKit的实质是通过发送和接受MAVLink消息,向飞控发送控制指令、从飞控获取各种状态信息。DroneKit的所有内置功能都是基于MAVLink实现的。DroneKit内置了simple_takeoff和simple_goto指令,以及部分云台的指令;如果要使用到DroneKit中没有的指令,则需要自定义MAVLink消息并发送。
编程示例
使用SET_POSITION_TARGET_LOCAL_NED设置速度
from pymavlink import mavutil
def send_nav_velocity(self, velocity_x, velocity_y, velocity_z):
# 生成SET_POSITION_TARGET_LOCAL_NED命令
msg = self.vehicle.message_factory.set_position_target_local_ned_encode(
0, # time_boot_ms (not used)
0, 0, # target system, target component
mavutil.mavlink.MAV_FRAME_BODY_NED, # frame
0b0000111111000111, # type_mask (only speeds enabled)
0, 0, 0, # x, y, z positions (not used)
velocity_x, velocity_y, velocity_z, # x, y, z velocity in m/s
0, 0, 0, # x, y, z acceleration (not used)
0, 0) # yaw, yaw_rate (not used)