# state_machine_mission **Repository Path**: HEXONE/state_machine_mission ## Basic Information - **Project Name**: state_machine_mission - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-22 - **Last Updated**: 2025-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Mission State Machine 基于MAVROS的任务状态机,支持航点飞行、拍照、返航等功能。 ## 功能特性 - **航点飞行**: 支持多种命令类型的航点任务 - **自动起飞**: command 22 - 起飞到指定高度并悬停 - **航点导航**: command 16 - 飞行到指定坐标点 - **拍照功能**: command 2000 - 在指定位置进行拍照 - **自动返航**: command 20 - 返回起飞点并降落 - **悬停等待**: 支持在航点处悬停指定时间 ## 状态机状态 - `0`: 等待任务 - `1`: 起飞悬停 - `2`: 航点飞行 - `3`: 悬停等待 - `4`: 拍照模式 - `5`: 返航模式 - `6`: 任务完成 ## 使用方法 ### 1. 启动状态机 ```bash roslaunch state_machine mission_state_machine.launch ``` ### 2. 发送任务 状态机会自动订阅 `/mavros/mission/waypoints` 话题,接收 `WaypointList` 消息。 ### 3. 参数配置 可以在launch文件中修改以下参数: - `is_debug`: 调试模式,输出详细日志 - `position_tolerance`: 航点到达判定容忍度(米) - `auto_arm`: 是否自动解锁 - `mission_timeout`: 任务超时时间(秒) ## 支持的命令类型 | 命令 | 说明 | 参数 | |------|------|------| | 22 | 起飞悬停 | x_lat, y_long, z_alt | | 16 | 航点飞行 | x_lat, y_long, z_alt, param1(悬停时间), param4(偏航角) | | 2000 | 拍照 | param2(拍照间隔), param3(拍照数量) | | 20 | 返航 | 自动返回起飞点 | ## 话题接口 ### 订阅话题 - `/mavros/mission/waypoints` - 接收任务航点 - `/mavros/local_position/odom` - 获取位置信息 - `/mavros/state` - 获取飞行器状态 ### 发布话题 - `/waypoint_generator/waypoints` - 发送航点给路径规划器 - `/camera/trigger` - 触发相机拍照 - `/mission_state_machine/state` - 发布当前状态 ### 服务调用 - `/mavros/cmd/arming` - 解锁服务 - `/mavros/set_mode` - 设置飞行模式 ## 注意事项 1. 确保MAVROS已正确连接到飞行器 2. 任务开始前确保飞行器已切换到OFFBOARD模式 3. 建议在仿真环境中先进行测试 4. 拍照功能需要相机节点支持 `/camera/trigger` 话题