case 11: // Land ROS_INFO("land"); if (current_state.mode != "AUTO.LAND") { if (ros::Time::now() - last_request > ros::Duration(1.0)) { mavros_msgs::SetMode land_set_mode; land_set_mode.request.custom_mode = "AUTO.LAND"; if (set_mode_client.call(land_set_mode) && land_set_mode.response.mode_sent) { ROS_INFO("Vehicle landed"); } last_request = ros::Time::now(); } } else { state = 12; } break;
时间: 2024-02-10 20:03:23 浏览: 133
这是一个使用ROS与mavros通信的无人机控制程序中的一段代码。在这个case中,如果当前的飞行模式不是AUTO.LAND,那么就会向飞控发送命令,将飞机的模式设置为AUTO.LAND,让飞机自动降落。如果发送命令成功,则会在终端输出"Vehicle landed"。如果当前的模式已经是AUTO.LAND,那么就会跳转到state为12的case中执行下一步操作。
阅读全文