ublox_dgnss icon indicating copy to clipboard operation
ublox_dgnss copied to clipboard

Portable RTK Base Station Setup

Open GPrathap opened this issue 4 months ago • 19 comments

I am trying to configure the base and rover stations having exactly this setup: https://docs.holybro.com/gps-and-rtk-system/f9p-h-rtk-series/portable-rtk-base-station-setup

For Base RTK UBLOX U-Center app:

    PRT: UART1, 57600 baud, RCTM3 out, UBX in…press send button in lower left
    TMODE3: Survey-in, 60seconds, 2 meters…press send
    MSG: RTCM3.3 - 1005, UART1 in/out, 1sec…press send
    RTCM3.3 - 1074, UART1 in/out, 1sec…press send
    RTCM3.3 - 1084, UART1 in/out, 1sec…press send
    RTCM3.3 - 1094, UART1 in/out, 1sec…press send
    RTCM3.3 - 1124, UART1 in/out, 1sec…press send
    RTCM3.3 - 1230, UART1 in/out, 5sec…press send
    CFG: Save current configuration to FLASH…press send

For the Base:

       params_base= [
        {'DEVICE_SERIAL_STRING': "esab"},
        {'FRAME_ID': "base"},
        # config measurement interval to 200 ms (ie 5 Hz) and nav update rate to once per measurement
        {'CFG_RATE_MEAS': 0xc8},
        {'CFG_RATE_NAV': 0x1},

        # disable all messages on UART2
        {'CFG_UART2INPROT_NMEA': False},
        {'CFG_UART2INPROT_RTCM3X': False},
        {'CFG_UART2INPROT_UBX': False},
        {'CFG_UART2OUTPROT_NMEA': False},
        {'CFG_UART2OUTPROT_RTCM3X': False},
        {'CFG_UART2OUTPROT_UBX': False},

        # set UART1 baud rate to 57600
        {'CFG-UART1-BAUDRATE': 0xE100},

        # send RTCM messages only (to rover) on UART1
        {'CFG_UART1INPROT_NMEA': False},
        {'CFG_UART1INPROT_RTCM3X': False},
        {'CFG_UART1INPROT_UBX': False},
        {'CFG_UART1OUTPROT_NMEA': False},
        {'CFG_UART1OUTPROT_RTCM3X': True},
        {'CFG_UART1OUTPROT_UBX': False},

        # RTCM and UBX messages as required on USB
        {'CFG_USBINPROT_NMEA': False},
        {'CFG_USBINPROT_RTCM3X': True},
        {'CFG_USBINPROT_UBX': True},
        {'CFG_USBOUTPROT_NMEA': False},
        {'CFG_USBOUTPROT_RTCM3X': False},
        {'CFG_USBOUTPROT_UBX': True},

        # output RTCM messages required for moving base+rover mode on UART2
        {'CFG-MSGOUT-RTCM_3X_TYPE4072_0_UART1': 0x1},
        {'CFG-MSGOUT-RTCM_3X_TYPE1074_UART1': 0x1},
        {'CFG-MSGOUT-RTCM_3X_TYPE1084_UART1': 0x1},
        {'CFG-MSGOUT-RTCM_3X_TYPE1124_UART1': 0x1},
        {'CFG-MSGOUT-RTCM_3X_TYPE1230_UART1': 0x1},

        # messages required for navsatfix calcs by ROS node
        {'CFG_MSGOUT_UBX_NAV_HPPOSLLH_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_COV_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_STATUS_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_PVT_USB': 0x1},            
        ]

For the Rover UBLOX U-Center app,:

    PRT: UART2, 57600Kbaud, RCTM3 in, UBX out…press send
    CFG: Save current configuration to FLASH…press send

For the Rover:

        params_rover = [
        {'DEVICE_SERIAL_STRING': "revor"},
        {'FRAME_ID': "rover"},

        # config measurement interval to 200 ms (ie 5 Hz) and nav update rate to once per measurement
        {'CFG_RATE_MEAS': 0xc8},
        {'CFG_RATE_NAV': 0x1},

        # disable all messages on UART1
        {'CFG_UART1INPROT_NMEA': False},
        {'CFG_UART1INPROT_RTCM3X': False},
        {'CFG_UART1INPROT_UBX': False},
        {'CFG_UART1OUTPROT_NMEA': False},
        {'CFG_UART1OUTPROT_RTCM3X': False},
        {'CFG_UART1OUTPROT_UBX': False},

        # set UART2 baud rate to 57600
        {'CFG-UART2-BAUDRATE': 0xE100},

        # receive RTCM messages only (from base) on UART2
        {'CFG_UART2INPROT_NMEA': False},
        {'CFG_UART2INPROT_RTCM3X': True},
        {'CFG_UART2INPROT_UBX': False},
        {'CFG_UART2OUTPROT_NMEA': False},
        {'CFG_UART2OUTPROT_RTCM3X': False},
        {'CFG_UART2OUTPROT_UBX': False},

        # send/receive UBX messages only on USB
        {'CFG_USBINPROT_NMEA': False},
        {'CFG_USBINPROT_RTCM3X': False},
        {'CFG_USBINPROT_UBX': True},
        {'CFG_USBOUTPROT_NMEA': False},
        {'CFG_USBOUTPROT_RTCM3X': False},
        {'CFG_USBOUTPROT_UBX': True},

        # messages required for navsatfix calcs by ROS node
        {'CFG_MSGOUT_UBX_NAV_HPPOSLLH_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_COV_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_STATUS_USB': 0x1},
        {'CFG_MSGOUT_UBX_NAV_PVT_USB': 0x1},

        # output relative position messages
        {'CFG_MSGOUT_UBX_NAV_RELPOSNED_USB': 0x1},
        ]

However, I can not see the base and rover communicating. Is there a way to debug?

From Base ros2 topic echo /base/ubx_nav_status:

       header:
      stamp:
        sec: 1708617982
        nanosec: 466416165
      frame_id: base
    itow: 403600400
    gps_fix:
      fix_type: 3
    gps_fix_ok: true
    diff_soln: false
    wkn_set: true
    tow_set: true
    diff_corr: false
    carr_soln_valid: true
    map_matching:
      status: 0
    psm:
      state: 0
    spoof_det:
      state: 2
    carr_soln:
      status: 0
    ttff: 12622
    msss: 4355423

From Rover ros2 topic echo /rover/ubx_nav_status:

  header:
    stamp:
      sec: 1708617868
      nanosec: 285342624
    frame_id: rover
  itow: 403486200
  gps_fix:
    fix_type: 3
  gps_fix_ok: true
  diff_soln: false
  wkn_set: true
  tow_set: true
  diff_corr: false
  carr_soln_valid: true
  map_matching:
    status: 0
  psm:
    state: 0
  spoof_det:
    state: 2
  carr_soln:
    status: 0
  ttff: 4549
  msss: 4392950

GPrathap avatar Feb 22 '24 16:02 GPrathap