Giter VIP home page Giter VIP logo

gps_umd's People

Contributors

ayrton04 avatar ktossell avatar roehling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gps_umd's Issues

gpsd struct no longer has an `epe` field

After updating gpsd recently, I got the following compile error in gps_umd/gpsd_client:

/home/luke/catkin_ws/src/gps_umd/gpsd_client/src/client.cpp: In member function ‘void GPSDClient::process_data_gps(gps_data_t*)’:
/home/luke/catkin_ws/src/gps_umd/gpsd_client/src/client.cpp:178:22: error: ‘struct gps_data_t’ has no member named ‘epe’
  178 |         fix.err = p->epe;
      |                      ^~~

Version: Fedora gpsd-devel-3.19-2.fc31.x86_64

Cannot locate node of type [gps_conversions/gps_to_utm]

Hello everyone
I am trying to launch kitware, and I need to install gps-common. when I wan to make the Package I face an error:
ERROR: cannot launch node of type [gps_conversions/gps_to_utm]: Cannot locate node of type [gps_to_utm_node] in package [gps_conversions]. Make sure file exists in package path and permission is set to executable (chmod +x)
I am using Melodic ROS and I have installed gps common package from different sources like:
sudo apt-get install ros-melodic-gps-common
https://github.com/ktossell/gps_umd.git
https://github.com/swri-robotics/gps_umd.git
and so on. But, I cannot solve the pro
Screenshot from 2021-07-12 23-53-56
blem.
Please help me to solve this issue

frame_id not set in header

In the published sensor_msgs/NavSatFix message the value of header.frame_id is not set. According to the documentation it should be set to the "frame of reference reported by the receiver, usually the location of the antenna"

Every fourth altitude value is NaN

When using gpsd_client with a u-blox GPS, every fourth altitude value is NaN. This does not happen when using cgps or other gpsd client:

header: 
  seq: 470
  stamp: 
    secs: 1564341473
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519741333
longitude: 6.6806945
altitude: nan
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, nan]
position_covariance_type: 2
---
header: 
  seq: 471
  stamp: 
    secs: 1564341473
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519741333
longitude: 6.6806945
altitude: 1699.1
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 472
  stamp: 
    secs: 1564341473
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519741333
longitude: 6.6806945
altitude: 1699.1
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 473
  stamp: 
    secs: 1564341473
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519741333
longitude: 6.6806945
altitude: 1699.1
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 474
  stamp: 
    secs: 1564341474
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.5197375
longitude: 6.680697333
altitude: nan
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, nan]
position_covariance_type: 2
---
header: 
  seq: 475
  stamp: 
    secs: 1564341474
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.5197375
longitude: 6.680697333
altitude: 1699.4
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 476
  stamp: 
    secs: 1564341474
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.5197375
longitude: 6.680697333
altitude: 1699.4
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 477
  stamp: 
    secs: 1564341474
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.5197375
longitude: 6.680697333
altitude: 1699.4
position_covariance: [30.376, 0.0, 0.0, 0.0, 65.352, 0.0, 0.0, 0.0, 90.16]
position_covariance_type: 2
---
header: 
  seq: 478
  stamp: 
    secs: 1564341475
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519722833
longitude: 6.680688167
altitude: nan
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, nan]
position_covariance_type: 2
---
header: 
  seq: 479
  stamp: 
    secs: 1564341475
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519722833
longitude: 6.680688167
altitude: 1699.7
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.05]
position_covariance_type: 2
---
header: 
  seq: 480
  stamp: 
    secs: 1564341475
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519722833
longitude: 6.680688167
altitude: 1699.7
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.05]
position_covariance_type: 2
---
header: 
  seq: 481
  stamp: 
    secs: 1564341475
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519722833
longitude: 6.680688167
altitude: 1699.7
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.05]
position_covariance_type: 2
---
header: 
  seq: 482
  stamp: 
    secs: 1564341476
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519727
longitude: 6.680691833
altitude: nan
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, nan]
position_covariance_type: 2
---
header: 
  seq: 483
  stamp: 
    secs: 1564341476
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519727
longitude: 6.680691833
altitude: 1699.9
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.51]
position_covariance_type: 2
---
header: 
  seq: 484
  stamp: 
    secs: 1564341476
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519727
longitude: 6.680691833
altitude: 1699.9
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.51]
position_covariance_type: 2
---
header: 
  seq: 485
  stamp: 
    secs: 1564341476
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.519727
longitude: 6.680691833
altitude: 1699.9
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, 192.51]
position_covariance_type: 2
---
header: 
  seq: 486
  stamp: 
    secs: 1564341477
    nsecs:         0
  frame_id: "gps"
status: 
  status: 0
  service: 1
latitude: 45.5197065
longitude: 6.6806865
altitude: nan
position_covariance: [47.192, 0.0, 0.0, 0.0, 100.386, 0.0, 0.0, 0.0, nan]
position_covariance_type: 2

Repeated messages from gpsd_client

I'm not sure if this is a result of my gpsd configuration or my gps units (u-blox 5 series), but I've been getting repeated (not identical) ROS messages published by gpsd_client with use_gps_time off:

$ rostopic echo /fix

---
header: 
  seq: 15
  stamp: 
    secs: 1399540052
    nsecs: 800140800
  frame_id: ''
status: 
  status: 0
  service: 1
latitude: 34.146363167
longitude: -118.137884833
altitude: 282.3
position_covariance: [10.58, 0.0, 0.0, 0.0, 17.533, 0.0, 0.0, 0.0, 32.785]
position_covariance_type: 2

---
header: 
  seq: 16
  stamp: 
    secs: 1399540052
    nsecs: 801611257
  frame_id: ''
status: 
  status: 0
  service: 1
latitude: 34.146361667
longitude: -118.137885833
altitude: 282.5
position_covariance: [10.58, 0.0, 0.0, 0.0, 17.533, 0.0, 0.0, 0.0, 32.785]
position_covariance_type: 2

---
header: 
  seq: 17
  stamp: 
    secs: 1399540053
    nsecs: 814012306
  frame_id: ''
status: 
  status: 0
  service: 1
latitude: 34.146361667
longitude: -118.137885833
altitude: 282.5
position_covariance: [10.58, 0.0, 0.0, 0.0, 17.533, 0.0, 0.0, 0.0, 32.785]
position_covariance_type: 2

---
header: 
  seq: 18
  stamp: 
    secs: 1399540053
    nsecs: 815928396
  frame_id: ''
status: 
  status: 0
  service: 1
latitude: 34.146360333
longitude: -118.137886833
altitude: 282.6
position_covariance: [10.58, 0.0, 0.0, 0.0, 17.533, 0.0, 0.0, 0.0, 32.785]
position_covariance_type: 2

---

As can be seen in the above, messages 15 and 16 are sent at almost the same time but have different lat,lon values, while 16 and 17 have the same lat,lon but are a second apart. The same goes for the extended fix.

I've tracked down the cause of this and it seems that libgps is receiving the full fix in two separate messages as can be seen using gpspipe:

$ gpspipe -w 
{"class":"SKY","tag":"GSV","device":"/dev/ttyACM0","xdop":0.62,"ydop":0.65,"vdop":1.28,"tdop":0.71,"hdop":0.90,"gdop":1.72,"pdop":1.56,"satellites":[{"PRN":5,"el":7,"az":46,"ss":23,"used":true},{"PRN":15,"el":43,"az":99,"ss":29,"used":true},{"PRN":16,"el":18,"az":310,"ss":43,"used":true},{"PRN":18,"el":62,"az":235,"ss":34,"used":true},{"PRN":21,"el":60,"az":327,"ss":45,"used":true},{"PRN":22,"el":23,"az":231,"ss":0,"used":false},{"PRN":25,"el":9,"az":188,"ss":33,"used":true},{"PRN":26,"el":25,"az":61,"ss":31,"used":true},{"PRN":27,"el":0,"az":317,"ss":0,"used":false},{"PRN":29,"el":62,"az":136,"ss":37,"used":true},{"PRN":51,"el":49,"az":161,"ss":30,"used":false}]}
{"class":"TPV","tag":"GLL","device":"/dev/ttyACM0","mode":3,"time":"2014-05-08T08:51:11.000Z","ept":0.005,"lat":34.146406500,"lon":-118.137705667,"alt":270.300,"epx":9.292,"epy":9.817,"epv":29.402,"track":0.0000,"speed":0.030,"climb":0.000,"eps":19.63}

This results in two gps->read() calls in quick succession and therefore two calls to process_data and then publish. What should happen instead is that the first message (GSV) needs to be read but process_data not called, instead calling it on the second message (GLL). I've done a quick fix for this on my part with the following patch:

diff --git a/gpsd_client/src/client.cpp b/gpsd_client/src/client.cpp
index 06ecd18..54eb220 100644
--- a/gpsd_client/src/client.cpp
+++ b/gpsd_client/src/client.cpp
@@ -60,7 +60,11 @@ class GPSDClient {
 #else
       gps_data_t *p = gps->poll();
 #endif
+      if(strcmp(p->tag,"GSV")==0) {
+          return;
+      }
       process_data(p);
+
     }

     void stop() {

But since I don't have another GPS to test with, I'm not sure if this is a good solution to the problem (doubt it).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.