publish platform position on uOrb topic.

reused SensorGps.msg with new topic platform_gps_position. Currently
only latitude_deg, longigude_deg and altitude_ellipsoid are set. check
out with listener platform_gps_position.
This commit is contained in:
Balduin
2025-03-05 08:55:59 +01:00
parent ca051a46db
commit 6cf119535d
3 changed files with 12 additions and 1 deletions
+1 -1
View File
@@ -69,4 +69,4 @@ uint8 RTCM_MSG_USED_NOT_USED = 1
uint8 RTCM_MSG_USED_USED = 2
uint8 rtcm_msg_used # Indicates if the RTCM message was used successfully by the receiver
# TOPICS sensor_gps vehicle_gps_position
# TOPICS sensor_gps vehicle_gps_position platform_gps_position
@@ -561,6 +561,14 @@ void GZBridge::platformNavsatCallback(const gz::msgs::NavSat &nav_sat)
// print d n'ebugging pas
// PX4_INFO("Moving Platform NavSat pos: lat=%.2f, lon=%.2f, alt=%.2f",
// nav_sat.latitude_deg(), nav_sat.longitude_deg(), nav_sat.altitude());
sensor_gps_s gps_output{};
gps_output.latitude_deg = nav_sat.latitude_deg();
gps_output.longitude_deg = nav_sat.longitude_deg();
// not sure if this is msl or ellipsoid. consult gz docs.
gps_output.altitude_ellipsoid_m = nav_sat.altitude();
_platform_gps_position_pub.publish(gps_output);
// TODO publish the corresponding uOrb msg. then in reality we just have
// to convert the mavlink msg from the ground station to exactly the
@@ -54,6 +54,7 @@
#include <lib/drivers/device/Device.hpp>
#include <uORB/topics/sensor_accel.h>
#include <uORB/topics/sensor_gyro.h>
#include <uORB/topics/sensor_gps.h>
#include <uORB/topics/vehicle_angular_velocity.h>
#include <uORB/topics/vehicle_attitude.h>
#include <uORB/topics/vehicle_global_position.h>
@@ -190,6 +191,8 @@ private:
uORB::Publication<vehicle_local_position_s> _lpos_ground_truth_pub{ORB_ID(vehicle_local_position_groundtruth)};
uORB::PublicationMulti<sensor_baro_s> _sensor_baro_pub{ORB_ID(sensor_baro)};
uORB::Publication<sensor_gps_s> _platform_gps_position_pub{ORB_ID(platform_gps_position)};
uORB::PublicationMulti<sensor_accel_s> _sensor_accel_pub{ORB_ID(sensor_accel)};
uORB::PublicationMulti<sensor_gyro_s> _sensor_gyro_pub{ORB_ID(sensor_gyro)};
uORB::PublicationMulti<vehicle_odometry_s> _visual_odometry_pub{ORB_ID(vehicle_visual_odometry)};