mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-17 18:43:33 +08:00
SensorGps.msg: switch to double precision for lat/lon/alt
To match https://github.com/PX4/PX4-GPSDrivers/pull/132 - adding high precision RTK lat/lon/alt components
This commit is contained in:
committed by
Beat Küng
parent
f82785a322
commit
f000238987
@@ -35,12 +35,12 @@
|
||||
|
||||
using namespace time_literals;
|
||||
|
||||
FakeGps::FakeGps(double latitude_deg, double longitude_deg, float altitude_m) :
|
||||
FakeGps::FakeGps(double latitude_deg, double longitude_deg, double altitude_m) :
|
||||
ModuleParams(nullptr),
|
||||
ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::lp_default),
|
||||
_latitude(latitude_deg * 10e6),
|
||||
_longitude(longitude_deg * 10e6),
|
||||
_altitude(altitude_m * 10e2f)
|
||||
_latitude(latitude_deg),
|
||||
_longitude(longitude_deg),
|
||||
_altitude(altitude_m)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -60,10 +60,10 @@ void FakeGps::Run()
|
||||
|
||||
sensor_gps_s sensor_gps{};
|
||||
sensor_gps.time_utc_usec = hrt_absolute_time() + 1613692609599954;
|
||||
sensor_gps.lat = _latitude;
|
||||
sensor_gps.lon = _longitude;
|
||||
sensor_gps.alt = _altitude;
|
||||
sensor_gps.alt_ellipsoid = _altitude;
|
||||
sensor_gps.latitude_deg = _latitude;
|
||||
sensor_gps.longitude_deg = _longitude;
|
||||
sensor_gps.altitude_msl_m = _altitude;
|
||||
sensor_gps.altitude_ellipsoid_m = _altitude;
|
||||
sensor_gps.s_variance_m_s = 0.3740f;
|
||||
sensor_gps.c_variance_rad = 0.6737f;
|
||||
sensor_gps.eph = 2.1060f;
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
class FakeGps : public ModuleBase<FakeGps>, public ModuleParams, public px4::ScheduledWorkItem
|
||||
{
|
||||
public:
|
||||
FakeGps(double latitude_deg = 29.6603018, double longitude_deg = -82.3160500, float altitude_m = 30.1f);
|
||||
FakeGps(double latitude_deg = 29.6603018, double longitude_deg = -82.3160500, double altitude_m = 30.1);
|
||||
|
||||
~FakeGps() override = default;
|
||||
|
||||
@@ -67,7 +67,7 @@ private:
|
||||
|
||||
uORB::PublicationMulti<sensor_gps_s> _sensor_gps_pub{ORB_ID(sensor_gps)};
|
||||
|
||||
int32_t _latitude{296603018}; // Latitude in 1e-7 degrees
|
||||
int32_t _longitude{-823160500}; // Longitude in 1e-7 degrees
|
||||
int32_t _altitude{30100}; // Altitude in 1e-3 meters above MSL, (millimetres)
|
||||
double _latitude{29.6603018}; // Latitude in degrees
|
||||
double _longitude{-82.3160500}; // Longitude in degrees
|
||||
double _altitude{30.1}; // Altitude in meters above MSL, (millimetres)
|
||||
};
|
||||
|
||||
@@ -66,8 +66,8 @@ void FakeMagnetometer::Run()
|
||||
if (_vehicle_gps_position_sub.copy(&gps)) {
|
||||
if (gps.eph < 1000) {
|
||||
|
||||
const double lat = gps.lat / 1.e7;
|
||||
const double lon = gps.lon / 1.e7;
|
||||
const double lat = gps.latitude_deg;
|
||||
const double lon = gps.longitude_deg;
|
||||
|
||||
// magnetic field data returned by the geo library using the current GPS position
|
||||
const float mag_declination_gps = get_mag_declination_radians(lat, lon);
|
||||
|
||||
Reference in New Issue
Block a user