Follow me mit AQ6

fseider

Erfahrener Benutzer
#1
Hallo zusammen,

ersteinmal schöne Weihnachten!

Und nun zur Frage: Muss ich, wenn ich "follow me" nutzen möchte, eine bestimmte Software Version auf dem AQ6 haben, oder wird das von jeder neueren Version unterstützt. Im AQ Forum habe ich nur Beiträge gefunden, in denen es um eine "hott" unterstützende Software ging.

Danke!

Viele Grüße

Frank
 

meister

Erfahrener Benutzer
#4
Hi,
gibt es die 'inoffizielle' Version irgendwo zum runterladen ?

arbeite zurzeit ans SWAM funktionen und benötige daher die Follow-Me funktion.

Gruß und Danke,
Olli
 

meister

Erfahrener Benutzer
#6
Würde mich freuen, wollte schon selbst handanlegen :)

if (mavlinkData.sys_nav_mode & AQ_NAV_STATUS_POSHOLD) {
float targetLat = mavlink_msg_command_long_get_param1(msg); // Lat
float targetLon = mavlink_msg_command_long_get_param1(msg); // Long
navUkfSetGlobalPositionTarget(targetLat, targetLon);
ack = MAV_CMD_ACK_OK;
} else {
ack = MAV_CMD_ACK_ERR_FAIL;
AQ_NOTICE("Error: FollowMe only works in POSHOLD!");
}
 
#7
Wenn Du willst kann ich kann dir einen patch zukommen lassen.
Hi,
soweit ich informiert bin sollte es in Mennos HOTT Firmware drin sein. HOTT Feature lässt sich wohl abschalten --> auch mit anderer TX nutzbar.

@sandmen: Den Patch hätte ich gerne; muss eh selber compilieren um die ESC32 Telemetrie loggen zu können. Will den neuen ESC Sensor in der Spektum Telemetrie nutzen um (Durchschnitts-) Gesamtstrom anzuzeigen. Sollte dann auch einen tauglichen Cap-Sensor mit den Werten bauen können ohne einen Stromsensor zu nutzen.
 

brandtaucher

Erfahrener Benutzer
#8
Hallo,

gibt es "verschiedene" Follow Me? Ich dachte, das wäre seit 2013 drin:

Summer 2013

Add Graupner HoTT SUMD protocol
Add heading free mode (aka simple, carefree mode)
Large improvements in navigation module including altitude handling
Easy setup different signaling patterns
Add CAN support for ESC32
Add Digital IMU support (upgrade not yet available )
Android app: follow me function, tap ‘n fly there function, record flight function, path draw to waypoint function, polynome waypoints function, video in on HUD function (requires root/kernel modification), USB host telemetry , datalogging on android.

In der App gibt es doch diese Funktion? Verwechsel ich was?
 
#9
Hallo,

gibt es "verschiedene" Follow Me? Ich dachte, das wäre seit 2013 drin:

Summer 2013

Add Graupner HoTT SUMD protocol
Add heading free mode (aka simple, carefree mode)
Large improvements in navigation module including altitude handling
Easy setup different signaling patterns
Add CAN support for ESC32
Add Digital IMU support (upgrade not yet available )
Android app: follow me function, tap ‘n fly there function, record flight function, path draw to waypoint function, polynome waypoints function, video in on HUD function (requires root/kernel modification), USB host telemetry , datalogging on android.

In der App gibt es doch diese Funktion? Verwechsel ich was?
Follow me gibt es bislang nur in Menno's HOTT Firmware, nicht in der offiziellen!
Die App unterstützt das schon lange, funktioniert aber natürlich nur wenn du auf dem Copter auch die passende Firmware hast.
 

kinderkram

Erfahrener Benutzer
#11

meister

Erfahrener Benutzer
#12
Ich habs nun so eingebaut das es mit APM/Pixhawk kompatibel ist,
muss aber noch getestet werden:

Code:
--- aq_mavlink.c	(revision 449)
+++ aq_mavlink.c	(working copy)
@@ -200,7 +200,7 @@
     // position -- gps and ukf
     if (streamAll || (mavlinkData.streams[MAV_DATA_STREAM_POSITION].enable && mavlinkData.streams[MAV_DATA_STREAM_POSITION].next < micros)) {
 	mavlink_msg_gps_raw_int_send(MAVLINK_COMM_0, micros, navData.fixType, gpsData.lat*(double)1e7, gpsData.lon*(double)1e7, gpsData.height*1e3,
-		gpsData.hAcc*100, gpsData.vAcc*100, gpsData.speed*100, gpsData.heading, 255);
+		gpsData.hAcc*100, gpsData.vAcc*100, gpsData.speed*100, gpsData.heading, gpsData.numSV);
 	mavlink_msg_local_position_ned_send(MAVLINK_COMM_0, micros, UKF_POSN, UKF_POSE, -UKF_POSD, UKF_VELN, UKF_VELE, -VELOCITYD);
 	mavlinkData.streams[MAV_DATA_STREAM_POSITION].next = micros + mavlinkData.streams[MAV_DATA_STREAM_POSITION].interval;
     }
@@ -636,19 +636,43 @@
 			uint16_t seqId;
 			uint8_t ack = 0;
 			uint8_t frame;
+		    uint8_t command;
+		    uint8_t current;
 
+		    command = mavlink_msg_mission_item_get_command(&msg);
+		    current = mavlink_msg_mission_item_get_current(&msg);
 			seqId = mavlink_msg_mission_item_get_seq(&msg);
 			frame = mavlink_msg_mission_item_get_frame(&msg);
 
-			if (seqId >= NAV_MAX_MISSION_LEGS || (frame != MAV_FRAME_GLOBAL && frame != MAV_FRAME_GLOBAL_RELATIVE_ALT)) {
+			if (seqId == 0 && command == MAV_CMD_NAV_WAYPOINT && current == 2) {
+				double targetLat = mavlink_msg_mission_item_get_x(&msg);
+				double targetLon = mavlink_msg_mission_item_get_y(&msg);
+				double targetAlt = mavlink_msg_mission_item_get_z(&msg);
+				if (((targetLat < (double)90.0) && (targetLat > (double)-90.0)) && ((targetLon < (double)180.0) && (targetLon > (double)-180.0))) {
+					if ( navData.mode == NAV_STATUS_POSHOLD ) {
+						navUkfSetGlobalPositionTarget((double)targetLat, (double)targetLon);
+                        if (frame == MAV_FRAME_GLOBAL_RELATIVE_ALT) {
+                            navSetHoldAlt(targetAlt, 1);
+                        } else {
+                            navSetHoldAlt(targetAlt, 0);
+                        }
+                    } else {
+                        // NACK
+                        ack = 1;
+                        AQ_NOTICE("Error: not in poshold");
+					}
+                } else {
+                    // NACK
+                    ack = 1;
+                    AQ_NOTICE("Error: position out of range");
+				}
+			}
+			else if (seqId >= NAV_MAX_MISSION_LEGS || (frame != MAV_FRAME_GLOBAL && frame != MAV_FRAME_GLOBAL_RELATIVE_ALT)) {
 			    // NACK
 			    ack = 1;
 			}
 			else {
 			    navMission_t *wp;
-			    uint8_t command;
-
-			    command = mavlink_msg_mission_item_get_command(&msg);
 			    if (command == MAV_CMD_NAV_RETURN_TO_LAUNCH) {
 				wp = navGetWaypoint(seqId);
 
@@ -683,7 +707,7 @@
 			    }
 			    else if (command == MAV_CMD_DO_SET_HOME) {
 				// use current location
-				if (mavlink_msg_mission_item_get_current(&msg)) {
+				if (current) {
 				    navSetHomeCurrent();
 				}
 				// use given location

Gruß,
Olli
 

meister

Erfahrener Benutzer
#14
ich frag mich warum so sachen nicht in einem öffentlichen git/svn gemacht werden sondern alles mehr oder weniger hinter verschlossenen türen.
mann kann ja auch dazu schreiben wenn es experimenteller code ist.

kann mitlerweile auch mit einem komplett freien gcc die sourcen übersetzen, gibt noch paar kleine workarounds aber das bekomm ich noch in den griff :)

Gruß,
Olli
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten