I am reaching out to the DIYDrones community to validate a tradeoff in the code.
At the moment, you can define more than 100 waypoints and store them in EEPROM.
Unfortunately, because of lack of space we store more "simplified" information on each waypoint.
We have the suggestion to change that, by adding more detail to each waypoint (for example, allowing a Waypoint Radius to be set independently for each waypoint), at the expense of reduced # of waypoints.
So the question is:
Are 50 waypoints enough?
If "No", please provide a real world example where 50 waypoints are not enough.
More broadly, would you prefer fewer waypoints with more information, or more waypoints with less information and control per-waypoint.
So Andreas this is specific to the APM2 right? not sure if it's different for the APM1 users...
and if it is "only" a matter of on board memory this could be changed back to higher on the next hardware releases (if they have more memory)
Voting on less waypoints (50 seems more than enough) with more resolution/information!
50 is enough for me, I think it will be fine.
This is for both APM1 and APM2. It is a hardware-specific constraint which will not be necessary when we move to the next hardware platform with more NV storage.
Reverse question: If you were able to add all the information you would possibly want with your waypoints, how many would fit?
If the answer is a too low number, two WP formats could be considered. Of course less ideal from a coding perspective.
Personally I have not crossed 10 yet.
I don't think 50 is enough. Arial mapping uses quite a lot and until there's a curve route method all curves need to be worked out through multiple waypoints.
Since some people want a waypoint radius why not just let them specify the default radius, which would take no more space. I'd also think that if you could set the default radius then you'd probably only need a couple of special waypoints with a custom radius.
So even if the custom radius takes a whole extra waypoint you still shouldn't need to limit us to 50. Some users could set the default radius then have 80 custom default waypoints and 10 (2x the space) custom radius waypoints.
Wouldn't that be a lot better than limiting people to 50 and just squandering the vast majority of the freed space?
I'm sure you can find a better solution than limiting the waypoints to 50. You only need 8 bits (1 byte) to represent 256 values, and you could implement this as a difference to the default radius. Even 4 bits (1/2 byte) can represent 16 values, which would probably be enough if referenced to the default radius.
So we're really only talking about 50-100 bytes here. I'm sure this is just only a couple waypoints worth of data.
It might be helpful to figure out what people are wanting custom radii for and how much resolution they need? Do they really need a custom radius for EVERY waypoint or would a choice of 2-4 custom values be enough?
If they can live with 4 custom values you'd only need 3 bytes (4 bytes - existing default) for the radius values. And 2 bits for each waypoint. 2 bits x 100 = 200 bits = 25 bytes. That's only 28 extra bytes! I'm sure you can find that without taking away waypoints!
Thanks for your input. Unfortunately, we do have to make a tradeoff, because we don't have the time of resources to implement the kind of solution you suggest. It is either replicate the MAVlink structure of 7 fields per waypoint, or keep it at 4 as currently stored.
So, the issue is not just a matter of squeezing the data into the space available, but also the complexity of the code and the resources to make and test a change.
Therefore, the answer "both" is not available to us.
In that context, would I be correct to assume you would rather have more waypoints rather than more control over each waypoint?
I do like the idea of radius control, and could probably live with 50 points. OTOH controlling the default radius would probably be enough for me.
I'd prefer 100 points over 50+radius if it came right down to it. 50 points would limit me to about 20 passes for aerial photography. Not too bad of a limitation at the moment, but when I get my gas plane going it might be hassle.
I haven't used 50 yet, but I have come close.
28 is the most I have used for an aerial mapping test, but this was only a test and in the future I could see myself using far more than 50.
How about instead of adding it to every waypoint, add a waypoint that changes the waypoint radius from that point on.
WP4 = Change radius to 100m
WP7 = Change radius back to 50m
The waypoint sizes, count not be variables.
If for each waypoint you use a more detail, the number of waypoints will be reduced, if you use less details the number will raise and you could have any combination of waypoint with full and less details.
This is probably a n00b suggestion that's already been discarded for whatever reason, but could you store the waypoints in a file on the SD card and just keep a buffer of 5 or so in the working memory? That would also let people save separate courses on different SD cards and swap them in the field (for those without a laptop).
Eddie, I'm with you there - n00b suggestion - but also pushing as a coder.
How come, Andreas, you have such limited space to store waypoints, when this is one of the main feature of APM2 and Mission Planner? 50 is not enough for most of what we envision to do - 100+ is much better, but it definitely should be 1000+ at least right now. You just cannot bring forward "Mission planner" when all you can do is 50+. Must the coords really be stored in the EEPROM? If you write log on the external Flash card, you can definitely read super fast from it - and there is a lot more room on that medium + a compression system of coords is the way to go for sure as Jake Stew suggested. I'd very much like to go the 1000+ waypoints route with radius info + POI infos/action info for camera etc. Also, Eddie's swappable card idea is interesting.
50 waypoints is enough for me at this time, but if I can be able of get more flight time with my UAV, then... I will run out of waypoints.
The better solution for me is a new kind of waypoint intended for aerial photography or just another use of the existing ones.
When I do that I get a flight path like..I´m sure that with a little of PID tunning you can get better results. but, i you plan the flight path lique this.Then you need a the half + 2 waypoints than the other method. and then you get better flight paths, because you allways start the leg with the right heading.To do that i need that APM points to the tangent of a loiter waypoint. maybe I can tell APM do 0.5 loiter in that waypoint....
I dont know if you understand me because of my bad english.
50 is enough for me.