geeksville / arduleader

An android ground controller (and other things) for Mavlink/Arduplane
Other
143 stars 92 forks source link

Enhancement request: Add support for PX4FMU (non-Ardupilot) #89

Open tstellanova opened 11 years ago

tstellanova commented 11 years ago

I am able to connect Andropilot 1.4.18 to the PX4FMU running the mavlink module and get basic telemetry; however, there appears to be a mismatch between the flight mode selection in Andropilot and that supported by PX4FMU's firmware mavlink module. For example, when the PX4 is in Stabilize flight mode, Andropilot reads that as "ALT HOLD". Choosing other flight mode selections in Andropilot causes unexpected mode switching in the PX4.

I haven't dug into the Andropilot code yet, but my guess is that the mapping table for flight modes is hardcoded. It would be good if Andropilot could, like eg qGroundControl, dynamically determine the flight modes the mav supports.

tstellanova commented 11 years ago

Note that Andropilot's "RC Channels", "Servos", "Overview", "Status Messages", and the map display generally seem to work ok with PX4's mavlink, but Waypoints, Parameters, HUD, and the flight mode selection do not.
This may also be a problem with Arducopter running on PX4 hardware, but I haven't tried that yet.

geeksville commented 11 years ago

Actually it does dynamically determine the vehicle type (from looking at the custom_mode field of the mavlink heartbeat message). It sounds like the arducopter build for px4 might be mispopulating that. The next time I have my px4 out I'll try putting an AC build on it and see what it says...

tstellanova commented 11 years ago

To be clear I've only tested so far with the latest raw PX4FMU firmware (NO AC installed). I will try next with the AC build for PX4 but that will take some time as I believe AC requires a PX4IO as well, and I don't have that setup yet.

geeksville commented 11 years ago

Oh - I see! I didn't realize that a virgin PX4FMU load did anything useful. Does it actually include an autopilot?

On Tue, Jul 16, 2013 at 7:40 AM, Todd Stellanova notifications@github.comwrote:

To be clear I've only tested so far with the latest raw PX4FMU firmware (NO AC installed). I will try next with the AC build for PX4 but that will take some time as I believe AC requires a PX4IO as well, and I don't have that setup yet.

— Reply to this email directly or view it on GitHubhttps://github.com/geeksville/arduleader/issues/89#issuecomment-21059370 .

tstellanova commented 11 years ago

Yes, the current master PX4FMU firmware comes with a number of modules such as a multicopter EKF attitude estimator and controller. It's nice for research and experimentation because you can control, via a startup script, the stack that gets loaded.

Here's a good example of a startup script for a multicopter using just the PX4FMU (no PX4IO attached):

https://pixhawk.ethz.ch/px4/airframes/3dr_arducopter_quad_c

I'm using a very similar setup to that, with a custom multicopter controller.

On Tue, Jul 16, 2013 at 11:19 AM, Kevin Hester notifications@github.comwrote:

Oh - I see! I didn't realize that a virgin PX4FMU load did anything useful. Does it actually include an autopilot?

On Tue, Jul 16, 2013 at 7:40 AM, Todd Stellanova notifications@github.comwrote:

To be clear I've only tested so far with the latest raw PX4FMU firmware (NO AC installed). I will try next with the AC build for PX4 but that will take some time as I believe AC requires a PX4IO as well, and I don't have that setup yet.

— Reply to this email directly or view it on GitHub< https://github.com/geeksville/arduleader/issues/89#issuecomment-21059370> .

— Reply to this email directly or view it on GitHubhttps://github.com/geeksville/arduleader/issues/89#issuecomment-21062247 .

geeksville commented 11 years ago

ah! cool - I had no idea. Would you mind sending me (or attaching to the bug) a short tlog showing a full session. I bet I can detect a bare PX4 based on what it sends inside of heartbeat and fix the busted behavior.

tstellanova commented 11 years ago

Ok I generated some tlog files, uploaded here:

https://github.com/tstellanova/andropilot/tree/master/issues

Basically I switched the mav between AUTO and STABILIZED mode a few times.

tstellanova commented 11 years ago

Let me know if you need additional or more specific logs-- I'm eager to use andropilot with a PX4 setup.

geeksville commented 11 years ago

hmm - thanks for the logs. It looks like custom_mode in the heartbeat msgs is used a little different for the native px4 code. Does the parameter list not appear at all? Did you capture those tlogs with andropilot or some other app? Would it be possible for you to include a tlog captured by andropilot (it will include the whole session including (failing) waypoint fetch)? Go to andropilot settings and enable storing tlogs to the sdcard, then it will be in /sdcard/andropilot.

tstellanova commented 11 years ago

Yeah those logs came from the sdcard (via andropilot) I can connect with andropilot again and capture some fresh logs.

On Jul 24, 2013, at 6:30 PM, Kevin Hester notifications@github.com wrote:

hmm - thanks for the logs. It looks like custom_mode in the heartbeat msgs is used a little different for the native px4 code. Does the parameter list not appear at all? Did you capture those tlogs with andropilot or some other app? Would it be possible for you to include a tlog captured by andropilot (it will include the whole session including (failing) waypoint fetch)? Go to andropilot settings and enable storing tlogs to the sdcard, then it will be in /sdcard/andropilot.

— Reply to this email directly or view it on GitHub.