Hello everyone.
We are currently using an APM 2.5 on our large octocopter. We have the APM now tuned perfectly and the octo flies extremely smoothly and accurately.
My partner in the business is the pilot for the octo and he has been flying a DJI phantom for over a year prior to the octo. He has grown to love the DJI "GPS mode" which allows the user to have full control, including 100% rate of speed, of the multirotor and whenever the user has no stick input it will GPS hold that position.
The nearest equivalent flight mode I can find on the APM 2.5 is loiter mode. However, loiter mode on the APM has a couple of significant differences to the DJI GPS mode, those being:
1. when flying in loiter mode with the APM the rate of movement of the craft is significantly reduced, it does not allow 100% throttle/movement speeds, whereas the DJI GPS mode allows 100% movement rates.
2. when flying in loiter mode there is the throttle "deadband" in which the APM will not respond to throttle input (which I believe is +-20%), whereas the DJI GPS mode does not have this limitation, it allows 100% throttle movement with no deadband.
The only other flight mode of the APM would be altitude hold mode however the this simply maintains the altitude and not all GPS position hold.
Our pilot believes the lack of an equivalent flight mode on the APM to the DJI GPS mode is a major disadvantage and limits his ability to fly the octo with the option of 100% movement but with GPS hold. Due to this he is wanting to remove the $180 APM 2.5 and change over to either a $500 DJI V2 flight controller or the $1000 Wookong M.
I have tried to convince him otherwise as I believe, other than the flight characteristic/mode he is after, the APM betters the DJI controllers in every aspect.
My question being...Is there any option on the APM, or anyway I can program it, to allow it to have 100% rate of movement, with no deadband, but with gps hold as soon as the user has no stick input? It would pretty much be equivalent to the current stabilize mode but with GPS hold on no stick input.
Thanks very much,
Cameron
Replies
@Cameron
Marco and a few other devs have a working beta of the flight mode you are describing. There was a few vids within the last fortnight where Marco is flying about. I dont know when its going to become part of the official branch and released.
-> http://www.diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A...
Soon I hope that looks great!!
Hopefully with 3.2, it has been pushed to current dev master this week ;)
I'd call it "Sticky" mode
And btw I like Loiter how it does now
I am too up for the flight mode like althold while flying but loiter gps lock when i release the sticks.
There has been a github request https://github.com/diydrones/ardupilot/issues/728 for this mode.
Anybody that would like this mode please go to this link and ask for it.
The more people ask for it the better of a change the developers will think of doing it.
Thanks very much for the information everyone. I will give your suggestions a go in regards to altering loiter mode to be more responsive.
It would be nice one day to see a similar mode to the DJI GPS mode for the APM.
Cheers.
I understand your pilots feelings Cameron. As a pilot, you have enough on your hands trying to get in position, coordinate with a spotter, watching your battery drain rate and keeping a general awareness of conditions when doing aerial videos. You want as little distractions as possible to support stabile flight.
I was using an APM 2.5 with the 3.01 and recently replaced it with the DJI NAZA M 2.0 with an IOSD. After a over a year of trying to use the APM as the controller, I was unable to make it as usable for the task of aerial imagery than the NAZA pretty much for the reasons you pilot describes. I was then and still am now hopeful the the APM, or the newer hardware will be superior to the NAZA for this kind of use and I am ready to go back if the Open Source community develops the DJI style GPS mode behavior that works as well as the NAZA controller with GPS mode.
In particular, I would prefer the APM if that behavior is achieved because it has waypoint autonomous navigation whereas the NAZA M doesn't. Also, being able to set waypoints and use a "look at" is a feature as the APM used to have but has been temporarily taken out, and I have been waiting for the longest time for that feature to come back, that will be a huge point that should interest those for photography usage.
For now I am using the NAZA on two of my rigs, but waiting for the APM to get to the point that it offers the DJI GPS mode behavior, and also restores the "look at" feature in the waypoint definitions. I'm waiting!
Richard
Hi Cam, there are some of the developers who want "Loiter" flight mode to be almost exactly as you are requesting. I'm one of them. I believe we are working in that direction. In fact, there's not much between where we are now, and where we want to go.
For starters, the altitude control can get very close to what you want. If you increase the maximum climb and descent rate (which you can do now), and sharpen up the alt hold PID (which you can do now), it can be very responsive. The only thing missing then is the reduction of the deadband. I have heard that we were looking at exposing this as a parameter shortly. It may have already been done for the 3.1 release candidates. I'll have to check.
As for the positional movement, I believe what we have is already basically superior to DJI's system. You can already increase the maximum speed to pretty high levels. I've gone as high as 20 m/s (72 km/h). The only issue here is that there is something limiting the acceleration rates. We actually don't want it to be that way, and it's just a matter of finding it. Supposedly the copter should reach maximum Loiter speed in 2 seconds, but for some reason it's not working. Randy and Leonard have looked but can't see it. I'm hoping to have a look myself, but right now that part of the code is a bit of a black-box for me, so it'll take a while to wrap my head around it. However, hopefully a set of fresh eyes looking at the code will find it.