GPS eingebaut

This commit is contained in:
2026-05-23 19:44:12 +02:00
parent cb7d6c6c92
commit b24996e67f
4 changed files with 380 additions and 6 deletions
+44 -4
View File
@@ -64,8 +64,10 @@
CTRL: <span id="input-state">Joystick</span>
</div>
<div class="c-bl">
X: <span id="cam-x">+0.00</span><br>
Y: <span id="cam-y">+0.00</span>
GPS: <span id="gps-state">Offline</span><br>
SAT: <span id="gps-sats">--</span><br>
LAT: <span id="gps-lat">--</span><br>
LON: <span id="gps-lon">--</span>
</div>
<div class="c-br">
HOST: <span id="cam-host">--</span><br>
@@ -280,6 +282,8 @@ var ros = null;
var joyListener = null;
var roverCommandListener = null;
var motorCommandsListener = null;
var gpsFixListener = null;
var gpsStatusListener = null;
var publishTimer = null;
var statusTimer = null;
var axes = [0, 0, 0, 0, 0, 0];
@@ -584,8 +588,28 @@ function updateAxesDisplay(x, y) {
setText("jy", formatAxis(y));
setText("dpx", formatAxis(x));
setText("dpy", formatAxis(y));
setText("cam-x", formatAxis(x));
setText("cam-y", formatAxis(y));
}
function updateGpsOverlayFromFix(message) {
if (!message) return;
var hasFix = message.status && message.status.status >= 0;
if (!hasFix) {
setText("gps-lat", "--");
setText("gps-lon", "--");
return;
}
setText("gps-lat", formatNumber(Number(message.latitude || 0), 5));
setText("gps-lon", formatNumber(Number(message.longitude || 0), 5));
}
function updateGpsOverlayFromStatus(text) {
var value = String(text || "Offline");
setText("gps-state", value);
var satMatch = value.match(/(\d+)\s*Sat/i);
setText("gps-sats", satMatch ? satMatch[1] : "--");
}
function updateModeDisplay() {
@@ -1028,6 +1052,22 @@ window.addEventListener("load", function () {
renderTrajectoryOverlay();
});
gpsFixListener = new ROSLIB.Topic({
ros: ros,
name: "/fix",
messageType: "sensor_msgs/NavSatFix"
});
gpsFixListener.subscribe(updateGpsOverlayFromFix);
gpsStatusListener = new ROSLIB.Topic({
ros: ros,
name: "/gps/status_text",
messageType: "std_msgs/String"
});
gpsStatusListener.subscribe(function (message) {
updateGpsOverlayFromStatus(message.data);
});
var joySubscriber = new ROSLIB.Topic({
ros: ros,
name: "/joy",