Can Ardutracker predict a moving target?

Gentlemen, the story is that I made ardutracker as a camera tracker, but as we can see because of the GPS latency of 2-3 seconds from telemetry, the Camera becomes difficult to capture objects (for fast flybys), this camera tracker is still viable if I don’t use ZOOMIN

my question is
can ardutracker provide any “predictions” based on the speed of the target to fill in the latency, my reasoning is because the target rarely changes direction, it can definitely change very quickly but let’s say as in the picture it flies “predictable”

Hi @korakora,

It can’t do that I’m afraid. You could add an enhancement request to the issues list if you like. We’ve started releasing the tracker code more regularly recently so it is being updated but it still doesn’t get as much love as we’d like.

3 Likes

will do, Thank you but of course i have to make sure my request are not ridiculous which IMO are logicly doable, yes again i will considering to ask thank you again

1 Like

OOT!

I’m so sorry for borrowing this forum to paste the source
because YT is not allowed to paste there
I hope the admin doesn’t mind

====== Nmea To Mavlink Convertion ========

#include <mavlink.h>
#include <TinyGPS++.h>
TinyGPSPlus GPS;

void CheckGPS() {
if(rxGPS.avalaible()) { //<<== Interface which received stream from phone
while(rxGPS.avalaible()) {
GPS.encode(rxGPS.read());
}
Nmea2Mav();
}
}

long scale=10000000UL;
TinyGPSCustom pdop(GPSsr, “GPRMC”, 15); // $GPGSA sentence, 15th element
TinyGPSCustom hdop(GPSsr, “GPRMC”, 16); // $GPGSA sentence, 16th element
TinyGPSCustom vdop(GPSsr, “GPRMC”, 17); // $GPGSA sentence, 17th element
void Nmea2Mav() {
if (GPS.altitude.isUpdated() || GPS.satellites.isUpdated() ||
pdop.isUpdated() || hdop.isUpdated() || vdop.isUpdated())
{
double xlat = GPS.location.rawLat().degscale+GPS.location.rawLat().billionths/100UL;
if(GPS.location.rawLat().negative) xlat=-xlat;
double xlon = GPS.location.rawLng().deg
scale+GPS.location.rawLng().billionths/100UL;
if(GPS.location.rawLng().negative) xlon=-xlon;
double xalt = GPS.altitude.meters() * 1000;
if(xlat != lastxlat and xlon != lastxlon) {
Serial.println();
Serial.println(“==============================”);
Serial.print("LAT = "); Serial.println(xlat);
Serial.print("LON = "); Serial.println(xlon);
Serial.print("SATS= "); Serial.println(GPS.satellites.value());
Serial.print("HDOP= "); Serial.println(atoi(hdop.value()));
}
mavlink_message_t txmsg;
uint8_t txbuf[280];
mavlink_msg_global_position_int_pack(
1,
1,
&txmsg,
0,
xlat,
xlon,
xalt,
0,
0,
0,
0,
0
);
uint8_t len = mavlink_msg_to_send_buffer(txbuf, &txmsg);
outSR.write(txbuf,len); //<<== Interface which Connected with Ardutracker
return;
}
Serial.println(“Check GPS”);
}

=============================================

2 Likes

your code (nmea to mavlink) is for arduino ? Correct ?

actually i’m using ESP32 but yes a same thing
this code is to convert NMEA and “injected” into mavlink

ps: no need heartbeat or anything else just inject this code and tracker (nav bearing) will follow that coordinate, simple as is

thanks a lot (I use also esp32)
what is navbearing ?

yellow line from ardutracker (picture above), the line to targeting to the target