Unverified Commit 367e276c authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #7646 from DonLakeFlyer/ArduCopterFlightModes

ArduCopter: Add Follow, Flow Hold, ZigZag flight modes
parents f6e72014 da28a454
......@@ -23,50 +23,56 @@ APMCopterMode::APMCopterMode(uint32_t mode, bool settable) :
APMCustomMode(mode, settable)
{
setEnumToStringMapping({
{STABILIZE, "Stabilize"},
{ACRO, "Acro"},
{ALT_HOLD, "Altitude Hold"},
{AUTO, "Auto"},
{GUIDED, "Guided"},
{LOITER, "Loiter"},
{RTL, "RTL"},
{CIRCLE, "Circle"},
{LAND, "Land"},
{DRIFT, "Drift"},
{SPORT, "Sport"},
{FLIP, "Flip"},
{AUTOTUNE, "Autotune"},
{POS_HOLD, "Position Hold"},
{BRAKE, "Brake"},
{THROW, "Throw"},
{AVOID_ADSB, "Avoid ADSB"},
{GUIDED_NOGPS, "Guided No GPS"},
{SAFE_RTL, "Smart RTL"},
{ STABILIZE, "Stabilize"},
{ ACRO, "Acro"},
{ ALT_HOLD, "Altitude Hold"},
{ AUTO, "Auto"},
{ GUIDED, "Guided"},
{ LOITER, "Loiter"},
{ RTL, "RTL"},
{ CIRCLE, "Circle"},
{ LAND, "Land"},
{ DRIFT, "Drift"},
{ SPORT, "Sport"},
{ FLIP, "Flip"},
{ AUTOTUNE, "Autotune"},
{ POS_HOLD, "Position Hold"},
{ BRAKE, "Brake"},
{ THROW, "Throw"},
{ AVOID_ADSB, "Avoid ADSB"},
{ GUIDED_NOGPS, "Guided No GPS"},
{ SMART_RTL, "Smart RTL"},
{ FLOWHOLD, "Flow Hold" },
{ FOLLOW, "Follow Vehicle" },
{ ZIGZAG, "ZigZag" },
});
}
ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void)
{
setSupportedModes({
APMCopterMode(APMCopterMode::STABILIZE ,true),
APMCopterMode(APMCopterMode::ACRO ,true),
APMCopterMode(APMCopterMode::ALT_HOLD ,true),
APMCopterMode(APMCopterMode::AUTO ,true),
APMCopterMode(APMCopterMode::GUIDED ,true),
APMCopterMode(APMCopterMode::LOITER ,true),
APMCopterMode(APMCopterMode::RTL ,true),
APMCopterMode(APMCopterMode::CIRCLE ,true),
APMCopterMode(APMCopterMode::LAND ,true),
APMCopterMode(APMCopterMode::DRIFT ,true),
APMCopterMode(APMCopterMode::SPORT ,true),
APMCopterMode(APMCopterMode::FLIP ,true),
APMCopterMode(APMCopterMode::AUTOTUNE ,true),
APMCopterMode(APMCopterMode::POS_HOLD ,true),
APMCopterMode(APMCopterMode::BRAKE ,true),
APMCopterMode(APMCopterMode::THROW ,true),
APMCopterMode(APMCopterMode::AVOID_ADSB,true),
APMCopterMode(APMCopterMode::GUIDED_NOGPS,true),
APMCopterMode(APMCopterMode::SAFE_RTL,true),
APMCopterMode(APMCopterMode::STABILIZE, true),
APMCopterMode(APMCopterMode::ACRO, true),
APMCopterMode(APMCopterMode::ALT_HOLD, true),
APMCopterMode(APMCopterMode::AUTO, true),
APMCopterMode(APMCopterMode::GUIDED, true),
APMCopterMode(APMCopterMode::LOITER, true),
APMCopterMode(APMCopterMode::RTL, true),
APMCopterMode(APMCopterMode::CIRCLE, true),
APMCopterMode(APMCopterMode::LAND, true),
APMCopterMode(APMCopterMode::DRIFT, true),
APMCopterMode(APMCopterMode::SPORT, true),
APMCopterMode(APMCopterMode::FLIP, true),
APMCopterMode(APMCopterMode::AUTOTUNE, true),
APMCopterMode(APMCopterMode::POS_HOLD, true),
APMCopterMode(APMCopterMode::BRAKE, true),
APMCopterMode(APMCopterMode::THROW, true),
APMCopterMode(APMCopterMode::AVOID_ADSB, true),
APMCopterMode(APMCopterMode::GUIDED_NOGPS, true),
APMCopterMode(APMCopterMode::SMART_RTL, true),
APMCopterMode(APMCopterMode::FLOWHOLD, true),
APMCopterMode(APMCopterMode::FOLLOW, true),
APMCopterMode(APMCopterMode::ZIGZAG, true),
});
if (!_remapParamNameIntialized) {
......
......@@ -41,9 +41,11 @@ public:
THROW = 18,
AVOID_ADSB = 19,
GUIDED_NOGPS= 20,
SAFE_RTL = 21, //Safe Return to Launch
SMART_RTL = 21, // SMART_RTL returns to home by retracing its steps
FLOWHOLD = 22, // FLOWHOLD holds position with optical flow without rangefinder
FOLLOW = 23, // follow attempts to follow another vehicle or ground station
ZIGZAG = 24, // ZIGZAG mode is able to fly in a zigzag manner with predefined point A and point B
};
static const int modeCount = 22;
APMCopterMode(uint32_t mode, bool settable);
};
......
......@@ -42,7 +42,6 @@ public:
QLOITER = 19,
QLAND = 20,
QRTL = 21,
modeCount
};
APMPlaneMode(uint32_t mode, bool settable);
......
......@@ -33,7 +33,6 @@ public:
GUIDED = 15,
INITIALIZING = 16,
};
static const int modeCount = 17;
APMRoverMode(uint32_t mode, bool settable);
};
......
......@@ -96,7 +96,6 @@ public:
RESERVED_18 = 18,
MANUAL = 19
};
static const int modeCount = 20;
APMSubMode(uint32_t mode, bool settable);
};
......
......@@ -3041,7 +3041,7 @@ void Vehicle::guidedModeGotoLocation(const QGeoCoordinate& gotoCoord)
if (!coordinate().isValid()) {
return;
}
double maxDistance = 1000.0;
double maxDistance = 10000.0;
if (coordinate().distanceTo(gotoCoord) > maxDistance) {
qgcApp()->showMessage(QString("New location is too far. Must be less than %1 %2").arg(qRound(FactMetaData::metersToAppSettingsDistanceUnits(maxDistance).toDouble())).arg(FactMetaData::appSettingsDistanceUnitsString()));
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment