diff --git a/msg/SensorGps.msg b/msg/SensorGps.msg index ce2bfad4fd..488b621a03 100644 --- a/msg/SensorGps.msg +++ b/msg/SensorGps.msg @@ -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 diff --git a/src/modules/simulation/gz_bridge/GZBridge.cpp b/src/modules/simulation/gz_bridge/GZBridge.cpp index d8b99e3c2d..e1541370da 100644 --- a/src/modules/simulation/gz_bridge/GZBridge.cpp +++ b/src/modules/simulation/gz_bridge/GZBridge.cpp @@ -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 diff --git a/src/modules/simulation/gz_bridge/GZBridge.hpp b/src/modules/simulation/gz_bridge/GZBridge.hpp index 061dea8df0..25c9322ad0 100644 --- a/src/modules/simulation/gz_bridge/GZBridge.hpp +++ b/src/modules/simulation/gz_bridge/GZBridge.hpp @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include @@ -190,6 +191,8 @@ private: uORB::Publication _lpos_ground_truth_pub{ORB_ID(vehicle_local_position_groundtruth)}; uORB::PublicationMulti _sensor_baro_pub{ORB_ID(sensor_baro)}; + uORB::Publication _platform_gps_position_pub{ORB_ID(platform_gps_position)}; + uORB::PublicationMulti _sensor_accel_pub{ORB_ID(sensor_accel)}; uORB::PublicationMulti _sensor_gyro_pub{ORB_ID(sensor_gyro)}; uORB::PublicationMulti _visual_odometry_pub{ORB_ID(vehicle_visual_odometry)};