Skip to content

Commit 454113c

Browse files
committed
Merge pull request #272 from dronekit/enable_smoother_follow_mode_for_solo
Enable smoother follow mode for solo
2 parents 7b1d385 + 419b485 commit 454113c

File tree

2 files changed

+12
-33
lines changed

2 files changed

+12
-33
lines changed

ClientLib/src/main/java/com/o3dr/services/android/lib/gcs/follow/FollowType.java

+1-13
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ public boolean hasParam(String paramKey) {
2222
return false;
2323
}
2424
},
25-
SPLINE_LEASH("Vector Leash"),
26-
SPLINE_ABOVE("Vector Above") {
27-
@Override
28-
public boolean hasParam(String paramKey) {
29-
return false;
30-
}
31-
},
25+
3226
GUIDED_SCAN("Guided Scan") {
3327
@Override
3428
public boolean hasParam(String paramKey) {
@@ -108,12 +102,6 @@ public static List<FollowType> getFollowTypes(boolean includeAdvanced) {
108102
followTypes.add(GUIDED_SCAN);
109103
followTypes.add(LOOK_AT_ME);
110104

111-
if (includeAdvanced) {
112-
followTypes.add(SOLO_SHOT);
113-
followTypes.add(SPLINE_LEASH);
114-
followTypes.add(SPLINE_ABOVE);
115-
}
116-
117105
return followTypes;
118106
}
119107

ServiceApp/src/org/droidplanner/services/android/utils/CommonApiUtils.java

+11-20
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import org.droidplanner.services.android.core.drone.variables.GuidedPoint;
5555
import org.droidplanner.services.android.core.drone.variables.calibration.AccelCalibration;
5656
import org.droidplanner.services.android.core.drone.variables.calibration.MagnetometerCalibrationImpl;
57+
import org.droidplanner.services.android.core.firmware.FirmwareType;
5758
import org.droidplanner.services.android.core.gcs.follow.Follow;
5859
import org.droidplanner.services.android.core.gcs.follow.FollowAlgorithm;
5960
import org.droidplanner.services.android.core.helpers.coordinates.Coord2D;
@@ -257,12 +258,14 @@ public static FootPrint getProxyCameraFootPrint(Footprint footprint) {
257258
MathUtils.coord2DToLatLong(footprint.getVertexInGlobalFrame()));
258259
}
259260

260-
public static FollowAlgorithm.FollowModes followTypeToMode(FollowType followType) {
261+
public static FollowAlgorithm.FollowModes followTypeToMode(MavLinkDrone drone, FollowType followType) {
261262
final FollowAlgorithm.FollowModes followMode;
262263

263264
switch (followType) {
264265
case ABOVE:
265-
followMode = FollowAlgorithm.FollowModes.ABOVE;
266+
followMode = (drone.getFirmwareType() == FirmwareType.ARDU_SOLO)
267+
? FollowAlgorithm.FollowModes.SPLINE_ABOVE
268+
: FollowAlgorithm.FollowModes.ABOVE;
266269
break;
267270

268271
case LEAD:
@@ -271,7 +274,9 @@ public static FollowAlgorithm.FollowModes followTypeToMode(FollowType followType
271274

272275
default:
273276
case LEASH:
274-
followMode = FollowAlgorithm.FollowModes.LEASH;
277+
followMode = (drone.getFirmwareType() == FirmwareType.ARDU_SOLO)
278+
? FollowAlgorithm.FollowModes.SPLINE_LEASH
279+
: FollowAlgorithm.FollowModes.LEASH;
275280
break;
276281

277282
case CIRCLE:
@@ -286,14 +291,6 @@ public static FollowAlgorithm.FollowModes followTypeToMode(FollowType followType
286291
followMode = FollowAlgorithm.FollowModes.RIGHT;
287292
break;
288293

289-
case SPLINE_LEASH:
290-
followMode = FollowAlgorithm.FollowModes.SPLINE_LEASH;
291-
break;
292-
293-
case SPLINE_ABOVE:
294-
followMode = FollowAlgorithm.FollowModes.SPLINE_ABOVE;
295-
break;
296-
297294
case GUIDED_SCAN:
298295
followMode = FollowAlgorithm.FollowModes.GUIDED_SCAN;
299296
break;
@@ -315,6 +312,7 @@ public static FollowType followModeToType(FollowAlgorithm.FollowModes followMode
315312
switch (followMode) {
316313
default:
317314
case LEASH:
315+
case SPLINE_LEASH:
318316
followType = FollowType.LEASH;
319317
break;
320318

@@ -335,15 +333,8 @@ public static FollowType followModeToType(FollowAlgorithm.FollowModes followMode
335333
break;
336334

337335
case ABOVE:
338-
followType = FollowType.ABOVE;
339-
break;
340-
341-
case SPLINE_LEASH:
342-
followType = FollowType.SPLINE_LEASH;
343-
break;
344-
345336
case SPLINE_ABOVE:
346-
followType = FollowType.SPLINE_ABOVE;
337+
followType = FollowType.ABOVE;
347338
break;
348339

349340
case GUIDED_SCAN:
@@ -918,7 +909,7 @@ public static void enableFollowMe(DroneManager droneMgr, Handler droneHandler, F
918909
if (droneMgr == null)
919910
return;
920911

921-
final FollowAlgorithm.FollowModes selectedMode = CommonApiUtils.followTypeToMode(followType);
912+
final FollowAlgorithm.FollowModes selectedMode = CommonApiUtils.followTypeToMode(droneMgr.getDrone(), followType);
922913

923914
if (selectedMode != null) {
924915
final Follow followMe = droneMgr.getFollowMe();

0 commit comments

Comments
 (0)