mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-10-06 09:02:52 +08:00
* refactor(msg): rename SensorGps to SensorGnss and add VehicleGnss GPS is one constellation; the receivers and the rest of PX4 handle GNSS. Field names lose their units (latitude, speed_accuracy, course, ...), which move into the metadata comments. The sensors module's output becomes VehicleGnss on vehicle_gnss: the selected receiver's sample next to what the sensors module adds to it (corrected sample time, antenna position, selected instance), so a consumer can tell the two apart and later selection and check results have a place to go. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/gps): publish sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/septentrio): publish sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/pps_capture): read sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(lib/gnss): select receivers on sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(sensors): publish VehicleGnss on vehicle_gnss and rename SENS_GPS* to SENS_GNSS* The sensors module's output nests the selected receiver's sample, with the corrected sample time, antenna position and selected instance next to it. SENS_GPS_MASK/TAU/PRIME and SENS_GPSn_ID/OFFX/OFFY/OFFZ/DELAY take the SENS_GNSS name the heading parameters already use; saved parameters migrate on import, and the EKF2_GPS_POS/EKF2_GPS_DELAY translations now land on the new names directly. Assisted-by: Claude:claude-opus-5-5 * refactor(logger): log sensor_gnss and vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(ekf2): fuse vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(replay): replay vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(local_position_estimator): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(attitude_estimator_q): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(lib/terrain_estimation): take sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(lib/wind_estimator): read vehicle_gnss in the replay script Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(vision_target_estimator): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(navigator): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(commander): read sensor_gnss and vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(mavlink): stream sensor_gnss and vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(uxrce_dds_client): bridge vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(zenoh): bridge vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(failure_injection): inject GNSS failures on sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/ins): publish sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/uavcan): publish sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/uavcannode): read sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/cyphal): bridge sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/telemetry): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/rc): read vehicle_gnss for telemetry Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/osd): read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(drivers/transponder): read sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(boards/modalai): publish sensor_gnss from the voxl2 drivers Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(examples): publish sensor_gnss and read vehicle_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(simulation): publish sensor_gnss Follows the SensorGps to SensorGnss and vehicle_gps_position to VehicleGnss rename. Assisted-by: Claude:claude-opus-5-5 * refactor(gnss): name GNSS variables gnss in the sensors module and receiver drivers GPS is one constellation. Identifiers that hold or handle GNSS samples, or bind to the renamed parameters, follow the message and parameter rename; classes, files, modules and names tied to parameters that keep GPS stay. Assisted-by: Claude:claude-opus-5-5 * refactor(gnss): name GNSS variables gnss in the estimators and navigator GPS is one constellation. Identifiers that hold or handle GNSS samples, or bind to the renamed parameters, follow the message and parameter rename; classes, files, modules and names tied to parameters that keep GPS stay. Assisted-by: Claude:claude-opus-5-5 * refactor(gnss): name GNSS variables gnss in commander, mavlink and failure injection GPS is one constellation. Identifiers that hold or handle GNSS samples, or bind to the renamed parameters, follow the message and parameter rename; classes, files, modules and names tied to parameters that keep GPS stay. Assisted-by: Claude:claude-opus-5-5 * refactor(gnss): name GNSS variables gnss in the remaining drivers and simulation GPS is one constellation. Identifiers that hold or handle GNSS samples, or bind to the renamed parameters, follow the message and parameter rename; classes, files, modules and names tied to parameters that keep GPS stay. Assisted-by: Claude:claude-opus-5-5 * docs(gnss): reference sensor_gnss, vehicle_gnss and SENS_GNSS* parameters The upgrade guide covers the topic, field, ROS 2, parameter and Cyphal register renames. Assisted-by: Claude:claude-opus-5-5 * fix(boards): name EKF2::UpdateGnssSample in the fmu-v6xrt ITCM lists The rename left the old UpdateGpsSample symbol in the lists, so the ITCM check fails and the function drops out of ITCM on the boards it doesn't check. Assisted-by: Claude:claude-opus-5-5 * chore(drivers/gps): bump PX4-GPSDrivers to the merged sensor_gnss rename The submodule pointed at the PX4-GPSDrivers#243 branch commit; #243 is merged. Assisted-by: Claude:claude-opus-5-5 * docs(msg): restore WGS84 in SensorGnss and point VehicleGlobalPosition at vehicle_gnss The rename dropped the only mention of the WGS84 datum and ellipsoid, and left VehicleGlobalPosition referring to the removed vehicle_gps_position topic. Assisted-by: Claude:claude-opus-5-5 * refactor(msg): drop selected_instance from VehicleGnss receiver.device_id already names the selected receiver, and 0 while blended. The sensor_gnss instance depends on the order drivers advertise at boot, so it doesn't identify a receiver across boots or logs, and nothing reads it. It would also be meaningless on the per-receiver VehicleGnss instances proposed in #28894. Assisted-by: Claude:claude-opus-5-5 * refactor(gnss): fuse vehicle_gnss.timestamp_sample directly and document the receiver's corrected time vehicle_gnss.timestamp is now the sensors module's publish time, so EKF2's check of timestamp_sample against it was always true; the sensors module always fills timestamp_sample. The message docs described receiver.timestamp_sample as the driver's uncorrected value, but the sensors module writes the corrected time into it as well. Assisted-by: Claude:claude-opus-5-5 * docs(msg): point VehicleGnss users at the top-level timestamp_sample uXRCE-DDS shifts only top-level timestamp and timestamp_sample into agent time, so receiver.timestamp_sample reaches ROS 2 on the PX4 boot clock even though it holds the same value on uORB. Assisted-by: Claude:claude-opus-5-5 * docs(releases): tell ROS 2 users which VehicleGnss timestamps to read Only top-level timestamps are converted to ROS time, so a port that reads receiver.timestamp gets the PX4 boot clock, and vehicle_gnss.timestamp is now the sensors module's publish time rather than the receiver's. Assisted-by: Claude:claude-opus-5-5
PX4 User Guide
This repo contains the source code for the PX4 User Guide.
Note
Contributions and Translations to this guide are very welcome!