mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-28 11:53:35 +08:00
Navigator move get_time_inside and cleanup (#7062)
This commit is contained in:
@@ -41,18 +41,16 @@
|
||||
#ifndef NAVIGATOR_MISSION_BLOCK_H
|
||||
#define NAVIGATOR_MISSION_BLOCK_H
|
||||
|
||||
#include <drivers/drv_hrt.h>
|
||||
#include "navigator_mode.h"
|
||||
|
||||
#include <navigator/navigation.h>
|
||||
|
||||
#include <uORB/topics/mission.h>
|
||||
#include <uORB/topics/vehicle_global_position.h>
|
||||
#include <uORB/topics/position_setpoint_triplet.h>
|
||||
#include <uORB/topics/vtol_vehicle_status.h>
|
||||
#include <uORB/topics/actuator_controls.h>
|
||||
#include <uORB/topics/follow_target.h>
|
||||
|
||||
#include "navigator_mode.h"
|
||||
#include <uORB/topics/mission.h>
|
||||
#include <uORB/topics/position_setpoint_triplet.h>
|
||||
#include <uORB/topics/vehicle_command.h>
|
||||
#include <uORB/topics/vehicle_global_position.h>
|
||||
#include <uORB/topics/vtol_vehicle_status.h>
|
||||
|
||||
class Navigator;
|
||||
|
||||
@@ -63,15 +61,11 @@ public:
|
||||
* Constructor
|
||||
*/
|
||||
MissionBlock(Navigator *navigator, const char *name);
|
||||
~MissionBlock() = default;
|
||||
|
||||
MissionBlock(const MissionBlock &) = delete;
|
||||
MissionBlock &operator=(const MissionBlock &) = delete;
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~MissionBlock();
|
||||
|
||||
/* TODO: move this to a helper class in navigator */
|
||||
static bool item_contains_position(const struct mission_item_s *item);
|
||||
|
||||
@@ -81,6 +75,7 @@ protected:
|
||||
* @return true if successfully reached
|
||||
*/
|
||||
bool is_mission_item_reached();
|
||||
|
||||
/**
|
||||
* Reset all reached flags
|
||||
*/
|
||||
@@ -121,28 +116,31 @@ protected:
|
||||
*/
|
||||
void set_idle_item(struct mission_item_s *item);
|
||||
|
||||
/**
|
||||
* Convert a mission item to a command
|
||||
*/
|
||||
void mission_item_to_vehicle_command(const struct mission_item_s *item, struct vehicle_command_s *cmd);
|
||||
|
||||
/**
|
||||
* Set follow_target item
|
||||
*/
|
||||
void set_follow_target_item(struct mission_item_s *item, float min_clearance, follow_target_s &target, float yaw);
|
||||
|
||||
/**
|
||||
* Convert a mission item to a command
|
||||
*/
|
||||
void mission_item_to_vehicle_command(const struct mission_item_s *item, struct vehicle_command_s *cmd);
|
||||
|
||||
void issue_command(const struct mission_item_s *item);
|
||||
|
||||
mission_item_s _mission_item;
|
||||
bool _waypoint_position_reached;
|
||||
bool _waypoint_yaw_reached;
|
||||
hrt_abstime _time_first_inside_orbit;
|
||||
hrt_abstime _action_start;
|
||||
hrt_abstime _time_wp_reached;
|
||||
float get_time_inside(const struct mission_item_s &item);
|
||||
|
||||
actuator_controls_s _actuators;
|
||||
orb_advert_t _actuator_pub;
|
||||
orb_advert_t _cmd_pub;
|
||||
mission_item_s _mission_item{};
|
||||
|
||||
bool _waypoint_position_reached{false};
|
||||
bool _waypoint_yaw_reached{false};
|
||||
|
||||
hrt_abstime _time_first_inside_orbit{0};
|
||||
hrt_abstime _action_start{0};
|
||||
hrt_abstime _time_wp_reached{0};
|
||||
|
||||
actuator_controls_s _actuators{};
|
||||
orb_advert_t _actuator_pub{nullptr};
|
||||
|
||||
control::BlockParamFloat _param_loiter_min_alt;
|
||||
control::BlockParamFloat _param_yaw_timeout;
|
||||
|
||||
Reference in New Issue
Block a user