Dead Reckoning Sensor (Product ID: 21305) Integration with a quadruped robot

I have following questions regarding integrating SparkFun GPS-RTK Dead Reckoning pHAT with a quadruped robot (Unitree Go1).

  • General, vibrations - Given the vibrations inherent in a robotic dog, I would like to verify that these won’t negatively affect the sensor’s performance in determining attitude and position or significantly shorten its life span. Is this a recommended use case?

  • Wheel ticks absence - Are wheel ticks required for this module to function, or can it operate effectively on a robotic dog without connecting to car wheels? Is there a way to provide data containing commanded speed as a substitute for wheel ticks via UART/SPI/I2C?

  • Antenna Placement - Can the antenna be placed closer (about 10cm) to motors generating EM noise, or does it require more distance? Would mounting it about 0.5m above the ground be suitable? If so, where would be the optimal placement on the robotic dog? What hardware can you recommend to maximize the SNR to ensure stable fix time and better precision?

  • Precision without RTK, forest environment - What is the approximate accuracy of the module when RTK is not available? How does it get affected when operating under treetops in for example a forest, is it possible to get a fix?

  • Heading Information - Does the module provide absolute heading information (relative to North)? I require absolute heading, not just relative to its startup heading.

  • Hookup Guide Clarification - What does “Dead Reckoning is stable within 5 degrees” mean from the hookup guide? What does “pitch and roll is relative to the SparkFun Dead Reckoning’s position” mean?

  • Calibration Requirements - Is calibration needed only once or on every startup? The guide mentions reaching 30km/h for calibration; what if the vehicle (in this case, the robotic dog) cannot reach that speed?

  • Python Package - Is there a Python package to interface with the module via I2C, or are SPI and UART the only available options? For my application, I only need heading (absolute), latitude, and longitude data. Can I obtain this data using Python with your module? I looked at the example code on GitHub, I just want to verify directly.

  • Hot Start and Battery Life - The documentation states, “The time to first fix will be about ~26 seconds, but after it has a lock, that battery will allow for a two-second time to first fix. This is known as a hot start and lasts for four hours after the board is powered down. The battery provides over a year’s worth of power to the backup system and charges slowly when the board is powered.” Could you please clarify whether the hot start lasts for four hours or over a year?

  • Raspberry Pi Compatibility - Which Raspberry Pi models is the pHAT compatible with?

  • Thank you for your help.

    Best regards

    The two things that are going to be a deal breaker for using this on a robot dog are that 1- it requires wheel ticks and 2- it requires speeds above 30 km/h to calibrate. Without both of those, you won’t get dead reconing.

    I would encourage you to read the [UBlox F9R integration manual. So, if you want to have Dead Reckoning with dog robot (or train or plane), you will have to develop your own fusion engine using raw data from GNSS, IMU and other sensors that are adapted to your system and taking account the dynamic of your system.](https://content.u-blox.com/sites/default/files/ZED-F9R_Integrationmanual_UBX-20039643.pdf)