Get CM level accuracy using hector gps plugin in Gazebo

asked 2021-09-20 06:54:01 -0600

skarfa gravatar image

Using http://wiki.ros.org/hector_gazebo_plu... in Gazebo for GPS plugin.

Currently when the sensor is stationary it values deviate more than 2 cm. I want to keep it under 2cm accuracy. What all changes are required in the parameters to achieve it. Currently only way is trial and error but is it feasible.

<plugin name="gazebo_ros_gps" filename="libhector_gazebo_ros_gps.so">
    <updateRate>10.0</updateRate>
    <bodyName>link_chassis</bodyName>
    <frameId>link_chassis</frameId>
    <topicName>/gps/fix</topicName>
    <velocityTopicName>/gps/fix_velocity</velocityTopicName>
    <referenceLatitude>12.9716</referenceLatitude>
    <referenceLongitude>77.5946</referenceLongitude>
    <referenceHeading>20</referenceHeading>
    <referenceAltitude>10</referenceAltitude>
    <offset>0 0 0</offset>
    <drift>0 0 0</drift>
    <gaussianNoise>0.05 0.05 0.05</gaussianNoise>
    <velocityDrift>0.0001 0.0001 0.0001</velocityDrift>
    <velocityGaussianNoise>0.5 0.5 0.5</velocityGaussianNoise>
</plugin>

Output /gps/fix

---
header: 
  seq: 11808
  stamp: 
    secs: 1181
    nsecs: 200000000
  frame_id: "link_chassis"
status: 
  status: 0
  service: 0
latitude: 12.971824373
longitude: 77.594682262
altitude: 10.1233916214
position_covariance: [0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005]
position_covariance_type: 2
---
header: 
  seq: 11809
  stamp: 
    secs: 1181
    nsecs: 300000000
  frame_id: "link_chassis"
status: 
  status: 0
  service: 0
latitude: 12.9718254274
longitude: 77.5946826123
altitude: 10.1418422945
position_covariance: [0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005]
position_covariance_type: 2
---
header: 
  seq: 11810
  stamp: 
    secs: 1181
    nsecs: 400000000
  frame_id: "link_chassis"
status: 
  status: 0
  service: 0
latitude: 12.9718251737
longitude: 77.5946815946
altitude: 10.1678475075
position_covariance: [0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005, 0.0, 0.0, 0.0, 0.0025000000010000005]
position_covariance_type: 2
edit retag flag offensive close merge delete

Comments

1

I've not used this at all, but what about removing all noise and drift parameters (or setting them to 0)?

gvdhoorn gravatar image gvdhoorn  ( 2021-09-20 09:28:27 -0600 )edit

You don't say what your use case is, but the real-world American GPS does not provide accuracy anywhere near 2 cm.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-09-20 14:23:08 -0600 )edit

I am trying to replicate RTK GPS capabilities which is MM level precise. But CM level reading will also help, so that when the bot is stationary the gps values doesn't deviate much and I can differentiate between stationary and moving vehicle. In real world using RTK GNSS than GPS but I have to use whatever plugin is available for Gazebo.

skarfa gravatar image skarfa  ( 2021-09-20 14:28:27 -0600 )edit