在使用Mission Planner进行控制无人机执行航点飞行的时候有两种方式,一种是解锁后使用Guided模式起飞到设定高度然后切入自动模式,另一种是使用航点自动指令执行起飞以及航点飞行。本文主要是对航点自动飞行指令的程序进行解读。
- 地面站操作
1)连上飞机后上传航点,并将第一个航点的命令设置为TAKEOFF类型,如图1所示
图1 设置第一个航点的类型
2)解锁,图2所示
图2 解锁
3)设置MISSION START,点击执行动作,图3所示
图3 设置MISSION START
4)执行动作
图4 执行动作
- 程序解读
(1) Copter.cpp SCHED_TASK_CLASS(GCS, (GCS*)&copter._gcs, update_receive, 400, 180),//调用任务检测地面站输入
(2) GCS_Common.cpp GCS::update_receive(void)
(3) GCS_Common.cpp chan(i)->update_receive(); //2059行 更新数据,i分别取值0,1,2,不知道为啥是三个gcs
(4) GCS_Common.cpp GCS_MAVLINK::update_receive(uint32_t max_time_us)//接收数据包
(5)GCS_Common.cpp packetReceived(status, msg);//数据接收
(6)GCS_Mavlink.cpp void GCS_MAVLINK_Copter::packetReceived(const mavlink_status_t &status,mavlink_message_t &msg)