Get CM level accuracy using hector gps plugin in Gazebo
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
I've not used this at all, but what about removing all noise and drift parameters (or setting them to 0)?
You don't say what your use case is, but the real-world American GPS does not provide accuracy anywhere near 2 cm.
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.