DroidPlanner / Tower

Ground Control Station for Android Devices
https://play.google.com/store/apps/details?id=org.droidplanner.android
Other
621 stars 554 forks source link

Flight Checklist #330

Closed arthurbenemann closed 10 years ago

arthurbenemann commented 11 years ago

Linking to Simon DiyDrones post.

arthurbenemann commented 11 years ago

It's a great idea, but for the momment I'm spending my time with the new UI #307. Any help is appreciated.

But let's try to keep this issue organized, I'll be moderating it.

wunderlins commented 11 years ago

Thank you @arthurbenemann for getting this started. I am trying to refine my thoughts posted in the DIYdrones blog:

Because the procedures differ from airframe to airframe we should make these checklists configurable. It would be nice to have a stock checklist for copter/fixed wing/helicopter. These lists should be exportable/importable for easy sharing.

Primary features:

I think there could be 3 item types for the checks, every item is offering at least a checkbox and some configurable text:

  1. TEXT: just a text that needs to be read an confirmed
  2. VALUE: a checkbox, configurable text and a mavlink value displayed behind the text. I think this is needed during takeoff check (for example I always check displayed airspeed / altitude / num sats / rssi / next waypoint (important for plane auto take offs))
  3. ACTION: also a checkbox, configurable text and 1-N buttons. These buttons could be used for mode changes where needed or for setting home alt from abs to realtive, etc. The buttons could also be used for displaying values. for example one button could be used to switch between abs/rel altitude while displaying the altitude at the same time (maybe that's a 4th type?).

type 1&2 could be completely configurable by the user himself. Where type 3 might be hardcoded elements which the user can add to his/her checklist. I can write a proposal for these planes from the perspective of a fixed wing pilot, i do not fly multi rotors.

Making the tabs configurable (add/remove/sort) would be also desirable. Depending on vehicle it might be good to have the option to add or remove another list.

wunderlins commented 11 years ago

@geeksville 's proposal for scritable views. I like the idea of having completely scritable pages in the GCS. The users without scripting knowledge will have a disadvantage: http://diydrones.com/profiles/blogs/interactive-checklists-proposal?id=705844%3ABlogPost%3A1429460&page=3#comment-705844_Comment_1430088

His proposal would, however be very portable to any CGS because it's html/javascript based with an API to the CGS autopilot parameters and actions.

geeksville commented 11 years ago

Yes, by using HTML and javascript it makes it very easy to let a much larger group of folks (rather than just android devs etc...) build these things. And slick things like embedding youtube videos etc... become trivial.

90% of users would just use apps which contain these scripts/lesson plans/behaviors - but 10% of the users might decide to view source, tweak a script and then either share that script with friends or check into github. I've been working on this for a couple of weeks and I think your slick gui could fit nicely with it. I should have something others can start building upon by Thursday...

wunderlins commented 11 years ago

I have 2 concerns about using HTML/JS:

For me it is the question of having something very reliable/responsive (especially once the vehicle is airborne) vs. flexibility. But I guess most of the performance/stability problems would boil down to certain badly written scripts.

geeksville commented 11 years ago

And the key thing here, is that the scripts run on the other side of the wall from the GCS (just like bad javascripts in browser window X can't (usually) crash your browser). The core functions in the GCS remain native - scripts just give a user extensible way to glue those functions together. In the interest of brevity I left the following out of my previous email copy/paste:

What we would have to be careful of:

wunderlins commented 11 years ago

agreed.

Now with my checklist idea i really would like something that works offline. We have 20 uavs deployed in remote locations (mostly rain Forrest). These guys have no internet connection and can only use what the CGS provides (including offline maps).

I have used some android webservers but they brought my devices down to it's knees. Mind you, this has been 2 years ago on mobile phones. I guess today's devices pack more punch. But battery life is also a concern.

geeksville commented 11 years ago

Yep - I hear your concern, but I think things are pretty good now. I'd propose we give it a shot and see how well it works?

A very large fractions of apps are now written using kits like phonegap which are really nothing more than a webview - to let devs target the same app for android and iOS. So modern mobile browsers basically rock for this sort of embedding. (The current android embedded WebView is based on the same webkit source as Safari and Chrome - It even uses V8 to do do JIT compilation to native arm code from JS).

geeksville commented 11 years ago

Hi ya'll,

I've mocked something up with real HTML, any feedback would be useful...

To make it easy to view, it is temporarily sitting here: http://www.droneshare.com/checklist/checklist.html The associated README is here: http://www.droneshare.com/checklist/README.html If you'd like to edit the html (for the time being) it is here: https://github.com/geeksville/arduleader/blob/master/common/src/main/webapp/checklist.haml

wunderlins commented 11 years ago

This is cool Kevin, I guess there is no reason why such a file couldn't be loaded from the local SD? I am currently in stable mode, will do a demo in a couple of days and am therefore testing my equipment. Will have a chance to test the betas next week.

geeksville commented 11 years ago

yep - the idea would be that most of these files (certainly all we use for checklists) would come from the local flash on the tablet.

GaryMortimer commented 11 years ago

All of this is above my paygrade, i will follow with interest and chip in if I think of anything. A delay should be built in so folks just don't tick all the boxes quickly to get to the flight. Bit big brother but if you could listen for folks speaking the check then move on it would be cool.

geeksville commented 11 years ago

Hi guys, I've implemented most of the backend needed for the GCS to provide this data and embedded a webview to view data from that backend (see here http://www.diydrones.com/group/andropilot-users-group/forum/topics/new-1-9-01-1-9-02-andropilot-betas-you-probably-want-these).

Alas, I needed to work on a surprise bug with new style 3dr radios so I haven't hooked up any of the auto vehicle state update in the checklists yet. I should have that hooked up (so any of ya'll can start editing/extending checklists) in the next couple of days. After we work out a set of working checklists, I'll package up the gcsapi stuff as a standalone library so it can be dropped into droidplanner pretty easily. For other GCSes (mission planner) the work would be a little higher but still not too bad...

wunderlins commented 10 years ago

Hey Kevin

I am back from Nepal. While being out in the field I have seen even more potential for your API. Eventually it will enable users to build their mission specific user interfaces.

Where should I start, where to look for the files that are user editable. Is there an API documentation?

Best -S

azrin1972 commented 10 years ago

Hi simon

Please check https://github.com/arthurbenemann/droidplanner/pull/356

Azrin Aris

On 29/10/2013, at 2:21, Simon Wunderlin notifications@github.com wrote:

Hey Kevin

I am back from Nepal. While being out in the field I have seen even more potential for your API. Eventually it will enable users to build their mission specific user interfaces.

Where should I start, where to look for the files that are user editable. Is there an API documentation?

Best -S

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

geeksville commented 10 years ago

Hi Simon,

I just added some documentation for my implementation (which should allow generalized vehicle scripting from the GCS in andropilot, droidplanner and mission planner - eventually). It is mean't to be a java library for AP and DP and the javascript API can be plopped into at least MP.

I've also hooked 'active' behaviors up to your html mock-up.

Here's a short readme doc I made: https://github.com/geeksville/arduleader/blob/master/common/src/main/webapp/gcsapi-README.md

For example JS code probably best to look at checklist.js: https://github.com/geeksville/arduleader/blob/master/common/src/main/webapp/js/checklist.js

@azrin1972 what do you think of the cross platform JS idea?

geeksville commented 10 years ago

Btw: I think the easiest way to develop/test these checklists or other GCSAPI scripts (for now) is to run the webpage on your desktop computer in Chrome and connect via wifi to the tablet webserver. If a writeup on how to do this would be useful, please let me know and I'm happy to help.

This let's you use the really nice Chrome debugger on your javascript/HTML.

wunderlins commented 10 years ago

Hi Kevin

Excellent news! I am in a training for the next 3 days, will try to look into this. I have seen that there is an option for remote connections to the Android Device. Thanks for the examples.

Best -S

azrin1972 commented 10 years ago

My experience in JS is very limited. I'll take a look at the codes. Btw, my implementation of checklist is purely XML based. I just put code to execute system task based on XML system tags. This way, I believe, will make a user with very little knowledge of programming able to make their own checklist - not only developers.

The latest checklist branch that I'm currently developing, DP can automatically use uses checklist in the sd0 or revert to the default built-in checklist if the custom checklist is not there.

Any how, that's just my 2 cent.

Azrin Aris

On 04/11/2013, at 8:16, Kevin Hester notifications@github.com wrote:

Hi Simon,

I just added some documentation for my implementation (which should allow generalized vehicle scripting from the GCS in andropilot, droidplanner and mission planner - eventually). It is mean't to be a java library for AP and DP and the javascript API can be plopped into at least MP.

I've also hooked 'active' behaviors up to your html mock-up.

Here's a short readme doc I made: https://github.com/geeksville/arduleader/blob/master/common/src/main/webapp/gcsapi-README.md

For example JS code probably best to look at checklist.js: /arduleader/blob/master/common/src/main/webapp/js/checklist.js

@azrin1972 what do you think of the cross platform JS idea?

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

arthurbenemann commented 10 years ago

Azrin code is merged and working on the current branch, so I'm calling this issue closed.

nicksargeant commented 10 years ago

@arthurbenemann What is the state of this feature request? Was It postponed due to DP2 commitments? If so, could it be picked up now that DP2 is out? Kind regards

azrin1972 commented 10 years ago

Hi nicksargeant

We have implemented the checklist feature. If you have other items to add please list them down and I can add to the existing list

Azrin Aris

On 09/04/2014, at 15:25, nicksargeant notifications@github.com wrote:

@arthurbenemann What is the state of this feature request? Was It postponed due to DP2 commitments? If so, could it be picked up now that DP2 is out? Kind regards

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

nicksargeant commented 10 years ago

Thank you. Just found it in DP2. Will have a play and report back. Regards

azrin1972 commented 10 years ago

Thanks,

Looking forward to the feedback.

Azrin Aris

On 09/04/2014, at 15:47, nicksargeant notifications@github.com wrote:

Thank you. Just found it. Will have a play and report back.

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