Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Sending RTCM correction data from ros2 to PX4 FC using MicroXRCEAgent #212

Open
akrv opened this issue Apr 14, 2024 · 1 comment
Open

Sending RTCM correction data from ros2 to PX4 FC using MicroXRCEAgent #212

akrv opened this issue Apr 14, 2024 · 1 comment

Comments

@akrv
Copy link

akrv commented Apr 14, 2024

We have installed and configured the PX4 FC with ros2 using the MicroXRCE interface.
We receive all the default topics in ROS2 and they are getting published with sensor information.

We want to use RTK GPS for the precise localisation of our vehicle.
The vehicle has an active internet connection.
I have point perfect service from UBLOX for getting the correction data over NTRIP.
I am using the NTRIP_CLIENT on ros2 to subscribe to the RTCM correction data.

How do I stream this data from NTRIP_CLIENT into the PX4?
The client publishes two topics /rtcm and /nmea
I see the uROB message type definition is GpsInjectData.
However, I am not able to see the topic /fmu/in/GpsInjectData or something similar.
Is there a different topic to send these RTCM messages? or some docs to understand how to do it ourselves.

I also do not see the topic related to RTK or GpsInjectData in the dds_topics.yaml definition either.

Everything points to mavlink and or mavros setup.
NTRIP_CLIENT also natively support mavros_msgs but we are using the MicroXRCE agent over serial port at the moment.

any help would be appreciated.

@cbugk
Copy link

cbugk commented Aug 20, 2024

  - topic: /fmu/out/vehicle_gps_position
    type: px4_msgs::msg::SensorGps

AFAICT, this is the relevant topic. Also GPS_INJECT_DATA is replaced by GPS_RTCM_DATA according to MAVLINK's list. See this issue for details: mavlink/mavlink#1557

In particular, uORB message has these properties:

uint8 FIX_TYPE_NONE                   = 1       # Value 0 is also valid to represent no fix.
uint8 FIX_TYPE_2D                     = 2
uint8 FIX_TYPE_3D                     = 3
uint8 FIX_TYPE_RTCM_CODE_DIFFERENTIAL = 4
uint8 FIX_TYPE_RTK_FLOAT              = 5
uint8 FIX_TYPE_RTK_FIXED              = 6
uint8 FIX_TYPE_EXTRAPOLATED           = 8
uint8 fix_type                  # Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants