Hey,

I want to forward the parsed telemetry data (such as roll pitch yaw and altitude) from a ground control station over a UDP or UART port so that I can receive it in another software on the same PC. Is there a way to do this? Which GCS do I need? (Windows-based)

Consider that I do not want to forward the telemetry stream, as I can't properly parse the stream to extract the data; I want the extracted data.

Any help would be much appreciated!

Thanks

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Hi,

    sample how to read telemetry from UgCS - https://github.com/ugcs/ugcs-java-sdk/blob/master/ucs-client/src/ma...

    ugcs/ugcs-java-sdk
    UgCS Java SDK. Contribute to ugcs/ugcs-java-sdk development by creating an account on GitHub.
  • hi,

    Missionplanner secretly (shhhh!)   outputs subsets of its internal data in response to html requests, in   JSON.     Take a look at http://127.0.0.1:56781/mavlink/     while Missionplanner is connected to a real plane or to a SITL aircraft.  (results below).     It returns lots of useful stuff in JSON, although it lacks SYSID and battery info.   I have some python code somewhere that parses this in an amateurish manner if you want me to dig it out, but it aint hard

    And for other hidden jems of Missionplanner, poke this into a browser while it is running:   http://127.0.0.1:56781/

    some vague pseudo-python code that might point you in the right direction (no guarantees, it is late at night here!!!) ... 

    url =  "http://127.0.0.1:56781/mavlink/"
    urllib2.urlopen(url, timeout=.05)
    request = urllib2.Request(url)
    contents = urllib2.urlopen(request).read(4096)

    parsed_json = json.loads(contents) 
    try:
        alt = parsed_json["VFR_HUD"]["msg"]["alt"]
        airspeed = parsed_json["VFR_HUD"]["msg"]["airspeed"]
        throttle = parsed_json["VFR_HUD"]["msg"]["throttle"]
        heading = parsed_json["VFR_HUD"]["msg"]["heading"]
        roll = parsed_json["ATTITUDE"]["msg"]["roll"]
        pitch = parsed_json["ATTITUDE"]["msg"]["pitch"]
        target_bear= parsed_json["NAV_CONTROLLER_OUTPUT"]["msg"]["target_bearing"]
        lat = parsed_json["GPS_RAW_INT"]["msg"]["lat"]
        lon = parsed_json["GPS_RAW_INT"]["msg"]["lon"]
        heading = parsed_json["VFR_HUD"]["msg"]["heading"]
        climb = parsed_json["VFR_HUD"]["msg"]["climb"]

    except:

        print "Beware the target bear!!!!"

    Parsing the telemetry stream itself is not trivial  (although I am currently trying to work out that via pymavlink), but I hope something like the above should do the job for you.

    Cheers

    Pete  

      

    {"VFR_HUD":{"msg":{"airspeed":14.8990469,"groundspeed":16.18665,"alt":108.009995,"climb":0.04075444,"heading":354,"throttle":60},"index":1,"time_usec":0},

    "STATUSTEXT":{"msg":{"severity":6,"text":"RUtGMiBJTVUxIGlzIHVzaW5nIEdQUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},"index":1,"time_usec":0},

    "SYS_STATUS":{"msg":{"master_in":1631,"mav_loss":0,"mavpackettype":"META_LINKQUALITY","master_out":81,"packet_loss":0.0},"index":0,"time_usec":0},

    "ATTITUDE":{"msg":{"time_boot_ms":39524,"roll":-0.0005137098,"pitch":0.101332434,"yaw":-0.0884948149,"rollspeed":0.00062719523,"pitchspeed":0.00336190779,"yawspeed":-0.00180910469},"index":1,"time_usec":0},

    "GPS_RAW_INT":{"msg":{"time_usec":39396000,"lat":-273879911,"lon":1524742717,"alt":108260,"eph":121,"epv":200,"vel":1643,"cog":35987,"fix_type":6,"satellites_visible":10,"alt_ellipsoid":0,"h_acc":200,"v_acc":200,"vel_acc":40,"hdg_acc":0},"index":1,"time_usec":0},

    "HEARTBEAT":{"msg":{"custom_mode":10,"type":1,"autopilot":3,"base_mode":217,"system_status":4,"mavlink_version":3},"index":1,"time_usec":0},"

    GPS_STATUS":{"msg":null,"index":0,"time_usec":0},"NAV_CONTROLLER_OUTPUT":{"msg":{"nav_roll":4.42,"nav_pitch":5.0,"alt_error":8.53,"aspd_error":571.0385,"xtrack_error":0.0,"nav_bearing":0,"target_bearing":0,"wp_dist":311},"index":1,"time_usec":0},

    "META_LINKQUALITY":{"msg":{"master_in":1631,"mav_loss":0,"mavpackettype": "META_LINKQUALITY","master_out":81,"packet_loss":0.0},"index":0,"time_usec":0}}

  • No, I found nothing. I have stopped looking for answers since long ago though, there might be new ways to do this now after many updates and changes.

    Good luck!

  • Any luck finding an answer on  this ?

This reply was deleted.

Activity

DIY Robocars via Twitter
RT @gclue_akira: 柏の葉で走行させてるjetracerの中身 #instantNeRF #jetracer https://t.co/giVvuE4hP7
Jul 4
DIY Robocars via Twitter
Cool web-based self-driving simulator. Click save when the AI does the right thing https://github.com/pncsoares/self-driving-car
Jul 4
DIY Robocars via Twitter
RT @donkey_car: Human-scale Donkey Car! Hope this makes it to a @diyrobocars race https://www.youtube.com/watch?v=ZMaf031U8jg
Jun 25
DIY Robocars via Twitter
Jun 25
DIY Robocars via Twitter
Jun 16
DIY Robocars via Twitter
RT @GrantEMoe: I won my first @diyrobocars @donkey_car virtual race! Many thanks to @chr1sa @EllerbachMaxime @tawnkramer and everyone who m…
Jun 13
DIY Robocars via Twitter
RT @gclue_akira: JetRacerで自動走行したコースを、InstantNeRFで再構築。データセットは別々に収集 #jetracer #instantNeRT https://t.co/T8zjg3MFyO
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: SPC 3.0 Now the motor also works. This car is doable. I just need to design a deck to mount my compute and sensors. http…
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: My new car SPC 3.0. https://t.co/CKtkZOxeNQ
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: High speed at @diyrobocars thanks @EdwardM26321707 for sharing the video https://t.co/o4317Y2U1S
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: Today at @RAMS_RC_Club for @diyrobocars. Used @emlid RTK GPS and @adafruit @BoschGlobal IMU. Lap time 28s https://t.co/R…
May 28
DIY Robocars via Twitter
May 15
DIY Robocars via Twitter
May 14
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
More…