HK's GCS now compatible with APM MAVlink



Paramater updates and waypoint/mission commands are now included in my GCS. "Control" commands are not available yet because I don't know what's ready to go in the APM MAVlink code yet....

The MAVlink trunk is here: https://ardupilot-mega.googlecode.com/svn/Sketchbook/trunk

Download my GCS here: http://code.google.com/p/happykillmore-gcs/downloads/list

It took me a while (and some help from Doug Weibel...Thanks Doug!) to figure out the 2-way communication. The hardest part about this implementation is it's asyncronous. Which means you've got to be ready to handle the messages even though they're sprinkled in with telemetry data. I still need to add the ability to change the output Hz on the MAVlink messages.... and all the control messages (like RTL and Loiter Here....etc). I'd also like to be able to download logs files using MAVlink.... but I'm not sure if that's possible.

Works via X-Bee. Built in parameter limits and descriptions. Drag and drop waypoints built into Google Earth plugin for real time mission planning. Automatic retries and timeouts for bad connections. Progress bar and status messages. Full APM mission command set.

Views: 904


Moderator
Comment by Zach Bayne on February 6, 2011 at 10:11pm

Have not got to play with it yet, but as always, impressive.

 

Sorry to double post, Its not a big deal, on the config tab if you go from generic to ardupilot, the screen stays empty, but from atto to ardupilot its fine, just a heads up.

Again happy magnificent work as always.

Comment by Paul Mather on February 6, 2011 at 10:43pm
Good catch Zach, I've got that fixed for the next release!
Comment by Krzysztof Bosak on February 7, 2011 at 3:42am

Heartbeat si received at full rate.

However sending Message ID GPS_RAW (#32) whiel it shows in Raw data window, the translated data window display is updated mayeb once every 5s no matter the real message rate. So, still, there is a binary incompatibility/rejection algorithm that makes HKGCS behave differently from qgcs. It looks like the problem is UTC timestamp. Sending 0 ast UTCTIME heals everything. On the other hand it worked with mavlink all the time. Can you show me a typical UTC in your favorite byteorder?

I tried MSBF, LSBF and null and only the last one worked showing 1970 as expected.

 

RC_CHANNELS_SCALED (#36)

has bad scale,

the correct values are -10000.10000, currently 0 shows up like 4500 in HKGCS (should be 1500)

Also they are affected INCORRECTLY to output servo, while mavlink has only INPUT servo values.

 

RC_CHANNELS_RAW (#35) looks ok

 

Climbrate tick is a copy-paste from real airplane flyign several times faster.

1ft=0.3048m
100ft/min is
304.8m/60s=5.08m/s This is basic tick.

Full scale is +/- 30m/s. Useful scale for amateur UAV planes is some -10..10m/s because above that you are desintegrating. Parachute is already -5m/s and only rare constructions can land like that. It corresponds to diving 30deg down with cruise speed into airfield.

Comment by Johann Van Niekerk on February 7, 2011 at 6:28am

HI Happy

Great work once again.

Just to clarify af where we are at the moment , HK*GCS supports 2 way telemetry and control soon to follow just waiting for APM MAVlink to be completed ? is that correct?

 

Regards


Moderator
Comment by Zach Bayne on February 7, 2011 at 6:42am
Johann- The way I understand it, you can control it, like setting way points, the control messages to set it into RTL,or reboot just is not implemented yet. If you look at the screenshot, you can see the settings for ardupilot and the way point tab is populated too, the only thing blank is the control tab.
Hope that helps
Comment by Johann Van Niekerk on February 7, 2011 at 6:46am

Hi Zach

Zach I donwloaded the latest version of 30  mins ago and the control tab is there

Comment by Paul Mather on February 7, 2011 at 8:15am

@Krzysztof, I will investigate today. There is currently an issue with ArduPilot Mega and UTC time. The MAVlink protocol requires a long integer since January of 1970...in milliseconds.  Which is actually an overflow for today's date. Doug Weibel is working with the guys from MAVlink on this issue and I'm hoping to have this sorted out shortly.

 

@Johann, Zach is right. Waypoints are ready to try. Read/Write/Save/Load. Parameters (configuration tab) are also ready. There is a control tab but nothing on that tab is currently working. I'm working on that today.

Comment by Johann Van Niekerk on February 7, 2011 at 8:27am

Hi Happy Thanx ,

That was the answer I was looking for another thing of different not once this function is supportted will a user be able to switch between all available modes or only the ones predefined by user in Config.h file before the flight ?

 

Do you think it would be Brave to try a fully Auto mission once this function is done i.e. set plane next to you on ground point it in right direction and hit takeoff command? and when mission done land command?  regardless of inaccurate gps and drift ect.   ? it seems we getting closer and closer your thoughtd happy ? 

Comment by Rana on February 7, 2011 at 8:47am

Should it work with MatrixPilot_MAVlink ?

Comment by Paul Mather on February 7, 2011 at 9:13am

@Johann, that's risky in my opinion. I just got these things working yesterday....and the MAVlink code from the APM is new too (and mostly untested). I'd be careful.

 

@Rana, no. The APM MAVlink implementation makes strange use of the waypoint protocol. They only use a few arguments. param1 is the mission "command" and x,y,z and yaw are the 4 usable value fields. x = long, y = lat , z = alt and yaw = other (for some commands). On others only 1 or 2 of those commands are used. Then to make things more complicated, the APM has it's own command list and doesn't use those defined in mavlink_types.h. The parameters might work with MatrixPilot since all the parameter names are sent via the protocol. But I'm expecting a chr(0) if the parameter length isn't 15 characters...and I can't say for sure that MatrixPilot uses that for the end of the name.

 

It would be nice to have a UDB....

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service