Software Wish List
Please use the Discussion tab at the top of the page, as appropriate |
Introduction
After you played around with the GCS, the Airborne code, tested it and used all it's possibilities, sometimes you get this feeling... "I would like to have more!". The first thing to do is to ask in the mailinglist if it is already possible. The next great thing would be to create what you think is lacking and give it back to the community so it could be part of the project in the future. If you are not that gifted yet, you could present your ideas here. Other enthusiastic Paparazzi developers could read this and think: "YEAH, now that is a really cool idea and I will start working on it right away!". Therefore, since everyone can improve a part of the project, note here what you would like to see added or improved in the software.
Ground Station Suggestions
- Support for stanag 4586 compliance, see http://www.innuvativesystems.com/stanag_4586_primer.html (Suggested by OpenUAS)
- Support for standard map files like GeoTiff, .tab and .map. Using the .xml method manually is rather time consuming and frustrating when you already have standard georeferenced images.
- Divide the flight plan into 3 separate files (Suggested by Jeremy)
- Takeoff/Landing - flight plan blocks describing the complex routines and using altitudes and waypoints from the User file
- Generic - a file that users should never need to edit, containing circles, rectangles, figure-8's, and surveys that appear on command when GCS buttons are pressed. Altitude/locations could be relative to the User file
- User - Here we can specify fixed or dynamic Home point and add complex routines or simply save certain basic routines.
- (NOTE: All of this is already possible, investigate time in discovering what paparazzi already can do now e.g. see Flight Plan Procedures)
- The possibility to use multiple ground modem connected to a single ground station. The RSSI could be use to dynamically choose which currently has the best signal. This would allow the use of different antennas on each of the modems or have antenna pointing in different directions(?Possibly more hardware related)
- PFD - the horizon and the sky shouldn't move only the main line. Because we are on the ground and we really need to see the roll angle of the UAS and not the real PFD like on a real airplane. And we could also see, the pitch angle, to see if the UAS is climbing or going down. Another way this could be done is to use a 3D model of the plane like procerus does on there ap. For those unfamiliar with this it is like you are in the view point of like 5m behind the plane. This might give the user just enough of a model to help fly back under manual control or at least have a better understanding of the orientation. This idea is good one but it should not replace the current pfd but rather be an option to use in the gcs. (NOTE: Already possible, via Papgets it is possible to add all kinds of such types of information. Also for a 3D plane view this is already possible, just bind you output to FlightGear)
- Language packs for the GCS - English, French, German, Italian, Spanish, Portuguese, ...
- Flashing via modems - (NOTE: Already possible)
Airborne Software Suggestions
Add your ideas here what you would like to see added or improved in the airborne software
Stability
- Auto-tuning of gains
- It should be possible to have a tuning procedure that comes up with correct gains for the stabilization. The procedure to come up with the correct gains is rather straightforward and an algorithm should be able to judge if the plane's oscillating, so I see no reason why it can't be done (given the plane is high enough and doesn't become unstable easily).
- Flight plan stage sensing
- Carrot should continue past the waypoint toward the next point, but the point should not be officially acknowledged until the plane has passed it. This way we can have smooth, intelligent navigation while still considering waypoint triggers such as still-photo, sensor drop, or throttle off.
NOTE: Can already be done by setting the approaching_time attribute. This value helps to decide when the target is reached. It can be set to 0 to go over the target waypoint. see Flightplan documentation
Other
- Revised autopilot modes (Jeremy)
- I propose a restructuring of the modes as follows - create 3 top-level modes: Man, Stab,and Auto, each with an appended autonomous sub-mode (i.e. Man/Climb, Stab/Kill, Auto/Landing, etc.) This will give the operator much more information and a much better indication of what the plane will do when switched to autonomous mode in a concise manner. Furthermore, I see an advantage in having simple behaviors like Climb, Landing, etc. be defined as sub-modes so that operator is always alerted of changes such as Descent or can easily configure trim, gains, and payload options in the airframe file (i.e. if mode = Landing then retract camera, turn off video system, use landing trim, etc.)
- Sub-modes
- Ground - The default boot mode. In this mode the throttle is locked at 0% or not armed at all (no PWM signal), stability is disabled (servos locked in neutral position), and video power is off, but flight plan blocks are processed. This will improve safety and aid in lost plane retreival as the servos, and video will not drain the battery if landing detection is implemented. Ground mode should exit only if Takeoff is manually triggered.
- Takeoff - 3 possible triggers: GCS button, GPIO button, or R/C throttle. Checks for error modes and desired climb, then arms/unlocks throttle, initates "Takeoff" flight plan block, and instantly deroutes to Climb mode. Deroutes to Descent mode without unlocking throttle if not OK. Takeoff could simply be a flag rather than a "mode".
- Climb - Triggered anytime "aggressive climb" is active
- Descent - Triggered anytime "aggressive descent" is active
- Nav - Normal level flight
- Landing - Same as Nav but using the "Landing" flight plan block and any airframe gains/trims/payload options as defined in airframe.xml
- Kill - Triggered manually - locks throttle at 0% and uses pitch/roll settings from Airframe.xml.
- Error sub-modes
- No GPS - A temporary mode using pitch/roll settings from airframe.xml
- Home - Triggered by distance in Auto mode or by distance/RC loss in Stab mode (after n seconds, as defined in airframe.xml). Exits upon manual block/mode change requests from the GCS and cannot be re-initiated for 30 seconds.
- Continually broadcast last known location
- AP should continue to broadcast the last known GPS coordinate in the event of GPS loss. (i.e. upside-down crashed plane should continue to send last known position in case it was out of data range prior to the crash.)
- (NOTE: Possible by adding for example a module that grabs current coordinates at e.g. .1 Hz and if in flightplan <while cond="!GpsFixValid()"/> send whatever you want)
- Ability to upload waypoints in flight
- I know this has been discussed a few times but it would be nice to at least have the option to upload waypoints and blocks and be able to change blocks in flight. This is risky but most Autopilot's do have this feature now and it would be nice if the user could make this decision.
- (NOTE: A possible current solution is by adding duplicate waypoints very close and if needed move these while in flight.)
- Radio Control of UAS through Data Link
- This simply means that instead of hacking an RC receiver to output it to the autopilot board why not hook your RC transmitter up through your computer and use the data link for RC. This would be nice especially with all the new RC range issues the 2 layer tiny 2.11 has brought on. Also it would be nice because RC interference would be eliminated. Please comment on this and tell me what you think
- (NOTE: Already possible)
- Precision Surveying
- It would be nice to have a survey function that could survey a sector and also be told what coordinates to begin the survey on. Another useful feature would be to have the plane sense when it is done surveying the whole area so it could move to the next block. I know that the entering the survey can be done in a roundabout method by defining a waypoint at the entry point and then going to it but defining it in the survey function would allow for more precise survey since that first sweep would already be defined and then would not be affected by if the plane went into the survey function at weird spot or something.
- (NOTE: Already possible, see http://paparazzi.enac.fr/wiki/Advanced_Navigation_Routines see the Polygon Survey and use it smartly
Current Sourcecode
If you have any suggestions to improve the current:
- Sourcecode
- Build process
- Code repository
- Tools used
...give your suggestions here. Better still, start working on what you can, and add your information to the Wiki and start a discussion in the mailing list.
GIT
- By using GIT make it easier for other to improve code without need to submit already to the SVN codebase
IVY
- Make Paparazzi compatible with IVY-C from SVN at this moment 3.11
- Make Paparazzi compile and compatible with with IVY-Ocaml library from SVN at this moment 1.1.11